diff --git a/.vpython3 b/.vpython3
index 3c47efa..935be0a2 100644
--- a/.vpython3
+++ b/.vpython3
@@ -251,3 +251,16 @@
     platform: "linux_armv7l"
   >
 >
+
+# Used by:
+#   //third_party/blink/tools/blinkpy/web_tests/port/server_process.py
+wheel: <
+  name: "infra/python/wheels/pywin32/${vpython_platform}"
+  version: "version:300"
+  match_tag: <
+    platform: "win32"
+  >
+  match_tag: <
+    platform: "win_amd64"
+  >
+>
diff --git a/DEPS b/DEPS
index 9049319..12911076 100644
--- a/DEPS
+++ b/DEPS
@@ -228,7 +228,7 @@
   # 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': '35371bd92f1040f3d4dfa98c6feb19990256177f',
+  'skia_revision': 'abae48eb5b73dfe3c0de737eeda34bde2a9fb797',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -307,7 +307,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': 'ec2f9f3c4fcb2539df141d0690f63699b1e5427d',
+  'devtools_frontend_revision': '90801494ca8c563bacc2e748ee683d8ea4f4e787',
   # 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.
@@ -610,7 +610,7 @@
   },
 
   'src/ios/third_party/material_components_ios/src': {
-      'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + 'a49890be988bdac2924060cc1c1f681e0dcfb20d',
+      'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + 'ec5124c182b823838aa9aace773cdf1f8cb704bd',
       'condition': 'checkout_ios',
   },
 
@@ -680,7 +680,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/linux-amd64',
-          'version': '0NSMjz4jY4FrYTMdzHDk0drTvFFRnLettSXu5lvpJv0C',
+          'version': 'wNnNtBBU4fm7NlWNuMBD1HxWhMkz6rDtjNGwc3wLhuEC',
         },
       ],
       'dep_type': 'cipd',
@@ -691,7 +691,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/mac-amd64',
-          'version': 'Lh6-b0mM6Xaiw5zCUdUV5MhzSMo-sJciyRf52gVxz4MC',
+          'version': 'q4klqWeS3KauTfIVkxlK9HL0o9BhwKPXrsOoR7-eYg0C',
         },
       ],
       'dep_type': 'cipd',
@@ -702,7 +702,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/windows-amd64',
-          'version': 'NqOitHC717V_OdyDQtQRi_nCOXxYLBK9eUjNd4K_vy8C',
+          'version': 'zN_GMRU7CyuP1WXoS5dzojp1p6_rvRVtFZMoQwj2-CoC',
         },
       ],
       'dep_type': 'cipd',
@@ -767,7 +767,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'o74JoE-kByyfp7IZNkn3v09A4ryAISjuilobCBzv6PAC',
+          'version': 'krtkAyAj_Vhfu3r0xami8YhOw7sbY3Zh_JEHbIchaFYC',
       },
     ],
     'condition': 'checkout_android',
@@ -932,7 +932,7 @@
   },
 
   'src/third_party/breakpad/breakpad':
-    Var('chromium_git') + '/breakpad/breakpad.git' + '@' + 'bc7ddae23425cee8999e4e8ed61f77a62f058cbf',
+    Var('chromium_git') + '/breakpad/breakpad.git' + '@' + 'b95c4868b10f69e642666742233aede1eb653012',
 
   'src/third_party/byte_buddy': {
       'packages': [
@@ -983,7 +983,7 @@
   # Tools used when building Chrome for Chrome OS. This affects both the Simple
   # Chrome workflow, as well as the chromeos-chrome ebuild.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'b42923018e834765e06b92d7825eacbe715c0dd1',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'c8a202b826ace01786920550b3c335bb4b200a72',
       'condition': 'checkout_chromeos',
   },
 
@@ -1015,7 +1015,7 @@
     Var('chromium_git') + '/chromium/dom-distiller/dist.git' + '@' + 'f339eb9463714c3d31657c8ee1bd53d1c7e5c555',
 
   'src/third_party/eigen3/src':
-    Var('chromium_git') + '/external/gitlab.com/libeigen/eigen.git' + '@' + '12e8d57108c50d8a63605c6eb0144c838c128337',
+    Var('chromium_git') + '/external/gitlab.com/libeigen/eigen.git' + '@' + '011e0db31d1bed8b7f73662be6d57d9f30fa457a',
 
   'src/third_party/emoji-metadata/src': {
     'url': Var('chromium_git') + '/external/github.com/googlefonts/emoji-metadata' + '@' + '069b14c94db6c1625a143d9f82e07a08a29909cf',
@@ -1052,10 +1052,10 @@
   },
 
   'src/third_party/fp16/src':
-    Var('chromium_git') + '/external/github.com/Maratyszcza/FP16.git' + '@' + '4dfe081cf6bcd15db339cf2680b9281b8451eeb3',
+    Var('chromium_git') + '/external/github.com/Maratyszcza/FP16.git' + '@' + 'febbb1c163726b5db24bed55cc9dc42529068997',
 
   'src/third_party/gemmlowp/src':
-    Var('chromium_git') + '/external/github.com/google/gemmlowp.git' + '@' + 'fda83bdc38b118cc6b56753bd540caa49e570745',
+    Var('chromium_git') + '/external/github.com/google/gemmlowp.git' + '@' + '8589f2084b738e2285d5e8547b8b699c03a177dd',
 
   'src/third_party/grpc/src': {
       'url': Var('chromium_git') + '/external/github.com/grpc/grpc.git' + '@' + '54dc182082db941aa67c7c3f93ad858c99a16d7d',
@@ -1345,7 +1345,7 @@
   },
 
   'src/third_party/neon_2_sse/src':
-    Var('chromium_git') + '/external/github.com/intel/ARM_NEON_2_x86_SSE.git' + '@' + '1200fe90bb174a6224a525ee60148671a786a71f',
+    Var('chromium_git') + '/external/github.com/intel/ARM_NEON_2_x86_SSE.git' + '@' + '42b2bebacee25452e150095ef4480b3fa26e30f5',
 
   'src/third_party/netty-tcnative/src': {
       'url': Var('chromium_git') + '/external/netty-tcnative.git' + '@' + '5b46a8ef4a39c39c576fcdaaf718b585d75df463',
@@ -1389,7 +1389,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'e0c4d9b9566c52974287aa1a6678e16f1949c6c4',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '76f7830d7f2b74640a2304db5c75588cb0da5ff4',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1497,7 +1497,7 @@
   },
 
   'src/third_party/re2/src':
-    Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + 'b25b8bb5c0e3b4717418279a1a764a6b20ade26b',
+    Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + 'b3cdad8966513c9ccb7cca2c7059ff236938d506',
 
   'src/third_party/r8': {
       'packages': [
@@ -1527,7 +1527,7 @@
   },
 
   'src/third_party/ruy/src':
-    Var('chromium_git') + '/external/github.com/google/ruy.git' + '@' + 'e6c1b8dc8a8b00ee74e7268aac8b18d7260ab1ce',
+    Var('chromium_git') + '/external/github.com/google/ruy.git' + '@' + '34ea9f4993955fa1ff4eb58e504421806b7f2e8f',
 
   'src/third_party/skia':
     Var('skia_git') + '/skia.git' + '@' +  Var('skia_revision'),
@@ -1561,7 +1561,7 @@
   },
 
   'src/third_party/tflite/src':
-    Var('chromium_git') + '/external/github.com/tensorflow/tensorflow.git' + '@' + '3ec476211ce91b409a7cae98d8b346f8141bdea6',
+    Var('chromium_git') + '/external/github.com/tensorflow/tensorflow.git' + '@' + 'fcc4b966f1265f466e82617020af93670141b009',
 
   'src/third_party/turbine': {
       'packages': [
@@ -1621,7 +1621,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '201435f657c0b3942418a34a8fe87d593fa433d8',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'dcaf1e79c41d8b6e077302658396e01646a36feb',
+    Var('webrtc_git') + '/src.git' + '@' + '95f6e8bebb7364bb582ab15e913286266ae6198e',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1682,7 +1682,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@cf07ec1ee97f7bba1958faa6ffb4fa6a65be7684',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@e30bb86e689fb0be2b67d54d9ce68e1eb949434c',
     'condition': 'checkout_src_internal',
   },
 
@@ -1701,7 +1701,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': '5uXs5YYZ2BxWsM610kgjxY4kjtSyxQxgqwltg0jOvuoC',
+        'version': 'YyjGhweE5AdSF1jeiAS5q2BNI_nCL6TXyAl0_n0yC3cC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/android_webview/browser/aw_browser_context.cc b/android_webview/browser/aw_browser_context.cc
index 93458f6f..9cd56a8c 100644
--- a/android_webview/browser/aw_browser_context.cc
+++ b/android_webview/browser/aw_browser_context.cc
@@ -512,9 +512,6 @@
   // (http://crbug.com/921750).
   context_params->enforce_chrome_ct_policy = false;
 
-  // WebView does not support ftp yet.
-  context_params->enable_ftp_url_support = false;
-
   context_params->enable_brotli = base::FeatureList::IsEnabled(
       android_webview::features::kWebViewBrotliSupport);
 
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
index f0d720e..dc25dbb 100644
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -138,6 +138,9 @@
                     AwFeatures.WEBVIEW_ORIGIN_TRIALS, "Enables Origin Trials support on WebView."),
             Flag.baseFeature(
                     BlinkFeatures.LAYOUT_NG_TABLE, "Enables Blink's next generation table layout."),
+            Flag.baseFeature(BlinkFeatures.GMS_CORE_EMOJI,
+                    "Enables retrieval of the emoji font through GMS Core "
+                            + "improving emoji glyph coverage."),
             Flag.baseFeature(
                     NetworkServiceFeatures.TRUST_TOKENS, "Enables the prototype Trust Tokens API."),
             Flag.baseFeature(AwFeatures.WEBVIEW_APPS_PACKAGE_NAMES_ALLOWLIST,
diff --git a/ash/app_list/views/app_list_bubble_apps_page.cc b/ash/app_list/views/app_list_bubble_apps_page.cc
index 49f363d..4cea32f 100644
--- a/ash/app_list/views/app_list_bubble_apps_page.cc
+++ b/ash/app_list/views/app_list_bubble_apps_page.cc
@@ -54,6 +54,8 @@
       views::ScrollView::ScrollBarMode::kDisabled);
   // Don't paint a background. The bubble already has one.
   scroll_view_->SetBackgroundColor(absl::nullopt);
+  // Arrow keys are used to select app icons.
+  scroll_view_->SetAllowKeyboardScrolling(false);
 
   auto scroll_contents = std::make_unique<views::View>();
   auto* layout = scroll_contents->SetLayoutManager(
diff --git a/ash/app_list/views/app_list_bubble_view_unittest.cc b/ash/app_list/views/app_list_bubble_view_unittest.cc
index a9550abd..868f13f 100644
--- a/ash/app_list/views/app_list_bubble_view_unittest.cc
+++ b/ash/app_list/views/app_list_bubble_view_unittest.cc
@@ -17,6 +17,7 @@
 #include "ash/app_list/views/app_list_bubble_apps_page.h"
 #include "ash/app_list/views/app_list_bubble_search_page.h"
 #include "ash/app_list/views/assistant/app_list_bubble_assistant_page.h"
+#include "ash/app_list/views/recent_apps_view.h"
 #include "ash/app_list/views/search_box_view.h"
 #include "ash/constants/ash_features.h"
 #include "ash/shell.h"
@@ -76,6 +77,19 @@
       std::move(search_result));
 }
 
+void AddRecentApps(int num_apps) {
+  auto* search_model = Shell::Get()->app_list_controller()->GetSearchModel();
+  for (int i = 0; i < num_apps; i++) {
+    auto result = std::make_unique<TestSearchResult>();
+    result->set_result_id(base::NumberToString(i));
+    result->set_result_type(AppListSearchResultType::kInstalledApp);
+    // TODO(crbug.com/1216662): Replace with a real display type after the ML
+    // team gives us a way to query directly for recent apps.
+    result->set_display_type(SearchResultDisplayType::kChip);
+    search_model->results()->Add(std::move(result));
+  }
+}
+
 AppListBubblePresenter* GetBubblePresenter() {
   return Shell::Get()->app_list_controller()->bubble_presenter_for_test();
 }
@@ -349,6 +363,29 @@
   EXPECT_FALSE(app_item->HasFocus());
 }
 
+TEST_F(AppListBubbleViewTest, DownArrowSelectsRecentsThenApps) {
+  // Create enough apps to require scrolling.
+  AddAppItems(50);
+  // Create enough recent apps that the recents section will show.
+  const int kNumRecentApps = 5;
+  AddRecentApps(kNumRecentApps);
+  ShowAppList();
+
+  // Pressing down arrow moves focus through the recent apps. It does not
+  // trigger ScrollView scrolling.
+  auto* recent_apps = GetAppListTestHelper()->GetBubbleRecentAppsView();
+  auto* focus_manager = GetAppsPage()->GetFocusManager();
+  for (int i = 0; i < kNumRecentApps; i++) {
+    PressAndReleaseKey(ui::VKEY_DOWN);
+    EXPECT_TRUE(recent_apps->Contains(focus_manager->GetFocusedView()));
+  }
+
+  // Pressing down arrow again moves focus into the apps grid.
+  PressAndReleaseKey(ui::VKEY_DOWN);
+  auto* apps_grid = GetAppListTestHelper()->GetScrollableAppsGridView();
+  EXPECT_TRUE(apps_grid->Contains(focus_manager->GetFocusedView()));
+}
+
 TEST_F(AppListBubbleViewTest, BubbleSizedForDisplay) {
   UpdateDisplay("800x800");
   AppListBubblePresenter* presenter = GetBubblePresenter();
diff --git a/ash/app_list/views/contents_view.cc b/ash/app_list/views/contents_view.cc
index 86dd864..651bc1c 100644
--- a/ash/app_list/views/contents_view.cc
+++ b/ash/app_list/views/contents_view.cc
@@ -383,10 +383,9 @@
   if (!search_box->GetWidget())
     return;
 
-  search_box->UpdateLayout(
-      1.f, current_state, GetSearchBoxSize(current_state).height(),
-      target_state, GetSearchBoxSize(target_state).height());
-  search_box->UpdateBackground(1.f, current_state, target_state);
+  search_box->UpdateLayout(target_state,
+                           GetSearchBoxSize(target_state).height());
+  search_box->UpdateBackground(target_state);
 
   gfx::Rect target_bounds = GetSearchBoxBounds(target_state);
   target_bounds = search_box->GetViewBoundsForSearchBoxContentsBounds(
@@ -654,9 +653,8 @@
       GetStateForPageIndex(pagination_model_.selected_page());
   SearchBoxView* const search_box = GetSearchBoxView();
   const int search_box_height = GetSearchBoxSize(current_state).height();
-  search_box->UpdateLayout(1.f, current_state, search_box_height, current_state,
-                           search_box_height);
-  search_box->UpdateBackground(1.f, current_state, current_state);
+  search_box->UpdateLayout(current_state, search_box_height);
+  search_box->UpdateBackground(current_state);
 
   // Reset the transform which can be set through animation
   search_box->GetWidget()->GetLayer()->SetTransform(gfx::Transform());
diff --git a/ash/app_list/views/search_box_view.cc b/ash/app_list/views/search_box_view.cc
index bed8293..e0a2024 100644
--- a/ash/app_list/views/search_box_view.cc
+++ b/ash/app_list/views/search_box_view.cc
@@ -357,38 +357,26 @@
   }
 }
 
-void SearchBoxView::UpdateBackground(double progress,
-                                     AppListState current_state,
-                                     AppListState target_state) {
-  SetSearchBoxBackgroundCornerRadius(gfx::Tween::LinearIntValueBetween(
-      progress, GetSearchBoxBorderCornerRadiusForState(current_state),
-      GetSearchBoxBorderCornerRadiusForState(target_state)));
-  const SkColor color = gfx::Tween::ColorValueBetween(
-      progress, GetBackgroundColorForState(current_state),
-      GetBackgroundColorForState(target_state));
-  UpdateBackgroundColor(color);
+void SearchBoxView::UpdateBackground(AppListState target_state) {
+  SetSearchBoxBackgroundCornerRadius(
+      GetSearchBoxBorderCornerRadiusForState(target_state));
+  UpdateBackgroundColor(GetBackgroundColorForState(target_state));
   UpdateTextColor();
 }
 
-void SearchBoxView::UpdateLayout(double progress,
-                                 AppListState current_state,
-                                 int current_state_height,
-                                 AppListState target_state,
+void SearchBoxView::UpdateLayout(AppListState target_state,
                                  int target_state_height) {
   // Horizontal margins are selected to match search box icon's vertical
   // margins.
-  const int horizontal_spacing = gfx::Tween::LinearIntValueBetween(
-      progress, (current_state_height - kSearchBoxIconSize) / 2,
-      (target_state_height - kSearchBoxIconSize) / 2);
+  const int horizontal_spacing = (target_state_height - kSearchBoxIconSize) / 2;
   const int horizontal_right_padding =
       horizontal_spacing - (kSearchBoxButtonSizeDip - kSearchBoxIconSize) / 2;
   box_layout()->set_inside_border_insets(
       gfx::Insets(0, horizontal_spacing, 0, horizontal_right_padding));
   box_layout()->set_between_child_spacing(horizontal_spacing);
   if (show_assistant_button()) {
-    assistant_button()->layer()->SetOpacity(gfx::Tween::LinearIntValueBetween(
-        progress, GetAssistantButtonOpacityForState(current_state),
-        GetAssistantButtonOpacityForState(target_state)));
+    assistant_button()->layer()->SetOpacity(
+        GetAssistantButtonOpacityForState(target_state));
   }
   InvalidateLayout();
 }
diff --git a/ash/app_list/views/search_box_view.h b/ash/app_list/views/search_box_view.h
index 470c7d86..c6c0278 100644
--- a/ash/app_list/views/search_box_view.h
+++ b/ash/app_list/views/search_box_view.h
@@ -78,16 +78,10 @@
 
   // Updates the search box's background corner radius and color based on the
   // state of AppListModel.
-  void UpdateBackground(double progress,
-                        AppListState current_state,
-                        AppListState target_state);
+  void UpdateBackground(AppListState target_state);
 
   // Updates the search box's layout based on the state of AppListModel.
-  void UpdateLayout(double progress,
-                    AppListState current_state,
-                    int current_state_height,
-                    AppListState target_state,
-                    int target_state_height);
+  void UpdateLayout(AppListState target_state, int target_state_height);
 
   // Returns background border corner radius in the given state.
   int GetSearchBoxBorderCornerRadiusForState(AppListState state) const;
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 155f187..b78d955 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -3825,7 +3825,7 @@
         Collecting network information
       </message>
       <message name="IDS_ASH_DEBUG_PACKET_CAPTURE_DESCRIPTION" desc="The message shown on notification bubble about ongoing network packet capture operation and the description of how to stop by clicking the button.">
-        You can stop packet capture at any time.
+        You can stop packet capture at any time
       </message>
       <message name="IDS_ASH_DEBUG_STOP_PACKET_CAPTURE_BUTTON" desc="The label on notification button for user to stop the ongoing packet capture operation.">
         Stop
diff --git a/ash/ash_strings_grd/IDS_ASH_DEBUG_PACKET_CAPTURE_DESCRIPTION.png.sha1 b/ash/ash_strings_grd/IDS_ASH_DEBUG_PACKET_CAPTURE_DESCRIPTION.png.sha1
index 1c65fbc..2b74e832 100644
--- a/ash/ash_strings_grd/IDS_ASH_DEBUG_PACKET_CAPTURE_DESCRIPTION.png.sha1
+++ b/ash/ash_strings_grd/IDS_ASH_DEBUG_PACKET_CAPTURE_DESCRIPTION.png.sha1
@@ -1 +1 @@
-70dba41140e3543c07b674d0b7e4b060db1982a8
\ No newline at end of file
+4cc16215fe9db110cce74b98b43ff6ccec1f708d
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_DEBUG_PACKET_CAPTURE_STARTED.png.sha1 b/ash/ash_strings_grd/IDS_ASH_DEBUG_PACKET_CAPTURE_STARTED.png.sha1
index 1c65fbc..2b74e832 100644
--- a/ash/ash_strings_grd/IDS_ASH_DEBUG_PACKET_CAPTURE_STARTED.png.sha1
+++ b/ash/ash_strings_grd/IDS_ASH_DEBUG_PACKET_CAPTURE_STARTED.png.sha1
@@ -1 +1 @@
-70dba41140e3543c07b674d0b7e4b060db1982a8
\ No newline at end of file
+4cc16215fe9db110cce74b98b43ff6ccec1f708d
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_DEBUG_STOP_PACKET_CAPTURE_BUTTON.png.sha1 b/ash/ash_strings_grd/IDS_ASH_DEBUG_STOP_PACKET_CAPTURE_BUTTON.png.sha1
index 1c65fbc..2b74e832 100644
--- a/ash/ash_strings_grd/IDS_ASH_DEBUG_STOP_PACKET_CAPTURE_BUTTON.png.sha1
+++ b/ash/ash_strings_grd/IDS_ASH_DEBUG_STOP_PACKET_CAPTURE_BUTTON.png.sha1
@@ -1 +1 @@
-70dba41140e3543c07b674d0b7e4b060db1982a8
\ No newline at end of file
+4cc16215fe9db110cce74b98b43ff6ccec1f708d
\ No newline at end of file
diff --git a/ash/public/cpp/app_list/app_list_features.cc b/ash/public/cpp/app_list/app_list_features.cc
index eb60bd4..e77bede 100644
--- a/ash/public/cpp/app_list/app_list_features.cc
+++ b/ash/public/cpp/app_list/app_list_features.cc
@@ -10,8 +10,6 @@
 
 namespace app_list_features {
 
-const base::Feature kEnableAppDataSearch{"EnableAppDataSearch",
-                                         base::FEATURE_DISABLED_BY_DEFAULT};
 const base::Feature kEnableAppRanker{"EnableAppRanker",
                                      base::FEATURE_ENABLED_BY_DEFAULT};
 const base::Feature kEnableZeroStateAppsRanker{
@@ -56,10 +54,6 @@
 const base::Feature kLauncherQueryHighlighting{
     "LauncherQueryHighlighting", base::FEATURE_ENABLED_BY_DEFAULT};
 
-bool IsAppDataSearchEnabled() {
-  return base::FeatureList::IsEnabled(kEnableAppDataSearch);
-}
-
 bool IsAppRankerEnabled() {
   return base::FeatureList::IsEnabled(kEnableAppRanker);
 }
diff --git a/ash/public/cpp/app_list/app_list_features.h b/ash/public/cpp/app_list/app_list_features.h
index 2b8b7d5..5d084aa 100644
--- a/ash/public/cpp/app_list/app_list_features.h
+++ b/ash/public/cpp/app_list/app_list_features.h
@@ -18,9 +18,6 @@
 // Please keep these features sorted.
 // TODO(newcomer|weidongg): Sort these features.
 
-// Enables in-app data search.
-ASH_PUBLIC_EXPORT extern const base::Feature kEnableAppDataSearch;
-
 // Enable app ranking models.
 ASH_PUBLIC_EXPORT extern const base::Feature kEnableAppRanker;
 
@@ -85,7 +82,6 @@
 // Enables search query highlighting in the launcher.
 ASH_PUBLIC_EXPORT extern const base::Feature kLauncherQueryHighlighting;
 
-bool ASH_PUBLIC_EXPORT IsAppDataSearchEnabled();
 bool ASH_PUBLIC_EXPORT IsAppRankerEnabled();
 bool ASH_PUBLIC_EXPORT IsZeroStateAppsRankerEnabled();
 bool ASH_PUBLIC_EXPORT IsQueryBasedMixedTypesRankerEnabled();
diff --git a/ash/rotator/screen_rotation_animator.cc b/ash/rotator/screen_rotation_animator.cc
index a4b18c7..94f4140 100644
--- a/ash/rotator/screen_rotation_animator.cc
+++ b/ash/rotator/screen_rotation_animator.cc
@@ -177,7 +177,7 @@
 void ScreenRotationAnimator::SetScreenRotationAnimatorForTest(
     aura::Window* root_window,
     std::unique_ptr<ScreenRotationAnimator> animator) {
-  root_window->SetProperty(kScreenRotationAnimatorKey, animator.release());
+  root_window->SetProperty(kScreenRotationAnimatorKey, std::move(animator));
 }
 
 ScreenRotationAnimator::ScreenRotationAnimator(aura::Window* root_window)
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb
index 083464ab..37d5d70 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb
@@ -2,7 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ta">
 <translation id="1036550831858290950">தற்போதைய தாவலை புக்மார்க்காகச் சேமிக்கும்</translation>
-<translation id="104962181688258143">கோப்புகள் பயன்பாட்டைத் திறக்கும்</translation>
+<translation id="104962181688258143">ஃபைல்கள்  பயன்பாட்டைத் திறக்கும்</translation>
 <translation id="1122869341872663659"><ph name="QUERY" />க்கான <ph name="N" /> தேடல் முடிவுகளைக் காட்டுகிறது</translation>
 <translation id="1195667586424773550">தாவலின் முகவரிப் பட்டிக்கு இணைப்பை இழுக்கவும்</translation>
 <translation id="1251638888133819822">முழுத்திரைப் பெரிதாக்கியை இயக்கும்/முடக்கும்</translation>
@@ -161,7 +161,7 @@
 <translation id="6671538777808758331">உங்கள் தேடலுக்கான அடுத்த பொருத்தத்திற்குச் செல்லும்</translation>
 <translation id="6681606577947445973"><ph name="REFRESH" /> அல்லது <ph name="CTRL" /><ph name="SEPARATOR" /><ph name="R" /></translation>
 <translation id="6690765639083431875">சாளரத்தை இடதுபுறத்தில் டாக் செய்யும்</translation>
-<translation id="6692847073476874842">கோப்புகள் பயன்பாட்டில் ஃபைலின் மாதிரிக்காட்சியைக் காட்டும்</translation>
+<translation id="6692847073476874842">ஃபைல்கள்  பயன்பாட்டில் ஃபைலின் மாதிரிக்காட்சியைக் காட்டும்</translation>
 <translation id="671928215901716392">திரையைப் பூட்டு</translation>
 <translation id="6727005317916125192">முந்தைய பலகம்</translation>
 <translation id="6740781404993465795">அடுத்த சொல் அல்லது எழுத்தைத் தேர்ந்தெடுக்கும்</translation>
@@ -201,7 +201,7 @@
 <translation id="8537650670971624753">தேடல் பயன்முறையிலிருந்து வெளியேறவும்</translation>
 <translation id="85690795166292698">இணைப்பை புதிய தாவலில் திறக்கும்</translation>
 <translation id="8609384513243082612">புதிய தாவலைத் திறக்கும்</translation>
-<translation id="8644639153978066712">கோப்புகள் ஆப்ஸில் உள்ள மறைக்கப்பட்ட கோப்புகளைக் காண்பிக்கும்</translation>
+<translation id="8644639153978066712">ஃபைல்கள்  ஆப்ஸில் உள்ள மறைக்கப்பட்ட கோப்புகளைக் காண்பிக்கும்</translation>
 <translation id="8717459106217102612">முந்தைய சொல்லை அல்லது எழுத்தைத் தேர்ந்தெடுக்கும்</translation>
 <translation id="8727232706774971183">உங்கள் அறிவிப்புகளைக் காட்டும்</translation>
 <translation id="8855885154700222542">முழுத்திரை விசை</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb
index 3037993d..ac44c48 100644
--- a/ash/strings/ash_strings_be.xtb
+++ b/ash/strings/ash_strings_be.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Дадаць падключэнне</translation>
 <translation id="2961963223658824723">Нешта пайшло не так. Паўтарыце спробу праз некалькі секунд.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Не ўдалося спампаваць файлы для распазнавання маўлення на наступнай мове: <ph name="LANGUAGE" /></translation>
 <translation id="2970920913501714344">Усталёўваць праграмы, пашырэнні, тэмы.</translation>
 <translation id="2977598380246111477">Наступная лічба</translation>
 <translation id="2992327365391326550">Стан кнопкі мікрафона прылады – "выключана".</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Разблакіруйце прыладу бацькоўскім кодам</translation>
 <translation id="4702647871202761252">Экран прыватнасці выключаны</translation>
 <translation id="4705716602320768426">Пакінуць водгук</translation>
+<translation id="4706121060329443414">Спроба спампоўвання будзе зроблена пазней. Пакуль што аўдыяматэрыял будзе адпраўлены для апрацоўкі ў Google.</translation>
 <translation id="4731797938093519117">Бацькоўскі доступ</translation>
 <translation id="4734965478015604180">Гарызантальна</translation>
 <translation id="4735498845456076464">Змянілася прызначэнне спалучэння клавіш <ph name="LAUNCHER_KEY_NAME" /> + лічба. Каб выканаць дзеянне функцыянальнай клавішы, націсніце <ph name="LAUNCHER_KEY_NAME" /> + адну з клавіш верхняга рада.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Каб выключыць галасавую зваротную сувязь, націсніце Ctrl + Alt + Z.</translation>
 <translation id="5601503069213153581">PIN-код</translation>
 <translation id="5619862035903135339">Згодна з палітыкай, зададзенай адміністратарам, здыманне экрана адключана</translation>
+<translation id="5620281292257375798">Для ўнутранага карыстання</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Раздым для мікрафона</translation>
 <translation id="5649768706273821470">Праслухаць</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Спыніць запіс</translation>
 <translation id="607652042414456612">Ваш камп'ютар бачны для прылад Bluetooth паблізу, ён будзе адлюстроўвацца як "<ph name="NAME" />" з адрасам <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">Палітыка, зададзеная адміністратарам, адключае запіс экрана, калі на ім паказваецца прыватнае змесціва</translation>
+<translation id="6114505516289286752">Спампаваны файлы для распазнавання маўлення на наступнай мове: <ph name="LANGUAGE" /></translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Памочнік Google недаступны ў гасцявым сеансе.</translation>
 <translation id="6137566720514957455">Адкрыць дыялогавае акно выдалення ўліковага запісу <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Ёсць інфармацыя, звязаная з вылучаным вамі фрагментам. Каб атрымаць да яе доступ, націсніце стрэлку ўверх.</translation>
 <translation id="6818242057446442178">Назад на адно слова</translation>
 <translation id="6820676911989879663">Зрабіце перапынак!</translation>
+<translation id="6836499262298959512">Небяспечны файл</translation>
 <translation id="6837064795450991317">Схаваць панэль</translation>
 <translation id="6850010208275816200">Ваша бягучая праграма знаходзіцца ў поўнаэкранным рэжыме. Выйдзіце з яго, калі праграма патрабуе ад вас увесці пароль.</translation>
 <translation id="6852052252232534364">Націсніце, каб актываваць</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">Дакраніцеся да сканера адбіткаў пальцаў</translation>
 <translation id="7904094684485781019">Адміністратар уліковага запісу забараніў уваход у некалькі ўліковых запісаў.</translation>
+<translation id="7930731167419639574">Запісы голасу апрацоўваюцца на прыладзе і нікуды не перадаюцца. Галасавы ўвод працуе па-за сеткай.</translation>
 <translation id="7933084174919150729">Памочнік Google даступны толькі ў асноўным профілі.</translation>
 <translation id="79341161159229895">Уліковым запісам кіруюць <ph name="FIRST_PARENT_EMAIL" /> і <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Каб прагледзець буфер абмену, націсніце <ph name="SHORTCUT_KEY_NAME" /> + V. Апошнія 5 скапіраваных вамі элементаў захоўваюцца ў буферы абмену.</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index a1de2fd..0bebbdd 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Přidat připojení</translation>
 <translation id="2961963223658824723">Něco se pokazilo. Zkuste to znovu za několik minut.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Řečové soubory pro jazyk <ph name="LANGUAGE" /> se nepodařilo stáhnout</translation>
 <translation id="2970920913501714344">Instalovat aplikace, rozšíření a motivy</translation>
 <translation id="2977598380246111477">Další číslo</translation>
 <translation id="2992327365391326550">Mikrofon zařízení je vypnutý.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Odemkněte zařízení rodičovským kódem</translation>
 <translation id="4702647871202761252">Obrazovka ochrany soukromí je vypnutá</translation>
 <translation id="4705716602320768426">Poslat zpětnou vazbu</translation>
+<translation id="4706121060329443414">Soubory zkusíme stáhnout později. Prozatím se řeč bude ke zpracování odesílat do Googlu.</translation>
 <translation id="4731797938093519117">Rodičovský přístup</translation>
 <translation id="4734965478015604180">Na šířku</translation>
 <translation id="4735498845456076464">Klávesová zkratka <ph name="LAUNCHER_KEY_NAME" /> + číslo se změnila. Pokud chcete použít funkční klávesy, stiskněte <ph name="LAUNCHER_KEY_NAME" /> + klávesu na horním řádku.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Hlasovou odezvu vypnete stisknutím kláves Ctrl + Alt + Z.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">Zásady administrátora záznam obrazovky zakazují</translation>
+<translation id="5620281292257375798">Pouze pro interní použití</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Konektor mikrofonu</translation>
 <translation id="5649768706273821470">Poslechnout si</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Zastavit nahrávání</translation>
 <translation id="607652042414456612">Váš počítač mohou objevit okolní zařízení Bluetooth, ve kterých se bude zobrazovat s názvem „<ph name="NAME" />“ a adresou <ph name="ADDRESS" />.</translation>
 <translation id="6094290315941448991">Zásady administrátora zakazují nahrávání obrazovky, když je viditelný důvěrný obsah</translation>
+<translation id="6114505516289286752">Byly staženy řečové soubory pro jazyk <ph name="LANGUAGE" /></translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Asistent Google v relaci hosta není k dispozici.</translation>
 <translation id="6137566720514957455">Otevřít dialogové okno odstranění účtu <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">K dispozici jsou informace související s vaším výběrem. Zobrazíte je pomocí šipky nahoru.</translation>
 <translation id="6818242057446442178">Zpět o slovo</translation>
 <translation id="6820676911989879663">Dejte si pauzu.</translation>
+<translation id="6836499262298959512">Nebezpečný soubor</translation>
 <translation id="6837064795450991317">Skrýt plochu</translation>
 <translation id="6850010208275816200">Aktuální aplikace je v režimu celé obrazovky. Pokud vás aplikace požádá o heslo, nejdřív režim celé obrazovky ukončete.</translation>
 <translation id="6852052252232534364">Aktivujte kliknutím</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">Dotkněte se snímače otisků prstů</translation>
 <translation id="7904094684485781019">Správce tohoto účtu zakázal vícenásobné přihlášení.</translation>
+<translation id="7930731167419639574">Řeč se teď zpracovává místně a diktování funguje offline.</translation>
 <translation id="7933084174919150729">Asistent Google je k dispozici pouze pro primární profil.</translation>
 <translation id="79341161159229895">Správci účtu: <ph name="FIRST_PARENT_EMAIL" /> a <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Stisknutím kláves <ph name="SHORTCUT_KEY_NAME" /> + V zobrazíte schránku. Ve schránce je uloženo posledních pět zkopírovaných položek.</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 0c1c59a..cce705cc 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Lisää yhteys</translation>
 <translation id="2961963223658824723">Jotain meni pieleen. Yritä uudelleen parin sekunnin kuluttua.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Puhetiedostojen (<ph name="LANGUAGE" />) lataaminen epäonnistui</translation>
 <translation id="2970920913501714344">asentaa sovelluksia, laajennuksia ja teemoja</translation>
 <translation id="2977598380246111477">Seuraava numero</translation>
 <translation id="2992327365391326550">Laitteen mikrofonipainike ei ole päällä.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Avaa lukitus vanhemman koodilla</translation>
 <translation id="4702647871202761252">Näytönsuoja on pois päältä</translation>
 <translation id="4705716602320768426">Tiedostopalaute</translation>
+<translation id="4706121060329443414">Lataamista yritetään myöhemmin. Puhe lähetetään toistaiseksi Googlelle käsittelyyn.</translation>
 <translation id="4731797938093519117">Avaus vanhemmille</translation>
 <translation id="4734965478015604180">Vaakasuora</translation>
 <translation id="4735498845456076464">Pikanäppäinyhdistelmä <ph name="LAUNCHER_KEY_NAME" /> + numeronäppäin on muuttunut. Jos haluat käyttää toimintonäppäimiä, paina <ph name="LAUNCHER_KEY_NAME" /> + ylärivin näppäin.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Poista äänipalaute käytöstä painamalla Ctrl+Alt+Z.</translation>
 <translation id="5601503069213153581">PIN-koodi</translation>
 <translation id="5619862035903135339">Järjestelmänvalvojakäytäntö poistaa kuvakaappauksen käytöstä</translation>
+<translation id="5620281292257375798">Vain sisäinen</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Mikrofoniliitäntä</translation>
 <translation id="5649768706273821470">Kuuntele</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Lopeta tallennus</translation>
 <translation id="607652042414456612">Lähellä olevat Bluetooth-laitteet voivat löytää tietokoneesi. Tietokoneesi nimi on <ph name="NAME" /> ja osoite <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">Järjestelmänvalvojakäytäntö poistaa Näytön tallentajan käytöstä, kun näkyvissä on luottamuksellista sisältöä</translation>
+<translation id="6114505516289286752">Puhetiedostot (<ph name="LANGUAGE" />) ladattu</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Google Assistantia ei voi käyttää Vierailija-käyttökerralla.</translation>
 <translation id="6137566720514957455">Avaa poiston valintaikkuna: <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Valintaasi liittyvää tietoa on saatavilla. Paina ylänuolta, niin näet tiedot.</translation>
 <translation id="6818242057446442178">Yksi sana taaksepäin</translation>
 <translation id="6820676911989879663">Pidä tauko</translation>
+<translation id="6836499262298959512">Vaarallinen tiedosto</translation>
 <translation id="6837064795450991317">Piilota työpöytäpalkki</translation>
 <translation id="6850010208275816200">Nykyinen sovellus näkyy koko näytöllä. Jos sovellus pyytää salasanaa, poistu ensin koko näytön tilasta.</translation>
 <translation id="6852052252232534364">Klikkaa: aktivoi</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">Kosketa sormenjälkitunnistinta</translation>
 <translation id="7904094684485781019">Tämän tilin järjestelmänvalvoja on estänyt useisiin tileihin kirjautumisen.</translation>
+<translation id="7930731167419639574">Puhe käsitellään nyt paikallisesti, ja sanelu toimii ilman verkkoyhteyttä</translation>
 <translation id="7933084174919150729">Google Assistant on käytettävissä vain ensisijaisella profiililla.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> ja <ph name="SECOND_PARENT_EMAIL" /> hallinnoivat tiliä</translation>
 <translation id="793716872548410480">Katso leikepöytä painamalla <ph name="SHORTCUT_KEY_NAME" /> + V. Viisi viimeksi kopioimaasi kohdetta tallennetaan leikepöydälle.</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 432cab6..8a822485 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Magdagdag ng koneksyon</translation>
 <translation id="2961963223658824723">Nagkaproblema. Subukang muli sa loob ng ilang segundo.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Hindi ma-download ang mga <ph name="LANGUAGE" /> na speech file</translation>
 <translation id="2970920913501714344">Mag-install ng mga app, extension, at tema</translation>
 <translation id="2977598380246111477">Susunod na numero</translation>
 <translation id="2992327365391326550">Naka-off ang button ng mikropono ng device.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">I-unlock ang device gamit ang parent code</translation>
 <translation id="4702647871202761252">Naka-off ang privacy screen</translation>
 <translation id="4705716602320768426">Magbigay ng feedback</translation>
+<translation id="4706121060329443414">Susubukan mamaya ang pag-download. Ipapadala ang speech sa Google para sa pagpoproseso sa ngayon.</translation>
 <translation id="4731797938093519117">Pangunahing access</translation>
 <translation id="4734965478015604180">Horizontal</translation>
 <translation id="4735498845456076464">Nagbago ang keyboard shortcut na <ph name="LAUNCHER_KEY_NAME" /> + Numero. Para magamit ang mga function key, pindutin ang <ph name="LAUNCHER_KEY_NAME" /> key + isang key sa itaas na row.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Pindutin ang Ctrl + Alt + Z upang i-disable ang pasalitang feedback.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">Dini-disable ng patakaran ng administrator ang screen capture</translation>
+<translation id="5620281292257375798">Internal lang</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Jack ng mikropono</translation>
 <translation id="5649768706273821470">Pakinggan</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Ihinto ang pag-record</translation>
 <translation id="607652042414456612">Ang iyong computer ay katuklas-tuklas sa mga kalapit na Bluetooth device at lalabas bilang "<ph name="NAME" />" na may address na <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">Dini-disable ng patakaran ng administrator ang pag-record ng screen kapag may nakikitang kumpidensyal na content</translation>
+<translation id="6114505516289286752">Na-download na ang mga <ph name="LANGUAGE" /> na speech file</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Hindi available ang Google Assistant sa session ng bisita.</translation>
 <translation id="6137566720514957455">Buksan ang alisin ang dialog para sa <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Available ang impormasyong nauugnay sa iyong pinili. Gamitin ang Pataas na arrow key para ma-access.</translation>
 <translation id="6818242057446442178">Bumalik nang paisa-isang salita</translation>
 <translation id="6820676911989879663">Magpahinga!</translation>
+<translation id="6836499262298959512">Mapanganib na file</translation>
 <translation id="6837064795450991317">Itago ang deskbar</translation>
 <translation id="6850010208275816200">Naka-full screen ang iyong kasalukuyang app. Kung hihingin ng app ang iyong password, umalis muna sa full screen.</translation>
 <translation id="6852052252232534364">I-activate</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">Pindutin ang fingerprint sensor</translation>
 <translation id="7904094684485781019">Hindi pinayagan ng administrator para sa account na ito ang multiple na pag-sign in.</translation>
+<translation id="7930731167419639574">Lokal nang ipinoproseso ang speech at gumagana offline ang Dictation.</translation>
 <translation id="7933084174919150729">Available lang ang Google Assistant para sa pangunahing profile.</translation>
 <translation id="79341161159229895">Pinamamahalaan nina <ph name="FIRST_PARENT_EMAIL" /> at <ph name="SECOND_PARENT_EMAIL" /> ang account</translation>
 <translation id="793716872548410480">Pindutin ang <ph name="SHORTCUT_KEY_NAME" /> + V para tingnan ang iyong clipboard. Naka-save sa iyong clipboard ang huling 5 item na kinopya mo.</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index fa89bf97..71fd1ee 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">कनेक्शन जोड़ें</translation>
 <translation id="2961963223658824723">कुछ गड़बड़ी हो गई. कुछ सेकंड में फिर से कोशिश करें.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866"><ph name="LANGUAGE" /> स्पीच फ़ाइलें डाउनलोड नहीं की जा सकीं</translation>
 <translation id="2970920913501714344">ऐप्लिकेशन, एक्सटेंशन, और थीम इंस्टॉल करें</translation>
 <translation id="2977598380246111477">अगला नंबर</translation>
 <translation id="2992327365391326550">डिवाइस के माइक्रोफ़ोन का बटन बंद है.</translation>
@@ -485,6 +486,7 @@
 <translation id="4696813013609194136">माता-पिता के कोड से डिवाइस अनलॉक करें</translation>
 <translation id="4702647871202761252">निजता स्क्रीन बंद है</translation>
 <translation id="4705716602320768426">सुझाव/शिकायत/राय दें</translation>
+<translation id="4706121060329443414">बाद में, डाउनलोड करने की कोशिश की जाएगी. स्पीच को प्रोसेस के लिए, Google के पास भेजा जाता है.</translation>
 <translation id="4731797938093519117">अभिभावक ऐक्सेस</translation>
 <translation id="4734965478015604180">हॉरिजेंटल व्यू</translation>
 <translation id="4735498845456076464"><ph name="LAUNCHER_KEY_NAME" /> + Number कीबोर्ड शॉर्टकट बदल गया है. फ़ंक्शन बटन इस्तेमाल करने के लिए, <ph name="LAUNCHER_KEY_NAME" /> बटन + सबसे ऊपर की लाइन का कोई एक बटन दबाएं.</translation>
@@ -590,6 +592,7 @@
 <translation id="5600837773213129531">बोला गया फ़ीडबैक अक्षम करने के लिए Ctrl + Alt + Z दबाएं.</translation>
 <translation id="5601503069213153581">पिन</translation>
 <translation id="5619862035903135339">एडमिन नीति के तहत, स्क्रीन कैप्चर की सुविधा को बंद कर दिया जाता है</translation>
+<translation id="5620281292257375798">सिर्फ़ अंदरूनी</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">माइक जैक</translation>
 <translation id="5649768706273821470">सुनें</translation>
@@ -658,6 +661,7 @@
 <translation id="6073451960410192870">रिकॉर्डिंग बंद करें</translation>
 <translation id="607652042414456612">आपका कंप्यूर आस-पास के ब्लूटूथ डिवाइस के लिए खोजे जाने योग्य है और वह "<ph name="NAME" />" के रूप में <ph name="ADDRESS" /> पते के साथ दिखाई देगा</translation>
 <translation id="6094290315941448991">एडमिन नीति के तहत, गोपनीय कॉन्टेंट दिखने पर स्क्रीन रिकॉर्डिंग की सुविधा बंद कर दी जाती है</translation>
+<translation id="6114505516289286752"><ph name="LANGUAGE" /> स्पीच फ़ाइलें डाउनलोड हो गई हैं</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Google Assistant की सुविधा मेहमान के तौर पर ब्राउज़ करने के सेशन में उपलब्ध नहीं है.</translation>
 <translation id="6137566720514957455"><ph name="USER_EMAIL_ADDRESS" /> के लिए, खाता हटाएं वाला डायलॉग खोलें</translation>
@@ -739,6 +743,7 @@
 <translation id="6816797338148849397">आपके चुने गए कॉन्टेंट से जुड़ी जानकारी उपलब्ध है. इसे ऐक्सेस करने के लिए, अप ऐरो बटन इस्तेमाल करें.</translation>
 <translation id="6818242057446442178">एक शब्द पीछे जाएं</translation>
 <translation id="6820676911989879663">आज के लिए इतना ही!</translation>
+<translation id="6836499262298959512">यह फ़ाइल सुरक्षित नहीं है</translation>
 <translation id="6837064795450991317">डेस्कबार छिपाएं</translation>
 <translation id="6850010208275816200">आपका मौजूदा ऐप्लिकेशन, फ़ुल स्क्रीन मोड में है. अगर ऐप्लिकेशन आपका पासवर्ड मांगे, तो पहले फ़ुल स्क्रीन मोड से बाहर निकलें.</translation>
 <translation id="6852052252232534364">चालू करने के लिए क्लिक करें</translation>
@@ -879,6 +884,7 @@
 <translation id="7901405293566323524">फ़ोन हब</translation>
 <translation id="7902625623987030061">फ़िंगरप्रिंट सेंसर को छुएं</translation>
 <translation id="7904094684485781019">इस खाते के एडमिन ने एक से ज़्यादा साइन-इन को अस्वीकार कर दिया है.</translation>
+<translation id="7930731167419639574">स्पीच को स्थानीय तौर पर प्रोसेस किया जाता है और लिखवाने की सुविधा ऑफ़लाइन काम करती है</translation>
 <translation id="7933084174919150729">Google Assistant सिर्फ़ प्राथमिक प्रोफ़ाइल के लिए उपलब्ध है.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> और <ph name="SECOND_PARENT_EMAIL" /> खाता संभालते हैं</translation>
 <translation id="793716872548410480">क्लिपबोर्ड देखने के लिए, <ph name="SHORTCUT_KEY_NAME" /> + V दबाएं. आपके कॉपी किए गए आखिरी पांच आइटम, क्लिपबोर्ड पर सेव किए गए.</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index 4108b74f..289a8b30 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Tambahkan koneksi</translation>
 <translation id="2961963223658824723">Terjadi kesalahan. Coba lagi dalam beberapa detik.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Tidak dapat mendownload file ucapan bahasa <ph name="LANGUAGE" /></translation>
 <translation id="2970920913501714344">Instal aplikasi, ekstensi, dan tema</translation>
 <translation id="2977598380246111477">Nomor berikutnya</translation>
 <translation id="2992327365391326550">Tombol mikrofon perangkat dinonaktifkan.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Buka kunci perangkat dengan kode orang tua</translation>
 <translation id="4702647871202761252">Layar privasi nonaktif</translation>
 <translation id="4705716602320768426">Kirim masukan</translation>
+<translation id="4706121060329443414">Download akan dicoba nanti. Untuk saat ini, ucapan akan dikirim ke Google untuk diproses.</translation>
 <translation id="4731797938093519117">Akses orang tua</translation>
 <translation id="4734965478015604180">Horizontal</translation>
 <translation id="4735498845456076464">Pintasan keyboard <ph name="LAUNCHER_KEY_NAME" /> + Angka telah diubah. Untuk menggunakan tombol fungsi, tekan tombol <ph name="LAUNCHER_KEY_NAME" /> + tombol di baris atas.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Tekan Ctrl + Alt + Z untuk menonaktifkan masukan lisan.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">Kebijakan administrator akan menonaktifkan tangkapan layar</translation>
+<translation id="5620281292257375798">Khusus internal</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Colokan mikrofon</translation>
 <translation id="5649768706273821470">Dengar</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Berhenti merekam</translation>
 <translation id="607652042414456612">Komputer Anda dapat ditemukan pada perangkat Bluetooth terdekat dan akan muncul sebagai "<ph name="NAME" />" dengan alamat <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">Kebijakan administrator akan menonaktifkan perekaman layar saat konten rahasia terlihat</translation>
+<translation id="6114505516289286752">File ucapan bahasa <ph name="LANGUAGE" /> didownload</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Asisten Google tidak tersedia dalam sesi tamu.</translation>
 <translation id="6137566720514957455">Buka dialog hapus untuk <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Info terkait pilihan Anda tersedia. Gunakan tombol Panah atas untuk mengakses.</translation>
 <translation id="6818242057446442178">Mundur per kata</translation>
 <translation id="6820676911989879663">Istirahatlah sebentar</translation>
+<translation id="6836499262298959512">File berbahaya</translation>
 <translation id="6837064795450991317">Sembunyikan deskbar</translation>
 <translation id="6850010208275816200">Aplikasi saat ini dalam mode layar penuh. Jika aplikasi meminta sandi, keluar dari mode layar penuh terlebih dahulu.</translation>
 <translation id="6852052252232534364">Klik untuk mengaktifkan</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">Sentuh sensor sidik jari</translation>
 <translation id="7904094684485781019">Administrator untuk akun ini menonaktifkan fitur masuk banyak akun.</translation>
+<translation id="7930731167419639574">Ucapan sekarang diproses secara lokal dan Dikte berfungsi secara offline</translation>
 <translation id="7933084174919150729">Asisten Google hanya tersedia untuk profil utama.</translation>
 <translation id="79341161159229895">Akun dikelola oleh <ph name="FIRST_PARENT_EMAIL" /> dan <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Tekan <ph name="SHORTCUT_KEY_NAME" /> + V untuk menampilkan papan klip. Lima item terakhir yang disalin akan disimpan ke papan klip.</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 07f6337..8db35ac 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">接続を追加</translation>
 <translation id="2961963223658824723">エラーが発生しました。数秒後にもう一度お試しください。</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866"><ph name="LANGUAGE" />の音声ファイルをダウンロードできませんでした</translation>
 <translation id="2970920913501714344">アプリ、拡張機能、テーマをインストールする</translation>
 <translation id="2977598380246111477">次の番号</translation>
 <translation id="2992327365391326550">デバイスのマイクボタンはオフになっています。</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">保護者のコードでデバイスをロック解除</translation>
 <translation id="4702647871202761252">プライバシー スクリーンはオフになっています</translation>
 <translation id="4705716602320768426">フィードバックを送信</translation>
+<translation id="4706121060329443414">ダウンロードは後で試行されます。音声は処理のためにひとまず Google に送信されます。</translation>
 <translation id="4731797938093519117">保護者によるアクセス</translation>
 <translation id="4734965478015604180">横</translation>
 <translation id="4735498845456076464">キーボード ショートカット「<ph name="LAUNCHER_KEY_NAME" />+数字」が変更されました。ファンクション キーを使用するには、<ph name="LAUNCHER_KEY_NAME" />+最上列のキーを押してください。</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">音声フィードバックを無効にするには Ctrl+Alt+Z を押してください。</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">管理者が設定したポリシーにより、スクリーン キャプチャは無効になっています</translation>
+<translation id="5620281292257375798">内部使用のみ</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">マイク差込口</translation>
 <translation id="5649768706273821470">聴く</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">撮影を停止</translation>
 <translation id="607652042414456612">お使いのパソコンは近くの Bluetooth デバイスで検出可能です。名前「<ph name="NAME" />」、アドレス「<ph name="ADDRESS" />」のデバイスとして表示されます</translation>
 <translation id="6094290315941448991">管理者のポリシーによって、機密コンテンツが表示されているときは、画面の録画が無効になります</translation>
+<translation id="6114505516289286752"><ph name="LANGUAGE" />の音声ファイルをダウンロードしました</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />。<ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Google アシスタントは、ゲスト セッションではご利用いただけません。</translation>
 <translation id="6137566720514957455"><ph name="USER_EMAIL_ADDRESS" /> の削除ダイアログを開きます</translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">選択した項目に関連する情報があります。上矢印キーでアクセスできます。</translation>
 <translation id="6818242057446442178">1 語戻る</translation>
 <translation id="6820676911989879663">休憩の時間です!</translation>
+<translation id="6836499262298959512">危険なファイル</translation>
 <translation id="6837064795450991317">デスクバーを非表示にする</translation>
 <translation id="6850010208275816200">アプリが全画面表示になっています。パスワードの入力を求められたら、まず全画面表示を終了してください。</translation>
 <translation id="6852052252232534364">クリックして有効にする</translation>
@@ -879,6 +884,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">指紋認証センサーをタッチ</translation>
 <translation id="7904094684485781019">このアカウントの管理者がマルチログインを許可していません。</translation>
+<translation id="7930731167419639574">音声はローカルで処理されました。オフラインで音声入力を使用できます。</translation>
 <translation id="7933084174919150729">Google アシスタントはメインのプロフィールでのみご利用いただけます。</translation>
 <translation id="79341161159229895">このアカウントは <ph name="FIRST_PARENT_EMAIL" /> と <ph name="SECOND_PARENT_EMAIL" /> により管理されています</translation>
 <translation id="793716872548410480"><ph name="SHORTCUT_KEY_NAME" />+V キーを押すと、クリップボードを表示できます。クリップボードに、コピーした最新のアイテム 5 件が保存されています。</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index 7529118d..cee3022 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">კავშირის დამატება</translation>
 <translation id="2961963223658824723">წარმოიქმნა შეფერხება. ცადეთ ხელახლა რამდენიმე წამში.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866"><ph name="LANGUAGE" /> მეტყველების ფაილები ვერ ჩამოიტვირთა</translation>
 <translation id="2970920913501714344">აპების, გაფართოებებისა და თემების ინსტალაცია</translation>
 <translation id="2977598380246111477">შემდეგი ციფრი</translation>
 <translation id="2992327365391326550">მოწყობილობის მიკროფონის ღილაკი გამორთულია.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">განბლოკეთ მოწყობილობა მშობლის კოდით</translation>
 <translation id="4702647871202761252">კონფიდენციალურობის ეკრანი გამორთულია</translation>
 <translation id="4705716602320768426">გამოხმაურება</translation>
+<translation id="4706121060329443414">ჩამოტვირთვას მოგვიანებთ შევეცდებით. ამჟამად მეტყველება გაეგზავნება Google-ს დასამუშავებლად.</translation>
 <translation id="4731797938093519117">მშობლის წვდომა</translation>
 <translation id="4734965478015604180">ჰორიზონტალური</translation>
 <translation id="4735498845456076464">კლავიატურის მალსახმობი „<ph name="LAUNCHER_KEY_NAME" /> + ციფრი“ შეიცვალა. ფუნქციების კლავიშებით სარგებლობისთვის დააჭირეთ კლავიშს <ph name="LAUNCHER_KEY_NAME" /> + კლავიშს ზედა მწკრივში.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">გახმოვანებული უკუკავშირის გასათიშად დააჭირეთ კლავიშთა კომბინაციას: Ctrl + Alt + Z.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">ეკრანის აღბეჭდვა გათიშულია ადმინისტრატორის წესების მიხედვით</translation>
+<translation id="5620281292257375798">მხოლოდ შიდა გამოყენებისთვის</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">მიკროფონის ჯეკი</translation>
 <translation id="5649768706273821470">მოსმენა</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">ჩაწერის შეწყვეტა</translation>
 <translation id="607652042414456612">თქვენი კომპიუტერი ხილულია ახლომდებარე Bluetooth მოწყობილობებისთვის და გამოჩნდება, როგორც „<ph name="NAME" />“ მისამართით <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">ადმინისტრატორის წესების მიხედვით, ეკრანის ჩაწერა გათიშულია, როცა ხილულია კონფიდენციალური კონტენტი</translation>
+<translation id="6114505516289286752"><ph name="LANGUAGE" /> მეტყველების ფაილები ჩამოიტვირთა</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Google ასისტენტი მიუწვდომელია სტუმრის სესიაში.</translation>
 <translation id="6137566720514957455"><ph name="USER_EMAIL_ADDRESS" />-ის ამოშლის დიალოგის გახსნა</translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">ხელმისაწვდომია თქვენს არჩევანთან დაკავშირებული ინფორმაცია. წვდომისთვის გამოიყენეთ კლავიში ზემოთ მიმართული ისრით.</translation>
 <translation id="6818242057446442178">ერთი სიტყვით უკან</translation>
 <translation id="6820676911989879663">შეისვენეთ!</translation>
+<translation id="6836499262298959512">სახიფათო ფაილი</translation>
 <translation id="6837064795450991317">სამუშაო მაგიდების ზოლის დამალვა</translation>
 <translation id="6850010208275816200">ამჟამინდელი აპი გაშვებულია სრულეკრანიან რეჟიმში. თუ აპი პაროლს მოითხოვს, გადით სრულეკრანიანი რეჟიმიდან.</translation>
 <translation id="6852052252232534364">დააწკაპუნეთ გასააქტიურებლად</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">შეეხეთ თითის ანაბეჭდის სენსორს</translation>
 <translation id="7904094684485781019">ამ ანგარიშის ადმინისტრატორმა აკრძალა სისტემაში ერთდროული შესვლა.</translation>
+<translation id="7930731167419639574">მეტყველება ახლა მუშავდება ადგილობრივად, კარნახი კი მუშაობს ხაზგარეშე რეჟიმში</translation>
 <translation id="7933084174919150729">Google ასისტენტი ხელმისაწვდომია მხოლოდ ძირითადი პროფილისთვის.</translation>
 <translation id="79341161159229895">ანგარიშს მართავენ <ph name="FIRST_PARENT_EMAIL" /> და <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">გაცვლის ბუფერის სანახავად დააჭირეთ კლავიშთა კომბინაციას <ph name="SHORTCUT_KEY_NAME" /> + V. გაცვლის ბუფერში ინახება თქვენ მიერ დაკოპირებული ბოლო 5 ერთეული.</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb
index 12b0356..dcc3bfbc 100644
--- a/ash/strings/ash_strings_km.xtb
+++ b/ash/strings/ash_strings_km.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">បន្ថែមការភ្ជាប់</translation>
 <translation id="2961963223658824723">មាន​អ្វី​មួយ​ខុស​ប្រក្រតី សូម​ព្យាយាម​ម្ដង​ទៀត​ក្នុងពេលបន្តិចទៀត។</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">មិនអាច​ទាញយក​ឯកសារនៃ​ការនិយាយ​ជាភាសា<ph name="LANGUAGE" />បានទេ</translation>
 <translation id="2970920913501714344">ដំឡើង​កម្មវិធី កម្មវិធីបន្ថែម និងរចនាប័ទ្ម</translation>
 <translation id="2977598380246111477">លេខបន្ទាប់</translation>
 <translation id="2992327365391326550">ប៊ូតុងមីក្រូហ្វូនរបស់ឧបករណ៍ត្រូវបានបិទ។</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">ដោះ​សោ​ឧបករណ៍​ដោយ​ប្រើ​កូដ​សម្រាប់​មាតា​បិតា</translation>
 <translation id="4702647871202761252">អេក្រង់​ឯកជនភាព​ត្រូវបានបិទ</translation>
 <translation id="4705716602320768426">ដាក់បញ្ជូនមតិកែលម្អ</translation>
+<translation id="4706121060329443414">នឹងព្យាយាម​ទាញយក​នៅពេលក្រោយ។ ការនិយាយ​នឹងត្រូវបានផ្ញើទៅ Google ដើម្បីដំណើរការ​សម្រាប់ពេលនេះ។</translation>
 <translation id="4731797938093519117">សិទ្ធិចូលប្រើប្រាស់​សម្រាប់មាតាបិតា</translation>
 <translation id="4734965478015604180">ផ្ដេក​</translation>
 <translation id="4735498845456076464">បានប្ដូរ​ផ្លូវកាត់ក្ដារចុចលេខ + <ph name="LAUNCHER_KEY_NAME" />។ ដើម្បីប្រើគ្រាប់ចុចមុខងារ សូមចុចគ្រាប់ចុច <ph name="LAUNCHER_KEY_NAME" /> + គ្រាប់ចុចនៅជួរខាងលើ។</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">ចុច Ctrl + Alt + Z ដើម្បីបិទការអានអេក្រង់។</translation>
 <translation id="5601503069213153581">លេខសម្គាល់</translation>
 <translation id="5619862035903135339">គោលការណ៍របស់អ្នកគ្រប់គ្រងបិទការថត​អេក្រង់</translation>
+<translation id="5620281292257375798">ផ្ទៃក្នុង​តែប៉ុណ្ណោះ</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">ឌុយ​មីក្រូហ្វូន</translation>
 <translation id="5649768706273821470">ស្តាប់</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">បញ្ឈប់ការថត</translation>
 <translation id="607652042414456612">កុំព្យូទ័ររបស់អ្នកអាចរកឃើញបានដោយឧបករណ៍ប៊្លូធូសដែលនៅជិត និងលេចឡើងជា "<ph name="NAME" />" ជាមួយអាសយដ្ឋាន <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">គោលការណ៍​របស់អ្នកគ្រប់គ្រង​បិទការថតវីដេអូអេក្រង់ នៅពេលអាច​មើលឃើញខ្លឹមសារ​សម្ងាត់</translation>
+<translation id="6114505516289286752">បានទាញយក​ឯកសារនៃការនិយាយ​ជាភាសា<ph name="LANGUAGE" /></translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />។ <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">​មិន​អាចប្រើ​ Google ជំនួយការនៅក្នុង​វេនភ្ញៀវ​បានទេ។</translation>
 <translation id="6137566720514957455">បើក "ប្រអប់លុប​គណនី" សម្រាប់ <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">ព័ត៌មានពាក់ព័ន្ធនឹងការផ្ដល់ជូនការជ្រើសរើសរបស់អ្នក។ ប្រើគ្រាប់ចុចព្រួញឡើងលើ ដើម្បីចូលប្រើ។</translation>
 <translation id="6818242057446442178">ថយក្រោយមួយពាក្យ</translation>
 <translation id="6820676911989879663">សម្រាក​មួយភ្លែត!</translation>
+<translation id="6836499262298959512">ឯកសារ​ដែលមានគ្រោះថ្នាក់</translation>
 <translation id="6837064795450991317">លាក់របារកិច្ចការ</translation>
 <translation id="6850010208275816200">កម្មវិធីបច្ចុប្បន្នរបស់អ្នកកំពុងបង្ហាញពេញអេក្រង់។ ប្រសិនបើកម្មវិធីស្នើសុំពាក្យសម្ងាត់របស់អ្នក សូមចាកចេញពីអេក្រង់ពេញជាមុនសិន។</translation>
 <translation id="6852052252232534364">ចុចដើម្បីបើកដំណើរការ</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">ចុចលើ​ឧបករណ៍​ចាប់ស្នាម​ម្រាមដៃ</translation>
 <translation id="7904094684485781019">អ្នកគ្រប់គ្រងគណនីនេះមិនអនុញ្ញាតឲ្យមានការចូលច្រើនទេ។</translation>
+<translation id="7930731167419639574">ឥឡូវនេះ ការនិយាយ​ត្រូវបានដំណើរការ​នៅក្នុងឧបករណ៍ ហើយ​ការសរសេរ​តាមអាន​ដំណើរការ​ដោយគ្មានអ៊ីនធឺណិត</translation>
 <translation id="7933084174919150729">Google ជំនួយ​ការ​អាច​ប្រើបាន​តែជាមួយកម្រង​ព័ត៌មាន​ចម្បង​ប៉ុណ្ណោះ។</translation>
 <translation id="79341161159229895">គណនី​ស្ថិត​ក្រោមការគ្រប់គ្រង​របស់ <ph name="FIRST_PARENT_EMAIL" /> និង <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">ចុច <ph name="SHORTCUT_KEY_NAME" /> + V ដើម្បីមើល​ឃ្លីបបតរបស់អ្នក។ ធាតុ 5 ចុងក្រោយ​ដែលអ្នកបានចម្លង​ត្រូវបានរក្សាទុក​ទៅក្នុងឃ្លីបបតរបស់អ្នក។</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index e4e3318..3d1debf2 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">연결 추가</translation>
 <translation id="2961963223658824723">문제가 발생했습니다. 잠시 후 다시 시도해 주세요.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866"><ph name="LANGUAGE" /> 음성 파일을 다운로드할 수 없음</translation>
 <translation id="2970920913501714344">앱, 확장 프로그램 및 테마 설치</translation>
 <translation id="2977598380246111477">다음 번호</translation>
 <translation id="2992327365391326550">기기의 마이크 버튼이 사용 중지되어 있습니다.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">부모 코드로 기기 잠금 해제</translation>
 <translation id="4702647871202761252">개인정보 보호 화면이 꺼져 있습니다</translation>
 <translation id="4705716602320768426">의견 보내기</translation>
+<translation id="4706121060329443414">다운로드가 나중에 시도됩니다. 일단 처리를 위해 음성 파일이 Google로 전송됩니다.</translation>
 <translation id="4731797938093519117">부모 액세스</translation>
 <translation id="4734965478015604180">가로</translation>
 <translation id="4735498845456076464"><ph name="LAUNCHER_KEY_NAME" /> + 숫자 단축키가 변경되었습니다. 기능 키를 사용하려면 <ph name="LAUNCHER_KEY_NAME" /> 키 + 맨 윗줄의 키를 누르세요.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">음성 피드백을 사용 중지하려면 Ctrl + Alt + Z를 누르세요.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">관리자 정책에서 화면 캡처를 사용 중지합니다.</translation>
+<translation id="5620281292257375798">내부용</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">마이크 잭</translation>
 <translation id="5649768706273821470">듣기</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">녹화 중지</translation>
 <translation id="607652042414456612">내 컴퓨터가 근처 블루투스 기기에서 검색할 수 있도록 설정되어 있으며 주소(<ph name="ADDRESS" />)와 함께 '<ph name="NAME" />'(으)로 표시됩니다.</translation>
 <translation id="6094290315941448991">기밀 콘텐츠가 화면에 표시되면 관리자 정책에서 화면 녹화를 사용 중지합니다.</translation>
+<translation id="6114505516289286752">음성 파일 <ph name="LANGUAGE" />개 다운로드됨</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />, <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">게스트 세션에서는 Google 어시스턴트를 사용할 수 없습니다.</translation>
 <translation id="6137566720514957455"><ph name="USER_EMAIL_ADDRESS" /> 삭제 대화상자 열기</translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">선택 항목과 관련된 정보를 이용할 수 있습니다. 액세스하려면 위쪽 화살표 키를 사용하세요.</translation>
 <translation id="6818242057446442178">한 단어 뒤로 이동</translation>
 <translation id="6820676911989879663">잠시 쉬어 가세요.</translation>
+<translation id="6836499262298959512">위험한 파일</translation>
 <translation id="6837064795450991317">데스크바 숨기기</translation>
 <translation id="6850010208275816200">현재 앱이 전체 화면 모드로 실행 중입니다. 앱에서 비밀번호를 요구하면 먼저 전체 화면을 종료하세요.</translation>
 <translation id="6852052252232534364">클릭하여 활성화</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">휴대전화 허브</translation>
 <translation id="7902625623987030061">지문 센서를 터치하세요.</translation>
 <translation id="7904094684485781019">이 계정의 관리자가 멀티 로그인을 허용하지 않습니다.</translation>
+<translation id="7930731167419639574">음성이 이제 로컬에서 처리되고 음성기록이 오프라인에서 작동합니다.</translation>
 <translation id="7933084174919150729">Google 어시스턴트는 기본 프로필에서만 사용할 수 있습니다.</translation>
 <translation id="79341161159229895">계정 관리자: <ph name="FIRST_PARENT_EMAIL" /> 및 <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">클립보드를 보려면 <ph name="SHORTCUT_KEY_NAME" /> + V 키를 누르세요. 최근 복사한 5개 항목이 클립보드에 저장되어 있습니다.</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index 3bb9d97f..db50ddd9 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">ເພີ່ມການ​ເຊື່ອມ​ຕໍ່</translation>
 <translation id="2961963223658824723">ມີບາງຢ່າງຜິດພາດເກີດຂຶ້ນ. ກະລຸນາລອງໃໝ່ໃນອີກສອງສາມວິນາທີ.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">ບໍ່ສາມາດດາວໂຫຼດໄຟລ໌ການເວົ້າ <ph name="LANGUAGE" /> ໄດ້</translation>
 <translation id="2970920913501714344">ຕິດຕັ້ງແອັບ, ສ່ວນຂະຫຍາຍ ແລະ ຮູບແບບສີສັນ</translation>
 <translation id="2977598380246111477">ຕົວເລກຕໍ່ໄປ</translation>
 <translation id="2992327365391326550">ປຸ່ມໄມໂຄຣໂຟນຂອງອຸປະກອນຖືກປິດໄວ້ຢູ່.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">ປົດລັອກອຸປະກອນດ້ວຍລະຫັດພໍ່ແມ່</translation>
 <translation id="4702647871202761252">ໜ້າຈໍຄວາມເປັນສ່ວນຕົວປິດຢູ່</translation>
 <translation id="4705716602320768426">ຄຳຕິຊົມໄຟລ໌</translation>
+<translation id="4706121060329443414">ຈະລອງດາວໂຫຼດໃໝ່ໃນພາຍຫຼັງ. ການເວົ້າຈະຖືກສົ່ງໄປໃຫ້ Google ເພື່ອປະມວນຜົນສຳລັບຕອນນີ້.</translation>
 <translation id="4731797938093519117">ສິດເຂົ້າເຖິງຂອງພໍ່ແມ່</translation>
 <translation id="4734965478015604180">ລວງນອນ</translation>
 <translation id="4735498845456076464">ມີການປ່ຽນຄີລັດ <ph name="LAUNCHER_KEY_NAME" /> + ຕົວເລກ. ເພື່ອໃຊ້ປຸ່ມຟັງຊັນ, ໃຫ້ກົດປຸ່ມ <ph name="LAUNCHER_KEY_NAME" /> + ປຸ່ມໃດໜຶ່ງຢູ່ແຖວເທິງສຸດ.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">ກົດ Ctrl + Alt + Z ເພື່ອປິດນຳໃຊ້ການຕອບສະໜອງແບບສຽງເວົ້າ.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">ນະໂຍບາຍຜູ້ເບິ່ງແຍງລະບົບປິດການນຳໃຊ້ການຖ່າຍຮູບໜ້າຈໍ</translation>
+<translation id="5620281292257375798">ສະ​ເພາະ​ພາຍ​ໃນ​ເທົ່າ​ນັ້ນ</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">ແຈັກໄມໂຄຣໂຟນ</translation>
 <translation id="5649768706273821470">​ຟັງ</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">ຢຸດການບັນທຶກ</translation>
 <translation id="607652042414456612">ຄອມ​ພິວ​ເຕີ​ຂອງ​ທ່ານສາມາດໃຫ້ອຸປະກອນ Bluetooth ໃກ້ຄຽງຄົ້ນຫາໄດ້ ​ແລະ​ຈະ​ປະ​ກົດ​ເປັນ "<ph name="NAME" />"ພ້ອມທີ່​ຢູ່ <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">ນະໂຍບາຍຂອງຜູ້ເບິ່ງແຍງລະບົບປິດການນຳໃຊ້ການບັນທຶກໜ້າຈໍເມື່ອສະແດງເນື້ອຫາທີ່ເປັນຄວາມລັບຢູ່</translation>
+<translation id="6114505516289286752">ດາວໂຫຼດໄຟລ໌ສຽງເວົ້າ <ph name="LANGUAGE" /> ແລ້ວ</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">ຜູ້ຊ່ວຍ Google ບໍ່ສາມາດໃຊ້ໄດ້ໃນເຊດຊັນແຂກ.</translation>
 <translation id="6137566720514957455">ເປີດກ່ອງໂຕ້ຕອບລຶບອອກສຳລັບ <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">ມີຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບການເລືອກຂອງທ່ານ. ໃຊ້ລູກສອນຂຶ້ນເພື່ອເຂົ້າເຖິງ.</translation>
 <translation id="6818242057446442178">ຖອຍກັບເທື່ອລະຄຳ</translation>
 <translation id="6820676911989879663">ຢຸດພັກ!</translation>
+<translation id="6836499262298959512">ໄຟລ໌ອັນຕະລາຍ</translation>
 <translation id="6837064795450991317">ເຊື່ອງເດັສບາ</translation>
 <translation id="6850010208275816200">ແອັບປັດຈຸບັນຂອງທ່ານເຕັມຈໍ. ຖ້າແອັບຂໍເອົາລະຫັດຜ່ານຂອງທ່ານ ກະລຸນາອອກຈາກເຕັມຈໍກ່ອນ.</translation>
 <translation id="6852052252232534364">ຄລິກເພື່ອເປີດນຳໃຊ້</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">ແຕະເຊັນເຊີລາຍນິ້ວມື</translation>
 <translation id="7904094684485781019">ຜູ້ຄວບຄຸມສໍາລັບບັນຊີນີ້​ໄດ້​ຖອນ​ການອະນຸຍາດສຳລັບ​ການລົງຊື່ເຂົ້າໃຊ້ຫຼາຍອັນ.</translation>
+<translation id="7930731167419639574">ຕອນນີ້ການເວົ້າຈະຖືກປະມວນຜົນໃນເຄື່ອງ ແລະ ການປ້ອນຂໍ້ມູນດ້ວຍສຽງສາມາດເຮັດວຽກອອບລາຍໄດ້ແລ້ວ</translation>
 <translation id="7933084174919150729">ຜູ້ຊ່ວຍ Google ສາມາດໃຊ້ໄດ້ສຳລັບໂປຣໄຟລ໌ຫຼັກເທົ່ານັ້ນ.</translation>
 <translation id="79341161159229895">ບັນຊີທີ່ຈັດການໂດຍ <ph name="FIRST_PARENT_EMAIL" /> ແລະ <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">ກົດ <ph name="SHORTCUT_KEY_NAME" /> + V ເພື່ອເບິ່ງຄລິບບອດຂອງທ່ານ. 5 ລາຍການສຸດທ້າຍທີ່ທ່ານສຳເນົາໄວ້ຈະຖືກບັນທຶກໄວ້ໃນຄລິບບອດຂອງທ່ານ.</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 579334b..eea2a806 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Pridėti ryšį</translation>
 <translation id="2961963223658824723">Deja, įvyko klaida. Bandykite dar kartą po kelių sekundžių.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Nepavyko atsisiųsti <ph name="LANGUAGE" /> kalbos failų</translation>
 <translation id="2970920913501714344">Įdiegti programų, plėtinių ir temų</translation>
 <translation id="2977598380246111477">Kitas skaičius</translation>
 <translation id="2992327365391326550">Įrenginio mikrofono mygtukas išjungtas.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Atrakinkite įrenginį naudodami tėvų kodą</translation>
 <translation id="4702647871202761252">Privatumo ekranas išjungtas</translation>
 <translation id="4705716602320768426">Pateikti atsiliepimų</translation>
+<translation id="4706121060329443414">Atsisiųsti bus bandoma vėliau. Dabar kalba bus siunčiama į sistemą „Google“ apdoroti.</translation>
 <translation id="4731797938093519117">Tėvų prieiga</translation>
 <translation id="4734965478015604180">Horizontaliai</translation>
 <translation id="4735498845456076464">Pakeistas spartusis klavišas <ph name="LAUNCHER_KEY_NAME" /> + skaičiaus klavišas. Jei norite naudoti funkcijų klavišus, paspauskite <ph name="LAUNCHER_KEY_NAME" /> klavišą + klavišą viršutinėje eilutėje.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Paspauskite „Ctrl“ + „Alt“ + Z, kad išjungtumėte ekrano skaitymą balsu.</translation>
 <translation id="5601503069213153581">PIN kodas</translation>
 <translation id="5619862035903135339">Ekrano fiksavimo funkcija yra išjungta remiantis administratoriaus politika</translation>
+<translation id="5620281292257375798">Tik vidiniams naudotojams</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Mikrofono jungtis</translation>
 <translation id="5649768706273821470">Klausyti</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Sustabdyti įrašymą</translation>
 <translation id="607652042414456612">Jūsų kompiuterį galima aptikti netoliese esančiais „Bluetooth“ įrenginiais ir jis rodomas kaip „<ph name="NAME" />“ su adresu <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">Remiantis administratoriaus politika, negalima įrašyti ekrano vaizdo, jei matomas konfidencialus turinys</translation>
+<translation id="6114505516289286752"><ph name="LANGUAGE" /> kalbos failai atsisiųsti</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">„Google Assistant“ nepasiekiamas svečio sesijoje.</translation>
 <translation id="6137566720514957455">Atidaryti <ph name="USER_EMAIL_ADDRESS" /> pašalinimo dialogo langą</translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Pasiekiama su pasirinkimu susijusi informacija Norėdami pasiekti, spustelėkite rodyklės aukštyn klavišą.</translation>
 <translation id="6818242057446442178">Grįžti per vieną žodį</translation>
 <translation id="6820676911989879663">Padarykite pertrauką!</translation>
+<translation id="6836499262298959512">Pavojingas failas</translation>
 <translation id="6837064795450991317">Slėpti darbalaukio juostą</translation>
 <translation id="6850010208275816200">Jūsų dabartinė programa veikia viso ekrano režimu. Programai paprašius jūsų slaptažodžio, pirmiausia išjunkite viso ekrano režimą.</translation>
 <translation id="6852052252232534364">Sp. ir suakt.</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">Palieskite kontrolinio kodo jutiklį</translation>
 <translation id="7904094684485781019">Šios paskyros administratorius neleidžia naudoti kelių paskyrų.</translation>
+<translation id="7930731167419639574">Kalba dabar apdorojama vietoje ir diktavimas veikia neprisijungus</translation>
 <translation id="7933084174919150729">„Google“ padėjėjas pasiekiamas tik pagrindiniame profilyje.</translation>
 <translation id="79341161159229895">Paskyrą tvarko: <ph name="FIRST_PARENT_EMAIL" /> ir <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Norėdami peržiūrėti iškarpinę, paspauskite „<ph name="SHORTCUT_KEY_NAME" />“ + V. Pastarieji penki nukopijuoti elementai išsaugomi iškarpinėje.</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index 6c8764e..8c43e5e 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Pievienot savienojumu</translation>
 <translation id="2961963223658824723">Radās problēma. Pēc dažām sekundēm mēģiniet vēlreiz.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Nevarēja lejupielādēt runas failus šādā valodā: <ph name="LANGUAGE" /></translation>
 <translation id="2970920913501714344">Instalēt lietotnes, paplašinājumus un motīvus</translation>
 <translation id="2977598380246111477">Nākamais cipars</translation>
 <translation id="2992327365391326550">Ierīces mikrofona poga ir izslēgta</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Ierīces atbloķēšana, ievadot vecāku kodu</translation>
 <translation id="4702647871202761252">Konfidencialitātes ekrāns ir izslēgts</translation>
 <translation id="4705716602320768426">Iesniegt atsauksmi</translation>
+<translation id="4706121060329443414">Tiks mēģināts veikt lejupielādi vēlāk. Pagaidām uzņēmumam Google tiks nosūtīta runa apstrādei.</translation>
 <translation id="4731797938093519117">Vecāku piekļuve</translation>
 <translation id="4734965478015604180">Horizontāli</translation>
 <translation id="4735498845456076464">Šis īsinājumtaustiņš ir mainījies: <ph name="LAUNCHER_KEY_NAME" /> + cipars. Lai izmantotu funkciju taustiņus, nospiediet šos taustiņus: <ph name="LAUNCHER_KEY_NAME" /> + jebkurš augšējās rindas taustiņš.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Nospiediet Ctrl+Alt+Z, lai atspējotu balss komentārus.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">Administratora politika atspējo ekrānuzņēmumu izveidi</translation>
+<translation id="5620281292257375798">Tikai iekšējai lietošanai</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Mikrofona ligzda</translation>
 <translation id="5649768706273821470">Klausīties</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Pārtraukt ierakstīšanu</translation>
 <translation id="607652042414456612">Tuvumā esošas Bluetooth ierīces var uztvert jūsu datoru; tā nosaukums ir “<ph name="NAME" />”, adrese — <ph name="ADDRESS" />.</translation>
 <translation id="6094290315941448991">Ja ekrānā ir redzams konfidenciāls saturs, administratora politika atspējo ekrāna ierakstīšanu</translation>
+<translation id="6114505516289286752">Lejupielādēti runas faili šādā valodā: <ph name="LANGUAGE" /></translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" />.</translation>
 <translation id="612734058257491180">Google asistents nav pieejams viesa sesijā.</translation>
 <translation id="6137566720514957455">Atvērt lietotāja <ph name="USER_EMAIL_ADDRESS" /> noņemšanas dialoglodziņu</translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Ir pieejama informācija, kas saistīta ar jūsu atlasīto saturu. Lai piekļūtu informācijai, nospiediet augšupvērsto bulttaustiņu.</translation>
 <translation id="6818242057446442178">Pāriet atpakaļ pa vārdam</translation>
 <translation id="6820676911989879663">Laiks pārtraukumam</translation>
+<translation id="6836499262298959512">Bīstams fails</translation>
 <translation id="6837064795450991317">Paslēpt uzdevumjoslā iegulto rīkjoslu</translation>
 <translation id="6850010208275816200">Pašreizējā lietotne ir pilnekrāna režīmā. Ja lietotnē tiek lūgts ievadīt paroli, vispirms izejiet no pilnekrāna režīma.</translation>
 <translation id="6852052252232534364">Noklikšķiniet</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Tālruņu centrāle</translation>
 <translation id="7902625623987030061">Pieskarieties pirksta nospieduma sensoram</translation>
 <translation id="7904094684485781019">Šī konta administrators nav atļāvis vairākkārtēju pierakstīšanos.</translation>
+<translation id="7930731167419639574">Runa tiek apstrādāta lokāli, un diktēšana darbojas bezsaistē.</translation>
 <translation id="7933084174919150729">Google asistents ir pieejams tikai galvenajam profilam.</translation>
 <translation id="79341161159229895">Kontu pārvalda <ph name="FIRST_PARENT_EMAIL" /> un <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Lai skatītu starpliktuvi, nospiediet <ph name="SHORTCUT_KEY_NAME" /> + V. Pēdējie pieci nokopētie vienumi ir saglabāti starpliktuvē.</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 96f663a..f5fee7c 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Холболт нэмэх</translation>
 <translation id="2961963223658824723">Алдаа гарлаа. Хэдэн секундын дараа дахин оролдоно уу.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866"><ph name="LANGUAGE" /> дээрх ярианы файлуудыг татаж чадсангүй</translation>
 <translation id="2970920913501714344">Аппууд, өргөтгөлүүд болон загваруудыг суулгах</translation>
 <translation id="2977598380246111477">Дараагийн тоо</translation>
 <translation id="2992327365391326550">Төхөөрөмжийн микрофоны товчлуур унтраалттай байна.</translation>
@@ -485,6 +486,7 @@
 <translation id="4696813013609194136">Төхөөрөмжийн түгжээг эцэг эхийн кодоор тайлна уу</translation>
 <translation id="4702647871202761252">Нууцлалын дэлгэц унтраалттай байна</translation>
 <translation id="4705716602320768426">Cанал хүсэлт илгээх</translation>
+<translation id="4706121060329443414">Таталтыг дараа оролдоно. Яриаг одоогоор Google-д боловсруулахаар илгээнэ.</translation>
 <translation id="4731797938093519117">Эцэг эхийн хандалт</translation>
 <translation id="4734965478015604180">Хөндлөн</translation>
 <translation id="4735498845456076464"><ph name="LAUNCHER_KEY_NAME" /> + Тоон товчлуурын шууд холбоосыг өөрчилсөн байна. Функцийн товчлууруудыг ашиглахын тулд <ph name="LAUNCHER_KEY_NAME" /> товчлуур + дээд мөрд байх товчлуурыг дарна уу.</translation>
@@ -590,6 +592,7 @@
 <translation id="5600837773213129531">Хэлсэн саналыг идэвхгүй болгохын тулд Ctrl + Alt + Z-г дарна уу.</translation>
 <translation id="5601503069213153581">ПИН</translation>
 <translation id="5619862035903135339">Администраторын бодлого нь дэлгэцийн зураг авахыг идэвхгүй болгодог</translation>
+<translation id="5620281292257375798">Зөвхөн дотоодод</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Микрофоны чихэвчний оролт</translation>
 <translation id="5649768706273821470">Сонсох</translation>
@@ -658,6 +661,7 @@
 <translation id="6073451960410192870">Бичихийг зогсоох</translation>
 <translation id="607652042414456612">Таны компьютер ойролцоо байгаа Bluetooth төхөөрөмж дээр илрэх боломжтой бөгөөд <ph name="ADDRESS" /> хаяг бүхий "<ph name="NAME" />" нэрээр гарч ирэх болно.</translation>
 <translation id="6094290315941448991">Администраторын бодлого нь нууцлалтай контентыг харагдаж байх үед дэлгэцийн үйлдэл бичихийг идэвхгүй болгодог</translation>
+<translation id="6114505516289286752"><ph name="LANGUAGE" /> дээрх ярианы файлуудыг татсан</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Зочны сургалтад Google Туслах боломжгүй байна.</translation>
 <translation id="6137566720514957455"><ph name="USER_EMAIL_ADDRESS" />-н хасах харилцах цонхыг нээнэ үү</translation>
@@ -739,6 +743,7 @@
 <translation id="6816797338148849397">Таны сонголттой холбоотой мэдээлэл боломжтой байна. Хандахын тулд Дээш суман товчийг ашиглана уу.</translation>
 <translation id="6818242057446442178">Нэг үгээр буцаах</translation>
 <translation id="6820676911989879663">Завсарлага аваарай!</translation>
+<translation id="6836499262298959512">Аюултай файл</translation>
 <translation id="6837064795450991317">Дэлгэцийн хэсгийг нуух</translation>
 <translation id="6850010208275816200">Таны одоогийн апп бүтэн дэлгэцээр байна. Хэрэв апп таны нууц үгийг асуувал эхлээд бүтэн дэлгэцээс гарна уу.</translation>
 <translation id="6852052252232534364">Идэвхжүүлэхээр товш</translation>
@@ -879,6 +884,7 @@
 <translation id="7901405293566323524">Утасны Hub</translation>
 <translation id="7902625623987030061">Хурууны хээ мэдрэгчид хүрнэ үү</translation>
 <translation id="7904094684485781019">Энэ бүртгэлийн админ нь олон тооны нэвтрэлтийг хэрэгсэхгүй болгосон байна.</translation>
+<translation id="7930731167419639574">Яриаг одоо дотоодод боловсруулах бөгөөд Дуу хоолойгоор бичих онцлог офлайнаар ажиллана</translation>
 <translation id="7933084174919150729">Google Туслах зөвхөн үндсэн профайлд боломжтой.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> болон <ph name="SECOND_PARENT_EMAIL" />-н удирддаг бүртгэл</translation>
 <translation id="793716872548410480">Түр санах ойгоо харахын тулд <ph name="SHORTCUT_KEY_NAME" /> + V дээр дарна уу. Таны хуулсан сүүлийн 5 зүйлийг таны түр санах ойд хадгалсан байна.</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index 1287209..1def0c45 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Tambah sambungan</translation>
 <translation id="2961963223658824723">Maaf, kesilapan telah berlaku. Cuba lagi dalam beberapa saat.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Tidak dapat memuat turun fail pertuturan <ph name="LANGUAGE" /></translation>
 <translation id="2970920913501714344">Pasang apl, sambungan dan tema</translation>
 <translation id="2977598380246111477">Nombor seterusnya</translation>
 <translation id="2992327365391326550">Butang mikrofon peranti dimatikan.</translation>
@@ -485,6 +486,7 @@
 <translation id="4696813013609194136">Buka kunci peranti menggunakan kod ibu bapa</translation>
 <translation id="4702647871202761252">Skrin privasi dimatikan</translation>
 <translation id="4705716602320768426">Failkan maklum balas</translation>
+<translation id="4706121060329443414">Muat turun akan cuba dilakukan kemudian. Buat masa sekarang, pertuturan akan dihantar kepada Google untuk diproses.</translation>
 <translation id="4731797938093519117">Akses ibu bapa</translation>
 <translation id="4734965478015604180">Mendatar</translation>
 <translation id="4735498845456076464">Pintasan papan kekunci <ph name="LAUNCHER_KEY_NAME" /> + Nombor telah berubah. Untuk menggunakan kekunci fungsi, tekan kekunci <ph name="LAUNCHER_KEY_NAME" /> + salah satu kekunci di baris atas.</translation>
@@ -590,6 +592,7 @@
 <translation id="5600837773213129531">Tekan Ctrl + Alt + Z untuk melumpuhkan maklum balas yang dituturkan.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">Dasar pentadbir melumpuhkan tangkapan skrin</translation>
+<translation id="5620281292257375798">Dalaman sahaja</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Bicu mikrofon</translation>
 <translation id="5649768706273821470">Dengar</translation>
@@ -658,6 +661,7 @@
 <translation id="6073451960410192870">Hentikan rakaman</translation>
 <translation id="607652042414456612">Komputer anda boleh ditemui oleh peranti Bluetooth yang berdekatan sebagai "<ph name="NAME" />" dengan alamat <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">Dasar pentadbir melumpuhkan rakaman skrin apabila kandungan sulit kelihatan</translation>
+<translation id="6114505516289286752">Fail pertuturan <ph name="LANGUAGE" /> dimuat turun</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Google Assistant tidak tersedia dalam sesi tetamu.</translation>
 <translation id="6137566720514957455">Buka dialog alih keluar untuk <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -739,6 +743,7 @@
 <translation id="6816797338148849397">Maklumat yang berkaitan dengan pilihan anda tersedia. Gunakan kekunci Anak panah ke atas untuk mengakses.</translation>
 <translation id="6818242057446442178">Undur satu perkataan</translation>
 <translation id="6820676911989879663">Berehatlah!</translation>
+<translation id="6836499262298959512">Fail berbahaya</translation>
 <translation id="6837064795450991317">Sembunyikan bar meja</translation>
 <translation id="6850010208275816200">Apl semasa anda dalam skrin penuh. Jika apl meminta kata laluan anda, keluar daripada skrin penuh dahulu.</translation>
 <translation id="6852052252232534364">Klik untuk aktifkan</translation>
@@ -879,6 +884,7 @@
 <translation id="7901405293566323524">Hab Telefon</translation>
 <translation id="7902625623987030061">Sentuh penderia cap jari</translation>
 <translation id="7904094684485781019">Pentadbir akaun ini tidak membenarkan berbilang log masuk.</translation>
+<translation id="7930731167419639574">Kini pertuturan diproses secara setempat dan Pengimlakan berfungsi di luar talian</translation>
 <translation id="7933084174919150729">Google Assistant hanya tersedia untuk profil utama.</translation>
 <translation id="79341161159229895">Akaun diurus oleh <ph name="FIRST_PARENT_EMAIL" /> dan <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Tekan <ph name="SHORTCUT_KEY_NAME" /> + V untuk melihat papan keratan anda. 5 item terakhir yang telah anda salin disimpan pada papan keratan anda.</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb
index 4913d190..1973322 100644
--- a/ash/strings/ash_strings_my.xtb
+++ b/ash/strings/ash_strings_my.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">ချိတ်ဆက်မှုကို ထည့်ရန်</translation>
 <translation id="2961963223658824723">တစ်ခုခုမှားယွင်း နေသည်။ မိနစ်အနည်းငယ်အကြာတွင် ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866"><ph name="LANGUAGE" /> တိုက်ရိုက်စာတန်းဖိုင်များကို ဒေါင်းလုဒ်လုပ်၍ မရပါ</translation>
 <translation id="2970920913501714344">အက်ပ်၊ နောက်ဆက်တွဲနှင့် အပြင်အဆင်များ ထည့်သွင်းနိုင်သည်</translation>
 <translation id="2977598380246111477">နောက်ထပ် ဂဏန်း</translation>
 <translation id="2992327365391326550">စက်၏မိုက်ခရိုဖုန်းခလုတ် ပိတ်ထားသည်။</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">စက်ပစ္စည်းကို မိဘသုံးကုဒ်ဖြင့် ဖွင့်ပါ</translation>
 <translation id="4702647871202761252">ပုဂ္ဂိုလ်ရေးလုံခြုံမှု ဖန်သားပြင်ကို ပိတ်ထားသည်</translation>
 <translation id="4705716602320768426">ဖိုင်အကြံပြုချက်</translation>
+<translation id="4706121060329443414">နောင်တွင် ဒေါင်းလုဒ်လုပ်ပါမည်။ လောလောဆယ် လုပ်ဆောင်ရန် တိုက်ရိုက်စာတန်းကို Google သို့ ပို့ပါမည်။</translation>
 <translation id="4731797938093519117">မိဘ သုံးခွင့်</translation>
 <translation id="4734965478015604180">အလျားလိုက်</translation>
 <translation id="4735498845456076464">‘<ph name="LAUNCHER_KEY_NAME" /> + နံပါတ်’ လက်ကွက်ဖြတ်လမ်းများကို ပြောင်းထားသည်။ လုပ်ဆောင်ချက်ကီးများ သုံးလိုပါက <ph name="LAUNCHER_KEY_NAME" /> ကီး + ထိပ်ဆုံးအတန်းရှိ ကီးကို နှိပ်ပါ။</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">စကားပြောတုံ့ပြန်မှုကို ပိတ်ရန် Ctrl + Alt + Z ကို နှိပ်ပါ။</translation>
 <translation id="5601503069213153581">ပင်နံပါတ်</translation>
 <translation id="5619862035903135339">ဖန်သားပြင်ပုံဖမ်းခြင်းကို စီမံခန့်ခွဲသူမူဝါဒက ပိတ်ထားသည်</translation>
+<translation id="5620281292257375798">ရုံးတွင်းသာ</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">မိုက်ခရိုဖုန်း ဂျက်ပင်</translation>
 <translation id="5649768706273821470">နားထောင်</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">ကူးယူမှု ရပ်ရန်</translation>
 <translation id="607652042414456612">သင်၏ ကွန်ပျူတာမှာ အနီးအနားရှိ ဘလူးတုသ် ကိရိယာများမှာ ရှာတွေ့နိုင်ကာ "<ph name="NAME" />"အဖြစ် လိပ်စာ <ph name="ADDRESS" />ဖြင့် မြင်ရမည်။</translation>
 <translation id="6094290315941448991">လျှို့ဝှက်အကြောင်းအရာများကို မြင်နိုင်ချိန်တွင် ဖန်သားပြင်ရိုက်ကူးခြင်းကို စီမံခန့်ခွဲသူမူဝါဒက ပိတ်ထားသည်</translation>
+<translation id="6114505516289286752"><ph name="LANGUAGE" /> တိုက်ရိုက်စာတန်းဖိုင်များ ဒေါင်းလုဒ်လုပ်ပြီးပြီ</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />။ <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">ဧည့်သည်စက်ရှင်တွင် Google Assistant ကို အသုံးပြု၍ မရပါ။</translation>
 <translation id="6137566720514957455"><ph name="USER_EMAIL_ADDRESS" /> အတွက် ဖယ်ရှားမှုဒိုင်ယာလော့ခ် ဖွင့်မည်</translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">သင်ရွေးထားသည့်အရာနှင့် သက်ဆိုင်သည့် အချက်အလက်များ ရနိုင်သည်။ ဝင်ကြည့်ရန် အပေါ်ညွှန်မြား အသုံးပြုပါ။</translation>
 <translation id="6818242057446442178">စာလုံးအလိုက် နောက်ပြန်သွားရန်</translation>
 <translation id="6820676911989879663">ခဏနားပါ။</translation>
+<translation id="6836499262298959512">အန္တရာယ်ဖိုင်</translation>
 <translation id="6837064795450991317">မျက်နှာပြင်ဘား ဝှက်ရန်</translation>
 <translation id="6850010208275816200">လက်ရှိအက်ပ်ကို ဖန်သားပြင်အပြည့် ပြထားသည်။ အက်ပ်က သင်၏စကားဝှက်ကိုတောင်းလျှင် ဖန်သားပြင်အပြည့်မှ ဦးစွာထွက်ပါ။</translation>
 <translation id="6852052252232534364">စတင်ရန်နှိပ်ပါ</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">ဖုန်းပင်မ</translation>
 <translation id="7902625623987030061">လက်ဗွေအာရုံခံကိရိယာကို ထိပါ</translation>
 <translation id="7904094684485781019">ဤ အကောင့်၏ စီမံခန့်ခွဲသူမှ လက်မှတ်ထိုးဝင်ရာက်မှုများကို ပိတ်ပင်ထားပါသည်။</translation>
+<translation id="7930731167419639574">တိုက်ရိုက်စာတန်းကို ယခု စက်အတွင်းမှာပင် လုပ်ဆောင်နေပြီး နှုတ်တိုက်ချပေးခြင်းကို အော့ဖ်လိုင်းသုံးနိုင်ပါပြီ</translation>
 <translation id="7933084174919150729">Google Assistant သည် ပင်မပရိုဖိုင်အတွက်သာ ရနိုင်ပါသည်။</translation>
 <translation id="79341161159229895">အကောင့်ကို <ph name="FIRST_PARENT_EMAIL" /> နှင့် <ph name="SECOND_PARENT_EMAIL" /> က စီမံပါသည်</translation>
 <translation id="793716872548410480">သင်၏ကလစ်ဘုတ်ကို ကြည့်ရန် <ph name="SHORTCUT_KEY_NAME" /> + V နှိပ်ပါ။ သင်မိတ္တူကူးထားသည့် နောက်ဆုံး ၅ ခုကို သင်၏ကလစ်ဘုတ်တွင် သိမ်းလိုက်သည်။</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index ebda00f5..a2baf52d 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Добавить подключение</translation>
 <translation id="2961963223658824723">Произошла ошибка. Повторите попытку через несколько секунд.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Не удалось скачать файлы распознавания речи для языка: <ph name="LANGUAGE" /></translation>
 <translation id="2970920913501714344">Устанавливать приложения, расширения и темы.</translation>
 <translation id="2977598380246111477">Следующая цифра</translation>
 <translation id="2992327365391326550">Кнопка микрофона на устройстве отключена</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Требуется родительский код доступа</translation>
 <translation id="4702647871202761252">Экран конфиденциальности отключен</translation>
 <translation id="4705716602320768426">Отправить отзыв</translation>
+<translation id="4706121060329443414">Повторное скачивание запустится позже. Сейчас запись речи будет передана для обработки в Google.</translation>
 <translation id="4731797938093519117">Родительский доступ</translation>
 <translation id="4734965478015604180">Горизонтально</translation>
 <translation id="4735498845456076464">Функция сочетания клавиш "<ph name="LAUNCHER_KEY_NAME" /> + цифра" изменилась. Чтобы выполнить действие функциональной клавиши, нажмите <ph name="LAUNCHER_KEY_NAME" /> + клавиша верхнего ряда.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Чтобы отключить озвучивание текста на экране, нажмите CTRL + ALT + Z.</translation>
 <translation id="5601503069213153581">PIN-код</translation>
 <translation id="5619862035903135339">Администратор запретил запись экрана.</translation>
+<translation id="5620281292257375798">Конфиденциально</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Микрофонный разъем</translation>
 <translation id="5649768706273821470">Прослушать</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Остановить запись</translation>
 <translation id="607652042414456612">Расположенные поблизости устройства Bluetooth видят ваш компьютер под именем <ph name="NAME" /> с адресом <ph name="ADDRESS" />.</translation>
 <translation id="6094290315941448991">Администратор запретил запись видео с экрана, когда показаны конфиденциальные данные.</translation>
+<translation id="6114505516289286752">Скачаны файлы распознавания речи для языка: <ph name="LANGUAGE" /></translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" />.</translation>
 <translation id="612734058257491180">В рамках гостевого сеанса Google Ассистент недоступен.</translation>
 <translation id="6137566720514957455">Открыть диалоговое окно удаления аккаунта <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Доступна информация на основе выделенного текста. Чтобы перейти к ней, нажмите стрелку вверх.</translation>
 <translation id="6818242057446442178">Назад на одно слово</translation>
 <translation id="6820676911989879663">Пора отдохнуть!</translation>
+<translation id="6836499262298959512">Опасный файл</translation>
 <translation id="6837064795450991317">Скрыть панель</translation>
 <translation id="6850010208275816200">Текущее приложение используется в полноэкранном режиме. Если оно запрашивает пароль, сначала выйдите из этого режима.</translation>
 <translation id="6852052252232534364">Активировать</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Интерфейс Phone Hub</translation>
 <translation id="7902625623987030061">Коснитесь сканера отпечатков.</translation>
 <translation id="7904094684485781019">Администратор этого аккаунта запретил множественный вход</translation>
+<translation id="7930731167419639574">Речь теперь обрабатывается на устройстве. Вы можете пользоваться голосовым вводом офлайн.</translation>
 <translation id="7933084174919150729">Google Ассистент доступен только в основном профиле</translation>
 <translation id="79341161159229895">Администраторы аккаунта: <ph name="FIRST_PARENT_EMAIL" /> и <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Чтобы посмотреть содержимое буфера обмена, нажмите клавиши <ph name="SHORTCUT_KEY_NAME" /> + V. В буфере сохраняются пять последних скопированных объектов.</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index 3d78f83..d4ebafae 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Lägg till anslutning</translation>
 <translation id="2961963223658824723">Ett fel har uppstått. Försök igen om några sekunder.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Det gick inte att ladda ned filer för taligenkänning på <ph name="LANGUAGE" /></translation>
 <translation id="2970920913501714344">Installera appar, tillägg och teman</translation>
 <translation id="2977598380246111477">Nästa nummer</translation>
 <translation id="2992327365391326550">Enhetens mikrofon är avstängd.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Lås upp enheten med föräldrakod</translation>
 <translation id="4702647871202761252">Sekretesskärmen är inaktiverad</translation>
 <translation id="4705716602320768426">Skicka feedback</translation>
+<translation id="4706121060329443414">Ett nytt nedladdningsförsök görs senare. Tills vidare skickas tal till Google för bearbetning.</translation>
 <translation id="4731797938093519117">Föräldraåtkomst</translation>
 <translation id="4734965478015604180">Horisontell</translation>
 <translation id="4735498845456076464">Kortkommandot <ph name="LAUNCHER_KEY_NAME" /> + siffra har ändrats. Nu används <ph name="LAUNCHER_KEY_NAME" />-tangenten + en tangent i översta raden som funktionstangenter.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Inaktivera talad feedback genom att trycka på Ctrl + Alt + Z.</translation>
 <translation id="5601503069213153581">Pinkod</translation>
 <translation id="5619862035903135339">Skärmbild inaktiveras av en administratörspolicy</translation>
+<translation id="5620281292257375798">Endast internt</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Mikrofonuttag</translation>
 <translation id="5649768706273821470">Lyssna</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Sluta spela in</translation>
 <translation id="607652042414456612">Din dator kan upptäckas av Bluetooth-enheter som finns i närheten och den visas som <ph name="NAME" /> med adressen <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">Skärminspelning inaktiveras av en administratörspolicy när konfidentiellt innehåll är synligt</translation>
+<translation id="6114505516289286752">Filerna för taligenkänning på <ph name="LANGUAGE" /> har laddats ned</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Google-assistenten är inte tillgänglig i en gästsession.</translation>
 <translation id="6137566720514957455">Öppna dialogrutan för borttagning av <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Det finns information om det som är markerat. Tryck på uppåtpilen för att komma åt den.</translation>
 <translation id="6818242057446442178">Bakåt ord för ord</translation>
 <translation id="6820676911989879663">Ta en paus!</translation>
+<translation id="6836499262298959512">Skadlig fil</translation>
 <translation id="6837064795450991317">Dölj skrivbordsfält</translation>
 <translation id="6850010208275816200">Den aktuella appen visas i helskärmsläge. Om du blir ombedd att ange ditt lösenord måste du först stänga helskärmsläget.</translation>
 <translation id="6852052252232534364">Aktivera</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">Tryck på fingeravtryckssensorn</translation>
 <translation id="7904094684485781019">Administratören för kontot tillåter inte multiinloggning.</translation>
+<translation id="7930731167419639574">Nu bearbetas tal lokalt och diktering kan användas offline.</translation>
 <translation id="7933084174919150729">Endast den primära profilen har tillgång till Google Assistent.</translation>
 <translation id="79341161159229895">Kontot hanteras av <ph name="FIRST_PARENT_EMAIL" /> och <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Tryck på <ph name="SHORTCUT_KEY_NAME" /> + V för att visa urklipp De senaste fem objekten du har kopierat sparas i urklipp.</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index 22413df..7f7ccf1 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Ongeza muunganisho</translation>
 <translation id="2961963223658824723">Hitilafu fulani imetokea. Jaribu tena baada ya sekunde chache.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Imeshindwa kupakua faili za matamshi za <ph name="LANGUAGE" /></translation>
 <translation id="2970920913501714344">Kusakinisha programu, viendelezi na mandhari</translation>
 <translation id="2977598380246111477">Nambari inayofuata</translation>
 <translation id="2992327365391326550">Kitufe cha maikrofoni ya kifaa kimezimwa.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Fungua kifaa ukitumia msimbo wa mzazi</translation>
 <translation id="4702647871202761252">Skrini ya faragha imezimwa</translation>
 <translation id="4705716602320768426">Tuma maoni</translation>
+<translation id="4706121060329443414">Itajaribu kupakua baadaye. Kwa sasa, matamshi yatatumwa kwa Google ili yachakatwe.</translation>
 <translation id="4731797938093519117">Idhini ya mzazi</translation>
 <translation id="4734965478015604180">Kimlalo</translation>
 <translation id="4735498845456076464">Mikato ya kibodi ya <ph name="LAUNCHER_KEY_NAME" /> + Nambari imebadilika. Ili utumie vitufe vya kukokotoa, bonyeza kitufe cha <ph name="LAUNCHER_KEY_NAME" /> pamoja na kitufe kwenye safu mlalo ya juu.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Bonyeza Ctrl + Alt + Z ili uzime kipengele cha maelezo yanayotamkwa.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">Sera ya msimamizi huzuia kurekodi skrini</translation>
+<translation id="5620281292257375798">Ndani ya kampuni pekee</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Pini ya maikrofoni</translation>
 <translation id="5649768706273821470">Sikiliza</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Acha kurekodi</translation>
 <translation id="607652042414456612">Kompyuta yako inaweza kutambuliwa na vifaa vyenye Bluetooth vilivyo karibu na itaonekana kama  "<ph name="NAME" />" ikiwa na anwani ya <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">Sera ya msimamizi huzuia kurekodi skrini wakati maudhui ya siri yanaonekana</translation>
+<translation id="6114505516289286752">Faili za matamshi za <ph name="LANGUAGE" /> zimepakuliwa</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Programu ya Mratibu wa Google haipatikani katika kipindi cha mgeni.</translation>
 <translation id="6137566720514957455">Fungua kidirisha cha kuondoa <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Maelezo yanayohusiana na chaguo lako yanapatikana. Tumia kishale cha Juu ili uyafikie.</translation>
 <translation id="6818242057446442178">Rudi nyuma kwa neno moja</translation>
 <translation id="6820676911989879663">Pumzika kidogo!</translation>
+<translation id="6836499262298959512">Faili hatari</translation>
 <translation id="6837064795450991317">Ficha upau wa kazi</translation>
 <translation id="6850010208275816200">Programu uliyoifungua sasa inatumia skrini nzima. Programu ikikuomba uweke nenosiri lako, ondoka kwenye skrini nzima kwanza.</translation>
 <translation id="6852052252232534364">Bofya uwashe</translation>
@@ -879,6 +884,7 @@
 <translation id="7901405293566323524">Kitovu cha Simu</translation>
 <translation id="7902625623987030061">Gusa kitambua alama ya kidole</translation>
 <translation id="7904094684485781019">Msimamizi wa akaunti hii ameondoa uwezo wa kuingia katika akaunti nyingi kwa wakati mmoja</translation>
+<translation id="7930731167419639574">Sasa matamshi yanachakatwa kwenye programu na kipengele cha Kuandika kwa Kutamka kinafanya kazi nje ya mtandao</translation>
 <translation id="7933084174919150729">Programu ya Mratibu wa Google inapatikana kwenye wasifu wa msingi pekee.</translation>
 <translation id="79341161159229895">Akaunti inasimamiwa na <ph name="FIRST_PARENT_EMAIL" /> na <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Bonyeza <ph name="SHORTCUT_KEY_NAME" /> + V ili uangalie ubao wako wa kunakili. Vipengee vitano vya mwisho ulivyovinakili vimehifadhiwa kwenye ubao wako wa kunakili.</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index 98fd873..94e467d1 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -58,7 +58,7 @@
 <translation id="1302880136325416935">புளூடூத் அமைப்புகளைக் காண்பிக்கும். <ph name="STATE_TEXT" /></translation>
 <translation id="1312604459020188865">சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="1316069254387866896">ஷெல்ஃபை எப்போதும் காட்டு</translation>
-<translation id="1316811122439383437">Tote: சமீபத்திய ஸ்கிரீன்ஷாட்டுகள், பதிவிறக்கங்கள் &amp; பின் (pin) செய்த கோப்புகள்</translation>
+<translation id="1316811122439383437">Tote: சமீபத்திய ஸ்கிரீன்ஷாட்டுகள், பதிவிறக்கங்கள் &amp; பின் (pin) செய்த ஃபைல்கள் </translation>
 <translation id="1333308631814936910"><ph name="DISPLAY_NAME" /> இணைக்கப்பட்டது</translation>
 <translation id="1341651618736211726">கூடுதல் விருப்பங்கள்</translation>
 <translation id="1346748346194534595">வலது</translation>
@@ -134,7 +134,7 @@
 <translation id="1972950159383891558">ஹாய் <ph name="USERNAME" /></translation>
 <translation id="1978498689038657292">உரை உள்ளீடு</translation>
 <translation id="1989113344093894667">உள்ளடக்கத்தைப் படமெடுக்க முடியவில்லை</translation>
-<translation id="1990046457226896323">உடனடி வசனத்தின் கோப்புகள் பதிவிறக்கப்பட்டன</translation>
+<translation id="1990046457226896323">உடனடி வசனத்தின் ஃபைல்கள்  பதிவிறக்கப்பட்டன</translation>
 <translation id="1993072747612765854">சமீபத்திய <ph name="SYSTEM_APP_NAME" /> புதுப்பிப்பைப் பற்றி மேலும் அறிக</translation>
 <translation id="1998100899771863792">தற்போதைய டெஸ்க்</translation>
 <translation id="2016340657076538683">செய்தியை உள்ளிடவும்</translation>
@@ -610,7 +610,7 @@
 <translation id="576453121877257266">நைட் லைட் ஆன் செய்யப்பட்டது.</translation>
 <translation id="5769373120130404283">தனிப்பட்ட திரை</translation>
 <translation id="5777841717266010279">திரைப் பகிர்வதை நிறுத்தவா?</translation>
-<translation id="5779721926447984944">பின் (pin) செய்யப்பட்ட கோப்புகள்</translation>
+<translation id="5779721926447984944">பின் (pin) செய்யப்பட்ட ஃபைல்கள் </translation>
 <translation id="5790085346892983794">வெற்றி</translation>
 <translation id="5805809050170488595"><ph name="NETWORK_NAME" /> நெட்வொர்க்கை இயக்க, கிளிக் செய்யவும்</translation>
 <translation id="5820394555380036790">Chromium OS</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index bcc7309..003b8edb6 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">เพิ่มการเชื่อมต่อ</translation>
 <translation id="2961963223658824723">เกิดข้อผิดพลาด โปรดลองอีกครั้งในอีกสักครู่</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">ดาวน์โหลดไฟล์คำพูดภาษา<ph name="LANGUAGE" />ไม่สำเร็จ</translation>
 <translation id="2970920913501714344">ติดตั้งแอป ส่วนขยาย และธีม</translation>
 <translation id="2977598380246111477">ตัวเลขถัดไป</translation>
 <translation id="2992327365391326550">ปุ่มไมโครโฟนของอุปกรณ์ปิดอยู่</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">ปลดล็อกอุปกรณ์ด้วยรหัสของผู้ปกครอง</translation>
 <translation id="4702647871202761252">หน้าจอส่วนตัวปิดอยู่</translation>
 <translation id="4705716602320768426">ความคิดเห็นเกี่ยวกับไฟล์</translation>
+<translation id="4706121060329443414">ระบบจะพยายามดาวน์โหลดภายหลัง โดยจะส่งคำพูดไปประมวลผลที่ Google ก่อนในขณะนี้</translation>
 <translation id="4731797938093519117">การเข้าถึงของผู้ปกครอง</translation>
 <translation id="4734965478015604180">แนวนอน</translation>
 <translation id="4735498845456076464">มีการเปลี่ยนแปลงแป้นพิมพ์ลัด <ph name="LAUNCHER_KEY_NAME" /> + ตัวเลข หากต้องการใช้แป้นฟังก์ชัน ให้กดแป้น <ph name="LAUNCHER_KEY_NAME" /> + แป้นแถวบนสุด</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">กด Ctrl + Alt + Z เพื่อปิดใช้อธิบายและอ่านออกเสียง</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">นโยบายของผู้ดูแลระบบปิดใช้การจับภาพหน้าจอ</translation>
+<translation id="5620281292257375798">ภายในเท่านั้น</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">ช่องเสียบไมโครโฟน</translation>
 <translation id="5649768706273821470">ฟัง</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">หยุดบันทึก</translation>
 <translation id="607652042414456612">ค้นพบคอมพิวเตอร์ของคุณอยู่ใกล้กับอุปกรณ์บลูทูธและจะปรากฏเป็น "<ph name="NAME" />" พร้อมด้วยที่อยู่ <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">นโยบายของผู้ดูแลระบบปิดใช้การบันทึกหน้าจอเมื่อมีเนื้อหาที่เป็นความลับแสดงอยู่</translation>
+<translation id="6114505516289286752">ดาวน์โหลดไฟล์คำพูดภาษา<ph name="LANGUAGE" />แล้ว</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" /> <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">ใช้ Google Assistant ในเซสชันผู้เยี่ยมชมไม่ได้</translation>
 <translation id="6137566720514957455">เปิดกล่องโต้ตอบการนำออกของ <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">มีข้อมูลที่เกี่ยวข้องกับสิ่งที่คุณเลือก ใช้แป้นลูกศรขึ้นเพื่อดูข้อมูลนั้น</translation>
 <translation id="6818242057446442178">ถอยกลับทีละคำ</translation>
 <translation id="6820676911989879663">พักสายตาหน่อย</translation>
+<translation id="6836499262298959512">ไฟล์นี้ไม่ปลอดภัย</translation>
 <translation id="6837064795450991317">ซ่อนเดสก์บาร์</translation>
 <translation id="6850010208275816200">แอปที่เปิดอยู่แสดงเต็มหน้าจอ หากแอปขอให้ป้อนรหัสผ่าน ขอแนะนำให้ออกจากโหมดเต็มหน้าจอก่อน</translation>
 <translation id="6852052252232534364">คลิกเพื่อเปิดใช้</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">ฮับโทรศัพท์</translation>
 <translation id="7902625623987030061">แตะเซ็นเซอร์ลายนิ้วมือ</translation>
 <translation id="7904094684485781019">ผู้ดูแลระบบของบัญชีนี้ไม่อนุญาตการลงชื่อเข้าสู่ระบบพร้อมกันหลายบัญชี</translation>
+<translation id="7930731167419639574">คำพูดได้รับการประมวลผลในเครื่องและการพิมพ์ตามคำบอกทำงานแบบออฟไลน์ได้แล้วในขณะนี้</translation>
 <translation id="7933084174919150729">Google Assistant ใช้งานได้กับโปรไฟล์หลักเท่านั้น</translation>
 <translation id="79341161159229895">บัญชีที่จัดการโดย <ph name="FIRST_PARENT_EMAIL" /> และ <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">กด <ph name="SHORTCUT_KEY_NAME" /> + V เพื่อดูคลิปบอร์ด ระบบจะบันทึก 5 รายการล่าสุดที่คุณคัดลอกไว้ในคลิปบอร์ด</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index 61fca42..39f1a446 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Bağlantı ekle</translation>
 <translation id="2961963223658824723">Bir sorun oluştu. Birkaç saniye sonra tekrar deneyin.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866"><ph name="LANGUAGE" /> konuşma dosyaları indirilemedi</translation>
 <translation id="2970920913501714344">Uygulama, uzantı ve tema yükleme</translation>
 <translation id="2977598380246111477">Sonraki sayı</translation>
 <translation id="2992327365391326550">Cihazın mikrofon düğmesi kapalı.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Kilidi ebeveyn koduyla açın</translation>
 <translation id="4702647871202761252">Gizlilik ekranı kapalı</translation>
 <translation id="4705716602320768426">Geri bildirim gönder</translation>
+<translation id="4706121060329443414">İndirme işlemi daha sonra tekrar denenecek. Konuşma şimdilik işlenmek üzere Google'a gönderilecek.</translation>
 <translation id="4731797938093519117">Ebeveyn erişimi</translation>
 <translation id="4734965478015604180">Yatay</translation>
 <translation id="4735498845456076464"><ph name="LAUNCHER_KEY_NAME" /> + Sayı klavye kısayolu değişti. İşlev tuşlarını kullanmak için <ph name="LAUNCHER_KEY_NAME" /> tuşu + üst sıradaki tuşlardan birine basın.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Sesli geri bildirimi devre dışı bırakmak için Ctrl + Alt + Z tuşlarına basın.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">Yönetici politikası ekran görüntüsü almaya izin vermiyor</translation>
+<translation id="5620281292257375798">Yalnızca dahili</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Mikrofon jakı</translation>
 <translation id="5649768706273821470">Dinle</translation>
@@ -658,6 +661,7 @@
 <translation id="607652042414456612">Bilgisayarınız yakındaki Bluetooth cihazlar tarafından keşfedilebilir durumdadır. Ayrıca,
 <ph name="ADDRESS" /> adresine sahip "<ph name="NAME" />" olarak görünecek</translation>
 <translation id="6094290315941448991">Yönetici politikası ekranda gizli içerik varken ekran kaydı almaya izin vermiyor</translation>
+<translation id="6114505516289286752"><ph name="LANGUAGE" /> dosyaları indirildi</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Google Asistan, misafir oturumunda kullanılamaz.</translation>
 <translation id="6137566720514957455"><ph name="USER_EMAIL_ADDRESS" /> için kaldırma iletişim kutusunu aç</translation>
@@ -739,6 +743,7 @@
 <translation id="6816797338148849397">Seçiminizle ilgili bilgi mevcut. Erişmek için yukarı ok tuşunu kullanın.</translation>
 <translation id="6818242057446442178">Kelime bazında geri git</translation>
 <translation id="6820676911989879663">Mola verin!</translation>
+<translation id="6836499262298959512">Tehlikeli dosya</translation>
 <translation id="6837064795450991317">Masa çubuğunu gizle</translation>
 <translation id="6850010208275816200">Geçerli uygulamanız tam ekran modunda. Uygulama, şifrenizi isterse önce tam ekrandan çıkın.</translation>
 <translation id="6852052252232534364">Etkinleştirmek için tıklayın</translation>
@@ -879,6 +884,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">Parmak izi sensörüne dokunun</translation>
 <translation id="7904094684485781019">Bu hesabın yöneticisi, çoklu oturum açmayı engelledi.</translation>
+<translation id="7930731167419639574">Konuşma artık yerel olarak işlenip çevrimdışı olarak çalışacaktır</translation>
 <translation id="7933084174919150729">Google Asistan yalnızca birincil profilde kullanılabilir.</translation>
 <translation id="79341161159229895">Hesap <ph name="FIRST_PARENT_EMAIL" /> ve <ph name="SECOND_PARENT_EMAIL" /> tarafından yönetiliyor</translation>
 <translation id="793716872548410480">Panonuzu görüntülemek için <ph name="SHORTCUT_KEY_NAME" /> + V tuşlarına basın. Kopyaladığınız son 5 öğe panonuza kaydedildi.</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index de8eb979..d7dea012 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">Thêm đường kết nối</translation>
 <translation id="2961963223658824723">Đã xảy ra sự cố. Hãy thử lại sau vài giây.</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">Không thể tải các tệp mã chuyển lời nói thành văn bản <ph name="LANGUAGE" /> xuống</translation>
 <translation id="2970920913501714344">Cài đặt ứng dụng, tiện ích và chủ đề</translation>
 <translation id="2977598380246111477">Số tiếp theo</translation>
 <translation id="2992327365391326550">Nút micrô trên thiết bị đang tắt.</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">Mở khóa thiết bị bằng mã dành cho cha mẹ</translation>
 <translation id="4702647871202761252">Màn hình bảo vệ quyền riêng tư đang tắt</translation>
 <translation id="4705716602320768426">Gửi ý kiến phản hồi</translation>
+<translation id="4706121060329443414">Thử tải xuống sau. Dữ liệu giọng nói sẽ được gửi tới Google để xử lý ngay bây giờ.</translation>
 <translation id="4731797938093519117">Quyền truy cập của cha mẹ</translation>
 <translation id="4734965478015604180">Ngang</translation>
 <translation id="4735498845456076464">Phím tắt <ph name="LAUNCHER_KEY_NAME" /> + Số đã thay đổi. Để sử dụng các phím chức năng, hãy nhấn tổ hợp phím <ph name="LAUNCHER_KEY_NAME" /> + một phím ở hàng trên cùng.</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">Nhấn Ctrl + Alt + Z để tắt phản hồi bằng giọng nói.</translation>
 <translation id="5601503069213153581">Mã PIN</translation>
 <translation id="5619862035903135339">Tính năng chụp ảnh màn hình bị tắt theo chính sách của quản trị viên</translation>
+<translation id="5620281292257375798">Chỉ sử dụng nội bộ</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">Giắc cắm micrô</translation>
 <translation id="5649768706273821470">Nghe</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">Dừng ghi</translation>
 <translation id="607652042414456612">Máy tính của bạn có thể phát hiện thiết bị Bluetooth gần đó và hiện thị dưới tên "<ph name="NAME" />" với địa chỉ là <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">Theo chính sách của quản trị viên, khi màn hình có nội dung bí mật, tính năng ghi màn hình sẽ bị tắt.</translation>
+<translation id="6114505516289286752">Đã tải tệp mã chuyển lời nói thành văn bản <ph name="LANGUAGE" /> xuống</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Bạn không thể dùng Trợ lý Google trong phiên khách.</translation>
 <translation id="6137566720514957455">Mở hộp thoại xóa tài khoản cho <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">Có thông tin liên quan đến nội dung bạn chọn. Sử dụng phím Mũi tên lên để truy cập.</translation>
 <translation id="6818242057446442178">Lùi một từ</translation>
 <translation id="6820676911989879663">Hãy nghỉ giải lao!</translation>
+<translation id="6836499262298959512">Tệp nguy hiểm</translation>
 <translation id="6837064795450991317">Ẩn thanh không gian làm việc</translation>
 <translation id="6850010208275816200">Ứng dụng hiện tại đang ở chế độ toàn màn hình. Nếu ứng dụng yêu cầu bạn nhập mật khẩu, trước tiên, hãy thoát khỏi chế độ toàn màn hình.</translation>
 <translation id="6852052252232534364">Nhấp để kích hoạt</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Trung tâm điều khiển điện thoại</translation>
 <translation id="7902625623987030061">Chạm vào cảm biến vân tay</translation>
 <translation id="7904094684485781019">Quản trị viên của tài khoản này đã không cho phép đăng nhập nhiều tài khoản.</translation>
+<translation id="7930731167419639574">Giọng nói được xử lý cục bộ và tính năng Nhập bằng giọng nói hoạt động ngoại tuyến</translation>
 <translation id="7933084174919150729">Bạn chỉ có thể sử dụng Trợ lý Google cho hồ sơ chính.</translation>
 <translation id="79341161159229895">Tài khoản được quản lý bởi <ph name="FIRST_PARENT_EMAIL" /> và <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="793716872548410480">Nhấn tổ hợp phím <ph name="SHORTCUT_KEY_NAME" /> + V để xem bảng nhớ tạm. 5 mục gần đây nhất mà bạn đã sao chép sẽ được lưu vào bảng nhớ tạm.</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index d968c78..0aa739a1 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">新增連線</translation>
 <translation id="2961963223658824723">系統發生錯誤,請幾秒後再試。</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">無法下載<ph name="LANGUAGE" />語音檔案</translation>
 <translation id="2970920913501714344">安裝應用程式、擴充程式和主題</translation>
 <translation id="2977598380246111477">下一個號碼</translation>
 <translation id="2992327365391326550">裝置的麥克風按鈕已關閉。</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">使用家長存取碼解鎖裝置</translation>
 <translation id="4702647871202761252">已停用私隱保護畫面</translation>
 <translation id="4705716602320768426">提供意見</translation>
+<translation id="4706121060329443414">系統稍後將再次嘗試下載,目前會暫時把語音傳送給 Google 處理。</translation>
 <translation id="4731797938093519117">家長存取</translation>
 <translation id="4734965478015604180">橫向</translation>
 <translation id="4735498845456076464">「<ph name="LAUNCHER_KEY_NAME" />鍵 + 數字鍵」的鍵盤快速鍵已變更。如要使用功能鍵,請按下<ph name="LAUNCHER_KEY_NAME" />鍵 + 最上排的任一按鍵。</translation>
@@ -588,6 +590,7 @@
 <translation id="5600837773213129531">按下 Ctrl + Alt + Z 鍵即可停用朗讀功能。</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">管理員政策停用擷取螢幕截圖功能</translation>
+<translation id="5620281292257375798">僅供內部使用</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">麥克風插孔</translation>
 <translation id="5649768706273821470">收聽</translation>
@@ -656,6 +659,7 @@
 <translation id="6073451960410192870">停止錄影</translation>
 <translation id="607652042414456612">您的電腦已開放讓附近的藍牙裝置搜尋,顯示名稱為「<ph name="NAME" />」,地址則是 <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">當畫面上出現機密內容時,管理員政策就會停用螢幕錄影功能</translation>
+<translation id="6114505516289286752">已下載<ph name="LANGUAGE" />語音檔案</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />。<ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">「Google 助理」不適用於訪客工作階段。</translation>
 <translation id="6137566720514957455">打開移除 <ph name="USER_EMAIL_ADDRESS" /> 嘅對話框</translation>
@@ -737,6 +741,7 @@
 <translation id="6816797338148849397">你所揀嘅項目有相關資料可以提供。用向上箭咀掣就可以存取。</translation>
 <translation id="6818242057446442178">往後一個字詞</translation>
 <translation id="6820676911989879663">休息一下!</translation>
+<translation id="6836499262298959512">危險檔案</translation>
 <translation id="6837064795450991317">隱藏桌面列</translation>
 <translation id="6850010208275816200">目前應用程式正處於全螢幕模式。如果應用程式需要您的密碼,請先退出全螢幕模式。</translation>
 <translation id="6852052252232534364">按一下即可啟動</translation>
@@ -877,6 +882,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">請輕觸指紋感應器</translation>
 <translation id="7904094684485781019">這個帳戶的管理員已禁止多重登入。</translation>
+<translation id="7930731167419639574">語音處理程序已在本機執行,語音輸入功能會離線運作</translation>
 <translation id="7933084174919150729">「Google 助理」僅適用於主要設定檔。</translation>
 <translation id="79341161159229895">帳戶由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理</translation>
 <translation id="793716872548410480">按下<ph name="SHORTCUT_KEY_NAME" /> + V 鍵即可查看剪貼簿。您最後複製的 5 個項目會儲存至剪貼簿。</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index f35b2ba..3f44a98 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -243,6 +243,7 @@
 <translation id="2946119680249604491">新增連線</translation>
 <translation id="2961963223658824723">發生錯誤,請於幾秒後再試一次。</translation>
 <translation id="2963773877003373896">mod3</translation>
+<translation id="296762781903199866">無法下載<ph name="LANGUAGE" />語音檔案</translation>
 <translation id="2970920913501714344">安裝應用程式、擴充功能和主題</translation>
 <translation id="2977598380246111477">下一個號碼</translation>
 <translation id="2992327365391326550">裝置的麥克風按鈕已關閉。</translation>
@@ -484,6 +485,7 @@
 <translation id="4696813013609194136">使用家長存取碼將裝置解鎖</translation>
 <translation id="4702647871202761252">已停用隱私保護畫面</translation>
 <translation id="4705716602320768426">提供意見回饋</translation>
+<translation id="4706121060329443414">系統稍後將再次嘗試下載,目前會暫時把語音傳送給 Google 處理。</translation>
 <translation id="4731797938093519117">家長存取</translation>
 <translation id="4734965478015604180">橫向</translation>
 <translation id="4735498845456076464">「<ph name="LAUNCHER_KEY_NAME" /> 鍵 + 數字鍵」的鍵盤快速鍵已變更。如要使用功能鍵,請按下<ph name="LAUNCHER_KEY_NAME" /> 鍵 + 最上排的任一按鍵。</translation>
@@ -589,6 +591,7 @@
 <translation id="5600837773213129531">按下 Ctrl + Alt + Z 鍵即可停用互動朗讀功能。</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5619862035903135339">系統管理員政策已停用螢幕畫面擷取功能</translation>
+<translation id="5620281292257375798">僅供內部使用</translation>
 <translation id="5625955975703555628">LTE+</translation>
 <translation id="5648021990716966815">麥克風插孔</translation>
 <translation id="5649768706273821470">聆聽</translation>
@@ -657,6 +660,7 @@
 <translation id="6073451960410192870">停止錄影</translation>
 <translation id="607652042414456612">你的電腦已開放附近的藍牙裝置搜尋,顯示名稱為「<ph name="NAME" />」,位址則是 <ph name="ADDRESS" /></translation>
 <translation id="6094290315941448991">當畫面上出現機密內容,系統管理員政策就會停用螢幕畫面錄製功能</translation>
+<translation id="6114505516289286752">已下載<ph name="LANGUAGE" />語音檔案</translation>
 <translation id="6119360623251949462"><ph name="CHARGING_STATE" />。<ph name="BATTERY_SAVER_STATE" /></translation>
 <translation id="612734058257491180">Google 助理不支援訪客工作階段。</translation>
 <translation id="6137566720514957455">開啟移除 <ph name="USER_EMAIL_ADDRESS" /> 的對話方塊</translation>
@@ -738,6 +742,7 @@
 <translation id="6816797338148849397">提供所選內容的相關資訊。請使用向上鍵存取。</translation>
 <translation id="6818242057446442178">移至上一個字詞</translation>
 <translation id="6820676911989879663">目前禁止使用裝置!</translation>
+<translation id="6836499262298959512">危險檔案</translation>
 <translation id="6837064795450991317">隱藏桌面列</translation>
 <translation id="6850010208275816200">目前的應用程式正處於全螢幕模式。如果應用程式要求你輸入密碼,請先結束全螢幕模式。</translation>
 <translation id="6852052252232534364">按一下即可啟動</translation>
@@ -878,6 +883,7 @@
 <translation id="7901405293566323524">Phone Hub</translation>
 <translation id="7902625623987030061">請輕觸指紋感應器</translation>
 <translation id="7904094684485781019">這個帳戶的管理員已禁止多重登入。</translation>
+<translation id="7930731167419639574">語音處理程序已在本機執行,語音輸入功能會離線運作</translation>
 <translation id="7933084174919150729">Google 助理僅適用於主要設定檔。</translation>
 <translation id="79341161159229895">這個帳戶是由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理</translation>
 <translation id="793716872548410480">按下<ph name="SHORTCUT_KEY_NAME" /> + V 鍵即可查看剪貼簿。你最後複製的 5 個項目會儲存到剪貼簿中。</translation>
diff --git a/ash/system/accessibility/tray_accessibility.cc b/ash/system/accessibility/tray_accessibility.cc
index fb2ce601..6ee07c5c7 100644
--- a/ash/system/accessibility/tray_accessibility.cc
+++ b/ash/system/accessibility/tray_accessibility.cc
@@ -66,6 +66,17 @@
   }
 }
 
+speech::LanguageCode GetDictationLocale() {
+  std::string dictation_locale = speech::kUsEnglishLocale;
+  PrefService* pref_service =
+      Shell::Get()->session_controller()->GetActivePrefService();
+  if (pref_service) {
+    dictation_locale =
+        pref_service->GetString(prefs::kAccessibilityDictationLocale);
+  }
+  return speech::GetLanguageCode(dictation_locale);
+}
+
 }  // namespace
 
 namespace tray {
@@ -548,25 +559,22 @@
   if (!dictation_enabled)
     soda_installer->RemoveObserver(this);
 
-  std::string dictation_locale = speech::kUsEnglishLocale;
-  PrefService* pref_service =
-      Shell::Get()->session_controller()->GetActivePrefService();
-  if (pref_service) {
-    dictation_locale =
-        pref_service->GetString(prefs::kAccessibilityDictationLocale);
-  }
-
-  if (dictation_enabled && !soda_installer->IsSodaInstalled(
-                               speech::GetLanguageCode(dictation_locale))) {
+  if (dictation_enabled &&
+      !soda_installer->IsSodaInstalled(GetDictationLocale())) {
     // Make sure this view observes SODA installation. We only want to update
     // the user of the installation status if dictation is enabled.
     soda_installer->AddObserver(this);
   }
 }
 
-// SodaInstaller::Observer:
-void AccessibilityDetailedView::OnSodaInstalled() {
-  speech::SodaInstaller::GetInstance()->RemoveObserver(this);
+void AccessibilityDetailedView::OnSodaInstallSucceeded() {
+  speech::SodaInstaller* soda_installer = speech::SodaInstaller::GetInstance();
+  if (!soda_installer->IsSodaInstalled(GetDictationLocale()))
+    return;
+
+  // Only show the success message if both the SODA binary and the language pack
+  // matching the Dictation locale have been downloaded.
+  soda_installer->RemoveObserver(this);
   AccessibilityControllerImpl* controller =
       Shell::Get()->accessibility_controller();
   if (dictation_view_ && controller->IsDictationSettingVisibleInTray()) {
@@ -575,25 +583,64 @@
   }
 }
 
-void AccessibilityDetailedView::OnSodaError() {
-  AccessibilityControllerImpl* controller =
-      Shell::Get()->accessibility_controller();
-  if (dictation_view_ && controller->IsDictationSettingVisibleInTray()) {
-    dictation_view_->SetSubText(l10n_util::GetStringUTF16(
-        IDS_ASH_ACCESSIBILITY_DICTATION_SETTING_SUBTITLE_SODA_DOWNLOAD_ERROR));
-  }
-}
+void AccessibilityDetailedView::OnSodaInstallProgress(
+    int progress,
+    speech::LanguageCode language_code) {
+  if (language_code != GetDictationLocale())
+    return;
 
-void AccessibilityDetailedView::OnSodaProgress(int combined_progress) {
+  // Only show the progress message if this applies to the language pack
+  // matching the Dictation locale.
   AccessibilityControllerImpl* controller =
       Shell::Get()->accessibility_controller();
   if (dictation_view_ && controller->IsDictationSettingVisibleInTray()) {
     dictation_view_->SetSubText(l10n_util::GetStringFUTF16Int(
         IDS_ASH_ACCESSIBILITY_DICTATION_SETTING_SUBTITLE_SODA_DOWNLOAD_PROGRESS,
-        combined_progress));
+        progress));
   }
 }
 
+void AccessibilityDetailedView::OnSodaInstallFailed(
+    speech::LanguageCode language_code) {
+  if (language_code == speech::LanguageCode::kNone ||
+      language_code == GetDictationLocale()) {
+    // Show the failed message if either the Dictation locale failed or the SODA
+    // binary failed (encoded by LanguageCode::kNone).
+    speech::SodaInstaller::GetInstance()->RemoveObserver(this);
+    AccessibilityControllerImpl* controller =
+        Shell::Get()->accessibility_controller();
+    if (dictation_view_ && controller->IsDictationSettingVisibleInTray()) {
+      dictation_view_->SetSubText(l10n_util::GetStringUTF16(
+          IDS_ASH_ACCESSIBILITY_DICTATION_SETTING_SUBTITLE_SODA_DOWNLOAD_ERROR));
+    }
+  }
+}
+
+// SodaInstaller::Observer:
+void AccessibilityDetailedView::OnSodaInstalled() {
+  OnSodaInstallSucceeded();
+}
+
+void AccessibilityDetailedView::OnSodaLanguagePackInstalled(
+    speech::LanguageCode language_code) {
+  OnSodaInstallSucceeded();
+}
+
+void AccessibilityDetailedView::OnSodaError() {
+  OnSodaInstallFailed(speech::LanguageCode::kNone);
+}
+
+void AccessibilityDetailedView::OnSodaLanguagePackError(
+    speech::LanguageCode language_code) {
+  OnSodaInstallFailed(language_code);
+}
+
+void AccessibilityDetailedView::OnSodaLanguagePackProgress(
+    int language_progress,
+    speech::LanguageCode language_code) {
+  OnSodaInstallProgress(language_progress, language_code);
+}
+
 void AccessibilityDetailedView::SetDictationViewSubtitleTextForTesting(
     std::u16string text) {
   dictation_view_->SetSubText(text);
diff --git a/ash/system/accessibility/tray_accessibility.h b/ash/system/accessibility/tray_accessibility.h
index 6698e24..9530433c 100644
--- a/ash/system/accessibility/tray_accessibility.h
+++ b/ash/system/accessibility/tray_accessibility.h
@@ -31,6 +31,7 @@
 class HoverHighlightView;
 class DetailedViewDelegate;
 class TrayAccessibilityLoginScreenTest;
+class TrayAccessibilitySodaTest;
 class TrayAccessibilityTest;
 
 namespace tray {
@@ -52,6 +53,7 @@
 
  private:
   friend class ::ash::TrayAccessibilityLoginScreenTest;
+  friend class ::ash::TrayAccessibilitySodaTest;
   friend class ::ash::TrayAccessibilityTest;
   friend class chromeos::TrayAccessibilityTest;
 
@@ -69,17 +71,18 @@
   void AppendAccessibilityList();
 
   void UpdateSodaInstallerObserverStatus();
+  void OnSodaInstallSucceeded();
+  void OnSodaInstallProgress(int progress, speech::LanguageCode language_code);
+  void OnSodaInstallFailed(speech::LanguageCode language_code);
 
   // SodaInstaller::Observer:
   void OnSodaInstalled() override;
-  void OnSodaLanguagePackInstalled(
-      speech::LanguageCode language_code) override {}
+  void OnSodaLanguagePackInstalled(speech::LanguageCode language_code) override;
   void OnSodaError() override;
-  void OnSodaLanguagePackError(speech::LanguageCode language_code) override {}
-  void OnSodaProgress(int combined_progress) override;
+  void OnSodaLanguagePackError(speech::LanguageCode language_code) override;
+  void OnSodaProgress(int combined_progress) override {}
   void OnSodaLanguagePackProgress(int language_progress,
-                                  speech::LanguageCode language_code) override {
-  }
+                                  speech::LanguageCode language_code) override;
 
   void SetDictationViewSubtitleTextForTesting(std::u16string text);
   std::u16string GetDictationViewSubtitleTextForTesting();
diff --git a/ash/system/accessibility/tray_accessibility_unittest.cc b/ash/system/accessibility/tray_accessibility_unittest.cc
index 4d95acd..e0982900 100644
--- a/ash/system/accessibility/tray_accessibility_unittest.cc
+++ b/ash/system/accessibility/tray_accessibility_unittest.cc
@@ -9,6 +9,7 @@
 #include "ash/accessibility/accessibility_observer.h"
 #include "ash/accessibility/magnifier/docked_magnifier_controller.h"
 #include "ash/constants/ash_features.h"
+#include "ash/constants/ash_pref_names.h"
 #include "ash/session/session_controller_impl.h"
 #include "ash/shell.h"
 #include "ash/system/tray/detailed_view_delegate.h"
@@ -26,6 +27,13 @@
 namespace ash {
 namespace {
 
+const std::u16string kInitialDictationViewSubtitleText = u"This is a test";
+const std::u16string kSodaDownloaded = u"Speech files downloaded";
+const std::u16string kSodaInProgress =
+    u"Downloading speech recognition files… 50%";
+const std::u16string kSodaFailed =
+    u"Can't download speech files. Try again later.";
+
 void SetScreenMagnifierEnabled(bool enabled) {
   Shell::Get()->accessibility_delegate()->SetMagnifierEnabled(enabled);
 }
@@ -103,22 +111,9 @@
   void SetUp() override {
     AshTestBase::SetUp();
     Shell::Get()->accessibility_controller()->AddObserver(this);
-    // Since this test suite is part of ash unit tests, the
-    // SodaInstallerImplChromeOS is never created (it's normally created when
-    // ChromeBrowserMainPartsChromeos initializes). Create it here so that
-    // calling speech::SodaInstaller::GetInstance() returns a valid instance.
-    scoped_feature_list_.InitWithFeatures(
-        {::features::kExperimentalAccessibilityDictationOffline,
-         ash::features::kOnDeviceSpeechRecognition},
-        {});
-    soda_installer_impl_ =
-        std::make_unique<speech::SodaInstallerImplChromeOS>();
-    speech::SodaInstaller::GetInstance()->UninstallSodaForTesting();
   }
 
   void TearDown() override {
-    speech::SodaInstaller::GetInstance()->UninstallSodaForTesting();
-    soda_installer_impl_.reset();
     Shell::Get()->accessibility_controller()->RemoveObserver(this);
     AshTestBase::TearDown();
   }
@@ -374,20 +369,8 @@
     return detailed_menu_->GetClassName();
   }
 
-  void OnSodaInstalled() { detailed_menu_->OnSodaInstalled(); }
-
-  void OnSodaError() { detailed_menu_->OnSodaError(); }
-
-  void OnSodaProgress(int progress) {
-    detailed_menu_->OnSodaProgress(progress);
-  }
-
-  void SetDictationViewSubtitleText(std::u16string text) {
-    detailed_menu_->SetDictationViewSubtitleTextForTesting(text);
-  }
-
-  std::u16string GetDictationViewSubtitleText() {
-    return detailed_menu_->GetDictationViewSubtitleTextForTesting();
+  tray::AccessibilityDetailedView* detailed_menu() {
+    return detailed_menu_.get();
   }
 
  private:
@@ -402,8 +385,6 @@
 
   std::unique_ptr<DetailedViewDelegate> delegate_;
   std::unique_ptr<tray::AccessibilityDetailedView> detailed_menu_;
-  std::unique_ptr<speech::SodaInstallerImplChromeOS> soda_installer_impl_;
-  base::test::ScopedFeatureList scoped_feature_list_;
 
   DISALLOW_COPY_AND_ASSIGN(TrayAccessibilityTest);
 };
@@ -654,59 +635,116 @@
             GetDetailedViewClassName());
 }
 
-// Ensures that the dictation subtitle text is changed to the correct value
-// when calling various methods.
-TEST_F(TrayAccessibilityTest, SodaDownloadUnitTest) {
-  CreateDetailedMenu();
-  // We need to set the subtitle text before we try to retrieve it.
-  SetDictationViewSubtitleText(u"This is a test");
-  EXPECT_EQ(u"This is a test", GetDictationViewSubtitleText());
-  OnSodaInstalled();
-  EXPECT_EQ(u"Speech files downloaded", GetDictationViewSubtitleText());
+class TrayAccessibilitySodaTest : public TrayAccessibilityTest {
+ protected:
+  TrayAccessibilitySodaTest() { set_start_session(false); }
+  ~TrayAccessibilitySodaTest() override = default;
+  TrayAccessibilitySodaTest(const TrayAccessibilitySodaTest&) = delete;
+  TrayAccessibilitySodaTest& operator=(const TrayAccessibilitySodaTest&) =
+      delete;
 
-  SetDictationViewSubtitleText(u"This is a test");
-  EXPECT_EQ(u"This is a test", GetDictationViewSubtitleText());
-  OnSodaError();
-  EXPECT_EQ(u"Can't download speech files. Try again later.",
-            GetDictationViewSubtitleText());
+  void SetUp() override {
+    TrayAccessibilityTest::SetUp();
+    // Since this test suite is part of ash unit tests, the
+    // SodaInstallerImplChromeOS is never created (it's normally created when
+    // ChromeBrowserMainPartsChromeos initializes). Create it here so that
+    // calling speech::SodaInstaller::GetInstance() returns a valid instance.
+    scoped_feature_list_.InitWithFeatures(
+        {::features::kExperimentalAccessibilityDictationOffline,
+         ash::features::kOnDeviceSpeechRecognition},
+        {});
+    soda_installer_impl_ =
+        std::make_unique<speech::SodaInstallerImplChromeOS>();
+    soda_installer()->UninstallSodaForTesting();
 
-  SetDictationViewSubtitleText(u"This is a test");
-  EXPECT_EQ(u"This is a test", GetDictationViewSubtitleText());
-  OnSodaProgress(50);
-  EXPECT_EQ(u"Downloading speech recognition files… 50%",
-            GetDictationViewSubtitleText());
+    CreateDetailedMenu();
+    EnableDictation(true);
+    SetDictationViewSubtitleText(kInitialDictationViewSubtitleText);
+    SetDictationLocale("en-US");
+  }
+
+  void TearDown() override {
+    soda_installer()->UninstallSodaForTesting();
+    soda_installer_impl_.reset();
+    TrayAccessibilityTest::TearDown();
+  }
+
+  void SetDictationLocale(const std::string& locale) {
+    Shell::Get()->session_controller()->GetActivePrefService()->SetString(
+        prefs::kAccessibilityDictationLocale, locale);
+  }
+
+  speech::SodaInstaller* soda_installer() {
+    return speech::SodaInstaller::GetInstance();
+  }
+
+  speech::LanguageCode en_us() { return speech::LanguageCode::kEnUs; }
+
+  void SetDictationViewSubtitleText(std::u16string text) {
+    detailed_menu()->SetDictationViewSubtitleTextForTesting(text);
+  }
+
+  std::u16string GetDictationViewSubtitleText() {
+    return detailed_menu()->GetDictationViewSubtitleTextForTesting();
+  }
+
+ private:
+  std::unique_ptr<speech::SodaInstallerImplChromeOS> soda_installer_impl_;
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+// Ensures that the Dictation subtitle changes when SODA AND the language pack
+// matching the Dictation locale are installed.
+TEST_F(TrayAccessibilitySodaTest, OnSodaInstalledNotification) {
+  SetDictationLocale("fr-FR");
+
+  // Pretend that the SODA binary was installed. We still need to wait for the
+  // correct language pack before doing anything.
+  soda_installer()->NotifySodaInstalledForTesting();
+  EXPECT_EQ(kInitialDictationViewSubtitleText, GetDictationViewSubtitleText());
+  soda_installer()->NotifyOnSodaLanguagePackInstalledForTesting(en_us());
+  EXPECT_EQ(kInitialDictationViewSubtitleText, GetDictationViewSubtitleText());
+  soda_installer()->NotifyOnSodaLanguagePackInstalledForTesting(
+      speech::LanguageCode::kFrFr);
+  EXPECT_EQ(kSodaDownloaded, GetDictationViewSubtitleText());
 }
 
-// Ensures that we don't respond to soda download updates when dictation is off.
-TEST_F(TrayAccessibilityTest, SodaDownloadDictationDisabled) {
-  CreateDetailedMenu();
+// Ensures we only notify the user of progress for the language pack matching
+// the Dictation locale.
+TEST_F(TrayAccessibilitySodaTest, OnSodaProgressNotification) {
+  // Do not give updates for the SODA binary.
+  soda_installer()->NotifySodaDownloadProgressForTesting(50);
+  EXPECT_EQ(kInitialDictationViewSubtitleText, GetDictationViewSubtitleText());
+  soda_installer()->NotifyOnSodaLanguagePackProgressForTesting(
+      50, speech::LanguageCode::kFrFr);
+  EXPECT_EQ(kInitialDictationViewSubtitleText, GetDictationViewSubtitleText());
+  soda_installer()->NotifyOnSodaLanguagePackProgressForTesting(50, en_us());
+  EXPECT_EQ(kSodaInProgress, GetDictationViewSubtitleText());
+}
+
+// Ensures we only notify the user of an error when the SODA binary fails to
+// download.
+TEST_F(TrayAccessibilitySodaTest, SodaBinaryErrorNotification) {
+  soda_installer()->NotifySodaErrorForTesting();
+  EXPECT_EQ(kSodaFailed, GetDictationViewSubtitleText());
+}
+
+TEST_F(TrayAccessibilitySodaTest, SodaLanguageErrorNotification) {
+  // Do nothing if the failed language pack is different than the Dictation
+  // locale.
+  soda_installer()->NotifyOnSodaLanguagePackErrorForTesting(
+      speech::LanguageCode::kFrFr);
+  EXPECT_EQ(kInitialDictationViewSubtitleText, GetDictationViewSubtitleText());
+  soda_installer()->NotifyOnSodaLanguagePackErrorForTesting(en_us());
+  EXPECT_EQ(kSodaFailed, GetDictationViewSubtitleText());
+}
+
+// Ensures that we don't respond to SODA download updates when dictation is off.
+TEST_F(TrayAccessibilitySodaTest, SodaDownloadDictationDisabled) {
   EnableDictation(false);
-  SetDictationViewSubtitleText(u"This is a test");
-  EXPECT_EQ(u"This is a test", GetDictationViewSubtitleText());
-  speech::SodaInstaller::GetInstance()->NotifySodaInstalledForTesting();
-  EXPECT_EQ(u"This is a test", GetDictationViewSubtitleText());
-}
-
-// Ensures that we respond to soda download updates when dictation is on.
-// For this test, we enable dictation before the menu is created.
-TEST_F(TrayAccessibilityTest, SodaDownloadDictationEnabledBeforeMenuCreated) {
-  EnableDictation(true);
-  CreateDetailedMenu();
-  SetDictationViewSubtitleText(u"This is a test");
-  EXPECT_EQ(u"This is a test", GetDictationViewSubtitleText());
-  speech::SodaInstaller::GetInstance()->NotifySodaInstalledForTesting();
-  EXPECT_EQ(u"Speech files downloaded", GetDictationViewSubtitleText());
-}
-
-// Ensures that we respond to soda download updates when dictation is on.
-// For this test, we enable dictation after the menu is created.
-TEST_F(TrayAccessibilityTest, SodaDownloadDictationEnabledAfterMenuCreated) {
-  CreateDetailedMenu();
-  EnableDictation(true);
-  SetDictationViewSubtitleText(u"This is a test");
-  EXPECT_EQ(u"This is a test", GetDictationViewSubtitleText());
-  speech::SodaInstaller::GetInstance()->NotifySodaInstalledForTesting();
-  EXPECT_EQ(u"Speech files downloaded", GetDictationViewSubtitleText());
+  EXPECT_EQ(kInitialDictationViewSubtitleText, GetDictationViewSubtitleText());
+  soda_installer()->NotifySodaErrorForTesting();
+  EXPECT_EQ(kInitialDictationViewSubtitleText, GetDictationViewSubtitleText());
 }
 
 class TrayAccessibilityLoginScreenTest : public TrayAccessibilityTest {
diff --git a/ash/system/message_center/stacked_notification_bar.cc b/ash/system/message_center/stacked_notification_bar.cc
index a8fd7f3..58443271 100644
--- a/ash/system/message_center/stacked_notification_bar.cc
+++ b/ash/system/message_center/stacked_notification_bar.cc
@@ -347,13 +347,11 @@
   clear_all_button_->SetVisible(false);
   expand_all_button_->SetVisible(true);
   UpdateVisibility();
-  Layout();
 }
 
 void StackedNotificationBar::SetExpanded() {
   clear_all_button_->SetVisible(true);
   expand_all_button_->SetVisible(false);
-  Layout();
 }
 
 void StackedNotificationBar::AddNotificationIcon(
@@ -504,8 +502,6 @@
   } else {
     count_label_->SetVisible(false);
   }
-
-  Layout();
 }
 
 void StackedNotificationBar::OnPaint(gfx::Canvas* canvas) {
diff --git a/ash/system/message_center/unified_message_center_view.cc b/ash/system/message_center/unified_message_center_view.cc
index 91fe7d2..a7cb7ca 100644
--- a/ash/system/message_center/unified_message_center_view.cc
+++ b/ash/system/message_center/unified_message_center_view.cc
@@ -125,7 +125,6 @@
   collapsed_ = false;
   notification_bar_->SetExpanded();
   scroller_->SetVisible(true);
-  Layout();
 }
 
 void UnifiedMessageCenterView::SetCollapsed(bool animate) {
@@ -183,8 +182,6 @@
   PreferredSizeChanged();
   SetMaxHeight(available_height_);
 
-  Layout();
-
   if (GetWidget() && !GetWidget()->IsClosed())
     GetWidget()->SynthesizeMouseMoveEvent();
 }
@@ -277,7 +274,6 @@
       GetStackedNotifications());
   if (was_count_updated) {
     const int previous_y = scroller_->y();
-    Layout();
     // Adjust scroll position when counter visibility is changed so that
     // on-screen position of notification list does not change.
     scroll_bar_->ScrollByContentsOffset(previous_y - scroller_->y());
diff --git a/ash/system/message_center/unified_message_center_view_unittest.cc b/ash/system/message_center/unified_message_center_view_unittest.cc
index ff1e7cf..f71af6d 100644
--- a/ash/system/message_center/unified_message_center_view_unittest.cc
+++ b/ash/system/message_center/unified_message_center_view_unittest.cc
@@ -213,6 +213,15 @@
     return focused_message_view;
   }
 
+  void RelayoutMessageCenterViewForTest() {
+    // Outside of tests, any changes to bubble's size as well as scrolling
+    // through notification list will trigger TrayBubbleView's BoxLayout to
+    // relayout, and then this view will relayout. In test, we don't have
+    // TrayBubbleView as the parent, so we need to explicitly call Layout()
+    // in some circumstances.
+    message_center_view_->Layout();
+  }
+
   virtual TestUnifiedMessageCenterView* message_center_view() {
     return message_center_view_.get();
   }
@@ -298,6 +307,7 @@
   // The message center should autoscroll to the bottom of the list (with some
   // padding) after adding a new notification.
   auto id_to_remove = AddNotification(false /* pinned */);
+  RelayoutMessageCenterViewForTest();
   int spacing = 0;
   int scroll_position = GetScroller()->GetVisibleRect().y();
   EXPECT_EQ(GetMessageListView()->height() - GetScroller()->height() + spacing,
@@ -310,6 +320,7 @@
   // The scroll position should be reduced by the height of the removed
   // notification after collapsing.
   AnimateMessageListToEnd();
+  RelayoutMessageCenterViewForTest();
   EXPECT_EQ(scroll_position - GetMessageViewVisibleBounds(0).height(),
             GetScroller()->GetVisibleRect().y());
 
@@ -330,6 +341,8 @@
 
   MessageCenter::Get()->RemoveNotification(ids.back(), true /* by_user */);
   AnimateMessageListToEnd();
+  RelayoutMessageCenterViewForTest();
+
   EXPECT_TRUE(message_center_view()->GetVisible());
   EXPECT_GT(previous_contents_height, GetScrollerContents()->height());
   EXPECT_GT(previous_list_height, GetMessageListView()->height());
@@ -643,6 +656,7 @@
   int scroll_amount = (GetMessageViewVisibleBounds(0).height() * 5) + 1;
   GetScroller()->ScrollToPosition(GetScrollBar(), scroll_amount);
   message_center_view()->OnMessageCenterScrolled();
+  RelayoutMessageCenterViewForTest();
   EXPECT_TRUE(GetNotificationBarLabel()->GetVisible());
   int label_width = GetNotificationBarLabel()->bounds().width();
   EXPECT_GT(label_width, 0);
@@ -652,6 +666,7 @@
   scroll_amount = (GetMessageViewVisibleBounds(0).height() * 14) + 1;
   GetScroller()->ScrollToPosition(GetScrollBar(), scroll_amount);
   message_center_view()->OnMessageCenterScrolled();
+  RelayoutMessageCenterViewForTest();
   EXPECT_GT(GetNotificationBarLabel()->bounds().width(), label_width);
 }
 
@@ -690,6 +705,7 @@
 
   // Add 1 unpinned notifications. Clear all should now be shown.
   AddNotification(false /* pinned */);
+  RelayoutMessageCenterViewForTest();
   EXPECT_TRUE(GetNotificationBarClearAllButton()->GetVisible());
 }
 
diff --git a/ash/webui/scanning/resources/action_toolbar.html b/ash/webui/scanning/resources/action_toolbar.html
index af4711b1..d64941f 100644
--- a/ash/webui/scanning/resources/action_toolbar.html
+++ b/ash/webui/scanning/resources/action_toolbar.html
@@ -21,9 +21,11 @@
   }
 
   cr-icon-button {
-    --cr-icon-button-size: 24px;
-    --cr-icon-button-margin-start: 0;
     --cr-icon-button-fill-color: var(--google-grey-200);
+    --cr-icon-button-hover-background-color:
+          rgba(var(--google-grey-900-rgb), .4);
+    --cr-icon-button-margin-start: 0;
+    --cr-icon-button-size: 24px;
   }
 
   #pageNumbers {
diff --git a/ash/webui/scanning/resources/scan_preview.js b/ash/webui/scanning/resources/scan_preview.js
index cbd2786..9efe609f 100644
--- a/ash/webui/scanning/resources/scan_preview.js
+++ b/ash/webui/scanning/resources/scan_preview.js
@@ -106,12 +106,6 @@
       value: 1,
     },
 
-    /** @private {number} */
-    previousPageInView_: {
-      type: Number,
-      value: -1,
-    },
-
     /**
      * Set to true once the first scanned image from a scan is loaded. This is
      * needed to prevent checking the dimensions of every scanned image. The
@@ -140,7 +134,7 @@
     'setPreviewAriaLabel_(showScannedImages_, showCancelingProgress_,' +
         ' showHelperText_)',
     'setScanProgressTimer_(showScanProgress_, progressPercent)',
-    'setFocusedScannedImage_(objectUrls.length, currentPageInView_)',
+    'onObjectUrlsChange_(objectUrls.length)',
   ],
 
   /** @override */
@@ -261,41 +255,43 @@
   },
 
   /**
-   * Increments the current page number when the previous page is scrolled up
-   * halfway outside the viewport. Assumes each scanned image is the same
-   * height.
+   * While scrolling, if the current page in view would change, update it and
+   * set the focus CSS variable accordingly.
    * @private
    */
   onScannedImagesScroll_() {
-    const scannedImage = this.$$('.scanned-image');
-    if (!scannedImage) {
+    if (!this.multiPageScanChecked ||
+        this.appState != AppState.MULTI_PAGE_NEXT_ACTION) {
       return;
     }
 
-    const imageHeight = scannedImage.height;
-    const scrollTop = this.$$('#previewDiv').scrollTop - (imageHeight * .5);
-    assert(this.currentPageInView_ > 0);
-    this.previousPageInView_ = this.currentPageInView_;
-
-    // This is a special case for the first page since there is no margin or
-    // previous page above it.
-    if (scrollTop < 0) {
-      this.currentPageInView_ = 1;
+    const scannedImages =
+        this.$$('#scannedImages').getElementsByClassName('scanned-image');
+    if (scannedImages.length === 0) {
       return;
     }
 
-    this.currentPageInView_ = 2 +
-        Math.floor(scrollTop / (imageHeight + SCANNED_IMG_MARGIN_BOTTOM_PX));
-    assert(this.currentPageInView_ > 0);
+    // If the current page in view stays the same, do nothing.
+    const pageInView = this.getCurrentPageInView_(scannedImages);
+    if (pageInView === this.currentPageInView_) {
+      return;
+    }
+
+    this.setFocusedScannedImage_(scannedImages, pageInView);
   },
 
   /**
-   * Sets the CSS class for the current scanned image in view so the blue border
-   * will show on the correct page when hovered.
+   * When scanned images are inserted/removed, recalcuate the current page in
+   * view and set the focus CSS variable accordingly.
    * @private
    */
-  setFocusedScannedImage_() {
-    // Need to wait for the scanned images to render.
+  onObjectUrlsChange_() {
+    if (!this.multiPageScanChecked ||
+        this.appState != AppState.MULTI_PAGE_NEXT_ACTION) {
+      return;
+    }
+
+    // Need to wait for the new scanned images to render.
     afterNextRender(this, () => {
       const scannedImages =
           this.$$('#scannedImages').getElementsByClassName('scanned-image');
@@ -303,17 +299,58 @@
         return;
       }
 
-      if (this.previousPageInView_ > 0) {
-        scannedImages[this.previousPageInView_ - 1].classList.remove(
-            'focused-scanned-image');
-      }
-      assert(this.currentPageInView_ > 0);
-      scannedImages[this.currentPageInView_ - 1].classList.add(
-          'focused-scanned-image');
+      this.setFocusedScannedImage_(
+          scannedImages, this.getCurrentPageInView_(scannedImages));
     });
   },
 
   /**
+   * Calculates the current page in view. Returns the page number of the
+   * highest page in the viewport unless that page is scrolled halfway outside
+   * the viewport, then it'll return the following page number. Assumes each
+   * scanned image is the same height.
+   * @param {!HTMLCollection} scannedImages
+   * @return {number}
+   * @private
+   */
+  getCurrentPageInView_(scannedImages) {
+    assert(this.multiPageScanChecked);
+
+    const imageHeight = scannedImages[0].height;
+    const scrollTop = this.$$('#previewDiv').scrollTop - (imageHeight * .5);
+
+    // This is a special case for the first page since there is no margin or
+    // previous page above it.
+    if (scrollTop < 0) {
+      return 1;
+    }
+
+    return 2 +
+        Math.floor(scrollTop / (imageHeight + SCANNED_IMG_MARGIN_BOTTOM_PX));
+  },
+
+  /**
+   * Sets the CSS class for the current scanned image in view so the blue border
+   * will show on the correct page when hovered.
+   * @param {!HTMLCollection} scannedImages
+   * @param {number} pageInView
+   * @private
+   */
+  setFocusedScannedImage_(scannedImages, pageInView) {
+    assert(this.multiPageScanChecked);
+
+    // Remove the focus CSS class from the scanned image which already has it.
+    assert(
+        this.currentPageInView_ > 0 &&
+        this.currentPageInView_ <= scannedImages.length);
+    scannedImages[this.currentPageInView_ - 1].classList.remove(
+        'focused-scanned-image');
+
+    scannedImages[pageInView - 1].classList.add('focused-scanned-image');
+    this.currentPageInView_ = pageInView;
+  },
+
+  /**
    * Once the scanned images load, set the action toolbar position.
    * @private
    */
diff --git a/base/profiler/win32_stack_frame_unwinder.cc b/base/profiler/win32_stack_frame_unwinder.cc
index 553c1e3..604171d 100644
--- a/base/profiler/win32_stack_frame_unwinder.cc
+++ b/base/profiler/win32_stack_frame_unwinder.cc
@@ -43,7 +43,7 @@
 PRUNTIME_FUNCTION Win32UnwindFunctions::LookupFunctionEntry(
     DWORD64 program_counter,
     PDWORD64 image_base) {
-#ifdef _WIN64
+#if defined(ARCH_CPU_64_BITS)
   return ::RtlLookupFunctionEntry(program_counter, image_base, nullptr);
 #else
   NOTREACHED();
@@ -55,7 +55,7 @@
                                          DWORD64 program_counter,
                                          PRUNTIME_FUNCTION runtime_function,
                                          CONTEXT* context) {
-#ifdef _WIN64
+#if defined(ARCH_CPU_64_BITS)
   void* handler_data = nullptr;
   ULONG64 establisher_frame;
   KNONVOLATILE_CONTEXT_POINTERS nvcontext = {};
@@ -90,16 +90,16 @@
     // LookupFunctionEntry and VirtualUnwind calls, resulting in crashes
     // accessing unwind information from the unloaded module.
     const ModuleCache::Module* module) {
-#ifdef _WIN64
+#if defined(ARCH_CPU_64_BITS)
   // Ensure we found a valid module for the program counter.
   DCHECK(module);
-  ULONG64 image_base;
+  ULONG64 image_base = 0;
   // Try to look up unwind metadata for the current function.
   PRUNTIME_FUNCTION runtime_function =
       unwind_functions_->LookupFunctionEntry(ContextPC(context), &image_base);
-  DCHECK_EQ(module->GetBaseAddress(), image_base);
 
   if (runtime_function) {
+    DCHECK_EQ(module->GetBaseAddress(), image_base);
     unwind_functions_->VirtualUnwind(image_base, ContextPC(context),
                                      runtime_function, context);
     return true;
diff --git a/base/profiler/win32_stack_frame_unwinder.h b/base/profiler/win32_stack_frame_unwinder.h
index 4e0f855..aed3ab7e 100644
--- a/base/profiler/win32_stack_frame_unwinder.h
+++ b/base/profiler/win32_stack_frame_unwinder.h
@@ -16,7 +16,7 @@
 
 namespace base {
 
-#if !defined(_WIN64)
+#if !defined(ARCH_CPU_64_BITS)
 // Allows code to compile for x86. Actual support for x86 will require either
 // refactoring these interfaces or separate architecture-specific interfaces.
 struct RUNTIME_FUNCTION {
@@ -24,7 +24,7 @@
   DWORD EndAddress;
 };
 using PRUNTIME_FUNCTION = RUNTIME_FUNCTION*;
-#endif  // !defined(_WIN64)
+#endif  // !defined(ARCH_CPU_64_BITS)
 
 inline ULONG64 ContextPC(CONTEXT* context) {
 #if defined(ARCH_CPU_X86_64)
diff --git a/build/android/adb_install_apk.py b/build/android/adb_install_apk.py
index 534ffe6..ecbcc69 100755
--- a/build/android/adb_install_apk.py
+++ b/build/android/adb_install_apk.py
@@ -59,8 +59,11 @@
   parser.add_argument('--adb-path', type=os.path.abspath,
                       help='Absolute path to the adb binary to use.')
   parser.add_argument('--denylist-file', help='Device denylist JSON file.')
-  parser.add_argument('-v', '--verbose', action='count',
-                      help='Enable verbose logging.')
+  parser.add_argument('-v',
+                      '--verbose',
+                      action='count',
+                      help='Enable verbose logging.',
+                      default=0)
   parser.add_argument('--downgrade', action='store_true',
                       help='If set, allows downgrading of apk.')
   parser.add_argument('--timeout', type=int,
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 7a90d8a5..43dad41f 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-6.20210812.3.1
+6.20210813.0.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 7a90d8a5..e32939b 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-6.20210812.3.1
+6.20210813.1.1
diff --git a/buildtools/reclient_cfgs/win-cross-experiments/rewrapper_windows.cfg b/buildtools/reclient_cfgs/win-cross-experiments/rewrapper_windows.cfg
index 724601b..f23991a1 100644
--- a/buildtools/reclient_cfgs/win-cross-experiments/rewrapper_windows.cfg
+++ b/buildtools/reclient_cfgs/win-cross-experiments/rewrapper_windows.cfg
@@ -1,5 +1,5 @@
 # llvmorg-14-init-1002-gb5e470aa-1
-platform=container-image=gcr.io/chops-private-images-prod/rbe/chromium-browser-clang/windows-cross@sha256:40bd9f8c56c8db0025beed9e0291af60ffb1b689933d0b3c99120d2fa71b2608,OSFamily=Linux
+platform=container-image=docker://gcr.io/chops-private-images-prod/rbe/chromium-browser-clang/windows-cross@sha256:40bd9f8c56c8db0025beed9e0291af60ffb1b689933d0b3c99120d2fa71b2608,OSFamily=Linux
 server_address=pipe://reproxy.pipe
 labels=type=compile,compiler=clang-cl,lang=cpp
 exec_strategy=remote_local_fallback
diff --git a/buildtools/reclient_cfgs/win-cross-experiments/rewrapper_windows_nacl.cfg b/buildtools/reclient_cfgs/win-cross-experiments/rewrapper_windows_nacl.cfg
index 8214948..706e058c 100644
--- a/buildtools/reclient_cfgs/win-cross-experiments/rewrapper_windows_nacl.cfg
+++ b/buildtools/reclient_cfgs/win-cross-experiments/rewrapper_windows_nacl.cfg
@@ -1,5 +1,5 @@
 # 9a5dd7a226bcf5c999ba459b0b872aaaecd6541d
-platform=container-image=gcr.io/chops-private-images-prod/rbe/nacl/windows-cross@sha256:7118c427c388391a519bbd8d051c1243ae1d7bed15810b7704b4487a3e857297,OSFamily=Linux
+platform=container-image=docker://gcr.io/chops-private-images-prod/rbe/nacl/windows-cross@sha256:7118c427c388391a519bbd8d051c1243ae1d7bed15810b7704b4487a3e857297,OSFamily=Linux
 server_address=pipe://reproxy.pipe
 labels=type=compile,compiler=nacl,lang=cpp
 exec_strategy=remote_local_fallback
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
index b72b5a96..43959b62 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
@@ -909,7 +909,10 @@
 
     @Override
     public boolean canScrollUp() {
-        return mSwipeRefreshLayout.canScrollVertically(-1);
+        // mSwipeRefreshLayout is set to NULL when this instance is destroyed, but
+        // RefreshIphScrollListener.onHeaderOffsetChanged may still be triggered which will call
+        // into this method.
+        return (mSwipeRefreshLayout == null) ? true : mSwipeRefreshLayout.canScrollVertically(-1);
     }
 
     private boolean isReliabilityLoggingEnabled() {
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/v2/FeedStream.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/v2/FeedStream.java
index 07a1036..1e628e9 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/v2/FeedStream.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/v2/FeedStream.java
@@ -747,7 +747,17 @@
             return false;
         }
 
+        // When swapping feeds, the totalItemCount and lastVisibleItemPosition can temporarily fall
+        // out of sync. Early exit on the pathological case where we think we're showing an item
+        // beyond the end of the feed. This can occur if maybeLoadMore() is called during a feed
+        // swap, after the feed items have been cleared, but before the view has finished updating
+        // (which happens asynchronously).
         int lastVisibleItem = layoutManager.findLastVisibleItemPosition();
+        if (totalItemCount < lastVisibleItem) {
+            return false;
+        }
+
+        // No need to load more if there are more scrollable items than the trigger amount.
         int numItemsRemaining = totalItemCount - lastVisibleItem;
         if (numItemsRemaining > lookaheadTrigger) {
             return false;
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 1da17da..485389e 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
@@ -1029,6 +1029,24 @@
         ShoppingPersistedTabDataTestUtils.acquireSemaphore(semaphore1);
     }
 
+    @SmallTest
+    @Test
+    @CommandLineFlags.
+    Add({"force-fieldtrial-params=Study.Group:price_tracking_with_optimization_guide/true"})
+    public void testCheckPriceDropUrlForUpdateWhenItExists() {
+        final Semaphore semaphore = new Semaphore(0);
+        MockTab tab = getDefaultTab();
+        mockOptimizationGuideEmptyResponse();
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            ShoppingPersistedTabData.from(tab, (sptdRes) -> {
+                Assert.assertNull(sptdRes.getPriceDropDataForTesting().gurl);
+                Assert.assertFalse(sptdRes.needsUpdate());
+                semaphore.release();
+            });
+        });
+        ShoppingPersistedTabDataTestUtils.acquireSemaphore(semaphore);
+    }
+
     private static MockTab getDefaultTab() {
         return (MockTab) ShoppingPersistedTabDataTestUtils.createTabOnUiThread(
                 ShoppingPersistedTabDataTestUtils.TAB_ID,
@@ -1046,6 +1064,18 @@
                 HintsProto.OptimizationType.SHOPPING_PAGE_PREDICTOR.getNumber(),
                 OptimizationGuideDecision.TRUE, null);
     }
+
+    private void mockOptimizationGuideEmptyResponse() {
+        ShoppingPersistedTabDataTestUtils.mockOptimizationGuideResponse(
+                mOptimizationGuideBridgeJniMock,
+                HintsProto.OptimizationType.PRICE_TRACKING.getNumber(),
+                ShoppingPersistedTabDataTestUtils.MockPriceTrackingResponse.BUYABLE_PRODUCT_EMPTY);
+        ShoppingPersistedTabDataTestUtils.mockOptimizationGuideResponse(
+                mOptimizationGuideBridgeJniMock,
+                HintsProto.OptimizationType.SHOPPING_PAGE_PREDICTOR.getNumber(),
+                OptimizationGuideDecision.TRUE, null);
+    }
+
     private static void save(ShoppingPersistedTabData shoppingPersistedTabData) {
         ObservableSupplierImpl<Boolean> supplier = new ObservableSupplierImpl<>();
         supplier.set(true);
diff --git a/chrome/app/resources/chromium_strings_be.xtb b/chrome/app/resources/chromium_strings_be.xtb
index be284ebc..9db5731 100644
--- a/chrome/app/resources/chromium_strings_be.xtb
+++ b/chrome/app/resources/chromium_strings_be.xtb
@@ -257,6 +257,7 @@
 <translation id="7937630085815544518">Вы ўваходзілі ва ўліковы запіс Chromium як <ph name="USER_EMAIL_ADDRESS" />. Для паўторнага ўваходу выкарыстоўвайце той жа самы ўліковы запіс.</translation>
 <translation id="7975919845073681630">Гэта другасны ўсталяваны экзэмпляр Chromium – яго нельга зрабіць стандартным браўзерам.</translation>
 <translation id="8013436988911883588">Як толькі Chromium атрымае дазвол, вэб-сайты змогуць запытваць у вас доступ.</translation>
+<translation id="8045118833343856403">Наступныя ўліковыя запісы не выкарыстаны для ўваходу ні ў адзін з профіляў Chromium. Калі вы хочаце выкарыстоўваць адзін з гэтых уліковых запісаў у новым профілі, неабходна спачатку выдаліць існуючы профіль.</translation>
 <translation id="81770708095080097">Файл небяспечны, таму Chromium заблакіраваў яго.</translation>
 <translation id="8248265253516264921">Калі відарыс не мае прыдатнага апісання, Chromium паспрабуе дадаць яго для вас. Каб стварыць апісанні, відарысы адпраўляюцца ў Google. Гэты параметр можна адключыць у наладах у любы час.</translation>
 <translation id="8266560134891435528">Chromium не можа праверыць вашы паролі, пакуль вы не ўвойдзеце ва ўліковы запіс</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb
index 97a67b9..da99a15c 100644
--- a/chrome/app/resources/chromium_strings_cs.xtb
+++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -257,6 +257,7 @@
 <translation id="7937630085815544518">K prohlížeči Chromium jste byli přihlášeni s účtem <ph name="USER_EMAIL_ADDRESS" />. Přihlaste se prosím znovu pomocí stejného účtu.</translation>
 <translation id="7975919845073681630">Toto je druhá instalace prohlížeče Chromium. Tuto instalaci nelze nastavit jako výchozí prohlížeč.</translation>
 <translation id="8013436988911883588">Až bude mít Chromium přístup, budou vás weby moci požádat o přístup.</translation>
+<translation id="8045118833343856403">Následující účty nejsou přihlášeny do žádných profilů Chromium. Pokud účet chcete použít v jiném profilu, nejdříve příslušný profil odstraňte.</translation>
 <translation id="81770708095080097">Tento soubor je nebezpečný, proto jej prohlížeč Chromium zablokoval.</translation>
 <translation id="8248265253516264921">Pokud obrázek nemá užitečný popis, Chromium se vám jej pokusí poskytnout. Za účelem vytváření popisů jsou obrázky odesílány do Googlu. Tuto funkci můžete kdykoliv vypnout v nastavení.</translation>
 <translation id="8266560134891435528">Chromium nemůže zkontrolovat vaše hesla, protože nejste přihlášeni</translation>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb
index fba2a729..381a9064 100644
--- a/chrome/app/resources/chromium_strings_fi.xtb
+++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -256,6 +256,7 @@
 <translation id="7937630085815544518">Chromiumiin kirjautunut käyttäjä: <ph name="USER_EMAIL_ADDRESS" />. Kirjaudu uudelleen sisään samalla tilillä.</translation>
 <translation id="7975919845073681630">Tämä on Chromiumin toissijainen asennus, eikä sitä voi asettaa oletusselaimeksi.</translation>
 <translation id="8013436988911883588">Kun Chromiumilla on käyttöoikeus, sivustot voivat pyytää sitä sinulta.</translation>
+<translation id="8045118833343856403">Näillä tileillä ei ole kirjauduttu sisään Chromium-profiileille. Jos haluat käyttää tiliä toisella profiililla, poista ensin kyseinen profiili.</translation>
 <translation id="81770708095080097">Tämä tiedosto on vaarallinen, joten Chromium on estänyt sen.</translation>
 <translation id="8248265253516264921">Jos kuvalla ei ole hyödyllistä kuvausta, Chromium yrittää luoda sellaisen. Kuvat lähetetään Googlelle kuvausten luomista varten. Voit milloin tahansa poistaa tämän käytöstä asetuksissa.</translation>
 <translation id="8266560134891435528">Chromium ei voi tarkistaa salasanojasi, koska et ole kirjautuneena sisään</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb
index 0ffbe2b4..abe7700 100644
--- a/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -258,6 +258,7 @@
 <translation id="7937630085815544518">Naka-sign in ka sa Chromium bilang <ph name="USER_EMAIL_ADDRESS" />. Pakigamit ang parehong account upang mag-sign in muli.</translation>
 <translation id="7975919845073681630">Pangalawang pag-install ito ng Chromium at hindi ito maaaring gawing iyong default na browser.</translation>
 <translation id="8013436988911883588">Kapag mayroon nang access ang Chromium, makakahingi na ang mga website ng access sa iyo.</translation>
+<translation id="8045118833343856403">Hindi naka-sign in sa anumang profile sa Chromium ang mga sumusunod na account. Kung gusto mong gumamit ng account sa ibang profile, alisin muna ang profile na iyon.</translation>
 <translation id="81770708095080097">Mapanganib ang file na ito, kaya na-block ito ng Chromium.</translation>
 <translation id="8248265253516264921">Kung hindi sapat ang deskripsyon ng isang larawan, susubukan ng Chromium na ayusin ito para sa iyo. Para gumawa ng mga deskripsyon, ipinapadala ang mga larawan sa Google. Puwede mo itong i-off sa mga setting anumang oras.</translation>
 <translation id="8266560134891435528">Hindi masusuri ng Chromium ang iyong mga password dahil hindi ka naka-sign in</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb
index b0aaf61..af5d5a1 100644
--- a/chrome/app/resources/chromium_strings_hi.xtb
+++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -256,6 +256,7 @@
 <translation id="7937630085815544518">आपने क्रोमियम में <ph name="USER_EMAIL_ADDRESS" /> के रूप में साइन इन किया था. फिर से साइन इन करने के लिए कृपया उसी खाते का इस्तेमाल करें.</translation>
 <translation id="7975919845073681630">यह क्रोमियम का द्वितीयक इंस्टॉलेशन है और इसे आपका डिफ़ॉल्ट ब्राउज़र नहीं बनाया जा सकता.</translation>
 <translation id="8013436988911883588">क्रोमियम को ऐक्सेस मिलने के बाद, वेबसाइटें आपसे ऐक्सेस मांग सकेंगी.</translation>
+<translation id="8045118833343856403">इन खातों को किसी भी Chromium प्रोफ़ाइल में साइन इन नहीं किया गया है. अगर आप किसी अन्य प्रोफ़ाइल में किसी खाते को साइन इन करना चाहते हैं, तो पहले वह प्रोफ़ाइल हटाएं.</translation>
 <translation id="81770708095080097">यह फ़ाइल खतरनाक है, इसलिए क्रोमियम ने इसे रोक दिया है.</translation>
 <translation id="8248265253516264921">अगर किसी इमेज के बारे में मददगार जानकारी मौजूद नहीं है, तो 'क्रोमियम' उसके बारे में जानकारी देने की कोशिश करेगा. जानकारी तैयार करने के लिए, इमेज Google को भेजी जाती हैं. आप किसी भी समय सेटिंग में जाकर इसे बंद कर सकते हैं.</translation>
 <translation id="8266560134891435528">क्रोमियम आपके पासवर्ड की जांच नहीं कर सकता, क्योंकि आपने साइन इन नहीं किया है</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb
index a67fbc2..68eec8a 100644
--- a/chrome/app/resources/chromium_strings_id.xtb
+++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -256,6 +256,7 @@
 <translation id="7937630085815544518">Anda telah masuk ke Chromium sebagai <ph name="USER_EMAIL_ADDRESS" />. Gunakan akun yang sama untuk masuk kembali.</translation>
 <translation id="7975919845073681630">Ini adalah pemasangan Chromium sekunder, dan tidak dapat digunakan sebagai browser default.</translation>
 <translation id="8013436988911883588">Setelah Chromium memiliki akses, situs dapat meminta akses dari Anda.</translation>
+<translation id="8045118833343856403">Akun berikut tidak login ke profil Chromium mana pun. Jika Anda ingin menggunakan akun di profil lain, hapus profil tersebut terlebih dahulu.</translation>
 <translation id="81770708095080097">File ini berbahaya, jadi Chromium telah memblokirnya.</translation>
 <translation id="8248265253516264921">Jika gambar tidak memiliki deskripsi yang berguna, Chromium akan mencoba memberikan deskripsi untuk Anda. Untuk membuat deskripsi, gambar akan dikirim ke Google. Anda dapat menonaktifkannya kapan saja di setelan.</translation>
 <translation id="8266560134891435528">Chromium tidak dapat memeriksa sandi karena Anda tidak login</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index f67ab75..4cf44cb8 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -255,6 +255,7 @@
 <translation id="7937630085815544518">Chromium に <ph name="USER_EMAIL_ADDRESS" /> としてログインしていました。再度ログインするには同じアカウントを使用してください。</translation>
 <translation id="7975919845073681630">この Chromium はセカンダリ インストールのため、既定のブラウザには設定できません。</translation>
 <translation id="8013436988911883588">Chromium にアクセスを許可すると、ウェブサイトからアクセスをリクエストできるようになります。</translation>
+<translation id="8045118833343856403">以下のアカウントは Chromium プロファイルにログインしていません。別のプロファイルでアカウントを使用する場合は、最初にそのプロファイルを削除してください。</translation>
 <translation id="81770708095080097">このファイルは危険なファイルであるため、Chromium でブロックしました。</translation>
 <translation id="8248265253516264921">画像に有効な説明が設定されていない場合に、Chromium で説明を自動的に生成できるよう Google に画像が送信されます。この機能は設定でいつでも無効にできます。</translation>
 <translation id="8266560134891435528">ログインしていないため、Chromium でパスワードを確認できません</translation>
diff --git a/chrome/app/resources/chromium_strings_ka.xtb b/chrome/app/resources/chromium_strings_ka.xtb
index cdd3cce..80467487 100644
--- a/chrome/app/resources/chromium_strings_ka.xtb
+++ b/chrome/app/resources/chromium_strings_ka.xtb
@@ -256,6 +256,7 @@
 <translation id="7937630085815544518">თქვენ შესული ხართ Chromium-ში როგორც <ph name="USER_EMAIL_ADDRESS" />. გთხოვთ გამოიყენოთ იგივე ანგარიში ხელახლა შესვლისას.</translation>
 <translation id="7975919845073681630">ეს Chromium-ის მეორადი ინსტალაცია არის და ნაგულისხმევ ბრაუზერად ის ვერ დაყენდება.</translation>
 <translation id="8013436988911883588">Chromium-ისთვის წვდომის მინიჭების შემდეგ ცალკეული ვებსაიტები შეძლებს თქვენგან წვდომის მოთხოვნას.</translation>
+<translation id="8045118833343856403">მითითებული ანგარიშები არ არის შესული Chromium პროფილებში. თუ ანგარიშის სხვა პროფილში გამოყენება გსურთ, პირველ რიგში, წაშალეთ შესაბამისი პროფილი.</translation>
 <translation id="81770708095080097">Chromium-მა დაბლოკა ეს ფაილი, რადგან ის სახიფათოა.</translation>
 <translation id="8248265253516264921">თუ სურათს არ ექნება სასარგებლო აღწერილობა, Chromium შეეცდება მის უზრუნველყოფას. აღწერილობების შესაქმნელად სურათები იგზავნება Google-ში. ამის გამორთვა ნებისმიერ დროს შეგიძლიათ პარამეტრებიდან.</translation>
 <translation id="8266560134891435528">Chromium ვერ ახერხებს თქვენი პაროლების შემოწმებას, რადგან შესული არ ხართ</translation>
diff --git a/chrome/app/resources/chromium_strings_km.xtb b/chrome/app/resources/chromium_strings_km.xtb
index bbd6ad86..6570d589 100644
--- a/chrome/app/resources/chromium_strings_km.xtb
+++ b/chrome/app/resources/chromium_strings_km.xtb
@@ -259,6 +259,7 @@
 <translation id="7937630085815544518">អ្នកបានចូលទៅក្នុង Chromium ជា <ph name="USER_EMAIL_ADDRESS" />. សូមប្រើគណនីដូចគ្នាដើម្បីចូលម្តងទៀត។</translation>
 <translation id="7975919845073681630">នេះគឺជាការដំឡើេង Chromium បន្ទាប់បន្សំ ហើយវាមិនអាចធ្វើជាកម្មវិធីរុករកលំនាំដើមរបស់អ្នកបានទេ។</translation>
 <translation id="8013436988911883588">បន្ទាប់ពី Chromium មានសិទ្ធិចូលប្រើហើយ គេហទំព័រ​នឹង​អាច​ស្នើ​សុំ​សិទ្ធិ​ចូល​ប្រើពី​អ្នកបាន។</translation>
+<translation id="8045118833343856403">គណនី​ខាងក្រោម​មិនបានចូល​កម្រងព័ត៌មាន Chromium ណាមួយឡើយ។ ប្រសិនបើអ្នក​ចង់ប្រើគណនី​នៅក្នុង​កម្រងព័ត៌មាន​ផ្សេងទៀត សូមដក​កម្រងព័ត៌មាននោះ​ចេញជាមុនសិន។</translation>
 <translation id="81770708095080097">ឯកសារនេះមានគ្រោះថ្នាក់ ហេតុដូច្នេះហើយបានជា Chromium រារាំងវា។</translation>
 <translation id="8248265253516264921">ប្រសិនបើរូបភាពមិនមាន​ការពណ៌នា​ដែលមានប្រយោជន៍ Chromium នឹង​ព្យាយាមផ្ដល់​ការពណ៌នា​ដែលមានប្រយោជន៍សម្រាប់​អ្នក។ រូបភាព​ត្រូវបានផ្ញើ​ទៅ Google ដើម្បី​បង្កើត​ការពណ៌នា។ អ្នកអាចបិទ​សកម្មភាពនេះ​នៅក្នុងការកំណត់​បានគ្រប់ពេល។</translation>
 <translation id="8266560134891435528">Chromium មិន​អាច​ពិនិត្យពាក្យសម្ងាត់របស់អ្នកបានទេ ដោយសារអ្នកមិនបានចូលគណនី</translation>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb
index 85e3921..b9b4a71 100644
--- a/chrome/app/resources/chromium_strings_ko.xtb
+++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -258,6 +258,7 @@
 <translation id="7937630085815544518"><ph name="USER_EMAIL_ADDRESS" />(으)로 Chromium에 로그인되어 있습니다. 같은 계정으로 다시 로그인해 주세요.</translation>
 <translation id="7975919845073681630">Chromium의 보조 설치이며 기본 브라우저로 설정할 수 없습니다.</translation>
 <translation id="8013436988911883588">Chromium에 액세스 권한을 부여하면 웹사이트에서 액세스 권한을 요청할 수 있게 됩니다.</translation>
+<translation id="8045118833343856403">다음 계정은 어느 Chromium 프로필에도 로그인하지 않았습니다. 다른 프로필에서 계정을 사용하려면 먼저 프로필을 삭제하세요</translation>
 <translation id="81770708095080097">이 파일은 위험하므로 Chromium에서 차단했습니다.</translation>
 <translation id="8248265253516264921">이미지에 유용한 설명이 없으면 Chromium에서 자동으로 설명을 제공하려고 시도합니다. 설명을 생성하기 위해 이미지가 Google로 전송됩니다. 이 기능은 언제든지 설정에서 사용 중지할 수 있습니다.</translation>
 <translation id="8266560134891435528">로그인되어 있지 않으므로 Chromium에서 비밀번호를 확인할 수 없습니다.</translation>
diff --git a/chrome/app/resources/chromium_strings_lo.xtb b/chrome/app/resources/chromium_strings_lo.xtb
index df71feb..6ae5a4f0 100644
--- a/chrome/app/resources/chromium_strings_lo.xtb
+++ b/chrome/app/resources/chromium_strings_lo.xtb
@@ -258,6 +258,7 @@
 <translation id="7937630085815544518">ທ່ານ​ໄດ້ລົງຊື່ເຂົ້າໃຊ້ Chromium ເປັນ <ph name="USER_EMAIL_ADDRESS" />. ກະ​ລຸ​ນາ​​ໃຊ້​ບັນ​ຊີ​ດຽວ​ກັນ​ ເພື່ອລົງຊື່ເຂົ້າໃຊ້ອີກ.</translation>
 <translation id="7975919845073681630">ນີ້ແມ່ນການຕິດຕັ້ງສຳຮອງຂອງ Chromium ແລະ ບໍ່ສາມາດຖືກຕັ້ງເປັນໂປຣແກຣມທ່ອງເວັບເລີ່ມຕົ້ນໄດ້.</translation>
 <translation id="8013436988911883588">ເມື່ອ Chromium ມີການເຂົ້າເຖິງ, ເວັບໄຊຈະສາມາດຮ້ອງຂໍການເຂົ້າເຖິງນຳທ່ານ.</translation>
+<translation id="8045118833343856403">ບັນຊີຕໍ່ໄປນີ້ບໍ່ໄດ້ເຂົ້າສູ່ລະບົບຫາໂປຣໄຟລ໌ Chromium ໃດ. ຫາກທ່ານຕ້ອງການໃຊ້ບັນຊີໃນໂປຣໄຟລ໌ອື່ນ, ໃຫ້ລຶບໂປຣໄຟລ໌ນັ້ນອອກກ່ອນ.</translation>
 <translation id="81770708095080097">ໄຟລ໌ນີ້ເປັນອັນຕະລາຍ, ສະນັ້ນ Chromium ໄດ້ບລັອກມັນໄວ້ແລ້ວ.</translation>
 <translation id="8248265253516264921">ຖ້າຮູບບໍ່ມີລາຍລະອຽດທີ່ເປັນປະໂຫຍດ, Chromium ຈະພະຍາຍາມໃຫ້ລາຍລະອຽດແກ່ທ່ານ. ເພື່ອສ້າງລາຍລະອຽດ, ລະບົບຈະສົ່ງຮູບພາບໃຫ້ Google. ທ່ານສາມາດປິດສິ່ງນີ້ໃນການຕັ້ງຄ່າໄດ້ທຸກເວລາ.</translation>
 <translation id="8266560134891435528">Chromium ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້ ເພາະວ່າທ່ານບໍ່ໄດ້ເຂົ້າສູ່ລະບົບ</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index 4d9158f..3c742a2 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -258,6 +258,7 @@
 <translation id="7937630085815544518">Buvote prisijungę prie „Chromium“ kaip <ph name="USER_EMAIL_ADDRESS" />. Prisijungdami vėl naudokite tą pačią paskyrą.</translation>
 <translation id="7975919845073681630">Tai yra antrinis „Chromium“ diegimas, todėl ji negali būti nustatyta kaip numatytoji naršyklė.</translation>
 <translation id="8013436988911883588">Kai „Chromium“ galės pasiekti duomenis, svetainės taip pat galės prašyti suteikti leidimą juos pasiekti.</translation>
+<translation id="8045118833343856403">Toliau nurodytos paskyros nėra prisijungusios prie jokių „Chromium“ profilių. Jei norite naudoti paskyrą kitame profilyje, pirmiausia pašalinkite tą profilį.</translation>
 <translation id="81770708095080097">Šis failas pavojingas, todėl „Chromium“ jį užblokavo.</translation>
 <translation id="8248265253516264921">Jei nebus naudingo vaizdo aprašo, „Chromium“ bandys jums jį pateikti. Kad būtų galima kurti aprašus, vaizdai siunčiami į sistemą „Google“. Šią parinktį galite bet kada išjungti skiltyje „Nustatymai“.</translation>
 <translation id="8266560134891435528">„Chromium“ negali patikrinti jūsų slaptažodžių, nes esate neprisijungę</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb
index 4bfeed1..f5e0a43 100644
--- a/chrome/app/resources/chromium_strings_lv.xtb
+++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -253,6 +253,7 @@
 <translation id="7937630085815544518">Operētājsistēmā Chromium iepriekš pierakstījāties kā lietotājs <ph name="USER_EMAIL_ADDRESS" />. Lai pierakstītos vēlreiz, lūdzu, izmantojiet to pašu kontu.</translation>
 <translation id="7975919845073681630">Šī ir Chromium papildu instalācija, un to nevar izmantot kā noklusējuma pārlūku.</translation>
 <translation id="8013436988911883588">Tiklīdz pārlūkam Chromium tiks sniegta piekļuve, vietnes varēs lūgt jums piekļuvi.</translation>
+<translation id="8045118833343856403">Nevienā Chromium profilā nav veikta pierakstīšanās tālāk norādījos kontos. Ja vēlaties izmantot kādu kontu citā profilā, vispirms noņemiet attiecīgo profilu.</translation>
 <translation id="81770708095080097">Šis fails ir bīstams, tāpēc Chromium to bloķēja.</translation>
 <translation id="8248265253516264921">Ja attēlam nav vērtīga apraksta, pārlūks Chromium mēģinās jums tādu nodrošināt. Lai izveidotu aprakstus, attēli tiek nosūtīti uzņēmumam Google. Jebkurā brīdī iestatījumos varat izslēgt šo iespēju.</translation>
 <translation id="8266560134891435528">Pārlūkprogrammā Chromium nevar pārbaudīt jūsu paroles, jo jūs neesat pierakstījies.</translation>
diff --git a/chrome/app/resources/chromium_strings_mn.xtb b/chrome/app/resources/chromium_strings_mn.xtb
index 037a5b3..615719a 100644
--- a/chrome/app/resources/chromium_strings_mn.xtb
+++ b/chrome/app/resources/chromium_strings_mn.xtb
@@ -254,6 +254,7 @@
 <translation id="7937630085815544518">Та Chromium-д <ph name="USER_EMAIL_ADDRESS" />-аар нэвтэрсэн байна. Нэвтрэхийн тулд ижил данс хэрэглэнэ үү.</translation>
 <translation id="7975919845073681630">Энэ нь Chromium-н хоёр дахь суулгалт тул таны өгөгдмөл хөтчөөр сонгох боломжгүй.</translation>
 <translation id="8013436988911883588">Chromium-д хандалт олгосны дараа веб сайтууд таны хандалтыг асуух боломжтой болно.</translation>
+<translation id="8045118833343856403">Дараах бүртгэлүүд Chromium-н ямар ч профайлд нэвтрээгүй байна. Хэрэв та бүртгэлийг өөр профайлд ашиглахыг хүсвэл эхлээд тухайн профайлыг хасна уу.</translation>
 <translation id="81770708095080097">Энэ файл аюултай тул Chromium блоклосон байна.</translation>
 <translation id="8248265253516264921">Хэрэв зурагт хэрэгтэй тайлбар байхгүй бол Chromium танд тайлбар өгөхөөр оролдох болно. Тайлбар үүсгэхийн тулд зургийг Google-д илгээнэ. Та үүнийг хүссэн үедээ тохиргоонд унтрааж болно.</translation>
 <translation id="8266560134891435528">Та нэвтрээгүй байгаа тул Chromium таны нууц үгсийг шалгах боломжгүй байна</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index 4070b93..c20a97fb 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -256,6 +256,7 @@
 <translation id="7937630085815544518">Anda telah log masuk ke Chromium sebagai <ph name="USER_EMAIL_ADDRESS" />. Sila gunakan akaun yang sama untuk log masuk lagi.</translation>
 <translation id="7975919845073681630">Ini adalah pemasangan kedua Chromium dan tidak boleh dijadikan penyemak imbas lalai anda.</translation>
 <translation id="8013436988911883588">Sebaik sahaja Chromium mendapat akses, tapak web akan dapat meminta akses daripada anda.</translation>
+<translation id="8045118833343856403">Akaun berikut tidak dilog masuk ke mana-mana profil Chromium. Jika anda ingin menggunakan akaun dalam profil lain, alih keluar profil tersebut dahulu.</translation>
 <translation id="81770708095080097">Fail ini berbahaya, maka Chromium telah menyekatnya.</translation>
 <translation id="8248265253516264921">Jika imej tiada perihalan yang berguna, Chromium akan cuba memberikan perihalan untuk anda. Untuk membuat perihalan, imej dihantar kepada Google. Anda boleh mematikan pilihan ini dalam tetapan pada bila-bila masa.</translation>
 <translation id="8266560134891435528">Chromium tidak dapat menyemak kata laluan anda kerana anda tidak log masuk</translation>
diff --git a/chrome/app/resources/chromium_strings_my.xtb b/chrome/app/resources/chromium_strings_my.xtb
index 28783f0..8d74716 100644
--- a/chrome/app/resources/chromium_strings_my.xtb
+++ b/chrome/app/resources/chromium_strings_my.xtb
@@ -260,6 +260,7 @@
 <translation id="7937630085815544518">Chromium သို့ <ph name="USER_EMAIL_ADDRESS" /> အဖြစ်သင် ဝင်ရောက်ခဲ့သည်။ ကျေးဇူးပြု၍ တူညီသည့်အကောင့်ကို အသုံးပြုကာ ထပ်မံဝင်ရောက်ပါ။</translation>
 <translation id="7975919845073681630">ဤသည်မှာ Chromium ကို အရန်သဘော ထည့်သွင်းခြင်းဖြစ်ပြီး သင်၏မူရင်းဘရောင်ဇာအဖြစ် ၎င်းကို အသုံးပြု၍မရနိုင်ပါ။</translation>
 <translation id="8013436988911883588">Chromium အသုံးပြုခွင့်ရှိသည်နှင့် ဝဘ်ဆိုက်များသည် သင့်ထံခွင့်ပြုချက်တောင်းပါမည်။</translation>
+<translation id="8045118833343856403">အောက်ပါအကောင့်များသည် Chromium ပရိုဖိုင်များတွင် လက်မှတ်ထိုးဝင်မထားပါ။ ပရိုဖိုင်နောက်တစ်ခုတွင် အကောင့်ကိုသုံးလိုပါက ထိုပရိုဖိုင်ကို ဦးစွာဖယ်ရှားပါ။</translation>
 <translation id="81770708095080097">ဤဖိုင်သည် အန္တရာယ်ရှိပါသည်။ ထို့ကြောင့် Chromium သည် ၎င်းကို ပိတ်ဆို့ထားပါသည်။</translation>
 <translation id="8248265253516264921">ပုံတွင် အသုံးဝင်သော အကြောင်းအရာ မပါလျှင် Chromium က သင့်အတွက် ဖော်ပြပေးပါမည်။ အကြောင်းအရာများ ဖော်ပြပေးရန် ပုံများကို Google သို့ပို့လိုက်ပါသည်။ ၎င်းကို ဆက်တင်များတွင် အချိန်မရွေး ပိတ်နိုင်သည်။</translation>
 <translation id="8266560134891435528">လက်မှတ်ထိုးဝင်မထားသဖြင့် Chromium က သင့်စကားဝှက်များကို စစ်ဆေး၍မရပါ</translation>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index ef18ae87..8fa276c5 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -250,6 +250,7 @@
 <translation id="7937630085815544518">Ранее вы входили в Chromium как <ph name="USER_EMAIL_ADDRESS" />. Войдите снова, используя тот же аккаунт.</translation>
 <translation id="7975919845073681630">Это дополнительная установка Chromium. Его нельзя сделать браузером по умолчанию.</translation>
 <translation id="8013436988911883588">Когда вы предоставите доступ Chromium, веб-сайты также смогут запрашивать у вас доступ.</translation>
+<translation id="8045118833343856403">Со следующими аккаунтами не выполнен вход ни в один профиль Chromium. Чтобы использовать аккаунт в другом профиле, сначала удалите этот профиль.</translation>
 <translation id="81770708095080097">Chromium заблокировал этот файл как опасный.</translation>
 <translation id="8248265253516264921">Если у изображения нет понятного описания, Chromium попытается его найти. Для создания описаний изображения отправляются в Google. Эту функцию можно отключить в настройках в любое время.</translation>
 <translation id="8266560134891435528">Не удается запустить проверку паролей в Chromium, поскольку вы не вошли в аккаунт.</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index 5f7687a..832e985 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -258,6 +258,7 @@
 <translation id="7937630085815544518">Du var inloggad i Chromium som <ph name="USER_EMAIL_ADDRESS" />. Använd samma konto när du loggar in igen.</translation>
 <translation id="7975919845073681630">Det här är en sekundär installation av Chromium. Det går inte att göra den till standardwebbläsare.</translation>
 <translation id="8013436988911883588">När du har gett Chromium åtkomst kan webbplatser begära att få åtkomst.</translation>
+<translation id="8045118833343856403">Följande konton är inte inloggade i någon Chromium-profil. Om du vill använda ett konto som finns i en annan profil tar du bort den profilen först.</translation>
 <translation id="81770708095080097">Filen är farlig och har blockerats av Chromium.</translation>
 <translation id="8248265253516264921">Om en bild inte har någon användbar beskrivning görs ett försök att beskriva den åt dig i Chromium. Bilderna skickas till Google så att beskrivningen kan genereras. Du kan när som helst inaktivera den här inställningen.</translation>
 <translation id="8266560134891435528">Chromium kan inte kontrollera dina lösenord eftersom du inte är inloggad</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb
index f7e3dfa..80565ba 100644
--- a/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -258,6 +258,7 @@
 <translation id="7937630085815544518">Uliingia kwenye Chromium kama <ph name="USER_EMAIL_ADDRESS" />. Tafadhali tumia akaunti hiyo hiyo kuingia tena.</translation>
 <translation id="7975919845073681630">Huu ni usakinishaji wa pili wa Chromium, na haiwezi kufanywa kuwa kivinjari chako chaguomsingi.</translation>
 <translation id="8013436988911883588">Chromium itakapopata idhini, tovuti zitaweza kukuomba idhini ya kufikia.</translation>
+<translation id="8045118833343856403">Akaunti zifuatazo hazipo kwenye wasifu wowote wa Chromium. Iwapo ungependa kutumia akaunti iliyo kwenye wasifu mwingine, ondoa wasifu huo kwanza.</translation>
 <translation id="81770708095080097">Faili hii ni hatari, kwa hivyo Chromium imeizuia.</translation>
 <translation id="8248265253516264921">Ikiwa picha haina ufafanuzi muhimu, Chromium itajaribu kukuwekea. Ili kuweka ufafanuzi, tutatuma picha kwa Google. Unaweza kuzima mipangilio hii wakati wowote.</translation>
 <translation id="8266560134891435528">Chromium imeshindwa kukagua manenosiri yako kwa sababu hujaingia katika akaunti</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index e8e39cc..20ebb888 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -254,6 +254,7 @@
 <translation id="7937630085815544518">คุณเคยลงชื่อเข้าใช้ Chromium ในชื่อ <ph name="USER_EMAIL_ADDRESS" /> โปรดใช้บัญชีเดิมเพื่อลงชื่อเข้าใช้อีกครั้ง</translation>
 <translation id="7975919845073681630">นี่เป็นการติดตั้ง Chromium แบบสำรอง และไม่สามารถใช้เป็นเบราว์เซอร์เริ่มต้นของคุณ</translation>
 <translation id="8013436988911883588">เมื่อ Chromium มีสิทธิ์การเข้าถึงแล้ว เว็บไซต์จะขอสิทธิ์การเข้าถึงจากคุณได้</translation>
+<translation id="8045118833343856403">บัญชีเหล่านี้ไม่ได้ลงชื่อเข้าใช้ในโปรไฟล์ Chromium ใดๆ เลย หากต้องการใช้บัญชีในโปรไฟล์อื่น ให้นำโปรไฟล์แรกออกก่อน</translation>
 <translation id="81770708095080097">ไฟล์นี้อันตราย Chromium จึงบล็อกไว้</translation>
 <translation id="8248265253516264921">หากรูปภาพไม่มีคำอธิบายที่เป็นประโยชน์ Chromium จะพยายามใส่คำอธิบายให้คุณ รูปภาพจะส่งมายัง Google เพื่อสร้างคำอธิบาย คุณปิดการดำเนินการนี้ได้ทุกเมื่อในการตั้งค่า</translation>
 <translation id="8266560134891435528">Chromium ตรวจสอบรหัสผ่านไม่ได้เพราะคุณไม่ได้ลงชื่อเข้าใช้</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb
index 426e05f..f9373d6 100644
--- a/chrome/app/resources/chromium_strings_tr.xtb
+++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -253,6 +253,7 @@
 <translation id="7937630085815544518">Chromium'da <ph name="USER_EMAIL_ADDRESS" /> olarak oturum açtınız. Tekrar oturum açmak için lütfen aynı hesabı kullanın.</translation>
 <translation id="7975919845073681630">Bu, Chromium'un ikincil bir yüklemesidir ve varsayılan tarayıcınız yapılamaz.</translation>
 <translation id="8013436988911883588">Chromium erişim izni aldıktan sonra, web siteleri de erişim için sizden izin isteyebilecek.</translation>
+<translation id="8045118833343856403">Aşağıdaki hesaplar hiçbir Chromium profilinde oturum açmamış. Başka profildeki bir hesabı kullanmak istiyorsanız önce bu profili kaldırın.</translation>
 <translation id="81770708095080097">Bu dosya tehlikeli olduğu için Chromium tarafından engellendi.</translation>
 <translation id="8248265253516264921">Bir resmin işe yarar bir açıklaması yoksa, Chromium sizin için bir açıklama sağlamaya çalışır. Açıklama oluşturmak için resimler Google'a gönderilir. Bu özelliği istediğiniz zaman ayarlardan kapatabilirsiniz.</translation>
 <translation id="8266560134891435528">Oturum açmadığınız için Chromium, şifrelerinizi kontrol edemiyor</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index e2bb57ba..f32eb84 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -256,6 +256,7 @@
 <translation id="7937630085815544518">Bạn đã đăng nhập vào Chromium là <ph name="USER_EMAIL_ADDRESS" />. Vui lòng sử dụng cùng tài khoản để đăng nhập lại.</translation>
 <translation id="7975919845073681630">Đây là cài đặt thứ cấp của Chromium và không thể trở thành trình duyệt mặc định của bạn.</translation>
 <translation id="8013436988911883588">Sau khi Chromium có quyền truy cập, các trang web sẽ có thể yêu cầu bạn cấp quyền truy cập.</translation>
+<translation id="8045118833343856403">Các tài khoản sau không được đăng nhập vào bất kỳ hồ sơ nào trên Chromium. Nếu bạn muốn dùng tài khoản trong một hồ sơ khác, hãy xóa hồ sơ đó trước.</translation>
 <translation id="81770708095080097">Tệp này nguy hiểm, do đó Chromium đã chặn tệp.</translation>
 <translation id="8248265253516264921">Chromium sẽ cố gắng mô tả cho bạn những hình ảnh không có nội dung mô tả hữu ích. Để tạo nội dung mô tả, các hình ảnh sẽ được gửi đến Google. Bạn có thể tắt dịch vụ này trong phần cài đặt bất kỳ lúc nào.</translation>
 <translation id="8266560134891435528">Chromium không thể kiểm tra mật khẩu của bạn vì bạn chưa đăng nhập</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-HK.xtb b/chrome/app/resources/chromium_strings_zh-HK.xtb
index 995a23e..180480e 100644
--- a/chrome/app/resources/chromium_strings_zh-HK.xtb
+++ b/chrome/app/resources/chromium_strings_zh-HK.xtb
@@ -256,6 +256,7 @@
 <translation id="7937630085815544518">您使用了 <ph name="USER_EMAIL_ADDRESS" /> 的身分登入 Chromium,請使用相同帳戶重新登入。</translation>
 <translation id="7975919845073681630">這是以並行形式安裝的第二個 Chromium,因此無法設定為您的預設瀏覽器。</translation>
 <translation id="8013436988911883588">Chromium 獲得存取權後,網站便可向您要求存取權。</translation>
+<translation id="8045118833343856403">下列帳戶未登入任何 Chromium 設定檔。如要將帳戶用於其他設定檔,請先移除該設定檔。</translation>
 <translation id="81770708095080097">此檔案不安全,因此 Chromium 已封鎖此檔案。</translation>
 <translation id="8248265253516264921">如果圖片並無有用的說明,Chromium 會嘗試為您提供說明。因此,圖片將傳送至 Google 以建立說明。您可以隨時在設定中關閉此功能。</translation>
 <translation id="8266560134891435528">由於您尚未登入帳戶,因此 Chromium 無法檢查密碼</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb
index a128b4a..a1d4bee 100644
--- a/chrome/app/resources/chromium_strings_zh-TW.xtb
+++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -255,6 +255,7 @@
 <translation id="7937630085815544518">你使用了 <ph name="USER_EMAIL_ADDRESS" /> 的身分登入 Chromium,請使用相同帳戶重新登入。</translation>
 <translation id="7975919845073681630">這是以並存形式安裝的次要 Chromium,無法設為您的預設瀏覽器。</translation>
 <translation id="8013436988911883588">Chromium 取得存取權後,網站將可要求你授予存取權。</translation>
+<translation id="8045118833343856403">下列帳戶未登入任何 Chromium 設定檔。如要將帳戶用於其他設定檔,請先移除該設定檔。</translation>
 <translation id="81770708095080097">這個檔案並不安全,因此遭到 Chromium 封鎖。</translation>
 <translation id="8248265253516264921">如果圖片缺少有用的說明,Chromium 會嘗試為你提供說明。系統會將圖片傳送給 Google,以便產生說明。你隨時可以在設定中關閉這項功能。</translation>
 <translation id="8266560134891435528">你尚未登入帳戶,因此 Chromium 無法檢查你的密碼</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index 7ceebb10..c6e8b2c 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -6778,7 +6778,6 @@
 <translation id="8235418492073272647">Bladsy vanaf <ph name="DEVICE_NAME" /> gedeel</translation>
 <translation id="8236911020904880539">gaan uit</translation>
 <translation id="8236917170563564587">Deel eerder hierdie oortjie</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> is gestel om in 'n nuwe blaaieroortjie oop te maak; gesteunde skakels sal ook in die blaaier oopmaak.</translation>
 <translation id="8237647586961940482">Donkerpienk en rooi</translation>
 <translation id="8239032431519548577">Onderneminginskrywing is voltooi</translation>
 <translation id="8239932336306009582">Mag nie kennisgewings stuur nie</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index bcde324..61b2951 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -6774,7 +6774,6 @@
 <translation id="8235418492073272647">ገጽ ከ<ph name="DEVICE_NAME" /> ተጋርቷል</translation>
 <translation id="8236911020904880539">ይውጡ</translation>
 <translation id="8236917170563564587">በምትኩ ይህን ትር አጋራ</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> በአዲስ የአሳሽ ትር ውስጥ ሊከፈት ተዘጋጅቷል፣ የሚደገፉ አገናኞችም በአሳሹ ውስጥ ይከፈታሉ።</translation>
 <translation id="8237647586961940482">ጠቆር ያለ ሮዝ እና ቀይ</translation>
 <translation id="8239032431519548577">የድርጅት ምዝገባ ተጠናቅቋል</translation>
 <translation id="8239932336306009582">ማሳወቂያዎችን መላክ አልተፈቀደም</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 369fba4..192b8c1af 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -6765,7 +6765,6 @@
 <translation id="8235418492073272647">تمت مشاركة الصفحة من <ph name="DEVICE_NAME" />.</translation>
 <translation id="8236911020904880539">خروج</translation>
 <translation id="8236917170563564587">مشاركة علامة التبويب هذه بدلاً من ذلك</translation>
-<translation id="8237471930911823556">تم ضبط تطبيق <ph name="APP_NAME" /> بحيث يُفتَح في علامة تبويب متصفّح جديدة، وستُفتَح الروابط المتوافقة في المتصفّح أيضًا.</translation>
 <translation id="8237647586961940482">زهري داكن وأحمر</translation>
 <translation id="8239032431519548577">اكتمال التسجيل في المؤسسة</translation>
 <translation id="8239932336306009582">المواقع الإلكترونية التي لا يُسمح لها بإرسال الإشعارات</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index d36b6fe..3982de6 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -6753,7 +6753,6 @@
 <translation id="8235418492073272647">পৃষ্ঠাখন <ph name="DEVICE_NAME" />ৰ পৰা শ্বেয়াৰ কৰা হৈছে</translation>
 <translation id="8236911020904880539">বাহিৰ হওক</translation>
 <translation id="8236917170563564587">তাৰ পৰিৱৰ্তে এই টেবটো শ্বেয়াৰ কৰক</translation>
-<translation id="8237471930911823556">এটা নতুন ব্ৰাউজাৰৰ টেবত খুলিবলৈ <ph name="APP_NAME" /> ছেট কৰা আছে, সমৰ্থিত লিংকসমূহো ব্ৰাউজাৰটোত খুলিব।</translation>
 <translation id="8237647586961940482">গাঢ় গুলপীয়া আৰু ৰঙা</translation>
 <translation id="8239032431519548577">এণ্টাৰপ্ৰাইজৰ পঞ্জীয়ন সম্পূর্ণ হৈছে</translation>
 <translation id="8239932336306009582">জাননী পঠিওৱাৰ অনুমতি নাই</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index aad917f8..a17e3c58 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -6746,7 +6746,6 @@
 <translation id="8235418492073272647">Səhifə <ph name="DEVICE_NAME" /> cihazından paylaşılıb</translation>
 <translation id="8236911020904880539">çıxış</translation>
 <translation id="8236917170563564587">Əvəzinə bu tabı paylaşın</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> yeni brauzer tabında açıq olaraq ayarlanıb, dəstəklənən keçidlər də brauzerdə açılacaq.</translation>
 <translation id="8237647586961940482">Tünd-çəhrayı və qırmızı</translation>
 <translation id="8239032431519548577">Müəssisə qeydiyyatı tamamlandı</translation>
 <translation id="8239932336306009582">Bildiriş göndərmək üçün icazə verilməyib</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index f8d82b6..d84d0fe 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -159,6 +159,7 @@
 <translation id="1165039591588034296">Памылка</translation>
 <translation id="1166212789817575481">Закрыць укладкі справа</translation>
 <translation id="1166583374608765787">Праверце новае імя</translation>
+<translation id="1166596238782048887">"<ph name="TAB_TITLE" />" гэта ўкладка з працоўнага стала "<ph name="DESK_TITLE" />"</translation>
 <translation id="1168020859489941584">Адкрыецца праз <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Пытацца, калі сайт запытвае дазвол выкарыстоўваць шрыфты, усталяваныя на прыладзе</translation>
 <translation id="1171135284592304528">Вылучаць аб'ект з дапамогай клавіятурнага фокуса, калі ён змяняецца.</translation>
@@ -620,6 +621,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> пакуль што не працуе ў праграмах Linux</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 з шыфраваннем RSA</translation>
 <translation id="1641113438599504367">Бяспечны прагляд</translation>
+<translation id="1642492862748815878">Падключана да прылады "<ph name="DEVICE" />" і яшчэ наступнай колькасці прылад з Bluetooth: <ph name="NUMBER_OF_DEVICES" /></translation>
 <translation id="1642494467033190216">Перад уключэннем іншых функцый адладкі неабходна выдаліць ахову rootfs і выканаць перазапуск.</translation>
 <translation id="1643072738649235303">Подпіс X9.62 ECDSA з SHA-1</translation>
 <translation id="1643921258693943800">Каб выкарыстоўваць "Абагульванне паблізу", уключыце Bluetooth і Wi-Fi</translation>
@@ -1822,6 +1824,7 @@
 <translation id="2885378588091291677">Менеджар заданняў</translation>
 <translation id="2885729872133513017">Узнікла праблема пры расшыфроўцы адказу сервера.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" />.</translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> і яшчэ <ph name="NUMBER_OF_DEVICES" /></translation>
 <translation id="2889064240420137087">Адкрыць спасылку з дапамогай...</translation>
 <translation id="2891922230654533301">Выкарыстоўваць гэту прыладу для ўваходу на вэб-сайт <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Стандартны браўзер</translation>
@@ -2756,6 +2759,7 @@
 <translation id="3884152383786131369">Вэб-змесціва, даступнае на некалькіх мовах, будзе адлюстроўвацца на першай мове з дадзенага спіса. Гэтыя параметры сінхранізуюцца з наладамі вашага браўзера. <ph name="BEGIN_LINK_LEARN_MORE" />Даведацца больш<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Абнаўленнямі кіруе адміністратар</translation>
 <translation id="3886446263141354045">Запыт на доступ да гэтага сайта адпраўлены карыстальніку <ph name="NAME" /></translation>
+<translation id="3887022758415973389">Паказаць спіс прылад</translation>
 <translation id="3888053818972567950">Падключэнне да сэрвісу "<ph name="WEB_DRIVE" />"</translation>
 <translation id="3888550877729210209">Нататкі ў <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Гэтыя звесткі дапамагаюць нам зразумець вашу праблему з Памочнікам. Яны захоўваюцца да 90 дзён, доступ да іх маюць толькі адпаведныя распрацоўшчыкі і спецыялісты па працы з водгукамі.</translation>
@@ -3466,6 +3470,7 @@
 <translation id="4662373422909645029">Псеўданім не можа ўключаць лічбы</translation>
 <translation id="4662788913887017617">Абагульце гэту закладку з вашым iPhone</translation>
 <translation id="4663373278480897665">Камера дазволена</translation>
+<translation id="4664289193573249666">Кіраваць абароненай DNS у наладах Chrome OS</translation>
 <translation id="4664482161435122549">Памылка экспарту PKCS #12</translation>
 <translation id="4665014895760275686">Вытворца</translation>
 <translation id="4665446389743427678">Усе даныя, захаваныя сайтам <ph name="SITE" />, будуць выдалены.</translation>
@@ -5996,6 +6001,7 @@
 <translation id="7478623944308207463">Праграмы і налады будуць сінхранізавацца на ўсіх прыладах Chrome OS, з якіх вы ўвайшлі ва Уліковы запіс Google. Параметры сінхранізацыі браўзера можна выбраць у <ph name="LINK_BEGIN" />наладах Chrome<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Не дазваляць сайтам падключацца да паслядоўных партоў</translation>
 <translation id="7479221278376295180">Агляд выкарыстання сховішча</translation>
+<translation id="747981547666531654">Падключана да прылад з Bluetooth "<ph name="FIRST_DEVICE" />" і "<ph name="SECOND_DEVICE" />"</translation>
 <translation id="7481312909269577407">Далей</translation>
 <translation id="7481358317100446445">Гатова</translation>
 <translation id="748138892655239008">Асноўныя абмежаванні сертыфікатаў</translation>
@@ -6048,6 +6054,7 @@
 <translation id="7531771599742723865">Прылада выкарыстоўваецца</translation>
 <translation id="7531779363494549572">Перайдзіце ў раздзел "Налады &gt; Праграмы і апавяшчэнні &gt; Апавяшчэнні".</translation>
 <translation id="7532009420053991888">Праграма <ph name="LINUX_APP_NAME" /> не адказвае. Каб закрыць яе, націсніце "Прымусова закрыць".</translation>
+<translation id="7535730537657706072">Каб ачысціць гісторыю прагляду сайтаў у рэжыме інкогніта на прыладзе, закрыйце ўсе ўкладкі ў рэжыме інкогніта</translation>
 <translation id="7535791657097741517">Уключыць светлую тэму</translation>
 <translation id="7537451260744431038">Сайты не могуць выкарыстоўваць файлы cookie для паляпшэння сваёй функцыянальнасці – напрыклад, для захавання інфармацыі пра тое, што вы ўвайшлі ва ўліковы запіс, або каб запамінаць тавары ў кошыку</translation>
 <translation id="753769905878158714">Каб знайсці вэб-сайт, увядзіце ключавое слова ў адрасным радку. Затым выкарыстайце спалучэнне клавіш.</translation>
@@ -6663,6 +6670,7 @@
 <translation id="8138217203226449454">Вы хацелі змяніць пошукавую сістэму?</translation>
 <translation id="8138997515734480534">Стан віртуальнай машыны <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">Файлы на Google Дыску</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Ідзе адкрыццё ў альтэрнатыўным браўзеры</translation>
 <translation id="8141725884565838206">Кіраванне паролямі</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{відэа}one{# відэа}few{# відэа}many{# відэа}other{# відэа}}</translation>
@@ -6752,7 +6760,6 @@
 <translation id="8235418492073272647">Старонка абагулена з прылады "<ph name="DEVICE_NAME" />"</translation>
 <translation id="8236911020904880539">выйсці</translation>
 <translation id="8236917170563564587">Абагуліць гэту ўкладку</translation>
-<translation id="8237471930911823556">У адпаведнасці з наладамі праграмы "<ph name="APP_NAME" />" яна будзе адкрывацца ў новай укладцы браўзера. Спасылкі, якія падтрымліваюцца, таксама будуць адкрывацца ў браўзеры.</translation>
 <translation id="8237647586961940482">Цёмна-ружовы і чырвоны</translation>
 <translation id="8239032431519548577">Рэгістрацыя для арганізацый завершана</translation>
 <translation id="8239932336306009582">Не дазволена адпраўляць апавяшчэнні</translation>
@@ -7381,6 +7388,7 @@
 <translation id="8909782404367982052">Перацягваць відарысы для іх пошуку з дапамогай Google Аб'ектыва</translation>
 <translation id="8909833622202089127">Сайт адсочвае ваша месцазнаходжанне</translation>
 <translation id="8910222113987937043">Змены ў закладках, гісторыі, паролях і іншых наладах больш не будуць сінхранізавацца з Уліковым запісам Google. Але існуючыя даныя застануцца ва Уліковым запісе Google, і імі можна будзе кіраваць на старонцы <ph name="BEGIN_LINK" />Панэль кіравання Google<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Схаваць спіс прылад</translation>
 <translation id="8912362522468806198">Уліковы запіс Google</translation>
 <translation id="8912793549644936705">Расцягнуць</translation>
 <translation id="8912810933860534797">Уключыць аўтаматычнае сканіраванне</translation>
@@ -7498,6 +7506,7 @@
 <translation id="9033765790910064284">Усё роўна працягнуць</translation>
 <translation id="9033857511263905942">&amp;Уставіць</translation>
 <translation id="903480517321259405">Увядзіце PIN-код яшчэ раз</translation>
+<translation id="9037054491984310631">Падключана да прылады з Bluetooth "<ph name="DEVICE" />"</translation>
 <translation id="9037640663275993951">Няма дазволу на выкарыстанне гэтай прылады</translation>
 <translation id="9037818663270399707">Падключэнне не з'яўляецца прыватным для ўсяго сеткавага трафіка</translation>
 <translation id="9037965129289936994">Паказаць арыгінал</translation>
@@ -7575,6 +7584,7 @@
 <translation id="9112786533191410418">Файл "<ph name="FILE_NAME" />" можа быць небяспечным. Адправіць яго ў Google для праверкі?</translation>
 <translation id="9112987648460918699">Пошук...</translation>
 <translation id="9113240369465613386">Толькі няцотныя старонкі</translation>
+<translation id="9113469270512809735">Паказаць або схаваць нядаўна закрытыя элементы</translation>
 <translation id="9114663181201435112">Зручны ўваход</translation>
 <translation id="9115675100829699941">&amp;Закладкі</translation>
 <translation id="9116465289595958864">Апошняе змяненне</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 162b59ab..2a947847 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -6776,7 +6776,6 @@
 <translation id="8235418492073272647">Страница, споделена от <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">излезете</translation>
 <translation id="8236917170563564587">Споделяне на този раздел</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ще се отваря в нов раздел на браузъра. Поддържаните връзки също ще се отварят в браузъра.</translation>
 <translation id="8237647586961940482">Тъмнорозово и червено</translation>
 <translation id="8239032431519548577">Корпоративното записване завърши</translation>
 <translation id="8239932336306009582">Сайтове без разрешение да изпращат известия</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 560133a..6de9e148 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -6769,7 +6769,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> থেকে পৃষ্ঠাটি শেয়ার করা হয়েছে</translation>
 <translation id="8236911020904880539">বেরিয়ে আসুন</translation>
 <translation id="8236917170563564587">পরিবর্তে এই ট্যাব শেয়ার করুন</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> নতুন ব্রাউজার ট্যাবে খোলার জন্য তৈরি, সহায়ক লিঙ্কও ব্রাউজারে খুলবে।</translation>
 <translation id="8237647586961940482">গাঢ় গোলাপি ও লাল</translation>
 <translation id="8239032431519548577">এন্টারপ্রাইজ এনরোল করার কাজ সম্পূর্ণ হয়েছে</translation>
 <translation id="8239932336306009582">বিজ্ঞপ্তি পাঠানোর অনুমতি দেওয়া হয়নি</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 67ab805..0b834075 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -6776,7 +6776,6 @@
 <translation id="8235418492073272647">Stranica je podijeljena s uređaja <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">izađete</translation>
 <translation id="8236917170563564587">Dijeli ovu karticu</translation>
-<translation id="8237471930911823556">Aplikacija <ph name="APP_NAME" /> je postavljena da se otvori u novoj kartici preglednika. Podržani linkovi će se također otvoriti u pregledniku.</translation>
 <translation id="8237647586961940482">Tamnoružičasta i crvena</translation>
 <translation id="8239032431519548577">Prijavljivanje preduzeća je završeno</translation>
 <translation id="8239932336306009582">Nije dozvoljeno slanje obavještenja</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 05eb4164..fb645fab 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -6762,7 +6762,6 @@
 <translation id="8235418492073272647">Pàgina compartida des de <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">sortir</translation>
 <translation id="8236917170563564587">Comparteix aquesta pestanya</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> s'ha configurat per obrir-se en una pestanya nova del navegador. Els enllaços compatibles també s'obriran al navegador.</translation>
 <translation id="8237647586961940482">Rosa fosc i vermell</translation>
 <translation id="8239032431519548577">La inscripció de l'empresa ha finalitzat</translation>
 <translation id="8239932336306009582">Sense permís per enviar notificacions</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 17628c5..59228d40 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -159,6 +159,7 @@
 <translation id="1165039591588034296">Chyba</translation>
 <translation id="1166212789817575481">Zavřít karty napravo</translation>
 <translation id="1166583374608765787">Zkontrolujte změnu názvu</translation>
+<translation id="1166596238782048887">Karta <ph name="TAB_TITLE" /> patří k ploše <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">Složka se otevře za <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Zeptat se, když chce web použít písma nainstalovaná v zařízení</translation>
 <translation id="1171135284592304528">Zvýraznit objekt se zaměřením pro zadávání, když se změní</translation>
@@ -619,6 +620,7 @@
 <translation id="1640235262200048077">V aplikacích pro Linux <ph name="IME_NAME" /> zatím nefunguje</translation>
 <translation id="1640283014264083726">Šifrování PKCS #1 MD4 s RSA</translation>
 <translation id="1641113438599504367">Bezpečné prohlížení</translation>
+<translation id="1642492862748815878">Připojeno k zařízení <ph name="DEVICE" /> a <ph name="NUMBER_OF_DEVICES" /> dalším zařízením Bluetooth</translation>
 <translation id="1642494467033190216">Před aktivací dalších funkcí ladění je potřeba odebrat ochranu rootfs a restartovat zařízení.</translation>
 <translation id="1643072738649235303">Podpis X9.62 ECDSA s SHA-1</translation>
 <translation id="1643921258693943800">Pokud chcete používat sdílení nablízko, zapněte Bluetooth a Wi-Fi</translation>
@@ -1820,6 +1822,7 @@
 <translation id="2885378588091291677">Správce úloh</translation>
 <translation id="2885729872133513017">Při dekódování odpovědi serveru došlo k chybě.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> a ještě <ph name="NUMBER_OF_DEVICES" /></translation>
 <translation id="2889064240420137087">Otevřít odkaz pomocí...</translation>
 <translation id="2891922230654533301">Přihlásit se pomocí zařízení do aplikace <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Výchozí prohlížeč</translation>
@@ -2754,6 +2757,7 @@
 <translation id="3884152383786131369">U webového obsahu, který je k dispozici v několika jazycích, se použije první jazyk v seznamu. Tyto předvolby jsou synchronizovány s nastavením prohlížeče. <ph name="BEGIN_LINK_LEARN_MORE" />Další informace<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Aktualizace spravuje administrátor</translation>
 <translation id="3886446263141354045">Vaše žádost o přístup k tomuto webu byla odeslána uživateli <ph name="NAME" />.</translation>
+<translation id="3887022758415973389">Zobrazit seznam zařízení</translation>
 <translation id="3888053818972567950">Propojení se službou <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">Pořizování poznámek pomocí aplikace <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Tyto informace nám pomohou lépe porozumět problému, který s Asistentem máte. Zůstanou uloženy až 90 dní a budou k nim mít přístup jen příslušné týmy vývojářů a pracovníků, kteří zpracovávají zpětnou vazbu.</translation>
@@ -3463,6 +3467,7 @@
 <translation id="4662373422909645029">Přezdívka nesmí obsahovat čísla</translation>
 <translation id="4662788913887017617">Sdílejte tuto záložku se svým iPhonem</translation>
 <translation id="4663373278480897665">Kamera je povolena</translation>
+<translation id="4664289193573249666">Spravovat zabezpečené DNS v nastavení systému Chrome OS</translation>
 <translation id="4664482161435122549">Chyba exportu souboru PKCS #12</translation>
 <translation id="4665014895760275686">Výrobce</translation>
 <translation id="4665446389743427678">Veškerá data uložená webem <ph name="SITE" /> budou smazána.</translation>
@@ -5995,6 +6000,7 @@
 <translation id="7478623944308207463">Vaše aplikace a nastavení se budou synchronizovat do všech zařízení Chrome OS, na kterých jste přihlášeni pomocí svého účtu Google. Možnosti synchronizace prohlížeče naleznete v <ph name="LINK_BEGIN" />nastavení Chromu<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Nepovolovat webům připojení k sériovým portům</translation>
 <translation id="7479221278376295180">Přehled využití úložiště</translation>
+<translation id="747981547666531654">Připojeno k zařízením Bluetooth s názvy <ph name="FIRST_DEVICE" /> a <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">Vpřed</translation>
 <translation id="7481358317100446445">Připraveno</translation>
 <translation id="748138892655239008">Základní omezení certifikátu</translation>
@@ -6047,6 +6053,7 @@
 <translation id="7531771599742723865">Zařízení se používá</translation>
 <translation id="7531779363494549572">Přejděte na Nastavení &gt; Aplikace a oznámení &gt; Oznámení</translation>
 <translation id="7532009420053991888">Aplikace <ph name="LINUX_APP_NAME" /> neodpovídá. Chcete-li ji zavřít, vyberte Ukončit aplikaci.</translation>
+<translation id="7535730537657706072">Pokud ze zařízení chcete vymazat historii anonymního prohlížení, zavřete všechny anonymní karty</translation>
 <translation id="7535791657097741517">Zapnout světlý motiv</translation>
 <translation id="7537451260744431038">Weby nemohou používat soubory cookie ke zlepšování prostředí při prohlížení, například si pomocí nich nemohou pamatovat vaše přihlášení a položky v nákupním košíku</translation>
 <translation id="753769905878158714">Do adresního řádku zadejte klíčové slovo pro web, na kterém chcete vyhledávat. Poté pokračujte stisknutím klávesové zkratky.</translation>
@@ -6663,6 +6670,7 @@
 <translation id="8138217203226449454">Chtěli jste změnit poskytovatele vyhledávání?</translation>
 <translation id="8138997515734480534">Stav virtuálního počítače <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">Soubory na Disku Google</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Otevírá se alternativní prohlížeč</translation>
 <translation id="8141725884565838206">Správa hesel</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{video}few{# videa}many{# videa}other{# videí}}</translation>
@@ -6752,7 +6760,6 @@
 <translation id="8235418492073272647">Stránka sdílená ze zařízení <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">skončit</translation>
 <translation id="8236917170563564587">Sdílet namísto toho tuto kartu</translation>
-<translation id="8237471930911823556">Aplikace <ph name="APP_NAME" /> se bude otevírat na nové kartě prohlížeče. Podporované odkazy se také budou otevírat v prohlížeči.</translation>
 <translation id="8237647586961940482">Tmavě růžová a červená</translation>
 <translation id="8239032431519548577">Registrace podniku dokončena</translation>
 <translation id="8239932336306009582">Odesílání oznámení není povoleno</translation>
@@ -7379,6 +7386,7 @@
 <translation id="8909782404367982052">Přetáhnutím vyhledat obrázky pomocí Google Lens</translation>
 <translation id="8909833622202089127">Web sleduje vaši polohu</translation>
 <translation id="8910222113987937043">Změny záložek, historie, hesel a dalších nastavení se již nebudou synchronizovat do účtu Google. Vaše existující data v účtu Google uložena zůstanou a lze je spravovat na <ph name="BEGIN_LINK" />Hlavním panelu Google<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Skrýt seznam zařízení</translation>
 <translation id="8912362522468806198">Účet Google</translation>
 <translation id="8912793549644936705">Roztáhnout</translation>
 <translation id="8912810933860534797">Zapnout automatické prohledávání</translation>
@@ -7496,6 +7504,7 @@
 <translation id="9033765790910064284">Přesto pokračovat</translation>
 <translation id="9033857511263905942">&amp;Vložit</translation>
 <translation id="903480517321259405">Znovu zadejte PIN</translation>
+<translation id="9037054491984310631">Připojeno k zařízení Bluetooth s názvem <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">Zařízení není povoleno</translation>
 <translation id="9037818663270399707">Vaše připojení není soukromé pro veškerý síťový provoz</translation>
 <translation id="9037965129289936994">Zobrazit originál</translation>
@@ -7576,6 +7585,7 @@
 <translation id="9112786533191410418">Soubor <ph name="FILE_NAME" /> může být nebezpečný. Chcete ho odeslat do Googlu ke kontrole?</translation>
 <translation id="9112987648460918699">Najít...</translation>
 <translation id="9113240369465613386">Pouze liché stránky</translation>
+<translation id="9113469270512809735">Přepnout nedávno zavřené položky</translation>
 <translation id="9114663181201435112">Snadné přihlášení</translation>
 <translation id="9115675100829699941">&amp;Záložky</translation>
 <translation id="9116465289595958864">Naposledy upraveno</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 8fdcce7..24351947c 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -6778,7 +6778,6 @@
 <translation id="8235418492073272647">Der blev delt en side fra <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">afslutte</translation>
 <translation id="8236917170563564587">Del denne fane i stedet</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> er indstillet til at åbne i en ny browserfane. Understøttede links åbnes også i browseren.</translation>
 <translation id="8237647586961940482">Mørk pink og rød</translation>
 <translation id="8239032431519548577">Tilmelding af virksomhed er gennemført</translation>
 <translation id="8239932336306009582">Har ikke tilladelse til at sende notifikationer</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 7d8bcee1..813d745 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -6748,7 +6748,6 @@
 <translation id="8235418492073272647">Seite geteilt von <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">Beenden</translation>
 <translation id="8236917170563564587">Stattdessen diesen Tab teilen</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> wird in einem neuen Browsertab geöffnet. Unterstützte Links werden ebenfalls im Browser geöffnet.</translation>
 <translation id="8237647586961940482">Dunkelrosa und Rot</translation>
 <translation id="8239032431519548577">Enterprise-Registrierung abgeschlossen</translation>
 <translation id="8239932336306009582">Dürfen keine Benachrichtigungen senden</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index fb96d5f..a8040c9e 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -6779,7 +6779,6 @@
 <translation id="8235418492073272647">Η σελίδα κοινοποιήθηκε από τη συσκευή <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">έξοδο</translation>
 <translation id="8236917170563564587">Εναλλακτικά, μοιραστείτε αυτήν την καρτέλα</translation>
-<translation id="8237471930911823556">Η εφαρμογή <ph name="APP_NAME" /> έχει οριστεί για άνοιγμα σε νέα καρτέλα του προγράμματος περιήγησης. Οι υποστηριζόμενοι σύνδεσμοι θα ανοίγουν επίσης στο πρόγραμμα περιήγησης.</translation>
 <translation id="8237647586961940482">Σκούρο ροζ και κόκκινο</translation>
 <translation id="8239032431519548577">Η εταιρική εγγραφή ολοκληρώθηκε</translation>
 <translation id="8239932336306009582">Δεν επιτρέπεται η αποστολή ειδοποιήσεων</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index ece9b6a6..3165113 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -6778,7 +6778,6 @@
 <translation id="8235418492073272647">Page shared from <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">exit</translation>
 <translation id="8236917170563564587">Share this tab instead</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> is set to open in a new browser tab. Supported links will also open in the browser.</translation>
 <translation id="8237647586961940482">Dark pink and red</translation>
 <translation id="8239032431519548577">Enterprise enrolment complete</translation>
 <translation id="8239932336306009582">Not allowed to send notifications</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 2fe89a0..f3a8177 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -6759,7 +6759,6 @@
 <translation id="8235418492073272647">Página compartida desde <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">salir</translation>
 <translation id="8236917170563564587">Compartir esta pestaña en su lugar</translation>
-<translation id="8237471930911823556">La app de <ph name="APP_NAME" /> está configurada para abrirse en una nueva pestaña del navegador. Los vínculos compatibles también se abrirán en el navegador.</translation>
 <translation id="8237647586961940482">Rosa oscuro y rojo</translation>
 <translation id="8239032431519548577">Se completó la inscripción empresarial</translation>
 <translation id="8239932336306009582">No pueden enviar notificaciones</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 8ece247..dac679d 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -6761,7 +6761,6 @@
 <translation id="8235418492073272647">Página compartida desde <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">salir</translation>
 <translation id="8236917170563564587">Compartir esta pestaña</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> se ha configurado para abrirse en una nueva pestaña del navegador. Los enlaces compatibles también se abrirán en el navegador.</translation>
 <translation id="8237647586961940482">Rosa oscuro y rojo</translation>
 <translation id="8239032431519548577">Registro de empresa completo</translation>
 <translation id="8239932336306009582">Sin permiso para enviar notificaciones</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 95c5991..699f1e04 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -6768,7 +6768,6 @@
 <translation id="8235418492073272647">Lehte jagati seadmest <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">väljuda</translation>
 <translation id="8236917170563564587">Jaga hoopis seda vahelehte</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> on seadistatud avanema brauseri uuel vahelehel. Toetatud lingid avanevad samuti brauseris.</translation>
 <translation id="8237647586961940482">Tumeroosa ja punane</translation>
 <translation id="8239032431519548577">Ettevõtte registreerimine on lõpetatud</translation>
 <translation id="8239932336306009582">Pole lubatud märguandeid saata</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 75dabfc..1881640 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -6759,7 +6759,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> gailuaren bidez partekatu da orria</translation>
 <translation id="8236911020904880539">irteteko</translation>
 <translation id="8236917170563564587">Bestela, partekatu fitxa hau</translation>
-<translation id="8237471930911823556">Arakatzaileko beste fitxa batean irekitzeko konfiguratuta dago <ph name="APP_NAME" />. Esteka bateragarriak ere irekiko dira arakatzailean.</translation>
 <translation id="8237647586961940482">Arrosa iluna eta gorria</translation>
 <translation id="8239032431519548577">Osatu da enpresaren erregistroa</translation>
 <translation id="8239932336306009582">Ezin dute bidali jakinarazpenik</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 205ed0f..53886dc9 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -6775,7 +6775,6 @@
 <translation id="8235418492073272647">صفحه هم‌رسانی‌شده از <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">خروج</translation>
 <translation id="8236917170563564587">درعوض این برگه را هم‌رسانی کنید</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> طوری تنظیم شده که در برگه مرورگر جدید باز شود، پیوندهای پشتیبانی‌شده نیز در مرورگر باز خواهد شد.</translation>
 <translation id="8237647586961940482">صورتی تیره و قرمز</translation>
 <translation id="8239032431519548577">ثبت‌نام شرکت تکمیل شد</translation>
 <translation id="8239932336306009582">اجازه ندارد اعلان ارسال کند</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index f87fde3..d9f8d31 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">Virhe</translation>
 <translation id="1166212789817575481">Sulje oikealla olevat välilehdet</translation>
 <translation id="1166583374608765787">Katso nimen muutos</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> kuuluu tälle työpöydälle: <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">Avautuu ajassa <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Pyydä lupaa, kun sivusto haluaa käyttää laitteelle asennettuja fontteja</translation>
 <translation id="1171135284592304528">Korosta tekstin syöttökohde, kun se muuttuu</translation>
@@ -620,6 +621,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> ei vielä toimi Linux-sovelluksissa</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 ja RSA-salaus</translation>
 <translation id="1641113438599504367">Selaussuoja</translation>
+<translation id="1642492862748815878">Yhdistetty laitteeseen <ph name="DEVICE" /> ja <ph name="NUMBER_OF_DEVICES" /> muuhun Bluetooth-laitteeseen</translation>
 <translation id="1642494467033190216">Rootfs-suojauksen poisto ja uudelleenkäynnistys vaaditaan, ennen kuin muut virheenkorjausominaisuudet voidaan ottaa käyttöön.</translation>
 <translation id="1643072738649235303">X9.62 ECDSA ‑allekirjoitus, jossa on SHA-1</translation>
 <translation id="1643921258693943800">Laita Bluetooth ja Wi-Fi päälle, jotta voit käyttää lähijakamista</translation>
@@ -1834,6 +1836,7 @@
 <translation id="2885378588091291677">Tehtävänhallinta</translation>
 <translation id="2885729872133513017">Palvelinvastauksen koodinpurku epäonnistui.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> ja <ph name="NUMBER_OF_DEVICES" /> muuta</translation>
 <translation id="2889064240420137087">Avaa linkki sovelluksessa...</translation>
 <translation id="2891922230654533301">Haluatko käyttää laitetta kirjautumiseen: <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Oletusselain</translation>
@@ -2768,6 +2771,7 @@
 <translation id="3884152383786131369">Verkkosisältö, joka on saatavilla useilla kielillä, käyttää ensimmäistä tuettua kieltä tältä listalta. Nämä asetukset synkronoidaan selainasetustesi kanssa. <ph name="BEGIN_LINK_LEARN_MORE" />Lue lisää<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Järjestelmänvalvoja päättää päivityksistä</translation>
 <translation id="3886446263141354045">Pyyntösi päästä tälle sivustolle on lähetetty henkilölle <ph name="NAME" />.</translation>
+<translation id="3887022758415973389">Näytä laiteluettelo</translation>
 <translation id="3888053818972567950">Yhteys: <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">Muistiinpanojen kirjoittaminen sovelluksella <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Nämä tiedot auttavat meitä ymmärtämään Assistant-ongelmaasi paremmin. Niitä säilytetään enintään 90 päivää, ja vain asianmukaiset insinööri- ja palautetiimit pääsevät tietoihin.</translation>
@@ -3476,6 +3480,7 @@
 <translation id="4662373422909645029">Ei saa sisältää numeroita</translation>
 <translation id="4662788913887017617">Jaa tämä kirjanmerkki iPhonellesi</translation>
 <translation id="4663373278480897665">Kamera sallittu</translation>
+<translation id="4664289193573249666">Ylläpidä suojattua DNS:ää Chrome-käyttöjärjestelmän asetuksissa</translation>
 <translation id="4664482161435122549">PKCS #12 -vientivirhe</translation>
 <translation id="4665014895760275686">Valmistaja</translation>
 <translation id="4665446389743427678">Kaikki data, jonka <ph name="SITE" /> tallentaa, poistetaan.</translation>
@@ -6008,6 +6013,7 @@
 <translation id="7478623944308207463">Sovelluksesi ja asetuksesi synkronoidaan kaikilla Chrome OS ‑laitteilla, joilla olet kirjautuneena Google-tilillesi. Näet selaimen synkronointiasetukset <ph name="LINK_BEGIN" />Chromen asetuksista<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Älä salli sivustojen yhdistää sarjaportteihin</translation>
 <translation id="7479221278376295180">Tallennustilan käytön yleiskatsaus</translation>
+<translation id="747981547666531654">Yhdistetty Bluetooth-laitteisiin nimiltä <ph name="FIRST_DEVICE" /> ja <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">Seuraava</translation>
 <translation id="7481358317100446445">Valmis</translation>
 <translation id="748138892655239008">Varmenteen perusrajoitukset</translation>
@@ -6060,6 +6066,7 @@
 <translation id="7531771599742723865">Laite on käytössä</translation>
 <translation id="7531779363494549572">Valitse Asetukset &gt; Sovellukset ja ilmoitukset &gt; Ilmoitukset.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> ei vastaa. Sulje sovellus valitsemalla Pakota sulkeutumaan.</translation>
+<translation id="7535730537657706072">Tyhjennä laitteen incognito-selaushistoria sulkemalla kaikki incognito-välilehdet</translation>
 <translation id="7535791657097741517">Laita vaalea teema päälle</translation>
 <translation id="7537451260744431038">Sivustot eivät voi käyttää evästeitä selauskokemuksesi parantamiseen, esimerkiksi pitää sinua kirjautuneena tai muistaa ostoskorisi sisältöä</translation>
 <translation id="753769905878158714">Lisää osoitekenttään hakemasi verkkosivuston hakusana. Jatka sitten pikanäppäimillä.</translation>
@@ -6676,6 +6683,7 @@
 <translation id="8138217203226449454">Halusitko vaihtaa hakupalvelua?</translation>
 <translation id="8138997515734480534">Tila: <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">Google Drive -tiedostot</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Avataan pian toisessa selaimessa</translation>
 <translation id="8141725884565838206">Hallinnoi salasanoja</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{video}other{# videota}}</translation>
@@ -6765,7 +6773,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> jakoi sivun</translation>
 <translation id="8236911020904880539">Poistu</translation>
 <translation id="8236917170563564587">Jaa sen sijaan tämä välilehti</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> on asetettu avautumaan uuteen selainvälilehteen. Myös tuetut linkit avautuvat selaimessa.</translation>
 <translation id="8237647586961940482">Tumma pinkki ja punainen</translation>
 <translation id="8239032431519548577">Yrityksen rekisteröinti valmis</translation>
 <translation id="8239932336306009582">Ilmoitusten lähettäminen kielletty</translation>
@@ -7391,6 +7398,7 @@
 <translation id="8909782404367982052">Hae kuvia Google Lensillä vetämällä</translation>
 <translation id="8909833622202089127">Sivusto seuraa sijaintiasi</translation>
 <translation id="8910222113987937043">Kirjanmerkkeihin, historiaan, salasanoihin ja muihin asetuksiin tehtyjä muutoksia ei enää synkronoida Google-tilillesi. Nykyiset tietosi pysyvät kuitenkin Google-tilillä ja niitä voidaan hallinnoida <ph name="BEGIN_LINK" />Google Hallintapaneelissa<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Piilota laiteluettelo</translation>
 <translation id="8912362522468806198">Google-tilisi avulla</translation>
 <translation id="8912793549644936705">Venytä</translation>
 <translation id="8912810933860534797">Ota automaattinen skannaus käyttöön</translation>
@@ -7508,6 +7516,7 @@
 <translation id="9033765790910064284">Jatka silti</translation>
 <translation id="9033857511263905942">&amp;Liitä</translation>
 <translation id="903480517321259405">Kirjoita PIN-koodi uudelleen</translation>
+<translation id="9037054491984310631">Yhdistetty Bluetooth-laitteeseen nimeltä <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">Laitetta ei ole sallittu</translation>
 <translation id="9037818663270399707">Yhteytesi kaikkea verkkoliikennettä ei suojata</translation>
 <translation id="9037965129289936994">Näytä alkuperäinen</translation>
@@ -7588,6 +7597,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> voi olla vaarallinen. Lähetetäänkö se Googlen tarkistettavaksi?</translation>
 <translation id="9112987648460918699">Hae...</translation>
 <translation id="9113240369465613386">Vain parittomat sivut</translation>
+<translation id="9113469270512809735">Äskettäin suljetut kohteet päälle/pois</translation>
 <translation id="9114663181201435112">Kirjaudu sisään helposti</translation>
 <translation id="9115675100829699941">&amp;Kirjanmerkit</translation>
 <translation id="9116465289595958864">Muokattu viimeksi</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 67f3fa23..eea639e 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">Error</translation>
 <translation id="1166212789817575481">Isara ang Mga Tab na nasa Kanan</translation>
 <translation id="1166583374608765787">Suriin ang update sa pangalan</translation>
+<translation id="1166596238782048887">Kabilang ang <ph name="TAB_TITLE" /> sa desk na <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">Binubuksan sa <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Magtanong kapag gusto ng isang site na gamitin ang mga font na naka-install sa iyong device</translation>
 <translation id="1171135284592304528">I-highlight ang object gamit ang keyboard focus kapag nagbago ito</translation>
@@ -621,6 +622,7 @@
 <translation id="1640235262200048077">Hindi pa gumagana ang <ph name="IME_NAME" /> sa mga app ng Linux</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 na May RSA Encryption</translation>
 <translation id="1641113438599504367">Ligtas na Pagba-browse</translation>
+<translation id="1642492862748815878">Nakakonekta sa <ph name="DEVICE" /> at <ph name="NUMBER_OF_DEVICES" /> pang Bluetooth device</translation>
 <translation id="1642494467033190216">Kinakailangang alisin ang proteksyon ng rootfs at mag-restart bago ma-enable ang iba pang mga feature para sa pagde-debug.</translation>
 <translation id="1643072738649235303">X9.62 ECDSA Signature na may SHA-1</translation>
 <translation id="1643921258693943800">Para magamit ang Nearby Share, i-on Bluetooth at Wi-Fi</translation>
@@ -1836,6 +1838,7 @@
 <translation id="2885378588091291677">Task Manager</translation>
 <translation id="2885729872133513017">Nagkaproblema habang dine-decode ang tugon ng server.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> at <ph name="NUMBER_OF_DEVICES" /> pa</translation>
 <translation id="2889064240420137087">Buksan ang link gamit ang...</translation>
 <translation id="2891922230654533301">Gamitin ang iyong device para mag-sign in sa <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Default na browser</translation>
@@ -2770,6 +2773,7 @@
 <translation id="3884152383786131369">Gagamitin ng content sa web na nasa maraming wika ang unang sinusuportahang wika mula sa listahang ito. Naka-sync ang mga kagustuhang ito sa iyong mga setting ng browser. <ph name="BEGIN_LINK_LEARN_MORE" />Matuto pa<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Pinapamahalaan ng iyong administrator ang mga update</translation>
 <translation id="3886446263141354045">Ipinadala ang iyong kahilingang i-access ang site na ito kay <ph name="NAME" /></translation>
+<translation id="3887022758415973389">Ipakita ang listahan ng device</translation>
 <translation id="3888053818972567950">Koneksyon sa <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">Nagtatala gamit ang <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Nakakatulong sa amin ang impormasyong ito na maunawaan nang mas mabuti ang iyong isyu sa Assistant. Sino-store ito nang hanggang 90 araw at paghihigpitan ang access sa mga naaangkop na engineering team at feedback team.</translation>
@@ -3481,6 +3485,7 @@
 <translation id="4662373422909645029">Bawal numero sa nickname</translation>
 <translation id="4662788913887017617">Ibahagi ang bookmark na ito sa iyong iPhone</translation>
 <translation id="4663373278480897665">Pinapayagan ang camera</translation>
+<translation id="4664289193573249666">Pamahalaan ang secure na DNS sa mga setting ng Chrome OS</translation>
 <translation id="4664482161435122549">Error sa Pag-export ng PKCS #12</translation>
 <translation id="4665014895760275686">Manufacturer</translation>
 <translation id="4665446389743427678">Ide-delete ang lahat ng data na naka-store sa <ph name="SITE" />.</translation>
@@ -6013,6 +6018,7 @@
 <translation id="7478623944308207463">Magsi-sync ang iyong mga app at setting sa lahat ng Chrome OS device kung saan ka naka-sign in gamit ang Google account mo. Para sa mga opsyon sa pag-sync ng browser, pumunta sa <ph name="LINK_BEGIN" />mga setting ng Chrome<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Huwag payagan ang mga site na kumonekta sa mga serial port</translation>
 <translation id="7479221278376295180">Overview ng Paggamit ng Storage</translation>
+<translation id="747981547666531654">Nakakonekta sa mga Bluetooth device na pinangalanang <ph name="FIRST_DEVICE" /> at <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">Sumulong</translation>
 <translation id="7481358317100446445">Handa</translation>
 <translation id="748138892655239008">Mga Limitasyon sa Pangunahing Certificate</translation>
@@ -6065,6 +6071,7 @@
 <translation id="7531771599742723865">Ginagamit ang device</translation>
 <translation id="7531779363494549572">Pumunta sa Mga Setting &gt; Mga app at notification &gt; Mga Notification.</translation>
 <translation id="7532009420053991888">Hindi tumutugon ang <ph name="LINUX_APP_NAME" />. Piliin ang "Puwersahang isara" para isara ang app.</translation>
+<translation id="7535730537657706072">Para i-clear ang history ng pag-browse sa Incognito mula sa iyong device, isara ang lahat ng tab na Incognito</translation>
 <translation id="7535791657097741517">I-on ang maliwanag na tema</translation>
 <translation id="7537451260744431038">Hindi puwedeng gumamit ng cookies ang mga site para pahusayin ang iyong karanasan sa pag-browse, halimbawa, para mapanatili kang naka-sign in o para maalala ang mga item sa shopping cart mo</translation>
 <translation id="753769905878158714">Sa address bar, ilagay ang keyword para sa website na gusto mong hanapin. Pagkatapos, gumamit ng keyboard shortcut para magpatuloy.</translation>
@@ -6682,6 +6689,7 @@
 <translation id="8138217203226449454">Gusto mo ba sanang palitan ang iyong provider ng paghahanap?</translation>
 <translation id="8138997515734480534">Status ng <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">Mga file sa Google Drive</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Binubuksan ngayon sa alternatibong browser</translation>
 <translation id="8141725884565838206">Pamahalaan ang iyong mga password</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{isang video}one{# video}other{# na video}}</translation>
@@ -6771,7 +6779,6 @@
 <translation id="8235418492073272647">Ibinahagi ang page mula sa <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">lumabas</translation>
 <translation id="8236917170563564587">Sa halip, ibahagi ang tab na ito</translation>
-<translation id="8237471930911823556">Nakatakdang magbukas ang <ph name="APP_NAME" /> sa isang bagong tab ng browser, magbubukas din ang mga sinusuportahang link sa browser.</translation>
 <translation id="8237647586961940482">Dark pink at pula</translation>
 <translation id="8239032431519548577">Kumpleto na ang pagpapa-enroll ng enterprise</translation>
 <translation id="8239932336306009582">Hindi pinapayagang magpadala ng mga notification</translation>
@@ -7400,6 +7407,7 @@
 <translation id="8909782404367982052">I-drag para Maghanap ng Mga Larawan Gamit ang Google Lens</translation>
 <translation id="8909833622202089127">Sinusubaybayan ng site ang iyong lokasyon</translation>
 <translation id="8910222113987937043">Hindi na isi-sync sa Google Account mo ang mga pagbabago sa iyong mga bookmark, history, password at iba pang mga setting. Gayunpaman, mananatiling naka-store sa Google Account mo ang iyong kasalukuyang data at mapamamahalaan ito sa <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Itago ang listahan ng device</translation>
 <translation id="8912362522468806198">Google Account</translation>
 <translation id="8912793549644936705">Naka-stretch</translation>
 <translation id="8912810933860534797">I-enable ang awtomatikong pag-scan</translation>
@@ -7517,6 +7525,7 @@
 <translation id="9033765790910064284">Magpatuloy pa rin</translation>
 <translation id="9033857511263905942">I-&amp;paste</translation>
 <translation id="903480517321259405">I-type ulit ang PIN</translation>
+<translation id="9037054491984310631">Nakakonekta sa Bluetooth device na pinangalanang <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">Hindi pinapayagan ang device</translation>
 <translation id="9037818663270399707">Hindi pribado ang iyong koneksyon para sa lahat ng trapiko sa network</translation>
 <translation id="9037965129289936994">Ipakita Ang Orihinal</translation>
@@ -7597,6 +7606,7 @@
 <translation id="9112786533191410418">Posibleng mapanganib ang <ph name="FILE_NAME" />. Ipadala sa Google para ma-scan?</translation>
 <translation id="9112987648460918699">Find...</translation>
 <translation id="9113240369465613386">Mga odd na pahina lang</translation>
+<translation id="9113469270512809735">I-toggle ang Mga Kamakailang Isinarang Item</translation>
 <translation id="9114663181201435112">Mag-sign in nang walang kahirap-hirap</translation>
 <translation id="9115675100829699941">&amp;Mga Bookmark</translation>
 <translation id="9116465289595958864">Huling binago</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 97ba183d..f188a8d 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -6755,7 +6755,6 @@
 <translation id="8235418492073272647">Page partagée à partir de <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">quitter</translation>
 <translation id="8236917170563564587">Partager cet onglet à la place</translation>
-<translation id="8237471930911823556">L'application <ph name="APP_NAME" /> est configurée pour s'ouvrir dans un nouvel onglet du navigateur, les liens pris en charge s'ouvriront aussi dans le navigateur.</translation>
 <translation id="8237647586961940482">Rose foncé et rouge</translation>
 <translation id="8239032431519548577">L'inscription de l'entreprise est terminée</translation>
 <translation id="8239932336306009582">Non autorisés à envoyer des notifications</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 905972e5..2b1c8a9 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -6764,7 +6764,6 @@
 <translation id="8235418492073272647">Page partagée depuis <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">quitter</translation>
 <translation id="8236917170563564587">Partager cet onglet à la place</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> est configurée pour s'ouvrir dans un nouvel onglet de navigateur. Les liens compatibles s'ouvriront aussi dans le navigateur.</translation>
 <translation id="8237647586961940482">Rose foncé et rouge</translation>
 <translation id="8239032431519548577">Inscription de l'entreprise terminée</translation>
 <translation id="8239932336306009582">Non autorisés à utiliser les notifications</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index fd408e1..28b68fc 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -6750,7 +6750,6 @@
 <translation id="8235418492073272647">Páxina compartida desde <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">saír</translation>
 <translation id="8236917170563564587">Mellor compartir esta pestana</translation>
-<translation id="8237471930911823556">Configurouse <ph name="APP_NAME" /> para que se abra nunha nova pestana do navegador. As ligazóns compatibles tamén se abrirán no navegador.</translation>
 <translation id="8237647586961940482">Rosa escuro e vermello</translation>
 <translation id="8239032431519548577">A inscrición da empresa está completa</translation>
 <translation id="8239932336306009582">Sen permiso para enviar notificacións</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 724c8a1..6621c4b 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -6748,7 +6748,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> પરથી પેજ શેર કરવામાં આવ્યું</translation>
 <translation id="8236911020904880539">બહાર નીકળો</translation>
 <translation id="8236917170563564587">તેના બદલે આ ટૅબ શેર કરો</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" />ને બ્રાઉઝરની નવી ટૅબમાં ખૂલવા માટે સેટ કરવામાં આવી છે, સંબંધિત લિંક પણ બ્રાઉઝરમાં ખૂલશે.</translation>
 <translation id="8237647586961940482">ઘેરો ગુલાબી અને લાલ</translation>
 <translation id="8239032431519548577">એન્ટરપ્રાઇઝ નોંધણી પૂર્ણ થઈ</translation>
 <translation id="8239932336306009582">આને નોટિફિકેશન મોકલવાની મંજૂરી આપી નથી</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 40daa96..a065b06 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">गड़बड़ी</translation>
 <translation id="1166212789817575481">दाईं ओर के टैब बंद करें</translation>
 <translation id="1166583374608765787">नाम में हुआ बदलाव देखें</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" />, <ph name="DESK_TITLE" /> डेस्क से जुड़ा हुआ है</translation>
 <translation id="1168020859489941584"><ph name="TIME_REMAINING" /> में खुल रहा है ...</translation>
 <translation id="1170288591054440704">जब कोई साइट आपके डिवाइस पर इंस्टॉल किए गए फ़ॉन्ट का इस्तेमाल करना चाहे, तो वह इसके लिए आपसे पूछे</translation>
 <translation id="1171135284592304528">ऑब्जेक्ट के बदलने पर उसे कीबोर्ड फ़ोकस के साथ हाइलाइट करें</translation>
@@ -621,6 +622,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> अभी Linux के ऐप्लिकेशन के साथ काम नहीं करता</translation>
 <translation id="1640283014264083726">RSA सुरक्षित करने के तरीके के साथ PKCS #1 MD4</translation>
 <translation id="1641113438599504367">सुरक्षित ब्राउज़िंग</translation>
+<translation id="1642492862748815878"><ph name="DEVICE" /> और <ph name="NUMBER_OF_DEVICES" /> अन्य ब्लूटूथ डिवाइसों से कनेक्ट किया गया है</translation>
 <translation id="1642494467033190216">डीबग करने वाली अन्‍य सुविधाएं सक्षम करने से पहले rootfs सुरक्षा को निकालने और फिर से प्रारंभ करने की आवश्‍यकता है.</translation>
 <translation id="1643072738649235303">SHA-1 के साथ X9.62 ECDSA हस्ताक्षर</translation>
 <translation id="1643921258693943800">आस-पास शेयर करने की सुविधा इस्तेमाल करने के लिए, ब्लूटूथ और वाई-फ़ाई चालू करें</translation>
@@ -1835,6 +1837,7 @@
 <translation id="2885378588091291677">काम का मैनेजर</translation>
 <translation id="2885729872133513017">सर्वर के जवाब को डिकोड करते समय कोई परेशानी हुई.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> और <ph name="NUMBER_OF_DEVICES" /> अन्य</translation>
 <translation id="2889064240420137087">इनके साथ लिंक खोलें...</translation>
 <translation id="2891922230654533301">क्या आप <ph name="APP_NAME" /> में साइन इन करने के लिए अपना डिवाइस इस्तेमाल करना चाहते हैं?</translation>
 <translation id="2893168226686371498">सामान्य ब्राउज़र</translation>
@@ -2769,6 +2772,7 @@
 <translation id="3884152383786131369">कई भाषाओं में उपलब्ध वेब कॉन्टेंट, इस सूची में दी गई पहली भाषा में दिखाया जाएगा. इन प्राथमिकताओं को आपके ब्राउज़र की सेटिंग के साथ सिंक किया जाता है. <ph name="BEGIN_LINK_LEARN_MORE" />ज़्यादा जानें<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">अपडेट को आपका एडमिन मैनेज करता है</translation>
 <translation id="3886446263141354045">यह साइट एक्सेस करने का आपका अनुरोध <ph name="NAME" /> को भेज दिया गया है</translation>
+<translation id="3887022758415973389">डिवाइसों की सूची दिखाएं</translation>
 <translation id="3888053818972567950"><ph name="WEB_DRIVE" /> कनेक्शन</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> से नोट लेना</translation>
 <translation id="3888586133700543064">इस जानकारी से, हमें Assistant से जुड़ी आपकी समस्या को बेहतर तरीके से समझने में मदद मिलती है. इस जानकारी को 90 दिनों तक सेव करके रखा जाता है. साथ ही, इसका ऐक्सेस उन इंजीनियरिंग और फ़ीडबैक टीमों के पास ही रहता है जो आपकी समस्या पर काम करती हैं.</translation>
@@ -3479,6 +3483,7 @@
 <translation id="4662373422909645029">प्रचलित नाम में अंक शामिल नहीं कर सकते</translation>
 <translation id="4662788913887017617">इस बुकमार्क को अपने iPhone से शेयर करें</translation>
 <translation id="4663373278480897665">कैमरे की अनुमति है</translation>
+<translation id="4664289193573249666">Chrome OS की सेटिंग में सुरक्षित डीएनएस मैनेज करें</translation>
 <translation id="4664482161435122549">PKCS #12 निर्यात गड़बड़ी</translation>
 <translation id="4665014895760275686">निर्माता</translation>
 <translation id="4665446389743427678"><ph name="SITE" /> ने जो भी डेटा सेव किया है उसे मिटा दिया जाएगा.</translation>
@@ -6011,6 +6016,7 @@
 <translation id="7478623944308207463">आपके ऐप्लिकेशन और सेटिंग उन सभी Chrome OS डिवाइस में सिंक हो जाएंगी जिनमें आपने Google खाते से साइन इन किया है. ब्राउज़र को सिंक करने के विकल्पों के लिए, <ph name="LINK_BEGIN" />Chrome की सेटिंग<ph name="LINK_END" /> पर जाएं.</translation>
 <translation id="7478658909253570368">साइटों को सीरियल पोर्ट से कनेक्ट करने की अनुमति न दें</translation>
 <translation id="7479221278376295180">मेमोरी के इस्तेमाल की खास जानकारी</translation>
+<translation id="747981547666531654"><ph name="FIRST_DEVICE" /> और <ph name="SECOND_DEVICE" /> नाम वाले ब्लूटूथ डिवाइस से कनेक्ट किया गया है</translation>
 <translation id="7481312909269577407">आगे जाएं</translation>
 <translation id="7481358317100446445">तैयार</translation>
 <translation id="748138892655239008">प्रमाणपत्र मूल बाध्यताएं</translation>
@@ -6063,6 +6069,7 @@
 <translation id="7531771599742723865">इस्तेमाल हो रहा डिवाइस</translation>
 <translation id="7531779363494549572">सेटिंग &gt; ऐप्लिकेशन और सूचनाएं &gt; सूचनाएं पर जाएं.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> काम नहीं कर रहा है. ऐप्लिकेशन को बंद करने के लिए "ज़बरदस्ती बंद करें" चुनें.</translation>
+<translation id="7535730537657706072">अपने डिवाइस पर गुप्त मोड में की गई ब्राउज़िंग का इतिहास मिटाने के लिए, सभी गुप्त टैब बंद कर दें</translation>
 <translation id="7535791657097741517">हल्के रंग वाली थीम चालू करें</translation>
 <translation id="7537451260744431038">साइटें आपके ब्राउज़ करने के अनुभव को बेहतर बनाने के लिए कुकी का इस्तेमाल नहीं कर सकतीं. जैसे, आपको साइन इन बनाए रखने के लिए या आपने शॉपिंग कार्ट में जो आइटम सेव किए हैं उन्हें याद रखने के लिए</translation>
 <translation id="753769905878158714">पता बार में उस वेबसाइट के लिए कीवर्ड डालें जिसे आप खोजना चाहते हैं. इसके बाद, जारी रखने के लिए कीबोर्ड शॉर्टकट का इस्तेमाल करें.</translation>
@@ -6679,6 +6686,7 @@
 <translation id="8138217203226449454">क्या आपका मतलब खोज की सुविधा देने वाली कंपनी बदलने से था?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> की स्थिति</translation>
 <translation id="8139447493436036221">Google Drive फ़ाइलें</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">अब वैकल्पिक ब्राउज़र में खोला जा रहा है</translation>
 <translation id="8141725884565838206">अपने पासवर्ड प्रबंधित करें</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{एक वीडियो}one{# वीडियो}other{# वीडियो}}</translation>
@@ -6768,7 +6776,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> से शेयर किया गया पेज</translation>
 <translation id="8236911020904880539">बाहर निकलें</translation>
 <translation id="8236917170563564587">उसके बजाय यह टैब शेयर करें</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> नए ब्राउज़र टैब में खोले जाने के लिए तैयार है. साथ में काम करने वाले लिंक भी ब्राउज़र में खुलेंगे.</translation>
 <translation id="8237647586961940482">गहरा गुलाबी और लाल</translation>
 <translation id="8239032431519548577">एंटरप्राइज़ में नाम दर्ज हो गया है</translation>
 <translation id="8239932336306009582">सूचनाएं भेजने की अनुमति नहीं है</translation>
@@ -7395,6 +7402,7 @@
 <translation id="8909782404367982052">Google Lens से इमेज खोजने के लिए, खींचें और छोड़ें</translation>
 <translation id="8909833622202089127">साइट आपकी जगह को ट्रैक कर रही है</translation>
 <translation id="8910222113987937043">आपके बुकमार्क, इतिहास, पासवर्ड और अन्य सेटिंग में किए गए बदलाव अब आपके Google खाते से सिंक नहीं किए जाएंगे. हालांकि, आपका मौजूदा डेटा आपके Google खाते में संग्रहित रहेगा और <ph name="BEGIN_LINK" />Google डैशबोर्ड<ph name="END_LINK" /> पर प्रबंधित किया जा सकेगा.</translation>
+<translation id="8910987510378294980">डिवाइसों की सूची छिपाएं</translation>
 <translation id="8912362522468806198">Google खाता</translation>
 <translation id="8912793549644936705">खींचें</translation>
 <translation id="8912810933860534797">अपने आप स्कैन करने की सुविधा चालू करें</translation>
@@ -7512,6 +7520,7 @@
 <translation id="9033765790910064284">फिर भी जारी रखें</translation>
 <translation id="9033857511263905942">&amp;चिपकाएं</translation>
 <translation id="903480517321259405">पिन दोबारा डालें</translation>
+<translation id="9037054491984310631"><ph name="DEVICE" /> नाम वाले ब्लूटूथ डिवाइस से कनेक्ट किया गया है</translation>
 <translation id="9037640663275993951">इस डिवाइस पर वीएम मशीन चलाने की अनुमति नहीं है</translation>
 <translation id="9037818663270399707">सभी नेटवर्क ट्रैफ़िक के लिए, आपका कनेक्शन निजी नहीं है</translation>
 <translation id="9037965129289936994">मूल दिखाएं</translation>
@@ -7591,6 +7600,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> खतरनाक हो सकती है. क्या इसे स्कैन करने के लिए Google को भेजें?</translation>
 <translation id="9112987648460918699">ढूंढें ...</translation>
 <translation id="9113240369465613386">सिर्फ़ विषम संख्या वाले पेज प्रिंट करें</translation>
+<translation id="9113469270512809735">हाल ही में बंद किए गए आइटम दिखाएं/छिपाएं</translation>
 <translation id="9114663181201435112">आसानी से साइन इन करें</translation>
 <translation id="9115675100829699941">&amp;बुकमार्क</translation>
 <translation id="9116465289595958864">पिछली बार संशोधित</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 1e37117..11c8834 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -6763,7 +6763,6 @@
 <translation id="8235418492073272647">Stranica se dijeli s uređaja <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">izlaz</translation>
 <translation id="8236917170563564587">Dijeli ovu karticu</translation>
-<translation id="8237471930911823556">Aplikacija <ph name="APP_NAME" /> postavljena je za otvaranje u novoj kartici preglednika. Veze za podršku također će se otvoriti u pregledniku.</translation>
 <translation id="8237647586961940482">Tamnoružičasta i crvena</translation>
 <translation id="8239032431519548577">Prijava organizacije dovršena</translation>
 <translation id="8239932336306009582">Nije dopušteno slanje obavijesti</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index ba53481..461a1991 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -6776,7 +6776,6 @@
 <translation id="8235418492073272647">Oldal megosztva innen: <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">a kilépéshez</translation>
 <translation id="8236917170563564587">Jelenlegi lap megosztása</translation>
-<translation id="8237471930911823556">Beállításai alapján a(z) <ph name="APP_NAME" /> új böngészőlapon nyílik meg, a támogatott linkek pedig szintén böngészőben nyílnak majd meg.</translation>
 <translation id="8237647586961940482">Sötét rózsaszín-vörös</translation>
 <translation id="8239032431519548577">A vállalati regisztráció kész</translation>
 <translation id="8239932336306009582">Nem küldhetnek értesítéseket</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index 9ef9abb..7212361 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -6763,7 +6763,6 @@
 <translation id="8235418492073272647">Էջ <ph name="DEVICE_NAME" /> սարքից</translation>
 <translation id="8236911020904880539">դուրս գալու</translation>
 <translation id="8236917170563564587">Փոխարենը կիսվեք այս ներդիրով</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> հավելվածը և աջակցվող հղումները կբացվեն դիտարկիչի նոր ներդիրում։</translation>
 <translation id="8237647586961940482">Մուգ վարդագույն և կարմիր</translation>
 <translation id="8239032431519548577">Ընկերության գրանցումն ավարտված է</translation>
 <translation id="8239932336306009582">Չի թույլատրվում ուղարկել ծանուցումներ</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index fe526417..ab91147c 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">Kesalahan</translation>
 <translation id="1166212789817575481">Tutup Tab di Sebelah Kanan</translation>
 <translation id="1166583374608765787">Tinjau pembaruan nama</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> milik desktop <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">Dibuka dalam waktu <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Tanyakan saat situs ingin menggunakan font yang diinstal di perangkat</translation>
 <translation id="1171135284592304528">Sorot objek dengan fokus keyboard saat berubah</translation>
@@ -620,6 +621,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> belum berfungsi di aplikasi Linux</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 Dengan Enkripsi RSA</translation>
 <translation id="1641113438599504367">Safe Browsing</translation>
+<translation id="1642492862748815878">Terhubung ke <ph name="DEVICE" /> dan <ph name="NUMBER_OF_DEVICES" /> perangkat Bluetooth lainnya</translation>
 <translation id="1642494467033190216">Anda perlu menghapus perlindungan rootfs dan memulai ulang perangkat sebelum mengaktifkan fitur debug lainnya.</translation>
 <translation id="1643072738649235303">Tanda tangan X9.62 ECDSA dengan SHA-1</translation>
 <translation id="1643921258693943800">Untuk menggunakan Berbagi Langsung, aktifkan Bluetooth dan Wi-Fi</translation>
@@ -1835,6 +1837,7 @@
 <translation id="2885378588091291677">Pengelola Tugas</translation>
 <translation id="2885729872133513017">Terjadi masalah saat mendekode respons server.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> dan <ph name="NUMBER_OF_DEVICES" /> lainnya</translation>
 <translation id="2889064240420137087">Buka link dengan...</translation>
 <translation id="2891922230654533301">Gunakan perangkat Anda untuk login ke <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Browser default</translation>
@@ -2769,6 +2772,7 @@
 <translation id="3884152383786131369">Konten web yang tersedia dalam beberapa bahasa akan menggunakan bahasa pertama yang didukung dari daftar ini. Preferensi ini akan disinkronkan dengan setelan browser Anda. <ph name="BEGIN_LINK_LEARN_MORE" />Pelajari lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Update dikelola oleh administrator Anda</translation>
 <translation id="3886446263141354045">Permintaan Anda untuk mengakses situs ini telah dikirim ke <ph name="NAME" /></translation>
+<translation id="3887022758415973389">Tampilkan daftar perangkat</translation>
 <translation id="3888053818972567950">Koneksi <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">Mencatat dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Informasi ini membantu kami lebih memahami masalah Asisten. Informasi tersebut disimpan selama 90 hari dan hanya dapat diakses oleh tim engineer dan masukan yang terkait.</translation>
@@ -3480,6 +3484,7 @@
 <translation id="4662373422909645029">Nama panggilan tidak boleh berisi angka</translation>
 <translation id="4662788913887017617">Bagikan bookmark ini dengan iPhone Anda</translation>
 <translation id="4663373278480897665">Kamera diizinkan</translation>
+<translation id="4664289193573249666">Kelola DNS aman di setelan Chrome OS</translation>
 <translation id="4664482161435122549">PKCS #12 Kesalahan Ekspor</translation>
 <translation id="4665014895760275686">Produsen</translation>
 <translation id="4665446389743427678">Semua data yang disimpan oleh <ph name="SITE" /> akan dihapus.</translation>
@@ -6012,6 +6017,7 @@
 <translation id="7478623944308207463">Aplikasi dan setelan Anda akan disinkronkan di semua perangkat Chrome OS tempat Anda login dengan Akun Google. Untuk opsi sinkronisasi browser, buka <ph name="LINK_BEGIN" />setelan Chrome<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Jangan izinkan situs terhubung ke port serial</translation>
 <translation id="7479221278376295180">Ringkasan Penggunaan Penyimpanan</translation>
+<translation id="747981547666531654">Terhubung ke perangkat Bluetooth bernama <ph name="FIRST_DEVICE" /> dan <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">Maju</translation>
 <translation id="7481358317100446445">Siap</translation>
 <translation id="748138892655239008">Kendala Dasar Sertifikat</translation>
@@ -6064,6 +6070,7 @@
 <translation id="7531771599742723865">Perangkat sedang digunakan</translation>
 <translation id="7531779363494549572">Buka Setelan &gt; Aplikasi &amp; notifikasi &gt; Notifikasi.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> tidak merespons. Pilih "Tutup paksa" untuk menutup aplikasi.</translation>
+<translation id="7535730537657706072">Untuk menghapus histori penjelajahan mode Samaran dari perangkat Anda, tutup semua tab Samaran</translation>
 <translation id="7535791657097741517">Aktifkan tema terang</translation>
 <translation id="7537451260744431038">Situs tidak dapat menggunakan cookie untuk menyempurnakan pengalaman penjelajahan Anda, misalnya untuk membuat Anda tetap login atau untuk mengingat item di keranjang belanja Anda</translation>
 <translation id="753769905878158714">Di kolom URL, masukkan kata kunci untuk situs yang ingin Anda telusuri. Lalu, masukkan pintasan keyboard untuk melanjutkan.</translation>
@@ -6681,6 +6688,7 @@
 <translation id="8138217203226449454">Apakah Anda bermaksud mengubah penyedia penelusuran?</translation>
 <translation id="8138997515734480534">Status <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">File Google Drive</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Membuka di browser alternatif sekarang</translation>
 <translation id="8141725884565838206">Kelola sandi Anda</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{1 video}other{# video}}</translation>
@@ -6770,7 +6778,6 @@
 <translation id="8235418492073272647">Halaman dibagikan dari <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">keluar</translation>
 <translation id="8236917170563564587">Bagikan tab ini saja</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> disetel untuk dibuka di tab browser baru, link yang didukung juga akan dibuka di browser.</translation>
 <translation id="8237647586961940482">Merah muda gelap dan merah tua</translation>
 <translation id="8239032431519548577">Pendaftaran perusahaan selesai</translation>
 <translation id="8239932336306009582">Tidak diizinkan mengirimkan notifikasi</translation>
@@ -7396,6 +7403,7 @@
 <translation id="8909782404367982052">Tarik untuk Menelusuri Gambar dengan Google Lens</translation>
 <translation id="8909833622202089127">Situs sedang melacak lokasi Anda</translation>
 <translation id="8910222113987937043">Perubahan terhadap bookmark, histori, sandi, dan setelan lain sudah tidak disinkronkan ke Akun Google Anda. Namun, data yang sudah ada akan tetap disimpan di Akun Google dan dapat dikelola di <ph name="BEGIN_LINK" />Google Dasbor<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Sembunyikan daftar perangkat</translation>
 <translation id="8912362522468806198">Akun Google</translation>
 <translation id="8912793549644936705">Meregang</translation>
 <translation id="8912810933860534797">Aktifkan pindai otomatis</translation>
@@ -7513,6 +7521,7 @@
 <translation id="9033765790910064284">Tetap lanjutkan</translation>
 <translation id="9033857511263905942">&amp;Tempel</translation>
 <translation id="903480517321259405">Ketik PIN lagi</translation>
+<translation id="9037054491984310631">Terhubung ke perangkat Bluetooth bernama <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">Perangkat tidak diizinkan</translation>
 <translation id="9037818663270399707">Koneksi Anda tidak bersifat pribadi untuk semua traffic jaringan</translation>
 <translation id="9037965129289936994">Tampilkan Halaman Asli</translation>
@@ -7593,6 +7602,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> mungkin berbahaya. Kirim ke Google untuk dipindai?</translation>
 <translation id="9112987648460918699">Temukan...</translation>
 <translation id="9113240369465613386">Hanya halaman ganjil</translation>
+<translation id="9113469270512809735">Tampilkan/Sembunyikan Item yang Baru Saja Ditutup</translation>
 <translation id="9114663181201435112">Login dengan mudah</translation>
 <translation id="9115675100829699941">&amp;Bookmark</translation>
 <translation id="9116465289595958864">Terakhir diubah</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index e44e57b4..3a7ec29 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -6777,7 +6777,6 @@
 <translation id="8235418492073272647">Síðu deilt úr <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">loka</translation>
 <translation id="8236917170563564587">Deila þessum flipa í staðinn</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> er stillt á að opna í nýjum vafraflipa, studdir tenglar verða einnig opnaðir í vafranum.</translation>
 <translation id="8237647586961940482">Dökkbleikur og rauður</translation>
 <translation id="8239032431519548577">Fyrirtækjaskráningu lokið</translation>
 <translation id="8239932336306009582">Mega ekki senda tilkynningar</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index b3bdae53..3bf40708d 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -6762,7 +6762,6 @@
 <translation id="8235418492073272647">Pagina condivisa da <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">uscire</translation>
 <translation id="8236917170563564587">Condividi questa scheda invece</translation>
-<translation id="8237471930911823556">L'app <ph name="APP_NAME" /> è stata impostata in modo da essere aperta in una nuova scheda del browser; anche i link supportati verranno aperti nel browser.</translation>
 <translation id="8237647586961940482">Rosa scuro e rosso</translation>
 <translation id="8239032431519548577">Registrazione aziendale completata</translation>
 <translation id="8239932336306009582">Non possono inviare notifiche</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index ea902899..1e71ae9 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -6771,7 +6771,6 @@
 <translation id="8235418492073272647">הדף שותף מהמכשיר <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">לצאת</translation>
 <translation id="8236917170563564587">שיתוף הכרטיסייה הזו</translation>
-<translation id="8237471930911823556">האפליקציה <ph name="APP_NAME" /> הוגדרה כך שתיפתח בכרטיסייה חדשה בדפדפן. גם קישורים נתמכים ייפתחו בדפדפן.</translation>
 <translation id="8237647586961940482">ורוד כהה ואדום</translation>
 <translation id="8239032431519548577">‏ההרשמה ל-Enterprise הושלמה</translation>
 <translation id="8239932336306009582">לא מורשים לשלוח התראות</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 3d8e195..4f222d51 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -159,6 +159,7 @@
 <translation id="1165039591588034296">エラー</translation>
 <translation id="1166212789817575481">右側のタブを閉じる</translation>
 <translation id="1166583374608765787">新しい名前を確認</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> はデスク <ph name="DESK_TITLE" /> に含まれています</translation>
 <translation id="1168020859489941584">後 <ph name="TIME_REMAINING" />でファイルが開きます...</translation>
 <translation id="1170288591054440704">サイトがデバイスにインストールされたフォントを使おうとしたときに確認する</translation>
 <translation id="1171135284592304528">キーボード フォーカスの移動に合わせて項目を強調表示する</translation>
@@ -617,6 +618,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> は現在のところ Linux アプリでは使用できません</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 with RSA 暗号化</translation>
 <translation id="1641113438599504367">セーフ ブラウジング</translation>
+<translation id="1642492862748815878"><ph name="DEVICE" /> および <ph name="NUMBER_OF_DEVICES" /> 個の他の Bluetooth デバイスに接続しました</translation>
 <translation id="1642494467033190216">他のデバッグ機能を有効にするには、その前に rootfs の保護を削除して再起動する必要があります。</translation>
 <translation id="1643072738649235303">X9.62 ECDSA 署名(SHA-1)</translation>
 <translation id="1643921258693943800">ニアバイシェアを使用するには、Bluetooth と Wi-Fi をオンにしてください</translation>
@@ -1819,6 +1821,7 @@
 <translation id="2885378588091291677">タスク マネージャ</translation>
 <translation id="2885729872133513017">サーバーの応答をデコード中に問題が発生しました。</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> とその他 <ph name="NUMBER_OF_DEVICES" /> 個のデバイス</translation>
 <translation id="2889064240420137087">次のプログラムでリンクを開く...</translation>
 <translation id="2891922230654533301">デバイスを使用して <ph name="APP_NAME" /> にログインしますか?</translation>
 <translation id="2893168226686371498">既定のブラウザ</translation>
@@ -2753,6 +2756,7 @@
 <translation id="3884152383786131369">複数の言語に対応しているウェブ コンテンツでは、次のリストの最初にある対応言語が使用されます。これらの設定はブラウザの設定と同期されています。<ph name="BEGIN_LINK_LEARN_MORE" />詳細<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">更新は管理者によって管理されています</translation>
 <translation id="3886446263141354045">このサイトへのアクセス リクエストを <ph name="NAME" /> さんに送信しました</translation>
+<translation id="3887022758415973389">デバイスリストを表示する</translation>
 <translation id="3888053818972567950"><ph name="WEB_DRIVE" /> に接続</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> でメモをとる</translation>
 <translation id="3888586133700543064">アシスタントで発生した問題を詳しく把握するために、情報の提供をお願いいたします。ご提供いただいた情報は最大 90 日間保存され、エンジニアリングとフィードバックの担当者のみが閲覧します。</translation>
@@ -3463,6 +3467,7 @@
 <translation id="4662373422909645029">ニックネームに数字を含めることはできません</translation>
 <translation id="4662788913887017617">このブックマークは iPhone と共有できます</translation>
 <translation id="4663373278480897665">カメラを使用できます</translation>
+<translation id="4664289193573249666">Chrome OS の設定でセキュア DNS を管理する</translation>
 <translation id="4664482161435122549">PKCS #12 エクスポート エラー</translation>
 <translation id="4665014895760275686">メーカー</translation>
 <translation id="4665446389743427678"><ph name="SITE" /> で保存されたすべてのデータが削除されます。</translation>
@@ -5995,6 +6000,7 @@
 <translation id="7478623944308207463">Google アカウントでログインしているすべての Chrome OS デバイス間で、アプリや設定が同期されます。ブラウザの同期オプションについては、<ph name="LINK_BEGIN" />Chrome の設定<ph name="LINK_END" />をご覧ください。</translation>
 <translation id="7478658909253570368">サイトにシリアルポートへの接続を許可しない</translation>
 <translation id="7479221278376295180">ストレージ使用状況</translation>
+<translation id="747981547666531654"><ph name="FIRST_DEVICE" /> および <ph name="SECOND_DEVICE" /> という名前の Bluetooth デバイスに接続しました</translation>
 <translation id="7481312909269577407">進む</translation>
 <translation id="7481358317100446445">準備完了</translation>
 <translation id="748138892655239008">証明書の基本制約</translation>
@@ -6047,6 +6053,7 @@
 <translation id="7531771599742723865">デバイスは使用中です</translation>
 <translation id="7531779363494549572">[設定] &gt; [アプリと通知] &gt; [通知] の順に選択します。</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> から応答がありません。終了するには [強制終了] を選択してください。</translation>
+<translation id="7535730537657706072">シークレット モードでの閲覧履歴をデバイスから消去するには、すべてのシークレット タブを閉じます</translation>
 <translation id="7535791657097741517">ライトモードをオンにする</translation>
 <translation id="7537451260744431038">サイトは、Cookie を使用してブラウジングの利便性を改善できません(ログイン状態の維持、ショッピング カートの中身の保存などが行えません)</translation>
 <translation id="753769905878158714">アドレスバーに、検索したいウェブサイトのキーワードを入力してください。その後、キーボード ショートカットを使って続行してください。</translation>
@@ -6663,6 +6670,7 @@
 <translation id="8138217203226449454">検索プロバイダを変更するつもりでしたか?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> ステータス</translation>
 <translation id="8139447493436036221">Google ドライブのファイル</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />、<ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">まもなく代替ブラウザで開きます</translation>
 <translation id="8141725884565838206">パスワードを管理する</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{動画}other{# 件の動画}}</translation>
@@ -6752,7 +6760,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> から共有されたページ</translation>
 <translation id="8236911020904880539">終了する</translation>
 <translation id="8236917170563564587">代わりにこのタブを共有</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> は新しいブラウザタブで開くよう設定されています。サポートされているリンクもブラウザで開かれます。</translation>
 <translation id="8237647586961940482">暗いピンクと赤</translation>
 <translation id="8239032431519548577">企業の登録が完了しました</translation>
 <translation id="8239932336306009582">通知の送信を許可しないサイト</translation>
@@ -7378,6 +7385,7 @@
 <translation id="8909782404367982052">ドラッグして Google レンズで画像を検索</translation>
 <translation id="8909833622202089127">サイトで現在地が追跡されています</translation>
 <translation id="8910222113987937043">ブックマーク、履歴、パスワードなどの設定に行った変更は Google アカウントと同期されなくなります。ただし、既存のデータは Google アカウントに保存され、<ph name="BEGIN_LINK" />Google ダッシュボード<ph name="END_LINK" />で管理できます。</translation>
+<translation id="8910987510378294980">デバイスリストを非表示にする</translation>
 <translation id="8912362522468806198">Google アカウントを使用</translation>
 <translation id="8912793549644936705">拡大</translation>
 <translation id="8912810933860534797">自動スキャンを有効にする</translation>
@@ -7495,6 +7503,7 @@
 <translation id="9033765790910064284">続行</translation>
 <translation id="9033857511263905942">貼り付け(&amp;P)</translation>
 <translation id="903480517321259405">もう一度 PIN を入力してください</translation>
+<translation id="9037054491984310631"><ph name="DEVICE" /> という名前の Bluetooth デバイスに接続しました</translation>
 <translation id="9037640663275993951">デバイスは許可されていません</translation>
 <translation id="9037818663270399707">この接続ではすべてのネットワーク トラフィックのプライバシーが保護されません</translation>
 <translation id="9037965129289936994">原文のページを表示</translation>
@@ -7575,6 +7584,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> は危害を及ぼす可能性があります。Google に送信してスキャンしますか?</translation>
 <translation id="9112987648460918699">検索...</translation>
 <translation id="9113240369465613386">奇数のページのみ</translation>
+<translation id="9113469270512809735">最近閉じたアイテムを切り替える</translation>
 <translation id="9114663181201435112">簡単にログイン</translation>
 <translation id="9115675100829699941">ブックマーク(&amp;B)</translation>
 <translation id="9116465289595958864">最終更新</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 2e29c546..f860328 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -159,6 +159,7 @@
 <translation id="1165039591588034296">შეცდომა</translation>
 <translation id="1166212789817575481">ჩანართების დახურვა მარჯვნივ</translation>
 <translation id="1166583374608765787">შეამოწმეთ სახელის განახლება</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> ეკუთვნის სამუშაო დაფას „<ph name="DESK_TITLE" />“</translation>
 <translation id="1168020859489941584">დრო გახსნამდე: <ph name="TIME_REMAINING" />…</translation>
 <translation id="1170288591054440704">შეკითხვა საიტის მიერ თქვენს მოწყობილობაზე დაინსტალირებული შრიფტების გამოყენების მოთხოვნისას</translation>
 <translation id="1171135284592304528">შეცვლისას, კლავიატურის მეშვეობით არჩეული ობიექტის გამოყოფა</translation>
@@ -617,6 +618,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> ჯერ არ მუშაობს Linux აპებში</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 RSA დაშიფვრით</translation>
 <translation id="1641113438599504367">Safe Browsing</translation>
+<translation id="1642492862748815878">დაკავშირებულია <ph name="DEVICE" />-თან და <ph name="NUMBER_OF_DEVICES" /> სხვა Bluetooth მოწყობილობასთან</translation>
 <translation id="1642494467033190216">ძირეული დაცვის მოხსნა და გადატვირთვა საჭირო მანამ, სანამ ჩართავთ სხვა გამართვის ფუნქციებს.</translation>
 <translation id="1643072738649235303">X9.62 ECDSA ხელმოწერა SHA-1-ით</translation>
 <translation id="1643921258693943800">მახლობლად გაზიარების გამოსაყენებლად ჩართეთ Bluetooth და Wi-Fi</translation>
@@ -1820,6 +1822,7 @@
 <translation id="2885378588091291677">ამოცანების მმართველი</translation>
 <translation id="2885729872133513017">სერვერის რეაგირების გაშიფვრისას წარმოიქმნა პრობლემა.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> და <ph name="NUMBER_OF_DEVICES" /> სხვა</translation>
 <translation id="2889064240420137087">ბმულის გახსნა…</translation>
 <translation id="2891922230654533301">გსურთ, გამოიყენოთ თქვენი მოწყობილობა <ph name="APP_NAME" />-ში შესასვლელად?</translation>
 <translation id="2893168226686371498">ნაგულისხმევი ბრაუზერი</translation>
@@ -2754,6 +2757,7 @@
 <translation id="3884152383786131369">რამდენიმე ენაზე ხელმისაწვდომი ვებკონტენტი ამ სიიდან პირველ მხარდაჭერილ ენას გამოიყენებს. ეს პარამეტრები სინქრონიზდება თქვენი ბრაუზერის პარამეტრებთან. <ph name="BEGIN_LINK_LEARN_MORE" />შეიტყვეთ მეტი<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">განახლებებს მართავს თქვენი ადმინისტრატორი</translation>
 <translation id="3886446263141354045">ამ საიტზე წვდომის მოთხოვნა გაეგზავნა <ph name="NAME" />-ს</translation>
+<translation id="3887022758415973389">მოწყობილობების სიის ჩვენება</translation>
 <translation id="3888053818972567950"><ph name="WEB_DRIVE" /> კავშირი</translation>
 <translation id="3888550877729210209">ჩანიშვნა <ph name="LOCK_SCREEN_APP_NAME" />-ის მეშვეობით</translation>
 <translation id="3888586133700543064">ეს ინფორმაცია დაგვეხმარება, უკეთ გავერკვიოთ, თუ რა პრობლემა გაქვთ ასისტენტთან დაკავშირებით. ის ინახება მაქსიმუმ 90 დღის ვადით და მასზე წვდომა აქვს მხოლოდ ინჟინერებისა და უკუკავშირის შესაბამის გუნდებს.</translation>
@@ -3464,6 +3468,7 @@
 <translation id="4662373422909645029">მეტსახელი არ უნდა შეიცავდეს ციფრებს</translation>
 <translation id="4662788913887017617">გააზიარეთ სანიშნე თქვენს iPhone-თან</translation>
 <translation id="4663373278480897665">კამერა დაშვებულია</translation>
+<translation id="4664289193573249666">მართეთ დაცული DNS Chrome OS-ის პარამეტრებიდან</translation>
 <translation id="4664482161435122549">PKCS #12 ექსპორტის შეცდომა</translation>
 <translation id="4665014895760275686">მწარმოებელი</translation>
 <translation id="4665446389743427678"><ph name="SITE" />-ის მიერ შენახული ყველა მონაცემი ამოიშლება.</translation>
@@ -5996,6 +6001,7 @@
 <translation id="7478623944308207463">თქვენი აპები და პარამეტრები სინქრონიზებული იქნება თქვენს ყველა Chrome OS მოწყობილობასთან, რომელზეც შესული ხართ თქვენი Google ანგარიშით. ბრაუზერის სინქრონიზაციის ვარიანტების სანახავად გადადით <ph name="LINK_BEGIN" />Chrome-ის პარამეტრებზე<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">საიტებისთვის თანმიმდევრულ პორტებთან დაკავშირების აკრძალვა</translation>
 <translation id="7479221278376295180">გამოყენებული მეხსიერების მიმოხილვა</translation>
+<translation id="747981547666531654">დაკავშირებულია Bluetooth მოწყობილობებთან, სახელად <ph name="FIRST_DEVICE" /> და <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">გადამისამართება</translation>
 <translation id="7481358317100446445">მზად არის</translation>
 <translation id="748138892655239008">სერტიფიკატის ძირითადი შეზღუდვები</translation>
@@ -6048,6 +6054,7 @@
 <translation id="7531771599742723865">მოწყობილობა გამოიყენება</translation>
 <translation id="7531779363494549572">გადადით აქ: პარამეტრები &gt; აპები და შეტყობინებები &gt; შეტყობინებები.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> არ რეაგირებს. მის დასახურად აირჩიეთ „იძულებით დახურვა“.</translation>
+<translation id="7535730537657706072">თქვენი მოწყობილობიდან ინკოგნიტო რეჟიმში დათვალიერების ისტორია რომ წაშალოთ, დახურეთ ყველა ინკოგნიტო ჩანართი</translation>
 <translation id="7535791657097741517">ღია თემის გააქტიურება</translation>
 <translation id="7537451260744431038">საიტები ვერ გამოიყენებს ქუქი-ჩანაწერებს დათვალიერების პროცესის გასაუმჯობესებლად, მაგალითად, სისტემაში შესული მდგომარეობის შესანარჩუნებლად ან საყიდლების კალათაში დამატებული ერთეულების დასამახსოვრებლად</translation>
 <translation id="753769905878158714">მისამართთა ზოლში შეიყვანეთ საკვანძო სიტყვა ვებსაიტისთვის, რომლის მოძიებაც ქსუთ. შემდეგ, გასაგრძელებლად, გამოიყენეთ კლავიატურის მალსახმობი.</translation>
@@ -6663,6 +6670,7 @@
 <translation id="8138217203226449454">ძიების პროვაიდერის შეცვლა გსურდათ?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" />-ის სტატუსი</translation>
 <translation id="8139447493436036221">Google Drive ფაილები</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">ახლა მიმდინარეობს ალტერნატიულ ბრაუზერში გახსნა</translation>
 <translation id="8141725884565838206">მართეთ თქვენი პაროლები</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{ვიდეო}other{# ვიდეო}}</translation>
@@ -6752,7 +6760,6 @@
 <translation id="8235418492073272647">გვერდი გაზიარდა <ph name="DEVICE_NAME" />-დან</translation>
 <translation id="8236911020904880539">გასვლა</translation>
 <translation id="8236917170563564587">სანაცვლოდ, ამ ჩანართის გაზიარება</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> გაიხსნება ბრაუზერის ახალ ჩანართში, ამ ბრაუზერში ასევე გაიხსნება სხვა მხარდაჭერილი ბმულები.</translation>
 <translation id="8237647586961940482">მუქი ვარდისფერი და წითელი</translation>
 <translation id="8239032431519548577">ორგანიზაციაში რეგისტრაცია დასრულდა</translation>
 <translation id="8239932336306009582">შეტყობინებების გამოგზავნა დაუშვებელია</translation>
@@ -7378,6 +7385,7 @@
 <translation id="8909782404367982052">ჩავლებით გადატანა სურათების Google Lens-ის მეშვეობით ძიებისთვის</translation>
 <translation id="8909833622202089127">საიტი თვალს ადევნებს თქვენს მდებარეობას</translation>
 <translation id="8910222113987937043">თქვენი სანიშნეების, ისტორიის, პაროლებისა და სხვა პარამეტრების ცვლილებების სინქრონიზაცია თქვენს Google ანგარიშთან აღარ მოხდება. თუმცა არსებული მონაცემები კვლავ შეინახება თქვენს Google ანგარიშში და მათ მართვას <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />-იდან შეძლებთ.</translation>
+<translation id="8910987510378294980">მოწყობილობების სიის დამალვა</translation>
 <translation id="8912362522468806198">Google ანგარიში</translation>
 <translation id="8912793549644936705">გაწელვა</translation>
 <translation id="8912810933860534797">ავტომატური სკანირების ჩართვა</translation>
@@ -7495,6 +7503,7 @@
 <translation id="9033765790910064284">მაინც გაგრძელება</translation>
 <translation id="9033857511263905942">ჩ&amp;ასმა</translation>
 <translation id="903480517321259405">ხელახლა აკრიფეთ PIN-კოდი</translation>
+<translation id="9037054491984310631">დაკავშირებულია Bluetooth მოწყობილობასთან, სახელად <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">მოწყობილობა აკრძალულია</translation>
 <translation id="9037818663270399707">თქვენი კავშირი არ არის კონფიდენციალური ქსელის მთელი ტრაფიკისთვის</translation>
 <translation id="9037965129289936994">ორიგინალის ჩვენება</translation>
@@ -7575,6 +7584,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> შეიძლება სახიფათო იყოს. გსურთ, სკანირებისთვის Google-ს გაუგზავნოთ?</translation>
 <translation id="9112987648460918699">ძებნა…</translation>
 <translation id="9113240369465613386">მხოლოდ კენტი გვერდები</translation>
+<translation id="9113469270512809735">ახლახან დახურული ერთეულების გადართვა</translation>
 <translation id="9114663181201435112">შედით სისტემაში მარტივად</translation>
 <translation id="9115675100829699941">&amp;სანიშნეები</translation>
 <translation id="9116465289595958864">ბოლო ცვლილება</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index c0e7327c..013f71a 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -6756,7 +6756,6 @@
 <translation id="8235418492073272647">Бұл бетті <ph name="DEVICE_NAME" /> бөлісті.</translation>
 <translation id="8236911020904880539">шығу</translation>
 <translation id="8236917170563564587">Орнына осы қойындыны бөлісу</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> жаңа браузер қойындысында ашылуға орнатылған, қолдау көрсету сілтемелері де браузерде ашылады.</translation>
 <translation id="8237647586961940482">Қою қызғылт және қызыл</translation>
 <translation id="8239032431519548577">Кәсіпорын тіркелді</translation>
 <translation id="8239932336306009582">Хабарландыру жіберуге рұқсат жоқ</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index dc825ba3..4524821 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">កំហុសឆ្គង</translation>
 <translation id="1166212789817575481">បិទផ្ទាំងទៅខាងស្តាំ</translation>
 <translation id="1166583374608765787">ពិនិត្យមើល​ការប្ដូរឈ្មោះ</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> ជារបស់តុ <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">កំពុងបើកនៅក្នុង <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">សួរនៅពេល​គេហទំព័រចង់ប្រើពុម្ព​អក្សរ​ ដែលបានដំឡើងនៅលើឧបករណ៍របស់អ្នក</translation>
 <translation id="1171135284592304528">ហាយឡាយ៍របស់អ្វីមួយដោយប្រើការផ្តោតក្តារចុចនៅពេលវាផ្លាស់ប្តូរ</translation>
@@ -620,6 +621,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> មិនទាន់ដំណើរការ​នៅក្នុង​កម្មវិធី Linux នៅឡើយទេ</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 ជាមួយនឹងការអ៊ីនគ្រីប RSA</translation>
 <translation id="1641113438599504367">ការរុករកសុវត្ថិភាព</translation>
+<translation id="1642492862748815878">បានភ្ជាប់​ជាមួយ <ph name="DEVICE" /> និង​ឧបករណ៍​ប៊្លូធូស <ph name="NUMBER_OF_DEVICES" /> ទៀត</translation>
 <translation id="1642494467033190216">តម្រូវឲ្យមានការយកចេញការការពារ rootfs និងការចាប់ផ្តើមឡើងវិញ មុនពេលបើកដំណើរការលក្ខណៈពិសេសកម្ចាត់កំហុសផ្សេងទៀត។</translation>
 <translation id="1643072738649235303">ហត្ថលេខា X9.62 ECDSA ជាមួយ SHA-1</translation>
 <translation id="1643921258693943800">ដើម្បីប្រើការ​ចែករំលែកនៅ​ជិត សូមបើកប៊្លូធូស និង Wi-Fi</translation>
@@ -1835,6 +1837,7 @@
 <translation id="2885378588091291677">កម្មវិធីគ្រប់គ្រងភារកិច្ច</translation>
 <translation id="2885729872133513017">មាន​បញ្ហា​កើតឡើង​ នៅពេល​ឌិកូដ​ការឆ្លើយតប​របស់ម៉ាស៊ីនមេ។</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> និង <ph name="NUMBER_OF_DEVICES" /> ទៀត</translation>
 <translation id="2889064240420137087">បើកតំណជាមួយ...</translation>
 <translation id="2891922230654533301">ប្រើ​ឧបករណ៍​របស់អ្នក ដើម្បីចូល <ph name="APP_NAME" /> ឬ?</translation>
 <translation id="2893168226686371498">កម្មវិធីរុករកលំនាំដើម</translation>
@@ -2769,6 +2772,7 @@
 <translation id="3884152383786131369">ខ្លឹមសារបណ្ដាញ​ដែលមានជាច្រើន​ភាសា នឹងប្រើភាសាដែល​អាចប្រើបាន​ទីមួយនៅក្នុង​បញ្ជីនេះ។ ចំណូលចិត្តទាំងនេះ​ត្រូវបានធ្វើសមកាលកម្ម​ជាមួយការកំណត់​កម្មវិធីរុករកតាមអ៊ីនធឺណិត​របស់អ្នក។ <ph name="BEGIN_LINK_LEARN_MORE" />ស្វែងយល់បន្ថែម<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">កំណែថ្មីៗ​ស្ថិតក្រោម​ការគ្រប់គ្រង​របស់អ្នកគ្រប់គ្រង​អ្នក</translation>
 <translation id="3886446263141354045">សំណើរបស់អ្នកដើម្បីចូលទៅកាន់ទំព័រនេះត្រូវបានផ្ញើទៅ <ph name="NAME" /></translation>
+<translation id="3887022758415973389">បង្ហាញ​បញ្ជី​ឧបករណ៍</translation>
 <translation id="3888053818972567950">ការតភ្ជាប់ <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">កត់ត្រាចំណាំដោយប្រើ <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">ព័ត៌មាននេះ​ជួយឱ្យយើងយល់ពី​បញ្ហា​របស់ជំនួយការអ្នក​បានប្រសើរជាងមុន។ ព័ត៌មាននេះ​ត្រូវបានរក្សាទុក​រហូតដល់ 90 ថ្ងៃ ហើយមានតែ​ក្រុមការងារ​ផ្នែកវិស្វកម្ម និង​ផ្នែកមតិកែលម្អ​ដែលសមស្របប៉ុណ្ណោះ​ទើបអាចចូលប្រើបាន។</translation>
@@ -3480,6 +3484,7 @@
 <translation id="4662373422909645029">ឈ្មោះហៅក្រៅមិនអាចមានលេខបានទេ</translation>
 <translation id="4662788913887017617">ចែករំលែក​ចំណាំនេះ​ជាមួយ iPhone របស់​អ្នក</translation>
 <translation id="4663373278480897665">បាន​អនុញ្ញាត​ឱ្យប្រើ​កាមេរ៉ា</translation>
+<translation id="4664289193573249666">គ្រប់គ្រង DNS សុវត្ថិភាព​នៅក្នុង​ការកំណត់ Chrome OS</translation>
 <translation id="4664482161435122549">កំហុសឆ្គងការនាំចេញ PKCS #12</translation>
 <translation id="4665014895760275686">ក្រុមហ៊ុនផលិត</translation>
 <translation id="4665446389743427678">ទិន្នន័យ​ទាំងអស់​ដែលបាន​រក្សាទុក​ដោយ <ph name="SITE" /> នឹង​ត្រូវបានលុប។</translation>
@@ -6013,6 +6018,7 @@
 <translation id="7478623944308207463">ការកំណត់ និងកម្មវិធី​របស់អ្នក​នឹងធ្វើសមកាលកម្ម​នៅលើ​ឧបករណ៍ Chrome OS ទាំងអស់ ដែលអ្នកចូល​ដោយប្រើ​គណនី Google របស់អ្នក។ សូម​ចូលទៅកាន់<ph name="LINK_BEGIN" />ការកំណត់ Chrome<ph name="LINK_END" /> សម្រាប់ជម្រើស​សមកាលកម្ម​កម្មវិធីរុករកតាមអ៊ីនធឺណិត។</translation>
 <translation id="7478658909253570368">កុំអនុញ្ញាតឱ្យ​គេហទំព័រ​ភ្ជាប់ជាមួយ​រន្ធស៊េរី</translation>
 <translation id="7479221278376295180">ទិដ្ឋភាពរួម​នៃការប្រើប្រាស់​ទំហំផ្ទុក</translation>
+<translation id="747981547666531654">បានភ្ជាប់ជាមួយ​ឧបករណ៍​ប៊្លូធូស​ដែលមាន​ឈ្មោះថា <ph name="FIRST_DEVICE" /> និង <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">ទៅមុខ</translation>
 <translation id="7481358317100446445">អាចប្រើ​បានហើយ</translation>
 <translation id="748138892655239008">ឧបសគ្គមូលដ្ឋានវិញ្ញាបនប័ត្រ</translation>
@@ -6065,6 +6071,7 @@
 <translation id="7531771599742723865">កំពុងប្រើប្រាស់ឧបករណ៍</translation>
 <translation id="7531779363494549572">ចូល​ទៅ​កាន់​ការកំណត់ &gt; កម្មវិធី និង​ការ​ជូន​ដំណឹង &gt; ការ​ជូន​ដំណឹង។</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> មិន​ដំណើរការ​ទេ។ សូមជ្រើសរើស "បង្ខំឱ្យបិទ" ដើម្បីបិទ​កម្មវិធី។</translation>
+<translation id="7535730537657706072">ដើម្បី​សម្អាតប្រវត្តិ​រុករក​តាមអ៊ីនធឺណិត​នៃមុខងារឯកជន​ចេញពី​ឧបករណ៍​របស់អ្នក សូមបិទ​ផ្ទាំងឯកជនទាំងអស់</translation>
 <translation id="7535791657097741517">បើក​រចនាប័ទ្ម​ភ្លឺ</translation>
 <translation id="7537451260744431038">គេហទំព័រ​មិនអាច​ប្រើ​ខូគី ដើម្បី​កែលម្អ​បទពិសោធន៍​រុករក​របស់អ្នក ឧទាហរណ៍ ដើម្បីឱ្យអ្នក​បន្តចូលគណនី ឬ​ចងចាំ​ទំនិញ​នៅក្នុង​រទេះ​ទិញទំនិញ​របស់អ្នក​បានទេ</translation>
 <translation id="753769905878158714">សូមបញ្ចូលពាក្យ​គន្លឹះសម្រាប់គេហទំព័រដែលអ្នកចង់ស្វែងរក នៅក្នុងរបារអាសយដ្ឋាន។ បន្ទាប់មក ប្រើផ្លូវកាត់​ក្ដារ​ចុចណាមួយ ដើម្បីបន្ត។</translation>
@@ -6681,6 +6688,7 @@
 <translation id="8138217203226449454">តើអ្នក​ពិតជាចង់​ប្ដូរ​ក្រុមហ៊ុនផ្ដល់សេវា​ស្វែងរក​របស់អ្នក​មែនឬ?</translation>
 <translation id="8138997515734480534">ស្ថានភាព <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">ឯកសារ Google ថាស</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">កំពុងបើក​នៅក្នុង​កម្មវិធីរុករកតាម​អ៊ីនធឺណិត​ផ្សេង​ឥឡូវនេះ</translation>
 <translation id="8141725884565838206">គ្រប់គ្រងពាក្យសម្ងាត់របស់អ្នក</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{វីដេអូ​មួយ}other{វីដេអូ #}}</translation>
@@ -6770,7 +6778,6 @@
 <translation id="8235418492073272647">ទំព័រដែលបានចែករំលែកពី <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">ចាកចេញ</translation>
 <translation id="8236917170563564587">ចែករំលែក​ផ្ទាំងនេះ​ជំនួសវិញ</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ត្រូវបានកំណត់ឱ្យបើកនៅក្នុងផ្ទាំង​កម្មវិធីរុករកតាមអ៊ីនធឺណិតថ្មី តំណជំនួយក៏នឹងបើកនៅក្នុងកម្មវិធីរុករកតាមអ៊ីនធឺណិតផងដែរ។</translation>
 <translation id="8237647586961940482">ផ្កាឈូកចាស់ និងក្រហម</translation>
 <translation id="8239032431519548577">ការចុះឈ្មោះ​សហគ្រាស​បានបញ្ចប់</translation>
 <translation id="8239932336306009582">មិនអនុញ្ញាតឱ្យផ្ញើការជូនដំណឹងទេ</translation>
@@ -7396,6 +7403,7 @@
 <translation id="8909782404367982052">អូសដើម្បី​ស្វែងរក​រូបភាព​ដោយប្រើ Google Lens</translation>
 <translation id="8909833622202089127">ទំព័រ​កំពុងតាមដាន​ទីតាំង​របស់អ្នក</translation>
 <translation id="8910222113987937043">ការផ្លាស់ប្តូរនៅលើចំណាំ ប្រវត្តិ ពាក្យសម្ងាត់ និងការកំណត់ផ្សេងទៀតរបស់អ្នក នឹងមិនអាចធ្វើសមកាលកម្មទៅគណនី Google របស់អ្នកបានទៀតទេ។ ទោះបីជាយ៉ាងណាក៏ដោយ ទិន្នន័យដែលមានស្រាប់របស់អ្នកនៅតែផ្ទុកក្នុងគណនី Google ដដែល ហើយអ្នកអាចគ្រប់គ្រងវានៅលើ <ph name="BEGIN_LINK" />Google ផ្ទាំងគ្រប់គ្រង<ph name="END_LINK" />។</translation>
+<translation id="8910987510378294980">លាក់បញ្ជី​ឧបករណ៍</translation>
 <translation id="8912362522468806198">គណនី Google</translation>
 <translation id="8912793549644936705">លាតសន្ធឹង</translation>
 <translation id="8912810933860534797">បើក​ការស្កេនស្វ័យប្រវត្តិ</translation>
@@ -7513,6 +7521,7 @@
 <translation id="9033765790910064284">មិនអីទេ បន្តចុះ</translation>
 <translation id="9033857511263905942">បិទភ្ជាប់</translation>
 <translation id="903480517321259405">វាយបញ្ចូលកូដ PIN ម្ដងទៀត</translation>
+<translation id="9037054491984310631">បានភ្ជាប់ជាមួយ​ឧបករណ៍​ប៊្លូធូស​ដែលមាន​ឈ្មោះថា <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">មិនអនុញ្ញាតឧបករណ៍ទេ</translation>
 <translation id="9037818663270399707">ការតភ្ជាប់​របស់អ្នក​មិនមានលក្ខណៈ​ឯកជន​សម្រាប់​ចរាចរណ៍បណ្ដាញ​ទាំងអស់​ទេ</translation>
 <translation id="9037965129289936994">បង្ហាញប្រភពដើម</translation>
@@ -7592,6 +7601,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> អាច​បង្ក​គ្រោះថ្នាក់​។ បញ្ជូនទៅ Google សម្រាប់ស្កេន​ដែរទេ?</translation>
 <translation id="9112987648460918699">ស្វែងរក...</translation>
 <translation id="9113240369465613386">ទំព័រដែលមានលេខសេសតែប៉ុណ្ណោះ</translation>
+<translation id="9113469270512809735">បិទ/បើកធាតុ​ដែលបានបិទថ្មីៗ</translation>
 <translation id="9114663181201435112">ចូលគណនីបានយ៉ាងងាយស្រួល</translation>
 <translation id="9115675100829699941">ចំណាំ</translation>
 <translation id="9116465289595958864">បានកែសម្រួលចុងក្រោយ</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index bf8e548..1eb4dc4 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -6761,7 +6761,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> ನಿಂದ ಪುಟವನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ</translation>
 <translation id="8236911020904880539">ನಿರ್ಗಮಿಸಿ</translation>
 <translation id="8236917170563564587">ಬದಲಾಗಿ ಈ ಟ್ಯಾಬ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ಅನ್ನು ಹೊಸ ಬ್ರೌಸರ್ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯಲು ಹೊಂದಿಸಲಾಗಿದೆ. ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಬೆಂಬಲಿತ ಲಿಂಕ್‌ಗಳು ಸಹ ತೆರೆಯುತ್ತವೆ.</translation>
 <translation id="8237647586961940482">ಗಾಢ ಗುಲಾಬಿ ಮತ್ತು ಕೆಂಪು</translation>
 <translation id="8239032431519548577">ಎಂಟರ್‌ಪ್ರೈಸ್ ನೋಂದಣಿ ಪೂರ್ಣಗೊಂಡಿದೆ</translation>
 <translation id="8239932336306009582">ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 2f63abb..a13e738f 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">오류</translation>
 <translation id="1166212789817575481">오른쪽 탭 닫기</translation>
 <translation id="1166583374608765787">이름 업데이트 검토</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> 탭이 <ph name="DESK_TITLE" /> 데스크로 이동했습니다</translation>
 <translation id="1168020859489941584"><ph name="TIME_REMAINING" /> 후에 파일이 열립니다...</translation>
 <translation id="1170288591054440704">사이트에서 기기에 설치된 글꼴을 사용하려고 할 때 확인</translation>
 <translation id="1171135284592304528">키보드 포커스가 이동할 때 키보드 포커스가 있는 객체를 강조표시합니다.</translation>
@@ -620,6 +621,7 @@
 <translation id="1640235262200048077">Linux 앱에서는 아직 <ph name="IME_NAME" />이(가) 지원되지 않습니다.</translation>
 <translation id="1640283014264083726">PKCS #1 MD4(RSA 암호화 사용)</translation>
 <translation id="1641113438599504367">세이프 브라우징</translation>
+<translation id="1642492862748815878"><ph name="DEVICE" /> 외 <ph name="NUMBER_OF_DEVICES" />개 블루투스 기기에 연결되었습니다</translation>
 <translation id="1642494467033190216">rootfs 보호를 삭제하고 다시 시작해야 다른 디버깅 기능을 사용 설정할 수 있습니다.</translation>
 <translation id="1643072738649235303">SHA-1을 포함한 X9.62 ECDSA 서명</translation>
 <translation id="1643921258693943800">Nearby Share를 사용하려면 Bluetooth 및 Wi-Fi를 사용 설정하세요</translation>
@@ -1835,6 +1837,7 @@
 <translation id="2885378588091291677">작업 관리자</translation>
 <translation id="2885729872133513017">서버 응답을 디코딩하는 동안 문제가 발생했습니다.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> 외 <ph name="NUMBER_OF_DEVICES" />개</translation>
 <translation id="2889064240420137087">다음으로 링크 열기...</translation>
 <translation id="2891922230654533301">기기를 사용하여 <ph name="APP_NAME" />에 로그인하시겠습니까?</translation>
 <translation id="2893168226686371498">기본 브라우저</translation>
@@ -2769,6 +2772,7 @@
 <translation id="3884152383786131369">여러 언어를 지원하는 웹 콘텐츠는 목록의 첫 번째 지원 언어를 사용합니다. 이러한 환경설정은 브라우저 설정과 동기화됩니다. <ph name="BEGIN_LINK_LEARN_MORE" />자세히 알아보기<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">업데이트는 관리자가 관리합니다</translation>
 <translation id="3886446263141354045">사용자의 사이트 액세스 요청이 <ph name="NAME" />님에게 전송되었습니다.</translation>
+<translation id="3887022758415973389">기기 목록 표시</translation>
 <translation id="3888053818972567950"><ph name="WEB_DRIVE" /> 연결</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" />(으)로 메모 작성</translation>
 <translation id="3888586133700543064">어시스턴트에서 발생하는 문제를 파악하는 데 도움이 되는 정보입니다. 정보는 최대 90일 동안 저장되며, 관련 엔지니어링팀과 의견팀에서만 액세스할 수 있습니다.</translation>
@@ -3477,6 +3481,7 @@
 <translation id="4662373422909645029">닉네임에 숫자를 포함할 수 없음</translation>
 <translation id="4662788913887017617">이 북마크를 내 iPhone과 공유</translation>
 <translation id="4663373278480897665">카메라 허용됨</translation>
+<translation id="4664289193573249666">Chrome OS 설정에서 보안 DNS 관리</translation>
 <translation id="4664482161435122549">PKCS #12 내보내기 오류</translation>
 <translation id="4665014895760275686">제조업체</translation>
 <translation id="4665446389743427678"><ph name="SITE" />에서 저장한 모든 데이터가 삭제됩니다.</translation>
@@ -6009,6 +6014,7 @@
 <translation id="7478623944308207463">앱 및 설정은 Google 계정으로 로그인한 모든 Chrome OS 기기와 동기화됩니다. 브라우저 동기화 옵션을 보려면 <ph name="LINK_BEGIN" />Chrome 설정<ph name="LINK_END" />으로 이동하세요.</translation>
 <translation id="7478658909253570368">사이트에서 직렬 포트에 연결하도록 허용하지 않음</translation>
 <translation id="7479221278376295180">저장용량 사용량 개요</translation>
+<translation id="747981547666531654"><ph name="FIRST_DEVICE" /> 및 <ph name="SECOND_DEVICE" /> 블루투스 기기에 연결되었습니다</translation>
 <translation id="7481312909269577407">앞으로</translation>
 <translation id="7481358317100446445">준비</translation>
 <translation id="748138892655239008">인증서 기본 제약조건</translation>
@@ -6061,6 +6067,7 @@
 <translation id="7531771599742723865">기기 사용 중</translation>
 <translation id="7531779363494549572">설정 &gt; 앱 및 알림 &gt; 알림으로 이동합니다.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> 앱이 응답하지 않습니다. '강제 종료'를 선택하여 앱을 닫으세요.</translation>
+<translation id="7535730537657706072">기기에서 시크릿 모드 방문 기록을 삭제하려면 모든 시크릿 탭을 닫으세요.</translation>
 <translation id="7535791657097741517">밝은 테마 사용 설정</translation>
 <translation id="7537451260744431038">사이트에서 사용자의 로그인 상태를 유지하거나 장바구니에 담긴 상품을 기억하는 등 탐색 환경을 개선하기 위해 쿠키를 사용할 수 없습니다.</translation>
 <translation id="753769905878158714">검색하려는 웹사이트에 관한 검색어를 주소 표시줄에 입력하세요. 그런 다음 단축키를 사용해 계속합니다.</translation>
@@ -6678,6 +6685,7 @@
 <translation id="8138217203226449454">검색 제공업체를 변경하려고 하셨나요?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> 상태</translation>
 <translation id="8139447493436036221">Google Drive 파일</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">지금 대체 브라우저에서 열립니다.</translation>
 <translation id="8141725884565838206">비밀번호 관리</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{동영상 1개}other{동영상 #개}}</translation>
@@ -6767,7 +6775,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" />에서 공유한 페이지</translation>
 <translation id="8236911020904880539">종료</translation>
 <translation id="8236917170563564587">이 탭을 대신 공유</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> 앱이 새 브라우저 탭에서 열리도록 설정되어 있습니다. 지원되는 링크도 브라우저에서 열립니다</translation>
 <translation id="8237647586961940482">진한 분홍색 및 빨간색</translation>
 <translation id="8239032431519548577">기업 등록 완료</translation>
 <translation id="8239932336306009582">알림 전송이 허용되지 않음</translation>
@@ -7393,6 +7400,7 @@
 <translation id="8909782404367982052">드래그하여 Google 렌즈로 이미지 검색</translation>
 <translation id="8909833622202089127">사이트에서 내 위치를 추적하고 있습니다.</translation>
 <translation id="8910222113987937043">북마크, 방문 기록, 비밀번호 및 기타 설정을 변경하면 더 이상 Google 계정에 동기화되지 않습니다. 하지만 기존 데이터는 Google 계정에 계속 저장되며 <ph name="BEGIN_LINK" />Google 대시보드<ph name="END_LINK" />에서 관리할 수 있습니다.</translation>
+<translation id="8910987510378294980">기기 목록 숨기기</translation>
 <translation id="8912362522468806198">Google 계정</translation>
 <translation id="8912793549644936705">늘이기</translation>
 <translation id="8912810933860534797">자동 스캔 사용</translation>
@@ -7510,6 +7518,7 @@
 <translation id="9033765790910064284">무시하고 계속</translation>
 <translation id="9033857511263905942">붙여넣기(&amp;P)</translation>
 <translation id="903480517321259405">PIN 다시 입력</translation>
+<translation id="9037054491984310631"><ph name="DEVICE" /> 블루투스 기기에 연결되었습니다</translation>
 <translation id="9037640663275993951">허용되지 않는 기기입니다.</translation>
 <translation id="9037818663270399707">연결이 일부 네트워크 트래픽에 비공개로 설정되어 있지 않습니다.</translation>
 <translation id="9037965129289936994">원본 보기</translation>
@@ -7590,6 +7599,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> 파일은 위험할 수 있습니다. 검사를 위해 Google에 전송하시겠습니까?</translation>
 <translation id="9112987648460918699">찾기...</translation>
 <translation id="9113240369465613386">홀수 페이지만</translation>
+<translation id="9113469270512809735">최근에 닫은 항목 전환</translation>
 <translation id="9114663181201435112">간편한 로그인</translation>
 <translation id="9115675100829699941">북마크(&amp;B)</translation>
 <translation id="9116465289595958864">최종 수정 날짜</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index 8a1d4abc..70883aef 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -6777,7 +6777,6 @@
 <translation id="8235418492073272647">Барак <ph name="DEVICE_NAME" /> түзмөгүнөн бөлүшүлдү</translation>
 <translation id="8236911020904880539">чыгуу</translation>
 <translation id="8236917170563564587">Анын ордуна бул өтмөктү бөлүшүңүз</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> серепчинин жаңы өтмөгүндө ачылат. Колдоого алынган шилтемелер да серепчиде ачылат.</translation>
 <translation id="8237647586961940482">Күңүрт кызгылтым жана кызыл</translation>
 <translation id="8239032431519548577">Ишкананы каттоо аягына чыкты</translation>
 <translation id="8239932336306009582">Билдирмелерди жөнөтө албай калат</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index a93b07c4..c3ee0898 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">ຜິດພາດ</translation>
 <translation id="1166212789817575481">ປິດແຖບໄປທາງຂວາ</translation>
 <translation id="1166583374608765787">ກວດສອບການອັບເດດຊື່</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> ເປັນຂອງໂຕະ <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">ກໍາລັງເປີດຢູ່ໃນ <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">ຖາມເມື່ອເວັບໄຊຕ້ອງການໃຊ້ຟອນທີ່ຕິດຕັ້ງໃນອຸປະກອນຂອງທ່ານ</translation>
 <translation id="1171135284592304528">ໝາຍວັດຖຸດ້ວຍໂຟກັສແປ້ນພິມເມື່ອວັດຖຸນັ້ນປ່ຽນແປງ</translation>
@@ -618,6 +619,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> ໃຊ້ບໍ່ໄດ້ໃນແອັບ Linux ເທື່ອ</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 ດ້ວຍການໃສ່ລະຫັດ RSA</translation>
 <translation id="1641113438599504367">Safe Browsing</translation>
+<translation id="1642492862748815878">ເຊື່ອມຕໍ່ຫາ <ph name="DEVICE" /> ແລະ ອີກ <ph name="NUMBER_OF_DEVICES" /> ອຸປະກອນ Bluetooth ແລ້ວ</translation>
 <translation id="1642494467033190216">ການ​ເອົາ​ການ​ປົກ​ປ້ອງ rootfs ອອກ ແລະ​ຈຳ​ເປັນ​ຕ້ອງ​ມີ​ການ​ປິດ​ເປີດ​ໃໝ່ ກ່ອນ​ເປີດ​ໃຊ້​ງານ​ຄຸນສົມບັດ​ການ​ແກ້​ໄຂ​ບັນ​ຫາ​ອື່ນ.</translation>
 <translation id="1643072738649235303">ລາຍເຊັນ X9.62 ECDSA ພ້ອມກັບ SHA-1</translation>
 <translation id="1643921258693943800">ເພື່ອໃຊ້ການແບ່ງປັນໃກ້ຄຽງ, ກະລຸນາເປີດ Bluetooth ແລະ Wi-Fi</translation>
@@ -1832,6 +1834,7 @@
 <translation id="2885378588091291677">ຕົວຈັດການໜ້າວຽກ</translation>
 <translation id="2885729872133513017">ເກີດບັນຫາຂຶ້ນໃນເວລາຖອດລະຫັດຄຳຕອບຂອງເຊີບເວີ.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> ແລະ ອີກ <ph name="NUMBER_OF_DEVICES" /> ອຸປະກອນອື່ນໆ</translation>
 <translation id="2889064240420137087">ເປີດລິ້ງກັບ...</translation>
 <translation id="2891922230654533301">ໃຊ້ອຸປະກອນຂອງທ່ານເພື່ອເຂົ້າສູ່ລະບົບ <ph name="APP_NAME" /> ບໍ?</translation>
 <translation id="2893168226686371498">ບຣາວ​ເຊີມາດຕະຖານ</translation>
@@ -2766,6 +2769,7 @@
 <translation id="3884152383786131369">ເນື້ອຫາເວັບທີ່ມີໃຫ້ເປັນຫຼາຍພາສາຈະໃຊ້ພາສາທີ່ຮອງຮັບທຳອິດຈາກລາຍຊື່ນີ້. ການຕັ້ງຄ່າເຫຼົ່ານີ້ຊິ້ງຂໍ້ມູນກັບການຕັ້ງຄ່າໂປຣແກຣມທ່ອງເວັບຂອງທ່ານ. <ph name="BEGIN_LINK_LEARN_MORE" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">ການອັບເດດແມ່ນຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ</translation>
 <translation id="3886446263141354045">ຄຳຂໍເຂົ້າຫາເວັບໄຊນີ້ຂອງທ່ານໄດ້ຖືກສົ່ງຫາ <ph name="NAME" /> ແລ້ວ</translation>
+<translation id="3887022758415973389">ສະແດງລາຍຊື່ອຸປະກອນ</translation>
 <translation id="3888053818972567950">ການເຊື່ອມຕໍ່ <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">ກຳລັງຈົດບັນທຶກດ້ວຍ <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">ຂໍ້ມູນນີ້ຊ່ວຍພວກເຮົາເຂົ້າໃຈບັນຫາຂອງຜູ້ຊ່ວຍຂອງທ່ານໄດ້ດີຂຶ້ນ. ມັນຈະຖືກເກັບໄວ້ບໍ່ເກີນ 90 ມື້ ແລະ ມີແຕ່ທີມວິສະວະກອນ ແລະ ທີມຮັບຄຳຕິຊົມທີ່ເໝາະສົມເທົ່ານັ້ນທີ່ເຂົ້າເຖິງໄດ້.</translation>
@@ -3477,6 +3481,7 @@
 <translation id="4662373422909645029">ຊື່ຫຼິ້ນບໍ່ສາມາດຮວມມີຕົວເລກໄດ້</translation>
 <translation id="4662788913887017617">ແບ່ງປັນບຸກມາກນີ້ກັບ iPhone ຂອງທ່ານ</translation>
 <translation id="4663373278480897665">ອະນຸຍາດກ້ອງຖ່າຍຮູບແລ້ວ</translation>
+<translation id="4664289193573249666">ຈັດການ DNS ທີ່ປອດໄພໃນການຕັ້ງຄ່າ Chrome OS</translation>
 <translation id="4664482161435122549">ການສົ່ງ PKCS #12 ອອກຜິດພາດ</translation>
 <translation id="4665014895760275686">ຜູ້​ຜະ​ລິດ</translation>
 <translation id="4665446389743427678">ຂໍ້ມູນທັງໝົດທີ່ເກັບໄວ້ໂດຍ <ph name="SITE" /> ຈະຖືກລຶບ.</translation>
@@ -6009,6 +6014,7 @@
 <translation id="7478623944308207463">ແອັບ ແລະ ການຕັ້ງຄ່າຂອງທ່ານຈະຊິ້ງຂໍ້ມູນໃນທົ່ວອຸປະກອນ Chrome OS ທີ່ທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານ. ສຳລັບຕົວເລືອກການຊິ້ງຂໍ້ມູນ, ກະລຸນາໄປທີ່ <ph name="LINK_BEGIN" />ການຕັ້ງຄ່າ Chrome<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊຕ່າງໆເຊື່ອມຕໍ່ຫາຜອດຊີຣຽວ</translation>
 <translation id="7479221278376295180">ພາບຮວມການນຳໃຊ້ບ່ອນຈັດເກັບຂໍ້ມູນ</translation>
+<translation id="747981547666531654">ເຊື່ອມຕໍ່ຫາອຸປະກອນ Bluetooth ຊື່ <ph name="FIRST_DEVICE" /> ແລະ <ph name="SECOND_DEVICE" /> ແລ້ວ</translation>
 <translation id="7481312909269577407">ສົ່ງຕໍ່</translation>
 <translation id="7481358317100446445">ພ້ອມແລ້ວ</translation>
 <translation id="748138892655239008">ຂໍ້ຈໍາກັດ​ພື້ນຖານ​ຂອງ​ໃບ​ຢັ້ງຢືນ</translation>
@@ -6061,6 +6067,7 @@
 <translation id="7531771599742723865">ມີການນຳໃຊ້ອຸປະກອນຢູ່</translation>
 <translation id="7531779363494549572">ໄປຫາການຕັ້ງຄ່າ &gt; ແອັບ ແລະ ການແຈ້ງເຕືອນ &gt; ການແຈ້ງເຕືອນ.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> ບໍ່ຕອບສະໜອງ. ເລືອກ "ບັງຄັບປິດ" ເພື່ອປິດແອັບ.</translation>
+<translation id="7535730537657706072">ເພື່ອລຶບລ້າງປະຫວັດການທ່ອງເວັບໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນອອກຈາກອຸປະກອນຂອງທ່ານ, ໃຫ້ປິດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນທັງໝົດ</translation>
 <translation id="7535791657097741517">ເປີດໃຊ້ຮູບແບບສີສັນແຈ້ງ</translation>
 <translation id="7537451260744431038">ເວັບໄຊສາມາດໃຊ້ຄຸກກີ້ເພື່ອປັບປຸງປະສົບການທ່ອງເວັບຂອງທ່ານ, ຕົວຢ່າງ: ເພື່ອໃຫ້ທ່ານສືບຕໍ່ຢູ່ໃນລະບົບ ຫຼື ຈື່ລາຍການຕ່າງໆໃນກະຕ່າຊື້ເຄື່ອງຂອງທ່ານ</translation>
 <translation id="753769905878158714">ໃນ​ແຖບທີ່​ຢູ່, ໃຫ້ລະບຸຄີເວີດສຳລັບເວັບໄຊທີ່ທ່ານຕ້ອງການຊອກຫາ. ຈາກນັ້ນ, ໃຊ້ຄີລັດເພື່ອສືບຕໍ່.</translation>
@@ -6676,6 +6683,7 @@
 <translation id="8138217203226449454">ທ່ານຕັ້ງໃຈຈະປ່ຽນຜູ້ໃຫ້ບໍລິການຊອກຫາຂອງທ່ານບໍ?</translation>
 <translation id="8138997515734480534">ສະຖານະ <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">ໄຟລ໌ Google Drive</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">ກຳລັງເປີດໃນໂປຣແກຣມທ່ອງເວັບສຳຮອງຕອນນີ້</translation>
 <translation id="8141725884565838206">ຈັດການລະ​ຫັດ​ຜ່ານ​ຂອງ​ທ່ານ</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{ວິດີໂອ}other{# ວິດີໂອ}}</translation>
@@ -6765,7 +6773,6 @@
 <translation id="8235418492073272647">ໜ້າທີ່ແບ່ງປັນຈາກ <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">ອອກ</translation>
 <translation id="8236917170563564587">ແບ່ງປັນແຖບນີ້ແທນ</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ຖືກຕັ້ງຄ່າໃຫ້ເປີດໃນແຖບໂປຣແກຣມທ່ອງເວັບໃໝ່, ລິ້ງທີ່ຮອງຮັບຈະເປີດໃນໂປຣແກຣມທ່ອງເວັບເຊັ່ນກັນ.</translation>
 <translation id="8237647586961940482">ສີບົວເຂັ້ມ ແລະ ສີແດງ</translation>
 <translation id="8239032431519548577">ການລົງທະບຽນວິສາຫະກິດສຳເລັດແລ້ວ</translation>
 <translation id="8239932336306009582">ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ສົ່ງການແຈ້ງເຕືອນ</translation>
@@ -7391,6 +7398,7 @@
 <translation id="8909782404367982052">ລາກເພື່ອຊອກຫາຮູບດ້ວຍ Google Lens</translation>
 <translation id="8909833622202089127">ເວັບໄຊກຳລັງຕິດຕາມສະຖານທີ່ຂອງທ່ານ</translation>
 <translation id="8910222113987937043">ການປ່ຽນແປງຕໍ່ກັບບຸກມາກ, ປະຫວັດ, ລະຫັດຜ່ານ ແລະ ການຕັ້ງຄ່າອື່ນຂອງທ່ານຈະບໍ່ຖືກຊິ້ງຂໍ້ມູນກັບບັນຊີ Google ຂອງທ່ານອີກຕໍ່ໄປ. ແນວໃດກໍຕາມ, ຂໍ້ມູນທີ່ມີຢູ່ຂອງທ່ານຈະຍັງຄົງຮັກສາໄວ້ໃນບັນຊີ Google ຂອງທ່ານ ແລະ ສາມາດຖືກຈັດການໄດ້ໃນ <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">ເຊື່ອງລາຍຊື່ອຸປະກອນ</translation>
 <translation id="8912362522468806198">ບັນຊີ Google</translation>
 <translation id="8912793549644936705">ຢືດອອກ</translation>
 <translation id="8912810933860534797">ເປີດນຳໃຊ້ການສະແກນອັດຕະໂນມັດ</translation>
@@ -7508,6 +7516,7 @@
 <translation id="9033765790910064284">ຢືນຢັນດຳເນີນການຕໍ່</translation>
 <translation id="9033857511263905942">ແປະໃສ່</translation>
 <translation id="903480517321259405">ພິມ PIN ອີກເທື່ອໜຶ່ງ</translation>
+<translation id="9037054491984310631">ເຊື່ອມຕໍ່ຫາອຸປະກອນ Bluetooth ຊື່ <ph name="DEVICE" /> ແລ້ວ</translation>
 <translation id="9037640663275993951">ບໍ່ອະນຸຍາດອຸປະກອນ</translation>
 <translation id="9037818663270399707">ການເຊື່ອມຕໍ່ຂອງທ່ານບໍ່ເປັນສ່ວນຕົວສຳລັບການຮັບສົ່ງຂໍ້ມູນໃນເຄືອຂ່າຍທັງໝົດ</translation>
 <translation id="9037965129289936994">ສະແດງຕົ້ນສະບັບ</translation>
@@ -7588,6 +7597,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> ອາດເປັນອັນຕະລາຍ. ສົ່ງໄປໃຫ້ Google ສະແກນບໍ?</translation>
 <translation id="9112987648460918699">ຊອກຫາ...</translation>
 <translation id="9113240369465613386">ໜ້າຄີກເທົ່ານັ້ນ</translation>
+<translation id="9113469270512809735">ສະ​ຫຼັບລາຍການທີ່ປິດຫຼ້າສຸດ</translation>
 <translation id="9114663181201435112">ເຂົ້າສູ່ລະບົບໄດ້ງ່າຍ</translation>
 <translation id="9115675100829699941">ບຸກມາກ</translation>
 <translation id="9116465289595958864">ແກ້ໄຂຫຼ້າສຸດ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index b9efb158..33669a4 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">Klaida</translation>
 <translation id="1166212789817575481">Uždaryti dešinėje esančius skirtukus</translation>
 <translation id="1166583374608765787">Peržiūrėkite atnaujintą pavadinimą</translation>
+<translation id="1166596238782048887">„<ph name="TAB_TITLE" />“ priklauso to darbalaukiui „<ph name="DESK_TITLE" />“</translation>
 <translation id="1168020859489941584">Atidaroma po <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Klausti, kada svetainė nori naudoti jūsų įrenginyje įdiegtus šriftus</translation>
 <translation id="1171135284592304528">Paryškinti objektą jį suaktyvinus klaviatūra, kai jis pasikeičia</translation>
@@ -623,6 +624,7 @@
 <translation id="1640235262200048077">„<ph name="IME_NAME" />“ „Linux“ programose kol kas neveikia</translation>
 <translation id="1640283014264083726">PKCS Nr. 1 MD4 su RSA šifruote</translation>
 <translation id="1641113438599504367">Saugus naršymas</translation>
+<translation id="1642492862748815878">Prisijungta prie „<ph name="DEVICE" />“ ir dar <ph name="NUMBER_OF_DEVICES" /> „Bluetooth“ įreng.</translation>
 <translation id="1642494467033190216">Prieš įgalinant kitas derinimo funkcijas reikia pašalinti „rootfs“ apsaugą ir paleisti įrenginį iš naujo.</translation>
 <translation id="1643072738649235303">X9.62 ECDSA parašas naudojant SHA-1</translation>
 <translation id="1643921258693943800">Jei norite naudoti Bendrinimą netoliese, įjunkite „Bluetooth“ ir „Wi-Fi“</translation>
@@ -1838,6 +1840,7 @@
 <translation id="2885378588091291677">Užduočių tvarkytuvė</translation>
 <translation id="2885729872133513017">Iššifruojant serverio atsaką įvyko klaida.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> ir dar <ph name="NUMBER_OF_DEVICES" /></translation>
 <translation id="2889064240420137087">Atidaryti nuorodą naudojant...</translation>
 <translation id="2891922230654533301">Naudoti jūsų įrenginį prisijungiant prie „<ph name="APP_NAME" />“?</translation>
 <translation id="2893168226686371498">Numatytoji naršyklė</translation>
@@ -2772,6 +2775,7 @@
 <translation id="3884152383786131369">Žiniatinklio turiniui, kuris pasiekiamas keliomis kalbomis, bus naudojama pirma palaikoma kalba iš šio sąrašo. Šios nuostatos sinchronizuojamos su naršyklės nustatymais. <ph name="BEGIN_LINK_LEARN_MORE" />Sužinokite daugiau<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Naujinius tvarko administratorius</translation>
 <translation id="3886446263141354045">Jūsų užklausa pasiekti šią svetainę išsiųsta <ph name="NAME" />.</translation>
+<translation id="3887022758415973389">Rodyti įrenginių sąrašą</translation>
 <translation id="3888053818972567950">„<ph name="WEB_DRIVE" />“ ryšys</translation>
 <translation id="3888550877729210209">Užrašų kūrimas naudojant „<ph name="LOCK_SCREEN_APP_NAME" />“</translation>
 <translation id="3888586133700543064">Ši informacija padeda mums geriau suprasti jums iškilusią Padėjėjo problemą. Ji saugoma iki 90 dienų ir ją gali pasiekti tik atitinkami inžinierių ir atsiliepimų komandų nariai.</translation>
@@ -3483,6 +3487,7 @@
 <translation id="4662373422909645029">Skaičiai slapyvardyje negalimi</translation>
 <translation id="4662788913887017617">Bendrinkite šią žymę su „iPhone“</translation>
 <translation id="4663373278480897665">Fotoaparatas leidžiamas</translation>
+<translation id="4664289193573249666">Tvarkyti saugią DNS „Chrome“ OS nustatymuose</translation>
 <translation id="4664482161435122549">PKCS Nr. 12 eksportavimo klaida</translation>
 <translation id="4665014895760275686">Gamintojas</translation>
 <translation id="4665446389743427678">Visi svetainės <ph name="SITE" /> išsaugoti duomenys bus ištrinti.</translation>
@@ -6016,6 +6021,7 @@
 <translation id="7478623944308207463">Programos ir nustatymai bus sinchronizuojami visuose „Chrome“ OS įrenginiuose, kuriuose esate prisijungę naudodami „Google“ paskyrą. Norėdami pasiekti naršyklės sinchronizavimo parinktis, eikite į <ph name="LINK_BEGIN" />„Chrome“ nustatymų skiltį<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Neleisti svetainėms prisijungti prie nuosekliųjų prievadų</translation>
 <translation id="7479221278376295180">Saugyklos naudojimo apžvalga</translation>
+<translation id="747981547666531654">Prisijungta prie „Bluetooth“ įrenginių pavadinimais „<ph name="FIRST_DEVICE" />“ ir „<ph name="SECOND_DEVICE" />“</translation>
 <translation id="7481312909269577407">Persiųsti</translation>
 <translation id="7481358317100446445">Paruošta</translation>
 <translation id="748138892655239008">Pagrindiniai sertifikato apribojimai</translation>
@@ -6068,6 +6074,7 @@
 <translation id="7531771599742723865">Įrenginys naudojamas</translation>
 <translation id="7531779363494549572">Eikite į skiltį „Nustatymai“ &gt; „Programos ir pranešimai“ &gt; „Pranešimai“.</translation>
 <translation id="7532009420053991888">„<ph name="LINUX_APP_NAME" />“ nereaguoja. Pasirinkite „Priverstinai uždaryti“, kad uždarytumėte programą.</translation>
+<translation id="7535730537657706072">Jei norite išvalyti naršymo inkognito režimu istoriją iš įrenginio, uždarykite visus inkognito skirtukus</translation>
 <translation id="7535791657097741517">Įjungti šviesiąją temą</translation>
 <translation id="7537451260744431038">Svetainės negali naudoti slapukų naršymo kokybei pagerinti, pavyzdžiui, kad liktumėte prisijungę ar būtų įsimintos pirkinių krepšelyje esančios prekės</translation>
 <translation id="753769905878158714">Adreso juostoje įveskite ieškomos svetainės raktinį žodį. Tada paspauskite sparčiuosius klavišus, kad galėtumėte tęsti.</translation>
@@ -6685,6 +6692,7 @@
 <translation id="8138217203226449454">Ar norėjote pakeisti paieškos teikėją?</translation>
 <translation id="8138997515734480534">Virtualaus įrenginio „<ph name="VM_NAME" />“ būsena</translation>
 <translation id="8139447493436036221">„Google“ disko failai</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Atidaroma alternatyvioje naršyklėje</translation>
 <translation id="8141725884565838206">Tvarkykite slaptažodžius</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{vaizdo įrašą}one{# vaizdo įrašą}few{# vaizdo įrašus}many{# vaizdo įrašo}other{# vaizdo įrašų}}</translation>
@@ -6774,7 +6782,6 @@
 <translation id="8235418492073272647">Puslapis bendrinamas iš „<ph name="DEVICE_NAME" />“</translation>
 <translation id="8236911020904880539">išeiti</translation>
 <translation id="8236917170563564587">Geriau bendrinti šį skirtuką</translation>
-<translation id="8237471930911823556">Nustatyta, kad programa „<ph name="APP_NAME" />“ būtų atidaroma naujame naršyklės skirtuke. Palaikomos nuorodos taip pat bus atidaromos naršyklėje.</translation>
 <translation id="8237647586961940482">Tamsiai rožinė ir raudona</translation>
 <translation id="8239032431519548577">Įmonės registracija užbaigta</translation>
 <translation id="8239932336306009582">Neleidžiama siųsti pranešimų</translation>
@@ -7403,6 +7410,7 @@
 <translation id="8909782404367982052">Vaizdų paieška velkant naudojant „Google Lens“</translation>
 <translation id="8909833622202089127">Svetainė stebi jūsų vietą</translation>
 <translation id="8910222113987937043">Žymių, istorijos, slaptažodžių ir kitų nustatymų pakeitimai nebebus sinchronizuojami su „Google“ paskyra. Tačiau esami duomenys toliau bus saugomi „Google“ paskyroje ir juos bus galima tvarkyti <ph name="BEGIN_LINK" />„Google“ informacijos suvestinėje<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Slėpti įrenginių sąrašą</translation>
 <translation id="8912362522468806198">„Google“ paskyra</translation>
 <translation id="8912793549644936705">Ištemptas</translation>
 <translation id="8912810933860534797">Įgalinti automatinį nuskaitymą</translation>
@@ -7520,6 +7528,7 @@
 <translation id="9033765790910064284">Vis tiek tęsti</translation>
 <translation id="9033857511263905942">&amp;Įklijuoti</translation>
 <translation id="903480517321259405">Dar kartą įveskite PIN kodą</translation>
+<translation id="9037054491984310631">Prisijungta prie „Bluetooth“ įrenginio pavadinimu „<ph name="DEVICE" />“</translation>
 <translation id="9037640663275993951">Įrenginys neleidžiamas</translation>
 <translation id="9037818663270399707">Viso jūsų tinklo srauto ryšys nėra privatus</translation>
 <translation id="9037965129289936994">Rodyti originalą</translation>
@@ -7600,6 +7609,7 @@
 <translation id="9112786533191410418">Failas „<ph name="FILE_NAME" />“ gali būti pavojingas. Siųsti „Google“, kad nuskaitytų?</translation>
 <translation id="9112987648460918699">Rasti...</translation>
 <translation id="9113240369465613386">Tik nelyginiai puslapiai</translation>
+<translation id="9113469270512809735">Perjungti į neseniai uždarytus elementus</translation>
 <translation id="9114663181201435112">Lengvai prisijunkite</translation>
 <translation id="9115675100829699941">&amp;Žymės</translation>
 <translation id="9116465289595958864">Paskutinį kartą pakeista</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 4becdfc6..4c5e800 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -159,6 +159,7 @@
 <translation id="1165039591588034296">Kļūda</translation>
 <translation id="1166212789817575481">Aizvērt cilnes pa labi</translation>
 <translation id="1166583374608765787">Pārskatiet nosaukuma izmaiņas</translation>
+<translation id="1166596238782048887">“<ph name="TAB_TITLE" />” ir cilne no darbvietas “<ph name="DESK_TITLE" />”</translation>
 <translation id="1168020859489941584">Atveras <ph name="TIME_REMAINING" /> ...</translation>
 <translation id="1170288591054440704">Vaicāt, ja vietne vēlas izmantot jūsu ierīcē instalētos fontus</translation>
 <translation id="1171135284592304528">Izcelt objektu ar tastatūras fokusu, kad tas tiek mainīts</translation>
@@ -619,6 +620,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> vēl nedarbojas ar Linux lietotnēm.</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 ar RSA šifrējumu</translation>
 <translation id="1641113438599504367">Droša pārlūkošana</translation>
+<translation id="1642492862748815878">Izveidots savienojums ar ierīci “<ph name="DEVICE" />” un vēl <ph name="NUMBER_OF_DEVICES" /> Bluetooth ierīcēm.</translation>
 <translation id="1642494467033190216">Lai varētu iespējot citas atkļūdošanas funkcijas, ir jānoņem rootfs aizsardzība un jāveic restartēšana.</translation>
 <translation id="1643072738649235303">X9.62 ECDSA paraksts ar SHA-1</translation>
 <translation id="1643921258693943800">Lai varētu izmantot funkciju Kopīgošana tuvumā, ieslēdziet Bluetooth un Wi-Fi savienojumu</translation>
@@ -1822,6 +1824,7 @@
 <translation id="2885378588091291677">Uzdevumu pārvaldnieks</translation>
 <translation id="2885729872133513017">Dekodējot servera atbildi, radās problēma.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692">“<ph name="DEVICE" />” un vēl <ph name="NUMBER_OF_DEVICES" /> ierīces</translation>
 <translation id="2889064240420137087">Atvērt saiti ar...</translation>
 <translation id="2891922230654533301">Vai vēlaties izmantot ierīci, lai pierakstītos lietotnē <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Noklusējuma pārlūks</translation>
@@ -2756,6 +2759,7 @@
 <translation id="3884152383786131369">Tīmekļa saturam, kas ir pieejams vairākās valodās, tiks izmantota pirmā atbalstītā valoda no šī saraksta. Šīs preferences tiek sinhronizētas ar jūsu pārlūkprogrammas iestatījumiem. <ph name="BEGIN_LINK_LEARN_MORE" />Uzziniet vairāk<ph name="END_LINK_LEARN_MORE" />.</translation>
 <translation id="3885112598747515383">Atjauninājumus pārvalda jūsu administrators</translation>
 <translation id="3886446263141354045">Pieprasījums piekļūt šai vietnei ir nosūtīts lietotājam <ph name="NAME" /></translation>
+<translation id="3887022758415973389">Rādīt ierīču sarakstu</translation>
 <translation id="3888053818972567950">Saistīšana ar <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">Piezīmju rakstīšana, izmantojot <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Šī informācija palīdz mums labāk izprast jūsu problēmu ar Asistentu. Informācija tiek glabāta ne ilgāk par 90 dienām, un piekļuve ir pieejama tikai attiecīgajām inženieru un atsauksmju komandām.</translation>
@@ -3466,6 +3470,7 @@
 <translation id="4662373422909645029">Segvārdā nedrīkst būt cipari</translation>
 <translation id="4662788913887017617">Kopīgojiet šo grāmatzīmi ar savu iPhone tālruni</translation>
 <translation id="4663373278480897665">Kameras lietošana ir atļauta</translation>
+<translation id="4664289193573249666">Drošas DNS pārvaldība Chrome OS iestatījumos</translation>
 <translation id="4664482161435122549">PKCS #12 eksporta kļūda</translation>
 <translation id="4665014895760275686">Ražotājs</translation>
 <translation id="4665446389743427678">Tiks izdzēsti visi vietnes <ph name="SITE" /> saglabātie dati.</translation>
@@ -5998,6 +6003,7 @@
 <translation id="7478623944308207463">Jūsu lietotnes un iestatījumi tiks sinhronizēti visās Chrome OS ierīcēs, kurās esat pierakstījies, izmantojot savu Google kontu. Lai skatītu pārlūkprogrammas sinhronizācijas opcijas, pārejiet uz <ph name="LINK_BEGIN" />Chrome iestatījumiem<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Neļaut vietnēm veidot savienojumu ar seriālajiem portiem</translation>
 <translation id="7479221278376295180">Krātuves lietojuma kopsavilkums</translation>
+<translation id="747981547666531654">Izveidots savienojums ar Bluetooth ierīcēm “<ph name="FIRST_DEVICE" />” un “<ph name="SECOND_DEVICE" />”.</translation>
 <translation id="7481312909269577407">Pārsūtīt</translation>
 <translation id="7481358317100446445">Gatavs</translation>
 <translation id="748138892655239008">Sertifikāta pamatierobežojumi</translation>
@@ -6050,6 +6056,7 @@
 <translation id="7531771599742723865">Ierīce tiek izmantota</translation>
 <translation id="7531779363494549572">Pārejiet uz sadaļu Iestatījumi &gt; Lietotnes un paziņojumi &gt; Paziņojumi.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> nereaģē. Lai aizvērtu lietotni, atlasiet vienumu “Aizvērt piespiedu kārtā”.</translation>
+<translation id="7535730537657706072">Lai ierīcē notīrītu inkognito režīma pārlūkošanas vēsturi, aizveriet visas inkognito cilnes.</translation>
 <translation id="7535791657097741517">Ieslēgt gaišo motīvu</translation>
 <translation id="7537451260744431038">Vietnes nedrīkst izmantot sīkfailus, lai uzlabotu pārlūkošanas pieredzi, piemēram, lai nodrošinātu ilgstošu pierakstīšanos vai saglabātu iepirkumu grozā ievietotās preces.</translation>
 <translation id="753769905878158714">Adreses joslā ievadiet atslēgvārdu, kas atbilst meklējamai vietnei. Pēc tam turpiniet, izmantojot īsinājumtaustiņus.</translation>
@@ -6666,6 +6673,7 @@
 <translation id="8138217203226449454">Vai vēlaties mainīt meklētājprogrammu?</translation>
 <translation id="8138997515734480534">“<ph name="VM_NAME" />” statuss</translation>
 <translation id="8139447493436036221">Google diska faili</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Notiek atvēršana citā pārlūkprogrammā</translation>
 <translation id="8141725884565838206">Pārvaldīt savas paroles</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{videoklips}zero{# videoklipu}one{# videoklips}other{# videoklipi}}</translation>
@@ -6755,7 +6763,6 @@
 <translation id="8235418492073272647">Kopīgota lapa no ierīces “<ph name="DEVICE_NAME" />”</translation>
 <translation id="8236911020904880539">izietu</translation>
 <translation id="8236917170563564587">Labāk kopīgot šo cilni</translation>
-<translation id="8237471930911823556">Lietotne <ph name="APP_NAME" /> tiks atvērta jaunā pārlūka cilnē, un arī atbalstītās saites tiks atvērtas pārlūkā.</translation>
 <translation id="8237647586961940482">Tumši rozā un sarkana</translation>
 <translation id="8239032431519548577">Uzņēmuma reģistrācija pabeigta</translation>
 <translation id="8239932336306009582">Nedrīkst sūtīt paziņojumus</translation>
@@ -7383,6 +7390,7 @@
 <translation id="8909782404367982052">Vilkšana attēlu meklēšanai ar Google Lens</translation>
 <translation id="8909833622202089127">Vietne izseko jūsu atrašanās vietu.</translation>
 <translation id="8910222113987937043">Jūsu grāmatzīmju, vēstures, paroļu un citu iestatījumu dati vairs netiks sinhronizēti jūsu Google kontā. Tomēr jūsu esošie dati joprojām tiks glabāti jūsu Google kontā un tos var pārvaldīt <ph name="BEGIN_LINK" />Google informācijas panelī<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Paslēpt ierīču sarakstu</translation>
 <translation id="8912362522468806198">Google konts</translation>
 <translation id="8912793549644936705">Izstiept</translation>
 <translation id="8912810933860534797">Iespējot automātisko meklēšanu</translation>
@@ -7500,6 +7508,7 @@
 <translation id="9033765790910064284">Tik un tā turpināt</translation>
 <translation id="9033857511263905942">&amp;Ielīmēt</translation>
 <translation id="903480517321259405">Vēlreiz ievadiet PIN</translation>
+<translation id="9037054491984310631">Izveidots savienojums ar Bluetooth ierīci “<ph name="DEVICE" />”.</translation>
 <translation id="9037640663275993951">Ierīce nav atļauta</translation>
 <translation id="9037818663270399707">Visā tīkla datplūsmā jūsu savienojums nav privāts</translation>
 <translation id="9037965129289936994">Rādīt sākotnējo tekstu</translation>
@@ -7579,6 +7588,7 @@
 <translation id="9112786533191410418">Fails <ph name="FILE_NAME" />, iespējams, ir bīstams. Vai nosūtīt to pārbaudīšanai Google sistēmās?</translation>
 <translation id="9112987648460918699">Atrast...</translation>
 <translation id="9113240369465613386">Tikai nepāra skaitļu lapas</translation>
+<translation id="9113469270512809735">Rādīt/paslēpt nesen aizvērtos vienumus</translation>
 <translation id="9114663181201435112">Vienkārša pierakstīšanās</translation>
 <translation id="9115675100829699941">Grāmatzīmes</translation>
 <translation id="9116465289595958864">Pēdējoreiz pārveidots</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 64dab33e7..28d9a90 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -6770,7 +6770,6 @@
 <translation id="8235418492073272647">Страници споделени од <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">излезете</translation>
 <translation id="8236917170563564587">Наместо тоа, сподели ја картичкава</translation>
-<translation id="8237471930911823556">Апликацијата <ph name="APP_NAME" /> е поставена да се отвора во нова картичка од прелистувачот, а поддржаните линкови исто така ќе се отвораат во прелистувачот.</translation>
 <translation id="8237647586961940482">Темно розова и црвена</translation>
 <translation id="8239032431519548577">Регистрацијата на организацијата е завршена</translation>
 <translation id="8239932336306009582">Не им е дозволено да испраќаат известувања</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 32126bd..c878966 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -6753,7 +6753,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> എന്നതിൽ നിന്ന് പങ്കിട്ട പേജ്</translation>
 <translation id="8236911020904880539">പുറത്തുകടക്കുക</translation>
 <translation id="8236917170563564587">പകരം ഈ ടാബ് പങ്കിടുക</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ഒരു പുതിയ ബ്രൗസർ ടാബിൽ തുറക്കാൻ സജ്ജീകരിച്ചു, പിന്തുണയുള്ള ലിങ്കുകളും ബ്രൗസറിൽ തുറക്കും.</translation>
 <translation id="8237647586961940482">ഇരുണ്ട പിങ്കും ചുവപ്പും</translation>
 <translation id="8239032431519548577">എന്റർപ്രൈസ് എൻറോൾമെൻറ് പൂർത്തിയായി</translation>
 <translation id="8239932336306009582">അറിയിപ്പുകൾ അയയ്ക്കാൻ അനുവാദമില്ല</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 9b92ba25..1b6c0a2 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">Алдаа</translation>
 <translation id="1166212789817575481">Цонхнуудыг баруун тийш нь хаа.</translation>
 <translation id="1166583374608765787">Нэрийн шинэчлэлтийг шалгах</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> нь <ph name="DESK_TITLE" />-н дэлгэцэд харьяалагдана</translation>
 <translation id="1168020859489941584"><ph name="TIME_REMAINING" /> дотор нээж байна ...</translation>
 <translation id="1170288591054440704">Төхөөрөмжид тань суулгасан фонтыг аливаа сайт ашиглахыг хүсэх үед нь асуух</translation>
 <translation id="1171135284592304528">Объектыг өөрчлөгдөх явцад гарын фокусаар тодруулна уу</translation>
@@ -616,6 +617,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> нь Linux апп дээр хараахан ажиллахгүй байна</translation>
 <translation id="1640283014264083726">RSA шифрлэлттэй PKCS # 1 MD4</translation>
 <translation id="1641113438599504367">Аюулгүй хайлт</translation>
+<translation id="1642492862748815878"><ph name="DEVICE" /> болон бусад <ph name="NUMBER_OF_DEVICES" /> Bluetooth төхөөрөмжтэй холбогдсон</translation>
 <translation id="1642494467033190216">Бусад алдаа засах тохируулгыг идэвхжүүлэхээс өмнө үндсэн хамгаалалт болон дахин ачаалах үйлдлийг зогсоож арилгах шаардлагатай.</translation>
 <translation id="1643072738649235303">X9.62 ECDSA SHA-1-тэй гарын үсэг</translation>
 <translation id="1643921258693943800">Ойролцоо хуваалцах онцлогийг ашиглахын тулд Bluetooth болон Wi-Fi-г асаана уу</translation>
@@ -1831,6 +1833,7 @@
 <translation id="2885378588091291677">Асуудлын менежер</translation>
 <translation id="2885729872133513017">Серверийн хариу үйлдлийн кодыг тайлахад асуудал гарлаа.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> болон бусад <ph name="NUMBER_OF_DEVICES" /></translation>
 <translation id="2889064240420137087">Холбоосыг ...-аар нээх</translation>
 <translation id="2891922230654533301">Төхөөрөмжөө <ph name="APP_NAME" />-д нэвтрэхдээ ашиглах уу?</translation>
 <translation id="2893168226686371498">Стандарт веб хөтөч</translation>
@@ -2765,6 +2768,7 @@
 <translation id="3884152383786131369">Олон хэл дээр ашиглах боломжтой веб контент энэ жагсаалтын эхний дэмжигдсэн хэлийг ашиглана. Эдгээр сонголтыг таны хөтчийн тохиргоотой синк хийдэг. <ph name="BEGIN_LINK_LEARN_MORE" />Нэмэлт мэдээлэл авах<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Шинэчлэлтүүдийг танай администратор удирддаг</translation>
 <translation id="3886446263141354045">Таны энэ сайтад нэвтрэх хүсэлтийг <ph name="NAME" />-д илгээсэн</translation>
+<translation id="3887022758415973389">Төхөөрөмжийн жагсаалтыг харуулах</translation>
 <translation id="3888053818972567950"><ph name="WEB_DRIVE" />-н холболт</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" />-р тэмдэглэл бичиж байна</translation>
 <translation id="3888586133700543064">Энэ мэдээлэл нь бидэнд таны Туслахын асуудлыг илүү сайн ойлгоход тусална. Үүнийг 90 хоног хүртэлх хугацаанд хадгалдаг бөгөөд үүнд зөвхөн инженерчлэл болон санал хүсэлтийн зохих багийнхан хандах боломжтой.</translation>
@@ -3475,6 +3479,7 @@
 <translation id="4662373422909645029">Хоч тоо агуулж болохгүй</translation>
 <translation id="4662788913887017617">Энэ хавчуургыг iPhone-д хуваалцах</translation>
 <translation id="4663373278480897665">Камерыг зөвшөөрсөн</translation>
+<translation id="4664289193573249666">Chrome үйлдлийн системийн тохиргоо хэсэгт Аюулгүй DNS-г удирдах</translation>
 <translation id="4664482161435122549">PKCS # 12 Экспортлох үеийн алдаа</translation>
 <translation id="4665014895760275686">Үйлдвэрлэгч</translation>
 <translation id="4665446389743427678"><ph name="SITE" />-н хадгалсан бүх өгөгдлийг устгана.</translation>
@@ -6007,6 +6012,7 @@
 <translation id="7478623944308207463">Таны Google бүртгэлээрээ нэвтэрсэн Chrome үйлдлийн системтэй бүх төхөөрөмж дээр таны аппууд болон тохиргоог синк хийнэ. Хөтчийг синк хийх сонголтыг харах бол <ph name="LINK_BEGIN" />Chrome-н тохиргоо<ph name="LINK_END" /> руу очно уу.</translation>
 <translation id="7478658909253570368">Сайтуудад цуваа портуудад холбогдохыг бүү зөвшөөр</translation>
 <translation id="7479221278376295180">Хадгалах сан ашиглалтын тойм</translation>
+<translation id="747981547666531654"><ph name="FIRST_DEVICE" /> болон <ph name="SECOND_DEVICE" /> гэсэн Bluetooth төхөөрөмжид холбогдсон</translation>
 <translation id="7481312909269577407">Forward</translation>
 <translation id="7481358317100446445">Бэлэн</translation>
 <translation id="748138892655239008">Сертификатын үндсэн хязгаар</translation>
@@ -6059,6 +6065,7 @@
 <translation id="7531771599742723865">Төхөөрөмжийг ашиглаж байна</translation>
 <translation id="7531779363494549572">Toхиргоо &gt; Апп, мэдэгдэл &gt; Мэдэгдэл рүү очно уу.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> хариулахгүй байна. Аппыг хаахын тулд "Хүчээр хаах"-г сонгоно уу.</translation>
+<translation id="7535730537657706072">Төхөөрөмжөөсөө Нууцлалтай хөтчийн түүхийг арилгахын тулд бүх нууцлалтай табыг хаана уу</translation>
 <translation id="7535791657097741517">Цайвар загварыг асаах</translation>
 <translation id="7537451260744431038">Сайтууд нь, жишээлбэл таныг нэвтэрсэн хэвээр байлгах эсвэл таны худалдан авалтын сагсны зүйлсийг санах зэргээр таны үзэх туршлагыг сайжруулахад күүки ашиглах боломжгүй</translation>
 <translation id="753769905878158714">Та хаяг оруулах хэсэгт хайхыг хүсэж байгаа вебсайтынхаа түлхүүр үгийг оруулна уу. Дараа нь үргэлжлүүлэхийн тулд товчлуурын шууд холбоосыг ашиглана уу.</translation>
@@ -6673,6 +6680,7 @@
 <translation id="8138217203226449454">Та хайлтын үйлчилгээ үзүүлэгчээ өөрчлөх гэж байсан уу?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" />-н төлөв</translation>
 <translation id="8139447493436036221">Google Драйвын файлууд</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Одоо өөр хөтчид нээж байна</translation>
 <translation id="8141725884565838206">Нууц үгээ удирдана уу</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{1 видео}other{# видео}}</translation>
@@ -6762,7 +6770,6 @@
 <translation id="8235418492073272647">Хуудсыг <ph name="DEVICE_NAME" />-с хуваалцсан</translation>
 <translation id="8236911020904880539">гарах</translation>
 <translation id="8236917170563564587">Оронд нь энэ табыг хуваалцах</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" />-г хөтчийн шинэ табд нээхээр тохируулсан бөгөөд дэмжигдсэн холбооснуудыг мөн хөтчид нээнэ.</translation>
 <translation id="8237647586961940482">Бараан ягаан ба улаан</translation>
 <translation id="8239032431519548577">Байгууллагын бүртгэл дууссан</translation>
 <translation id="8239932336306009582">Мэдэгдэл илгээхийг зөвшөөрөөгүй</translation>
@@ -7386,6 +7393,7 @@
 <translation id="8909782404367982052">Google Дурангаар зураг хайхын тулд чирэх</translation>
 <translation id="8909833622202089127">Сайт таны байршлыг шинжилж байна</translation>
 <translation id="8910222113987937043">Таны хавчуурга, түүх, нууц үг болон бусад тохиргоонд хийсэн өөрчлөлтийг цаашид Google бүртгэлд синк хийхгүй. Таны одоогийн өгөгдлийг Google бүртгэлд хадгалсан хэвээр байх бөгөөд <ph name="BEGIN_LINK" />Google Хяналтын самбарт<ph name="END_LINK" /> удирдах боломжтой.</translation>
+<translation id="8910987510378294980">Төхөөрөмжийн жагсаалтыг нуух</translation>
 <translation id="8912362522468806198">Google Бүртгэл</translation>
 <translation id="8912793549644936705">Сунгах</translation>
 <translation id="8912810933860534797">Автомат сканыг идэвхжүүлэх</translation>
@@ -7503,6 +7511,7 @@
 <translation id="9033765790910064284">Ямартай ч үргэлжлүүлэх</translation>
 <translation id="9033857511263905942">&amp;Наах</translation>
 <translation id="903480517321259405">ПИН-г дахин бичнэ үү</translation>
+<translation id="9037054491984310631"><ph name="DEVICE" /> гэсэн Bluetooth төхөөрөмжид холбогдсон</translation>
 <translation id="9037640663275993951">Төхөөрөмжийг зөвшөөрдөггүй</translation>
 <translation id="9037818663270399707">Таны холболт сүлжээний бүх ачааллын хувьд хувийн биш байна</translation>
 <translation id="9037965129289936994">Эх хувийг харуулах</translation>
@@ -7583,6 +7592,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> аюултай байж болзошгүй. Google рүү скан хийлгэхээр илгээх үү?</translation>
 <translation id="9112987648460918699">Хайж ол ...</translation>
 <translation id="9113240369465613386">Зөвхөн сондгой хуудас</translation>
+<translation id="9113469270512809735">Саяхан хаасан зүйлсийг асаах/унтраах</translation>
 <translation id="9114663181201435112">Хялбар нэвтрэх</translation>
 <translation id="9115675100829699941">&amp; Хаадгалагдсан хуудсууд</translation>
 <translation id="9116465289595958864">Сүүлд өөрчилсөн</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index f1926a2..470bd7d 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -6766,7 +6766,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> वरून शेअर केलेले पेज</translation>
 <translation id="8236911020904880539">बाहेर पडा</translation>
 <translation id="8236917170563564587">त्याऐवजी हा टॅब शेअर करा</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> हे नवीन ब्राउझर टॅबमध्ये उघडण्यासाठी सेट केले आहे, सपोर्ट असलेल्या लिंकदेखील ब्राउझरमध्ये उघडतील.</translation>
 <translation id="8237647586961940482">गडद गुलाबी आणि लाल</translation>
 <translation id="8239032431519548577">एंटरप्राइझ नोंदणी पूर्ण झाली</translation>
 <translation id="8239932336306009582">सूचना पाठवण्याची अनुमती नाही</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index ad135f8d..c416227 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">Ralat</translation>
 <translation id="1166212789817575481">Tutup Tab di sebelah Kanan</translation>
 <translation id="1166583374608765787">Semak kemaskinian nama</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> milik meja <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">Dibuka dalam <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Tanya apabila tapak mahu menggunakan fon yang terpasang pada peranti anda</translation>
 <translation id="1171135284592304528">Serlahkan objek dengan fokus papan kekunci apabila objek berubah</translation>
@@ -620,6 +621,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> belum dapat berfungsi dalam apl Linux</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 Dengan Penyulitan RSA</translation>
 <translation id="1641113438599504367">Penyemakan Imbas Selamat</translation>
+<translation id="1642492862748815878">Disambungkan kepada <ph name="DEVICE" /> dan <ph name="NUMBER_OF_DEVICES" /> peranti Bluetooth yang lain</translation>
 <translation id="1642494467033190216">Pengalihan keluar perlindungan rootfs dan pemulaan semula diperlukan sebelum mendayakan ciri penyahpepijatan lain.</translation>
 <translation id="1643072738649235303">Tandatangan X9.62 ECDSA dengan SHA-1</translation>
 <translation id="1643921258693943800">Untuk menggunakan Kongsi Berdekatan, hidupkan Bluetooth dan Wi-Fi</translation>
@@ -1835,6 +1837,7 @@
 <translation id="2885378588091291677">Pengurus Tugas</translation>
 <translation id="2885729872133513017">Masalah telah berlaku semasa menyahkod respons pelayan.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> dan <ph name="NUMBER_OF_DEVICES" /> yang lain</translation>
 <translation id="2889064240420137087">Buka pautan dengan...</translation>
 <translation id="2891922230654533301">Gunakan peranti anda untuk log masuk ke <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Penyemak imbas lalai</translation>
@@ -2769,6 +2772,7 @@
 <translation id="3884152383786131369">Kandungan web yang tersedia dalam berbilang bahasa akan menggunakan bahasa pertama yang disokong daripada senarai ini. Pilihan ini disegerakkan dengan tetapan penyemak imbas anda. <ph name="BEGIN_LINK_LEARN_MORE" />Ketahui lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Kemaskinian diurus oleh pentadbir anda</translation>
 <translation id="3886446263141354045">Permintaan anda untuk mengakses tapak ini telah dihantar kepada <ph name="NAME" />.</translation>
+<translation id="3887022758415973389">Paparkan senarai peranti</translation>
 <translation id="3888053818972567950">Sambungan <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">Mencatat nota dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Maklumat ini membantu kami memahami isu Assistant anda dengan lebih baik. Maklumat ini akan disimpan selama maksimum 90 hari dan akses dihadkan kepada pasukan kejuruteraan dan maklum balas yang berkenaan.</translation>
@@ -3480,6 +3484,7 @@
 <translation id="4662373422909645029">Nama panggilan tidak boleh mengandungi nombor</translation>
 <translation id="4662788913887017617">Kongsi penanda halaman ini dengan iPhone anda</translation>
 <translation id="4663373278480897665">Kamera dibenarkan</translation>
+<translation id="4664289193573249666">Urus DNS selamat dalam tetapan Chrome OS</translation>
 <translation id="4664482161435122549">PKCS #12 Eksport Ralat</translation>
 <translation id="4665014895760275686">Pengeluar</translation>
 <translation id="4665446389743427678">Semua data yang disimpan oleh <ph name="SITE" /> akan dipadamkan.</translation>
@@ -6012,6 +6017,7 @@
 <translation id="7478623944308207463">Apl dan tetapan anda akan disegerakkan pada semua peranti OS Chrome yang anda gunakan untuk log masuk dengan akaun Google anda. Untuk mendapatkan pilihan penyegerakan penyemak imbas, pergi ke <ph name="LINK_BEGIN" />tetapan Chrome<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Jangan benarkan laman menyambung kepada port bersiri</translation>
 <translation id="7479221278376295180">Ikhtisar Penggunaan Storan</translation>
+<translation id="747981547666531654">Disambungkan kepada peranti Bluetooth yang bernama <ph name="FIRST_DEVICE" /> dan <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">Majukan</translation>
 <translation id="7481358317100446445">Sedia</translation>
 <translation id="748138892655239008">Kekangan Asas Sijil</translation>
@@ -6064,6 +6070,7 @@
 <translation id="7531771599742723865">Peranti sedang digunakan</translation>
 <translation id="7531779363494549572">Pergi ke Tetapan &gt; Apl &amp; pemberitahuan &gt; Pemberitahuan.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> tiada respons. Pilih "Paksa tutup" untuk menutup apl.</translation>
+<translation id="7535730537657706072">Untuk mengosongkan sejarah penyemakan imbas Inkognito daripada peranti anda, tutup semua tab Inkognito</translation>
 <translation id="7535791657097741517">Hidupkan tema cerah</translation>
 <translation id="7537451260744431038">Tapak tidak boleh menggunakan kuki untuk memperbaik pengalaman penyemakan imbas anda, contohnya, untuk mengekalkan log masuk anda atau untuk mengingat item dalam troli beli-belah anda</translation>
 <translation id="753769905878158714">Dalam bar alamat, masukkan kata kunci untuk laman web yang ingin dicari. Kemudian, gunakan pintasan papan kekunci untuk meneruskan.</translation>
@@ -6681,6 +6688,7 @@
 <translation id="8138217203226449454">Adakah anda bermaksud untuk menukar penyedia carian anda?</translation>
 <translation id="8138997515734480534">Status <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">Fail Google Drive</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Membuka dalam penyemak imbas alternatif sekarang</translation>
 <translation id="8141725884565838206">Urus kata laluan anda</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{satu video}other{# video}}</translation>
@@ -6770,7 +6778,6 @@
 <translation id="8235418492073272647">Halaman dikongsi daripada <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">keluar</translation>
 <translation id="8236917170563564587">Kongsi tab ini</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ditetapkan untuk dibuka dalam tab penyemak imbas baharu, pautan yang disokong juga akan dibuka dalam penyemak imbas.</translation>
 <translation id="8237647586961940482">Merah jambu gelap dan merah</translation>
 <translation id="8239032431519548577">Pendaftaran perusahaan selesai</translation>
 <translation id="8239932336306009582">Tidak dibenarkan untuk menghantar pemberitahuan</translation>
@@ -7397,6 +7404,7 @@
 <translation id="8909782404367982052">Seret untuk Mencari Imej dengan Google Lens</translation>
 <translation id="8909833622202089127">Tapak sedang menjejak lokasi anda</translation>
 <translation id="8910222113987937043">Perubahan kepada penanda halaman, sejarah, kata laluan dan tetapan anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi. Namun begitu, data anda yang sedia ada akan terus disimpan dalam Akaun Google anda dan boleh diurus di <ph name="BEGIN_LINK" />Papan Pemuka Google<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Sembunyikan senarai peranti</translation>
 <translation id="8912362522468806198">Akaun Google</translation>
 <translation id="8912793549644936705">Regang</translation>
 <translation id="8912810933860534797">Dayakan autoimbas</translation>
@@ -7514,6 +7522,7 @@
 <translation id="9033765790910064284">Teruskan juga</translation>
 <translation id="9033857511263905942">&amp;Tampal</translation>
 <translation id="903480517321259405">Taip PIN sekali lagi</translation>
+<translation id="9037054491984310631">Disambungkan kepada peranti Bluetooth yang bernama <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">Peranti tidak dibenarkan</translation>
 <translation id="9037818663270399707">Sambungan anda tidak peribadi untuk semua trafik rangkaian</translation>
 <translation id="9037965129289936994">Tunjukkan Yang Asal</translation>
@@ -7594,6 +7603,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> mungkin berbahaya. Hantar kepada Google untuk diimbas?</translation>
 <translation id="9112987648460918699">Find...</translation>
 <translation id="9113240369465613386">Halaman nombor ganjil sahaja</translation>
+<translation id="9113469270512809735">Togol Item yang Ditutup Baru-baru Ini</translation>
 <translation id="9114663181201435112">Log masuk dengan mudah</translation>
 <translation id="9115675100829699941">&amp;Bookmarks</translation>
 <translation id="9116465289595958864">Kali terakhir diubah suai</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index 24cddf0..b93fce7 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">အမှား</translation>
 <translation id="1166212789817575481">ညာဘက်ရှိ တဲဘ်များကို ပိတ်ရန်</translation>
 <translation id="1166583374608765787">အမည်အပ်ဒိတ် ပြန်စိစစ်ရန်</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> သည် <ph name="DESK_TITLE" /> မျက်နှာပြင်တွင် ပါဝင်သည်</translation>
 <translation id="1168020859489941584"><ph name="TIME_REMAINING" /> အကြာမှာ ဖွင့်ပေးမည်...</translation>
 <translation id="1170288591054440704">ဝဘ်ဆိုက်တစ်ခုက သင့်စက်ပေါ်တွင်ထည့်သွင်းထားသော ဖောင့်များကို အသုံးပြုလိုသည့်အခါ မေးသည်</translation>
 <translation id="1171135284592304528">အကြောင်းအရာများ ပြောင်းလဲသွားသည့်အခါ ကီးဘုတ်အာရုံစိုက်ခြင်းဖြင့် ထင်သာအောင် ပြုလုပ်ပါ။</translation>
@@ -619,6 +620,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> ကို Linux အက်ပ်များတွင် အသုံးပြု၍မရသေးပါ</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 RSA အန်ခရစ်ပြုလုပ်ခြင်းဖြင့်</translation>
 <translation id="1641113438599504367">လုံခြုံစွာ ရှာကြည့်မှု</translation>
+<translation id="1642492862748815878"><ph name="DEVICE" /> နှင့် အခြားဘလူးတုသ်သုံးစက် <ph name="NUMBER_OF_DEVICES" /> ခုကို ချိတ်ဆက်ထားသည်</translation>
 <translation id="1642494467033190216">အခြား ချို့ယွင်းချက် ရှာဖွေပြုပြင်ရေးအင်္ဂါရပ်များကို ဖွင့်ရန် rooft အကာအကွယ်အား ဖယ်ရှားရန်နှင့် ပြန်လည်စတင်မှုလုပ်ရန် လိုအပ်သည်။</translation>
 <translation id="1643072738649235303">SHA-1 ဖြင့် X9.62 ECDSA လက်မှတ်</translation>
 <translation id="1643921258693943800">'အနီးတစ်ဝိုက် မျှဝေခြင်း' အသုံးပြုရန် ဘလူးတုသ်နှင့် Wi-Fi ကို ဖွင့်ပါ</translation>
@@ -1833,6 +1835,7 @@
 <translation id="2885378588091291677">အလုပ် မန်နေဂျာ</translation>
 <translation id="2885729872133513017">ဆာဗာတုံ့ပြန်ချက်ကို ကုဒ်ဖြေရာတွင် အမှားအယွင်းရှိနေသည်။</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> နှင့် အခြား <ph name="NUMBER_OF_DEVICES" /> ခု</translation>
 <translation id="2889064240420137087">... ဖြင့် လင့် ဖွင့်ရန်</translation>
 <translation id="2891922230654533301"><ph name="APP_NAME" /> သို့ လက်မှတ်ထိုးဝင်ရန် သင့်စက်ကို သုံးမလား။</translation>
 <translation id="2893168226686371498">ပုံသေ ဘရောင်ဇာ</translation>
@@ -2767,6 +2770,7 @@
 <translation id="3884152383786131369">ဘာသာစကားအမျိုးမျိုး အသုံးပြုနိုင်သော ဝဘ်အကြောင်းအရာများက ဤစာရင်းထဲမှ ပထမဆုံးပံ့ပိုးထားသော ဘာသာစကားကို အသုံးပြုပါမည်။ ဤသတ်မှတ်ချက်များကို သင့်ဘရောင်ဇာဆက်တင်များနှင့် စင့်ခ်လုပ်ထားသည်။ <ph name="BEGIN_LINK_LEARN_MORE" />ပိုမိုလေ့လာရန်<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">အပ်ဒိတ်များကို သင့်စီမံခန့်ခွဲသူက စီမံပါသည်</translation>
 <translation id="3886446263141354045">ဤဆိုက်အား အသုံးပြုရန် သင့်တောင်းဆိုချက်ကို <ph name="NAME" /> သို့ ပို့လိုက်ပါပြီ</translation>
+<translation id="3887022758415973389">စက်ပစ္စည်းစာရင်း ပြရန်</translation>
 <translation id="3888053818972567950"><ph name="WEB_DRIVE" /> ချိတ်ဆက်မှု</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ဖြင့် မှတ်စုရေးခြင်း</translation>
 <translation id="3888586133700543064">ဤအချက်အလက်က သင်၏ Assistant ဆိုင်ရာ ပြဿနာကို ကျွန်ုပ်တို့ ပိုမိုနားလည်စေရန် အထောက်အကူပြုပါသည်။ ၎င်းကို ရက် ၉၀ အထိသိမ်းထားပြီး သက်ဆိုင်ရာ အင်ဂျင်နီယာနှင့် အကြံပြုအဖွဲ့များကသာ ဝင်ရောက်ကြည့်ရှုနိုင်သည်။</translation>
@@ -3477,6 +3481,7 @@
 <translation id="4662373422909645029">ကိန်းဂဏန်းများ မပါဝင်ရပါ</translation>
 <translation id="4662788913887017617">ဤဝဘ်လိပ်စာကို သင်၏ iPhone နှင့် မျှဝေပါ</translation>
 <translation id="4663373278480897665">ကင်မရာကို သုံးခွင့်ပြုထားသည်</translation>
+<translation id="4664289193573249666">Chrome OS ဆက်တင်များတွင် လုံခြုံသည့် DNS ကို စီမံပါ</translation>
 <translation id="4664482161435122549">PKCS #၁၂ တင်ပို့မှု အမှား</translation>
 <translation id="4665014895760275686">ထုတ်လုပ်သူ</translation>
 <translation id="4665446389743427678"><ph name="SITE" /> က သိမ်းဆည်းထားသည့် ဒေတာများအားလုံးကို ဖျက်လိုက်ပါမည်။</translation>
@@ -6007,6 +6012,7 @@
 <translation id="7478623944308207463">သင်၏ Google အကောင့်ဖြင့် လက်မှတ်ထိုးဝင်ထားသော Chrome OS စက်အားလုံးတွင် သင့်အက်ပ်နှင့် ဆက်တင်များကို စင့်ခ်လုပ်ပါမည်။ ဘရောင်ဇာစင့်ခ်လုပ်ခြင်း ရွေးစရာများအတွက် <ph name="LINK_BEGIN" />Chrome ဆက်တင်များ<ph name="LINK_END" /> သို့သွားပါ။</translation>
 <translation id="7478658909253570368">အစဉ်လိုက်ပို့တ်များနှင့် ချိတ်ဆက်ရန် ဝဘ်ဆိုက်များကို ခွင့်မပြုပါနှင့်</translation>
 <translation id="7479221278376295180">သိုလှောင်ခန်း အသုံးပြုမှု အနှစ်ချုပ်</translation>
+<translation id="747981547666531654"><ph name="FIRST_DEVICE" /> နှင့် <ph name="SECOND_DEVICE" /> ဘလူးတုသ်သုံးစက်များကို ချိတ်ဆက်ထားသည်</translation>
 <translation id="7481312909269577407">ရှေ့သို့</translation>
 <translation id="7481358317100446445">အသင့်ဖြစ်ပြီ</translation>
 <translation id="748138892655239008">လက်မှတ် အခြေခံ ကန့်သတ်မှုများ</translation>
@@ -6059,6 +6065,7 @@
 <translation id="7531771599742723865">အသုံးပြုနေသောစက်</translation>
 <translation id="7531779363494549572">ဆက်တင်များ &gt; အက်ပ်နှင့် အကြောင်းကြားချက်များ &gt; အကြောင်းကြားချက်များ သို့သွားပါ။</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> က တုံ့ပြန်မှုမရှိပါ။ အက်ပ်ကိုပိတ်ရန် "မဖြစ်မနေပိတ်ရန်" ကို ရွေးပါ။</translation>
+<translation id="7535730537657706072">သင်၏စက်မှ ရုပ်ဖျက် ကြည့်ရှုခြင်းမှတ်တမ်းကို ရှင်းထုတ်ရန် ရုပ်ဖျက်တဘ်အားလုံး ပိတ်ပါ</translation>
 <translation id="7535791657097741517">လင်းသည့် အပြင်အဆင် ဖွင့်ရန်</translation>
 <translation id="7537451260744431038">သင်၏ဝဘ်ကြည့်ရှုမှု ပိုကောင်းမွန်စေရန် ဥပမာအားဖြင့် အမြဲလက်မှတ်ထိုးဝင်ထားရန် သို့မဟုတ် ဈေးခြင်းတောင်းထဲရှိ အရာများ မှတ်ထားရန်တို့အတွက် ဝဘ်ဆိုက်များက ကွတ်ကီးများကို အသုံးပြု၍မရပါ</translation>
 <translation id="753769905878158714">လိပ်စာ ဘားတွင် သင်ရှာလိုသော ဝဘ်ဆိုက်အတွက် အဓိကစကားလုံး ထည့်ပါ။ ထို့နောက် ရှေ့ဆက်ရန် လက်ကွက်ဖြတ်လမ်း သုံးပါ။</translation>
@@ -6675,6 +6682,7 @@
 <translation id="8138217203226449454">သင်၏ ရှာဖွေရေး ဝန်ဆောင်မှုစနစ်ကို ပြောင်းလိုသလား။</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> အခြေအနေ</translation>
 <translation id="8139447493436036221">Google Drive ဖိုင်များ</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />၊ <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">အရန် ဘရောင်ဇာတွင် ယခုဖွင့်နေသည်</translation>
 <translation id="8141725884565838206">သင့်လျှို့ဝှက်စကားလုံးများကို စီမံမည်</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{ဗီဒီယိုတစ်ကား}other{ဗီဒီယို # ကား}}</translation>
@@ -6764,7 +6772,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> မှ မျှဝေထားသော စာမျက်နှာ</translation>
 <translation id="8236911020904880539">ထွက်ရန်</translation>
 <translation id="8236917170563564587">၎င်းအစား ဤတဘ်ကို မျှဝေရန်</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ကို ဘရောင်ဇာတဘ်အသစ်တွင် ဖွင့်ရန် သတ်မှတ်ထားသည်။ ပံ့ပိုးထားသည့်လင့်ခ်များကိုလည်း ဘရောင်ဇာတွင် ဖွင့်ပါမည်။</translation>
 <translation id="8237647586961940482">ပန်းရောင်ရင့်နှင့် အနီ</translation>
 <translation id="8239032431519548577">လုပ်ငန်း စာရင်းသွင်းမှု ပြီးပါပြီ</translation>
 <translation id="8239932336306009582">အကြောင်းကြားချက်များပို့ရန် ခွင့်ပြုမထားပါ</translation>
@@ -7390,6 +7397,7 @@
 <translation id="8909782404367982052">Google Lens ဖြင့် ပုံများရှာရန် ဖိဆွဲပါ</translation>
 <translation id="8909833622202089127">ဝဘ်ဆိုက်က သင့်တည်နေရာကို ရှာနေသည်</translation>
 <translation id="8910222113987937043">သင့်စာညှပ်များ၊ စကားဝှက်များနှင့် အခြားဆက်တင်များကို ပြောင်းလဲခြင်းများအား သင့် Google အကောင့်သို့ စင့်ခ်လုပ်တော့မည် မဟုတ်ပါ။ သို့သော် လက်ရှိဒေတာများကို သင့် Google အကောင့်တွင် ဆက်လက် သိမ်းဆည်းထားမည်ဖြစ်ပြီး <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> တွင် စီမံနိုင်ပါမည်။</translation>
+<translation id="8910987510378294980">စက်စာရင်းကို ဖျောက်ထားရန်</translation>
 <translation id="8912362522468806198">Google အကောင့်</translation>
 <translation id="8912793549644936705">ဆန့်ရန်</translation>
 <translation id="8912810933860534797">အလိုအလျောက် စကင်ဖတ်ခြင်းကို ဖွင့်ရန်</translation>
@@ -7507,6 +7515,7 @@
 <translation id="9033765790910064284">မည်သို့ဖြစ်စေ ရှေ့ဆက်ရန်</translation>
 <translation id="9033857511263905942">&amp;ကူးထည့်</translation>
 <translation id="903480517321259405">ပင်နံပါတ် ထပ်ထည့်ပါ</translation>
+<translation id="9037054491984310631"><ph name="DEVICE" /> ဘလူးတုသ်သုံးစက်ကို ချိတ်ဆက်ထားသည်</translation>
 <translation id="9037640663275993951">စက်ကို ခွင့်ပြုမထားပါ</translation>
 <translation id="9037818663270399707">သင်၏ချိတ်ဆက်မှုသည် ကွန်ရက်ဒေတာစီးဆင်းမှုအားလုံးအတွက် သီးသန့်မဟုတ်ပါ</translation>
 <translation id="9037965129289936994">မူရင်းကို ပြရန်</translation>
@@ -7587,6 +7596,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> သည် အန္တရာယ်ရှိနိုင်သည်။ စစ်ဆေးရန် Google သို့ ပို့မလား။</translation>
 <translation id="9112987648460918699">ရှာရန်...</translation>
 <translation id="9113240369465613386">မစာမျက်နှာများသာ</translation>
+<translation id="9113469270512809735">လတ်တလော ပိတ်ထားသည်များကို ပိတ်ဖွင့်လုပ်နိုင်သည်</translation>
 <translation id="9114663181201435112">အလွယ်တကူ လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="9115675100829699941">စာညှပ်များ</translation>
 <translation id="9116465289595958864">နောက်ဆုံး မွမ်းမံခြင်း</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 41303136..c1006bd 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -6749,7 +6749,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> बाट सेयर गरिएको पेज</translation>
 <translation id="8236911020904880539">बाहिरिनुहोस्</translation>
 <translation id="8236917170563564587">बरु यो ट्याब सेयर गर्नुहोस्</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ब्राउजरको नयाँ ट्याबमा खुल्ने बनाइएको छ। खोल्न मिल्ने लिंकहरू पनि ब्राउजरमा नै खुल्ने छन्।</translation>
 <translation id="8237647586961940482">गाढा गुलाबी र रातो</translation>
 <translation id="8239032431519548577">इन्टरप्राइज दर्ता गर्ने काम पूरा भयो</translation>
 <translation id="8239932336306009582">सूचना पठाउने अनुमति नदिइएका साइटहरू</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index a760714..2c5a594 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -6757,7 +6757,6 @@
 <translation id="8235418492073272647">Pagina gedeeld vanaf <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">te sluiten</translation>
 <translation id="8236917170563564587">In plaats daarvan dit tabblad delen</translation>
-<translation id="8237471930911823556">Er is ingesteld dat <ph name="APP_NAME" /> wordt geopend in een nieuw browsertabblad. Ondersteunde links worden ook geopend in de browser.</translation>
 <translation id="8237647586961940482">Donkerroze/rood</translation>
 <translation id="8239032431519548577">Inschrijving voor Enterprise voltooid</translation>
 <translation id="8239932336306009582">Geen toestemming om meldingen te sturen</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 576fc5f7..da33b2e 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -6768,7 +6768,6 @@
 <translation id="8235418492073272647">Siden er delt fra <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">avslutte</translation>
 <translation id="8236917170563564587">Del denne fanen i stedet</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> er konfigurert til å åpnes i en ny nettleserfane. Støttede linker åpnes også i nettleseren.</translation>
 <translation id="8237647586961940482">Mørk rosa og rød</translation>
 <translation id="8239032431519548577">Bedriftsregistreringen er fullført</translation>
 <translation id="8239932336306009582">Nettsteder som ikke har lov til å sende varsler</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 26a8d24..b1759e7 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -6751,7 +6751,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" />ରୁ ସେୟାର୍ କରାଯାଇଥିବା ପୃଷ୍ଠା</translation>
 <translation id="8236911020904880539">ବାହାରି ଯାଆନ୍ତୁ</translation>
 <translation id="8236917170563564587">ଏହା ପରିବର୍ତ୍ତେ ଏହି ଟାବ୍ ସେୟାର୍ କରନ୍ତୁ</translation>
-<translation id="8237471930911823556">ଏକ ନୂଆ ବ୍ରାଉଜର୍ ଟାବରେ ଖୋଲିବା ପାଇଁ <ph name="APP_NAME" />କୁ ସେଟ୍ କରାଯାଇଛି, ସମର୍ଥିତ ଲିଙ୍କଗୁଡ଼ିକ ମଧ୍ୟ ବ୍ରାଉଜରରେ ଖୋଲିବ।</translation>
 <translation id="8237647586961940482">ଗାଢ଼ ଗୋଲାପି ଓ ଲାଲ</translation>
 <translation id="8239032431519548577">ଏଣ୍ଟରପ୍ରାଇଜ୍ ପଞ୍ଜିକରଣ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଛି</translation>
 <translation id="8239932336306009582">ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପଠାଇବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 641d5a89..74d3f31 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -6769,7 +6769,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> ਤੋਂ ਸਾਂਝਾ ਕੀਤਾ ਗਿਆ ਪੰਨਾ</translation>
 <translation id="8236911020904880539">ਬਾਹਰ ਨਿਕਲੋ</translation>
 <translation id="8236917170563564587">ਇਸਦੀ ਬਜਾਏ ਇਹ ਟੈਬ ਸਾਂਝੀ ਕਰੋ</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ਕਿਸੇ ਨਵੀਂ ਬ੍ਰਾਊਜ਼ਰ ਟੈਬ ਵਿੱਚ ਖੋਲ੍ਹੇ ਜਾਣ ਲਈ ਤਿਆਰ ਹੈ, ਸਹਾਇਤਾ ਲਈ ਲਿੰਕ ਵੀ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੁੱਲ੍ਹਣਗੇ।</translation>
 <translation id="8237647586961940482">ਗੂੜ੍ਹਾ ਗੁਲਾਬੀ ਅਤੇ ਲਾਲ</translation>
 <translation id="8239032431519548577">ਐਂਟਰਪ੍ਰਾਈਜ਼ ਦਾਖਲਾ ਮੁਕੰਮਲ ਹੋਇਆ</translation>
 <translation id="8239932336306009582">ਸੂਚਨਾਵਾਂ ਭੇਜਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 5315c83..7c68cea 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -6759,7 +6759,6 @@
 <translation id="8235418492073272647">Strona udostępniona z urządzenia <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">zamknąć okno</translation>
 <translation id="8236917170563564587">Udostępnij tę kartę</translation>
-<translation id="8237471930911823556">Aplikacja <ph name="APP_NAME" /> jest skonfigurowana do otwierania się w nowej karcie przeglądarki. W przeglądarce będą się też otwierać obsługiwane linki.</translation>
 <translation id="8237647586961940482">Ciemnoróżowo-czerwony</translation>
 <translation id="8239032431519548577">Zakończono rejestrację w firmie</translation>
 <translation id="8239932336306009582">Nie zezwolono na wysyłanie powiadomień</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index abe0b0c..aeaed1943 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -6781,7 +6781,6 @@
 <translation id="8235418492073272647">Página compartilhada de <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">sair</translation>
 <translation id="8236917170563564587">Compartilhar esta guia</translation>
-<translation id="8237471930911823556">O app <ph name="APP_NAME" /> está configurado para ser aberto em uma nova guia do navegador. Links compatíveis também serão abertos dessa forma.</translation>
 <translation id="8237647586961940482">Rosa-escuro e vermelho</translation>
 <translation id="8239032431519548577">Inscrição na empresa concluída</translation>
 <translation id="8239932336306009582">Bloquear o envio de notificações</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 00c6a19..ae035dff 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -6764,7 +6764,6 @@
 <translation id="8235418492073272647">Página partilhada a partir do dispositivo <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">sair</translation>
 <translation id="8236917170563564587">Em alternativa, partilhar este separador</translation>
-<translation id="8237471930911823556">A app <ph name="APP_NAME" /> está definida para abrir num novo separador do navegador e os links suportados também serão abertos no navegador.</translation>
 <translation id="8237647586961940482">Cor-de-rosa escuro e vermelho</translation>
 <translation id="8239032431519548577">Inscrição empresarial concluída</translation>
 <translation id="8239932336306009582">Sem autorização para enviar notificações</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index be6f73e9f..47e1e99 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -6762,7 +6762,6 @@
 <translation id="8235418492073272647">Pagină trimisă de pe <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">ieșire</translation>
 <translation id="8236917170563564587">Distribuie această filă</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> este setată să se deschidă într-o nouă filă de browser. Linkurile acceptate se vor deschide tot în browser.</translation>
 <translation id="8237647586961940482">Roz închis și roșu</translation>
 <translation id="8239032431519548577">Înregistrarea pentru întreprindere s-a finalizat</translation>
 <translation id="8239932336306009582">Nu au permisiunea de a trimite notificări</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 9bfbdfeb..654d2f4 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -159,6 +159,7 @@
 <translation id="1165039591588034296">Ошибка</translation>
 <translation id="1166212789817575481">Закрыть вкладки справа</translation>
 <translation id="1166583374608765787">Проверьте новое название</translation>
+<translation id="1166596238782048887">Вкладка "<ph name="TAB_TITLE" />" находится на рабочем столе "<ph name="DESK_TITLE" />"</translation>
 <translation id="1168020859489941584">Открытие через <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Запрашивать разрешение, когда сайту необходимо использовать шрифты, установленные на устройстве</translation>
 <translation id="1171135284592304528">Выделять элементы, выбранные с помощью клавиатуры</translation>
@@ -619,6 +620,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> пока не работает в приложениях для Linux.</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 с шифрованием RSA</translation>
 <translation id="1641113438599504367">Безопасный просмотр</translation>
+<translation id="1642492862748815878">Установлено подключение к устройству "<ph name="DEVICE" />" и другим устройствам Bluetooth (<ph name="NUMBER_OF_DEVICES" />)</translation>
 <translation id="1642494467033190216">Перед включением других функций отладки отключите защиту корневой файловой системы и перезагрузите устройство.</translation>
 <translation id="1643072738649235303">Подпись ECDSA X9.62 с SHA-1</translation>
 <translation id="1643921258693943800">Чтобы использовать Обмен с окружением, включите Bluetooth и Wi-Fi.</translation>
@@ -1821,6 +1823,7 @@
 <translation id="2885378588091291677">Диспетчер задач</translation>
 <translation id="2885729872133513017">Не удалось расшифровать ответ сервера.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692">Устройство "<ph name="DEVICE" />" и другие (<ph name="NUMBER_OF_DEVICES" />)</translation>
 <translation id="2889064240420137087">Открыть ссылку с помощью...</translation>
 <translation id="2891922230654533301">Использовать устройство для входа на сайте <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Браузер по умолчанию</translation>
@@ -2755,6 +2758,7 @@
 <translation id="3884152383786131369">Для веб-контента, доступного на нескольких языках, будет использоваться первый подходящий вариант из списка ниже. Эти настройки синхронизированы с настройками браузера. <ph name="BEGIN_LINK_LEARN_MORE" />Подробнее…<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Обновлениями управляет администратор</translation>
 <translation id="3886446263141354045">Ваш запрос на доступ к сайту отправлен пользователю <ph name="NAME" /></translation>
+<translation id="3887022758415973389">Показать список устройств</translation>
 <translation id="3888053818972567950">Подключение к сервису "<ph name="WEB_DRIVE" />"</translation>
 <translation id="3888550877729210209">Заметки в приложении "<ph name="LOCK_SCREEN_APP_NAME" />"</translation>
 <translation id="3888586133700543064">Эта информация поможет нам понять, в чем причина возникшей неполадки в работе Ассистента. Данные хранятся до 90 дней. Доступ к ним есть только у разработчиков и специалистов по работе с отзывами.</translation>
@@ -3465,6 +3469,7 @@
 <translation id="4662373422909645029">Название не должно содержать цифры.</translation>
 <translation id="4662788913887017617">Поделитесь закладкой с iPhone</translation>
 <translation id="4663373278480897665">Доступ к камере разрешен</translation>
+<translation id="4664289193573249666">Управление безопасным DNS-сервером в настройках Chrome OS</translation>
 <translation id="4664482161435122549">Ошибка экспорта PKCS #12</translation>
 <translation id="4665014895760275686">Производитель</translation>
 <translation id="4665446389743427678">Все данные, хранящиеся на сайте <ph name="SITE" />, будут удалены.</translation>
@@ -5997,6 +6002,7 @@
 <translation id="7478623944308207463">Ваши приложения и настройки будут синхронизироваться на всех устройствах Chrome OS, на которых вы вошли в аккаунт Google. Изменить параметры синхронизации браузера можно в <ph name="LINK_BEGIN" />настройках Chrome<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Запретить сайтам подключаться к последовательным портам</translation>
 <translation id="7479221278376295180">Обзор использования хранилища</translation>
+<translation id="747981547666531654">Установлено подключение к устройствам Bluetooth "<ph name="FIRST_DEVICE" />" и "<ph name="SECOND_DEVICE" />"</translation>
 <translation id="7481312909269577407">Вперед</translation>
 <translation id="7481358317100446445">Готово</translation>
 <translation id="748138892655239008">Базовые ограничения сертификата</translation>
@@ -6049,6 +6055,7 @@
 <translation id="7531771599742723865">Устройство сейчас используется</translation>
 <translation id="7531779363494549572">Откройте настройки устройства и выберите "Приложения и уведомления &gt; Уведомления".</translation>
 <translation id="7532009420053991888">Приложение "<ph name="LINUX_APP_NAME" />" не отвечает. Чтобы выйти из него, нажмите "Закрыть принудительно".</translation>
+<translation id="7535730537657706072">Чтобы удалить с устройства историю браузера в режиме инкогнито, закройте все вкладки инкогнито.</translation>
 <translation id="7535791657097741517">Включить светлую тему</translation>
 <translation id="7537451260744431038">Сайты не могут использовать файлы cookie, чтобы сделать работу в браузере более удобной, например запоминая товары в корзине или информацию о том, что вы вошли в аккаунт</translation>
 <translation id="753769905878158714">В адресной строке введите ключевое слово для сайта, который нужно найти. Затем используйте сочетание клавиш.</translation>
@@ -6665,6 +6672,7 @@
 <translation id="8138217203226449454">Вы хотели сменить поисковую систему?</translation>
 <translation id="8138997515734480534">Статус ВМ "<ph name="VM_NAME" />"</translation>
 <translation id="8139447493436036221">Файлы на Google Диске</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Запуск альтернативного браузера…</translation>
 <translation id="8141725884565838206">Управление паролями</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{видео}one{# видео}few{# видео}many{# видео}other{# видео}}</translation>
@@ -6754,7 +6762,6 @@
 <translation id="8235418492073272647">Страница с устройства <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">выйти</translation>
 <translation id="8236917170563564587">Поделиться текущей вкладкой</translation>
-<translation id="8237471930911823556">Приложение "<ph name="APP_NAME" />" и поддерживаемые ссылки будут открываться в новой вкладке браузера.</translation>
 <translation id="8237647586961940482">Темно-розовый с красным</translation>
 <translation id="8239032431519548577">Регистрация в корпоративном домене завершена</translation>
 <translation id="8239932336306009582">Запретить сайтам показывать уведомления</translation>
@@ -7383,6 +7390,7 @@
 <translation id="8909782404367982052">Перетащить изображения и выполнить поиск с помощью Google Объектива</translation>
 <translation id="8909833622202089127">Сайт отслеживает ваше местоположение</translation>
 <translation id="8910222113987937043">Изменения, связанные с закладками, историей, паролями и настройками, больше не будут синхронизироваться с вашим аккаунтом Google. Тем не менее, данные в аккаунте Google сохранятся. Вы можете просмотреть и изменить их в <ph name="BEGIN_LINK" />Личном кабинете Google<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Скрыть список устройств</translation>
 <translation id="8912362522468806198">Аккаунт Google</translation>
 <translation id="8912793549644936705">Растянуть</translation>
 <translation id="8912810933860534797">Включить автосканирование</translation>
@@ -7500,6 +7508,7 @@
 <translation id="9033765790910064284">Продолжить</translation>
 <translation id="9033857511263905942">&amp;Вставить</translation>
 <translation id="903480517321259405">Введите PIN-код ещё раз</translation>
+<translation id="9037054491984310631">Установлено подключение к устройству Bluetooth "<ph name="DEVICE" />"</translation>
 <translation id="9037640663275993951">Не разрешено выполнять ВМ на этом устройстве.</translation>
 <translation id="9037818663270399707">Весь ваш сетевой трафик передается через незащищенное подключение.</translation>
 <translation id="9037965129289936994">Показать оригинал</translation>
@@ -7579,6 +7588,7 @@
 <translation id="9112786533191410418">Файл "<ph name="FILE_NAME" />" может представлять опасность. Отправить его в Google для проверки?</translation>
 <translation id="9112987648460918699">Найти...</translation>
 <translation id="9113240369465613386">Только нечетные страницы</translation>
+<translation id="9113469270512809735">Показать или скрыть недавно закрытые элементы</translation>
 <translation id="9114663181201435112">Удобный вход</translation>
 <translation id="9115675100829699941">&amp;Закладки</translation>
 <translation id="9116465289595958864">Последнее изменение</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index fbcb2ac..57375fb2 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -6761,7 +6761,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> වෙතින් බෙදා ගත් පිටුව</translation>
 <translation id="8236911020904880539">පිටවන්න</translation>
 <translation id="8236917170563564587">ඒ වෙනුවට මෙම පටිත්ත බෙදා ගන්න</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> නව බ්‍රව්සර ටැබයක විවෘත කිරීමට සකසා ඇති අතර, සහාය දක්වන සබැඳි බ්‍රව්සරයේද විවෘත වනු ඇත.</translation>
 <translation id="8237647586961940482">තද රෝස සහ රතු</translation>
 <translation id="8239032431519548577">ව්‍යවසාය ලියාපදිංචිය සම්පූර්ණයි</translation>
 <translation id="8239932336306009582">දැනුම්දීම් යැවීමට ඉඩ නොදේ</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index e155f60..e5defe4 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -6763,7 +6763,6 @@
 <translation id="8235418492073272647">Stránka zdieľaná zo zariadenia <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">skončiť</translation>
 <translation id="8236917170563564587">Zdieľať radšej túto kartu</translation>
-<translation id="8237471930911823556">Je nastavené, aby sa aplikácia <ph name="APP_NAME" /> otvárala na novej karte prehliadača. Podporované odkazy sa budú tiež otvárať v prehliadači.</translation>
 <translation id="8237647586961940482">Tmavoružová a červená</translation>
 <translation id="8239032431519548577">Registrácia podniku bola dokončená</translation>
 <translation id="8239932336306009582">Nemôže odosielať upozornenia</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index caa54e2..66c098c7 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -6783,7 +6783,6 @@
 <translation id="8235418492073272647">Stran, deljena iz naprave <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">zapreti</translation>
 <translation id="8236917170563564587">Deli ta zavihek</translation>
-<translation id="8237471930911823556">Aplikacija <ph name="APP_NAME" /> je nastavljena, da se odpre na novem zavihku brskalnika. Podprte povezave se bodo tudi odprle v brskalniku.</translation>
 <translation id="8237647586961940482">Temno rožnata in rdeča</translation>
 <translation id="8239032431519548577">Včlanitev v poslovno okolje je dokončana</translation>
 <translation id="8239932336306009582">Pošiljanje obvestil ni dovoljeno</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index bffe53f..c33c252 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -6748,7 +6748,6 @@
 <translation id="8235418492073272647">Faqe e ndarë nga <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">dil</translation>
 <translation id="8236917170563564587">Ndaj këtë skedë më mirë</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> është caktuar të hapet në një skedë të re shfletuesi, lidhjet e mbështetura do të hapen gjithashtu në shfletues.</translation>
 <translation id="8237647586961940482">Rozë e errët dhe e kuqe</translation>
 <translation id="8239032431519548577">Regjistrimi i ndërmarrjes përfundoi</translation>
 <translation id="8239932336306009582">Nuk lejohen të dërgojnë njoftime</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 1dc7ed33..3379c54 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -6761,7 +6761,6 @@
 <translation id="8235418492073272647">Stranica se deli sa uređaja <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">izašli</translation>
 <translation id="8236917170563564587">Deli ovu karticu</translation>
-<translation id="8237471930911823556">Aplikacija <ph name="APP_NAME" /> je podešena da se otvara na novoj kartici pregledača. Podržani linkovi takođe će se otvarati u pregledaču.</translation>
 <translation id="8237647586961940482">Tamnoružičasta i crvena</translation>
 <translation id="8239032431519548577">Registracija preduzeća je dovršena</translation>
 <translation id="8239932336306009582">Nije dozvoljeno slanje obaveštenja</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 3469922..0c88028 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -6761,7 +6761,6 @@
 <translation id="8235418492073272647">Страница се дели са уређаја <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">изашли</translation>
 <translation id="8236917170563564587">Дели ову картицу</translation>
-<translation id="8237471930911823556">Апликација <ph name="APP_NAME" /> је подешена да се отвара на новој картици прегледача. Подржани линкови такође ће се отварати у прегледачу.</translation>
 <translation id="8237647586961940482">Тамноружичаста и црвена</translation>
 <translation id="8239032431519548577">Регистрација предузећа је довршена</translation>
 <translation id="8239932336306009582">Није дозвољено слање обавештења</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index bbf58626..43e9cbaa 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">Fel</translation>
 <translation id="1166212789817575481">Stäng flikar till höger</translation>
 <translation id="1166583374608765787">Granska uppdaterat namn</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> hör till skrivbordet <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">Öppnar om <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Fråga när en webbplats vill använda teckensnitt som är installerade på enheten</translation>
 <translation id="1171135284592304528">Markera objektet med tangentbordsfokus när det ändras</translation>
@@ -620,6 +621,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> fungerar inte i Linux-appar ännu</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 med RSA-kryptering</translation>
 <translation id="1641113438599504367">Säker webbsökning</translation>
+<translation id="1642492862748815878">Ansluten till <ph name="DEVICE" /> och <ph name="NUMBER_OF_DEVICES" /> andra Bluetooth-enheter</translation>
 <translation id="1642494467033190216">Borttagning av rootfs-skydd och omstart krävs innan du kan aktivera andra felsökningsfunktioner.</translation>
 <translation id="1643072738649235303">X9.62 ECDSA-signatur med SHA-1</translation>
 <translation id="1643921258693943800">Aktivera Bluetooth och wifi om du vill använda Närdelning</translation>
@@ -1835,6 +1837,7 @@
 <translation id="2885378588091291677">Aktivitetshanteraren</translation>
 <translation id="2885729872133513017">Ett problem uppstod när serversvaret skulle avkodas.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> och <ph name="NUMBER_OF_DEVICES" /> till</translation>
 <translation id="2889064240420137087">Öppna länk med ...</translation>
 <translation id="2891922230654533301">Vill du logga in på <ph name="APP_NAME" /> med enheten?</translation>
 <translation id="2893168226686371498">Standardwebbläsare</translation>
@@ -2769,6 +2772,7 @@
 <translation id="3884152383786131369">Det första språk som stöds i den här listan kommer att användas för webbinnehåll som är tillgängligt på flera språk. Dessa inställningar synkroniseras med inställningarna för webbläsaren. <ph name="BEGIN_LINK_LEARN_MORE" />Läs mer<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Uppdateringar hanteras av administratören.</translation>
 <translation id="3886446263141354045">Din begäran om att få tillgång till denna webbplats har skickats till <ph name="NAME" /></translation>
+<translation id="3887022758415973389">Visa enhetslista</translation>
 <translation id="3888053818972567950"><ph name="WEB_DRIVE" />-koppling</translation>
 <translation id="3888550877729210209">Anteckna med <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Med den här informationen blir det lättare för oss att förstå problemet med assistenten. Informationen lagras i upp till 90 dagar och endast behöriga utvecklar- och feedbackteam har åtkomst till den.</translation>
@@ -3480,6 +3484,7 @@
 <translation id="4662373422909645029">Namnet får inte innehålla siffror</translation>
 <translation id="4662788913887017617">Dela det här bokmärket med din iPhone</translation>
 <translation id="4663373278480897665">Kamera är tillåten</translation>
+<translation id="4664289193573249666">Inställningar för att hantera säker DNS i Chrome OS</translation>
 <translation id="4664482161435122549">Fel vid export av PKCS #12</translation>
 <translation id="4665014895760275686">Tillverkare</translation>
 <translation id="4665446389743427678">All data som lagrats av <ph name="SITE" /> raderas.</translation>
@@ -6012,6 +6017,7 @@
 <translation id="7478623944308207463">Appar och inställningar synkroniseras på alla Chrome OS-enheter där du är inloggad på ditt Google-konto. Alternativ för synkronisering av webbläsaren finns i <ph name="LINK_BEGIN" />Chrome-inställningarna<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Tillåt inte att webbplatser ansluter till en serieport</translation>
 <translation id="7479221278376295180">Översikt över användning av lagringsutrymme</translation>
+<translation id="747981547666531654">Ansluten till Bluetooth-enheterna <ph name="FIRST_DEVICE" /> och <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">Framåt</translation>
 <translation id="7481358317100446445">Redo</translation>
 <translation id="748138892655239008">Grundbegränsningar för certifikat</translation>
@@ -6064,6 +6070,7 @@
 <translation id="7531771599742723865">Enheten används</translation>
 <translation id="7531779363494549572">Öppna Inställningar &gt; Appar och aviseringar &gt; Aviseringar.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> svarar inte. Stäng appen med Tvångsavsluta.</translation>
+<translation id="7535730537657706072">Om du vill rensa webbhistoriken i inkognitoläget stänger du alla inkognitoflikar</translation>
 <translation id="7535791657097741517">Aktivera ljust tema</translation>
 <translation id="7537451260744431038">Webbplatser får inte förbättra surfupplevelsen med hjälp av cookies, till exempel genom att låta dig förbli inloggad eller spara vad du har lagt till i kundvagnen</translation>
 <translation id="753769905878158714">Ange sökordet för webbplatsen du vill söka på i adressfältet. Använd sedan ett kortkommandon för att fortsätta.</translation>
@@ -6681,6 +6688,7 @@
 <translation id="8138217203226449454">Ville du ändra sökleverantör?</translation>
 <translation id="8138997515734480534">Status för <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">Google Drive-filer</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Öppnas i en annan webbläsare nu</translation>
 <translation id="8141725884565838206">Hantera dina lösenord</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{en video}other{# videor}}</translation>
@@ -6770,7 +6778,6 @@
 <translation id="8235418492073272647">Sidan delas från <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">avsluta</translation>
 <translation id="8236917170563564587">Dela den här fliken i stället</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> har ställts in på att öppnas på en ny webbläsarflik. Länkar som stöds öppnas också i webbläsaren.</translation>
 <translation id="8237647586961940482">Mörkrosa och röd</translation>
 <translation id="8239032431519548577">Företagsregistreringen är klar</translation>
 <translation id="8239932336306009582">Får inte skicka aviseringar</translation>
@@ -7396,6 +7403,7 @@
 <translation id="8909782404367982052">Tryck och dra för att söka efter bilder med Google Lens</translation>
 <translation id="8909833622202089127">Webbplatsen spårar din plats</translation>
 <translation id="8910222113987937043">När bokmärken, historik, lösenord och andra inställningar ändras kommer dessa ändringar inte längre att synkroniseras med Google-kontot. Uppgifter som redan har sparats i Google-kontot finns däremot kvar och kan hanteras via <ph name="BEGIN_LINK" />Google Översikt<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Dölj enhetslista</translation>
 <translation id="8912362522468806198">Google-konto</translation>
 <translation id="8912793549644936705">Förläng</translation>
 <translation id="8912810933860534797">Aktivera automatisk genomsökning</translation>
@@ -7513,6 +7521,7 @@
 <translation id="9033765790910064284">Fortsätt ändå</translation>
 <translation id="9033857511263905942">K&amp;listra in</translation>
 <translation id="903480517321259405">Skriv pinkoden en gång till</translation>
+<translation id="9037054491984310631">Ansluten till Bluetooth-enheten <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">Otillåten enhet</translation>
 <translation id="9037818663270399707">Anslutningen är inte privat för all nätverkstrafik</translation>
 <translation id="9037965129289936994">Visa original</translation>
@@ -7593,6 +7602,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> kan vara farlig. Vill du skicka den till Google för genomsökning?</translation>
 <translation id="9112987648460918699">Sök...</translation>
 <translation id="9113240369465613386">Endast udda sidor</translation>
+<translation id="9113469270512809735">Aktivera/inaktivera nyligen stängda objekt</translation>
 <translation id="9114663181201435112">Logga in enkelt</translation>
 <translation id="9115675100829699941">&amp;Bokmärken</translation>
 <translation id="9116465289595958864">Senast ändrad</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 799dff8f..e70f0f6 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">Hitilafu</translation>
 <translation id="1166212789817575481">Funga Vichupo vilivyo Upande wa Kulia</translation>
 <translation id="1166583374608765787">Kagua mabadiliko ya jina</translation>
+<translation id="1166596238782048887">Kichupo cha <ph name="TAB_TITLE" /> ni cha eneokazi la <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">Inafungua baada ya <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Uliza wakati tovuti inataka kutumia fonti zilizosakinishwa kwenye kifaa chako</translation>
 <translation id="1171135284592304528">Angazia kipengee kilicholengwa kwa kibodi kinapobadilika</translation>
@@ -617,6 +618,7 @@
 <translation id="1640235262200048077">Bado <ph name="IME_NAME" /> haifanyi kazi kwenye programu za Linux</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 Na Usimbaji wa RSA</translation>
 <translation id="1641113438599504367">Kuvinjari Salama</translation>
+<translation id="1642492862748815878">Imeunganishwa kwenye <ph name="DEVICE" /> na vifaa vingine <ph name="NUMBER_OF_DEVICES" /> vyenye Bluetooth</translation>
 <translation id="1642494467033190216">Kuondoa ulinzi na kuzima na kuwasha rootfs kunahitajika kabla ya kuwasha vipengele vya kutatua.</translation>
 <translation id="1643072738649235303">Sahihi ya X9.62 ECDSA yenye SHA-1</translation>
 <translation id="1643921258693943800">Ili uweze kutumia kipengele cha Uhamishaji wa Karibu, washa Bluetooth na Wi-Fi</translation>
@@ -1831,6 +1833,7 @@
 <translation id="2885378588091291677">Kidhibiti cha Shughuli</translation>
 <translation id="2885729872133513017">Tatizo limetokea wakati wa kusimbua majibu ya seva.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> na vingine <ph name="NUMBER_OF_DEVICES" /></translation>
 <translation id="2889064240420137087">Fungua kiungo kwa...</translation>
 <translation id="2891922230654533301">Ungependa kutumia kifaa chako kuingia katika akaunti kwenye <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Kivinjari chaguomsingi</translation>
@@ -2765,6 +2768,7 @@
 <translation id="3884152383786131369">Maudhui ya wavuti yanayopatikana katika lugha nyingi yatatumia lugha ya kwanza inayoweza kutumika kwenye orodha hii. Mapendeleo haya husawazishwa na mipangilio ya kivinjari chako. <ph name="BEGIN_LINK_LEARN_MORE" />Pata maelezo zaidi<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Masasisho yanadhibitiwa na msimamizi wako</translation>
 <translation id="3886446263141354045">Ombi lako la kufikia tovuti hii limetumwa kwa <ph name="NAME" /></translation>
+<translation id="3887022758415973389">Onyesha orodha ya vifaa</translation>
 <translation id="3888053818972567950">Muunganisho wa <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">Madokezo yanachukuliwa na <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Maelezo haya yanatusaidia kuelewa vizuri zaidi tatizo lako la programu ya Mratibu. Yanahifadhiwa kwa hadi siku 90 na yanaweza kufikiwa tu na timu zinazofaa za uhandisi na maoni.</translation>
@@ -3474,6 +3478,7 @@
 <translation id="4662373422909645029">Jina la kuwakilisha halipaswi kuwa na nambari</translation>
 <translation id="4662788913887017617">Shiriki alamisho hii na iPhone yako</translation>
 <translation id="4663373278480897665">Kamera imeruhusiwa</translation>
+<translation id="4664289193573249666">Dhibiti DNS salama katika mipangilio ya mfumo wa uendeshaji wa Chrome</translation>
 <translation id="4664482161435122549">Hitilafu ya Kuhamisha ya PKCS #12</translation>
 <translation id="4665014895760275686">Mtengenezaji</translation>
 <translation id="4665446389743427678">Hatua hii itafuta data yote inayohifadhiwa na <ph name="SITE" />.</translation>
@@ -6006,6 +6011,7 @@
 <translation id="7478623944308207463">Mipangilio na programu zako zitasawazishwa kwenye vifaa vyote vinavyotumia Mfumo wa Uendeshaji wa Chrome, ambavyo umetumia kuingia katika akaunti yako ya Google. Ili upate chaguo za kusawazisha kwenye kivinjari, nenda katika <ph name="LINK_BEGIN" />Mipangilio ya Chrome<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Usiruhusu tovuti ziunganishe kwenye milango ya kutuma biti za data kwa mfululizo</translation>
 <translation id="7479221278376295180">Muhtasari wa Matumizi ya Hifadhi</translation>
+<translation id="747981547666531654">Imeunganishwa kwenye vifaa vyenye Bluetooth viitwavyo <ph name="FIRST_DEVICE" /> na <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">Mbele</translation>
 <translation id="7481358317100446445">Iko tayari</translation>
 <translation id="748138892655239008">Vizuizi Msingi vya Cheti</translation>
@@ -6058,6 +6064,7 @@
 <translation id="7531771599742723865">Kifaa kinatumika</translation>
 <translation id="7531779363494549572">Nenda kwenye Mipangilio &gt; Programu na arifa &gt; Arifa.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> haifanyi kazi. Chagua "Lazimisha kufunga" ili ufunge programu.</translation>
+<translation id="7535730537657706072">Ili ufute historia ya kuvinjari katika hali fiche kwenye kifaa chako, funga vichupo vyote fiche</translation>
 <translation id="7535791657097741517">Washa mandhari meupe</translation>
 <translation id="7537451260744431038">Tovuti haziwezi kutumia vidakuzi ili kuboresha hali yako ya kuvinjari, kwa mfano, ili kufanya ubaki ukiwa umeingia katika akaunti au kukumbuka bidhaa zilizo kwenye kikapu chako cha ununuzi</translation>
 <translation id="753769905878158714">Katika sehemu ya anwani, weka neno muhimu la tovuti unayotaka kutafuta. Kisha, tumia mikato ya kibodi ili uendelee.</translation>
@@ -6677,6 +6684,7 @@
 <translation id="8138217203226449454">Je, ulitaka kubadilisha mtoa huduma wako wa utafutaji?</translation>
 <translation id="8138997515734480534">Hali ya <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">Faili za Hifadhi ya Google</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Inafungua katika kivinjari mbadala sasa</translation>
 <translation id="8141725884565838206">Simamia manenosiri yako</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{video}other{Video #}}</translation>
@@ -6766,7 +6774,6 @@
 <translation id="8235418492073272647">Ukurasa umeshirikiwa kutoka <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">ufunge</translation>
 <translation id="8236917170563564587">Shiriki kichupo hiki badala yake</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> imewekewa mipangilio ya kufunguka katika kichupo kipya cha kivinjari, viungo vinavyoweza kutumika pia vitafunguka katika kivinjari hicho.</translation>
 <translation id="8237647586961940482">Nyekundu na waridi iliyokolea</translation>
 <translation id="8239032431519548577">Usajili wa biashara umekamilika</translation>
 <translation id="8239932336306009582">Zisizoruhusiwa kutuma arifa</translation>
@@ -7392,6 +7399,7 @@
 <translation id="8909782404367982052">Buruta ili Utafute Picha kwa kutumia Lenzi ya Google</translation>
 <translation id="8909833622202089127">Tovuti inafuatilia mahali ulipo</translation>
 <translation id="8910222113987937043">Mabadiliko ya alamisho, historia, manenosiri, na mipangilio yako mingine hayatasawazishwa kwenye Akaunti yako ya Google. Hata hivyo, data yako ya sasa itaendelea kuhifadhiwa katika Akaunti yako ya Google na inaweza kudhibitiwa kwenye <ph name="BEGIN_LINK" />Dashibodi ya Google<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Ficha orodha ya vifaa</translation>
 <translation id="8912362522468806198">Akaunti ya Google</translation>
 <translation id="8912793549644936705">Panua</translation>
 <translation id="8912810933860534797">Washa ukaguzi wa kiotomatiki</translation>
@@ -7509,6 +7517,7 @@
 <translation id="9033765790910064284">Endelea tu</translation>
 <translation id="9033857511263905942">&amp;Bandika</translation>
 <translation id="903480517321259405">Andika PIN tena</translation>
+<translation id="9037054491984310631">Imeunganishwa kwenye kifaa chenye Bluetooth kiitwacho <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">Kifaa hiki hakiruhusiwi</translation>
 <translation id="9037818663270399707">Muunganisho wako si wa faragha kwenye trafiki yote ya mtandao</translation>
 <translation id="9037965129289936994">Onyesha Asili</translation>
@@ -7589,6 +7598,7 @@
 <translation id="9112786533191410418">Huenda <ph name="FILE_NAME" /> ni hatari. Ungependa kuituma kwa Google ili ikaguliwe?</translation>
 <translation id="9112987648460918699">Pata...</translation>
 <translation id="9113240369465613386">Kurasa witiri pekee</translation>
+<translation id="9113469270512809735">Onyesha au Ufiche Vipengee Ulivyofunga Hivi Majuzi</translation>
 <translation id="9114663181201435112">Ingia katika akaunti kwa urahisi</translation>
 <translation id="9115675100829699941">&amp;Alamisho</translation>
 <translation id="9116465289595958864">Wakati zilibadilishwa</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 2fbf362..ddebffa 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -16,7 +16,7 @@
 <translation id="1010498023906173788">இந்தத் தாவல் ஒரு சீரியல் போர்ட்டுடன் இணைக்கப்பட்டுள்ளது.</translation>
 <translation id="1010833424573920260">{NUM_PAGES,plural, =1{பக்கம் செயலிழந்தது}other{பக்கங்கள் செயலிழந்தன}}</translation>
 <translation id="1011355516189274711">’உரையிலிருந்து பேச்சு’ ஒலியளவு</translation>
-<translation id="1012794136286421601">உங்கள் 'ஆவணங்கள்', 'தாள்கள்', 'ஸ்லைடுகள்' மற்றும் 'வரைபடக்' கோப்புகள் ஒத்திசைக்கப்படுகின்றன. அவற்றை ஆன்லைனிலோ ஆஃப்லைனிலோ அணுக Google இயக்கக ஆப்ஸைத் திறக்கவும்.</translation>
+<translation id="1012794136286421601">உங்கள் 'ஆவணங்கள்', 'தாள்கள்', 'ஸ்லைடுகள்' மற்றும் 'வரைபடக்' ஃபைல்கள்  ஒத்திசைக்கப்படுகின்றன. அவற்றை ஆன்லைனிலோ ஆஃப்லைனிலோ அணுக Google இயக்கக ஆப்ஸைத் திறக்கவும்.</translation>
 <translation id="1012876632442809908">USB-C சாதனம் (முன்பக்கப் போர்ட்)</translation>
 <translation id="1015041505466489552">TrackPoint</translation>
 <translation id="1015318665228971643">கோப்புறையின் பெயரை மாற்று</translation>
@@ -285,7 +285,7 @@
 <translation id="1302227299132585524">Apple Events இலிருந்து JavaScriptஐ அனுமதி</translation>
 <translation id="1303101771013849280">HTML ஃபைலை புக்மார்க் செய்கிறது</translation>
 <translation id="1303671224831497365">புளூடூத் சாதனங்கள் இல்லை</translation>
-<translation id="130491383855577612">Linux ஆப்ஸ் &amp; கோப்புகள் வெற்றிகரமாக மாற்றப்பட்டன</translation>
+<translation id="130491383855577612">Linux ஆப்ஸ் &amp; ஃபைல்கள்  வெற்றிகரமாக மாற்றப்பட்டன</translation>
 <translation id="1306390193749326011">இந்தப் பக்கத்தில் <ph name="MODULE_NAME" /> காட்டப்படாது</translation>
 <translation id="1306606229401759371">அமைப்புகளை மாற்று</translation>
 <translation id="1307165550267142340">உங்கள் பின் உருவாக்கப்பட்டது</translation>
@@ -374,7 +374,7 @@
 <translation id="1407135791313364759">எல்லாவற்றையும் திற</translation>
 <translation id="140723521119632973">செல்லுலார் செயல்படுத்தல்</translation>
 <translation id="1407489512183974736">மையமாக வெட்டப்பட்டது</translation>
-<translation id="1408504635543854729">கோப்புகள் பயன்பாட்டில் சாதனத்தின் உள்ளடக்கத்தைத் தேடவும். உள்ளடக்கத்தை நிர்வாகி கட்டுப்படுத்துவதால் அதைத் திருத்த முடியாது.</translation>
+<translation id="1408504635543854729">ஃபைல்கள்  பயன்பாட்டில் சாதனத்தின் உள்ளடக்கத்தைத் தேடவும். உள்ளடக்கத்தை நிர்வாகி கட்டுப்படுத்துவதால் அதைத் திருத்த முடியாது.</translation>
 <translation id="1408980562518920698">தனிப்பட்ட தகவல்களை நிர்வகி</translation>
 <translation id="1410197035576869800">ஆப்ஸின் ஐகான்</translation>
 <translation id="1410616244180625362">உங்கள் கேமராவை அணுக <ph name="HOST" /> ஐத் தொடர்ந்து அனுமதிக்கவும்</translation>
@@ -853,7 +853,7 @@
 <translation id="1864400682872660285">அதிக நீலம்</translation>
 <translation id="1864454756846565995">USB-C சாதனம் (பின்பக்கப் போர்ட்)</translation>
 <translation id="1865769994591826607">ஒரே தள இணைப்புகள் மட்டும்</translation>
-<translation id="186612162884103683">தேர்வுசெய்யப்பட்ட இடங்களில் உள்ள படங்கள், வீடியோ மற்றும் ஒலி கோப்புகள் ஆகியவற்றை "<ph name="EXTENSION" />" ஆல் படிக்க மற்றும் எழுத முடியும்.</translation>
+<translation id="186612162884103683">தேர்வுசெய்யப்பட்ட இடங்களில் உள்ள படங்கள், வீடியோ மற்றும் ஒலி ஃபைல்கள்  ஆகியவற்றை "<ph name="EXTENSION" />" ஆல் படிக்க மற்றும் எழுத முடியும்.</translation>
 <translation id="1867780286110144690"><ph name="PRODUCT_NAME" /> உங்கள் நிறுவலை நிறைவு செய்யத் தயாராக உள்ளது</translation>
 <translation id="1868553836791672080">கடவுச்சொல் சரிபார்ப்பு அம்சம் Chromiumமில் இல்லை</translation>
 <translation id="1869433484041798909">புக்மார்க் பட்டன்</translation>
@@ -875,7 +875,7 @@
 <translation id="1880905663253319515">"<ph name="CERTIFICATE_NAME" />" சான்றிதழை நீக்கவா?</translation>
 <translation id="188114911237521550">டார்க் பயன்முறையை முடக்குதல்</translation>
 <translation id="1881445033931614352">கீபோர்டு தளவமைப்பு</translation>
-<translation id="1881577802939775675">{COUNT,plural, =1{கோப்பு}other{# கோப்புகள்}}</translation>
+<translation id="1881577802939775675">{COUNT,plural, =1{கோப்பு}other{# ஃபைல்கள் }}</translation>
 <translation id="1884340228047885921">தற்போதைய தெரிவுநிலை அமைப்பு: சில தொடர்புகள்</translation>
 <translation id="1884705339276589024">Linux டிஸ்க்கின் அளவை மாற்று</translation>
 <translation id="1885106732301550621">டிஸ்க் சேமிப்பிடம்</translation>
@@ -967,7 +967,7 @@
 <translation id="1988259784461813694">தேவைகள்</translation>
 <translation id="1989112275319619282">உலாவு</translation>
 <translation id="1989113344093894667">உள்ளடக்கத்தைப் படமெடுக்க முடியவில்லை</translation>
-<translation id="1990046457226896323">உடனடி வசனத்தின் கோப்புகள் பதிவிறக்கப்பட்டன</translation>
+<translation id="1990046457226896323">உடனடி வசனத்தின் ஃபைல்கள்  பதிவிறக்கப்பட்டன</translation>
 <translation id="1990512225220753005">இந்தப் பக்கத்தில் ஷார்ட்கட்களைக் காண்பிக்க வேண்டாம்</translation>
 <translation id="199191324030140441">'தொந்தரவு செய்ய வேண்டாம்' அம்சத்தை முடக்குதல்</translation>
 <translation id="1992397118740194946">அமைக்கப்படவில்லை</translation>
@@ -1692,7 +1692,7 @@
 <translation id="2740531572673183784">சரி</translation>
 <translation id="2741713322780029189">மீட்பு டெர்மினலைத் திற</translation>
 <translation id="2741912629735277980">உள்நுழைவுத் திரையில் UIயைக் காட்டு</translation>
-<translation id="274290345632688601">Linux ஆப்ஸ் &amp; கோப்புகள் மீட்டமைக்கப்படுகின்றன.</translation>
+<translation id="274290345632688601">Linux ஆப்ஸ் &amp; ஃபைல்கள்  மீட்டமைக்கப்படுகின்றன.</translation>
 <translation id="274318651891194348">கீபோர்டைத் தேடுகிறது</translation>
 <translation id="2743387203779672305">கிளிப்போர்டுக்கு நகலெடு</translation>
 <translation id="2745080116229976798">Microsoft Qualified Subordination</translation>
@@ -1722,7 +1722,7 @@
 <translation id="2771816809568414714">பாலாடைக் கட்டி</translation>
 <translation id="2772936498786524345">ஸ்னீக்கி</translation>
 <translation id="2773288106548584039">லெகஸி உலாவி ஆதரவு</translation>
-<translation id="2773802008104670137">இது போன்ற கோப்புகள் உங்கள் கம்ப்யூட்டருக்குத் தீங்கு விளைவிக்கக்கூடும்.</translation>
+<translation id="2773802008104670137">இது போன்ற ஃபைல்கள்  உங்கள் கம்ப்யூட்டருக்குத் தீங்கு விளைவிக்கக்கூடும்.</translation>
 <translation id="2775104091073479743">கைரேகைகளை மாற்று</translation>
 <translation id="2781692009645368755">Google Pay</translation>
 <translation id="2782104745158847185">ஒரு Linux ஆப்ஸை நிறுவும்போது பிழை நேர்ந்தது</translation>
@@ -1761,7 +1761,7 @@
 <translation id="2806372837663997957">எந்தச் சாதனத்துடன் பகிர்கிறீர்களோ அது பகிர்வதற்கு அனுமதிக்கவில்லை</translation>
 <translation id="2806840421670364300">FLoC</translation>
 <translation id="2806891468525657116">ஷார்ட்கட் ஏற்கனவே உள்ளது</translation>
-<translation id="2807517655263062534">நீங்கள் பதிவிறக்கும் கோப்புகள் இங்கே தோன்றும்</translation>
+<translation id="2807517655263062534">நீங்கள் பதிவிறக்கும் ஃபைல்கள்  இங்கே தோன்றும்</translation>
 <translation id="2809586584051668049">மேலும் <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation>
 <translation id="2811205483104563968">கணக்குகள்</translation>
 <translation id="2812049959647166806">Thunderbolt ஆதரிக்கப்படவில்லை</translation>
@@ -2110,11 +2110,11 @@
 <translation id="3183143381919926261">மொபைல் டேட்டா நெட்வொர்க்குகள்</translation>
 <translation id="3183944777708523606">மானிட்டரை ஒழுங்கமைத்தல்</translation>
 <translation id="3184536091884214176">CUPS பிரிண்டர்களை அமைத்தல் அல்லது நிர்வகித்தல். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
-<translation id="3188257591659621405">எனது கோப்புகள்</translation>
+<translation id="3188257591659621405">எனது ஃபைல்கள் </translation>
 <translation id="3188465121994729530">நகரும் சராசரி</translation>
 <translation id="3189187154924005138">பெரிய கர்சர்</translation>
 <translation id="3190558889382726167">கடவுச்சொல் சேமிக்கப்பட்டது</translation>
-<translation id="3192947282887913208">ஆடியோ கோப்புகள்</translation>
+<translation id="3192947282887913208">ஆடியோ ஃபைல்கள் </translation>
 <translation id="3197453258332670132">வலது கிளிக் செய்தோ நீண்ட நேரம் அழுத்தியோ, நீங்கள் தேர்ந்தெடுக்கும் உரைக்கான தொடர்புடைய தகவலைப் பார்க்கலாம்</translation>
 <translation id="3199127022143353223">சேவைகங்கள்</translation>
 <translation id="3200061262156232574">உங்கள் ஷாப்பிங் கார்ட்டில் உள்ளவை</translation>
@@ -2172,14 +2172,14 @@
 <translation id="3269093882174072735">படத்தை ஏற்று</translation>
 <translation id="326911502853238749"><ph name="MODULE_NAME" /> காட்ட வேண்டாம்</translation>
 <translation id="3269612321104318480">வெளிர் பசும் நீலம் &amp; வெள்ளை</translation>
-<translation id="3269689705184377744">{COUNT,plural, =1{கோப்பு}other{# கோப்புகள்}}</translation>
+<translation id="3269689705184377744">{COUNT,plural, =1{கோப்பு}other{# ஃபைல்கள் }}</translation>
 <translation id="326999365752735949">வேறுபாட்டைப் பதிவிறக்குகிறது</translation>
 <translation id="3270965368676314374">உங்கள் கம்ப்யூட்டரிலிருந்து படங்கள், இசை மற்றும் பிற மீடியாவைப் படிக்கலாம், மாற்றலாம் மேலும் நீக்கலாம்</translation>
 <translation id="327147043223061465">எல்லாக் குக்கீகளையும் தளத்தின் தரவையும் காட்டு</translation>
 <translation id="3274763671541996799">முழுத் திரைக்கு வந்துவிட்டீர்கள்.</translation>
 <translation id="3275778809241512831">உங்கள் அகப் பாதுகாப்பு விசை தற்சமயம் பாதுகாப்பாக இல்லை. ஏதேனும் சேவையுடன் இணைந்திருந்தால் அதனை அகற்றவும். இந்தச் சிக்கலை சரிசெய்ய பாதுகாப்பு விசையை ரீசெட் செய்யவும்.</translation>
 <translation id="3275778913554317645">சாளரமாகத் திற</translation>
-<translation id="3277691515294482687">Linuxஸை மேம்படுத்துவதற்கு முன்பு எனது ஆப்ஸையும் கோப்புகளையும் ‘எனது கோப்புகள்’ என்ற கோப்புறைக்குக் காப்புப் பிரதி எடு.</translation>
+<translation id="3277691515294482687">Linuxஸை மேம்படுத்துவதற்கு முன்பு எனது ஆப்ஸையும் கோப்புகளையும் ‘எனது ஃபைல்கள் ’ என்ற கோப்புறைக்குக் காப்புப் பிரதி எடு.</translation>
 <translation id="3278001907972365362">உங்கள் Google கணக்கு(கள்) மதிப்பாய்வு செய்யப்பட வேண்டும்.</translation>
 <translation id="3279092821516760512">தேர்ந்தெடுத்த தொடர்புகள் அருகில் இருக்கும்போது உங்களுடன் பகிர முடியும். நீங்கள் ஏற்கும் வரை பரிமாற்றங்கள் தொடங்காது.</translation>
 <translation id="3279230909244266691">இதற்குச் சில நிமிடங்கள் ஆகலாம். விர்ச்சுவல் மெஷினைத் தொடங்குகிறது.</translation>
@@ -2227,7 +2227,7 @@
 <translation id="3325804108816646710">சுயவிவரங்கள் உள்ளதா எனப் பார்க்கிறது...</translation>
 <translation id="3325910708063135066">Mac சிஸ்டம் விருப்பத்தேர்வுகளில் மைக்ரோஃபோன் மற்றும் கேமரா முடக்கப்பட்டுள்ளது</translation>
 <translation id="3327050066667856415">பாதுகாப்பான பயன்பாட்டிற்காகவே Chromebookகுகள் வடிவமைக்கப்பட்டுள்ளன. உங்கள் சாதனம் மால்வேரில் இருந்து தானாகவே பாதுகாக்கப்படும், கூடுதலாக எந்த மென்பொருளும் தேவையில்லை.</translation>
-<translation id="3328489342742826322">காப்புப்பிரதியிலிருந்து மீட்டமைக்கும் போது 'Linux கோப்புகள்' கோப்புறையில் ஏற்கனவே உள்ள Linux ஆப்ஸும் தரவும் நீக்கப்படும்.</translation>
+<translation id="3328489342742826322">காப்புப்பிரதியிலிருந்து மீட்டமைக்கும் போது 'Linux ஃபைல்கள் ' கோப்புறையில் ஏற்கனவே உள்ள Linux ஆப்ஸும் தரவும் நீக்கப்படும்.</translation>
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">ஆப்ஸ் தகவல்</translation>
 <translation id="3333190335304955291">இந்தச் சேவையை அமைப்புகளில் முடக்கலாம்.</translation>
@@ -2562,7 +2562,7 @@
 <translation id="3683524264665795342"><ph name="APP_NAME" /> திரை பகிர்தல் கோரிக்கை</translation>
 <translation id="3685598397738512288">Linux USB விருப்பத்தேர்வுகள்</translation>
 <translation id="368789413795732264"><ph name="ERROR_TEXT" /> என்ற கோப்பை எழுத முயற்சிக்கும்போது ஒரு பிழை ஏற்பட்டது.</translation>
-<translation id="3688507211863392146">பயன்பாட்டில் நீங்கள் திறக்கும் கோப்புகள் மற்றும் கோப்புறைகளில் எழுதலாம்</translation>
+<translation id="3688507211863392146">பயன்பாட்டில் நீங்கள் திறக்கும் ஃபைல்கள்  மற்றும் கோப்புறைகளில் எழுதலாம்</translation>
 <translation id="3688526734140524629">சேனலை மாற்று</translation>
 <translation id="3688578402379768763">புதுப்பித்த நிலையில்</translation>
 <translation id="3688794912214798596">மொழிகளை மாற்றுக...</translation>
@@ -2573,7 +2573,7 @@
 <translation id="3693415264595406141">கடவுச்சொல்:</translation>
 <translation id="3694027410380121301">முந்தைய தாவலைத் தேர்ந்தெடு</translation>
 <translation id="369489984217678710">கடவுச்சொற்களும் பிற உள்நுழைவுத் தரவும்</translation>
-<translation id="369522892592566391">{NUM_FILES,plural, =0{பாதுகாப்புச் சோதனைகள் முடிந்தன. உங்கள் தரவு பதிவேற்றப்படும்.}=1{பாதுகாப்புச் சோதனைகள் முடிந்தன. உங்கள் கோப்பு பதிவேற்றப்படும்.}other{பாதுகாப்புச் சோதனைகள் முடிந்தன. உங்கள் கோப்புகள் பதிவேற்றப்படும்.}}</translation>
+<translation id="369522892592566391">{NUM_FILES,plural, =0{பாதுகாப்புச் சோதனைகள் முடிந்தன. உங்கள் தரவு பதிவேற்றப்படும்.}=1{பாதுகாப்புச் சோதனைகள் முடிந்தன. உங்கள் கோப்பு பதிவேற்றப்படும்.}other{பாதுகாப்புச் சோதனைகள் முடிந்தன. உங்கள் ஃபைல்கள்  பதிவேற்றப்படும்.}}</translation>
 <translation id="3696576298374669274">சேவைப் பதிவுகளைக் காட்டு</translation>
 <translation id="3699624789011381381">மின்னஞ்சல் முகவரி</translation>
 <translation id="3699920817649120894">ஒத்திசைவையும் தனிப்பயனாக்கத்தையும் முடக்கவா?</translation>
@@ -2648,7 +2648,7 @@
 <translation id="3766811143887729231"><ph name="REFRESH_RATE" /> Hz</translation>
 <translation id="377050016711188788">ஐஸ்கிரீம்</translation>
 <translation id="3771290962915251154">பெற்றோர் கட்டுப்பாடுகள் இயக்கத்தில் உள்ளதால் இந்த அமைப்பு முடக்கப்பட்டுள்ளது</translation>
-<translation id="3771294271822695279">வீடியோ கோப்புகள்</translation>
+<translation id="3771294271822695279">வீடியோ ஃபைல்கள் </translation>
 <translation id="3775432569830822555">SSL சேவையக சான்றிதழ்</translation>
 <translation id="3775705724665058594">உங்கள் சாதனங்களுக்கு அனுப்புதல்</translation>
 <translation id="3776508619697147021">பல ஃபைல்களைத் தானாகப் பதிவிறக்க முயலும்போது தளங்கள் அனுமதி கேட்க வேண்டும்</translation>
@@ -2805,7 +2805,7 @@
 <translation id="3916445069167113093">இவ்வகையான கோப்பு உங்கள் கம்ப்யூட்டரைப் பாதிக்கக்கூடும். இருப்பினும் <ph name="FILE_NAME" /> ஐ வைத்திருக்க வேண்டுமா?</translation>
 <translation id="3918972485393593704">Googleளுக்கு விவரங்களை அனுப்பு</translation>
 <translation id="3919145445993746351">உங்கள் அனைத்துக் கணிணிகளிலும் நீட்டிப்புகளைப் பெற, ஒத்திசைவை இயக்கவும்</translation>
-<translation id="3919798653937160644">இந்தச் சாளரத்தில் நீங்கள் பார்க்கும் பக்கங்கள் உலாவியின் இதுவரையான செயல்பாடுகளில் தோன்றாது. திறக்கப்பட்டிருக்கும் கெஸ்ட் சாளரங்கள் அனைத்தையும் மூடியபிறகு அவை குக்கீகள் போன்ற பிற தடங்களைக் கம்ப்யூட்டரில் விட்டுச் செல்லாது. இருப்பினும், நீங்கள் பதிவிறக்கிய கோப்புகள் அனைத்தும் பாதுகாக்கப்படும்.</translation>
+<translation id="3919798653937160644">இந்தச் சாளரத்தில் நீங்கள் பார்க்கும் பக்கங்கள் உலாவியின் இதுவரையான செயல்பாடுகளில் தோன்றாது. திறக்கப்பட்டிருக்கும் கெஸ்ட் சாளரங்கள் அனைத்தையும் மூடியபிறகு அவை குக்கீகள் போன்ற பிற தடங்களைக் கம்ப்யூட்டரில் விட்டுச் செல்லாது. இருப்பினும், நீங்கள் பதிவிறக்கிய ஃபைல்கள்  அனைத்தும் பாதுகாக்கப்படும்.</translation>
 <translation id="3920504717067627103">சான்றிதழ் கொள்கைகள்</translation>
 <translation id="392089482157167418">ChromeVox (பேச்சுவடிவ கருத்து) ஐ இயக்கு</translation>
 <translation id="3920909973552939961">பேமெண்ட் ஹேண்ட்லர்களை நிறுவ அனுமதி இல்லாத தளங்கள்</translation>
@@ -3100,7 +3100,7 @@
 <translation id="4260182282978351200"><ph name="FILE_NAME" /> ஆபத்தானதாக இருக்கக்கூடும். ஸ்கேன் செய்வதற்காக இதை Googleளின் 'மேம்பட்ட பாதுகாப்புக்கு' அனுப்பவா? பதிவிறக்கங்கள் பட்டிக்குச் செல்ல Shift+F6 விசைகளை அழுத்தவும்.</translation>
 <translation id="4263223596040212967">கீபோர்டின் தளவமைப்பை சரிபார்த்துவிட்டு மீண்டும் முயலவும்.</translation>
 <translation id="426564820080660648">புதுப்பிப்புகளைப் பார்க்க, ஈத்தர்நெட், வைஃபை அல்லது மொபைல் டேட்டாவைப் பயன்படுத்தவும்.</translation>
-<translation id="4266679478228765574">கோப்புறைகளை அகற்றுவதால் பகிர்வது நிறுத்தப்படும், ஆனால் கோப்புகள் நீக்கப்படாது.</translation>
+<translation id="4266679478228765574">கோப்புறைகளை அகற்றுவதால் பகிர்வது நிறுத்தப்படும், ஆனால் ஃபைல்கள்  நீக்கப்படாது.</translation>
 <translation id="4267455501101322486">கல்வி தொடர்பான ஆதாரங்களை அணுகுவதற்கென்று ஒரு கணக்கைச் சேர்க்க, பெற்றோரின் அனுமதியைக் கோரவும்</translation>
 <translation id="4267924571297947682">பெற்றோரிடம் அனுமதி கேளுங்கள்</translation>
 <translation id="4267953847983678297">தானாகவே மொபைல் டேட்டாவுடன் இணை</translation>
@@ -3449,7 +3449,7 @@
 <translation id="4635072447747973225">Crostiniயை நிறுவல் நீக்கு</translation>
 <translation id="4635398712689569051">கெஸ்ட் பயனர்களுக்கு <ph name="PAGE_NAME" /> கிடைக்காது.</translation>
 <translation id="4635444580397524003">Linux காப்புப் பிரதி மீட்டெடுக்கப்பட்டது.</translation>
-<translation id="4636682061478263818">Drive கோப்புகள்</translation>
+<translation id="4636682061478263818">Drive ஃபைல்கள் </translation>
 <translation id="4636930964841734540">தகவல்</translation>
 <translation id="4637083375689622795">கூடுதல் செயல்கள், <ph name="EMAIL" /></translation>
 <translation id="4637189644956543313">மீண்டும் கேமராவைப் பயன்படுத்து</translation>
@@ -3512,7 +3512,7 @@
 <translation id="4697071790493980729">முடிவுகள் எதுவும் இல்லை</translation>
 <translation id="4697551882387947560">உலாவல் அமர்வு முடியும்போது</translation>
 <translation id="469838979880025581">மைக்ரோஃபோனைப் பயன்படுத்த முயலும்போது தளங்கள் அனுமதி கேட்க வேண்டும்</translation>
-<translation id="4699172675775169585">தற்காலிகமாகச் சேமிக்கப்பட்ட படங்கள் மற்றும் கோப்புகள்</translation>
+<translation id="4699172675775169585">தற்காலிகமாகச் சேமிக்கப்பட்ட படங்கள் மற்றும் ஃபைல்கள் </translation>
 <translation id="4699357559218762027">(தானாக துவக்கப்பட்டது)</translation>
 <translation id="4701025263201366865">பெற்றோர் உள்நுழைதல்</translation>
 <translation id="4707582759326616943">Google Lens மூலம் படங்களைத் தேட, கிளிக் செய்து இழுக்கவும்</translation>
@@ -4093,7 +4093,7 @@
 <translation id="5360150013186312835">கருவிப்பட்டியில் காட்டு</translation>
 <translation id="5362741141255528695">தனிப்பட்ட விசை கோப்பைத் தேர்ந்தெடு.</translation>
 <translation id="5363109466694494651">பவர்வாஷ் செய்து மாற்றியமை</translation>
-<translation id="5365881113273618889">நீங்கள் தேர்ந்தெடுத்த கோப்புறையில் முக்கியமான கோப்புகள் உள்ளன. "<ph name="APP_NAME" />" இந்தக் கோப்புறைக்கான நிரந்தர எழுதும் அணுகலை நிச்சயமாக வழங்க விரும்புகிறீர்களா?</translation>
+<translation id="5365881113273618889">நீங்கள் தேர்ந்தெடுத்த கோப்புறையில் முக்கியமான ஃபைல்கள்  உள்ளன. "<ph name="APP_NAME" />" இந்தக் கோப்புறைக்கான நிரந்தர எழுதும் அணுகலை நிச்சயமாக வழங்க விரும்புகிறீர்களா?</translation>
 <translation id="536638840841140142">மார்ஜின்கள் எதுவுமில்லை</translation>
 <translation id="5368720394188453070">ஃபோன் பூட்டப்பட்டது. நுழைய, அன்லாக் செய்யவும்.</translation>
 <translation id="5368779022775404937"><ph name="REALM" /> இல் உள்நுழையவும்</translation>
@@ -4208,7 +4208,7 @@
 <translation id="5494362494988149300">&amp;முடிந்ததும் திற</translation>
 <translation id="5494752089476963479">குறுக்கிடும் அல்லது தவறாக வழிநடத்தும் விளம்பரங்களைக் காட்டும் தளங்களில் விளம்பரங்களைத் தடு</translation>
 <translation id="5494920125229734069">எல்லாவற்றையும் தேர்ந்தெடு</translation>
-<translation id="5495466433285976480">நீங்கள் அடுத்தமுறை மறுதொடக்கம் செய்தபின்னர், அகப் பயனர்கள், கோப்புகள், தரவு அனைத்தையும், பிற அமைப்புகளையும் இது அகற்றும். எல்லா பயனர்களும் மீண்டும் உள்நுழைய வேண்டியிருக்கும்.</translation>
+<translation id="5495466433285976480">நீங்கள் அடுத்தமுறை மறுதொடக்கம் செய்தபின்னர், அகப் பயனர்கள், ஃபைல்கள் , தரவு அனைத்தையும், பிற அமைப்புகளையும் இது அகற்றும். எல்லா பயனர்களும் மீண்டும் உள்நுழைய வேண்டியிருக்கும்.</translation>
 <translation id="5495597166260341369">திரையை இயக்கத்தில் வை</translation>
 <translation id="5496587651328244253">ஒழுங்கமை</translation>
 <translation id="5496730470963166430">பாப்-அப்களை அனுப்ப/திசைதிருப்புதல்களைப் பயன்படுத்த அனுமதி இல்லாத தளங்கள்</translation>
@@ -4447,7 +4447,7 @@
 <translation id="5764483294734785780">ஆடியோவை இவ்வாறு சே&amp;மி...</translation>
 <translation id="57646104491463491">மாற்றிய தேதி</translation>
 <translation id="5764797882307050727">சாதனத்தில் சிறிது இடத்தைக் காலி செய்யவும்.</translation>
-<translation id="5765425701854290211">சில கோப்புகள் சேதமடைந்ததால், புதுப்பிக்க முடியவில்லை. ஒத்திசைத்த கோப்புகள் பாதுகாப்பாக உள்ளன.</translation>
+<translation id="5765425701854290211">சில ஃபைல்கள்  சேதமடைந்ததால், புதுப்பிக்க முடியவில்லை. ஒத்திசைத்த ஃபைல்கள்  பாதுகாப்பாக உள்ளன.</translation>
 <translation id="5765491088802881382">நெட்வொர்க்குகள் எதுவும் கிடைக்கவில்லை</translation>
 <translation id="5766243637773654698"><ph name="FILE_NAME" /> ஆபத்தானதாக இருக்கக்கூடும். ஸ்கேன் செய்ய இதை Googleளுக்கு அனுப்பவா? பதிவிறக்கங்கள் பட்டிக்குச் செல்ல, Shift+F6 விசைகளை அழுத்தவும்.</translation>
 <translation id="5770125698810550803">வழிசெலுத்தல் பட்டன்களைக் காட்டு</translation>
@@ -4455,11 +4455,11 @@
 <translation id="5772114492540073460">உங்கள் Chromebookகில் Windows® ஆப்ஸை இயக்க <ph name="PARALLELS_NAME" /> அனுமதிக்கிறது. நிறுவுவதற்குக் குறைந்தபட்சம் <ph name="MINIMUM_SPACE" /> சேமிப்பகத்தைக் காலியாக வைத்திருப்பது சிறந்தது.</translation>
 <translation id="5772265531560382923">{NUM_PAGES,plural, =1{பக்கம் செயல்படும் வரை காத்திருக்கலாம் அல்லது அதிலிருந்து வெளியேறலாம்.}other{பக்கங்கள் செயல்படும் வரை காத்திருக்கலாம் அல்லது அவற்றிலிருந்து வெளியேறலாம்.}}</translation>
 <translation id="577322787686508614">படித்தல் செயல்பாடு இந்தச் சாதனத்தில் அனுமதிக்கப்படவில்லை: "<ph name="DEVICE_NAME" />".</translation>
-<translation id="5774295353725270860">கோப்புகள் பயன்பாட்டைத் திற</translation>
+<translation id="5774295353725270860">ஃபைல்கள்  பயன்பாட்டைத் திற</translation>
 <translation id="577624874850706961">குக்கீகளைத் தேடு</translation>
 <translation id="5777468213129569553">Chromeஐத் திற</translation>
 <translation id="5778491106820461378">உள்நுழைந்துள்ள Google கணக்குகளை <ph name="LINK_BEGIN" />அமைப்புகளில்<ph name="LINK_END" /> நிர்வகிக்கலாம். இணையதளங்களுக்கும் ஆப்ஸுக்கும் நீங்கள் வழங்கிய அனுமதிகள் அனைத்துக் கணக்குகளுக்கும் பொருந்தக்கூடும். உங்கள் கணக்குத் தகவலைத் தளங்களோ ஆப்ஸோ அணுக வேண்டாம் என நீங்கள் விரும்பினால் <ph name="DEVICE_TYPE" /> சாதனத்தில் கெஸ்டாக உள்நுழையலாம்.</translation>
-<translation id="5780011244986845107">நீங்கள் தேர்ந்தெடுத்த கோப்புறையில் முக்கியமான கோப்புகள் உள்ளன. "<ph name="APP_NAME" />"க்கு இந்தக் கோப்புறைக்கான நிரந்தர படிக்கும் அணுகலை நிச்சயமாக வழங்க விரும்புகிறீர்களா?</translation>
+<translation id="5780011244986845107">நீங்கள் தேர்ந்தெடுத்த கோப்புறையில் முக்கியமான ஃபைல்கள்  உள்ளன. "<ph name="APP_NAME" />"க்கு இந்தக் கோப்புறைக்கான நிரந்தர படிக்கும் அணுகலை நிச்சயமாக வழங்க விரும்புகிறீர்களா?</translation>
 <translation id="5780973441651030252">செயல்படுத்தல் முன்னுரிமை</translation>
 <translation id="5781092003150880845"><ph name="ACCOUNT_FULL_NAME" /> ஆக ஒத்திசை</translation>
 <translation id="5781865261247219930"><ph name="EXTENSION_NAME" />க்குக் கட்டளைகளை அனுப்பவும்</translation>
@@ -4510,7 +4510,7 @@
 <translation id="5834581999798853053"><ph name="TIME" /> நிமிடங்கள் உள்ளன</translation>
 <translation id="5835486486592033703"><ph name="WINDOW_TITLE" /> - கேமரா அல்லது மைக்ரோஃபோன் ரெக்கார்டு செய்கிறது</translation>
 <translation id="583673505367439042">எனது சாதனத்தில் உள்ள கோப்புகளிலும் கோப்புறைகளிலும் மாற்றம் செய்ய முயலும்போது தளங்கள் அனுமதி கேட்க வேண்டும்</translation>
-<translation id="5840680448799937675">கோப்புகள் எப்போதுமே ஆஃப்லைனில் பகிரப்படும்</translation>
+<translation id="5840680448799937675">ஃபைல்கள்  எப்போதுமே ஆஃப்லைனில் பகிரப்படும்</translation>
 <translation id="5841270259333717135">ஈத்தர்நெட்டை உள்ளமை</translation>
 <translation id="5842497610951477805">புளூடூத்தை இயக்கு</translation>
 <translation id="5843706793424741864">ஃபாரன்ஹீட்</translation>
@@ -5095,7 +5095,7 @@
 <translation id="6466988389784393586">புக்மார்க்ஸ் அனைத்தையும் &amp;திற</translation>
 <translation id="6467304607960172345">முழுத்திரை வீடியோக்களை மேம்படுத்து</translation>
 <translation id="6468485451923838994">எழுத்துருக்கள்</translation>
-<translation id="6468773105221177474"><ph name="FILE_COUNT" /> கோப்புகள்</translation>
+<translation id="6468773105221177474"><ph name="FILE_COUNT" /> ஃபைல்கள் </translation>
 <translation id="6469557521904094793">செல்லுலார் நெட்வொர்க்கை இயக்கு</translation>
 <translation id="6470823736074966819">அறிவிப்புகளை ஒலியடக்குதல்</translation>
 <translation id="6472893788822429178">முகப்பு பொத்தானைக் காண்பி</translation>
@@ -5116,7 +5116,7 @@
 <translation id="6494445798847293442">சான்றளிக்கும் அங்கீகாரம் அல்ல</translation>
 <translation id="6494750904506170417">பாப்-அப்கள் &amp; திசைதிருப்புதல்கள்</translation>
 <translation id="6494974875566443634">பிரத்தியேகமாக்குதல்</translation>
-<translation id="6497457470714179223">{NUM_FILES,plural, =0{இந்தத் தரவு பாதுகாக்கவேண்டிய/ஆபத்தான உள்ளடக்கத்தைக் கொண்டுள்ளது}=1{இந்தக் கோப்பு பாதுகாக்கவேண்டிய/ஆபத்தான உள்ளடக்கத்தைக் கொண்டுள்ளது}other{இந்தக் கோப்புகள் பாதுகாக்கவேண்டிய/ஆபத்தான உள்ளடக்கத்தைக் கொண்டுள்ளன}}</translation>
+<translation id="6497457470714179223">{NUM_FILES,plural, =0{இந்தத் தரவு பாதுகாக்கவேண்டிய/ஆபத்தான உள்ளடக்கத்தைக் கொண்டுள்ளது}=1{இந்த ஃபைல் பாதுகாக்கவேண்டிய/ஆபத்தான உள்ளடக்கத்தைக் கொண்டுள்ளது}other{இந்த ஃபைல்கள் பாதுகாக்கவேண்டிய/ஆபத்தான உள்ளடக்கத்தைக் கொண்டுள்ளன}}</translation>
 <translation id="6497789971060331894">மவுஸ் பின்னோக்கிய ஸ்க்ரோலிங்</translation>
 <translation id="6498249116389603658">&amp;உங்கள் எல்லா மொழிகளும்</translation>
 <translation id="6499143127267478107">ப்ராக்ஸி ஸ்கிரிப்டில் ஹோஸ்ட்டைக் கண்டறிகிறது...</translation>
@@ -5300,7 +5300,7 @@
 <translation id="6691936601825168937">&amp;அடுத்த பக்கம்</translation>
 <translation id="6693745645188488741">{COUNT,plural, =1{ஒரு பக்கம்}other{{COUNT} பக்கங்கள்}}</translation>
 <translation id="6697492270171225480">பக்கத்தைக் கண்டறிய முடியாத போது, அதே மாதிரியான பக்கங்களுக்கான பரிந்துரைகளைக் காட்டும்</translation>
-<translation id="6697690052557311665">பகிர, ’கோப்புகள்’ ஆப்ஸில் ஒரு கோப்புறையின் மீது வலது கிளிக் செய்து, "Linuxஸுடன் பகிர்” என்பதைத் தேர்ந்தெடுக்கவும்.</translation>
+<translation id="6697690052557311665">பகிர, ’ஃபைல்கள் ’ ஆப்ஸில் ஒரு கோப்புறையின் மீது வலது கிளிக் செய்து, "Linuxஸுடன் பகிர்” என்பதைத் தேர்ந்தெடுக்கவும்.</translation>
 <translation id="6698810901424468597"><ph name="WEBSITE_1" /> மற்றும் <ph name="WEBSITE_2" /> இல் உள்ள உங்கள் தரவைப் படித்தல் மற்றும் திருத்துதல்</translation>
 <translation id="6699883973579689168">தற்போது உங்களின் அனைத்து Google கணக்குகளையும் ஒரே இடத்தில் நிர்வகிக்கலாம். Chrome மற்றும் Google Playயில் இருக்கும் தளங்களுக்கும் ஆப்ஸுக்கும் நீட்டிப்புகளுக்கும் நீங்கள் வழங்கிய அணுகலும் அனுமதிகளும் உள்நுழைந்துள்ள அனைத்துக் கணக்குகளுக்கும் பொருந்தும். <ph name="LINK_BEGIN" />மேலும் அறிக<ph name="LINK_END" /></translation>
 <translation id="6700093763382332031">செல்லுலார் சிம்மைப் பூட்டு</translation>
@@ -5584,10 +5584,10 @@
 <translation id="6999956497249459195">புதிய குழு</translation>
 <translation id="7000206553895739324"><ph name="PRINTER_NAME" /> இணைக்கப்பட்டுள்ளது, எனினும் உள்ளமைவு தேவைப்படுகிறது</translation>
 <translation id="7000347579424117903">Ctrl, Alt அல்லது தேடல் விசையைப் பயன்படுத்தித் தொடங்கவும்</translation>
-<translation id="7001036685275644873">Linux ஆப்ஸ் &amp; கோப்புகள் காப்புப் பிரதி எடுக்கப்படுகின்றன.</translation>
+<translation id="7001036685275644873">Linux ஆப்ஸ் &amp; ஃபைல்கள்  காப்புப் பிரதி எடுக்கப்படுகின்றன.</translation>
 <translation id="7002055706763150362">Chromebookக்கான Smart Lockஐ அமைக்க, இது நீங்கள் தான் என்பதை Google உறுதிப்படுத்த வேண்டும்—தொடங்க, கடவுச்சொல்லை உள்ளிடவும்.</translation>
 <translation id="7003339318920871147">வலை தரவுத்தளங்கள்</translation>
-<translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} கோப்பு}other{{COUNT} கோப்புகள்}}</translation>
+<translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} கோப்பு}other{{COUNT} ஃபைல்கள் }}</translation>
 <translation id="7003723821785740825">சாதனத்தை விரைவாக அன்லாக் செய்வதற்கான வழியை அமைக்கவும்</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> அனுப்பிய <ph name="PRODUCT_ID" /> தயாரிப்பை அறிய முடியவில்லை</translation>
 <translation id="7004402701596653846">தளத்தால் MIDIயைப் பயன்படுத்த முடியும்</translation>
@@ -5669,7 +5669,7 @@
 <translation id="7085389578340536476">ஆடியோவை ரெக்கார்டு செய்ய, Chromeஐ அனுமதிக்கவா?</translation>
 <translation id="7086672505018440886">காப்பகத்தில் Chrome லாக் ஃபைல்களைச் சேர்க்கும்.</translation>
 <translation id="7088434364990739311">புதுப்பிப்பு சரிபார்த்தலை துவங்குவதில் தோல்வி. (பிழை குறியீடு <ph name="ERROR" />).</translation>
-<translation id="7088561041432335295">Zip Archiver - கோப்புகள் பயன்பாட்டில் ஜிப் ஃபைல்களைத் திறக்கலாம், தொகுக்கலாம்.</translation>
+<translation id="7088561041432335295">Zip Archiver - ஃபைல்கள்  பயன்பாட்டில் ஜிப் ஃபைல்களைத் திறக்கலாம், தொகுக்கலாம்.</translation>
 <translation id="7088674813905715446">இந்தச் சாதனம் நிர்வாகியால் அணுகல் இல்லா தன்மையில் வைக்கப்பட்டுள்ளது. பதிவுசெய்வதற்காக அதை இயக்குவதற்கு, இந்தச் சாதனத்தை நிலுவை நிலையில் வைக்குமாறு உங்கள் நிர்வாகியிடம் கேட்கவும்.</translation>
 <translation id="7093416310351037609">தரவைப் பாதுகாப்பாகவும் பத்திரமாகவும் வைத்திருக்க, தகுதிபெறும் பதிவிறக்கங்கள் அனைத்தும் நிறுவனத்தின் <ph name="WEB_DRIVE" /> கணக்கில் சேமிக்கப்பட வேண்டுமென உங்கள் நிறுவனம் கோருகிறது.</translation>
 <translation id="7093434536568905704">GTK+</translation>
@@ -5723,7 +5723,7 @@
 <translation id="7154130902455071009">உங்கள் தொடக்கப் பக்கத்தை இதற்கு மாற்றவும்: <ph name="START_PAGE" /></translation>
 <translation id="7155171745945906037">கேமரா அல்லது கோப்பிலிருக்கும் படம்</translation>
 <translation id="7163202347044721291">செயல்படுத்தல் குறியீட்டைச் சரிபார்க்கிறது...</translation>
-<translation id="716640248772308851">தேர்வுசெய்யப்பட்ட இடங்களில் உள்ள படங்கள், வீடியோ மற்றும் ஒலி கோப்புகள் ஆகியவற்றை "<ph name="EXTENSION" />" ஆல் படிக்க முடியும்.</translation>
+<translation id="716640248772308851">தேர்வுசெய்யப்பட்ட இடங்களில் உள்ள படங்கள், வீடியோ மற்றும் ஒலி ஃபைல்கள்  ஆகியவற்றை "<ph name="EXTENSION" />" ஆல் படிக்க முடியும்.</translation>
 <translation id="7167486101654761064">&amp;எப்போதும் இந்த வகை ஃபைல்களைத் திற</translation>
 <translation id="716810439572026343"><ph name="FILE_NAME" />ஐப் பதிவிறக்குகிறது</translation>
 <translation id="7168109975831002660">குறைந்தபட்ச எழுத்துரு அளவு</translation>
@@ -5739,7 +5739,7 @@
 <translation id="7180865173735832675">பிரத்தியேகமாக்கு</translation>
 <translation id="7182791023900310535">உங்கள் கடவுச்சொல்லை நகற்றுக</translation>
 <translation id="7186088072322679094">கருவிப்பட்டியில் வை</translation>
-<translation id="7186303001964993981">இந்தக் கோப்புறையில் சிஸ்டம் கோப்புகள் இருப்பதால் அதை <ph name="ORIGIN" /> தளத்தால் திறக்க முடியவில்லை</translation>
+<translation id="7186303001964993981">இந்தக் கோப்புறையில் சிஸ்டம் ஃபைல்கள்  இருப்பதால் அதை <ph name="ORIGIN" /> தளத்தால் திறக்க முடியவில்லை</translation>
 <translation id="7187428571767585875">அகற்ற வேண்டிய அல்லது மாற்ற வேண்டிய பதிவக உள்ளீடுகள்:</translation>
 <translation id="7189234443051076392">சாதனத்தில் போதுமான சேமிப்பிடம் இருப்பதை உறுதிப்படுத்திக்கொள்ளவும்</translation>
 <translation id="7189451821249468368">இந்தச் சாதனத்தைப் பதிவுசெய்ய போதுமான மேம்படுத்தல்கள் உங்களிடம் இல்லை. மேலும் வாங்குவதற்கு விற்பனையாளரைத் தொடர்புகொள்ளவும். பிழை காரணமாக இந்த மெசேஜைப் பார்க்கிறீர்கள் எனக் கருதினால் உதவிக் குழுவைத் தொடர்புகொள்ளவும்.</translation>
@@ -6153,7 +6153,7 @@
 <translation id="7625568159987162309">பல்வேறு தளங்களிலும் சேமித்த அனுமதிகளையும் தரவையும் காட்டு</translation>
 <translation id="7628201176665550262">புதுப்பிக்கும் விகிதம்</translation>
 <translation id="7629827748548208700">தாவல்: <ph name="TAB_NAME" /></translation>
-<translation id="7631014249255418691">Linux ஆப்ஸ் &amp; கோப்புகள் வெற்றிகரமாக காப்புப் பிரதி எடுக்கப்பட்டன</translation>
+<translation id="7631014249255418691">Linux ஆப்ஸ் &amp; ஃபைல்கள்  வெற்றிகரமாக காப்புப் பிரதி எடுக்கப்பட்டன</translation>
 <translation id="7631205654593498032">உங்கள் சாதனங்களை இணைக்கும்போது <ph name="DEVICE_TYPE" /> இவற்றைச் செய்யலாம் என்று ஏற்கிறீர்கள்:</translation>
 <translation id="7631887513477658702">&amp;எப்போதும் இந்த வகை ஃபைல்களைத் திற</translation>
 <translation id="7632948528260659758">பின்வரும் கியோஸ்க் பயன்பாடுகளைப் புதுப்பிப்பதில் தோல்வி:</translation>
@@ -6441,7 +6441,7 @@
 <translation id="7893153962594818789"><ph name="DEVICE_TYPE" /> இன் புளூடூத் முடக்கப்பட்டுள்ளது. உங்கள் கடவுச்சொல்லை உள்ளிட்டு, புளூடூத்தை இயக்கவும்.</translation>
 <translation id="7893393459573308604"><ph name="ENGINE_NAME" /> (இயல்புநிலை)</translation>
 <translation id="789722939441020330">பல ஃபைல்களைத் தானாகப் பதிவிறக்க தளங்களை அனுமதிக்காதே</translation>
-<translation id="7897900149154324287">எதிர்காலத்தில், துண்டிப்பதற்கு முன் கோப்புகள் பயன்பாட்டிலிருந்து அகற்றக்கூடிய சாதனம் வெளியேற்றப்பட்டதை உறுதிப்படுத்திக்கொள்ளவும். இல்லையெனில், தரவை இழக்க நேரிடலாம்.</translation>
+<translation id="7897900149154324287">எதிர்காலத்தில், துண்டிப்பதற்கு முன் ஃபைல்கள்  பயன்பாட்டிலிருந்து அகற்றக்கூடிய சாதனம் வெளியேற்றப்பட்டதை உறுதிப்படுத்திக்கொள்ளவும். இல்லையெனில், தரவை இழக்க நேரிடலாம்.</translation>
 <translation id="7898725031477653577">எப்போதும் மொழிபெயர்</translation>
 <translation id="790040513076446191">தனியுரிமைத் தொடர்பான அமைப்புகளை கையாளலாம்</translation>
 <translation id="7901405293566323524">மொபைல் ஹப்</translation>
@@ -6539,7 +6539,7 @@
 <translation id="7990394755527173834">இந்தக் கம்ப்யூட்டரில் முதல் முறையாக Android மொபைலைப் பாதுகாப்பு விசையாகப் பயன்படுத்தும் வகையில் அமைக்க, உங்கள் மொபைலில் Chrome உலாவியைத் திறந்து "அமைப்புகள் &gt; கடவுச்சொற்கள் &gt; மொபைலைப் பாதுகாப்பு விசையாகப் பயன்படுத்து" என்பதற்குச் செல்லவும். பின்னர் "புதிய சாதனத்தை இணை" என்பதைத் தட்டி இந்த QR குறியீட்டை ஸ்கேன் செய்யவும்.</translation>
 <translation id="7991296728590311172">ஸ்விட்ச் அணுகலுக்கான அமைப்புகள்</translation>
 <translation id="7997826902155442747">செயல்படுத்தல் முன்னுரிமை</translation>
-<translation id="7999229196265990314">பின்வரும் கோப்புகள் உருவாக்கப்பட்டன:
+<translation id="7999229196265990314">பின்வரும் ஃபைல்கள்  உருவாக்கப்பட்டன:
 
 நீட்டிப்பு: <ph name="EXTENSION_FILE" />
 முக்கிய கோப்பு: <ph name="KEY_FILE" />
@@ -6595,7 +6595,7 @@
 <translation id="8050191834453426339">மீண்டும் சரிபார்</translation>
 <translation id="8051193500142930381">கேமராவின் உதவியுடன் இயங்கும் அம்சங்கள் செயல்படாது</translation>
 <translation id="8051390370038326517">MIDI சாதனங்களுக்கான முழுக் கட்டுப்பாட்டையும் பெற <ph name="HOST" /> தளத்தை எப்போதும் அனுமதி</translation>
-<translation id="8053278772142718589">PKCS #12 கோப்புகள்</translation>
+<translation id="8053278772142718589">PKCS #12 ஃபைல்கள் </translation>
 <translation id="8053390638574070785">இந்த பக்கத்தை மீண்டும் ஏற்றுக</translation>
 <translation id="8054517699425078995">இந்த வகையான கோப்பு , உங்கள் சாதனத்திற்கு தீங்கு விளைவிக்கலாம். எப்படியேனும் <ph name="FILE_NAME" /> ஐ வைத்திருக்க விரும்புகிறீர்களா?</translation>
 <translation id="8054563304616131773">சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும்</translation>
@@ -6681,7 +6681,7 @@
 <translation id="8138082791834443598">விருப்பத்தேர்வுக்குரியது — புதிய தகவலை உள்ளிடவும் அல்லது இந்தச் சாதனத்துடன் தொடர்புடைய ஏற்கனவேயுள்ள தகவலைப் புதுப்பிக்கவும்.</translation>
 <translation id="8138217203226449454">உங்கள் தேடல் வழங்குநரை மாற்ற விரும்புகிறீர்களா?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> நிலை</translation>
-<translation id="8139447493436036221">Google Drive கோப்புகள்</translation>
+<translation id="8139447493436036221">Google Drive ஃபைல்கள் </translation>
 <translation id="8141584439523427891">மாற்று உலாவியில் இப்போது திறக்கிறது</translation>
 <translation id="8141725884565838206">உங்கள் கடவுச்சொற்களை நிர்வகிக்கவும்</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{ஒரு வீடியோவை}other{# வீடியோக்களை}}</translation>
@@ -6757,7 +6757,7 @@
 <translation id="8214489666383623925">கோப்பைத் திற...</translation>
 <translation id="8215129063232901118">உங்கள் <ph name="DEVICE_TYPE" /> சாதனத்தில் இருந்து மொபைலின் வசதிகளை அணுகலாம்</translation>
 <translation id="8216351761227087153">காண்</translation>
-<translation id="8217399928341212914">பல கோப்புகள் தானாகப் பதிவிறக்கப்படுவதைத் தொடர்ந்து தடு</translation>
+<translation id="8217399928341212914">பல ஃபைல்கள்  தானாகப் பதிவிறக்கப்படுவதைத் தொடர்ந்து தடு</translation>
 <translation id="8221491193165283816">பொதுவாக அறிவிப்புகளைத் தடுத்துள்ளீர்கள். இந்தத் தளம் அறிவிப்புகளை வழங்கச் செய்ய, இங்கே கிளிக் செய்யவும்.</translation>
 <translation id="822347941086490485">HID சாதனங்களைத் தேடுகிறது...</translation>
 <translation id="8225265270453771718">ஆப்ஸ் சாளரத்தைப் பகிருங்கள்</translation>
@@ -6771,7 +6771,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> சாதனத்தில் இருந்து பக்கம் பகிரப்பட்டுள்ளது</translation>
 <translation id="8236911020904880539">வெளியேற</translation>
 <translation id="8236917170563564587">இந்தத் தாவலைப் பகிர்</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> புதிய உலாவிப் பிரிவில் திறக்கும்படி அமைத்துள்ளீர்கள், ஆதரிக்கப்படும் இணைப்புகளும் உலாவியில் திறக்கப்படும்.</translation>
 <translation id="8237647586961940482">அடர் இளஞ்சிவப்பு &amp; சிவப்பு</translation>
 <translation id="8239032431519548577">நிறுவனப் பதிவு நிறைவடைந்தது</translation>
 <translation id="8239932336306009582">அறிவிப்புகளை அனுப்ப அனுமதிக்கப்படாதவை</translation>
@@ -7066,7 +7065,7 @@
 <translation id="859246725979739260">உங்கள் இருப்பிடத் தகவலை அணுக முடியாதபடி இந்தத் தளம் தடுக்கப்பட்டுள்ளது.</translation>
 <translation id="8593121833493516339">உபயோகம் &amp; கண்டறிதல் தரவை அனுப்புக. கண்டறிதல் தரவு, சாதனம் மற்றும் ஆப்ஸ் உபயோகத் தரவு போன்றவற்றை Googleளுக்குத் தானாக அனுப்புவதன் மூலம் உங்கள் பிள்ளையின் Android அனுபவத்தை மேம்படுத்த உதவுக. இது உங்கள் பிள்ளையை அடையாளம் கண்டறியப் பயன்படுத்தப்படாது, இது சிஸ்டம் மற்றும் ஆப்ஸின் நிலைத்தன்மையை மேம்படுத்தவும் பிற மேம்பாடுகளைச் செய்யவும் உதவும். ஒருங்கிணைக்கப்பட்ட சில தரவுகள், Google ஆப்ஸ் மற்றும் Android டெவெலப்பர்கள் போன்ற கூட்டாளர்களுக்கும் உதவும். உங்கள் பிள்ளையின் கணக்கில் கூடுதல் ’இணையம் &amp; ஆப்ஸ் செயல்பாடு’ அமைப்பு இயக்கப்பட்டிருந்தால், இந்தத் தரவு அவரது Google கணக்கில் சேமிக்கப்படலாம். <ph name="BEGIN_LINK1" />மேலும் அறிக<ph name="END_LINK1" /></translation>
 <translation id="8594908476761052472">வீடியோ எடு</translation>
-<translation id="8596540852772265699">பிரத்தியேகக் கோப்புகள்</translation>
+<translation id="8596540852772265699">பிரத்தியேக ஃபைல்கள்</translation>
 <translation id="8597845839771543242">பண்பு வடிவமைப்பு:</translation>
 <translation id="8599681327221583254">ஒன்று அல்லது அதற்கு மேற்பட்ட கொள்கைகள் சரியாக உள்ளமைக்கப்படவில்லை. நிர்வாகியைத் தொடர்புகொள்ளவும்</translation>
 <translation id="8601206103050338563">TLS WWW கிளையன்ட் அங்கீகரிப்பு</translation>
@@ -7187,7 +7186,7 @@
 <translation id="8714838604780058252">பின்னணி கிராஃபிக்ஸ்</translation>
 <translation id="871515167518607670">சாதனத்தைத் தேர்வு செய்யவும். பிறகு, பக்கத்தைப் பார்க்க அதில் Chromeமைத் திறக்கவும்.</translation>
 <translation id="8715480913140015283">பின்னணித் தாவல் உங்கள் கேமராவைப் பயன்படுத்துகிறது</translation>
-<translation id="8716931980467311658">இந்த <ph name="DEVICE_TYPE" /> சாதனத்திலிருந்து உங்கள் Linux கோப்புகள் கோப்புறையிலுள்ள எல்லா Linux ஆப்ஸையும் தரவையும் நீக்கவா?</translation>
+<translation id="8716931980467311658">இந்த <ph name="DEVICE_TYPE" /> சாதனத்திலிருந்து உங்கள் Linux ஃபைல்கள்  கோப்புறையிலுள்ள எல்லா Linux ஆப்ஸையும் தரவையும் நீக்கவா?</translation>
 <translation id="8717864919010420084">இணைப்பை நகலெடு</translation>
 <translation id="8718994464069323380">டச்ஸ்கிரீன் கண்டறியப்பட்டது</translation>
 <translation id="8719472795285728850">நீட்டிப்பு செயல்பாடுகளுக்காக கேட்கிறது...</translation>
@@ -7712,7 +7711,7 @@
 <translation id="945522503751344254">கருத்தை அனுப்பு</translation>
 <translation id="947329552760389097">&amp;கூறுகளை ஆய்வு செய்</translation>
 <translation id="947526284350604411">உங்கள் பதில்</translation>
-<translation id="947667444780368238">இந்தக் கோப்புறையில் சிஸ்டம் கோப்புகள் இருப்பதால் அதிலுள்ள கோப்புகளை <ph name="ORIGIN" /> தளத்தால் திறக்க முடியவில்லை</translation>
+<translation id="947667444780368238">இந்தக் கோப்புறையில் சிஸ்டம் ஃபைல்கள்  இருப்பதால் அதிலுள்ள கோப்புகளை <ph name="ORIGIN" /> தளத்தால் திறக்க முடியவில்லை</translation>
 <translation id="951991426597076286">நிராகரி</translation>
 <translation id="953434574221655299">சாதனத்தில் நீங்கள் செயலில் இருப்பது குறித்து அறிந்துகொள்ள அனுமதியுள்ள தளங்கள்</translation>
 <translation id="956500788634395331">தீங்கிழைக்க சாத்தியமுள்ள நீட்டிப்புகளில் இருந்து பாதுகாக்கப்படுகிறீர்கள்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 006b7f1..a0b39cf 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -6765,7 +6765,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> నుండి పేజీ షేర్ చేయబడింది</translation>
 <translation id="8236911020904880539">నిష్క్రమించండి</translation>
 <translation id="8236917170563564587">బదులుగా, ఈ ట్యాబ్‌ను షేర్ చేయి</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> కొత్త బ్రౌజర్ ట్యాబ్‌లో తెరవడానికి సెట్ చేయబడింది, అదే బ్రౌజర్‌లో సపోర్ట్ చేసే లింక్‌లు కూడా తెరవబడతాయి.</translation>
 <translation id="8237647586961940482">ముదురు గులాబీ రంగు మరియు ఎరుపు</translation>
 <translation id="8239032431519548577">ఎంటర్‌ప్రైజ్ నమోదు పూర్తయింది</translation>
 <translation id="8239932336306009582">నోటిఫికేషన్‌లను పంపడానికి అనుమతి లేని సైట్‌లు</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 97e48d70..1b11599 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -159,6 +159,7 @@
 <translation id="1165039591588034296">ข้อผิดพลาด</translation>
 <translation id="1166212789817575481">ปิดแท็บทางด้านขวา</translation>
 <translation id="1166583374608765787">ตรวจสอบการอัปเดตชื่อ</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> อยู่ในเดสก์ <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">กำลังจะเปิดภายใน <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">ถามเมื่อเว็บไซต์ต้องการใช้แบบอักษรที่ติดตั้งอยู่ในอุปกรณ์</translation>
 <translation id="1171135284592304528">ไฮไลต์วัตถุที่มีโฟกัสของแป้นพิมพ์เมื่อมีการเปลี่ยนแปลง</translation>
@@ -617,6 +618,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> ยังใช้ไม่ได้ในแอป Linux</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 พร้อมการเข้ารหัส RSA</translation>
 <translation id="1641113438599504367">Safe Browsing</translation>
+<translation id="1642492862748815878">เชื่อมต่ออยู่กับ <ph name="DEVICE" /> และอุปกรณ์บลูทูธอื่นอีก <ph name="NUMBER_OF_DEVICES" /> รายการ</translation>
 <translation id="1642494467033190216">ต้องนำการป้องกัน rootfs ออกและรีสตาร์ทก่อนที่จะเปิดใช้ฟีเจอร์การแก้ไขข้อบกพร่องอื่นๆ</translation>
 <translation id="1643072738649235303">ลายเซ็น X9.62 ECDSA ที่มี SHA-1</translation>
 <translation id="1643921258693943800">หากต้องการใช้การแชร์ใกล้เคียง ให้เปิดบลูทูธและ Wi-Fi</translation>
@@ -1819,6 +1821,7 @@
 <translation id="2885378588091291677">ตัวจัดการงาน</translation>
 <translation id="2885729872133513017">เกิดปัญหาเมื่อถอดรหัสการตอบกลับของเซิร์ฟเวอร์</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> และอีก <ph name="NUMBER_OF_DEVICES" /> รายการ</translation>
 <translation id="2889064240420137087">เปิดลิงก์ด้วย...</translation>
 <translation id="2891922230654533301">ใช้อุปกรณ์เพื่อลงชื่อเข้าใช้ <ph name="APP_NAME" /> ไหม</translation>
 <translation id="2893168226686371498">เบราว์เซอร์เริ่มต้น</translation>
@@ -2753,6 +2756,7 @@
 <translation id="3884152383786131369">เนื้อหาเว็บที่มีหลายภาษาจะใช้ภาษาแรกที่รองรับจากรายการนี้ ระบบจะซิงค์ค่ากำหนดเหล่านี้กับการตั้งค่าเบราว์เซอร์ <ph name="BEGIN_LINK_LEARN_MORE" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">ผู้ดูแลระบบของคุณเป็นผู้จัดการการอัปเดตต่างๆ</translation>
 <translation id="3886446263141354045">ระบบส่งคำขอเข้าถึงเว็บไซต์นี้ของคุณให้ <ph name="NAME" /> แล้ว</translation>
+<translation id="3887022758415973389">แสดงรายการอุปกรณ์</translation>
 <translation id="3888053818972567950">การเชื่อมต่อ <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">จดโน้ตด้วย <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">ข้อมูลนี้ช่วยให้เราเข้าใจปัญหาที่คุณพบเกี่ยวกับ Assistant ได้ดีขึ้น ระบบจะเก็บข้อมูลไว้สูงสุด 90 วันและจำกัดให้เฉพาะทีมวิศวกรและทีมความคิดเห็นที่เกี่ยวข้องเข้าถึงเท่านั้น</translation>
@@ -3463,6 +3467,7 @@
 <translation id="4662373422909645029">ชื่อเล่นต้องไม่มีตัวเลข</translation>
 <translation id="4662788913887017617">แชร์บุ๊กมาร์กนี้กับ iPhone ของคุณ</translation>
 <translation id="4663373278480897665">อนุญาตให้ใช้กล้องถ่ายรูป</translation>
+<translation id="4664289193573249666">จัดการ DNS ที่ปลอดภัยในการตั้งค่า Chrome OS</translation>
 <translation id="4664482161435122549">ข้อผิดพลาดในการส่งออก PKCS #12</translation>
 <translation id="4665014895760275686">ผู้ผลิต</translation>
 <translation id="4665446389743427678">ระบบจะลบข้อมูลทั้งหมดที่ <ph name="SITE" /> จัดเก็บไว้</translation>
@@ -5995,6 +6000,7 @@
 <translation id="7478623944308207463">แอปและการตั้งค่าจะซิงค์กับอุปกรณ์ Chrome OS ทุกเครื่องที่คุณลงชื่อเข้าใช้ไว้ด้วยบัญชี Google ดูตัวเลือกการซิงค์เบราว์เซอร์ได้ที่<ph name="LINK_BEGIN" />การตั้งค่า Chrome<ph name="LINK_END" /></translation>
 <translation id="7478658909253570368">ไม่อนุญาตให้เว็บไซต์เชื่อมต่อกับพอร์ตอนุกรม</translation>
 <translation id="7479221278376295180">ภาพรวมการใช้งานพื้นที่เก็บข้อมูล</translation>
+<translation id="747981547666531654">เชื่อมต่ออยู่กับอุปกรณ์บลูทูธชื่อ <ph name="FIRST_DEVICE" /> และ <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">ส่งต่อ</translation>
 <translation id="7481358317100446445">พร้อม</translation>
 <translation id="748138892655239008">ข้อจำกัดพื้นฐานของใบรับรอง</translation>
@@ -6047,6 +6053,7 @@
 <translation id="7531771599742723865">ใช้อุปกรณ์อยู่</translation>
 <translation id="7531779363494549572">ไปที่การตั้งค่า &gt; แอปและการแจ้งเตือน &gt; การแจ้งเตือน</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> ไม่ตอบสนอง เลือก "บังคับปิด" เพื่อปิดแอป</translation>
+<translation id="7535730537657706072">ปิดแท็บที่ไม่ระบุตัวตนทั้งหมดเพื่อล้างประวัติการท่องเว็บแบบไม่ระบุตัวตนออกจากอุปกรณ์</translation>
 <translation id="7535791657097741517">เปิดธีมสว่าง</translation>
 <translation id="7537451260744431038">เว็บไซต์จะใช้คุกกี้เพื่อปรับปรุงประสบการณ์การท่องเว็บไม่ได้ เช่น ให้คุณลงชื่อเข้าใช้ต่อไปเรื่อยๆ หรือจำรายการในรถเข็นช็อปปิ้ง</translation>
 <translation id="753769905878158714">ป้อนคีย์เวิร์ดของเว็บไซต์ที่ต้องการค้นหาในแถบที่อยู่ จากนั้นใช้แป้นพิมพ์ลัดเพื่อดำเนินการต่อ</translation>
@@ -6662,6 +6669,7 @@
 <translation id="8138217203226449454">คุณตั้งใจที่จะเปลี่ยนผู้ให้บริการการค้นหาใช่ไหม</translation>
 <translation id="8138997515734480534">สถานะ <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">ไฟล์ใน Google ไดรฟ์</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">กำลังเปิดเบราว์เซอร์สำรองอยู่ในขณะนี้</translation>
 <translation id="8141725884565838206">จัดการรหัสผ่านของคุณ</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{1 วิดีโอ}other{# วิดีโอ}}</translation>
@@ -6751,7 +6759,6 @@
 <translation id="8235418492073272647">มีการแชร์หน้าจาก <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">ออก</translation>
 <translation id="8236917170563564587">แชร์แท็บนี้แทน</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> ตั้งค่าให้เปิดในแท็บเบราว์เซอร์ใหม่ ลิงก์ที่รองรับก็จะเปิดในเบราว์เซอร์เช่นกัน</translation>
 <translation id="8237647586961940482">สีชมพูเข้มและสีแดง</translation>
 <translation id="8239032431519548577">ลงทะเบียนองค์กรเสร็จสมบูรณ์</translation>
 <translation id="8239932336306009582">ไม่อนุญาตให้ส่งการแจ้งเตือน</translation>
@@ -7377,6 +7384,7 @@
 <translation id="8909782404367982052">ลากเพื่อค้นหารูปภาพด้วย Google Lens</translation>
 <translation id="8909833622202089127">เว็บไซต์กำลังติดตามตำแหน่งของคุณ</translation>
 <translation id="8910222113987937043">การเปลี่ยนแปลงในบุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และการตั้งค่าอื่นๆ จะไม่ซิงค์กับบัญชี Google อีกต่อไป แต่ข้อมูลที่มีอยู่จะยังจัดเก็บไว้ในบัญชี Google และสามารถจัดการได้ใน<ph name="BEGIN_LINK" />แดชบอร์ด Google<ph name="END_LINK" /></translation>
+<translation id="8910987510378294980">ซ่อนรายการอุปกรณ์</translation>
 <translation id="8912362522468806198">บัญชี Google</translation>
 <translation id="8912793549644936705">ยืด</translation>
 <translation id="8912810933860534797">เปิดใช้การสแกนอัตโนมัติ</translation>
@@ -7494,6 +7502,7 @@
 <translation id="9033765790910064284">ดำเนินการต่อ</translation>
 <translation id="9033857511263905942">&amp;วาง</translation>
 <translation id="903480517321259405">พิมพ์ PIN อีกครั้ง</translation>
+<translation id="9037054491984310631">เชื่อมต่ออยู่กับอุปกรณ์บลูทูธชื่อ <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">ไม่อนุญาตอุปกรณ์นี้</translation>
 <translation id="9037818663270399707">การจราจรของข้อมูลทั้งหมดในเครือข่ายไม่เป็นส่วนตัวในการเชื่อมต่อของคุณ</translation>
 <translation id="9037965129289936994">แสดงหน้าเว็บเดิม</translation>
@@ -7573,6 +7582,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> อาจเป็นอันตราย ส่งไปให้ Google สแกนไหม</translation>
 <translation id="9112987648460918699">ค้นหา...</translation>
 <translation id="9113240369465613386">หน้าเลขคี่เท่านั้น</translation>
+<translation id="9113469270512809735">สลับรายการที่เพิ่งปิดไป</translation>
 <translation id="9114663181201435112">ลงชื่อเข้าใช้ได้อย่างง่ายดาย</translation>
 <translation id="9115675100829699941">&amp;บุ๊กมาร์ก</translation>
 <translation id="9116465289595958864">แก้ไขล่าสุด</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 167e6099..e7817b6 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -159,6 +159,7 @@
 <translation id="1165039591588034296">Hata</translation>
 <translation id="1166212789817575481">Sağdaki Sekmeleri Kapat</translation>
 <translation id="1166583374608765787">Ad güncellemesini inceleyin</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> sekmesi, <ph name="DESK_TITLE" /> masasına ait</translation>
 <translation id="1168020859489941584"><ph name="TIME_REMAINING" /> içinde açılacak...</translation>
 <translation id="1170288591054440704">Bir site, cihazımda yüklü yazı tiplerini kullanmak istediğinde sor</translation>
 <translation id="1171135284592304528">Değiştiğinde nesneyi klavye odağıyla vurgula</translation>
@@ -617,6 +618,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> henüz Linux uygulamalarında çalışmıyor</translation>
 <translation id="1640283014264083726">PKCS #1 RSA Şifrelemeli MD4</translation>
 <translation id="1641113438599504367">Güvenli Tarama</translation>
+<translation id="1642492862748815878"><ph name="DEVICE" /> cihazına ve diğer <ph name="NUMBER_OF_DEVICES" /> Bluetooth cihaza daha bağlanıldı</translation>
 <translation id="1642494467033190216">Diğer hata ayıklama özelliklerinin etkinleştirilebilmesi için rootfs korumasının kaldırılması ve cihazın yeniden başlatılması gerekir.</translation>
 <translation id="1643072738649235303">SHA-1 ile X9.62 ECDSA İmzası</translation>
 <translation id="1643921258693943800">Yakındakilerle Paylaş özelliğini kullanmak için Bluetooth ve Kablosuz'u açın</translation>
@@ -1818,6 +1820,7 @@
 <translation id="2885378588091291677">Görev Yöneticisi</translation>
 <translation id="2885729872133513017">Sunucu yanıtının kodu çözülürken bir sorun oluştu.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> ve <ph name="NUMBER_OF_DEVICES" /> tane daha</translation>
 <translation id="2889064240420137087">Bağlantıyı şununla aç...</translation>
 <translation id="2891922230654533301"><ph name="APP_NAME" /> üzerinde oturum açmak için cihazınız kullanılsın mı?</translation>
 <translation id="2893168226686371498">Varsayılan tarayıcı</translation>
@@ -2752,6 +2755,7 @@
 <translation id="3884152383786131369">Birden fazla dilde sunulan web içeriği bu listedeki desteklenen ilk dili kullanır. Bu tercihler, tarayıcı ayarlarınızla senkronize edilir. <ph name="BEGIN_LINK_LEARN_MORE" />Daha fazla bilgi<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Güncellemeler yöneticiniz tarafından yönetilmektedir</translation>
 <translation id="3886446263141354045">Bu siteye erişim isteğiniz şu kişiye gönderildi: <ph name="NAME" /></translation>
+<translation id="3887022758415973389">Cihaz listesini göster</translation>
 <translation id="3888053818972567950"><ph name="WEB_DRIVE" /> Bağlantısı</translation>
 <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> ile not alınıyor</translation>
 <translation id="3888586133700543064">Bu bilgiler, Asistanınızla ilgili sorunu daha iyi anlamamıza yardımcı olur. Bilgiler 90 güne kadar saklanır ve yalnızca uygun mühendislerle geri bildirim ekipleri erişebilir.</translation>
@@ -3462,6 +3466,7 @@
 <translation id="4662373422909645029">Takma ad sayı içeremez</translation>
 <translation id="4662788913887017617">Bu yer işaretini iPhone'unuzla paylaşın</translation>
 <translation id="4663373278480897665">Kameraya izin veriliyor</translation>
+<translation id="4664289193573249666">Chrome OS ayarlarında güvenli DNS'yi yönetin</translation>
 <translation id="4664482161435122549">PKCS #12 Dışa Aktarma Hatası</translation>
 <translation id="4665014895760275686">Üretici</translation>
 <translation id="4665446389743427678"><ph name="SITE" /> web sitesinin depoladığı tüm veriler silinecektir.</translation>
@@ -5995,6 +6000,7 @@
 <translation id="7478623944308207463">Uygulamalarınız ve ayarlarınız, Google hesabınızla oturum açtığınız tüm Chrome OS cihazlarda senkronize edilir. Tarayıcı senkronizasyon seçenekleri için <ph name="LINK_BEGIN" />Chrome ayarlarına<ph name="LINK_END" /> gidin.</translation>
 <translation id="7478658909253570368">Sitelerin seri bağlantı noktalarına bağlanmasına izin verme</translation>
 <translation id="7479221278376295180">Depolama Alanı Kullanımına Genel Bakış</translation>
+<translation id="747981547666531654"><ph name="FIRST_DEVICE" /> ve <ph name="SECOND_DEVICE" /> Bluetooth cihazlarına bağlanıldı</translation>
 <translation id="7481312909269577407">İleri</translation>
 <translation id="7481358317100446445">Hazır</translation>
 <translation id="748138892655239008">Sertifika Temel Kısıtlamaları</translation>
@@ -6047,6 +6053,7 @@
 <translation id="7531771599742723865">Cihaz kullanımda</translation>
 <translation id="7531779363494549572">Ayarlar &gt; Uygulamalar ve bildirimler &gt; Bildirimler'e gidin.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> yanıt vermiyor. Uygulamayı kapatmak için "Uygulamayı kapat"ı seçin.</translation>
+<translation id="7535730537657706072">Gizli mod tarama geçmişini cihazınızdan temizlemek için tüm Gizli sekmeleri kapatın</translation>
 <translation id="7535791657097741517">Açık temayı aç</translation>
 <translation id="7537451260744431038">Siteler size daha iyi bir göz atma deneyimi sunmak, örneğin, oturumunuzu açık tutmak veya alışveriş sepetinizdeki ürünleri hatırlamak için çerez kullanamaz</translation>
 <translation id="753769905878158714">Adres çubuğuna aramak istediğiniz web sitesiyle ilgili anahtar kelimeyi girin. Ardından, devam etmek için bir klavye kısayolu kullanın.</translation>
@@ -6662,6 +6669,7 @@
 <translation id="8138217203226449454">Arama sağlayıcınızı değiştirmek mi istediniz?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> durumu</translation>
 <translation id="8139447493436036221">Google Drive dosyaları</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Şu anda alternatif tarayıcıda açılıyor</translation>
 <translation id="8141725884565838206">Şifrelerinizi yönetin</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{bir video}other{# video}}</translation>
@@ -6751,7 +6759,6 @@
 <translation id="8235418492073272647">Sayfa, <ph name="DEVICE_NAME" /> cihazından paylaşıldı</translation>
 <translation id="8236911020904880539">çıkış yapmak</translation>
 <translation id="8236917170563564587">Onun yerine bu sekmeyi paylaş</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" />, yeni bir tarayıcı sekmesinde açılacak şekilde ayarlandı. Desteklenen bağlantılar da tarayıcıda açılacak.</translation>
 <translation id="8237647586961940482">Koyu pembe ve kırmızı</translation>
 <translation id="8239032431519548577">Kurumsal kayıt tamamlandı</translation>
 <translation id="8239932336306009582">Bildirim göndermesine izin verilmeyen siteler</translation>
@@ -7377,6 +7384,7 @@
 <translation id="8909782404367982052">Google Lens ile Görsel Aramak için sürükleyin</translation>
 <translation id="8909833622202089127">Site, konumunuzu izliyor</translation>
 <translation id="8910222113987937043">Yer işaretleri, geçmiş, şifreler ve diğer ayarlarınızla ilgili değişiklikler artık Google Hesabınızla senkronize edilmez. Ancak mevcut verileriniz Google Hesabınızda kalmaya devam eder ve <ph name="BEGIN_LINK" />Google Hesap Özeti<ph name="END_LINK" />'nde yönetilebilir.</translation>
+<translation id="8910987510378294980">Cihaz listesini gizle</translation>
 <translation id="8912362522468806198">Google Hesabı</translation>
 <translation id="8912793549644936705">Uzat</translation>
 <translation id="8912810933860534797">Otomatik taramayı etkinleştir</translation>
@@ -7494,6 +7502,7 @@
 <translation id="9033765790910064284">Yine de devam et</translation>
 <translation id="9033857511263905942">&amp;Yapıştır</translation>
 <translation id="903480517321259405">PIN'i tekrar yazın</translation>
+<translation id="9037054491984310631"><ph name="DEVICE" /> Bluetooth cihazına bağlanıldı</translation>
 <translation id="9037640663275993951">Cihaza izin verilmiyor</translation>
 <translation id="9037818663270399707">Bağlantınız tüm ağ trafiği için gizli değil</translation>
 <translation id="9037965129289936994">Orijinali Göster</translation>
@@ -7574,6 +7583,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> tehlikeli olabilir. Taranmak üzere Google'a gönderilsin mi?</translation>
 <translation id="9112987648460918699">Bul...</translation>
 <translation id="9113240369465613386">Yalnızca tek numaralı sayfalar</translation>
+<translation id="9113469270512809735">Son Kapatılan Öğeleri Aç/Kapat</translation>
 <translation id="9114663181201435112">Kolayca oturum açın</translation>
 <translation id="9115675100829699941">&amp;Yer İşaretleri</translation>
 <translation id="9116465289595958864">Son değiştirilme</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 3b84498..037decf 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -6781,7 +6781,6 @@
 <translation id="8235418492073272647">Сторінка, надіслана з пристрою "<ph name="DEVICE_NAME" />"</translation>
 <translation id="8236911020904880539">вийти</translation>
 <translation id="8236917170563564587">Натомість поділитися цією вкладкою</translation>
-<translation id="8237471930911823556">Відповідно до налаштувань, додаток <ph name="APP_NAME" /> має відкриватися в новій вкладці веб-переглядача. Підтримувані посилання також відкриватимуться у веб-переглядачі.</translation>
 <translation id="8237647586961940482">Темно-рожевий і червоний</translation>
 <translation id="8239032431519548577">Підприємство зареєстровано</translation>
 <translation id="8239932336306009582">Заборонено надсилати сповіщення</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 6d254ba..9afa487 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -6751,7 +6751,6 @@
 <translation id="8235418492073272647"><ph name="DEVICE_NAME" /> سے اشتراک کردہ صفحہ</translation>
 <translation id="8236911020904880539">باہر نکلیں</translation>
 <translation id="8236917170563564587">اس کے بجائے اس ٹیب کا اشتراک کریں</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> نئے براؤزر ٹیب میں کھلنے کیلئے سیٹ ہے، سپورٹ کردہ لنکس بھی براؤزر میں کھلیں گے۔</translation>
 <translation id="8237647586961940482">گہرا گلابی اور سرخ</translation>
 <translation id="8239032431519548577">انٹرپرائز اندراج مکمل</translation>
 <translation id="8239932336306009582">اطلاعات بھیجنے کی اجازت نہیں ہے</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 0535ca2e..76882dd1 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -6764,7 +6764,6 @@
 <translation id="8235418492073272647">Sahifa <ph name="DEVICE_NAME" /> qurilmasidan ulashilgan</translation>
 <translation id="8236911020904880539">chiqish</translation>
 <translation id="8236917170563564587">Oʻrniga bu varaqni ulashish</translation>
-<translation id="8237471930911823556">Brauzer yangi varaqlari <ph name="APP_NAME" /> ilovasida ochiladi, tegishli havolalar ham brauzerda ochiladi.</translation>
 <translation id="8237647586961940482">Toʻq pushti va qizil</translation>
 <translation id="8239032431519548577">Korporativ domenda qayd qilindi</translation>
 <translation id="8239932336306009582">Bildirishnomalar yuborishga ruxsat berilmagan</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 24697dd4..433e14ba 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">Lỗi</translation>
 <translation id="1166212789817575481">Đóng Thẻ Bên phải</translation>
 <translation id="1166583374608765787">Xem lại bản cập nhật tên</translation>
+<translation id="1166596238782048887"><ph name="TAB_TITLE" /> thuộc không gian làm việc <ph name="DESK_TITLE" /></translation>
 <translation id="1168020859489941584">Đang mở trong <ph name="TIME_REMAINING" />...</translation>
 <translation id="1170288591054440704">Hỏi khi có một trang web muốn dùng phông chữ đã cài đặt trên thiết bị của bạn</translation>
 <translation id="1171135284592304528">Đánh dấu đối tượng bằng tiêu điểm bàn phím khi đối tượng thay đổi</translation>
@@ -620,6 +621,7 @@
 <translation id="1640235262200048077"><ph name="IME_NAME" /> chưa hoạt động trên các ứng dụng Linux</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 Với Mã hóa RSA</translation>
 <translation id="1641113438599504367">Duyệt web an toàn</translation>
+<translation id="1642492862748815878">Đã kết nối với <ph name="DEVICE" /> và <ph name="NUMBER_OF_DEVICES" /> thiết bị Bluetooth khác</translation>
 <translation id="1642494467033190216">Yêu cầu xóa bảo vệ rootfs và khởi động lại trước khi bật các tính năng gỡ lỗi khác.</translation>
 <translation id="1643072738649235303">Chữ ký X9.62 ECDSA với SHA-1</translation>
 <translation id="1643921258693943800">Để dùng tính năng Chia sẻ lân cận, hãy bật Bluetooth và Wi-Fi</translation>
@@ -1835,6 +1837,7 @@
 <translation id="2885378588091291677">Trình quản lý tác vụ</translation>
 <translation id="2885729872133513017">Đã xảy ra lỗi khi giải mã phản hồi của máy chủ.</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692"><ph name="DEVICE" /> và <ph name="NUMBER_OF_DEVICES" /> thiết bị khác</translation>
 <translation id="2889064240420137087">Mở đường liên kết bằng...</translation>
 <translation id="2891922230654533301">Dùng thiết bị của bạn để đăng nhập vào <ph name="APP_NAME" />?</translation>
 <translation id="2893168226686371498">Trình duyệt mặc định</translation>
@@ -2769,6 +2772,7 @@
 <translation id="3884152383786131369">Nội dung web có nhiều phiên bản ngôn ngữ sẽ dùng ngôn ngữ đầu tiên được hỗ trợ trong danh sách này. Những tùy chọn này được đồng bộ hóa với tùy chọn cài đặt của trình duyệt. <ph name="BEGIN_LINK_LEARN_MORE" />Tìm hiểu thêm<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">Quản trị viên của bạn quản lý các bản cập nhật</translation>
 <translation id="3886446263141354045">Yêu cầu truy cập trang web này của bạn đã được gửi tới <ph name="NAME" /></translation>
+<translation id="3887022758415973389">Hiện danh sách thiết bị</translation>
 <translation id="3888053818972567950">Kết nối với <ph name="WEB_DRIVE" /></translation>
 <translation id="3888550877729210209">Ghi chú bằng <ph name="LOCK_SCREEN_APP_NAME" /></translation>
 <translation id="3888586133700543064">Thông tin này sẽ giúp chúng tôi hiểu rõ hơn vấn đề liên quan đến Trợ lý của bạn. Chúng tôi lưu trữ thông tin này trong tối đa 90 ngày và chỉ các nhóm liên quan phụ trách kỹ thuật và phản hồi mới được phép truy cập.</translation>
@@ -3480,6 +3484,7 @@
 <translation id="4662373422909645029">Biệt hiệu không được bao gồm số</translation>
 <translation id="4662788913887017617">Chia sẻ dấu trang này với iPhone của bạn</translation>
 <translation id="4663373278480897665">Cho phép máy ảnh</translation>
+<translation id="4664289193573249666">Quản lý tính năng DNS bảo mật trong phần cài đặt của Chrome OS</translation>
 <translation id="4664482161435122549">Lỗi xuất PKCS #12</translation>
 <translation id="4665014895760275686">Nhà sản xuất</translation>
 <translation id="4665446389743427678">Tất cả dữ liệu do <ph name="SITE" /> lưu trữ sẽ bị xóa.</translation>
@@ -6012,6 +6017,7 @@
 <translation id="7478623944308207463">Các ứng dụng và tùy chọn cài đặt của bạn sẽ đồng bộ hóa trên mọi thiết bị Chrome OS mà bạn đã đăng nhập bằng Tài khoản Google của mình. Để biết các tùy chọn đồng bộ hóa trình duyệt, hãy chuyển đến phần <ph name="LINK_BEGIN" />Cài đặt Chrome<ph name="LINK_END" />.</translation>
 <translation id="7478658909253570368">Không cho phép trang web kết nối với các cổng nối tiếp</translation>
 <translation id="7479221278376295180">Phần tổng quan về mức sử dụng bộ nhớ</translation>
+<translation id="747981547666531654">Đã kết nối với các thiết bị Bluetooth có tên <ph name="FIRST_DEVICE" /> và <ph name="SECOND_DEVICE" /></translation>
 <translation id="7481312909269577407">Chuyển tiếp</translation>
 <translation id="7481358317100446445">Sẵn sàng</translation>
 <translation id="748138892655239008">Giới hạn Cơ bản của Chứng chỉ</translation>
@@ -6064,6 +6070,7 @@
 <translation id="7531771599742723865">Thiết bị đang được sử dụng</translation>
 <translation id="7531779363494549572">Chuyển đến Cài đặt &gt; Ứng dụng và thông báo &gt; Thông báo.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> hiện không phản hồi. Hãy chọn "Buộc đóng" để đóng ứng dụng.</translation>
+<translation id="7535730537657706072">Để xóa nhật ký duyệt web Ẩn danh khỏi thiết bị của bạn, hãy đóng tất cả thẻ Ẩn danh</translation>
 <translation id="7535791657097741517">Bật giao diện sáng</translation>
 <translation id="7537451260744431038">Các trang web không thể dùng cookie để cải thiện trải nghiệm duyệt web của bạn, chẳng hạn như để duy trì trạng thái đăng nhập hoặc ghi nhớ các mục có trong giỏ hàng</translation>
 <translation id="753769905878158714">Trong thanh địa chỉ, hãy nhập từ khóa cho trang web mà bạn muốn tìm kiếm. Sau đó, dùng một phím tắt để tiếp tục.</translation>
@@ -6681,6 +6688,7 @@
 <translation id="8138217203226449454">Có phải bạn muốn thay đổi nhà cung cấp dịch vụ tìm kiếm không?</translation>
 <translation id="8138997515734480534">Trạng thái của <ph name="VM_NAME" /></translation>
 <translation id="8139447493436036221">Tệp trên Google Drive</translation>
+<translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
 <translation id="8141584439523427891">Đang mở trong trình duyệt thay thế</translation>
 <translation id="8141725884565838206">Quản lý mật khẩu của bạn</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{một video}other{# video}}</translation>
@@ -6770,7 +6778,6 @@
 <translation id="8235418492073272647">Trang được chia sẻ qua <ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">thoát</translation>
 <translation id="8236917170563564587">Chia sẻ thẻ này</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" /> được thiết lập để mở trong một thẻ trình duyệt mới. Các đường liên kết được hỗ trợ cũng sẽ mở ra trong trình duyệt đó.</translation>
 <translation id="8237647586961940482">Đỏ và hồng đậm</translation>
 <translation id="8239032431519548577">Hoàn tất việc đăng ký doanh nghiệp</translation>
 <translation id="8239932336306009582">Không được phép gửi thông báo</translation>
@@ -7396,6 +7403,7 @@
 <translation id="8909782404367982052">Kéo để Tìm kiếm hình ảnh bằng Google Ống kính</translation>
 <translation id="8909833622202089127">Trang web đang theo dõi vị trí của bạn</translation>
 <translation id="8910222113987937043">Các thay đổi đối với dấu trang, lịch sử, mật khẩu và các cài đặt khác sẽ không được đồng bộ hóa với Tài khoản Google của bạn nữa. Tuy nhiên, dữ liệu hiện có của bạn sẽ vẫn được lưu trữ trong Tài khoản Google và có thể được quản lý trên <ph name="BEGIN_LINK" />Trang tổng quan Google<ph name="END_LINK" />.</translation>
+<translation id="8910987510378294980">Ẩn danh sách thiết bị</translation>
 <translation id="8912362522468806198">Tài khoản Google</translation>
 <translation id="8912793549644936705">Kéo dãn</translation>
 <translation id="8912810933860534797">Bật tính năng tự động quét</translation>
@@ -7513,6 +7521,7 @@
 <translation id="9033765790910064284">Vẫn tiếp tục</translation>
 <translation id="9033857511263905942">&amp;Dán</translation>
 <translation id="903480517321259405">Nhập lại mã PIN</translation>
+<translation id="9037054491984310631">Đã kết nối với thiết bị Bluetooth có tên <ph name="DEVICE" /></translation>
 <translation id="9037640663275993951">Thiết bị không được phép</translation>
 <translation id="9037818663270399707">Đường kết nối của bạn không ở chế độ riêng tư đối với một số lưu lượng truy cập mạng</translation>
 <translation id="9037965129289936994">Hiển thị văn bản gốc</translation>
@@ -7593,6 +7602,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> có thể nguy hiểm. Gửi cho Google để quét?</translation>
 <translation id="9112987648460918699">Tìm...</translation>
 <translation id="9113240369465613386">Chỉ các trang lẻ</translation>
+<translation id="9113469270512809735">Ẩn/hiện các mục đã đóng gần đây</translation>
 <translation id="9114663181201435112">Đăng nhập dễ dàng</translation>
 <translation id="9115675100829699941">&amp;Dấu trang</translation>
 <translation id="9116465289595958864">Sửa đổi lần cuối</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index b878f2f3..6cf87d0 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -6748,7 +6748,6 @@
 <translation id="8235418492073272647">从“<ph name="DEVICE_NAME" />”分享的页面</translation>
 <translation id="8236911020904880539">退出</translation>
 <translation id="8236917170563564587">改为分享此标签页</translation>
-<translation id="8237471930911823556"><ph name="APP_NAME" />已设为在新的浏览器标签页中打开,所支持的链接也会在浏览器中打开。</translation>
 <translation id="8237647586961940482">深粉色和红色</translation>
 <translation id="8239032431519548577">企业注册已完成</translation>
 <translation id="8239932336306009582">不允许发送通知</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 8500383..3f94a3c5 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -161,6 +161,7 @@
 <translation id="1165039591588034296">錯誤</translation>
 <translation id="1166212789817575481">關閉右側分頁</translation>
 <translation id="1166583374608765787">檢查新名稱</translation>
+<translation id="1166596238782048887">「<ph name="TAB_TITLE" />」分頁屬於「<ph name="DESK_TITLE" />」桌面</translation>
 <translation id="1168020859489941584">將於 <ph name="TIME_REMAINING" /> 後開啟…</translation>
 <translation id="1170288591054440704">在網站要求使用安裝在您裝置上的字型時詢問您</translation>
 <translation id="1171135284592304528">物件變更時突顯鍵盤焦點的物件</translation>
@@ -620,6 +621,7 @@
 <translation id="1640235262200048077">Linux 應用程式目前不支援<ph name="IME_NAME" /></translation>
 <translation id="1640283014264083726">PKCS #1 MD4 (使用 RSA 加密)</translation>
 <translation id="1641113438599504367">安全瀏覽</translation>
+<translation id="1642492862748815878">已連線至「<ph name="DEVICE" />」和另外 <ph name="NUMBER_OF_DEVICES" /> 部藍牙裝置</translation>
 <translation id="1642494467033190216">如要啟用其他偵錯功能,您必須先移除 rootfs 保護並重新啟動。</translation>
 <translation id="1643072738649235303">使用 SHA-1 的 X9.62 ECDSA 簽名</translation>
 <translation id="1643921258693943800">如要使用「咫尺共享」功能,請開啟藍牙和 Wi-Fi</translation>
@@ -1834,6 +1836,7 @@
 <translation id="2885378588091291677">工作管理員</translation>
 <translation id="2885729872133513017">解碼伺服器回應時發生問題。</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692">「<ph name="DEVICE" />」和另外 <ph name="NUMBER_OF_DEVICES" /> 部裝置</translation>
 <translation id="2889064240420137087">使用其他程式開啟連結…</translation>
 <translation id="2891922230654533301">要使用裝置登入 <ph name="APP_NAME" /> 嗎?</translation>
 <translation id="2893168226686371498">預設瀏覽器</translation>
@@ -2768,6 +2771,7 @@
 <translation id="3884152383786131369">支援多種語言的網站內容會使用此清單上的第一個支援語言。這些偏好設定會與您的瀏覽器設定同步。<ph name="BEGIN_LINK_LEARN_MORE" />瞭解詳情<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">更新由您的管理員管理</translation>
 <translation id="3886446263141354045">您想存取此網站的要求已傳送至<ph name="NAME" /></translation>
+<translation id="3887022758415973389">顯示裝置清單</translation>
 <translation id="3888053818972567950">「<ph name="WEB_DRIVE" />」連線</translation>
 <translation id="3888550877729210209">正在使用「<ph name="LOCK_SCREEN_APP_NAME" />」寫筆記</translation>
 <translation id="3888586133700543064">這項資料可讓我們進一步瞭解「Google 助理」的問題,並會在系統中儲存最多 90 天,且只有相關的工程團隊和意見團隊才能存取。</translation>
@@ -3479,6 +3483,7 @@
 <translation id="4662373422909645029">暱稱不可包含數字</translation>
 <translation id="4662788913887017617">透過您的 iPhone 分享此書籤</translation>
 <translation id="4663373278480897665">已允許使用相機</translation>
+<translation id="4664289193573249666">在 Chrome OS 設定中管理安全 DNS</translation>
 <translation id="4664482161435122549">PKCS #12 匯出錯誤</translation>
 <translation id="4665014895760275686">製造商</translation>
 <translation id="4665446389743427678"><ph name="SITE" /> 儲存的所有資料都會被刪除。</translation>
@@ -6011,6 +6016,7 @@
 <translation id="7478623944308207463">您的應用程式和設定將會同步至所有您使用 Google 帳戶登入的 Chrome 作業系統裝置。如要瞭解瀏覽器同步選項,請前往 <ph name="LINK_BEGIN" />Chrome 設定<ph name="LINK_END" />。</translation>
 <translation id="7478658909253570368">不允許網站連接至序列連接埠</translation>
 <translation id="7479221278376295180">儲存空間用量概覽</translation>
+<translation id="747981547666531654">已連線至名為「<ph name="FIRST_DEVICE" />」和「<ph name="SECOND_DEVICE" />」的藍牙裝置</translation>
 <translation id="7481312909269577407">向前</translation>
 <translation id="7481358317100446445">準備就緒</translation>
 <translation id="748138892655239008">憑證基本限制</translation>
@@ -6063,6 +6069,7 @@
 <translation id="7531771599742723865">裝置使用中</translation>
 <translation id="7531779363494549572">前往 [設定] &gt; [應用程式和通知] &gt; [通知]。</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> 沒有回應。選取「強制關閉」即可關閉應用程式。</translation>
+<translation id="7535730537657706072">如要清除裝置上的無痕模式瀏覽記錄,請關閉所有無痕分頁</translation>
 <translation id="7535791657097741517">開啟淺色主題背景</translation>
 <translation id="7537451260744431038">網站不可使用 Cookie 來改善瀏覽體驗,例如讓您保持登入狀態或記住購物車中的商品</translation>
 <translation id="753769905878158714">在網址列輸入您想搜尋網站的關鍵字。然後使用鍵盤快速鍵繼續操作。</translation>
@@ -6680,6 +6687,7 @@
 <translation id="8138217203226449454">您要變更搜尋服務供應商嗎?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> 狀態</translation>
 <translation id="8139447493436036221">「Google 雲端硬碟」檔案</translation>
+<translation id="8140070492745508800">「<ph name="FIRST_DEVICE" />」、「<ph name="SECOND_DEVICE" />」</translation>
 <translation id="8141584439523427891">正在替代瀏覽器中開啟</translation>
 <translation id="8141725884565838206">管理您的密碼</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{1 部影片}other{# 部影片}}</translation>
@@ -6769,7 +6777,6 @@
 <translation id="8235418492073272647">透過「<ph name="DEVICE_NAME" />」分享的網頁</translation>
 <translation id="8236911020904880539">離開</translation>
 <translation id="8236917170563564587">改為分享此分頁</translation>
-<translation id="8237471930911823556">「<ph name="APP_NAME" />」已設定為在新瀏覽器分頁中開啟,支援的連結亦會在瀏覽器中開啟。</translation>
 <translation id="8237647586961940482">深粉紅色和紅色</translation>
 <translation id="8239032431519548577">企業註冊完成</translation>
 <translation id="8239932336306009582">不允許傳送通知</translation>
@@ -7395,6 +7402,7 @@
 <translation id="8909782404367982052">拖曳以使用「Google 智能鏡頭」搜尋圖片</translation>
 <translation id="8909833622202089127">網站正在追蹤您的位置</translation>
 <translation id="8910222113987937043">您的書籤、記錄、密碼和其他設定的變更將不會繼續同步至您的 Google 帳戶。不過,Google 帳戶內仍會儲存您現有的資料,而您亦可透過「<ph name="BEGIN_LINK" />Google 資訊主頁<ph name="END_LINK" />」管理這些資料。</translation>
+<translation id="8910987510378294980">隱藏裝置清單</translation>
 <translation id="8912362522468806198">Google 帳戶</translation>
 <translation id="8912793549644936705">延伸</translation>
 <translation id="8912810933860534797">啟用自動掃瞄</translation>
@@ -7512,6 +7520,7 @@
 <translation id="9033765790910064284">仍要繼續</translation>
 <translation id="9033857511263905942">貼上(&amp;P)</translation>
 <translation id="903480517321259405">重新輸入 PIN</translation>
+<translation id="9037054491984310631">已連線至名為「<ph name="DEVICE" />」的藍牙裝置</translation>
 <translation id="9037640663275993951">不允許使用裝置</translation>
 <translation id="9037818663270399707">您的連線有部分網絡流量不屬於私人連線</translation>
 <translation id="9037965129289936994">顯示原文</translation>
@@ -7592,6 +7601,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> 可能不安全。要傳送到 Google 進行掃瞄嗎?</translation>
 <translation id="9112987648460918699">尋找…</translation>
 <translation id="9113240369465613386">只列印單數頁面</translation>
+<translation id="9113469270512809735">顯示/隱藏最近關閉的項目</translation>
 <translation id="9114663181201435112">輕鬆登入</translation>
 <translation id="9115675100829699941">書籤(&amp;B)</translation>
 <translation id="9116465289595958864">上次修改時間</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 7b3e69a..17b6206 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -159,6 +159,7 @@
 <translation id="1165039591588034296">錯誤</translation>
 <translation id="1166212789817575481">關閉右側分頁</translation>
 <translation id="1166583374608765787">檢查新名稱</translation>
+<translation id="1166596238782048887">「<ph name="TAB_TITLE" />」分頁屬於「<ph name="DESK_TITLE" />」桌面</translation>
 <translation id="1168020859489941584">將於 <ph name="TIME_REMAINING" /> 內開啟...</translation>
 <translation id="1170288591054440704">網站必須先詢問你,才能使用裝置上安裝的字型</translation>
 <translation id="1171135284592304528">鍵盤焦點所在物件變更時醒目顯示</translation>
@@ -617,6 +618,7 @@
 <translation id="1640235262200048077">Linux 應用程式目前不支援「<ph name="IME_NAME" />」</translation>
 <translation id="1640283014264083726">PKCS #1 MD4 (使用 RSA 加密)</translation>
 <translation id="1641113438599504367">安全瀏覽</translation>
+<translation id="1642492862748815878">已連線至「<ph name="DEVICE" />」和另外 <ph name="NUMBER_OF_DEVICES" /> 部藍牙裝置</translation>
 <translation id="1642494467033190216">必須先移除 rootfs 保護並重新啟動,才能啟用其他偵錯功能。</translation>
 <translation id="1643072738649235303">使用 SHA-1 的 X9.62 ECDSA 簽章</translation>
 <translation id="1643921258693943800">如要使用鄰近分享功能,請開啟藍牙功能和 Wi-Fi</translation>
@@ -1820,6 +1822,7 @@
 <translation id="2885378588091291677">工作管理員</translation>
 <translation id="2885729872133513017">解碼伺服器回應時發生問題。</translation>
 <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation>
+<translation id="288734198558082692">「<ph name="DEVICE" />」和另外 <ph name="NUMBER_OF_DEVICES" /> 部裝置</translation>
 <translation id="2889064240420137087">使用其他程式開啟連結...</translation>
 <translation id="2891922230654533301">要從這部裝置登入「<ph name="APP_NAME" />」嗎?</translation>
 <translation id="2893168226686371498">預設瀏覽器</translation>
@@ -2754,6 +2757,7 @@
 <translation id="3884152383786131369">支援多種語言的網站內容會使用這個清單上第一個支援的語言。這些偏好設定會與你的瀏覽器設定同步。<ph name="BEGIN_LINK_LEARN_MORE" />瞭解詳情<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="3885112598747515383">更新作業由管理員負責管理。</translation>
 <translation id="3886446263141354045">你想存取這個網站的要求已傳送給<ph name="NAME" /></translation>
+<translation id="3887022758415973389">顯示裝置清單</translation>
 <translation id="3888053818972567950">「<ph name="WEB_DRIVE" />」連線</translation>
 <translation id="3888550877729210209">使用「<ph name="LOCK_SCREEN_APP_NAME" />」寫筆記</translation>
 <translation id="3888586133700543064">這項資訊可協助我們進一步瞭解 Google 助理的問題。此資訊最多會保存 90 天,而且僅開放相關的工程團隊和意見回饋團隊存取。</translation>
@@ -3463,6 +3467,7 @@
 <translation id="4662373422909645029">暱稱不可包含數字</translation>
 <translation id="4662788913887017617">在 iPhone 上取得這個書籤</translation>
 <translation id="4663373278480897665">可使用攝影機</translation>
+<translation id="4664289193573249666">在 Chrome OS 設定中管理安全 DNS</translation>
 <translation id="4664482161435122549">PKCS #12 匯出錯誤</translation>
 <translation id="4665014895760275686">製造商</translation>
 <translation id="4665446389743427678"><ph name="SITE" /> 儲存的所有資料都將遭到刪除。</translation>
@@ -5995,6 +6000,7 @@
 <translation id="7478623944308207463">當你使用 Google 帳戶登入後,所有 Chrome 作業系統裝置上的應用程式和設定都會保持同步。如要查看瀏覽器同步處理選項,請前往 <ph name="LINK_BEGIN" />Chrome 設定<ph name="LINK_END" />。</translation>
 <translation id="7478658909253570368">禁止網站連線至序列埠</translation>
 <translation id="7479221278376295180">儲存空間使用量總覽</translation>
+<translation id="747981547666531654">已連線至名為「<ph name="FIRST_DEVICE" />」和「<ph name="SECOND_DEVICE" />」的藍牙裝置</translation>
 <translation id="7481312909269577407">往前</translation>
 <translation id="7481358317100446445">準備就緒</translation>
 <translation id="748138892655239008">憑證基本限制</translation>
@@ -6047,6 +6053,7 @@
 <translation id="7531771599742723865">裝置使用中</translation>
 <translation id="7531779363494549572">依序輕觸 [設定] &gt; [應用程式和通知] &gt; [通知]。</translation>
 <translation id="7532009420053991888">「<ph name="LINUX_APP_NAME" />」沒有回應。選取「強制關閉」即可關閉應用程式。</translation>
+<translation id="7535730537657706072">如要清除裝置上的無痕模式瀏覽記錄,請關閉所有無痕分頁</translation>
 <translation id="7535791657097741517">開啟淺色主題</translation>
 <translation id="7537451260744431038">網站無法使用 Cookie 改善瀏覽體驗,例如讓你保持登入狀態,或記住購物車中的商品</translation>
 <translation id="753769905878158714">在網址列中針對想搜尋的網站輸入關鍵字,然後使用鍵盤快速鍵繼續操作。</translation>
@@ -6664,6 +6671,7 @@
 <translation id="8138217203226449454">你要變更搜尋引擎嗎?</translation>
 <translation id="8138997515734480534">「<ph name="VM_NAME" />」狀態</translation>
 <translation id="8139447493436036221">Google 雲端硬碟檔案</translation>
+<translation id="8140070492745508800">「<ph name="FIRST_DEVICE" />」、「<ph name="SECOND_DEVICE" />」</translation>
 <translation id="8141584439523427891">正在替代瀏覽器中開啟</translation>
 <translation id="8141725884565838206">管理你的密碼</translation>
 <translation id="814204052173971714">{COUNT,plural, =1{1 部影片}other{# 部影片}}</translation>
@@ -6753,7 +6761,6 @@
 <translation id="8235418492073272647">透過「<ph name="DEVICE_NAME" />」分享的網頁</translation>
 <translation id="8236911020904880539">離開</translation>
 <translation id="8236917170563564587">改為分享這個分頁</translation>
-<translation id="8237471930911823556">「<ph name="APP_NAME" />」已設為會在新的瀏覽器分頁中開啟,支援的連結也會在瀏覽器中開啟。</translation>
 <translation id="8237647586961940482">深粉紅色與紅色</translation>
 <translation id="8239032431519548577">企業註冊完成</translation>
 <translation id="8239932336306009582">不允許傳送通知</translation>
@@ -7379,6 +7386,7 @@
 <translation id="8909782404367982052">藉由拖曳來使用 Google 智慧鏡頭搜尋圖片</translation>
 <translation id="8909833622202089127">網站正在追蹤你的位置</translation>
 <translation id="8910222113987937043">你的書籤、歷史記錄、密碼和其他設定的變更將不會再同步到你的 Google 帳戶。不過,你的現有資料仍會儲存在你的 Google 帳戶中,並可透過 <ph name="BEGIN_LINK" />Google 資訊主頁<ph name="END_LINK" />管理。</translation>
+<translation id="8910987510378294980">隱藏裝置清單</translation>
 <translation id="8912362522468806198">Google 帳戶</translation>
 <translation id="8912793549644936705">延伸</translation>
 <translation id="8912810933860534797">啟用自動掃描</translation>
@@ -7496,6 +7504,7 @@
 <translation id="9033765790910064284">仍要繼續</translation>
 <translation id="9033857511263905942">貼上(&amp;P)</translation>
 <translation id="903480517321259405">重新輸入 PIN 碼</translation>
+<translation id="9037054491984310631">已連線至名為「<ph name="DEVICE" />」的藍牙裝置</translation>
 <translation id="9037640663275993951">不允許使用裝置</translation>
 <translation id="9037818663270399707">你的連線有部分網路流量不屬於私人連線</translation>
 <translation id="9037965129289936994">顯示原文</translation>
@@ -7576,6 +7585,7 @@
 <translation id="9112786533191410418"><ph name="FILE_NAME" /> 可能含有危險內容,要送交 Google 進行掃描嗎?</translation>
 <translation id="9112987648460918699">尋找...</translation>
 <translation id="9113240369465613386">僅限奇數頁</translation>
+<translation id="9113469270512809735">顯示/隱藏最近關閉的項目</translation>
 <translation id="9114663181201435112">輕鬆登入</translation>
 <translation id="9115675100829699941">書籤(&amp;B)</translation>
 <translation id="9116465289595958864">上次修改時間</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index a0d3b80a..f72c478 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -6778,7 +6778,6 @@
 <translation id="8235418492073272647">Ikhasi labiwe kusuka ku-<ph name="DEVICE_NAME" /></translation>
 <translation id="8236911020904880539">phuma</translation>
 <translation id="8236917170563564587">Yabelana ngale thebhu kunalokho</translation>
-<translation id="8237471930911823556">I-<ph name="APP_NAME" /> isethwe ukuvula kuthebhu ye-browser entsha, amalinki asekelwyo nawo azovulwa ku-browser.</translation>
 <translation id="8237647586961940482">Okuphinki kakhulu nokubomvu</translation>
 <translation id="8239032431519548577">Ukubhaliswa kwebhizinisi kuqedile</translation>
 <translation id="8239932336306009582">Ayivunyelwe ukuthumela izaziso</translation>
diff --git a/chrome/app/resources/google_chrome_strings_be.xtb b/chrome/app/resources/google_chrome_strings_be.xtb
index 40bac82..726451e 100644
--- a/chrome/app/resources/google_chrome_strings_be.xtb
+++ b/chrome/app/resources/google_chrome_strings_be.xtb
@@ -277,6 +277,7 @@
 <translation id="8008534537613507642">Пераўсталяваць Chrome</translation>
 <translation id="8013993649590906847">Калі відарыс не мае прыдатнага апісання, Chrome паспрабуе дадаць яго для вас. Каб стварыць апісанні, відарысы адпраўляюцца ў Google.</translation>
 <translation id="8129812357326543296">Пра &amp;Google Chrome</translation>
+<translation id="822971176939352383">Наступныя ўліковыя запісы не выкарыстаны для ўваходу ні ў адзін з профіляў Chrome. Калі вы хочаце выкарыстоўваць адзін з гэтых уліковых запісаў у новым профілі, неабходна спачатку выдаліць існуючы профіль.</translation>
 <translation id="8255190535488645436">Google Chrome выкарыстоўвае вашу камеру і мікрафон.</translation>
 <translation id="8286862437124483331">Google Chrome спрабуе паказаць паролі. Каб дазволіць гэта, увядзіце пароль Windows.</translation>
 <translation id="828798499196665338">Вашы бацькі выключылі "Дазволы для сайтаў, праграм і пашырэнняў" для Chrome. Уключэнне гэтага элемента (<ph name="EXTENSION_TYPE_PARAMETER" />) забаронена.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb
index 54545f1..ef434e0 100644
--- a/chrome/app/resources/google_chrome_strings_cs.xtb
+++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -277,6 +277,7 @@
 <translation id="8008534537613507642">Přeinstalovat Chrome</translation>
 <translation id="8013993649590906847">Pokud obrázek nemá užitečný popis, Chrome se vám jej pokusí poskytnout. Za účelem vytváření popisů jsou obrázky odesílány do Googlu.</translation>
 <translation id="8129812357326543296">O aplikaci &amp;Google Chrome</translation>
+<translation id="822971176939352383">Následující účty nejsou přihlášeny do žádných profilů Chrome. Pokud účet chcete použít v jiném profilu, nejdříve příslušný profil odstraňte.</translation>
 <translation id="8255190535488645436">Google Chrome používá vaši kameru a mikrofon.</translation>
 <translation id="8286862437124483331">Aplikace Google Chrome se pokouší zobrazit hesla. Tato akce vyžaduje zadání hesla systému Windows.</translation>
 <translation id="828798499196665338">Tvůj rodič pro Chrome vypnul možnost Oprávnění pro weby, aplikace a rozšíření. Aktivace tohoto <ph name="EXTENSION_TYPE_PARAMETER" /> není povolena.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb
index efca2e2..91ba7688 100644
--- a/chrome/app/resources/google_chrome_strings_fi.xtb
+++ b/chrome/app/resources/google_chrome_strings_fi.xtb
@@ -270,6 +270,7 @@
 <translation id="8008534537613507642">Asenna Chrome uudelleen</translation>
 <translation id="8013993649590906847">Jos kuvalla ei ole hyödyllistä kuvausta, Chrome yrittää luoda sellaisen. Kuvat lähetetään Googlelle kuvausten luomista varten.</translation>
 <translation id="8129812357326543296">Tietoja &amp;Google Chromesta</translation>
+<translation id="822971176939352383">Näillä tileillä ei ole kirjauduttu sisään Chrome-profiileille. Jos haluat käyttää tiliä toisella profiililla, poista ensin kyseinen profiili.</translation>
 <translation id="8255190535488645436">Google Chrome käyttää kameraasi ja mikrofoniasi.</translation>
 <translation id="8286862437124483331">Google Chrome yrittää näyttää salasanoja. Salli tämä kirjoittamalla Windows-salasanasi.</translation>
 <translation id="828798499196665338">Vanhempasi ovat laittaneet Chromen sivustojen, sovellusten ja laajennusten käyttöluvat pois päältä. Käyttöönottoa (<ph name="EXTENSION_TYPE_PARAMETER" />) ei sallita.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb
index 67d8484..9780bb9 100644
--- a/chrome/app/resources/google_chrome_strings_fil.xtb
+++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -278,6 +278,7 @@
 <translation id="8008534537613507642">Muling i-install ang Chrome</translation>
 <translation id="8013993649590906847">Kung hindi sapat ang deskripsyon ng isang larawan, susubukan ng Chrome na ayusin ito para sa iyo. Para gumawa ng mga deskripsyon, ipinapadala ang mga larawan sa Google.</translation>
 <translation id="8129812357326543296">Tungkol sa &amp;Google Chrome</translation>
+<translation id="822971176939352383">Hindi naka-sign in sa anumang profile sa Chrome ang mga sumusunod na account. Kung gusto mong gumamit ng account sa ibang profile, alisin muna ang profile na iyon.</translation>
 <translation id="8255190535488645436">Ginagamit ng Google Chrome ang iyong camera at mikropono.</translation>
 <translation id="8286862437124483331">Sinusubukan ng Google Chrome na ipakita ang mga password. I-type ang iyong password sa Windows upang payagan ito.</translation>
 <translation id="828798499196665338">Na-off ng iyong magulang ang "Mga pahintulot para sa mga site, app, at extension" para sa Chrome. Hindi pinapayagan ang pag-enable sa <ph name="EXTENSION_TYPE_PARAMETER" /> na ito.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb
index 54a816f..d1ae91db 100644
--- a/chrome/app/resources/google_chrome_strings_hi.xtb
+++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -274,6 +274,7 @@
 <translation id="8008534537613507642">Chrome फिर से इंस्टॉल करें</translation>
 <translation id="8013993649590906847">अगर किसी इमेज के बारे में मददगार जानकारी मौजूद नहीं है, तो Chrome उसके बारे में जानकारी देने की कोशिश करेगा. जानकारी तैयार करने के लिए, इमेज Google को भेजी जाती हैं.</translation>
 <translation id="8129812357326543296">&amp;Google Chrome के बारे में</translation>
+<translation id="822971176939352383">इन खातों को किसी भी Chrome प्रोफ़ाइल में साइन इन नहीं किया गया है. अगर आप किसी अन्य प्रोफ़ाइल में किसी खाते को साइन इन करना चाहते हैं, तो पहले वह प्रोफ़ाइल हटाएं.</translation>
 <translation id="8255190535488645436">Google Chrome आपके कैमरे और माइक्रोफ़ोन का उपयोग कर रहा है.</translation>
 <translation id="8286862437124483331">Google Chrome पासवर्ड दिखाने का प्रयास कर रहा है. इसकी अनुमति देने के लिए अपना Windows पासवर्ड लिखें.</translation>
 <translation id="828798499196665338">आपके अभिभावक ने Chrome के लिए, "साइट, ऐप्लिकेशन, और एक्सटेंशन के लिए अनुमतियां" को बंद कर दिया है. इस <ph name="EXTENSION_TYPE_PARAMETER" /> को चालू करने की अनुमति नहीं है.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb
index 0f3c830..bc7559a9 100644
--- a/chrome/app/resources/google_chrome_strings_id.xtb
+++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -270,6 +270,7 @@
 <translation id="8008534537613507642">Instal Ulang Chrome</translation>
 <translation id="8013993649590906847">Jika gambar tidak memiliki deskripsi yang berguna, Chrome akan mencoba memberikan deskripsi untuk Anda. Untuk membuat deskripsi, gambar akan dikirim ke Google.</translation>
 <translation id="8129812357326543296">Tentang &amp;Google Chrome</translation>
+<translation id="822971176939352383">Akun berikut tidak login ke profil Chrome mana pun. Jika Anda ingin menggunakan akun di profil lain, hapus profil tersebut terlebih dahulu.</translation>
 <translation id="8255190535488645436">Google Chrome menggunakan kamera dan mikrofon Anda.</translation>
 <translation id="8286862437124483331">Google Chrome mencoba menampilkan sandi. Ketik sandi Windows Anda untuk mengizinkannya.</translation>
 <translation id="828798499196665338">Orang tuamu telah menonaktifkan "Izin untuk situs, aplikasi, dan ekstensi" untuk Chrome. Tindakan mengaktifkan <ph name="EXTENSION_TYPE_PARAMETER" /> ini tidak diizinkan.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb
index babd0bf..86982f77 100644
--- a/chrome/app/resources/google_chrome_strings_ja.xtb
+++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -269,6 +269,7 @@
 <translation id="8008534537613507642">Chrome を再インストール</translation>
 <translation id="8013993649590906847">画像に有効な説明が設定されていない場合に、Chrome で説明を自動的に生成できるよう Google に画像が送信されます。</translation>
 <translation id="8129812357326543296">Google Chrome について(&amp;G)</translation>
+<translation id="822971176939352383">以下のアカウントは Chrome プロファイルにログインしていません。別のプロファイルでアカウントを使用する場合は、最初にそのプロファイルを削除してください。</translation>
 <translation id="8255190535488645436">Google Chrome がカメラとマイクを使用しています。</translation>
 <translation id="8286862437124483331">Google Chrome でパスワードを表示しようとしています。続行するには、Windows のパスワードを入力してください。</translation>
 <translation id="828798499196665338">保護者が Chrome の「サイト、アプリ、拡張機能の権限」をオフにしました。この <ph name="EXTENSION_TYPE_PARAMETER" /> を有効にすることはできません。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ka.xtb b/chrome/app/resources/google_chrome_strings_ka.xtb
index 5aa5b3a..a39aebcf 100644
--- a/chrome/app/resources/google_chrome_strings_ka.xtb
+++ b/chrome/app/resources/google_chrome_strings_ka.xtb
@@ -276,6 +276,7 @@
 <translation id="8008534537613507642">ხელახლა დააინსტალირეთ Chrome</translation>
 <translation id="8013993649590906847">თუ სურათს არ ექნება სასარგებლო აღწერილობა, Chrome შეეცდება მის უზრუნველყოფას. აღწერილობების შესაქმნელად სურათები იგზავნება Google-ში.</translation>
 <translation id="8129812357326543296">&amp;Google Chrome-ის შესახებ</translation>
+<translation id="822971176939352383">მითითებული ანგარიშები არ არის შესული Chrome პროფილებში. თუ ანგარიშის სხვა პროფილში გამოყენება გსურთ, პირველ რიგში, წაშალეთ შესაბამისი პროფილი.</translation>
 <translation id="8255190535488645436">Google Chrome იყენებს თქვენს კამერასა და მიკროფონს.</translation>
 <translation id="8286862437124483331">Google Chrome ცდილობს პაროლების ჩვენებას. აკრიფეთ თქვენი Windows-ის პაროლი, რათა დაუშვათ ეს.</translation>
 <translation id="828798499196665338">თქვენმა მშობელმა გამორთო „ნებართვები საიტებისთვის, აპებისა და გაფართოებებისთვის“ Chrome-ისთვის. ეს <ph name="EXTENSION_TYPE_PARAMETER" /> ვერ ჩაირთვება.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_km.xtb b/chrome/app/resources/google_chrome_strings_km.xtb
index 0a94437..3a5ac17 100644
--- a/chrome/app/resources/google_chrome_strings_km.xtb
+++ b/chrome/app/resources/google_chrome_strings_km.xtb
@@ -278,6 +278,7 @@
 <translation id="8008534537613507642">តំឡើង Chrome ឡើងវិញ</translation>
 <translation id="8013993649590906847">ប្រសិនបើ​រូបភាព​មិនមាន​ការពណ៌នា​ដែលមានប្រយោជន៍ Chrome នឹង​ព្យាយាមផ្ដល់​ការពណ៌នា​ដែលមានប្រយោជន៍សម្រាប់​អ្នក។ រូបភាព​ត្រូវបានផ្ញើ​ទៅ Google ដើម្បី​បង្កើត​ការពណ៌នា។</translation>
 <translation id="8129812357326543296">អំពី Google Chrome</translation>
+<translation id="822971176939352383">គណនី​ខាងក្រោម​មិនបានចូល​កម្រងព័ត៌មាន Chrome ណាមួយឡើយ។ ប្រសិនបើអ្នក​ចង់ប្រើគណនី​នៅក្នុង​កម្រងព័ត៌មាន​ផ្សេងទៀត សូមដក​កម្រងព័ត៌មាននោះ​ចេញជាមុនសិន។</translation>
 <translation id="8255190535488645436">Google Chrome កំពុងប្រើកាមេរ៉ា និងម៉ៃក្រូហ្វូនរបស់អ្នក។</translation>
 <translation id="8286862437124483331">Google Chrome កំពុងព្យាយាមបង្ហាញពាក្យសម្ងាត់។ វាយបញ្ចូលពាក្យសម្ងាត់ Windows ដើម្បីអនុញ្ញាត។</translation>
 <translation id="828798499196665338">មាតាបិតា​របស់អ្នក​បានបិទ "ការអនុញ្ញាត​ឱ្យចូលប្រើ​គេហទំព័រ កម្មវិធី និង​កម្មវិធី​បន្ថែម" សម្រាប់ Chrome។ ការបើក <ph name="EXTENSION_TYPE_PARAMETER" /> នេះ​មិនត្រូវបាន​អនុញ្ញាតទេ​។</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb
index 01ff349..9fba512 100644
--- a/chrome/app/resources/google_chrome_strings_ko.xtb
+++ b/chrome/app/resources/google_chrome_strings_ko.xtb
@@ -278,6 +278,7 @@
 <translation id="8008534537613507642">Chrome 재설치</translation>
 <translation id="8013993649590906847">이미지에 유용한 설명이 없으면 Chrome에서 자동으로 설명을 제공하려고 시도합니다. 설명을 생성하기 위해 이미지가 Google로 전송됩니다.</translation>
 <translation id="8129812357326543296">Chrome 정보(&amp;G)</translation>
+<translation id="822971176939352383">다음 계정은 어느 Chrome 프로필에도 로그인하지 않았습니다. 다른 프로필에서 계정을 사용하려면 먼저 프로필을 삭제하세요</translation>
 <translation id="8255190535488645436">Chrome에서 카메라와 마이크를 사용 중입니다.</translation>
 <translation id="8286862437124483331">Chrome에서 비밀번호를 표시하려고 합니다. 허용하려면 Windows 비밀번호를 입력하세요.</translation>
 <translation id="828798499196665338">부모님이 Chrome의 ‘사이트, 앱, 확장 프로그램에 대한 권한’을 사용 중지하셨습니다. 이 <ph name="EXTENSION_TYPE_PARAMETER" /> 사용은 허용되지 않습니다.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lo.xtb b/chrome/app/resources/google_chrome_strings_lo.xtb
index cf63342..c3851c9e 100644
--- a/chrome/app/resources/google_chrome_strings_lo.xtb
+++ b/chrome/app/resources/google_chrome_strings_lo.xtb
@@ -278,6 +278,7 @@
 <translation id="8008534537613507642">ຕິດຕັ້ງ Chrome ຄືນໃໝ່</translation>
 <translation id="8013993649590906847">ຖ້າຮູບບໍ່ມີລາຍລະອຽດທີ່ເປັນປະໂຫຍດ, Chrome ຈະພະຍາຍາມໃຫ້ລາຍລະອຽດແກ່ທ່ານ. ເພື່ອສ້າງລາຍລະອຽດ, ລະບົບຈະສົ່ງຮູບພາບໃຫ້ Google.</translation>
 <translation id="8129812357326543296">ກ່ຽວກັບ Google Chrome</translation>
+<translation id="822971176939352383">ບັນຊີຕໍ່ໄປນີ້ບໍ່ໄດ້ເຂົ້າສູ່ລະບົບຫາໂປຣໄຟລ໌ Chrome ໃດ. ຫາກທ່ານຕ້ອງການໃຊ້ບັນຊີໃນໂປຣໄຟລ໌ອື່ນ, ໃຫ້ລຶບໂປຣໄຟລ໌ນັ້ນອອກກ່ອນ.</translation>
 <translation id="8255190535488645436">Google Chrome ກໍາລັງໃຊ້​ກ້ອງ​ຖ່າຍ​ຮູບ​ ແລະໄມໂຄຣໂຟນຂອງ​ທ່ານ​.</translation>
 <translation id="8286862437124483331">Google Chrome ກໍາລັງພະຍາຍາມສະແດງລະຫັດຜ່ານ. ພິມລະຫັດຜ່ານ Windows ຂອງທ່ານ ເພື່ອອະນຸຍາດອັນນີ້.</translation>
 <translation id="828798499196665338">ພໍ່ແມ່ຂອງທ່ານໄດ້ປິດ "ການອະນຸຍາດສຳລັບເວັບໄຊ, ແອັບ ແລະ ສ່ວນຂະຫຍາຍ" ສຳລັບ Chrome ແລ້ວ. ການເປີດການນຳໃຊ້ <ph name="EXTENSION_TYPE_PARAMETER" /> ນີ້ບໍ່ໄດ້ຮັບອະນຸຍາດ.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb
index 0b39cbca..5987a30a 100644
--- a/chrome/app/resources/google_chrome_strings_lt.xtb
+++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -278,6 +278,7 @@
 <translation id="8008534537613507642">Iš naujo įdiegti „Chrome“</translation>
 <translation id="8013993649590906847">Jei nebus naudingo vaizdo aprašo, „Chrome“ bandys jums jį pateikti. Kad būtų galima kurti aprašus, vaizdai siunčiami į sistemą „Google“.</translation>
 <translation id="8129812357326543296">Apie „&amp;Google Chrome“</translation>
+<translation id="822971176939352383">Toliau nurodytos paskyros nėra prisijungusios prie jokių „Chrome“ profilių. Jei norite naudoti paskyrą kitame profilyje, pirmiausia pašalinkite tą profilį.</translation>
 <translation id="8255190535488645436">„Google Chrome“ naudoja jūsų fotoaparatą ir mikrofoną.</translation>
 <translation id="8286862437124483331">„Google Chrome“ bando rodyti slaptažodžius. Įveskite „Windows“ slaptažodį, kad tai leistumėte.</translation>
 <translation id="828798499196665338">Jūsų tėvai išjungė svetainių, programų ir plėtinių leidimus sistemoje „Chrome“. Neleidžiama įgalinti šio <ph name="EXTENSION_TYPE_PARAMETER" />.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb
index d98e077..f2f4d7d4 100644
--- a/chrome/app/resources/google_chrome_strings_lv.xtb
+++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -273,6 +273,7 @@
 <translation id="8008534537613507642">Pārinstalēt Chrome</translation>
 <translation id="8013993649590906847">Ja attēlam nav vērtīga apraksta, pārlūks Chrome mēģinās jums tādu nodrošināt. Lai izveidotu aprakstus, attēli tiek nosūtīti uzņēmumam Google.</translation>
 <translation id="8129812357326543296">Par &amp;Google Chrome</translation>
+<translation id="822971176939352383">Nevienā Chrome profilā nav veikta pierakstīšanās tālāk norādījos kontos. Ja vēlaties izmantot kādu kontu citā profilā, vispirms noņemiet attiecīgo profilu.</translation>
 <translation id="8255190535488645436">Pārlūkā Google Chrome tiek izmantota kamera un mikrofons.</translation>
 <translation id="8286862437124483331">Google Chrome mēģina rādīt paroles. Lai to atļautu, ierakstiet savu Windows paroli.</translation>
 <translation id="828798499196665338">Viens no jūsu vecākiem ir izslēdzis “Atļaujas vietnēm, lietotnēm un paplašinājumiem” pārlūkam Chrome. Nav atļauts iespējot šo: <ph name="EXTENSION_TYPE_PARAMETER" />.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mn.xtb b/chrome/app/resources/google_chrome_strings_mn.xtb
index e0d70ee..d3dad97 100644
--- a/chrome/app/resources/google_chrome_strings_mn.xtb
+++ b/chrome/app/resources/google_chrome_strings_mn.xtb
@@ -278,6 +278,7 @@
 <translation id="8008534537613507642">Chrome-ийг дахин суулгах</translation>
 <translation id="8013993649590906847">Хэрэв зурагт хэрэгтэй тайлбар байхгүй бол Chrome танд тайлбар өгөхөөр оролдох болно. Тайлбар үүсгэхийн тулд зургийг Google-д илгээнэ.</translation>
 <translation id="8129812357326543296">Google Chrome-ийн тухай</translation>
+<translation id="822971176939352383">Дараах бүртгэлүүд Chrome-н ямар ч профайлд нэвтрээгүй байна. Хэрэв та бүртгэлийг өөр профайлд ашиглахыг хүсвэл эхлээд тухайн профайлыг хасна уу.</translation>
 <translation id="8255190535488645436">Google Chrome нь таны камер болон микрофоныг ашиглаж байна.</translation>
 <translation id="8286862437124483331">Google Chrome нь нууц үгийг харуулахыг оролдож байна. Үүнийг зөвшөөрөхийн тулд Windows-ийн нууц үгээ бичиж оруулна уу.</translation>
 <translation id="828798499196665338">Таны эцэг эх Chrome-н "Сайтууд, аппууд болон өргөтгөлүүдийн зөвшөөрөл"-ийг унтраасан байна. Энэ <ph name="EXTENSION_TYPE_PARAMETER" />-г идэвхжүүлэхийг зөвшөөрдөггүй.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb
index 34183ab..869c4d9 100644
--- a/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -270,6 +270,7 @@
 <translation id="8008534537613507642">Pasang Semula Chrome</translation>
 <translation id="8013993649590906847">Jika imej tiada perihalan yang berguna, Chrome akan cuba memberikan perihalan untuk anda. Untuk membuat perihalan, imej dihantar kepada Google.</translation>
 <translation id="8129812357326543296">Mengenai &amp;Google Chrome</translation>
+<translation id="822971176939352383">Akaun berikut tidak dilog masuk ke mana-mana profil Chrome. Jika anda ingin menggunakan akaun dalam profil lain, alih keluar profil tersebut dahulu.</translation>
 <translation id="8255190535488645436">Google Chrome menggunakan kamera dan mikrofon anda.</translation>
 <translation id="8286862437124483331">Google Chrome cuba menunjukkan kata laluan. Taip kata laluan Windows anda untuk membenarkannya.</translation>
 <translation id="828798499196665338">Ibu/bapa anda telah mematikan "Kebenaran untuk tapak web, apl dan sambungan" untuk Chrome. Tindakan mendayakan <ph name="EXTENSION_TYPE_PARAMETER" /> ini tidak dibenarkan.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_my.xtb b/chrome/app/resources/google_chrome_strings_my.xtb
index 38453bc..fc4dcde 100644
--- a/chrome/app/resources/google_chrome_strings_my.xtb
+++ b/chrome/app/resources/google_chrome_strings_my.xtb
@@ -278,6 +278,7 @@
 <translation id="8008534537613507642">Chrome ကို ပြန်လည်တပ်ဆင်ရန်</translation>
 <translation id="8013993649590906847">ပုံတွင် အသုံးဝင်သော အကြောင်းအရာ မပါလျှင် Chrome က သင့်အတွက် ဖော်ပြပေးပါမည်။ အကြောင်းအရာများ ဖော်ပြပေးရန် ပုံများကို Google သို့ပို့လိုက်ပါသည်။</translation>
 <translation id="8129812357326543296">Google Chrome &amp;အကြောင်း</translation>
+<translation id="822971176939352383">အောက်ပါအကောင့်များသည် Chrome ပရိုဖိုင်များတွင် လက်မှတ်ထိုးဝင်မထားပါ။ ပရိုဖိုင်နောက်တစ်ခုတွင် အကောင့်ကိုသုံးလိုပါက ထိုပရိုဖိုင်ကို ဦးစွာဖယ်ရှားပါ။</translation>
 <translation id="8255190535488645436">Google Chrome က သင့်ကင်မရာနှင့် မိုက်ကရိုဖုန်းကို သုံးနေသည်။</translation>
 <translation id="8286862437124483331">Google Chrome သည် စကားဝှက်ကို ပြပေးရန် ကြိုးစာနေသည်။ ၎င်းကို ခွင့်ပြုရန် သင်၏ Windows စကားဝှက်ကို ရိုက်ထည့်ပါ။</translation>
 <translation id="828798499196665338">Chrome အတွက် "ဝဘ်ဆိုက်၊ အက်ပ်နှင့် နောက်ဆက်တွဲ ခွင့်ပြုချက်များ" ကို သင့်မိဘက ပိတ်လိုက်သည်။ ဤ <ph name="EXTENSION_TYPE_PARAMETER" /> ဖွင့်ခြင်းကို ခွင့်မပြုပါ။</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb
index a237852..ed0c274 100644
--- a/chrome/app/resources/google_chrome_strings_ru.xtb
+++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -268,6 +268,7 @@
 <translation id="8008534537613507642">Переустановить Chrome</translation>
 <translation id="8013993649590906847">Если у изображения нет понятного описания, Chrome попытается его найти. Для создания описаний изображения отправляются в Google.</translation>
 <translation id="8129812357326543296">О браузере &amp;Google Chrome</translation>
+<translation id="822971176939352383">Со следующими аккаунтами не выполнен вход ни в один профиль Chrome. Чтобы использовать аккаунт в другом профиле, сначала удалите этот профиль.</translation>
 <translation id="8255190535488645436">Google Chrome использует камеру и микрофон.</translation>
 <translation id="8286862437124483331">Чтобы просмотреть пароли, введите пароль своего аккаунта Windows.</translation>
 <translation id="828798499196665338">Родители отключили в Chrome параметр "Разрешения для сайтов, приложений и расширений". Включать это <ph name="EXTENSION_TYPE_PARAMETER" /> запрещено.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb
index 8aac292..3ec1f15b 100644
--- a/chrome/app/resources/google_chrome_strings_sv.xtb
+++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -278,6 +278,7 @@
 <translation id="8008534537613507642">Installera om Chrome</translation>
 <translation id="8013993649590906847">Om en bild inte har någon användbar beskrivning görs ett försök att beskriva den åt dig i Chrome. Bilderna skickas till Google så att beskrivningen kan genereras.</translation>
 <translation id="8129812357326543296">Om &amp;Google Chrome</translation>
+<translation id="822971176939352383">Följande konton är inte inloggade i någon Chrome-profil. Om du vill använda ett konto som finns i en annan profil tar du bort den profilen först.</translation>
 <translation id="8255190535488645436">Google Chrome använder din kamera och mikrofon.</translation>
 <translation id="8286862437124483331">Skriv ditt Windows-lösenord om du vill tillåta att lösenord visas i Google Chrome.</translation>
 <translation id="828798499196665338">Din förälder har inaktiverat Behörigheter för webbplatser, appar och tillägg för Chrome. Det är inte tillåtet att aktivera denna <ph name="EXTENSION_TYPE_PARAMETER" />.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb
index 0a75f4a..c893494 100644
--- a/chrome/app/resources/google_chrome_strings_sw.xtb
+++ b/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -278,6 +278,7 @@
 <translation id="8008534537613507642">Sakinisha Chrome Upya</translation>
 <translation id="8013993649590906847">Ikiwa picha haina ufafanuzi muhimu, Chrome itajaribu kukuwekea. Ili kuweka ufafanuzi, tutatuma picha kwa Google.</translation>
 <translation id="8129812357326543296">Kuhusu &amp;Google Chrome</translation>
+<translation id="822971176939352383">Akaunti zifuatazo hazijatumika kuingia kwenye wasifu wowote wa Chrome. Iwapo ungependa kutumia akaunti iliyo kwenye wasifu mwingine, ondoa wasifu huo kwanza.</translation>
 <translation id="8255190535488645436">Google Chrome inatumia kamera na maikrofoni yako.</translation>
 <translation id="8286862437124483331">Google Chrome inajaribu kuonyesha manenosiri. Chapa nenosiri lako la Windows ili uruhusu hili.</translation>
 <translation id="828798499196665338">Mzazi wako amezima "Ruhusa za tovuti, programu na viendelezi" kwenye Chrome. Huruhusiwi kuwasha <ph name="EXTENSION_TYPE_PARAMETER" /> hii.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index 9a24f780..71abcf5d 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -268,6 +268,7 @@
 <translation id="8008534537613507642">ติดตั้ง Chrome ใหม่</translation>
 <translation id="8013993649590906847">หากรูปภาพไม่มีคำอธิบายที่เป็นประโยชน์ Chrome จะพยายามใส่คำอธิบายให้คุณ รูปภาพจะส่งมายัง Google เพื่อสร้างคำอธิบาย</translation>
 <translation id="8129812357326543296">เกี่ยวกับ &amp;Google Chrome</translation>
+<translation id="822971176939352383">บัญชีเหล่านี้ไม่ได้ลงชื่อเข้าใช้ในโปรไฟล์ Chrome ใดๆ เลย หากต้องการใช้บัญชีในโปรไฟล์อื่น ให้นำโปรไฟล์แรกออกก่อน</translation>
 <translation id="8255190535488645436">Google Chrome ใช้กล้องและไมโครโฟนของคุณอยู่</translation>
 <translation id="8286862437124483331">Google Chrome กำลังพยายามแสดงรหัสผ่าน พิมพ์รหัสผ่าน Windows ของคุณเพื่อแสดงรหัสผ่าน</translation>
 <translation id="828798499196665338">ผู้ปกครองได้ปิด "สิทธิ์สำหรับเว็บไซต์ แอป และส่วนขยาย" ใน Chrome ไม่อนุญาตให้เปิดใช้<ph name="EXTENSION_TYPE_PARAMETER" />นี้</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb
index f1564a04..05653d6 100644
--- a/chrome/app/resources/google_chrome_strings_tr.xtb
+++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -271,6 +271,7 @@
 <translation id="8008534537613507642">Chrome'u yeniden yükle</translation>
 <translation id="8013993649590906847">Bir resmin işe yarar bir açıklaması yoksa, Chrome sizin için bir açıklama sağlamaya çalışır. Açıklama oluşturmak için resimler Google'a gönderilir.</translation>
 <translation id="8129812357326543296">&amp;Google Chrome hakkında</translation>
+<translation id="822971176939352383">Aşağıdaki hesaplar hiçbir Chrome profilinde oturum açmamış. Başka profildeki bir hesabı kullanmak istiyorsanız önce bu profili kaldırın.</translation>
 <translation id="8255190535488645436">Google Chrome kameranızı ve mikrofonunuzu kullanıyor.</translation>
 <translation id="8286862437124483331">Google Chrome şifreleri göstermeye çalışıyor. Buna izin vermek için Windows şifrenizi yazın.</translation>
 <translation id="828798499196665338">Ebeveyniniz, Chrome'a yönelik "Siteler, uygulamalar ve uzantılar için izinler"i kapattı. Bu <ph name="EXTENSION_TYPE_PARAMETER" /> uzantısının etkinleştirilmesine izin verilmiyor.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
index fe3d7e3..c8dda02 100644
--- a/chrome/app/resources/google_chrome_strings_vi.xtb
+++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -274,6 +274,7 @@
 <translation id="8008534537613507642">Cài đặt lại Chrome</translation>
 <translation id="8013993649590906847">Chrome sẽ cố gắng mô tả cho bạn những hình ảnh không có nội dung mô tả hữu ích. Để tạo nội dung mô tả, các hình ảnh sẽ được gửi đến Google.</translation>
 <translation id="8129812357326543296">Giới thiệu về &amp;Google Chrome</translation>
+<translation id="822971176939352383">Các tài khoản sau không được đăng nhập vào bất kỳ hồ sơ nào trên Chrome. Nếu bạn muốn dùng tài khoản trong một hồ sơ khác, hãy xóa hồ sơ đó trước.</translation>
 <translation id="8255190535488645436">Google Chrome đang sử dụng máy ảnh và micrô của bạn.</translation>
 <translation id="8286862437124483331">Google Chrome đang cố gắng hiển thị mật khẩu. Hãy nhập mật khẩu Windows của bạn để cho phép việc này.</translation>
 <translation id="828798499196665338">Cha mẹ bạn đã tắt tùy chọn "Quyền của các trang web, ứng dụng và tiện ích" đối với Chrome. Bạn không được phép bật <ph name="EXTENSION_TYPE_PARAMETER" /> này.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-HK.xtb b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
index 4230d05..32e42fb 100644
--- a/chrome/app/resources/google_chrome_strings_zh-HK.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
@@ -276,6 +276,7 @@
 <translation id="8008534537613507642">重新安裝 Chrome</translation>
 <translation id="8013993649590906847">如果圖片並無有用的說明,Chrome 會嘗試為您提供說明。因此,圖片將傳送至 Google 以建立說明。</translation>
 <translation id="8129812357326543296">關於 Google Chrome(&amp;G)</translation>
+<translation id="822971176939352383">下列帳戶未登入任何 Chrome 設定檔。如要將帳戶用於其他設定檔,請先移除該設定檔。</translation>
 <translation id="8255190535488645436">Google Chrome 正在使用您的相機和麥克風。</translation>
 <translation id="8286862437124483331">Google Chrome 正在嘗試顯示密碼。如果您同意,請輸入您的 Windows 密碼。</translation>
 <translation id="828798499196665338">您的家長已停用 Chrome 的「網站、應用程式和擴充程式權限」設定,因此您無法啟用此<ph name="EXTENSION_TYPE_PARAMETER" />。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-TW.xtb b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
index 6bd54087..976ddfa 100644
--- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -271,6 +271,7 @@
 <translation id="8008534537613507642">重新安裝 Chrome</translation>
 <translation id="8013993649590906847">如果圖片缺少有用的說明,Chrome 會嘗試為你提供說明。系統會將圖片傳送給 Google,以便產生說明。</translation>
 <translation id="8129812357326543296">關於 Google Chrome(&amp;G)</translation>
+<translation id="822971176939352383">下列帳戶未登入任何 Chrome 設定檔。如要將帳戶用於其他設定檔,請先移除該設定檔。</translation>
 <translation id="8255190535488645436">Google Chrome 正在使用你的攝影機和麥克風。</translation>
 <translation id="8286862437124483331">Google Chrome 現在會嘗試顯示密碼。如果你同意的話,請輸入你的 Windows 密碼。</translation>
 <translation id="828798499196665338">你的家長已停用 Chrome 的「網站、應用程式和擴充功能的權限」設定,因此你無法啟用這個<ph name="EXTENSION_TYPE_PARAMETER" />。</translation>
diff --git a/chrome/app/settings_chromium_strings.grdp b/chrome/app/settings_chromium_strings.grdp
index 599897cd..11f9069 100644
--- a/chrome/app/settings_chromium_strings.grdp
+++ b/chrome/app/settings_chromium_strings.grdp
@@ -118,6 +118,11 @@
     Open PDFs in Chromium
   </message>
 
+  <!-- Privacy Review -->
+  <message name="IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1" desc="A part of the feature description of 'clear cookies on exit' card in the privacy review.">
+    When you close Chromium, it automatically clears cookies and site data from the pages you visited
+  </message>
+
   <!-- Safety check -->
   <message name="IDS_SETTINGS_SAFETY_CHECK_PARENT_PRIMARY_LABEL_BEFORE" desc="This text describes what the safety check is. (It's an area of the Settings page where users can quickly check whether their safety-related settings are fully protecting them.)">
     Chromium can help keep you safe from data breaches, bad extensions, and more
diff --git a/chrome/app/settings_chromium_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1.png.sha1 b/chrome/app/settings_chromium_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1.png.sha1
new file mode 100644
index 0000000..e5170475
--- /dev/null
+++ b/chrome/app/settings_chromium_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1.png.sha1
@@ -0,0 +1 @@
+37f5b1f76172618d4d9c2983d2ab02d6fabf1930
\ No newline at end of file
diff --git a/chrome/app/settings_google_chrome_strings.grdp b/chrome/app/settings_google_chrome_strings.grdp
index d1aaaca7..67b0993 100644
--- a/chrome/app/settings_google_chrome_strings.grdp
+++ b/chrome/app/settings_google_chrome_strings.grdp
@@ -119,6 +119,11 @@
     Open PDFs in Chrome
   </message>
 
+  <!-- Privacy Review -->
+  <message name="IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1" desc="A part of the feature description of 'clear cookies on exit' card in the privacy review.">
+    When you close Chrome, it automatically clears cookies and site data from the pages you visited
+  </message>
+
   <!-- Safety check -->
   <message name="IDS_SETTINGS_SAFETY_CHECK_PARENT_PRIMARY_LABEL_BEFORE" desc="This text describes what the safety check is. (It's an area of the Settings page where users can quickly check whether their safety-related settings are fully protecting them.)">
     Chrome can help keep you safe from data breaches, bad extensions, and more
diff --git a/chrome/app/settings_google_chrome_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1.png.sha1 b/chrome/app/settings_google_chrome_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1.png.sha1
new file mode 100644
index 0000000..e5170475
--- /dev/null
+++ b/chrome/app/settings_google_chrome_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1.png.sha1
@@ -0,0 +1 @@
+37f5b1f76172618d4d9c2983d2ab02d6fabf1930
\ No newline at end of file
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index 3559dd2c..c261ad7c 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -1385,6 +1385,12 @@
   <message name="IDS_SETTINGS_PRIVACY_REVIEW_MSBB_PRIVACY_DESCRIPTION2" desc="A part of the privacy description of 'make searches and browsing better' in the privacy review.">
     The URLs are shared with Google to understand the browsing behavior
   </message>
+  <message name="IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_CARD_HEADER" desc="Header of the 'clear cookies on exit' card in the privacy review.">
+    Review automatic data clearing
+  </message>
+  <message name="IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION2" desc="A part of the feature description of 'clear cookies on exit' card in the privacy review.">
+    Sites you visit can still remember your information until you close Chrome
+  </message>
 
   <!-- Safety check -->
   <message name="IDS_SETTINGS_SAFETY_CHECK_SECTION_TITLE" desc="'Safety check' is a noun phrase (sentence case). 'Safety check' refers to an area of the Settings page where users can quickly check whether their safety-related settings are fully protecting them.">
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_CARD_HEADER.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_CARD_HEADER.png.sha1
new file mode 100644
index 0000000..e5170475
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_CARD_HEADER.png.sha1
@@ -0,0 +1 @@
+37f5b1f76172618d4d9c2983d2ab02d6fabf1930
\ No newline at end of file
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION2.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION2.png.sha1
new file mode 100644
index 0000000..e5170475
--- /dev/null
+++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION2.png.sha1
@@ -0,0 +1 @@
+37f5b1f76172618d4d9c2983d2ab02d6fabf1930
\ No newline at end of file
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 144e456..d05d1baf 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -5034,10 +5034,6 @@
      FEATURE_VALUE_TYPE(features::kDisableProcessReuse)},
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-    {"enable-app-data-search", flag_descriptions::kEnableAppDataSearchName,
-     flag_descriptions::kEnableAppDataSearchDescription, kOsCrOS,
-     FEATURE_VALUE_TYPE(app_list_features::kEnableAppDataSearch)},
-
     {"enable-app-grid-ghost", flag_descriptions::kEnableAppGridGhostName,
      flag_descriptions::kEnableAppGridGhostDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(app_list_features::kEnableAppGridGhost)},
@@ -6636,6 +6632,11 @@
 #endif  // defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) ||
         // defined(OS_CHROMEOS) || defined(OS_FUCHSIA)
 
+    {"consolidated-site-storage-controls",
+     flag_descriptions::kConsolidatedSiteStorageControlsName,
+     flag_descriptions::kConsolidatedSiteStorageControlsDescription, kOsDesktop,
+     FEATURE_VALUE_TYPE(features::kConsolidatedSiteStorageControls)},
+
     {"content-settings-redesign",
      flag_descriptions::kContentSettingsRedesignName,
      flag_descriptions::kContentSettingsRedesignDescription, kOsDesktop,
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.cc
index 6a7769e3..1397d3a 100644
--- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.cc
+++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.cc
@@ -209,6 +209,11 @@
   icon_fetcher_->Start();
 }
 
+GURL WebKioskAppData::GetLaunchableUrl() const {
+  return status() == WebKioskAppData::Status::kInstalled ? launch_url()
+                                                         : install_url();
+}
+
 void WebKioskAppData::UpdateFromWebAppInfo(
     std::unique_ptr<WebApplicationInfo> app_info) {
   DCHECK(app_info);
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.h b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.h
index 506d1d4..01fd84e 100644
--- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.h
+++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data.h
@@ -46,6 +46,9 @@
   // Updates |icon_| from either |KioskAppDataBase::icon_path_| or |icon_url_|.
   void LoadIcon();
 
+  // Get a proper URL to launch according to the app status.
+  GURL GetLaunchableUrl() const;
+
   // KioskAppDataBase overrides:
   void OnIconLoadSuccess(const gfx::ImageSkia& icon) override;
   void OnIconLoadFailure() override;
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data_browsertest.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data_browsertest.cc
index d37e5adf..8c204a4 100644
--- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data_browsertest.cc
+++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data_browsertest.cc
@@ -8,6 +8,7 @@
 #include "chrome/browser/ash/app_mode/kiosk_app_data_delegate.h"
 #include "chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager.h"
 #include "chrome/browser/ui/browser.h"
+#include "chrome/browser/web_applications/components/web_application_info.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "chrome/test/base/in_process_browser_test.h"
@@ -35,6 +36,7 @@
 const char kIconUrl2[] = "/load_image/fail_image.png";
 const char kLastIconUrlKey[] = "last_icon_url";
 const char kLaunchUrl[] = "https://example.com/launch";
+const char kStartUrl[] = "https://example.com/start";
 
 base::FilePath GetFullPathToImage() {
   base::FilePath test_data_dir;
@@ -223,4 +225,23 @@
   EXPECT_EQ(app_data.name(), kAppTitle);
 }
 
+IN_PROC_BROWSER_TEST_F(WebKioskAppDataTest, LaunchableUrl) {
+  SetCached(/*installed = */ true);
+
+  // `launch_url` is treated as launchable URL if the app hasn't been installed.
+  WebKioskAppData app_data(this, kAppId, EmptyAccountId(), GURL(kAppUrl),
+                           kAppTitle, /*icon_url=*/GURL());
+  EXPECT_NE(app_data.status(), WebKioskAppData::Status::kInstalled);
+  EXPECT_EQ(app_data.GetLaunchableUrl(), GURL(kAppUrl));
+
+  // `start_url` is treated as launchable URL if the app has been installed.
+  auto app_info = std::make_unique<WebApplicationInfo>();
+  app_info->start_url = GURL(kStartUrl);
+  app_data.UpdateFromWebAppInfo(std::move(app_info));
+  app_data.LoadFromCache();
+  WaitForAppDataChange(1);
+  EXPECT_EQ(app_data.status(), WebKioskAppData::Status::kInstalled);
+  EXPECT_EQ(app_data.GetLaunchableUrl(), GURL(kStartUrl));
+}
+
 }  // namespace ash
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.cc
index 00e8743..89f2d9d 100644
--- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.cc
+++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.cc
@@ -19,6 +19,7 @@
 #include "chrome/browser/web_applications/components/web_app_data_retriever.h"
 #include "chrome/browser/web_applications/components/web_app_url_loader.h"
 #include "chrome/browser/web_applications/web_app_install_task.h"
+#include "chrome/common/chrome_features.h"
 #include "chromeos/ui/base/window_pin_type.h"
 #include "components/account_id/account_id.h"
 #include "ui/aura/window.h"
@@ -96,13 +97,45 @@
   delegate_->OnAppPrepared();
 }
 
+void WebKioskAppLauncher::OnLacrosWindowCreated(
+    crosapi::mojom::CreationResult result) {
+  if (result == crosapi::mojom::CreationResult::kSuccess) {
+    delegate_->OnAppWindowCreated();
+  } else {
+    LOG(ERROR) << "The lacros window failed to be created. Result: " << result;
+    delegate_->OnLaunchFailed(KioskAppLaunchError::Error::kUnableToLaunch);
+  }
+}
+
+void WebKioskAppLauncher::CreateNewLacrosWindow() {
+  crosapi::BrowserManager::Get()->NewFullscreenWindow(
+      GetCurrentApp()->GetLaunchableUrl(),
+      base::BindOnce(&WebKioskAppLauncher::OnLacrosWindowCreated,
+                     weak_ptr_factory_.GetWeakPtr()));
+  delegate_->OnAppWindowCreated();
+}
+
 void WebKioskAppLauncher::LaunchApp() {
   DCHECK(!browser_);
   const WebKioskAppData* app = GetCurrentApp();
 
-  GURL url = app->status() == WebKioskAppData::Status::kInstalled
-                 ? app->launch_url()
-                 : app->install_url();
+  // Launch lacros-chrome if the corresponding feature flags are enabled.
+  //
+  // TODO(crbug.com/1101667): Currently, this source has log spamming by
+  // LOG(WARNING) to make it easy to debug and develop. Get rid of the log
+  // spamming when it gets stable enough.
+  if (base::FeatureList::IsEnabled(features::kWebKioskEnableLacros) &&
+      crosapi::browser_util::IsLacrosEnabled()) {
+    LOG(WARNING) << "Using lacros-chrome for web kiosk session.";
+    delegate_->OnAppLaunched();
+    if (crosapi::BrowserManager::Get()->IsRunning()) {
+      CreateNewLacrosWindow();
+    } else {
+      LOG(WARNING) << "Waiting for lacros-chrome to be ready.";
+      observation_.Observe(crosapi::BrowserManager::Get());
+    }
+    return;
+  }
 
   Browser::CreateParams params = Browser::CreateParams::CreateForApp(
       app->name(), true, gfx::Rect(), profile_, false);
@@ -112,7 +145,7 @@
   }
 
   browser_ = Browser::Create(params);
-  NavigateParams nav_params(browser_, url,
+  NavigateParams nav_params(browser_, app->GetLaunchableUrl(),
                             ui::PageTransition::PAGE_TRANSITION_AUTO_TOPLEVEL);
   Navigate(&nav_params);
   CHECK(browser_);
@@ -131,6 +164,13 @@
   Initialize();
 }
 
+void WebKioskAppLauncher::OnStateChanged() {
+  if (crosapi::BrowserManager::Get()->IsRunning()) {
+    observation_.Reset();
+    CreateNewLacrosWindow();
+  }
+}
+
 void WebKioskAppLauncher::SetDataRetrieverFactoryForTesting(
     base::RepeatingCallback<std::unique_ptr<web_app::WebAppDataRetriever>()>
         data_retriever_factory) {
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.h b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.h
index 359cf4b..0b14709 100644
--- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.h
+++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_launcher.h
@@ -10,7 +10,9 @@
 #include "base/callback.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
+#include "base/scoped_observation.h"
 #include "chrome/browser/ash/app_mode/kiosk_app_launcher.h"
+#include "chrome/browser/ash/crosapi/browser_manager.h"
 #include "chrome/browser/web_applications/components/web_app_constants.h"
 #include "chrome/browser/web_applications/components/web_app_id.h"
 #include "chrome/browser/web_applications/components/web_app_install_utils.h"
@@ -35,7 +37,8 @@
 
 // Object responsible for preparing and launching web kiosk app. Is destroyed
 // upon app launch.
-class WebKioskAppLauncher : public KioskAppLauncher {
+class WebKioskAppLauncher : public KioskAppLauncher,
+                            public crosapi::BrowserManagerObserver {
  public:
   WebKioskAppLauncher(Profile* profile,
                       Delegate* delegate,
@@ -63,8 +66,20 @@
   void LaunchApp() override;
   void RestartLauncher() override;
 
+  // crosapi::BrowserManagerObserver:
+  void OnStateChanged() override;
+
+  // Callback method triggered after web application and its icon are obtained
+  // from `WebKioskAppManager`.
   void OnAppDataObtained(std::unique_ptr<WebApplicationInfo> app_info);
 
+  // Callback method triggered after the lacros-chrome window is created.
+  void OnLacrosWindowCreated(crosapi::mojom::CreationResult result);
+
+  // Create a new lacros-chrome window.
+  void CreateNewLacrosWindow();
+
+  // Get the current web application to be launched in the session.
   const WebKioskAppData* GetCurrentApp() const;
 
   bool is_installed_ = false;  // Whether the installation was completed.
@@ -84,6 +99,12 @@
 
   BrowserWindow* test_browser_window_ = nullptr;
 
+  // Observe the launch state of `BrowserManager`, and launch the lacros-chrome
+  // when it is ready. This object is only used when Lacros is enabled.
+  base::ScopedObservation<crosapi::BrowserManager,
+                          crosapi::BrowserManagerObserver>
+      observation_{this};
+
   base::WeakPtrFactory<WebKioskAppLauncher> weak_ptr_factory_{this};
 };
 
diff --git a/chrome/browser/ash/crosapi/browser_manager.cc b/chrome/browser/ash/crosapi/browser_manager.cc
index f5481d5..33e80ab 100644
--- a/chrome/browser/ash/crosapi/browser_manager.cc
+++ b/chrome/browser/ash/crosapi/browser_manager.cc
@@ -108,6 +108,9 @@
 // The min version of BrowserService mojo interface that supports
 // GetActiveTabUrl API.
 constexpr uint32_t kGetActiveTabUrlMinVersion = 8;
+// The min version of BrowserService mojo interface that supports
+// NewFullscreenWindow API.
+constexpr uint32_t kNewFullscreenWindowMinVersion = 42;
 
 const char kLacrosCannotLaunchNotificationID[] =
     "lacros_cannot_launch_notification_id";
@@ -327,6 +330,32 @@
   browser_service_->service->NewWindow(incognito, base::DoNothing());
 }
 
+bool BrowserManager::NewFullscreenWindowSupported() const {
+  return browser_service_.has_value() &&
+         browser_service_->interface_version >= kNewFullscreenWindowMinVersion;
+}
+
+void BrowserManager::NewFullscreenWindow(const GURL& url,
+                                         NewFullscreenWindowCallback callback) {
+  auto result = MaybeStart(mojom::InitialBrowserAction::kOpenNewTabPageWindow);
+  if (result != MaybeStartResult::kRunning) {
+    std::move(callback).Run(mojom::CreationResult::kBrowserNotRunning);
+    return;
+  }
+
+  if (!browser_service_.has_value()) {
+    LOG(ERROR) << "BrowserService was disconnected";
+    std::move(callback).Run(mojom::CreationResult::kServiceDisconnected);
+    return;
+  }
+
+  if (!NewFullscreenWindowSupported()) {
+    std::move(callback).Run(mojom::CreationResult::kUnsupported);
+    return;
+  }
+  browser_service_->service->NewFullscreenWindow(url, std::move(callback));
+}
+
 void BrowserManager::NewTab() {
   auto result = MaybeStart(mojom::InitialBrowserAction::kUseStartupPreference);
   if (result != MaybeStartResult::kRunning)
@@ -678,9 +707,6 @@
     return;
   }
 
-  DCHECK_EQ(state_, State::STARTING);
-  SetState(State::RUNNING);
-
   DCHECK(!browser_service_.has_value());
   browser_service_ =
       BrowserServiceInfo{mojo_id, browser_service, browser_service_version};
@@ -691,6 +717,9 @@
   // even if ash-chrome crashes.
   SetLaunchOnLoginPref(true);
   LOG(WARNING) << "Connection to lacros-chrome is established.";
+
+  DCHECK_EQ(state_, State::STARTING);
+  SetState(State::RUNNING);
 }
 
 void BrowserManager::OnBrowserServiceDisconnected(
diff --git a/chrome/browser/ash/crosapi/browser_manager.h b/chrome/browser/ash/crosapi/browser_manager.h
index 14054431..ae35df7 100644
--- a/chrome/browser/ash/crosapi/browser_manager.h
+++ b/chrome/browser/ash/crosapi/browser_manager.h
@@ -94,6 +94,18 @@
   // so should be avoided.
   void NewWindow(bool incognito);
 
+  // Returns true if crosapi interface supports NewFullscreenWindow API.
+  bool NewFullscreenWindowSupported() const;
+
+  using NewFullscreenWindowCallback =
+      base::OnceCallback<void(crosapi::mojom::CreationResult)>;
+  // Open a fullscreen browser window in lacros-chrome. The only tab will be
+  // navigated to the given `url` once the window is launched.
+  // NOTE: This method is used by Chrome OS web Kiosk session only. The behavior
+  // may change and it shouldn't be used by anybody else.
+  void NewFullscreenWindow(const GURL& url,
+                           NewFullscreenWindowCallback callback);
+
   // Similar to NewWindow(), but opens a tab, instead.
   // See crosapi::mojom::BrowserService::NewTab for more details
   void NewTab();
diff --git a/chrome/browser/ash/crosapi/browser_util.cc b/chrome/browser/ash/crosapi/browser_util.cc
index 9b206b9..ed3d70b4 100644
--- a/chrome/browser/ash/crosapi/browser_util.cc
+++ b/chrome/browser/ash/crosapi/browser_util.cc
@@ -14,6 +14,7 @@
 #include "ash/constants/ash_switches.h"
 #include "base/callback.h"
 #include "base/command_line.h"
+#include "base/containers/fixed_flat_map.h"
 #include "base/containers/flat_map.h"
 #include "base/cxx17_backports.h"
 #include "base/feature_list.h"
@@ -77,6 +78,8 @@
 #include "components/account_manager_core/account_manager_util.h"
 #include "components/exo/shell_surface_util.h"
 #include "components/metrics/metrics_pref_names.h"
+#include "components/policy/core/common/policy_map.h"
+#include "components/policy/policy_constants.h"
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
 #include "components/prefs/scoped_user_pref_update.h"
@@ -106,15 +109,31 @@
 
 absl::optional<bool> g_lacros_primary_browser_for_test;
 
+// At session start the value for LacrosLaunchSwitch logic is applied and the
+// result is stored in this value which is used after that as a cache.
+absl::optional<LacrosLaunchSwitch> g_lacros_launch_switch_cache;
+
 // The rootfs lacros-chrome metadata keys.
 constexpr char kLacrosMetadataContentKey[] = "content";
 constexpr char kLacrosMetadataVersionKey[] = "version";
 
+// The conversion map for LacrosAvailability policy data. The values must match
+// the ones from policy_templates.json.
+const auto policy_value_to_enum =
+    base::MakeFixedFlatMap<std::string, LacrosLaunchSwitch>({
+        {"user_choice", LacrosLaunchSwitch::kUserChoice},
+        {"lacros_disallowed", LacrosLaunchSwitch::kLacrosDisallowed},
+        {"side_by_side", LacrosLaunchSwitch::kSideBySide},
+        {"lacros_primary", LacrosLaunchSwitch::kLacrosPrimary},
+        {"lacros_only", LacrosLaunchSwitch::kLacrosOnly},
+    });
+
 // Some account types require features that aren't yet supported by lacros.
 // See https://crbug.com/1080693
 bool IsUserTypeAllowed(const User* user) {
   switch (user->GetType()) {
     case user_manager::USER_TYPE_REGULAR:
+    case user_manager::USER_TYPE_WEB_KIOSK_APP:
       return true;
     case user_manager::USER_TYPE_GUEST:
     case user_manager::USER_TYPE_PUBLIC_ACCOUNT:
@@ -122,7 +141,6 @@
     case user_manager::USER_TYPE_CHILD:
     case user_manager::USER_TYPE_ARC_KIOSK_APP:
     case user_manager::USER_TYPE_ACTIVE_DIRECTORY:
-    case user_manager::USER_TYPE_WEB_KIOSK_APP:
     case user_manager::NUM_USER_TYPES:
       return false;
   }
@@ -148,29 +166,11 @@
 //    kLacrosGooglePolicyRollout trial and they did not have the
 //    kLacrosDisallowed policy.
 LacrosLaunchSwitch GetLaunchSwitch() {
-  // Users can set this switch in chrome://flags to disable the effect of the
-  // lacros-availability policy.
-  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-  if (command_line->HasSwitch(ash::switches::kLacrosAvailabilityIgnore))
-    return LacrosLaunchSwitch::kUserChoice;
-
-  if (!g_browser_process->local_state() ||
-      !g_browser_process->local_state()->FindPreference(
-          prefs::kLacrosLaunchSwitch)) {
-    // Some tests call IsLacrosAllowedToBeEnabled but don't have local_state.
-    // Some tests use fake local_state without registered preference.
-    return LacrosLaunchSwitch::kUserChoice;
-  }
-
-  LacrosLaunchSwitch result = static_cast<LacrosLaunchSwitch>(
-      g_browser_process->local_state()->GetInteger(prefs::kLacrosLaunchSwitch));
-  if (IsGoogleInternal() &&
-      !base::FeatureList::IsEnabled(kLacrosGooglePolicyRollout) &&
-      result != LacrosLaunchSwitch::kLacrosDisallowed) {
-    return LacrosLaunchSwitch::kUserChoice;
-  }
-
-  return result;
+  if (g_lacros_launch_switch_cache.has_value())
+    return g_lacros_launch_switch_cache.value();
+  // It could happen in some browser tests that value is not cached. Return
+  // default in that case.
+  return LacrosLaunchSwitch::kUserChoice;
 }
 
 // Gets called from IsLacrosAllowedToBeEnabled with primary user or from
@@ -836,9 +836,52 @@
   return user->IsAffiliated();
 }
 
+void CacheLacrosLaunchSwitch(const policy::PolicyMap& map) {
+  if (g_lacros_launch_switch_cache.has_value()) {
+    // Some browser tests might call this multiple times.
+    LOG(ERROR) << "Trying to cache LacrosLaunchSwitch and the value was set";
+    return;
+  }
+  // Users can set this switch in chrome://flags to disable the effect of the
+  // lacros-availability policy.
+  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+  if (command_line->HasSwitch(ash::switches::kLacrosAvailabilityIgnore)) {
+    g_lacros_launch_switch_cache = LacrosLaunchSwitch::kUserChoice;
+    return;
+  }
+
+  const base::Value* value = map.GetValue(policy::key::kLacrosAvailability);
+  if (!value) {
+    // Some tests call IsLacrosAllowedToBeEnabled but don't have the value set.
+    g_lacros_launch_switch_cache = LacrosLaunchSwitch::kUserChoice;
+    return;
+  }
+
+  auto* map_entry = policy_value_to_enum.find(value->GetString());
+  if (map_entry == policy_value_to_enum.end()) {
+    LOG(ERROR) << "Invalid LacrosLaunchSwitch policy value: "
+               << value->GetString();
+    g_lacros_launch_switch_cache = LacrosLaunchSwitch::kUserChoice;
+    return;
+  }
+  auto result = map_entry->second;
+  if (IsGoogleInternal() &&
+      !base::FeatureList::IsEnabled(kLacrosGooglePolicyRollout) &&
+      result != LacrosLaunchSwitch::kLacrosDisallowed) {
+    g_lacros_launch_switch_cache = LacrosLaunchSwitch::kUserChoice;
+    return;
+  }
+
+  g_lacros_launch_switch_cache = result;
+}
+
 LacrosLaunchSwitch GetLaunchSwitchForTesting() {
   return GetLaunchSwitch();
 }
 
+void ClearLacrosLaunchSwitchCacheForTest() {
+  g_lacros_launch_switch_cache.reset();
+}
+
 }  // namespace browser_util
 }  // namespace crosapi
diff --git a/chrome/browser/ash/crosapi/browser_util.h b/chrome/browser/ash/crosapi/browser_util.h
index f6682c39c..8a5d77c 100644
--- a/chrome/browser/ash/crosapi/browser_util.h
+++ b/chrome/browser/ash/crosapi/browser_util.h
@@ -36,6 +36,10 @@
 enum class Channel;
 }  // namespace version_info
 
+namespace policy {
+class PolicyMap;
+}  // namespace policy
+
 namespace user_manager {
 class User;
 }  // namespace user_manager
@@ -219,10 +223,17 @@
 base::Version GetRootfsLacrosVersionMayBlock(
     const base::FilePath& version_file_path);
 
+// To be called at primary user login, to cache the policy value for launch
+// switch.
+void CacheLacrosLaunchSwitch(const policy::PolicyMap& map);
+
 // Exposed for testing. Returns the lacros integration suggested by the policy
 // lacros-availability, modified by Finch flags and user flags as appropriate.
 LacrosLaunchSwitch GetLaunchSwitchForTesting();
 
+// Clears the cached values for policy data.
+void ClearLacrosLaunchSwitchCacheForTest();
+
 }  // namespace browser_util
 }  // namespace crosapi
 
diff --git a/chrome/browser/ash/crosapi/browser_util_unittest.cc b/chrome/browser/ash/crosapi/browser_util_unittest.cc
index b5b2dac0..dafd857 100644
--- a/chrome/browser/ash/crosapi/browser_util_unittest.cc
+++ b/chrome/browser/ash/crosapi/browser_util_unittest.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/ash/crosapi/browser_util.h"
 
 #include "ash/constants/ash_features.h"
+#include "base/containers/fixed_flat_map.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/json/json_reader.h"
@@ -23,17 +24,82 @@
 #include "chromeos/crosapi/mojom/crosapi.mojom.h"
 #include "chromeos/crosapi/mojom/keystore_service.mojom.h"
 #include "components/account_id/account_id.h"
+#include "components/policy/policy_constants.h"
 #include "components/user_manager/scoped_user_manager.h"
 #include "components/version_info/channel.h"
 #include "components/version_info/version_info.h"
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+using crosapi::browser_util::LacrosLaunchSwitch;
 using user_manager::User;
 using version_info::Channel;
 
 namespace crosapi {
 
+const auto policy_enum_to_value =
+    base::MakeFixedFlatMap<LacrosLaunchSwitch, std::string>({
+        {LacrosLaunchSwitch::kUserChoice, "user_choice"},
+        {LacrosLaunchSwitch::kLacrosDisallowed, "lacros_disallowed"},
+        {LacrosLaunchSwitch::kSideBySide, "side_by_side"},
+        {LacrosLaunchSwitch::kLacrosPrimary, "lacros_primary"},
+        {LacrosLaunchSwitch::kLacrosOnly, "lacros_only"},
+    });
+
+// This implementation of RAII for LacrosLaunchSwitch and LacrosAllowed is to
+// make it easy reset the state between runs.
+class ScopedLacrosLaunchSwitchCache {
+ public:
+  explicit ScopedLacrosLaunchSwitchCache(
+      LacrosLaunchSwitch lacros_launch_switch) {
+    SetLacrosAvailability(lacros_launch_switch);
+  }
+  explicit ScopedLacrosLaunchSwitchCache(bool lacros_allowed) {
+    BackupLacrosAllowed();
+    g_browser_process->local_state()->SetBoolean(prefs::kLacrosAllowed,
+                                                 lacros_allowed);
+    policy::PolicyMap policy;
+    browser_util::CacheLacrosLaunchSwitch(policy);
+  }
+  ScopedLacrosLaunchSwitchCache(LacrosLaunchSwitch lacros_launch_switch,
+                                bool lacros_allowed) {
+    BackupLacrosAllowed();
+    g_browser_process->local_state()->SetBoolean(prefs::kLacrosAllowed,
+                                                 lacros_allowed);
+    SetLacrosAvailability(lacros_launch_switch);
+  }
+  ScopedLacrosLaunchSwitchCache(const ScopedLacrosLaunchSwitchCache&) = delete;
+  ScopedLacrosLaunchSwitchCache& operator=(
+      const ScopedLacrosLaunchSwitchCache&) = delete;
+  ~ScopedLacrosLaunchSwitchCache() {
+    browser_util::ClearLacrosLaunchSwitchCacheForTest();
+    if (lacros_allowed_.has_value()) {
+      g_browser_process->local_state()->SetBoolean(prefs::kLacrosAllowed,
+                                                   lacros_allowed_.value());
+    }
+  }
+
+ private:
+  void BackupLacrosAllowed() {
+    auto* local_state = g_browser_process->local_state();
+    if (local_state->HasPrefPath(prefs::kLacrosAllowed)) {
+      lacros_allowed_ = local_state->GetInteger(prefs::kLacrosAllowed);
+    }
+  }
+
+  void SetLacrosAvailability(LacrosLaunchSwitch lacros_launch_switch) {
+    policy::PolicyMap policy;
+    base::Value in_value(
+        policy_enum_to_value.find(lacros_launch_switch)->second);
+    policy.Set(policy::key::kLacrosAvailability, policy::POLICY_LEVEL_MANDATORY,
+               policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
+               in_value.Clone(), nullptr);
+    browser_util::CacheLacrosLaunchSwitch(policy);
+  }
+
+  absl::optional<bool> lacros_allowed_;
+};
+
 class BrowserUtilTest : public testing::Test {
  public:
   BrowserUtilTest() : local_state_(TestingBrowserProcess::GetGlobal()) {}
@@ -81,18 +147,20 @@
 
 TEST_F(BrowserUtilTest, LacrosGoogleRollout) {
   AddRegularUser("user@google.com");
-  g_browser_process->local_state()->SetInteger(
-      prefs::kLacrosLaunchSwitch,
-      static_cast<int>(browser_util::LacrosLaunchSwitch::kSideBySide));
-
-  EXPECT_EQ(browser_util::GetLaunchSwitchForTesting(),
-            browser_util::LacrosLaunchSwitch::kUserChoice);
+  {
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kSideBySide);
+    EXPECT_EQ(browser_util::GetLaunchSwitchForTesting(),
+              LacrosLaunchSwitch::kUserChoice);
+  }
 
   base::test::ScopedFeatureList feature_list;
   feature_list.InitWithFeatures({browser_util::kLacrosGooglePolicyRollout}, {});
 
-  EXPECT_EQ(browser_util::GetLaunchSwitchForTesting(),
-            browser_util::LacrosLaunchSwitch::kSideBySide);
+  {
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kSideBySide);
+    EXPECT_EQ(browser_util::GetLaunchSwitchForTesting(),
+              LacrosLaunchSwitch::kSideBySide);
+  }
 }
 
 TEST_F(BrowserUtilTest, LacrosEnabledForChannels) {
@@ -125,28 +193,23 @@
   AddRegularUser("user@managedchrome.com");
   testing_profile_.GetProfilePolicyConnector()->OverrideIsManagedForTesting(
       true);
-
   {
-    g_browser_process->local_state()->SetBoolean(prefs::kLacrosAllowed, true);
+    ScopedLacrosLaunchSwitchCache cache(/*lacros_allowed=*/true);
     EXPECT_TRUE(browser_util::IsLacrosEnabled(Channel::CANARY));
   }
-
   {
-    g_browser_process->local_state()->SetBoolean(prefs::kLacrosAllowed, false);
-
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kSideBySide));
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kSideBySide,
+                                        /*lacros_allowed=*/false);
     EXPECT_TRUE(browser_util::IsLacrosEnabled(Channel::CANARY));
-
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kLacrosPrimary));
+  }
+  {
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kLacrosPrimary,
+                                        /*lacros_allowed=*/false);
     EXPECT_TRUE(browser_util::IsLacrosEnabled(Channel::CANARY));
-
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kLacrosOnly));
+  }
+  {
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kLacrosOnly,
+                                        /*lacros_allowed=*/false);
     EXPECT_TRUE(browser_util::IsLacrosEnabled(Channel::CANARY));
   }
 }
@@ -159,15 +222,13 @@
       true);
 
   {
-    g_browser_process->local_state()->SetBoolean(prefs::kLacrosAllowed, false);
+    ScopedLacrosLaunchSwitchCache cache(/*lacros_allowed=*/false);
     EXPECT_FALSE(browser_util::IsLacrosEnabled(Channel::CANARY));
   }
 
   {
-    g_browser_process->local_state()->SetBoolean(prefs::kLacrosAllowed, true);
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kLacrosDisallowed));
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kLacrosDisallowed,
+                                        /*lacros_allowed=*/true);
     EXPECT_FALSE(browser_util::IsLacrosEnabled(Channel::CANARY));
   }
 }
@@ -191,9 +252,7 @@
 
   // Lacros is not allowed.
   {
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kLacrosDisallowed));
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kLacrosDisallowed);
 
     EXPECT_FALSE(browser_util::IsLacrosAllowedToBeEnabled(Channel::CANARY));
     EXPECT_FALSE(browser_util::IsLacrosEnabled(Channel::CANARY));
@@ -202,9 +261,7 @@
 
   // Lacros is allowed but not enabled.
   {
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kUserChoice));
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kUserChoice);
 
     EXPECT_TRUE(browser_util::IsLacrosAllowedToBeEnabled(Channel::CANARY));
     EXPECT_FALSE(browser_util::IsLacrosEnabled(Channel::CANARY));
@@ -213,10 +270,8 @@
 
   // Lacros is allowed and enabled by flag.
   {
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kUserChoice));
     feature_list.InitAndEnableFeature(chromeos::features::kLacrosSupport);
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kUserChoice);
 
     EXPECT_TRUE(browser_util::IsLacrosAllowedToBeEnabled(Channel::CANARY));
     EXPECT_TRUE(browser_util::IsLacrosEnabled(Channel::CANARY));
@@ -225,17 +280,14 @@
 
   // Lacros is allowed and enabled by policy.
   {
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kSideBySide));
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kSideBySide);
 
     EXPECT_TRUE(browser_util::IsLacrosAllowedToBeEnabled(Channel::CANARY));
     EXPECT_TRUE(browser_util::IsLacrosEnabled(Channel::CANARY));
     EXPECT_TRUE(browser_util::IsAshWebBrowserEnabled(Channel::CANARY));
-
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kLacrosPrimary));
+  }
+  {
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kLacrosPrimary);
 
     EXPECT_TRUE(browser_util::IsLacrosAllowedToBeEnabled(Channel::CANARY));
     EXPECT_TRUE(browser_util::IsLacrosEnabled(Channel::CANARY));
@@ -248,10 +300,7 @@
   AddRegularUser("user@managedchrome.com");
   testing_profile_.GetProfilePolicyConnector()->OverrideIsManagedForTesting(
       true);
-
-  g_browser_process->local_state()->SetInteger(
-      prefs::kLacrosLaunchSwitch,
-      static_cast<int>(browser_util::LacrosLaunchSwitch::kLacrosOnly));
+  ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kLacrosOnly);
 
   // Lacros is allowed and enabled and is the only browser by policy.
 
@@ -273,8 +322,7 @@
 
 TEST_F(BrowserUtilTest, LacrosPrimaryBrowserByFlags) {
   AddRegularUser("user@test.com");
-
-  EXPECT_FALSE(browser_util::IsLacrosPrimaryBrowser());
+  { EXPECT_FALSE(browser_util::IsLacrosPrimaryBrowser()); }
 
   // Just enabling LacrosPrimary feature is not enough.
   {
@@ -327,25 +375,19 @@
       true);
 
   {
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kLacrosDisallowed));
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kLacrosDisallowed);
     EXPECT_FALSE(browser_util::IsLacrosPrimaryBrowserAllowed(Channel::UNKNOWN));
     EXPECT_FALSE(browser_util::IsLacrosPrimaryBrowser(Channel::UNKNOWN));
   }
 
   {
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kSideBySide));
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kSideBySide);
     EXPECT_TRUE(browser_util::IsLacrosPrimaryBrowserAllowed(Channel::UNKNOWN));
     EXPECT_FALSE(browser_util::IsLacrosPrimaryBrowser(Channel::UNKNOWN));
   }
 
   {
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kLacrosPrimary));
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kLacrosPrimary);
     EXPECT_TRUE(browser_util::IsLacrosPrimaryBrowserAllowed(Channel::UNKNOWN));
     EXPECT_TRUE(browser_util::IsLacrosPrimaryBrowser(Channel::UNKNOWN));
     EXPECT_TRUE(browser_util::IsLacrosPrimaryBrowserAllowed(Channel::DEV));
@@ -357,9 +399,7 @@
   }
 
   {
-    g_browser_process->local_state()->SetInteger(
-        prefs::kLacrosLaunchSwitch,
-        static_cast<int>(browser_util::LacrosLaunchSwitch::kLacrosOnly));
+    ScopedLacrosLaunchSwitchCache cache(LacrosLaunchSwitch::kLacrosOnly);
     EXPECT_TRUE(browser_util::IsLacrosPrimaryBrowserAllowed(Channel::UNKNOWN));
     EXPECT_TRUE(browser_util::IsLacrosPrimaryBrowser(Channel::UNKNOWN));
     EXPECT_TRUE(browser_util::IsLacrosPrimaryBrowserAllowed(Channel::DEV));
diff --git a/chrome/browser/ash/crosapi/test_mojo_connection_manager_unittest.cc b/chrome/browser/ash/crosapi/test_mojo_connection_manager_unittest.cc
index f10e4d8..dcd60b6 100644
--- a/chrome/browser/ash/crosapi/test_mojo_connection_manager_unittest.cc
+++ b/chrome/browser/ash/crosapi/test_mojo_connection_manager_unittest.cc
@@ -67,6 +67,8 @@
   }
 
   void NewWindow(bool incognito, NewWindowCallback callback) override {}
+  void NewFullscreenWindow(const GURL& url,
+                           NewFullscreenWindowCallback callback) override {}
   void NewTab(NewTabCallback callback) override {}
   void RestoreTab(RestoreTabCallback callback) override {}
   void GetFeedbackData(GetFeedbackDataCallback callback) override {}
diff --git a/chrome/browser/ash/login/oobe_interactive_ui_test.cc b/chrome/browser/ash/login/oobe_interactive_ui_test.cc
index 98b4f62..03b8db6 100644
--- a/chrome/browser/ash/login/oobe_interactive_ui_test.cc
+++ b/chrome/browser/ash/login/oobe_interactive_ui_test.cc
@@ -771,6 +771,10 @@
   void SetUpCommandLine(base::CommandLine* command_line) override {
     OobeInteractiveUITest::SetUpCommandLine(command_line);
 
+    // Enable usage of fake PSM RLWE client (for tests checking initial
+    // enrollment).
+    command_line->AppendSwitch(switches::kEnterpriseUseFakePsmRlweClient);
+
     command_line->AppendSwitchASCII(
         switches::kEnterpriseEnableInitialEnrollment,
         AutoEnrollmentController::kInitialEnrollmentAlways);
diff --git a/chrome/browser/ash/login/wizard_controller_browsertest.cc b/chrome/browser/ash/login/wizard_controller_browsertest.cc
index 5b4ffe07f..08bb2c2 100644
--- a/chrome/browser/ash/login/wizard_controller_browsertest.cc
+++ b/chrome/browser/ash/login/wizard_controller_browsertest.cc
@@ -1448,6 +1448,10 @@
   void SetUpCommandLine(base::CommandLine* command_line) override {
     WizardControllerDeviceStateTest::SetUpCommandLine(command_line);
 
+    // Enable usage of fake PSM RLWE client (for tests checking initial
+    // enrollment).
+    command_line->AppendSwitch(switches::kEnterpriseUseFakePsmRlweClient);
+
     command_line->AppendSwitchASCII(
         switches::kEnterpriseEnableInitialEnrollment,
         AutoEnrollmentController::kInitialEnrollmentAlways);
diff --git a/chrome/browser/autofill/captured_sites_test_utils.cc b/chrome/browser/autofill/captured_sites_test_utils.cc
index ce72827..196caf8 100644
--- a/chrome/browser/autofill/captured_sites_test_utils.cc
+++ b/chrome/browser/autofill/captured_sites_test_utils.cc
@@ -283,18 +283,17 @@
 
   bool also_run_disabled = testing::FLAGS_gtest_also_run_disabled_tests == 1;
   for (auto& item : list_node->GetList()) {
-    const base::DictionaryValue* dict;
-    if (!item.GetAsDictionary(&dict))
+    if (!item.is_dict())
       continue;
     CapturedSiteParams param;
-    param.site_name = *(dict->FindStringKey("site_name"));
-    if (dict->HasKey("scenario_dir"))
-      param.scenario_dir = *(dict->FindStringKey("scenario_dir"));
-    param.is_disabled = dict->FindBoolKey("disabled").value_or(false);
+    param.site_name = *(item.FindStringKey("site_name"));
+    if (item.FindKey("scenario_dir"))
+      param.scenario_dir = *(item.FindStringKey("scenario_dir"));
+    param.is_disabled = item.FindBoolKey("disabled").value_or(false);
     if (param.is_disabled && !also_run_disabled)
       continue;
 
-    const std::string* expectation_string = dict->FindStringKey("expectation");
+    const std::string* expectation_string = item.FindStringKey("expectation");
     if (expectation_string && *expectation_string == "FAIL") {
       param.expectation = kFail;
     } else {
@@ -536,10 +535,8 @@
     VLOG(1) << kClockNotSetMessage << "Failed to deserialize json";
     return false;
   }
-  std::unique_ptr<base::DictionaryValue> wpr_info = base::DictionaryValue::From(
-      base::Value::ToUniquePtrValue(std::move(*parsed_json)));
 
-  base::Value* time_value = wpr_info->FindKey("DeterministicTimeSeedMs");
+  base::Value* time_value = parsed_json->FindKey("DeterministicTimeSeedMs");
   if (!time_value) {
     VLOG(1) << kClockNotSetMessage << "No DeterministicTimeSeedMs found";
     return false;
@@ -857,17 +854,19 @@
   return true;
 }
 
-const std::string* FindPopulateString(
-                        const base::DictionaryValue& container,
-                        const std::string key_name,
-                        const std::string key_descriptor) {
-  const std::string* string_value = container.FindStringKey(key_name);
-  if (!string_value) {
+absl::optional<std::string> FindPopulateString(
+    const base::Value::DictStorage& container,
+    const std::string key_name,
+    const std::string key_descriptor) {
+  auto container_iter = container.find(key_name);
+  if (container_iter == container.end() ||
+      !container_iter->second.is_string()) {
     ADD_FAILURE() << "Failed to extract '" << key_descriptor
                   << "' from container!";
-    return nullptr;
+    return absl::nullopt;
   }
-  return string_value;
+
+  return container_iter->second.GetString();
 }
 
 bool TestRecipeReplayer::ReplayRecordedActions(
@@ -887,20 +886,21 @@
     ADD_FAILURE() << "Failed to deserialize json text!";
     return false;
   }
-  std::unique_ptr<base::DictionaryValue> recipe = base::DictionaryValue::From(
-      base::Value::ToUniquePtrValue(std::move(*parsed_json)));
 
+  DCHECK(parsed_json->is_dict());
+  base::Value::DictStorage recipe = std::move(*parsed_json).TakeDict();
   if (!InitializeBrowserToExecuteRecipe(recipe))
     return false;
 
   // Iterate through and execute each action in the recipe.
-  base::Value* action_list_container = recipe->FindListKey("actions");
-  if (!action_list_container) {
+  auto action_list_container_iter = recipe.find("actions");
+  if (action_list_container_iter == recipe.end() ||
+      !action_list_container_iter->second.is_list()) {
     ADD_FAILURE() << "Failed to extract action list from the recipe!";
     return false;
   }
 
-  auto action_list = action_list_container->GetList();
+  auto action_list = action_list_container_iter->second.GetList();
   ExecutionState execution_state{.length =
                                      static_cast<int>(action_list.size())};
   if (command_file_path.has_value()) {
@@ -936,83 +936,86 @@
               << execution_state.index << " of " << execution_state.length
               << ": " << action_list[execution_state.index];
 
-    base::DictionaryValue* action;
-    if (!action_list[execution_state.index].GetAsDictionary(&action)) {
+    if (!action_list[execution_state.index].is_dict()) {
       ADD_FAILURE()
           << "Failed to extract an individual action from the recipe!";
       return false;
     }
-    const std::string* type =
-        FindPopulateString(*action, "type", "action type");
+
+    base::Value::DictStorage action =
+        std::move(action_list[execution_state.index]).TakeDict();
+    absl::optional<std::string> type =
+        FindPopulateString(action, "type", "action type");
+
     if (!type)
       return false;
     if (base::CompareCaseInsensitiveASCII(*type, "autofill") == 0) {
-      if (!ExecuteAutofillAction(*action))
+      if (!ExecuteAutofillAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "click") == 0) {
-      if (!ExecuteClickAction(*action))
+      if (!ExecuteClickAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "clickIfNotSeen") ==
                0) {
-      if (!ExecuteClickIfNotSeenAction(*action))
+      if (!ExecuteClickIfNotSeenAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "closeTab") == 0) {
-      if (!ExecuteCloseTabAction(*action))
+      if (!ExecuteCloseTabAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "coolOff") == 0) {
-      if (!ExecuteCoolOffAction(*action))
+      if (!ExecuteCoolOffAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "executeScript") == 0) {
-      if (!ExecuteRunCommandAction(*action))
+      if (!ExecuteRunCommandAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "hover") == 0) {
-      if (!ExecuteHoverAction(*action))
+      if (!ExecuteHoverAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "loadPage") == 0) {
-      if (!ExecuteForceLoadPage(*action))
+      if (!ExecuteForceLoadPage(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "pressEnter") == 0) {
-      if (!ExecutePressEnterAction(*action))
+      if (!ExecutePressEnterAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "pressEscape") == 0) {
-      if (!ExecutePressEscapeAction(*action))
+      if (!ExecutePressEscapeAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "pressSpace") == 0) {
-      if (!ExecutePressSpaceAction(*action))
+      if (!ExecutePressSpaceAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "savePassword") == 0) {
-      if (!ExecuteSavePasswordAction(*action))
+      if (!ExecuteSavePasswordAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "select") == 0) {
-      if (!ExecuteSelectDropdownAction(*action))
+      if (!ExecuteSelectDropdownAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "type") == 0) {
-      if (!ExecuteTypeAction(*action))
+      if (!ExecuteTypeAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "typePassword") == 0) {
-      if (!ExecuteTypePasswordAction(*action))
+      if (!ExecuteTypePasswordAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "updatePassword") ==
                0) {
-      if (!ExecuteUpdatePasswordAction(*action))
+      if (!ExecuteUpdatePasswordAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "validateField") == 0) {
-      if (!ExecuteValidateFieldValueAction(*action))
+      if (!ExecuteValidateFieldValueAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(
                    *type, "validatePasswordGenerationPrompt") == 0) {
-      if (!ExecuteValidatePasswordGenerationPromptAction(*action))
+      if (!ExecuteValidatePasswordGenerationPromptAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(
                    *type, "validateNoSavePasswordPrompt") == 0) {
-      if (!ExecuteValidateNoSavePasswordPromptAction(*action))
+      if (!ExecuteValidateNoSavePasswordPromptAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(
                    *type, "validatePasswordSaveFallback") == 0) {
-      if (!ExecuteValidateSaveFallbackAction(*action))
+      if (!ExecuteValidateSaveFallbackAction(std::move(action)))
         return false;
     } else if (base::CompareCaseInsensitiveASCII(*type, "waitFor") == 0) {
-      if (!ExecuteWaitForStateAction(*action))
+      if (!ExecuteWaitForStateAction(std::move(action)))
         return false;
     } else {
       ADD_FAILURE() << "Unrecognized action type: " << *type;
@@ -1023,7 +1026,7 @@
 
   // Dismiss the beforeUnloadDialog if the last page of the test has a
   // beforeUnload function.
-  if (recipe->FindKey("dismissBeforeUnload")) {
+  if (recipe.find("dismissBeforeUnload") != recipe.end()) {
     NavigateAwayAndDismissBeforeUnloadDialog();
   }
 
@@ -1033,35 +1036,52 @@
 // Functions for deserializing and executing actions from the test recipe
 // JSON object.
 bool TestRecipeReplayer::InitializeBrowserToExecuteRecipe(
-    const std::unique_ptr<base::DictionaryValue>& recipe) {
+    base::Value::DictStorage& recipe) {
   // Setup any saved address and credit card at the start of the test.
-  const base::Value* autofill_profile_container =
-      recipe->FindKey("autofillProfile");
+  auto autofill_profile_container_iter = recipe.find("autofillProfile");
 
-  if (autofill_profile_container &&
-      !SetupSavedAutofillProfile(*autofill_profile_container))
-    return false;
+  if (autofill_profile_container_iter != recipe.end()) {
+    if (!autofill_profile_container_iter->second.is_list()) {
+      ADD_FAILURE() << "Save Autofill Profile is not a list!";
+      return false;
+    }
+
+    base::Value::ListStorage autofill_profile_container =
+        std::move(autofill_profile_container_iter->second).TakeList();
+    if (!SetupSavedAutofillProfile(std::move(autofill_profile_container)))
+      return false;
+  }
 
   // Setup any saved passwords at the start of the test.
-  const base::Value* saved_password_container =
-      recipe->FindKey("passwordManagerProfiles");
+  auto saved_password_container_iter = recipe.find("passwordManagerProfiles");
 
-  if (saved_password_container &&
-      !SetupSavedPasswords(*saved_password_container))
-    return false;
+  if (saved_password_container_iter != recipe.end()) {
+    if (!saved_password_container_iter->second.is_list()) {
+      ADD_FAILURE() << "Saved Password List is not a list!";
+      return false;
+    }
+
+    base::Value::ListStorage saved_password_container =
+        std::move(saved_password_container_iter->second).TakeList();
+    if (!SetupSavedPasswords(std::move(saved_password_container)))
+      return false;
+  }
 
   // Extract the starting URL from the test recipe.
-  const std::string* starting_url = recipe->FindStringKey("startingURL");
-  if (!starting_url) {
+  auto starting_url_iter = recipe.find("startingURL");
+  if (starting_url_iter == recipe.end() ||
+      !starting_url_iter->second.is_string()) {
     ADD_FAILURE() << "Failed to extract the starting url from the recipe!";
     return false;
   }
 
   // Navigate to the starting URL, wait for the page to complete loading.
-  if (!content::ExecuteScript(GetWebContents(),
-                              base::StringPrintf("window.location.href = '%s';",
-                                                 starting_url->c_str()))) {
-    ADD_FAILURE() << "Failed to navigate Chrome to '" << starting_url << "!";
+  if (!content::ExecuteScript(
+          GetWebContents(),
+          base::StringPrintf("window.location.href = '%s';",
+                             starting_url_iter->second.GetString().c_str()))) {
+    ADD_FAILURE() << "Failed to navigate Chrome to '"
+                  << starting_url_iter->second.GetString() << "!";
     return false;
   }
 
@@ -1070,7 +1090,7 @@
 }
 
 bool TestRecipeReplayer::ExecuteAutofillAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   std::string xpath;
   content::RenderFrameHost* frame;
   if (!ExtractFrameAndVerifyElement(action, &xpath, &frame))
@@ -1100,8 +1120,7 @@
   return true;
 }
 
-bool TestRecipeReplayer::ExecuteClickAction(
-    const base::DictionaryValue& action) {
+bool TestRecipeReplayer::ExecuteClickAction(base::Value::DictStorage action) {
   std::string xpath;
   content::RenderFrameHost* frame;
   if (!ExtractFrameAndVerifyElement(action, &xpath, &frame))
@@ -1123,39 +1142,38 @@
 }
 
 bool TestRecipeReplayer::ExecuteClickIfNotSeenAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   std::string xpath;
   content::RenderFrameHost* frame;
   if (ExtractFrameAndVerifyElement(action, &xpath, &frame, false, false,
                                    true)) {
     return true;
   } else {
-    const std::string* click_xpath_text =
+    absl::optional<std::string> click_xpath_text =
         FindPopulateString(action, "clickSelector", "click xpath selector");
-    base::Value click_action = action.Clone();
-    click_action.SetStringKey("selector", *click_xpath_text);
-    return ExecuteClickAction(base::Value::AsDictionaryValue(click_action));
+
+    action.emplace("clickSelector", *click_xpath_text);
+    return ExecuteClickAction(std::move(action));
   }
 }
 
 bool TestRecipeReplayer::ExecuteCloseTabAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   VLOG(1) << "Closing Active Tab";
   browser_->tab_strip_model()->CloseSelectedTabs();
   return true;
 }
 
-bool TestRecipeReplayer::ExecuteCoolOffAction(
-    const base::DictionaryValue& action) {
+bool TestRecipeReplayer::ExecuteCoolOffAction(base::Value::DictStorage action) {
   base::RunLoop heart_beat;
   base::TimeDelta cool_off_time = cool_off_action_timeout;
-  const base::Value* pause_time_container = action.FindKey("pauseTimeSec");
-  if (pause_time_container) {
-    if (!pause_time_container->is_int()) {
+  auto pause_time_container_iter = action.find("pauseTimeSec");
+  if (pause_time_container_iter != action.end()) {
+    if (!pause_time_container_iter->second.is_int()) {
       ADD_FAILURE() << "Pause time is not an integer!";
       return false;
     }
-    int seconds = pause_time_container->GetInt();
+    int seconds = pause_time_container_iter->second.GetInt();
     cool_off_time = base::TimeDelta::FromSeconds(seconds);
   }
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
@@ -1167,8 +1185,7 @@
   return true;
 }
 
-bool TestRecipeReplayer::ExecuteHoverAction(
-    const base::DictionaryValue& action) {
+bool TestRecipeReplayer::ExecuteHoverAction(base::Value::DictStorage action) {
   std::string xpath;
   content::RenderFrameHost* frame;
   if (!ExtractFrameAndVerifyElement(action, &xpath, &frame))
@@ -1195,13 +1212,16 @@
   return true;
 }
 
-bool TestRecipeReplayer::ExecuteForceLoadPage(
-    const base::DictionaryValue& action) {
-  bool shouldForce = action.FindBoolKey("force").value_or(false);
-  if (!shouldForce)
+bool TestRecipeReplayer::ExecuteForceLoadPage(base::Value::DictStorage action) {
+  auto should_force_iter = action.find("force");
+  bool should_force = (should_force_iter != action.end() &&
+                       should_force_iter->second.GetIfBool().value_or(false));
+  if (!should_force) {
     return true;
+  }
 
-  const std::string* url = FindPopulateString(action, "url", "Force Load URL");
+  absl::optional<std::string> url =
+      FindPopulateString(action, "url", "Force Load URL");
   if (!url)
     return false;
   VLOG(1) << "Making explicit URL redirect to '" << *url << "'";
@@ -1213,7 +1233,7 @@
 }
 
 bool TestRecipeReplayer::ExecutePressEnterAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   std::string xpath;
   content::RenderFrameHost* frame;
   if (!ExtractFrameAndVerifyElement(action, &xpath, &frame))
@@ -1227,7 +1247,7 @@
 }
 
 bool TestRecipeReplayer::ExecutePressEscapeAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   VLOG(1) << "Pressing 'Esc' in the current frame";
   SimulateKeyPressWrapper(GetWebContents(), ui::DomKey::ESCAPE);
   WaitTillPageIsIdle();
@@ -1235,7 +1255,7 @@
 }
 
 bool TestRecipeReplayer::ExecutePressSpaceAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   std::string xpath;
   content::RenderFrameHost* frame;
   if (!ExtractFrameAndVerifyElement(action, &xpath, &frame, true))
@@ -1249,16 +1269,18 @@
 }
 
 bool TestRecipeReplayer::ExecuteRunCommandAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   // Extract the list of JavaScript commands into a vector.
   std::vector<std::string> commands;
 
-  const base::Value* list_container = action.FindListKey("commands");
-  if (!list_container) {
+  auto list_container_iter = action.find("commands");
+  if (list_container_iter == action.end() ||
+      !list_container_iter->second.is_list()) {
     ADD_FAILURE() << "Failed to extract commands list from action";
     return false;
   }
-  for (const auto& command : list_container->GetList()) {
+
+  for (const auto& command : list_container_iter->second.GetList()) {
     if (!command.is_string()) {
       ADD_FAILURE() << "command is not a string: " << command;
       return false;
@@ -1289,7 +1311,7 @@
 }
 
 bool TestRecipeReplayer::ExecuteSavePasswordAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   VLOG(1) << "Save password.";
 
   if (!feature_action_executor()->SavePassword())
@@ -1308,9 +1330,9 @@
 }
 
 bool TestRecipeReplayer::ExecuteSelectDropdownAction(
-    const base::DictionaryValue& action) {
-  absl::optional<int> index = action.FindIntKey("index");
-  if (!index) {
+    base::Value::DictStorage action) {
+  auto index_iter = action.find("index");
+  if (index_iter == action.end() || !index_iter->second.is_int()) {
     ADD_FAILURE() << "Failed to extract Selection Index from action";
     return false;
   }
@@ -1320,13 +1342,14 @@
   if (!ExtractFrameAndVerifyElement(action, &xpath, &frame))
     return false;
 
-  VLOG(1) << "Select option '" << index.value() << "' from `" << xpath << "`.";
+  VLOG(1) << "Select option '" << index_iter->second.GetInt() << "' from `"
+          << xpath << "`.";
   if (!ExecuteJavaScriptOnElementByXpath(
           frame, xpath,
           base::StringPrintf(
               "automation_helper"
               "  .selectOptionFromDropDownElementByIndex(target, %d);",
-              index.value()))) {
+              index_iter->second.GetInt()))) {
     ADD_FAILURE() << "Failed to select drop down option with JavaScript!";
     return false;
   }
@@ -1334,9 +1357,8 @@
   return true;
 }
 
-bool TestRecipeReplayer::ExecuteTypeAction(
-    const base::DictionaryValue& action) {
-  const std::string* value =
+bool TestRecipeReplayer::ExecuteTypeAction(base::Value::DictStorage action) {
+  absl::optional<std::string> value =
       FindPopulateString(action, "value", "typing value");
   if (!value)
     return false;
@@ -1360,13 +1382,13 @@
 }
 
 bool TestRecipeReplayer::ExecuteTypePasswordAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   std::string xpath;
   content::RenderFrameHost* frame;
   if (!ExtractFrameAndVerifyElement(action, &xpath, &frame, true))
     return false;
 
-  const std::string* value =
+  absl::optional<std::string> value =
       FindPopulateString(action, "value", "password text");
   if (!value)
     return false;
@@ -1391,7 +1413,7 @@
 }
 
 bool TestRecipeReplayer::ExecuteUpdatePasswordAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   VLOG(1) << "Update password.";
 
   if (!feature_action_executor()->UpdatePassword())
@@ -1410,16 +1432,15 @@
 }
 
 bool TestRecipeReplayer::ExecuteValidateFieldValueAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   std::string xpath;
   content::RenderFrameHost* frame;
   if (!ExtractFrameAndVerifyElement(action, &xpath, &frame, false, true))
     return false;
 
-  const base::Value* autofill_prediction_container =
-      action.FindKey("expectedAutofillType");
-  if (autofill_prediction_container) {
-    if (!autofill_prediction_container->is_string()) {
+  auto autofill_prediction_container_iter = action.find("expectedAutofillType");
+  if (autofill_prediction_container_iter != action.end()) {
+    if (!autofill_prediction_container_iter->second.is_string()) {
       ADD_FAILURE() << "Autofill prediction is not a string!";
       return false;
     }
@@ -1437,7 +1458,7 @@
     }
 
     std::string expected_autofill_prediction_type =
-        autofill_prediction_container->GetString();
+        autofill_prediction_container_iter->second.GetString();
     VLOG(1) << "Checking the field `" << xpath << "` has the autofill type '"
             << expected_autofill_prediction_type << "'";
     ExpectElementPropertyEquals(
@@ -1446,8 +1467,8 @@
         expected_autofill_prediction_type, "autofill type mismatch", true);
   }
 
-  const std::string* expected_value = FindPopulateString(action,
-    "expectedValue", "validation expected value");
+  absl::optional<std::string> expected_value =
+      FindPopulateString(action, "expectedValue", "validation expected value");
   if (!expected_value)
     return false;
 
@@ -1458,14 +1479,14 @@
 }
 
 bool TestRecipeReplayer::ExecuteValidateNoSavePasswordPromptAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   VLOG(1) << "Verify that the page hasn't shown a save password prompt.";
   EXPECT_FALSE(feature_action_executor()->HasChromeShownSavePasswordPrompt());
   return true;
 }
 
 bool TestRecipeReplayer::ExecuteValidatePasswordGenerationPromptAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   VLOG(1) << "Verify that an element is properly displaying or not displaying "
              "the password generation prompt";
   std::string xpath;
@@ -1473,12 +1494,16 @@
   if (!ExtractFrameAndVerifyElement(action, &xpath, &frame, true))
     return false;
 
-  // First, execute a click to focus on the field in question.
-  ExecuteClickAction(action);
-
   // Most common scenario is validating that the password generation prompt is
   // being shown, so if unspecified default to true.
-  bool expect_to_be_shown = action.FindBoolKey("shouldBeShown").value_or(true);
+  auto expect_to_be_shown_iter = action.find("shouldBeShown");
+  bool expect_to_be_shown =
+      expect_to_be_shown_iter == action.end() ||
+      expect_to_be_shown_iter->second.GetIfBool().value_or(true);
+
+  // First, execute a click to focus on the field in question.
+  ExecuteClickAction(std::move(action));
+
   // Validate that the password generation prompt is shown when expected.
   ValidatePasswordGenerationPromptState(frame, xpath, expect_to_be_shown);
   return true;
@@ -1505,23 +1530,24 @@
 }
 
 bool TestRecipeReplayer::ExecuteValidateSaveFallbackAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   VLOG(1) << "Verify that Chrome shows the save fallback icon in the omnibox.";
   EXPECT_TRUE(feature_action_executor()->WaitForSaveFallback());
   return true;
 }
 
 bool TestRecipeReplayer::ExecuteWaitForStateAction(
-    const base::DictionaryValue& action) {
+    base::Value::DictStorage action) {
   // Extract the list of JavaScript assertions into a vector.
   std::vector<std::string> state_assertions;
 
-  const base::Value* list_container = action.FindListKey("assertions");
-  if (!list_container) {
+  auto list_container_iter = action.find("assertions");
+  if (list_container_iter == action.end() ||
+      !list_container_iter->second.is_list()) {
     ADD_FAILURE() << "Failed to extract wait assertions list from action";
     return false;
   }
-  for (const base::Value& assertion : list_container->GetList()) {
+  for (const base::Value& assertion : list_container_iter->second.GetList()) {
     if (!assertion.is_string()) {
       ADD_FAILURE() << "Assertion is not a string: " << assertion;
       return false;
@@ -1540,10 +1566,10 @@
 }
 
 bool TestRecipeReplayer::GetTargetHTMLElementXpathFromAction(
-    const base::DictionaryValue& action,
+    const base::Value::DictStorage& action,
     std::string* xpath) {
   xpath->clear();
-  const std::string* xpath_text =
+  absl::optional<std::string> xpath_text =
       FindPopulateString(action, "selector", "xpath selector");
   if (!xpath_text)
     return false;
@@ -1552,10 +1578,10 @@
 }
 
 bool TestRecipeReplayer::GetTargetHTMLElementVisibilityEnumFromAction(
-    const base::DictionaryValue& action,
+    const base::Value::DictStorage& action,
     int* visibility_enum_val) {
-  const base::Value* visibility_container = action.FindKey("visibility");
-  if (!visibility_container) {
+  auto visibility_container_iter = action.find("visibility");
+  if (visibility_container_iter == action.end()) {
     // By default, set the visibility to (visible | enabled | on_top), as
     // defined in
     // chrome/test/data/web_page_replay_go_helper_scripts/automation_helper.js
@@ -1563,31 +1589,31 @@
     return true;
   }
 
-  if (!visibility_container->is_int()) {
+  if (!visibility_container_iter->second.is_int()) {
     ADD_FAILURE() << "visibility property is not an integer!";
     return false;
   }
 
-  *visibility_enum_val = visibility_container->GetInt();
+  *visibility_enum_val = visibility_container_iter->second.GetInt();
   return true;
 }
 
 bool TestRecipeReplayer::GetTargetFrameFromAction(
-    const base::DictionaryValue& action,
+    const base::Value::DictStorage& action,
     content::RenderFrameHost** frame) {
-  const base::Value* iframe_container = action.FindKey("context");
-  if (!iframe_container) {
+  auto iframe_container_iter = action.find("context");
+  if (iframe_container_iter == action.end()) {
     ADD_FAILURE() << "Failed to extract the iframe context from action!";
     return false;
   }
 
-  const base::DictionaryValue* iframe;
-  if (!iframe_container->GetAsDictionary(&iframe)) {
+  if (!iframe_container_iter->second.is_dict()) {
     ADD_FAILURE() << "Failed to extract the iframe context object!";
     return false;
   }
 
-  absl::optional<bool> is_iframe_container = iframe->FindBoolKey("isIframe");
+  absl::optional<bool> is_iframe_container =
+      iframe_container_iter->second.FindBoolKey("isIframe");
   if (!is_iframe_container) {
     ADD_FAILURE() << "Failed to extract isIframe from the iframe context! ";
     return false;
@@ -1598,11 +1624,11 @@
   }
 
   const base::Value* frame_name_container =
-      iframe->FindPath({"browserTest", "name"});
+      iframe_container_iter->second.FindPath({"browserTest", "name"});
   const base::Value* frame_origin_container =
-      iframe->FindPath({"browserTest", "origin"});
+      iframe_container_iter->second.FindPath({"browserTest", "origin"});
   const base::Value* frame_url_container =
-      iframe->FindPath({"browserTest", "url"});
+      iframe_container_iter->second.FindPath({"browserTest", "url"});
   IFrameWaiter iframe_waiter(GetWebContents());
 
   if (frame_name_container != nullptr && !frame_name_container->is_string()) {
@@ -1643,7 +1669,7 @@
 }
 
 bool TestRecipeReplayer::ExtractFrameAndVerifyElement(
-    const base::DictionaryValue& action,
+    const base::Value::DictStorage& action,
     std::string* xpath,
     content::RenderFrameHost** frame,
     bool set_focus,
@@ -1682,23 +1708,23 @@
 }
 
 bool TestRecipeReplayer::GetIFramePathFromAction(
-    const base::DictionaryValue& action,
+    const base::Value::DictStorage& action,
     std::vector<std::string>* iframe_path) {
   *iframe_path = std::vector<std::string>();
 
-  const base::Value* iframe_container = action.FindKey("context");
-  if (!iframe_container) {
+  auto iframe_container_iter = action.find("context");
+  if (iframe_container_iter == action.end()) {
     ADD_FAILURE() << "Failed to extract the iframe context from action!";
     return false;
   }
 
-  const base::DictionaryValue* iframe;
-  if (!iframe_container->GetAsDictionary(&iframe)) {
+  if (!iframe_container_iter->second.is_dict()) {
     ADD_FAILURE() << "Failed to extract the iframe context object!";
     return false;
   }
 
-  const base::Value* iframe_path_container = iframe->FindKey("path");
+  const base::Value* iframe_path_container =
+      iframe_container_iter->second.FindKey("path");
   if (!iframe_path_container) {
     // If the action does not have a path container, it would mean that:
     // 1. The target frame is the top level frame.
@@ -2089,13 +2115,14 @@
 }
 
 bool TestRecipeReplayer::HasChromeStoredCredential(
-    const base::DictionaryValue& action,
+    const base::Value::DictStorage& action,
     bool* stored_cred) {
-  const std::string* origin = FindPopulateString(action, "origin", "Origin");
-  const std::string* username = FindPopulateString(action,
-                                                   "userName", "Username");
-  const std::string* password = FindPopulateString(action,
-                                                   "password", "Password");
+  absl::optional<std::string> origin =
+      FindPopulateString(action, "origin", "Origin");
+  absl::optional<std::string> username =
+      FindPopulateString(action, "userName", "Username");
+  absl::optional<std::string> password =
+      FindPopulateString(action, "password", "Password");
   if (!origin || !username || !password)
     return false;
   *stored_cred = feature_action_executor()->HasChromeStoredCredential(
@@ -2105,23 +2132,20 @@
 }
 
 bool TestRecipeReplayer::SetupSavedAutofillProfile(
-    const base::Value& saved_autofill_profile_container) {
-  if (!saved_autofill_profile_container.is_list()) {
-    ADD_FAILURE() << "Save Autofill Profile is not a list!";
-    return false;
-  }
-
-  for (const auto& list_entry : saved_autofill_profile_container.GetList()) {
-    const base::DictionaryValue* entry;
-    if (!list_entry.GetAsDictionary(&entry)) {
+    base::Value::ListStorage saved_autofill_profile_container) {
+  for (auto& list_entry : saved_autofill_profile_container) {
+    if (!list_entry.is_dict()) {
       ADD_FAILURE() << "Failed to extract an entry!";
       return false;
     }
 
-    const std::string* type =
-        FindPopulateString(*entry, "type", "profile field type");
-    const std::string* value =
-        FindPopulateString(*entry, "value", "profile field value");
+    const base::Value::DictStorage list_entry_dict =
+        std::move(list_entry).TakeDict();
+    absl::optional<std::string> type =
+        FindPopulateString(list_entry_dict, "type", "profile field type");
+    absl::optional<std::string> value =
+        FindPopulateString(list_entry_dict, "value", "profile field value");
+
     if (!type || !value)
       return false;
 
@@ -2136,7 +2160,7 @@
   // profiles. This block prevents these other tests from failing because
   // the test feature action executor does not know how to setup the autofill
   // profile.
-  if (saved_autofill_profile_container.GetList().empty()) {
+  if (saved_autofill_profile_container.empty()) {
     return true;
   }
 
@@ -2144,25 +2168,21 @@
 }
 
 bool TestRecipeReplayer::SetupSavedPasswords(
-    const base::Value& saved_password_list_container) {
-  if (!saved_password_list_container.is_list()) {
-    ADD_FAILURE() << "Saved Password List is not a list!";
-    return false;
-  }
-
-  for (const auto& entry : saved_password_list_container.GetList()) {
-    const base::DictionaryValue* cred;
-    if (!entry.GetAsDictionary(&cred)) {
+    base::Value::ListStorage saved_password_list_container) {
+  for (auto& entry : saved_password_list_container) {
+    if (!entry.is_dict()) {
       ADD_FAILURE() << "Failed to extract a saved password!";
       return false;
     }
 
-    const std::string* origin =
-        FindPopulateString(*cred, "website", "Website");
-    const std::string* username =
-        FindPopulateString(*cred, "username", "Username");
-    const std::string* password =
-        FindPopulateString(*cred, "password", "Password");
+    const base::Value::DictStorage entry_dict = std::move(entry).TakeDict();
+
+    absl::optional<std::string> origin =
+        FindPopulateString(entry_dict, "website", "Website");
+    absl::optional<std::string> username =
+        FindPopulateString(entry_dict, "username", "Username");
+    absl::optional<std::string> password =
+        FindPopulateString(entry_dict, "password", "Password");
     if (!origin || !username || !password)
       return false;
 
diff --git a/chrome/browser/autofill/captured_sites_test_utils.h b/chrome/browser/autofill/captured_sites_test_utils.h
index ee2f482f..6a44f34 100644
--- a/chrome/browser/autofill/captured_sites_test_utils.h
+++ b/chrome/browser/autofill/captured_sites_test_utils.h
@@ -263,41 +263,41 @@
   bool ReplayRecordedActions(
       const base::FilePath& recipe_file_path,
       const absl::optional<base::FilePath>& command_file_path);
-  bool InitializeBrowserToExecuteRecipe(
-      const std::unique_ptr<base::DictionaryValue>& recipe);
-  bool ExecuteAutofillAction(const base::DictionaryValue& action);
-  bool ExecuteClickAction(const base::DictionaryValue& action);
-  bool ExecuteClickIfNotSeenAction(const base::DictionaryValue& action);
-  bool ExecuteCoolOffAction(const base::DictionaryValue& action);
-  bool ExecuteCloseTabAction(const base::DictionaryValue& action);
-  bool ExecuteHoverAction(const base::DictionaryValue& action);
-  bool ExecuteForceLoadPage(const base::DictionaryValue& action);
-  bool ExecutePressEnterAction(const base::DictionaryValue& action);
-  bool ExecutePressEscapeAction(const base::DictionaryValue& action);
-  bool ExecutePressSpaceAction(const base::DictionaryValue& action);
-  bool ExecuteRunCommandAction(const base::DictionaryValue& action);
-  bool ExecuteSavePasswordAction(const base::DictionaryValue& action);
-  bool ExecuteSelectDropdownAction(const base::DictionaryValue& action);
-  bool ExecuteTypeAction(const base::DictionaryValue& action);
-  bool ExecuteTypePasswordAction(const base::DictionaryValue& action);
-  bool ExecuteUpdatePasswordAction(const base::DictionaryValue& action);
-  bool ExecuteValidateFieldValueAction(const base::DictionaryValue& action);
-  bool ExecuteValidatePasswordGenerationPromptAction(
-      const base::DictionaryValue& action);
+  bool InitializeBrowserToExecuteRecipe(base::Value::DictStorage& recipe);
+  bool ExecuteAutofillAction(base::Value::DictStorage action);
+  bool ExecuteClickAction(base::Value::DictStorage action);
+  bool ExecuteClickIfNotSeenAction(base::Value::DictStorage action);
+  bool ExecuteCoolOffAction(base::Value::DictStorage action);
+  bool ExecuteCloseTabAction(base::Value::DictStorage action);
+  bool ExecuteHoverAction(base::Value::DictStorage action);
+  bool ExecuteForceLoadPage(base::Value::DictStorage action);
+  bool ExecutePressEnterAction(base::Value::DictStorage action);
+  bool ExecutePressEscapeAction(base::Value::DictStorage action);
+  bool ExecutePressSpaceAction(base::Value::DictStorage action);
+  bool ExecuteRunCommandAction(base::Value::DictStorage action);
+  bool ExecuteSavePasswordAction(base::Value::DictStorage action);
+  bool ExecuteSelectDropdownAction(base::Value::DictStorage action);
+  bool ExecuteTypeAction(base::Value::DictStorage action);
+  bool ExecuteTypePasswordAction(base::Value::DictStorage action);
+  bool ExecuteUpdatePasswordAction(base::Value::DictStorage action);
+  bool ExecuteValidateFieldValueAction(base::Value::DictStorage action);
   bool ExecuteValidateNoSavePasswordPromptAction(
-      const base::DictionaryValue& action);
-  bool ExecuteValidateSaveFallbackAction(const base::DictionaryValue& action);
-  bool ExecuteWaitForStateAction(const base::DictionaryValue& action);
-  bool GetTargetHTMLElementXpathFromAction(const base::DictionaryValue& action,
-                                           std::string* xpath);
-  bool GetTargetFrameFromAction(const base::DictionaryValue& action,
+      base::Value::DictStorage action);
+  bool ExecuteValidatePasswordGenerationPromptAction(
+      base::Value::DictStorage action);
+  bool ExecuteValidateSaveFallbackAction(base::Value::DictStorage action);
+  bool ExecuteWaitForStateAction(base::Value::DictStorage action);
+  bool GetTargetHTMLElementXpathFromAction(
+      const base::Value::DictStorage& action,
+      std::string* xpath);
+  bool GetTargetFrameFromAction(const base::Value::DictStorage& action,
                                 content::RenderFrameHost** frame);
-  bool GetIFramePathFromAction(const base::DictionaryValue& action,
+  bool GetIFramePathFromAction(const base::Value::DictStorage& action,
                                std::vector<std::string>* iframe_path);
   bool GetTargetHTMLElementVisibilityEnumFromAction(
-      const base::DictionaryValue& action,
+      const base::Value::DictStorage& action,
       int* visibility_enum_val);
-  bool ExtractFrameAndVerifyElement(const base::DictionaryValue& action,
+  bool ExtractFrameAndVerifyElement(const base::Value::DictStorage& action,
                                     std::string* xpath,
                                     content::RenderFrameHost** frame,
                                     bool set_focus = false,
@@ -337,12 +337,13 @@
   void SimulateKeyPressWrapper(content::WebContents* web_contents,
                                ui::DomKey key);
   void NavigateAwayAndDismissBeforeUnloadDialog();
-  bool HasChromeStoredCredential(const base::DictionaryValue& action,
+  bool HasChromeStoredCredential(const base::Value::DictStorage& action,
                                  bool* stored_cred);
   bool OverrideAutofillClock(const base::FilePath capture_file_path);
   bool SetupSavedAutofillProfile(
-      const base::Value& saved_autofill_profile_container);
-  bool SetupSavedPasswords(const base::Value& saved_password_list_container);
+      base::Value::ListStorage saved_autofill_profile_container);
+  bool SetupSavedPasswords(
+      base::Value::ListStorage saved_password_list_container);
 
   // Wait until Chrome finishes loading a page and updating the page's visuals.
   // If Chrome finishes loading a page but continues to paint every half
diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc
index 10b6f44..20cb342 100644
--- a/chrome/browser/chrome_browser_main_win.cc
+++ b/chrome/browser/chrome_browser_main_win.cc
@@ -470,7 +470,7 @@
     // The profile was unloaded.
     return;
   }
-  auto* provider = web_app::WebAppProvider::Get(profile);
+  auto* provider = web_app::WebAppProvider::GetForWebApps(profile);
   if (!provider)
     return;
   web_app::WebAppRegistrar& registrar = provider->registrar();
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index af2c065..5867404 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -3215,6 +3215,12 @@
     web_prefs->strict_powerful_feature_restrictions = true;
   }
 
+  // See crbug.com/1238157: the Native Client flag (chrome://flags/#enable-nacl)
+  // can be manually re-enabled. In that case, we also need to return the full
+  // plugins list, for compat.
+  web_prefs->allow_non_empty_navigator_plugins =
+      base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableNaCl);
+
   web_prefs->data_saver_enabled = IsDataSaverEnabled(profile);
 
   web_prefs->data_saver_holdback_web_api_enabled =
diff --git a/chrome/browser/engagement/site_engagement_helper.cc b/chrome/browser/engagement/site_engagement_helper.cc
index 199d262b..89ee5b8b 100644
--- a/chrome/browser/engagement/site_engagement_helper.cc
+++ b/chrome/browser/engagement/site_engagement_helper.cc
@@ -8,11 +8,11 @@
 
 #include "base/bind.h"
 #include "base/containers/cxx20_erase.h"
+#include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "base/trace_event/trace_event.h"
-#include "chrome/browser/prefetch/no_state_prefetch/chrome_no_state_prefetch_contents_delegate.h"
-#include "chrome/browser/profiles/profile.h"
 #include "components/no_state_prefetch/browser/no_state_prefetch_contents.h"
+#include "components/no_state_prefetch/browser/no_state_prefetch_manager.h"
 #include "components/site_engagement/content/engagement_type.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
@@ -183,12 +183,14 @@
   base::Erase(active_media_players_, id);
 }
 
-SiteEngagementService::Helper::Helper(content::WebContents* web_contents)
+SiteEngagementService::Helper::Helper(
+    content::WebContents* web_contents,
+    prerender::NoStatePrefetchManager* prefetch_manager)
     : content::WebContentsObserver(web_contents),
       input_tracker_(this, web_contents),
       media_tracker_(this, web_contents),
-      service_(SiteEngagementService::Get(
-          Profile::FromBrowserContext(web_contents->GetBrowserContext()))) {}
+      service_(SiteEngagementService::Get(web_contents->GetBrowserContext())),
+      prefetch_manager_(prefetch_manager) {}
 
 void SiteEngagementService::Helper::RecordUserInput(EngagementType type) {
   TRACE_EVENT0("SiteEngagement", "RecordUserInput");
@@ -227,8 +229,8 @@
   //
   // Prefetchers trigger WasShown() when they are swapped in, so input
   // engagement will activate even if navigation engagement is not scored.
-  if (prerender::ChromeNoStatePrefetchContentsDelegate::FromWebContents(
-          web_contents()) != nullptr)
+  if (prefetch_manager_ &&
+      prefetch_manager_->GetNoStatePrefetchContents(web_contents()))
     return;
 
   service_->HandleNavigation(web_contents(), handle->GetPageTransition());
diff --git a/chrome/browser/engagement/site_engagement_helper.h b/chrome/browser/engagement/site_engagement_helper.h
index c47ad87..62c33b3 100644
--- a/chrome/browser/engagement/site_engagement_helper.h
+++ b/chrome/browser/engagement/site_engagement_helper.h
@@ -9,6 +9,7 @@
 
 #include "base/macros.h"
 #include "base/timer/timer.h"
+#include "components/no_state_prefetch/browser/no_state_prefetch_manager.h"
 #include "components/site_engagement/content/site_engagement_service.h"
 #include "content/public/browser/media_player_id.h"
 #include "content/public/browser/web_contents_observer.h"
@@ -153,7 +154,11 @@
     DISALLOW_COPY_AND_ASSIGN(MediaTracker);
   };
 
-  explicit Helper(content::WebContents* web_contents);
+  // Optionally include |NoStatePrefetchManager| if no state prefetches are
+  // possible in the embedder.
+  explicit Helper(
+      content::WebContents* web_contents,
+      prerender::NoStatePrefetchManager* prefetch_manager = nullptr);
   friend class content::WebContentsUserData<SiteEngagementService::Helper>;
   friend class SiteEngagementHelperTest;
   friend class SiteEngagementHelperBrowserTest;
@@ -173,6 +178,7 @@
   InputTracker input_tracker_;
   MediaTracker media_tracker_;
   SiteEngagementService* service_;
+  prerender::NoStatePrefetchManager* prefetch_manager_;
 
   DISALLOW_COPY_AND_ASSIGN(Helper);
   WEB_CONTENTS_USER_DATA_KEY_DECL();
diff --git a/chrome/browser/engagement/site_engagement_service_factory.cc b/chrome/browser/engagement/site_engagement_service_factory.cc
index b8ad9d0..b79d8cc 100644
--- a/chrome/browser/engagement/site_engagement_service_factory.cc
+++ b/chrome/browser/engagement/site_engagement_service_factory.cc
@@ -7,6 +7,7 @@
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/engagement/history_aware_site_engagement_service.h"
 #include "chrome/browser/history/history_service_factory.h"
+#include "chrome/browser/prefetch/no_state_prefetch/no_state_prefetch_manager_factory.h"
 #include "chrome/browser/profiles/incognito_helpers.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/keyed_service/content/browser_context_dependency_manager.h"
@@ -40,6 +41,7 @@
           BrowserContextDependencyManager::GetInstance()) {
   DependsOn(HistoryServiceFactory::GetInstance());
   DependsOn(HostContentSettingsMapFactory::GetInstance());
+  DependsOn(prerender::NoStatePrefetchManagerFactory::GetInstance());
   SiteEngagementService::SetServiceProvider(this);
 }
 
diff --git a/chrome/browser/enterprise/connectors/device_trust/attestation/common/proto/device_trust_attestation_ca.proto b/chrome/browser/enterprise/connectors/device_trust/attestation/common/proto/device_trust_attestation_ca.proto
index 5dcb79b5..b625d0a 100644
--- a/chrome/browser/enterprise/connectors/device_trust/attestation/common/proto/device_trust_attestation_ca.proto
+++ b/chrome/browser/enterprise/connectors/device_trust/attestation/common/proto/device_trust_attestation_ca.proto
@@ -352,10 +352,10 @@
 message DeviceTrustSignals {
   // Device Id
   optional string device_id = 1;
-  // Customer Id
-  optional string customer_id = 2;
-  // OrgUnit Id
-  optional string ou_id = 3;
+  // Obfuscated CBCM-enrolled Customer Id
+  optional string obfuscated_customer_id = 2;
+  // Device serial number
+  optional string serial_number = 3;
   // Human readable name for this device
   optional string display_name = 4;
   // OS running on the device (e.g. Chrome OS)
@@ -374,7 +374,8 @@
   optional string tpm_hash = 11;
   // Is the disk encrypted
   optional bool is_disk_encrypted = 12;
-  // Allow Screen Lock
+  // Value of the AllowScreenLock policy.
+  // https://chromeenterprise.google/policies/?policy=AllowScreenLock
   optional bool allow_screen_lock = 13;
   // Is the access to the OS user protected by a password
   optional bool is_protected_by_password = 14;
@@ -384,9 +385,11 @@
   optional string enrollment_domain = 16;
   // Browser Version
   optional string browser_version = 17;
-  // SafeBrowsingProtectionLevel
+  // Value of the SafeBrowsingProtectionLevel policy.
+  // https://chromeenterprise.google/policies/#SafeBrowsingProtectionLevel
   optional int32 safe_browsing_protection_level = 18;
-  // Site Isolation enabled
+  // Value of the SitePerProcess policy.
+  // https://chromeenterprise.google/policies/#SitePerProcess
   optional bool site_isolation_enabled = 19;
   // ThirdPartyBlockingEnabled
   optional bool third_party_blocking_enabled = 20;
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.cc b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.cc
index 7282204..24681c6 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.cc
@@ -416,19 +416,17 @@
 }
 
 bool BoxCreateUpstreamFolderApiCallFlow::IsExpectedSuccessCode(int code) const {
-  return code == net::HTTP_CREATED;
+  return code == net::HTTP_CREATED || code == net::HTTP_CONFLICT;
 }
 
 void BoxCreateUpstreamFolderApiCallFlow::ProcessApiCallSuccess(
     const network::mojom::URLResponseHead* head,
     std::unique_ptr<std::string> body) {
   auto response_code = head->headers->response_code();
-  CHECK_EQ(response_code, net::HTTP_CREATED);
-
   data_decoder::DataDecoder::ParseJsonIsolated(
       *body,
       base::BindOnce(&BoxCreateUpstreamFolderApiCallFlow::OnSuccessJsonParsed,
-                     weak_factory_.GetWeakPtr()));
+                     weak_factory_.GetWeakPtr(), response_code));
 }
 
 void BoxCreateUpstreamFolderApiCallFlow::ProcessFailure(Response response) {
@@ -436,13 +434,45 @@
 }
 
 void BoxCreateUpstreamFolderApiCallFlow::OnSuccessJsonParsed(
+    int network_response_code,
     ParseResult result) {
+  DCHECK(result.value);
+  if (!result.value)
+    return OnFailureJsonParsed(network_response_code, std::move(result));
+
   std::string folder_id;
-  if (result.value) {
-    folder_id = ExtractId(*result.value);
+  absl::optional<base::Value> folder_info_dict;
+
+  if (network_response_code == net::HTTP_CREATED) {
+    folder_info_dict = std::move(result.value);
+  } else {
+    // Right after a folder was created with a previous upload, the folder may
+    // not be found via BoxFindUpstreamFolderApiCallFlow, therefore BoxUploader
+    // tries to create a folder again and gets a conflict. The conflicting
+    // folder is included in the response body so can also be extracted to
+    // return a folder_id.
+    DCHECK_EQ(network_response_code, net::HTTP_CONFLICT);
+    std::string* box_error_code = result.value->FindStringPath("code");
+    base::Value* conflict_folder_info;
+    base::ListValue* conflict_folders_list;
+    if (box_error_code && *box_error_code == "item_name_in_use" &&
+        (conflict_folder_info =
+             result.value->FindPath("context_info.conflicts")) &&
+        conflict_folder_info->GetAsList(&conflict_folders_list) &&
+        conflict_folders_list && conflict_folders_list->GetSize() > 0 &&
+        conflict_folders_list->Get(0, &conflict_folder_info) &&
+        conflict_folder_info) {
+      folder_info_dict =
+          absl::make_optional<base::Value>(conflict_folder_info->Clone());
+    }
   }
+
+  if (!folder_info_dict.has_value())
+    return OnFailureJsonParsed(network_response_code, std::move(result));
+
+  folder_id = ExtractId(*folder_info_dict);
   LOG_PARSE_FAIL_IF(folder_id.empty(), ERROR, "CreateUpstreamFolder", result);
-  std::move(callback_).Run(Response{!folder_id.empty(), net::HTTP_CREATED},
+  std::move(callback_).Run(Response{!folder_id.empty(), network_response_code},
                            folder_id);
   return;
 }
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.h b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.h
index 66c8407..9e33144 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.h
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.h
@@ -51,9 +51,10 @@
   using ParseResult = data_decoder::DataDecoder::ValueOrError;
 
  protected:
+  void OnFailureJsonParsed(int http_error, ParseResult result);
+  // Called in OnFailureJsonParsed() to send the failure back.
   virtual void ProcessFailure(Response response) = 0;
 
-  void OnFailureJsonParsed(int http_error, ParseResult result);
   base::WeakPtrFactory<BoxApiCallFlow> weak_factory_{this};
 };
 
@@ -129,7 +130,7 @@
 
  private:
   // Callback for JsonParser that extracts folder id in ProcessApiCallSuccess().
-  void OnSuccessJsonParsed(ParseResult result);
+  void OnSuccessJsonParsed(int network_response_code, ParseResult result);
 
   // Callback from the uploader to report success, http_code, folder_id.
   TaskCallback callback_;
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc
index 4c033829..d81becc 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc
@@ -318,10 +318,10 @@
 
 TEST_F(BoxCreateUpstreamFolderApiCallFlowTest, IsExpectedSuccessCode) {
   ASSERT_TRUE(flow_->IsExpectedSuccessCode(201));
+  ASSERT_TRUE(flow_->IsExpectedSuccessCode(409));
   ASSERT_FALSE(flow_->IsExpectedSuccessCode(400));
   ASSERT_FALSE(flow_->IsExpectedSuccessCode(403));
   ASSERT_FALSE(flow_->IsExpectedSuccessCode(404));
-  ASSERT_FALSE(flow_->IsExpectedSuccessCode(409));
 }
 
 TEST_F(BoxCreateUpstreamFolderApiCallFlowTest, ProcessApiCallFailure) {
@@ -349,10 +349,9 @@
   network::mojom::URLResponseHeadPtr head_;
 };
 
-TEST_F(BoxCreateUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess, Normal) {
-  auto http_head = network::CreateURLResponseHead(net::HTTP_CREATED);
+TEST_F(BoxCreateUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess, Created) {
   flow_->ProcessApiCallSuccess(
-      http_head.get(),
+      head_.get(),
       std::make_unique<std::string>(kFileSystemBoxCreateFolderResponseBody));
   base::RunLoop().RunUntilIdle();
   ASSERT_TRUE(processed_success_);
@@ -360,6 +359,17 @@
   ASSERT_EQ(processed_folder_id_, kFileSystemBoxCreateFolderResponseFolderId);
 }
 
+TEST_F(BoxCreateUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess, Conflict) {
+  auto http_head = network::CreateURLResponseHead(net::HTTP_CONFLICT);
+  flow_->ProcessApiCallSuccess(
+      http_head.get(), std::make_unique<std::string>(
+                           kFileSystemBoxCreateFolderConflictResponseBody));
+  base::RunLoop().RunUntilIdle();
+  ASSERT_TRUE(processed_success_);
+  ASSERT_EQ(response_code_, net::HTTP_CONFLICT);
+  ASSERT_EQ(processed_folder_id_, kFileSystemBoxCreateFolderResponseFolderId);
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // PreflightCheck
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.cc b/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.cc
index ed42588..0aed593 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.cc
@@ -112,6 +112,24 @@
     }
   })";
 
+const char kFileSystemBoxCreateFolderConflictResponseBody[] = R"({
+  "type": "error",
+  "status": 409,
+  "code": "item_name_in_use",
+  "context_info":{
+    "conflicts":[{
+      "type": "folder",
+      "id": "67890",
+      "sequence_id": "0",
+      "etag": "0",
+      "name": "ChromeDownloads"
+    }]
+  },
+  "help_url": "http:\/\/developers.box.com\/docs\/#errors",
+  "message": "Item with the same name already exists",
+  "request_id": "2i8lbtgtdld0mle3"
+})";
+
 // Should match id in kFileSystemBoxCreateFolderResponseBody, as it's used to
 // verify extracted folder_id from body above.
 const char kFileSystemBoxCreateFolderResponseFolderId[] = "67890";
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.h b/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.h
index 7817911..13ee3a7 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.h
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.h
@@ -42,6 +42,7 @@
 extern const char kFileSystemBoxFindFolderResponseEmptyEntriesList[];
 // Expected response from kFileSystemBoxCreateFolderUrl.
 extern const char kFileSystemBoxCreateFolderResponseBody[];
+extern const char kFileSystemBoxCreateFolderConflictResponseBody[];
 // Expected folder id extracted from above.
 extern const char kFileSystemBoxCreateFolderResponseFolderId[];
 
diff --git a/chrome/browser/enterprise/connectors/file_system/box_uploader_unittest.cc b/chrome/browser/enterprise/connectors/file_system/box_uploader_unittest.cc
index 3c86f87b..1738f4eb 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_uploader_unittest.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_uploader_unittest.cc
@@ -275,6 +275,28 @@
   EXPECT_EQ(uploader_->GetFolderIdForTesting(), "");
 }
 
+TEST_F(BoxUploaderTest, CreateFolder_Conflict_DueToIndexingLatency) {
+  // Check that a conflict response for create folder step will continue using
+  // the provided conflicting folder.
+  AddFetchResult(kFileSystemBoxFindFolderUrl, net::HTTP_OK,
+                 kFileSystemBoxFindFolderResponseEmptyEntriesList);
+  AddFetchResult(kFileSystemBoxCreateFolderUrl, net::HTTP_CONFLICT,
+                 kFileSystemBoxCreateFolderConflictResponseBody);
+  AddFetchResult(kFileSystemBoxPreflightCheckUrl, net::HTTP_OK);
+
+  InitQuitClosure();
+  uploader_->TryTask(url_factory_, "test_token");
+  RunWithQuitClosure();
+
+  EXPECT_EQ(authentication_retry_, 0);
+  EXPECT_EQ(uploader_->GetFolderIdForTesting(),
+            kFileSystemBoxCreateFolderResponseFolderId);
+  EXPECT_EQ(uploader_->GetUploadFileName().value(), kUploadFileName);
+  ASSERT_TRUE(upload_initiated_);
+  EXPECT_FALSE(download_thread_cb_called_);  // InterceptedPreUpload() above.
+  EXPECT_FALSE(upload_success_);
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // BoxUploader: Preflight Check Test
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 370cb6da..1dbeaed 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -714,6 +714,14 @@
     "expiry_milestone": 90
   },
   {
+    "name": "consolidated-site-storage-controls",
+    "owners": [
+      "sauski",
+      "chrome-friendly-settings@google.com"
+    ],
+    "expiry_milestone": 98
+  },
+  {
     "name": "content-languages-in-language-picker",
     "owners": [ "basiaz@google.com", "chrome-language@google.com" ],
     "expiry_milestone": 96
@@ -1323,11 +1331,6 @@
     "expiry_milestone": 76
   },
   {
-    "name": "enable-app-data-search",
-    "owners": [ "jennyz", "kaznacheev" ],
-    "expiry_milestone": 86
-  },
-  {
     "name": "enable-app-grid-ghost",
     "owners": [ "mmourgos" ],
     "expiry_milestone": 88
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 5c14a85..f831a68 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -432,6 +432,11 @@
     "A new algorithm to create compositing layers. "
     "See http://bit.ly/composite-after-paint.";
 
+const char kConsolidatedSiteStorageControlsName[] =
+    "Consolidated Site Storage Controls";
+const char kConsolidatedSiteStorageControlsDescription[] =
+    "Enables the consolidated version of Site Storage controls in settings";
+
 const char kContextMenuGoogleLensChipName[] =
     "Google Lens powered image search for surfaced as a chip below the context "
     "menu.";
@@ -4172,11 +4177,6 @@
 const char kDriveFsBidirectionalNativeMessagingDescription[] =
     "Enable enhanced native messaging host to communicate with DriveFS.";
 
-const char kEnableAppDataSearchName[] = "Enable app data search in launcher";
-const char kEnableAppDataSearchDescription[] =
-    "Allow launcher search to access data available through Firebase App "
-    "Indexing";
-
 const char kCrOSEnforceSystemAecName[] = "Enforce using the system AEC in CrAS";
 const char kCrOSEnforceSystemAecDescription[] =
     "Enforces using the system variant in CrAS of the AEC";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index b93261d6..72d7c51 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -247,6 +247,9 @@
 extern const char kCompositeAfterPaintName[];
 extern const char kCompositeAfterPaintDescription[];
 
+extern const char kConsolidatedSiteStorageControlsName[];
+extern const char kConsolidatedSiteStorageControlsDescription[];
+
 extern const char kContextMenuGoogleLensChipName[];
 extern const char kContextMenuGoogleLensChipDescription[];
 
@@ -2384,9 +2387,6 @@
 extern const char kDriveFsBidirectionalNativeMessagingName[];
 extern const char kDriveFsBidirectionalNativeMessagingDescription[];
 
-extern const char kEnableAppDataSearchName[];
-extern const char kEnableAppDataSearchDescription[];
-
 extern const char kEnableAppGridGhostName[];
 extern const char kEnableAppGridGhostDescription[];
 
diff --git a/chrome/browser/history/history_browsertest.cc b/chrome/browser/history/history_browsertest.cc
index 9fc70b84..854e4ea 100644
--- a/chrome/browser/history/history_browsertest.cc
+++ b/chrome/browser/history/history_browsertest.cc
@@ -875,7 +875,7 @@
 
   // Activate.
   prerender_helper_.NavigatePrimaryPage(prerendering_url);
-  ASSERT_EQ(prerendering_url, web_contents()->GetURL());
+  ASSERT_EQ(prerendering_url, web_contents()->GetLastCommittedURL());
 
   // The prerendered page should be recorded.
   EXPECT_THAT(GetHistoryContents(),
@@ -904,7 +904,7 @@
 
   // Activate.
   prerender_helper_.NavigatePrimaryPage(prerendering_url);
-  ASSERT_EQ(prerendering_fragment_url, web_contents()->GetURL());
+  ASSERT_EQ(prerendering_fragment_url, web_contents()->GetLastCommittedURL());
 
   // The last committed URL of the prerendering page, instead of the original
   // prerendering URL, should be recorded.
diff --git a/chrome/browser/history/redirect_browsertest.cc b/chrome/browser/history/redirect_browsertest.cc
index 2f4926b..ef814a59 100644
--- a/chrome/browser/history/redirect_browsertest.cc
+++ b/chrome/browser/history/redirect_browsertest.cc
@@ -107,16 +107,20 @@
   EXPECT_EQ(final_url.spec(), redirects[0].spec());
 
   // The address bar should display the final URL.
-  EXPECT_EQ(final_url,
-            browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
+  EXPECT_EQ(final_url, browser()
+                           ->tab_strip_model()
+                           ->GetActiveWebContents()
+                           ->GetLastCommittedURL());
 
   // Navigate one more time.
   ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
       browser(), first_url, 2);
 
   // The address bar should still display the final URL.
-  EXPECT_EQ(final_url,
-            browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
+  EXPECT_EQ(final_url, browser()
+                           ->tab_strip_model()
+                           ->GetActiveWebContents()
+                           ->GetLastCommittedURL());
 }
 
 // http://code.google.com/p/chromium/issues/detail?id=62772
@@ -177,7 +181,7 @@
   // change that occurs should be flagged as a redirect but the meta-refresh
   // won't have fired yet.
   ASSERT_EQ(1U, redirects.size());
-  EXPECT_EQ("myanchor", web_contents->GetURL().ref());
+  EXPECT_EQ("myanchor", web_contents->GetLastCommittedURL().ref());
 }
 
 // Tests a client->server->server redirect
@@ -214,9 +218,11 @@
 
   ui_test_utils::NavigateToURL(browser(), initial_url);
 
-  EXPECT_EQ(ref,
-            browser()->tab_strip_model()->GetActiveWebContents()->
-                GetURL().ref());
+  EXPECT_EQ(ref, browser()
+                     ->tab_strip_model()
+                     ->GetActiveWebContents()
+                     ->GetLastCommittedURL()
+                     .ref());
 }
 
 // Test that redirect from http:// to file:// :
diff --git a/chrome/browser/history_clusters/history_clusters_tab_helper_unittest.cc b/chrome/browser/history_clusters/history_clusters_tab_helper_unittest.cc
index 7c33fb9..a545ecb 100644
--- a/chrome/browser/history_clusters/history_clusters_tab_helper_unittest.cc
+++ b/chrome/browser/history_clusters/history_clusters_tab_helper_unittest.cc
@@ -140,13 +140,18 @@
 //     resolved (because either the tab is closed too soon or there are no
 //     matching visits).
 // 2) `WebContentsDestroyed()` is invoked.
-// Then: 0 visits should be committed.
+// Then: 0 context annotations should be committed.
 TEST_F(HistoryClustersTabHelperTest, NavigationWith0HistoryVisits) {
-  AddToHistory(GURL{"https://google.com"}, 1);
+  AddToHistory(GURL{"https://other.com"}, 1);
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
+  helper_->OnOmniboxUrlCopied();
   DeleteContents();
-  EXPECT_TRUE(GetVisits().empty());
+
+  auto visits = GetVisits();
+  EXPECT_EQ(visits.size(), 1U);
+  // Context signals should be unavailable because there's no matching visit.
+  EXPECT_FALSE(visits[0].context_annotations.omnibox_url_copied);
 }
 
 // History (w/ 1 visit) -> destroy
@@ -154,21 +159,25 @@
 // 1) `OnUpdatedHistoryForNavigation()` is invoked and 1 history visit are
 //    fetched.
 // 2) `WebContentsDestroyed()` is invoked.
-// Then: 1 visit should be committed w/o `duration_since_last_visit`.
+// Then: 1 context annotation should be committed.
 TEST_F(HistoryClustersTabHelperTest, NavigationWith1HistoryVisits) {
   AddToHistory(GURL{"https://github.com"}, 1);
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_TRUE(GetVisits().empty());
+  helper_->OnOmniboxUrlCopied();
+  EXPECT_EQ(GetVisits().size(), 1u);
 
   DeleteContents();
+  // Adding the bookmark after the WebContents is destroyed should do nothing.
   AddBookmark(GURL{"https://github.com"});
-  ASSERT_EQ(GetVisits().size(), 1u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_EQ(
-      GetVisits()[0].context_annotations.duration_since_last_visit.InSeconds(),
-      -1);
-  EXPECT_FALSE(GetVisits()[0].context_annotations.is_new_bookmark);
+
+  auto visits = GetVisits();
+  ASSERT_EQ(visits.size(), 1u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[0].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
+  EXPECT_FALSE(visits[0].context_annotations.is_new_bookmark);
+  EXPECT_TRUE(visits[0].context_annotations.omnibox_url_copied);
 }
 
 // History (w/ 2 visits) -> destroy
@@ -176,20 +185,27 @@
 // 1) `OnUpdatedHistoryForNavigation()` is invoked and 2 history visits are
 //    fetched.
 // 2) `WebContentsDestroyed()` is invoked.
-// Then: 1 visit should be committed.
+// Then: 1 context annotation should be committed.
 TEST_F(HistoryClustersTabHelperTest, NavigationWith2HistoryVisits) {
   AddToHistory(GURL{"https://github.com"}, 19);
   AddToHistory(GURL{"https://github.com"}, 23);
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_TRUE(GetVisits().empty());
+  auto visits = GetVisits();
+  // Two visits are there but context annotations are initially unavailable.
+  EXPECT_EQ(visits.size(), 2u);
+  EXPECT_EQ(visits[0].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
 
   DeleteContents();
-  ASSERT_EQ(GetVisits().size(), 1u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_EQ(
-      GetVisits()[0].context_annotations.duration_since_last_visit.InSeconds(),
-      4);
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 2u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[0].context_annotations.duration_since_last_visit.InSeconds(),
+            4);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[1].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
 }
 
 // History (w/ 0 visits) -> history (w/ 0 visits) -> destroy
@@ -216,25 +232,54 @@
 // 2) `OnUpdatedHistoryForNavigation()` is invoked and 2 history visits are
 //    fetched.
 // 3) `WebContentsDestroyed()` is invoked.
-// Then: 2 visits should be committed.
+// Then: 2 context annotations should be committed.
 TEST_F(HistoryClustersTabHelperTest, TwoNavigationsWith2HistoryVisits) {
   AddToHistory(GURL{"https://github.com"}, 1);
-  AddToHistory(GURL{"https://github.com"}, 2);
-  AddToHistory(GURL{"https://google.com"}, 3);
-  AddToHistory(GURL{"https://google.com"}, 4);
+  AddToHistory(GURL{"https://github.com"}, 5);
+  AddToHistory(GURL{"https://google.com"}, 10);
+  AddToHistory(GURL{"https://google.com"}, 18);
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_TRUE(GetVisits().empty());
+  // 4 visits are in History, but they don't have context annotations.
+  auto visits = GetVisits();
+  ASSERT_EQ(visits.size(), 4u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://google.com"});
+  EXPECT_EQ(visits[0].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_EQ(visits[1].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
+  EXPECT_EQ(visits[2].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[2].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
+  EXPECT_EQ(visits[3].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[3].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
 
   helper_->OnUpdatedHistoryForNavigation(1, GURL{"https://google.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  ASSERT_EQ(GetVisits().size(), 1u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 4u);
+  EXPECT_EQ(visits[0].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
+  EXPECT_EQ(visits[1].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
+  EXPECT_EQ(visits[2].context_annotations.duration_since_last_visit.InSeconds(),
+            4);
+  EXPECT_EQ(visits[3].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
 
   DeleteContents();
-  ASSERT_EQ(GetVisits().size(), 2u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://google.com"});
-  EXPECT_EQ(GetVisits()[1].url_row.url(), GURL{"https://github.com"});
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 4u);
+  EXPECT_EQ(visits[0].context_annotations.duration_since_last_visit.InSeconds(),
+            8);
+  EXPECT_EQ(visits[1].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
+  EXPECT_EQ(visits[2].context_annotations.duration_since_last_visit.InSeconds(),
+            4);
+  EXPECT_EQ(visits[3].context_annotations.duration_since_last_visit.InSeconds(),
+            -1);
 }
 
 // For the remaining tests, all navigations will have at least 1 history visit.
@@ -244,13 +289,18 @@
 // 1) `OnUpdatedHistoryForNavigation()` is invoked.
 // 2) `WebContentsDestroyed()` is invoked before the previous history request is
 //    resolved.
-// Then: 0 visits should be committed.
+// Then: 0 context annotations should be committed.
 TEST_F(HistoryClustersTabHelperTest, HistoryResolvedAfterDestroy) {
   AddToHistory(GURL{"https://github.com"}, 1);
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
+  helper_->OnOmniboxUrlCopied();
   DeleteContents();
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_TRUE(GetVisits().empty());
+
+  // Validate that the omnibox-url-copied signal was lost.
+  auto visits = GetVisits();
+  ASSERT_EQ(visits.size(), 1u);
+  EXPECT_FALSE(visits[0].context_annotations.omnibox_url_copied);
 }
 
 // History -> history -> history resolve -> destroy
@@ -259,7 +309,7 @@
 // 2) `OnUpdatedHistoryForNavigation()` is invoked before the previous history
 //    request is resolved.
 // 3) `WebContentsDestroyed()` is invoked.
-// Then: 2 visits should be committed.
+// Then: 2 context annotations should be committed.
 TEST_F(HistoryClustersTabHelperTest, HistoryResolvedAfter2ndNavigation) {
   AddToHistory(GURL{"https://google.com"}, 1);
   AddToHistory(GURL{"https://github.com"}, 2);
@@ -268,16 +318,21 @@
 
   // Bookmarked after navigation ends, but before its history request resolved.
   AddBookmark(GURL{"https://google.com"});
-  history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_EQ(GetVisits().size(), 1u);
-  DeleteContents();
-  // Bookmarked after navigation ends and its history request resolved.
-  AddBookmark(GURL{"https://github.com"});
+
   auto visits = GetVisits();
   ASSERT_EQ(visits.size(), 2u);
   EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
   EXPECT_FALSE(visits[0].context_annotations.is_new_bookmark);
   EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_FALSE(visits[1].context_annotations.is_new_bookmark);
+
+  history::BlockUntilHistoryProcessesPendingRequests(history_service_);
+  DeleteContents();
+  // Bookmarked after navigation ends and its history request resolved.
+  AddBookmark(GURL{"https://github.com"});
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 2u);
+  EXPECT_FALSE(visits[0].context_annotations.is_new_bookmark);
   EXPECT_TRUE(visits[1].context_annotations.is_new_bookmark);
 }
 
@@ -291,7 +346,7 @@
 // 5) `OnOmniboxUrlCopied()` is invoked after the previous history request is
 //    resolved
 // 6) `WebContentsDestroyed()` is invoked.
-// Then: 3 visits should be committed; the 1st and 3rd should have
+// Then: 3 context annotations should be committed; the 1st and 3rd should have
 //       `omnibox_url_copied` true.
 TEST_F(HistoryClustersTabHelperTest, UrlsCopied) {
   AddToHistory(GURL{"https://github.com"}, 1);
@@ -300,29 +355,47 @@
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
   helper_->OnOmniboxUrlCopied();
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_TRUE(GetVisits().empty());
+  auto visits = GetVisits();
+  ASSERT_EQ(visits.size(), 3u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://gmail.com"});
+  EXPECT_FALSE(visits[0].context_annotations.omnibox_url_copied);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_FALSE(visits[1].context_annotations.omnibox_url_copied);
+  EXPECT_EQ(visits[2].url_row.url(), GURL{"https://github.com"});
+  EXPECT_FALSE(visits[2].context_annotations.omnibox_url_copied);
 
   helper_->OnUpdatedHistoryForNavigation(1, GURL{"https://google.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  ASSERT_EQ(GetVisits().size(), 1u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_TRUE(GetVisits()[0].context_annotations.omnibox_url_copied);
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 3u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://gmail.com"});
+  EXPECT_FALSE(visits[0].context_annotations.omnibox_url_copied);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_FALSE(visits[1].context_annotations.omnibox_url_copied);
+  EXPECT_EQ(visits[2].url_row.url(), GURL{"https://github.com"});
+  EXPECT_TRUE(visits[2].context_annotations.omnibox_url_copied);
 
   helper_->OnUpdatedHistoryForNavigation(2, GURL{"https://gmail.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
   helper_->OnOmniboxUrlCopied();
-  ASSERT_EQ(GetVisits().size(), 2u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://google.com"});
-  EXPECT_FALSE(GetVisits()[0].context_annotations.omnibox_url_copied);
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 3u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://gmail.com"});
+  EXPECT_FALSE(visits[0].context_annotations.omnibox_url_copied);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_FALSE(visits[1].context_annotations.omnibox_url_copied);
+  EXPECT_EQ(visits[2].url_row.url(), GURL{"https://github.com"});
+  EXPECT_TRUE(visits[2].context_annotations.omnibox_url_copied);
 
   DeleteContents();
-  ASSERT_EQ(GetVisits().size(), 3u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://gmail.com"});
-  EXPECT_TRUE(GetVisits()[0].context_annotations.omnibox_url_copied);
-  EXPECT_EQ(GetVisits()[1].url_row.url(), GURL{"https://google.com"});
-  EXPECT_FALSE(GetVisits()[1].context_annotations.omnibox_url_copied);
-  EXPECT_EQ(GetVisits()[2].url_row.url(), GURL{"https://github.com"});
-  EXPECT_TRUE(GetVisits()[2].context_annotations.omnibox_url_copied);
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 3u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://gmail.com"});
+  EXPECT_TRUE(visits[0].context_annotations.omnibox_url_copied);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_FALSE(visits[1].context_annotations.omnibox_url_copied);
+  EXPECT_EQ(visits[2].url_row.url(), GURL{"https://github.com"});
+  EXPECT_TRUE(visits[2].context_annotations.omnibox_url_copied);
 }
 
 // History -> expect UKM -> UKM -> destroy
@@ -331,13 +404,15 @@
 // 2) `TagNavigationAsExpectingUkmNavigationComplete()` is invoked.
 // 3) `OnUkmNavigationComplete()` is invoked.
 // 4) `WebContentsDestroyed()` is invoked.
-// Then: 1 visit should be committed after step 3 w/ a `page_end_reason`.
+// Then: 1 context annotations committed after step 3 w/ a `page_end_reason`.
 TEST_F(HistoryClustersTabHelperTest, NavigationWithUkmBeforeDestroy) {
   AddToHistory(GURL{"https://github.com"}, 1);
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
   helper_->TagNavigationAsExpectingUkmNavigationComplete(0);
-  EXPECT_TRUE(GetVisits().empty());
+  ASSERT_EQ(GetVisits().size(), 1u);
+  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason, 0);
   helper_->OnUkmNavigationComplete(0,
                                    page_load_metrics::PageEndReason::END_OTHER);
   ASSERT_EQ(GetVisits().size(), 1u);
@@ -353,7 +428,8 @@
 // 2) `TagNavigationAsExpectingUkmNavigationComplete()` is invoked.
 // 3) `WebContentsDestroyed()` is invoked.
 // 4) `OnUkmNavigationComplete()` is invoked.
-// Then: 1 visit should be committed after step 4 w/ a `page_end_reason`.
+// Then: 1 context annotation should be committed after step 4 w/ a
+//       `page_end_reason`.
 TEST_F(HistoryClustersTabHelperTest, NavigationWithUkmAfterDestroy) {
   AddToHistory(GURL{"https://github.com"}, 1);
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
@@ -362,10 +438,12 @@
 
   // Invoke `OnUkmNavigationComplete()` after `WebContentsDestroyed()` is
   // invoked, but before the `WebContents` has been destroyed.
-  EXPECT_TRUE(GetVisits().empty());
+  ASSERT_EQ(GetVisits().size(), 1u);
+  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason, 0);
   OnDestroyWebContentsObserver test_web_contents_observer(
       web_contents(), base::BindLambdaForTesting([&]() {
-        EXPECT_TRUE(GetVisits().empty());
+        EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason, 0);
         helper_->OnUkmNavigationComplete(
             0, page_load_metrics::PageEndReason::END_OTHER);
         run_loop_quit_.Run();
@@ -385,14 +463,17 @@
 // 2) `OnUpdatedHistoryForNavigation()` is invoked.
 // 3) `OnUkmNavigationComplete()` is invoked.
 // 4) `WebContentsDestroyed()` is invoked.
-// Then: 1 visit should be committed after step 3 w/ a `page_end_reason`.
+// Then: 1 context annotation should be committed after step 3 w/ a
+//       `page_end_reason`.
 TEST_F(HistoryClustersTabHelperTest,
        NavigationAfterUkmExpectAndWithUkmBeforeDestroy) {
   AddToHistory(GURL{"https://github.com"}, 1);
   helper_->TagNavigationAsExpectingUkmNavigationComplete(0);
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_TRUE(GetVisits().empty());
+  ASSERT_EQ(GetVisits().size(), 1u);
+  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason, 0);
   helper_->OnUkmNavigationComplete(0,
                                    page_load_metrics::PageEndReason::END_OTHER);
   ASSERT_EQ(GetVisits().size(), 1u);
@@ -409,7 +490,8 @@
 // 3) `OnUkmNavigationComplete()` is invoked.
 // 4) `WebContentsDestroyed()` is invoked before the previous history request is
 //    resolved.
-// Then: 1 visit should be committed after step 4 w/ a `page_end_reason`.
+// Then: 1 context annotation should be committed after step 4 w/ a
+// `page_end_reason`.
 TEST_F(HistoryClustersTabHelperTest,
        NavigationWithUkmBeforeDestroyAndHistoryResolvedAfterDestroy) {
   AddToHistory(GURL{"https://github.com"}, 1);
@@ -418,10 +500,14 @@
   AddBookmark(GURL{"https://github.com"});
   helper_->OnUkmNavigationComplete(0,
                                    page_load_metrics::PageEndReason::END_OTHER);
+  auto visits = GetVisits();
+  ASSERT_EQ(visits.size(), 1u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_FALSE(visits[0].context_annotations.is_new_bookmark);
+  EXPECT_EQ(visits[0].context_annotations.page_end_reason, 0);
 
   // Resolve the history request after `WebContentsDestroyed()` is invoked, but
   // before the `WebContents` has been destroyed.
-  EXPECT_TRUE(GetVisits().empty());
   OnDestroyWebContentsObserver test_web_contents_observer(
       web_contents(), base::BindLambdaForTesting([&]() {
         history::BlockUntilHistoryProcessesPendingRequests(history_service_);
@@ -430,10 +516,11 @@
 
   DeleteContents();
   run_loop_.Run();
-  ASSERT_EQ(GetVisits().size(), 1u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_TRUE(GetVisits()[0].context_annotations.is_new_bookmark);
-  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason,
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 1u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_TRUE(visits[0].context_annotations.is_new_bookmark);
+  EXPECT_EQ(visits[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
 }
 
@@ -445,8 +532,8 @@
 // 3) `OnUkmNavigationComplete()` is invoked for the above navigation.
 // 4) `OnUpdatedHistoryForNavigation()` is invoked.
 // 5) `WebContentsDestroyed()` is invoked.
-// Then: 2 visits should be committed after steps 3 and 5; the 1st should have a
-//       `page_end_reason`.
+// Then: 2 context annotations should be committed after steps 3 and 5; the 1st
+//.      should have a `page_end_reason`.
 TEST_F(HistoryClustersTabHelperTest,
        TwoNavigationsWith1stUkmBefore2ndNavigation) {
   AddToHistory(GURL{"https://google.com"}, 1);
@@ -455,25 +542,26 @@
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
   helper_->TagNavigationAsExpectingUkmNavigationComplete(0);
 
-  EXPECT_TRUE(GetVisits().empty());
+  auto visits = GetVisits();
+  ASSERT_EQ(visits.size(), 2u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[0].context_annotations.page_end_reason, 0);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
   helper_->OnUkmNavigationComplete(0,
                                    page_load_metrics::PageEndReason::END_OTHER);
-  ASSERT_EQ(GetVisits().size(), 1u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason,
-            page_load_metrics::PageEndReason::END_OTHER);
 
   helper_->OnUpdatedHistoryForNavigation(1, GURL{"https://google.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_EQ(GetVisits().size(), 1u);
 
   DeleteContents();
-  ASSERT_EQ(GetVisits().size(), 2u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason,
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 2u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
-  EXPECT_EQ(GetVisits()[1].url_row.url(), GURL{"https://google.com"});
-  EXPECT_EQ(GetVisits()[1].context_annotations.page_end_reason, 0);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
 }
 
 // Expect History -> Expect UKM 1 -> history -> UKM 1 -> destroy
@@ -484,8 +572,8 @@
 // 3) `OnUpdatedHistoryForNavigation()` is invoked.
 // 4) `OnUkmNavigationComplete()` is invoked for the 1st navigation.
 // 5) `WebContentsDestroyed()` is invoked.
-// Then: 2 visits should be committed after steps 4 and 5; the 1st should have a
-//       `page_end_reason`.
+// Then: 2 context annotations should be committed after steps 4 and 5; the 1st
+//.      should have a `page_end_reason`.
 TEST_F(HistoryClustersTabHelperTest,
        TwoNavigationsWith1stUkmAfter2ndNavigation) {
   AddToHistory(GURL{"https://google.com"}, 1);
@@ -495,22 +583,31 @@
   helper_->TagNavigationAsExpectingUkmNavigationComplete(0);
   helper_->OnUpdatedHistoryForNavigation(1, GURL{"https://google.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_TRUE(GetVisits().empty());
+  auto visits = GetVisits();
+  ASSERT_EQ(visits.size(), 2u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[0].context_annotations.page_end_reason, 0);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
 
   helper_->OnUkmNavigationComplete(0,
                                    page_load_metrics::PageEndReason::END_OTHER);
-  ASSERT_EQ(GetVisits().size(), 1u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason,
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 2u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
 
   DeleteContents();
-  ASSERT_EQ(GetVisits().size(), 2u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason,
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 2u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[0].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
-  EXPECT_EQ(GetVisits()[1].url_row.url(), GURL{"https://google.com"});
-  EXPECT_EQ(GetVisits()[1].context_annotations.page_end_reason, 0);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
 }
 
 // Expect History -> Expect UKM 2 -> history -> destroy -> UKM 2
@@ -521,40 +618,44 @@
 // 3) `OnUpdatedHistoryForNavigation()` is invoked.
 // 4) `WebContentsDestroyed()` is invoked.
 // 5) `OnUkmNavigationComplete()` is invoked for the 2nd navigation.
-// Then: 2 visits should be committed after steps 2 and 5; the 2nd should have a
-//       `page_end_reason`.
+// Then: 2 context annotations should be committed after steps 2 and 5; the 2nd
+//.      should have a `page_end_reason`.
 TEST_F(HistoryClustersTabHelperTest, TwoNavigations2ndUkmBefore2ndNavigation) {
   AddToHistory(GURL{"https://google.com"}, 1);
   AddToHistory(GURL{"https://github.com"}, 2);
   helper_->OnUpdatedHistoryForNavigation(0, GURL{"https://github.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
-  EXPECT_TRUE(GetVisits().empty());
+  auto visits = GetVisits();
+  ASSERT_EQ(visits.size(), 2u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[0].context_annotations.page_end_reason, 0);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_EQ(visits[1].context_annotations.page_end_reason, 0);
 
   helper_->TagNavigationAsExpectingUkmNavigationComplete(1);
-  ASSERT_EQ(GetVisits().size(), 1u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason, 0);
+  EXPECT_EQ(GetVisits().size(), 2u);
 
   helper_->OnUpdatedHistoryForNavigation(1, GURL{"https://google.com"});
   history::BlockUntilHistoryProcessesPendingRequests(history_service_);
 
   // Invoke `OnUkmNavigationComplete()` after `WebContentsDestroyed()` is
   // invoked, but before the `WebContents` has been destroyed.
-  ASSERT_EQ(GetVisits().size(), 1u);
+  EXPECT_EQ(GetVisits().size(), 2u);
   OnDestroyWebContentsObserver test_web_contents_observer(
       web_contents(), base::BindLambdaForTesting([&]() {
-        EXPECT_EQ(GetVisits().size(), 1u);
+        EXPECT_EQ(GetVisits().size(), 2u);
         helper_->OnUkmNavigationComplete(
             1, page_load_metrics::PageEndReason::END_OTHER);
         run_loop_quit_.Run();
       }));
 
   DeleteContents();
-  ASSERT_EQ(GetVisits().size(), 2u);
-  EXPECT_EQ(GetVisits()[0].url_row.url(), GURL{"https://github.com"});
-  EXPECT_EQ(GetVisits()[0].context_annotations.page_end_reason, 0);
-  EXPECT_EQ(GetVisits()[1].url_row.url(), GURL{"https://google.com"});
-  EXPECT_EQ(GetVisits()[1].context_annotations.page_end_reason,
+  visits = GetVisits();
+  ASSERT_EQ(visits.size(), 2u);
+  EXPECT_EQ(visits[0].url_row.url(), GURL{"https://github.com"});
+  EXPECT_EQ(visits[0].context_annotations.page_end_reason, 0);
+  EXPECT_EQ(visits[1].url_row.url(), GURL{"https://google.com"});
+  EXPECT_EQ(visits[1].context_annotations.page_end_reason,
             page_load_metrics::PageEndReason::END_OTHER);
 }
 
diff --git a/chrome/browser/image_editor/screenshot_flow.cc b/chrome/browser/image_editor/screenshot_flow.cc
index 810c6a2..898e09c3 100644
--- a/chrome/browser/image_editor/screenshot_flow.cc
+++ b/chrome/browser/image_editor/screenshot_flow.cc
@@ -38,7 +38,7 @@
 static constexpr SkColor kColorSelectionRect = SkColorSetRGB(0xEE, 0xEE, 0xEE);
 
 ScreenshotFlow::ScreenshotFlow(content::WebContents* web_contents)
-    : web_contents_(web_contents) {
+    : web_contents_(web_contents->GetWeakPtr()) {
   weak_this_ = weak_factory_.GetWeakPtr();
 }
 
@@ -113,8 +113,6 @@
   views::View* root_view = widget->GetRootView();
   root_view->RemovePreTargetHandler(this);
 #else
-  // TODO(skare): Fix case of web_contents_ going away.
-  // Otherwise we can crash on shutdown while the capture mode is active.
   const gfx::NativeWindow& native_window = web_contents_->GetNativeView();
   native_window->RemovePreTargetHandler(this);
   ui::Layer* content_layer = native_window->layer();
diff --git a/chrome/browser/image_editor/screenshot_flow.h b/chrome/browser/image_editor/screenshot_flow.h
index 2a9ef46..2efe165 100644
--- a/chrome/browser/image_editor/screenshot_flow.h
+++ b/chrome/browser/image_editor/screenshot_flow.h
@@ -111,7 +111,7 @@
       ScreenshotFlow::CaptureMode::NOT_CAPTURING;
 
   // Web Contents that we are capturing.
-  content::WebContents* web_contents_ = nullptr;  // unowned.
+  base::WeakPtr<content::WebContents> web_contents_;
 
   // Callback provided to Start().
   ScreenshotCaptureCallback flow_callback_;
diff --git a/chrome/browser/lacros/browser_service_lacros.cc b/chrome/browser/lacros/browser_service_lacros.cc
index 42277fb..0be2874 100644
--- a/chrome/browser/lacros/browser_service_lacros.cc
+++ b/chrome/browser/lacros/browser_service_lacros.cc
@@ -19,6 +19,8 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/browser_navigator.h"
+#include "chrome/browser/ui/browser_window.h"
 #include "chrome/common/channel_info.h"
 #include "chromeos/crosapi/mojom/crosapi.mojom.h"
 #include "chromeos/lacros/lacros_service.h"
@@ -78,6 +80,28 @@
   std::move(callback).Run();
 }
 
+void BrowserServiceLacros::NewFullscreenWindow(
+    const GURL& url,
+    NewFullscreenWindowCallback callback) {
+  // TODO(anqing): refactor the following window control logic and make it
+  // shared by both lacros and ash chrome.
+  Profile* profile = ProfileManager::GetLastUsedProfileAllowedByPolicy();
+  Browser::CreateParams params = Browser::CreateParams::CreateForApp(
+      "app_name", true, gfx::Rect(), profile, false);
+  params.initial_show_state = ui::SHOW_STATE_FULLSCREEN;
+  Browser* browser = Browser::Create(params);
+  NavigateParams nav_params(browser, url,
+                            ui::PageTransition::PAGE_TRANSITION_AUTO_TOPLEVEL);
+  Navigate(&nav_params);
+  CHECK(browser);
+  CHECK(browser->window());
+  browser->window()->Show();
+
+  // TODO(anqing): valicate current profile and window status, and return
+  // non-success result if anything is wrong.
+  std::move(callback).Run(crosapi::mojom::CreationResult::kSuccess);
+}
+
 void BrowserServiceLacros::NewTab(NewTabCallback callback) {
   // TODO(crbug.com/1102815): Find what profile should be used.
   Profile* profile = ProfileManager::GetLastUsedProfileAllowedByPolicy();
diff --git a/chrome/browser/lacros/browser_service_lacros.h b/chrome/browser/lacros/browser_service_lacros.h
index e703d08..0ff18a15 100644
--- a/chrome/browser/lacros/browser_service_lacros.h
+++ b/chrome/browser/lacros/browser_service_lacros.h
@@ -23,6 +23,8 @@
   void REMOVED_0(REMOVED_0Callback callback) override;
   void REMOVED_2(crosapi::mojom::BrowserInitParamsPtr) override;
   void NewWindow(bool incognito, NewWindowCallback callback) override;
+  void NewFullscreenWindow(const GURL& url,
+                           NewFullscreenWindowCallback callback) override;
   void NewTab(NewTabCallback callback) override;
   void RestoreTab(RestoreTabCallback callback) override;
   void GetFeedbackData(GetFeedbackDataCallback callback) override;
diff --git a/chrome/browser/media/webrtc/audio_debug_recordings_handler.cc b/chrome/browser/media/webrtc/audio_debug_recordings_handler.cc
index d0393a0..fa11bdc 100644
--- a/chrome/browser/media/webrtc/audio_debug_recordings_handler.cc
+++ b/chrome/browser/media/webrtc/audio_debug_recordings_handler.cc
@@ -40,10 +40,10 @@
 }
 
 base::FilePath GetLogDirectoryAndEnsureExists(
-    content::BrowserContext* browser_context) {
+    const base::FilePath& browser_context_path) {
   base::FilePath log_dir_path =
       webrtc_logging::TextLogList::GetWebRtcLogDirectoryForBrowserContextPath(
-          browser_context->GetPath());
+          browser_context_path);
   base::File::Error error;
   if (!base::CreateDirectoryAndGetError(log_dir_path, &error)) {
     DLOG(ERROR) << "Could not create WebRTC log directory, error: " << error;
@@ -72,7 +72,8 @@
 
   base::ThreadPool::PostTaskAndReplyWithResult(
       FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
-      base::BindOnce(&GetLogDirectoryAndEnsureExists, browser_context_),
+      base::BindOnce(&GetLogDirectoryAndEnsureExists,
+                     browser_context_->GetPath()),
       base::BindOnce(&AudioDebugRecordingsHandler::DoStartAudioDebugRecordings,
                      this, host, delay, std::move(callback),
                      std::move(error_callback)));
@@ -86,7 +87,8 @@
   const bool is_manual_stop = true;
   base::ThreadPool::PostTaskAndReplyWithResult(
       FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
-      base::BindOnce(&GetLogDirectoryAndEnsureExists, browser_context_),
+      base::BindOnce(&GetLogDirectoryAndEnsureExists,
+                     browser_context_->GetPath()),
       base::BindOnce(&AudioDebugRecordingsHandler::DoStopAudioDebugRecordings,
                      this, host, is_manual_stop,
                      current_audio_debug_recordings_id_, std::move(callback),
diff --git a/chrome/browser/media/webrtc/webrtc_getdisplaymedia_browsertest.cc b/chrome/browser/media/webrtc/webrtc_getdisplaymedia_browsertest.cc
index 84d6971..4ee0be0f 100644
--- a/chrome/browser/media/webrtc/webrtc_getdisplaymedia_browsertest.cc
+++ b/chrome/browser/media/webrtc/webrtc_getdisplaymedia_browsertest.cc
@@ -4,16 +4,25 @@
 
 #include <string>
 
+#include "base/path_service.h"
 #include "base/strings/stringprintf.h"
+#include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
+#include "chrome/browser/apps/platform_apps/app_browsertest_util.h"
 #include "chrome/browser/media/webrtc/webrtc_browsertest_base.h"
+#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
+#include "chrome/common/pref_names.h"
+#include "chrome/test/base/ui_test_utils.h"
+#include "components/prefs/pref_service.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 #include "media/base/media_switches.h"
+#include "net/base/filename_util.h"
 #include "third_party/blink/public/common/features.h"
 
 #if defined(OS_MAC)
@@ -28,6 +37,8 @@
 namespace {
 
 static const char kMainHtmlPage[] = "/webrtc/webrtc_getdisplaymedia_test.html";
+static const char kMainHtmlFileName[] = "webrtc_getdisplaymedia_test.html";
+static const char kSameOriginRenamedTitle[] = "Renamed Same Origin Tab";
 
 enum class GetDisplayMediaVariant : int {
   kStandard = 0,
@@ -48,6 +59,46 @@
   const char* display_surface;
 };
 
+constexpr char kAppWindowTitle[] = "AppWindow Display Capture Test";
+
+void RunGetDisplayMedia(content::WebContents* tab,
+                        const std::string& constraints,
+                        bool is_fake_ui,
+                        bool expect_success) {
+  std::string result;
+  EXPECT_TRUE(content::ExecuteScriptAndExtractString(
+      tab->GetMainFrame(),
+      base::StringPrintf("runGetDisplayMedia(%s, \"top-level-document\");",
+                         constraints.c_str()),
+      &result));
+
+#if defined(OS_MAC)
+  // Starting from macOS 10.15, screen capture requires system permissions
+  // that are disabled by default. The permission is reported as granted
+  // if the fake UI is used.
+  expect_success = base::mac::IsAtMostOS10_14() || is_fake_ui;
+#endif
+
+  EXPECT_EQ(result, expect_success ? "capture-success" : "capture-failure");
+}
+
+void UpdateWebContentsTitle(content::WebContents* contents,
+                            const std::u16string& title) {
+  content::NavigationEntry* entry =
+      contents->GetController().GetLastCommittedEntry();
+  ASSERT_TRUE(entry);
+  contents->UpdateTitleForEntry(entry, title);
+}
+
+GURL GetFileURL(const char* filename) {
+  base::ScopedAllowBlockingForTesting allow_blocking;
+  base::FilePath path;
+  base::PathService::Get(chrome::DIR_TEST_DATA, &path);
+  path = path.AppendASCII("webrtc").AppendASCII(filename);
+  CHECK(base::PathExists(path));
+  return net::FilePathToFileURL(path);
+}
+
 }  // namespace
 
 // Base class for top level tests for getDisplayMedia().
@@ -59,29 +110,6 @@
     DetectErrorsInJavaScript();
   }
 
-  void RunGetDisplayMedia(content::WebContents* tab,
-                          const std::string& constraints,
-                          bool is_fake_ui,
-                          bool expect_success) {
-    std::string result;
-    EXPECT_TRUE(content::ExecuteScriptAndExtractString(
-        tab->GetMainFrame(),
-        base::StringPrintf("runGetDisplayMedia(%s, \"top-level-document\");",
-                           constraints.c_str()),
-        &result));
-
-#if defined(OS_MAC)
-    // Starting from macOS 10.15, screen capture requires system permissions
-    // that are disabled by default. The permission is reported as granted
-    // if the fake UI is used.
-    EXPECT_EQ(result, base::mac::IsAtMostOS10_14() || is_fake_ui
-                          ? "capture-success"
-                          : "capture-failure");
-#else
-    EXPECT_EQ(result, expect_success ? "capture-success" : "capture-failure");
-#endif
-  }
-
   virtual bool PreferCurrentTab() const = 0;
 
   std::string GetConstraints(bool video, bool audio) const {
@@ -316,7 +344,7 @@
                     TestConfigForFakeUI{/*should_prefer_current_tab_=*/true,
                                         /*display_surface=*/"browser"}));
 
-// TODO(crbug.com/1215089): Enable this test suite on Lacros.
+// TODO(https://crbug.com/1215089): Enable this test suite on Lacros.
 #if !BUILDFLAG(IS_CHROMEOS_LACROS)
 class WebRtcScreenCapturePermissionPolicyBrowserTest
     : public WebRtcScreenCaptureBrowserTest,
@@ -378,3 +406,181 @@
                                            : "embedded-capture-failure");
 }
 #endif
+
+// Test class used to test WebRTC with App Windows. Unfortunately, due to
+// creating a diamond pattern of inheritance, we can only inherit from one of
+// the PlatformAppBrowserTest and WebRtcBrowserTestBase (or it's children).
+// We need a lot more heavy lifting on creating the AppWindow than we would get
+// from WebRtcBrowserTestBase; so we inherit from PlatformAppBrowserTest to
+// minimize the code duplication.
+class WebRtcAppWindowCaptureBrowserTestWithPicker
+    : public extensions::PlatformAppBrowserTest {
+ public:
+  WebRtcAppWindowCaptureBrowserTestWithPicker() = default;
+
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    PlatformAppBrowserTest::SetUpCommandLine(command_line);
+    command_line->AppendSwitch(
+        switches::kEnableExperimentalWebPlatformFeatures);
+    command_line->AppendSwitchASCII(
+        switches::kAutoSelectTabCaptureSourceByTitle, kAppWindowTitle);
+  }
+
+  void SetUpOnMainThread() override {
+    extensions::PlatformAppBrowserTest::SetUpOnMainThread();
+    ASSERT_TRUE(StartEmbeddedTestServer());
+
+    // We will restrict all pages to "Tab Capture" only. This should force App
+    // Windows to show up in the tabs list, and thus make it selectable.
+    base::Value matchlist(base::Value::Type::LIST);
+    matchlist.Append("*");
+    browser()->profile()->GetPrefs()->Set(prefs::kTabCaptureAllowedByOrigins,
+                                          matchlist);
+  }
+
+  void TearDownOnMainThread() override {
+    extensions::PlatformAppBrowserTest::TearDownOnMainThread();
+    browser()->profile()->GetPrefs()->Set(prefs::kTabCaptureAllowedByOrigins,
+                                          base::Value(base::Value::Type::LIST));
+  }
+
+  extensions::AppWindow* CreateAppWindowWithTitle(const std::u16string& title) {
+    extensions::AppWindow* app_window = CreateTestAppWindow("{}");
+    EXPECT_TRUE(app_window);
+    UpdateWebContentsTitle(app_window->web_contents(), title);
+
+    return app_window;
+  }
+
+  // This is mostly lifted from WebRtcBrowserTestBase, with the exception that
+  // because we know we're setting the auto-accept switches, we don't need to
+  // set the PermissionsManager auto accept.
+  content::WebContents* OpenTestPageInNewTab(const std::string& test_url) {
+    chrome::AddTabAt(browser(), GURL(url::kAboutBlankURL), -1, true);
+    GURL url = embedded_test_server()->GetURL(test_url);
+    ui_test_utils::NavigateToURL(browser(), url);
+    return browser()->tab_strip_model()->GetActiveWebContents();
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(WebRtcAppWindowCaptureBrowserTestWithPicker,
+                       CaptureAppWindow) {
+  extensions::AppWindow* app_window =
+      CreateAppWindowWithTitle(base::UTF8ToUTF16(std::string(kAppWindowTitle)));
+  content::WebContents* capturing_tab = OpenTestPageInNewTab(kMainHtmlPage);
+
+  RunGetDisplayMedia(capturing_tab, "{video: true}", /*is_fake_ui=*/false,
+                     /*expect_success=*/true);
+  CloseAppWindow(app_window);
+}
+
+// Base class for running tests with a SameOrigin policy applied.
+class WebRtcSameOriginPolicyBrowserTest
+    : public WebRtcScreenCaptureBrowserTest {
+ public:
+  ~WebRtcSameOriginPolicyBrowserTest() override = default;
+
+  bool PreferCurrentTab() const override { return false; }
+
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    WebRtcScreenCaptureBrowserTest::SetUpCommandLine(command_line);
+    command_line->AppendSwitch(
+        switches::kEnableExperimentalWebPlatformFeatures);
+    command_line->AppendSwitchASCII(
+        switches::kAutoSelectTabCaptureSourceByTitle, kSameOriginRenamedTitle);
+  }
+
+  void SetUpOnMainThread() override {
+    WebRtcScreenCaptureBrowserTest::SetUpOnMainThread();
+    ASSERT_TRUE(embedded_test_server()->Start());
+
+    // Restrict all origins to SameOrigin tab capture only.
+    base::Value matchlist(base::Value::Type::LIST);
+    matchlist.Append("*");
+    browser()->profile()->GetPrefs()->Set(
+        prefs::kSameOriginTabCaptureAllowedByOrigins, matchlist);
+  }
+
+  void TearDownOnMainThread() override {
+    WebRtcScreenCaptureBrowserTest::TearDownOnMainThread();
+    browser()->profile()->GetPrefs()->Set(
+        prefs::kSameOriginTabCaptureAllowedByOrigins,
+        base::Value(base::Value::Type::LIST));
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(WebRtcSameOriginPolicyBrowserTest,
+                       TerminateOnNavigationAwayFromSameOrigin) {
+  // Open two pages, one to be captured, and one to do the capturing. Note that
+  // we open the capturing page second so that is focused to allow the
+  // getDisplayMedia request to succeed.
+  content::WebContents* target_tab = OpenTestPageInNewTab(kMainHtmlPage);
+  content::WebContents* capturing_tab = OpenTestPageInNewTab(kMainHtmlPage);
+
+  // Update the target tab to a unique title, so that we can ensure that it is
+  // the one that gets captured via the autoselection.
+  UpdateWebContentsTitle(
+      target_tab, base::UTF8ToUTF16(std::string(kSameOriginRenamedTitle)));
+  RunGetDisplayMedia(capturing_tab,
+                     GetConstraints(/*video=*/true, /*audio=*/true),
+                     /*is_fake_ui=*/true, /*expect_success=*/true);
+
+  // Though the target tab should've been focused as a result of starting the
+  // capture, we don't want to take a dependency on that behavior. Ensure that
+  // the target tab is focused, so that we can navigate it easily. If it is
+  // already focused, this will just no-op.
+  int target_index =
+      browser()->tab_strip_model()->GetIndexOfWebContents(target_tab);
+  browser()->tab_strip_model()->ActivateTabAt(
+      target_index, {TabStripModel::GestureType::kOther});
+  ASSERT_EQ(target_tab, browser()->tab_strip_model()->GetActiveWebContents());
+
+  // We navigate to a FileURL so that the origin will change, which should
+  // trigger the capture to end.
+  ui_test_utils::NavigateToURL(browser(), GetFileURL(kMainHtmlFileName));
+
+  // Verify that the video stream has ended.
+  std::string result;
+  EXPECT_TRUE(content::ExecuteScriptAndExtractString(
+      capturing_tab->GetMainFrame(), "waitVideoEnded();", &result));
+  EXPECT_EQ(result, "ended");
+}
+
+IN_PROC_BROWSER_TEST_F(WebRtcSameOriginPolicyBrowserTest,
+                       ContinueCapturingForSameOriginNavigation) {
+  // Open two pages, one to be captured, and one to do the capturing. Note that
+  // we open the capturing page second so that is focused to allow the
+  // getDisplayMedia request to succeed.
+  content::WebContents* target_tab = OpenTestPageInNewTab(kMainHtmlPage);
+  content::WebContents* capturing_tab = OpenTestPageInNewTab(kMainHtmlPage);
+
+  // Update the target tab to a unique title, so that we can ensure that it is
+  // the one that gets captured via the autoselection.
+  UpdateWebContentsTitle(
+      target_tab, base::UTF8ToUTF16(std::string(kSameOriginRenamedTitle)));
+  RunGetDisplayMedia(capturing_tab,
+                     GetConstraints(/*video=*/true, /*audio=*/true),
+                     /*is_fake_ui=*/true, /*expect_success=*/true);
+
+  // Though the target tab should've been focused as a result of starting the
+  // capture, we don't want to take a dependency on that behavior. Ensure that
+  // the target tab is focused, so that we can navigate it easily. If it is
+  // already focused, this will just no-op.
+  int target_index =
+      browser()->tab_strip_model()->GetIndexOfWebContents(target_tab);
+  browser()->tab_strip_model()->ActivateTabAt(
+      target_index, {TabStripModel::GestureType::kOther});
+  ASSERT_EQ(target_tab, browser()->tab_strip_model()->GetActiveWebContents());
+
+  // We navigate using the test server so that the origin doesn't change.
+  ui_test_utils::NavigateToURL(
+      browser(),
+      embedded_test_server()->GetURL("/webrtc/captured_page_main.html"));
+
+  // Verify that the video hasn't been ended.
+  std::string result;
+  EXPECT_TRUE(content::ExecuteScriptAndExtractString(
+      capturing_tab->GetMainFrame(), "returnToTest(video_track.readyState);",
+      &result));
+  EXPECT_EQ(result, "live");
+}
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
index 77573496f..0ab3fb3 100644
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
@@ -736,15 +736,6 @@
     network_context_params->hsts_policy_bypass_list.push_back(string_value);
   }
 
-  // NOTE(mmenke): Keep these protocol handlers and
-  // ProfileIOData::SetUpJobFactoryDefaultsForBuilder in sync with
-  // ProfileIOData::IsHandledProtocol().
-  // TODO(mmenke): Find a better way of handling tracking supported schemes.
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  network_context_params->enable_ftp_url_support =
-      base::FeatureList::IsEnabled(network::features::kFtpProtocol);
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
   proxy_config_monitor_.AddToNetworkContextParams(network_context_params);
 
   network_context_params->enable_certificate_reporting = true;
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
index f483a6b0..e6caf4f 100644
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -65,7 +65,6 @@
 #include "services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom.h"
 #include "services/network/network_service.h"
 #include "services/network/public/cpp/cross_thread_pending_shared_url_loader_factory.h"
-#include "services/network/public/cpp/features.h"
 #include "services/network/public/cpp/network_switches.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/mojom/cert_verifier_service.mojom.h"
@@ -782,12 +781,6 @@
 
   network_context_params->http_cache_enabled = false;
 
-  // These are needed for PAC scripts that use FTP URLs.
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  network_context_params->enable_ftp_url_support =
-      base::FeatureList::IsEnabled(network::features::kFtpProtocol);
-#endif
-
   proxy_config_monitor_.AddToNetworkContextParams(network_context_params.get());
 
   return network_context_params;
diff --git a/chrome/browser/optimization_guide/prediction/prediction_manager.cc b/chrome/browser/optimization_guide/prediction/prediction_manager.cc
index dcb5906..2e11f0e3 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_manager.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_manager.cc
@@ -523,10 +523,8 @@
   proto::ModelInfo base_model_info;
   base_model_info.add_supported_model_types(proto::MODEL_TYPE_DECISION_TREE);
   if (features::IsModelDownloadingEnabled()) {
-    // TODO(crbug/1204614): Remove v2.3* when server supports 2.4.
     base_model_info.add_supported_model_types(proto::MODEL_TYPE_TFLITE_2_3_0);
     base_model_info.add_supported_model_types(proto::MODEL_TYPE_TFLITE_2_3_0_1);
-    base_model_info.add_supported_model_types(proto::MODEL_TYPE_TFLITE_2_4);
   }
 
   // For now, we will fetch for all registered optimization targets.
diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn
index 2b571b9..1898aa4 100644
--- a/chrome/browser/password_manager/android/BUILD.gn
+++ b/chrome/browser/password_manager/android/BUILD.gn
@@ -15,6 +15,7 @@
     "//components/password_manager/core/browser:password_manager_java_enums",
     "//components/sync/protocol:protocol_java",
     "//content/public/android:content_java",
+    "//third_party/android_deps:protobuf_lite_runtime_java",
     "//third_party/androidx:androidx_annotation_annotation_java",
     "//third_party/androidx:androidx_appcompat_appcompat_java",
     "//third_party/androidx:androidx_core_core_java",
@@ -27,6 +28,7 @@
     "java/src/org/chromium/chrome/browser/password_manager/ConfirmationDialogHelper.java",
     "java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java",
     "java/src/org/chromium/chrome/browser/password_manager/PasswordScriptsFetcherBridge.java",
+    "java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackend.java",
     "java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendBridgeImpl.java",
     "java/src/org/chromium/chrome/browser/password_manager/PasswordStoreBridge.java",
     "java/src/org/chromium/chrome/browser/password_manager/PasswordStoreCredential.java",
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackend.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackend.java
new file mode 100644
index 0000000..46b0601
--- /dev/null
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackend.java
@@ -0,0 +1,25 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.password_manager;
+
+import org.chromium.base.Callback;
+import org.chromium.base.task.PostTask;
+import org.chromium.base.task.TaskTraits;
+import org.chromium.components.sync.protocol.ListPasswordsResult;
+
+/**
+ * Java implementation of the backend. Uses a Google Mobile Services API to fulfill password store
+ * tasks. All methods are expected to respond asynchronously to callbacks.
+ */
+class PasswordStoreAndroidBackend {
+    PasswordStoreAndroidBackend() {}
+
+    public void getAllLogins(Callback<byte[]> loginsReply) {
+        // TODO(crbug.com/1229654): Call actual API.
+        PostTask.postTask(TaskTraits.THREAD_POOL_USER_VISIBLE, () -> {
+            loginsReply.onResult(ListPasswordsResult.getDefaultInstance().toByteArray());
+        });
+    }
+}
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendBridgeImpl.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendBridgeImpl.java
index 64d2442d..c0c8efc3 100644
--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendBridgeImpl.java
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendBridgeImpl.java
@@ -6,9 +6,6 @@
 
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.NativeMethods;
-import org.chromium.base.task.PostTask;
-import org.chromium.base.task.TaskTraits;
-import org.chromium.components.sync.protocol.ListPasswordsResult;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
@@ -28,10 +25,12 @@
     @Retention(RetentionPolicy.SOURCE)
     @interface TaskId {}
 
+    private final PasswordStoreAndroidBackend mBackend;
     private long mNativeBackendBridge;
 
     private PasswordStoreAndroidBackendBridgeImpl(long nativeBackendBridge) {
         mNativeBackendBridge = nativeBackendBridge;
+        mBackend = new PasswordStoreAndroidBackend();
     }
 
     @CalledByNative
@@ -41,11 +40,10 @@
 
     @CalledByNative
     private void getAllLogins(@TaskId int taskId) {
-        PostTask.postTask(TaskTraits.USER_VISIBLE, () -> {
+        mBackend.getAllLogins(passwords -> {
             if (mNativeBackendBridge == 0) return;
-            // TODO(crbug.com/1229654):Implement.
             PasswordStoreAndroidBackendBridgeImplJni.get().onCompleteWithLogins(
-                    mNativeBackendBridge, taskId, ListPasswordsResult.getDefaultInstance());
+                    mNativeBackendBridge, taskId, passwords);
         });
     }
 
@@ -57,6 +55,6 @@
     @NativeMethods
     interface Natives {
         void onCompleteWithLogins(long nativePasswordStoreAndroidBackendBridgeImpl,
-                @TaskId int taskId, ListPasswordsResult passwords);
+                @TaskId int taskId, byte[] passwords);
     }
 }
diff --git a/chrome/browser/password_manager/android/password_store_android_backend_bridge_impl.cc b/chrome/browser/password_manager/android/password_store_android_backend_bridge_impl.cc
index cecdf75..4a538dd 100644
--- a/chrome/browser/password_manager/android/password_store_android_backend_bridge_impl.cc
+++ b/chrome/browser/password_manager/android/password_store_android_backend_bridge_impl.cc
@@ -5,13 +5,32 @@
 #include "chrome/browser/password_manager/android/password_store_android_backend_bridge_impl.h"
 
 #include <jni.h>
+#include <cstdint>
 
 #include "base/android/jni_android.h"
+#include "base/android/jni_array.h"
 #include "chrome/browser/password_manager/android/jni_headers/PasswordStoreAndroidBackendBridgeImpl_jni.h"
 #include "components/password_manager/core/browser/password_form.h"
+#include "components/password_manager/core/browser/sync/password_proto_utils.h"
+#include "components/sync/protocol/list_passwords_result.pb.h"
 
 using TaskId = PasswordStoreAndroidBackendBridgeImpl::TaskId;
 
+namespace {
+
+std::vector<password_manager::PasswordForm> CreateFormsVector(
+    const base::android::JavaRef<jbyteArray>& passwords) {
+  std::vector<uint8_t> serializedResult;
+  base::android::JavaByteArrayToByteVector(base::android::AttachCurrentThread(),
+                                           passwords, &serializedResult);
+  sync_pb::ListPasswordsResult list_passwords_result;
+  list_passwords_result.ParseFromArray(serializedResult.data(),
+                                       serializedResult.size());
+  return password_manager::PasswordVectorFromListResult(list_passwords_result);
+}
+
+}  // namespace
+
 namespace password_manager {
 
 std::unique_ptr<PasswordStoreAndroidBackendBridge>
@@ -38,10 +57,10 @@
 void PasswordStoreAndroidBackendBridgeImpl::OnCompleteWithLogins(
     JNIEnv* env,
     jint task_id,
-    const base::android::JavaParamRef<jobject>& passwords) {
+    const base::android::JavaParamRef<jbyteArray>& passwords) {
   DCHECK(consumer_);
-  // TODO(crbug.com/1229650): Convert passwords to forms.
-  consumer_->OnCompleteWithLogins(TaskId(task_id), {});
+  consumer_->OnCompleteWithLogins(TaskId(task_id),
+                                  CreateFormsVector(passwords));
 }
 
 TaskId PasswordStoreAndroidBackendBridgeImpl::GetAllLogins() {
diff --git a/chrome/browser/password_manager/android/password_store_android_backend_bridge_impl.h b/chrome/browser/password_manager/android/password_store_android_backend_bridge_impl.h
index 91bbe678..d7c7762b 100644
--- a/chrome/browser/password_manager/android/password_store_android_backend_bridge_impl.h
+++ b/chrome/browser/password_manager/android/password_store_android_backend_bridge_impl.h
@@ -33,7 +33,7 @@
   void OnCompleteWithLogins(
       JNIEnv* env,
       jint task_id,
-      const base::android::JavaParamRef<jobject>& passwords);
+      const base::android::JavaParamRef<jbyteArray>& passwords);
 
  private:
   // Implements PasswordStoreAndroidBackendBridge interface.
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
index 677206f..569a278 100644
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -176,6 +176,7 @@
 #include "chrome/browser/app_mode/app_mode_utils.h"
 #include "chrome/browser/ash/app_mode/app_launch_utils.h"
 #include "chrome/browser/ash/arc/session/arc_service_launcher.h"
+#include "chrome/browser/ash/crosapi/browser_util.h"
 #include "chrome/browser/ash/login/session/user_session_manager.h"
 #include "chrome/browser/ash/policy/active_directory/active_directory_policy_manager.h"
 #include "chrome/browser/ash/policy/core/user_cloud_policy_manager_ash.h"
@@ -664,6 +665,17 @@
                         std::move(pref_validation_delegate), GetIOTaskRunner(),
                         key_.get(), path_, async_prefs);
   key_->SetPrefs(prefs_.get());
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+  // When Chrome crash or gets restarted for other reasons, it loads the policy
+  // immediately. We need to cache the LacrosLaunchSwitch now, as the value is
+  // needed later, while the profile is not fully initialized.
+  if (force_immediate_policy_load &&
+      chromeos::ProfileHelper::IsPrimaryProfile(this)) {
+    auto& map = profile_policy_connector_->policy_service()->GetPolicies(
+        policy::PolicyNamespace(policy::POLICY_DOMAIN_CHROME, std::string()));
+    crosapi::browser_util::CacheLacrosLaunchSwitch(map);
+  }
+#endif
 }
 
 void ProfileImpl::DoFinalInit(CreateMode create_mode) {
@@ -1114,6 +1126,12 @@
     // or we are in tests. In both cases the first loaded locale is correct.
     OnLocaleReady(create_mode);
   } else {
+    if (chromeos::ProfileHelper::IsPrimaryProfile(this)) {
+      auto& map = profile_policy_connector_->policy_service()->GetPolicies(
+          policy::PolicyNamespace(policy::POLICY_DOMAIN_CHROME, std::string()));
+      crosapi::browser_util::CacheLacrosLaunchSwitch(map);
+    }
+
     ash::UserSessionManager::GetInstance()->RespectLocalePreferenceWrapper(
         this, base::BindOnce(&ProfileImpl::OnLocaleReady,
                              base::Unretained(this), create_mode));
diff --git a/chrome/browser/push_messaging/push_messaging_browsertest.cc b/chrome/browser/push_messaging/push_messaging_browsertest.cc
index d6236bf..d00beb2 100644
--- a/chrome/browser/push_messaging/push_messaging_browsertest.cc
+++ b/chrome/browser/push_messaging/push_messaging_browsertest.cc
@@ -170,6 +170,9 @@
 
   ~PushMessagingBrowserTest() override = default;
 
+  PushMessagingBrowserTest(const PushMessagingBrowserTest&) = delete;
+  PushMessagingBrowserTest& operator=(const PushMessagingBrowserTest&) = delete;
+
   // InProcessBrowserTest:
   void SetUp() override {
     https_server_ = std::make_unique<net::EmbeddedTestServer>(
@@ -393,8 +396,6 @@
  private:
   std::unique_ptr<net::EmbeddedTestServer> https_server_;
   PushMessagingServiceImpl* push_service_;
-
-  DISALLOW_COPY_AND_ASSIGN(PushMessagingBrowserTest);
 };
 
 void PushMessagingBrowserTest::RequestAndAcceptPermission() {
@@ -1490,7 +1491,7 @@
   // Set the site engagement score for the site. Setting it to 10 means it
   // should have a budget of 4, enough for two non-shown notification, which
   // cost 2 each.
-  SetSiteEngagementScore(web_contents->GetURL(), 10.0);
+  SetSiteEngagementScore(web_contents->GetLastCommittedURL(), 10.0);
 
   // If the site is visible in an active tab, we should not force a notification
   // to be shown. Try it twice, since we allow one mistake per 10 push events.
@@ -1593,7 +1594,7 @@
   content::WebContents* web_contents =
       GetBrowser()->tab_strip_model()->GetActiveWebContents();
 
-  SetSiteEngagementScore(web_contents->GetURL(), 5.0);
+  SetSiteEngagementScore(web_contents->GetLastCommittedURL(), 5.0);
 
   ui_test_utils::NavigateToURLWithDisposition(
       GetBrowser(), GURL("about:blank"),
@@ -1826,7 +1827,7 @@
       GetBrowser()->tab_strip_model()->GetActiveWebContents();
 
   // Initialize site engagement score to have no budget for silent pushes.
-  SetSiteEngagementScore(web_contents->GetURL(), 0);
+  SetSiteEngagementScore(web_contents->GetLastCommittedURL(), 0);
 
   ui_test_utils::NavigateToURLWithDisposition(
       GetBrowser(), GURL("about:blank"),
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
index 132e161..cf6bd0e2 100644
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -147,7 +147,7 @@
     "reset_page/reset_browser_proxy.ts",
     "route.js",
     "router.js",
-    "safety_check_page/safety_check_browser_proxy.js",
+    "safety_check_page/safety_check_browser_proxy.ts",
     "search_engines_page/search_engines_browser_proxy.ts",
     "search_settings.js",
     "setting_id_param_util.ts",
@@ -260,6 +260,7 @@
     "privacy_page/secure_dns_input.js",
     "privacy_page/security_page.js",
     "privacy_page/disable_safebrowsing_dialog.js",
+    "privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.js",
     "privacy_page/privacy_review/privacy_review_description_item.js",
     "privacy_page/privacy_review/privacy_review_msbb_fragment.js",
     "privacy_page/privacy_review/privacy_review_page.js",
@@ -273,12 +274,12 @@
     "reset_page/reset_page.ts",
     "reset_page/reset_profile_dialog.ts",
     "reset_page/reset_profile_banner.ts",
-    "safety_check_page/safety_check_child.js",
-    "safety_check_page/safety_check_extensions_child.js",
-    "safety_check_page/safety_check_page.js",
-    "safety_check_page/safety_check_passwords_child.js",
-    "safety_check_page/safety_check_safe_browsing_child.js",
-    "safety_check_page/safety_check_updates_child.js",
+    "safety_check_page/safety_check_child.ts",
+    "safety_check_page/safety_check_extensions_child.ts",
+    "safety_check_page/safety_check_page.ts",
+    "safety_check_page/safety_check_passwords_child.ts",
+    "safety_check_page/safety_check_safe_browsing_child.ts",
+    "safety_check_page/safety_check_updates_child.ts",
     "search_engines_page/omnibox_extension_entry.ts",
     "search_engines_page/search_engine_dialog.ts",
     "search_engines_page/search_engine_entry_css.ts",
@@ -328,7 +329,7 @@
       "chrome_cleanup_page/items_to_remove_list.js",
       "incompatible_applications_page/incompatible_applications_page.js",
       "incompatible_applications_page/incompatible_application_item.js",
-      "safety_check_page/safety_check_chrome_cleaner_child.js",
+      "safety_check_page/safety_check_chrome_cleaner_child.ts",
     ]
   }
 
@@ -383,7 +384,6 @@
     "privacy_page:closure_compile",
     "privacy_page/privacy_review:closure_compile",
     "privacy_sandbox:closure_compile",
-    "safety_check_page:closure_compile",
     "settings_main:closure_compile",
     "settings_menu:closure_compile",
     "settings_page:closure_compile",
@@ -445,7 +445,6 @@
     "people_page:sync_browser_proxy",
     "privacy_page:privacy_page",
     "privacy_page:privacy_page_browser_proxy",
-    "safety_check_page:safety_check_browser_proxy",
     "settings_ui:settings_ui",
   ]
   extra_deps = [ ":build_ts" ]
@@ -742,6 +741,7 @@
     "privacy_page/personalization_options.js",
     "privacy_page/privacy_page_browser_proxy.js",
     "privacy_page/privacy_page.js",
+    "privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.js",
     "privacy_page/privacy_review/privacy_review_description_item.js",
     "privacy_page/privacy_review/privacy_review_msbb_fragment.js",
     "privacy_page/privacy_review/privacy_review_page.js",
@@ -763,13 +763,13 @@
     "reset_page/reset_profile_dialog.ts",
     "route.js",
     "router.js",
-    "safety_check_page/safety_check_browser_proxy.js",
-    "safety_check_page/safety_check_child.js",
-    "safety_check_page/safety_check_extensions_child.js",
-    "safety_check_page/safety_check_page.js",
-    "safety_check_page/safety_check_passwords_child.js",
-    "safety_check_page/safety_check_safe_browsing_child.js",
-    "safety_check_page/safety_check_updates_child.js",
+    "safety_check_page/safety_check_browser_proxy.ts",
+    "safety_check_page/safety_check_child.ts",
+    "safety_check_page/safety_check_extensions_child.ts",
+    "safety_check_page/safety_check_page.ts",
+    "safety_check_page/safety_check_passwords_child.ts",
+    "safety_check_page/safety_check_safe_browsing_child.ts",
+    "safety_check_page/safety_check_updates_child.ts",
     "search_engines_page/omnibox_extension_entry.ts",
     "search_engines_page/search_engine_dialog.ts",
     "search_engines_page/search_engine_entry_css.ts",
@@ -834,7 +834,7 @@
       "incompatible_applications_page/incompatible_application_item.js",
       "incompatible_applications_page/incompatible_applications_browser_proxy.js",
       "incompatible_applications_page/incompatible_applications_page.js",
-      "safety_check_page/safety_check_chrome_cleaner_child.js",
+      "safety_check_page/safety_check_chrome_cleaner_child.ts",
     ]
   }
 
diff --git a/chrome/browser/resources/settings/basic_page/BUILD.gn b/chrome/browser/resources/settings/basic_page/BUILD.gn
index 5d6159f7..ebdbaad 100644
--- a/chrome/browser/resources/settings/basic_page/BUILD.gn
+++ b/chrome/browser/resources/settings/basic_page/BUILD.gn
@@ -21,7 +21,6 @@
     "../chrome_cleanup_page:chrome_cleanup_proxy",
     "../prefs:prefs_behavior",
     "../privacy_page:privacy_page",
-    "../safety_check_page:safety_check_page",
     "../settings_page:main_page_mixin",
     "//ui/webui/resources/js:load_time_data.m",
   ]
diff --git a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
index edb97be..c6f5df4 100644
--- a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
+++ b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
@@ -403,6 +403,7 @@
    * @private
    */
   onIdle_(idleReason) {
+    const lastAction = this.ongoingAction_;
     this.ongoingAction_ = ChromeCleanupOngoingAction.NONE;
     this.scannerResults_ = this.emptyChromeCleanerScannerResults_;
 
@@ -428,10 +429,10 @@
         break;
 
       case ChromeCleanupIdleReason.CONNECTION_LOST:
-        if (this.ongoingAction_ === ChromeCleanupOngoingAction.SCANNING) {
+        if (lastAction === ChromeCleanupOngoingAction.SCANNING) {
           this.renderCleanupCard_(ChromeCleanerCardState.SCANNING_FAILED);
         } else {
-          assert(this.ongoingAction_ === ChromeCleanupOngoingAction.CLEANING);
+          assert(lastAction === ChromeCleanupOngoingAction.CLEANING);
           this.renderCleanupCard_(ChromeCleanerCardState.CLEANING_FAILED);
         }
         break;
diff --git a/chrome/browser/resources/settings/chromeos/BUILD.gn b/chrome/browser/resources/settings/chromeos/BUILD.gn
index 31d79b5..05e8b14 100644
--- a/chrome/browser/resources/settings/chromeos/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/BUILD.gn
@@ -250,7 +250,6 @@
     "controls/settings_boolean_control_behavior.js",
     "languages_page/languages.js",
     "languages_page/languages_browser_proxy.js",
-    "page_visibility.js",
     "people_page/account_manager_browser_proxy.js",
     "people_page/profile_info_browser_proxy.js",
     "chromeos/ambient_mode_page/ambient_mode_browser_proxy.js",
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.js b/chrome/browser/resources/settings/chromeos/os_settings.js
index 9700806c..52e4f86 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings.js
+++ b/chrome/browser/resources/settings/chromeos/os_settings.js
@@ -92,7 +92,6 @@
 import './parental_controls_page/parental_controls_page.m.js';
 
 export {LifetimeBrowserProxyImpl} from '../lifetime_browser_proxy.js';
-export {pageVisibility} from '../page_visibility.js';
 export {AccountManagerBrowserProxy, AccountManagerBrowserProxyImpl} from '../people_page/account_manager_browser_proxy.js';
 export {ProfileInfoBrowserProxy, ProfileInfoBrowserProxyImpl} from '../people_page/profile_info_browser_proxy.js';
 export {PageStatus, StatusAction, StoredAccount, SyncBrowserProxy, SyncBrowserProxyImpl, SyncStatus} from '../people_page/sync_browser_proxy.js';
@@ -135,6 +134,7 @@
 export {AppManagementStore} from './os_apps_page/app_management_page/store.m.js';
 export {convertOptionalBoolToBool, createEmptyState, createInitialState, createPermission, getPermissionValueBool} from './os_apps_page/app_management_page/util.m.js';
 export {setAppNotificationProviderForTesting} from './os_apps_page/app_notifications_page/mojo_interface_provider.js';
+export {osPageVisibility} from './os_page_visibility.m.js';
 export {FingerprintBrowserProxyImpl, FingerprintResultType} from './os_people_page/fingerprint_browser_proxy.m.js';
 export {OsSyncBrowserProxyImpl} from './os_people_page/os_sync_browser_proxy.m.js';
 export {FingerprintLocation, FingerprintSetupStep} from './os_people_page/setup_fingerprint_dialog.m.js';
diff --git a/chrome/browser/resources/settings/icons.html b/chrome/browser/resources/settings/icons.html
index 33c8fd7..c8a57f9d 100644
--- a/chrome/browser/resources/settings/icons.html
+++ b/chrome/browser/resources/settings/icons.html
@@ -9,6 +9,7 @@
       <g id="credit-card"><path d="M16.4,4 L3.6,4 C2.716,4 2.008,4.7271875 2.008,5.625 L2,15.375 C2,16.2728125 2.716,17 3.6,17 L16.4,17 C17.284,17 18,16.2728125 18,15.375 L18,5.625 C18,4.7271875 17.284,4 16.4,4 Z M16.5,15 L3.5,15 L3.5,10 L16.5,10 L16.5,15 Z M16.5,7 L3.5,7 L3.5,5.5 L16.5,5.5 L16.5,7 Z"></path></g>
       <g id="data"><path d="M0 0h20v20H0z" fill="none" fill-rule="evenodd"></path><path d="M6.5 7v9H4V7h2.5zm5-3v12H9V4h2.5zm5 7v5H14v-5h2.5z"></path></g>
       <g id="data-connectors-system"><path d="M10 4.16667C10.0833 4.16667 10.2333 4.18333 10.3667 4.30833L13.025 6.96667L15.675 9.60833C15.8083 9.74167 15.825 9.9 15.825 10.0167V10.0417C15.825 10.125 15.8 10.2 15.7667 10.2667C15.7583 10.2833 15.75 10.3 15.7417 10.3083C15.725 10.3333 15.7 10.3667 15.675 10.3917L10.4 15.65L10.3583 15.6917C10.2333 15.8167 10.0833 15.8333 10 15.8333C9.91667 15.8333 9.75 15.8167 9.61667 15.675L4.325 10.3833C4.18333 10.2583 4.16667 10.1 4.16667 9.99167C4.16667 9.90833 4.18333 9.75 4.31667 9.60833L6.44167 7.48333L9.60833 4.325C9.75 4.18333 9.91667 4.16667 10 4.16667ZM10 2.5C9.43333 2.5 8.86667 2.71667 8.44167 3.14167L5.275 6.3L3.15 8.425C2.70833 8.85833 2.5 9.43333 2.5 10C2.5 10.5667 2.70833 11.1417 3.14167 11.575L5.26667 13.7L8.43333 16.8583C8.86667 17.2833 9.43333 17.5 10 17.5C10.5667 17.5 11.1333 17.2833 11.5583 16.8583L16.8583 11.575C16.9667 11.4667 17.0583 11.35 17.1417 11.2333C17.1833 11.175 17.2167 11.1083 17.25 11.05C17.4167 10.7333 17.5 10.375 17.5 10.025C17.5 10.0167 17.5 10.0167 17.5 10.0083C17.5083 9.44167 17.2917 8.86667 16.8583 8.43333L11.5583 3.15C11.1333 2.71667 10.5667 2.5 10 2.5Z"></path><path d="M10 11.6667L8.33333 10L10 8.33333L11.6667 10L10 11.6667Z"></path><path d="M10.5917 7.25833C10.9167 6.93333 10.9167 6.40833 10.5917 6.08333C10.2667 5.75833 9.74167 5.75833 9.41667 6.08333C9.09167 6.40833 9.09167 6.93333 9.41667 7.25833C9.73333 7.58333 10.2667 7.58333 10.5917 7.25833Z"></path><path d="M7.25833 10.5917C7.58333 10.2667 7.58333 9.74167 7.25833 9.41667C6.93333 9.09167 6.40833 9.09167 6.08333 9.41667C5.75833 9.74167 5.75833 10.2667 6.08333 10.5917C6.4 10.9167 6.93333 10.9167 7.25833 10.5917Z"></path><path d="M10.5917 13.925C10.9167 13.6 10.9167 13.075 10.5917 12.75C10.2667 12.425 9.74167 12.425 9.41667 12.75C9.09167 13.075 9.09167 13.6 9.41667 13.925C9.73333 14.25 10.2667 14.25 10.5917 13.925Z"></path><path d="M13.925 10.5917C14.25 10.2667 14.25 9.74167 13.925 9.41667C13.6 9.09167 13.075 9.09167 12.75 9.41667C12.425 9.74167 12.425 10.2667 12.75 10.5917C13.0667 10.9167 13.6 10.9167 13.925 10.5917Z"></g>
+      <g id="delete-forever"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4999 3.33333V2.5H7.49992V3.33333H3.33325V5H4.16659V15.8333C4.16659 16.75 4.91659 17.5 5.83325 17.5H14.1666C15.0833 17.5 15.8333 16.75 15.8333 15.8333V5H16.6666V3.33333H12.4999ZM14.1666 5V15.8333H5.83325V5H14.1666ZM9.99992 11.5917L7.84158 13.75L6.66658 12.575L8.82492 10.4167L6.66658 8.25833L7.84158 7.08333L9.99992 9.24167L12.1583 7.08333L13.3333 8.25833L11.1749 10.4167L13.3333 12.575L12.1583 13.75L9.99992 11.5917Z"></path></g>
       <g id="experiment"><path d="M17.2667 14.7583L12.5 8.18332V4.23332H14.1667V2.56665H5.83332V4.23332H7.49998V8.17498L2.61665 14.9166C2.24998 15.425 2.19998 16.0917 2.48332 16.65C2.76665 17.2083 3.34165 17.5583 3.96665 17.5583H16.05C16.9667 17.5583 17.7167 16.8083 17.7167 15.8917C17.7167 15.4583 17.5416 15.0583 17.2667 14.7583Z" fill="#5F6368"></path></g>
       <g id="flash-on"><path d="M5.83337 1.66666V10.8333H8.33337V18.3333L14.1667 8.33332H10.8334L13.3334 1.66666H5.83337Z"></path></g>
       <g id="googleg"><path d="M16.58 8H9v2.75h4.47c-.24 1.2-1.42 3.27-4.47 3.27-2.72 0-4.93-2.25-4.93-5.02S6.28 3.98 9 3.98c1.54 0 2.57.66 3.17 1.22l2.19-2.12C12.97 1.79 11.16 1 9 1 4.58 1 1 4.58 1 9s3.58 8 8 8c4.62 0 7.68-3.25 7.68-7.82 0-.46-.04-.83-.1-1.18z"></path></g>
diff --git a/chrome/browser/resources/settings/lazy_load.ts b/chrome/browser/resources/settings/lazy_load.ts
index a17f911..1982942 100644
--- a/chrome/browser/resources/settings/lazy_load.ts
+++ b/chrome/browser/resources/settings/lazy_load.ts
@@ -84,6 +84,7 @@
 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';
+export {PrivacyReviewClearOnExitFragmentElement} from './privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.js';
 export {PrivacyReviewDescriptionItemElement} from './privacy_page/privacy_review/privacy_review_description_item.js';
 export {PrivacyReviewMsbbFragmentElement} from './privacy_page/privacy_review/privacy_review_msbb_fragment.js';
 export {SettingsPrivacyReviewPageElement} from './privacy_page/privacy_review/privacy_review_page.js';
diff --git a/chrome/browser/resources/settings/privacy_page/BUILD.gn b/chrome/browser/resources/settings/privacy_page/BUILD.gn
index 2828aa3..6e7c4648 100644
--- a/chrome/browser/resources/settings/privacy_page/BUILD.gn
+++ b/chrome/browser/resources/settings/privacy_page/BUILD.gn
@@ -50,6 +50,7 @@
 
 js_library("collapse_radio_button") {
   deps = [
+    "//third_party/polymer/v3_0/components-chromium/iron-collapse:iron-collapse",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/cr_elements/cr_radio_button:cr_radio_button_behavior.m",
     "//ui/webui/resources/cr_elements/policy:cr_policy_indicator_behavior.m",
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/BUILD.gn b/chrome/browser/resources/settings/privacy_page/privacy_review/BUILD.gn
index ce8f71e..2f2c29b 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/BUILD.gn
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/BUILD.gn
@@ -10,12 +10,21 @@
   is_polymer3 = true
   closure_flags = settings_closure_flags
   deps = [
+    ":privacy_review_clear_on_exit_fragment",
     ":privacy_review_description_item",
     ":privacy_review_msbb_fragment",
     ":privacy_review_page",
   ]
 }
 
+js_library("privacy_review_clear_on_exit_fragment") {
+  deps = [
+    ":privacy_review_description_item",
+    "../../controls:settings_toggle_button",
+    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+  ]
+}
+
 js_library("privacy_review_description_item") {
   deps = [
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
@@ -32,6 +41,7 @@
 
 js_library("privacy_review_page") {
   deps = [
+    ":privacy_review_clear_on_exit_fragment",
     ":privacy_review_msbb_fragment",
     "../..:route",
     "../..:router",
@@ -42,6 +52,7 @@
 
 html_to_js("web_components") {
   js_files = [
+    "privacy_review_clear_on_exit_fragment.js",
     "privacy_review_description_item.js",
     "privacy_review_msbb_fragment.js",
     "privacy_review_page.js",
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.html
new file mode 100644
index 0000000..0fee380
--- /dev/null
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.html
@@ -0,0 +1,27 @@
+<style include="privacy-review-shared">
+  settings-toggle-button {
+    padding-bottom: 8px;
+    padding-top: 8px;
+  }
+</style>
+<div class="fragment-wrapper">
+  <div class="embedded-setting-wrapper">
+    <settings-toggle-button id="clearOnExit"
+        pref="{{prefs.generated.cookie_session_only}}"
+        label="$i18n{cookiePageClearOnExit}">
+    </settings-toggle-button>
+  </div>
+  <div class="description-wrapper">
+    <div class=description-header>
+      $i18n{privacyReviewFeatureDescriptionHeader}
+    </div>
+    <privacy-review-description-item
+        icon="settings20:delete-forever"
+        label="$i18n{privacyReviewClearOnExitFeatureDescription1}">
+    </privacy-review-description-item>
+    <privacy-review-description-item
+        icon="settings20:lightbulb"
+        label="$i18n{privacyReviewClearOnExitFeatureDescription2}">
+    </privacy-review-description-item>
+  </div>
+</div>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.js b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.js
new file mode 100644
index 0000000..71634cd
--- /dev/null
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.js
@@ -0,0 +1,43 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * 'privacy-review-clear-on-exit' is the fragment in a privacy review card
+ * that contains the 'clear cookies on exit' setting and its description.
+ */
+import '../../controls/settings_toggle_button.js';
+import '../../prefs/prefs.js';
+import './privacy_review_description_item.js';
+import './privacy_review_shared_css.js';
+
+import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+
+/** @polymer */
+export class PrivacyReviewClearOnExitFragmentElement extends PolymerElement {
+  static get is() {
+    return 'privacy-review-clear-on-exit-fragment';
+  }
+
+  static get template() {
+    return html`{__html_template__}`;
+  }
+
+  static get properties() {
+    return {
+      /**
+       * Preferences state.
+       */
+      prefs: {
+        type: Object,
+        notify: true,
+      },
+    };
+  }
+}
+
+customElements.define(
+    PrivacyReviewClearOnExitFragmentElement.is,
+    PrivacyReviewClearOnExitFragmentElement);
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.html
index 28191fb..126f2b0 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.html
@@ -11,7 +11,7 @@
         label="$i18n{urlKeyedAnonymizedDataCollection}">
     </settings-toggle-button>
   </div>
-  <div class="two-column-description">
+  <div class="description-wrapper two-column">
     <div class="description-column description-column-first">
       <div class=description-header>
         $i18n{privacyReviewFeatureDescriptionHeader}
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.js b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.js
index fc1d4c0..c4fa6c0 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.js
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.js
@@ -9,11 +9,11 @@
  */
 import '../../controls/settings_toggle_button.js';
 import '../../prefs/prefs.js';
+import './privacy_review_description_item.js';
 import './privacy_review_shared_css.js';
 
 import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
-import {PrivacyReviewDescriptionItemElement} from './privacy_review_description_item.js';
 
 /** @polymer */
 export class PrivacyReviewMsbbFragmentElement extends PolymerElement {
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.html
index 327e800..f81560ef 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.html
@@ -33,14 +33,18 @@
     <div>$i18n{privacyReviewCompletionCardHeader}</div>
   </div>
   <template is="dom-if" if="[[showMsbbFragment_(privacyReviewStep_)]]">
-    <privacy-review-msbb-fragment id="msbbFragment"
-        class="fragment"
+    <privacy-review-msbb-fragment id="msbbFragment" class="fragment"
         prefs="{{prefs}}">
     </privacy-review-msbb-fragment>
   </template>
+  <template is="dom-if" if="[[showClearOnExitFragment_(privacyReviewStep_)]]">
+    <privacy-review-clear-on-exit-fragment id="clearOnExitFragment"
+        class="fragment" prefs="{{prefs}}">
+    </privacy-review-clear-on-exit-fragment>
+  </template>
   <div id="footer" class$="[[computeFooterClass_(privacyReviewStep_)]]">
-    <cr-button class="cr-button" id="nextButton" role="button"
-        tabindex="0" on-click="onNextButtonClick_">
+    <cr-button class="cr-button" id="nextButton" role="button" tabindex="0"
+        on-click="onNextButtonClick_">
       [[computeNextButtonLabel_(privacyReviewStep_)]]
     </cr-button>
   </div>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.js b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.js
index 8a95e2d5..d0f7ad4 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.js
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_page.js
@@ -11,6 +11,8 @@
 import 'chrome://resources/cr_elements/shared_style_css.m.js';
 import '../../prefs/prefs.js';
 import '../../settings_shared_css.js';
+import './privacy_review_clear_on_exit_fragment.js';
+import './privacy_review_msbb_fragment.js';
 
 import {assert, assertNotReached} from 'chrome://resources/js/assert.m.js';
 import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
@@ -19,7 +21,6 @@
 import {routes} from '../../route.js';
 import {Route, RouteObserverMixin, RouteObserverMixinInterface, Router} from '../../router.js';
 
-import {PrivacyReviewMsbbFragmentElement} from './privacy_review_msbb_fragment.js';
 /**
  * Steps in the privacy review flow. The page updates from those steps to show
  * the corresponding page content.
@@ -28,6 +29,7 @@
 const PrivacyReviewStep = {
   WELCOME: 'welcome',
   MSBB: 'msbb',
+  CLEAR_ON_EXIT: 'clearOnExit',
   COMPLETION: 'completion',
 };
 
@@ -125,6 +127,9 @@
         // privacy review row.
         break;
       case PrivacyReviewStep.MSBB:
+        this.navigateToCard_(PrivacyReviewStep.CLEAR_ON_EXIT);
+        break;
+      case PrivacyReviewStep.CLEAR_ON_EXIT:
         this.navigateToCard_(PrivacyReviewStep.COMPLETION);
         break;
       default:
@@ -134,28 +139,30 @@
 
   /**
    * @private
-   * @return string
+   * @return {string|undefined}
    */
   computeHeaderString_() {
     switch (this.privacyReviewStep_) {
       case PrivacyReviewStep.MSBB:
         return this.i18n('privacyReviewMsbbCardHeader');
+      case PrivacyReviewStep.CLEAR_ON_EXIT:
+        return this.i18n('privacyReviewClearOnExitCardHeader');
       default:
-        return null;
+        return undefined;
     }
   }
 
   /**
    * @private
-   * @return boolean
+   * @return {boolean}
    */
   showHeader_() {
-    return this.computeHeaderString_() != null;
+    return !!this.computeHeaderString_();
   }
 
   /**
    * @private
-   * @return string
+   * @return {string}
    */
   computeNextButtonLabel_() {
     switch (this.privacyReviewStep_) {
@@ -163,24 +170,23 @@
         return this.i18n('privacyReviewWelcomeCardStartButton');
       case PrivacyReviewStep.COMPLETION:
         return this.i18n('privacyReviewCompletionCardLeaveButton');
-      case PrivacyReviewStep.MSBB:
-        return this.i18n('privacyReviewNextButton');
       default:
-        return '';
+        return this.i18n('privacyReviewNextButton');
     }
   }
 
   /**
    * @private
-   * @return string
+   * @return {string|undefined}
    */
   computeFooterClass_() {
-    return this.privacyReviewStep_ === PrivacyReviewStep.WELCOME ? null : 'hr';
+    return this.privacyReviewStep_ === PrivacyReviewStep.WELCOME ? undefined :
+                                                                   'hr';
   }
 
   /**
    * @private
-   * @return boolean
+   * @return {boolean}
    */
   showWelcomeFragment_() {
     return this.privacyReviewStep_ === PrivacyReviewStep.WELCOME;
@@ -188,7 +194,7 @@
 
   /**
    * @private
-   * @return boolean
+   * @return {boolean}
    */
   showCompletionFragment_() {
     return this.privacyReviewStep_ === PrivacyReviewStep.COMPLETION;
@@ -196,11 +202,19 @@
 
   /**
    * @private
-   * @return boolean
+   * @return {boolean}
    */
   showMsbbFragment_() {
     return this.privacyReviewStep_ === PrivacyReviewStep.MSBB;
   }
+
+  /**
+   * @private
+   * @return {boolean}
+   */
+  showClearOnExitFragment_() {
+    return this.privacyReviewStep_ === PrivacyReviewStep.CLEAR_ON_EXIT;
+  }
 }
 
 customElements.define(
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_shared_css.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_shared_css.html
index eb5d9f1..17a7a75 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_shared_css.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_shared_css.html
@@ -13,6 +13,10 @@
       text-transform: uppercase;
     }
 
+    .description-wrapper {
+      padding: 16px;
+    }
+
     .embedded-setting-wrapper {
       border: 1px solid var(--google-grey-refresh-300);
       border-radius: 4px;
@@ -28,9 +32,8 @@
       padding: 12px;
     }
 
-    .two-column-description {
+    .two-column {
       display: flex;
-      padding: 16px;
     }
   </style>
 </template>
diff --git a/chrome/browser/resources/settings/safety_check_page/BUILD.gn b/chrome/browser/resources/settings/safety_check_page/BUILD.gn
index 0c16e584..8e1839d 100644
--- a/chrome/browser/resources/settings/safety_check_page/BUILD.gn
+++ b/chrome/browser/resources/settings/safety_check_page/BUILD.gn
@@ -2,138 +2,19 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//third_party/closure_compiler/compile_js.gni")
 import("//tools/polymer/html_to_js.gni")
-import("../settings.gni")
-
-js_type_check("closure_compile") {
-  is_polymer3 = true
-  closure_flags = settings_closure_flags
-  deps = [
-    ":safety_check_browser_proxy",
-    ":safety_check_child",
-    ":safety_check_extensions_child",
-    ":safety_check_page",
-    ":safety_check_passwords_child",
-    ":safety_check_safe_browsing_child",
-    ":safety_check_updates_child",
-  ]
-
-  if (is_win) {
-    deps += [ ":safety_check_chrome_cleaner_child" ]
-  }
-}
-
-js_library("safety_check_browser_proxy") {
-  deps = [ "//ui/webui/resources/js:cr.m" ]
-}
-
-js_library("safety_check_child") {
-  deps = [
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/cr_elements/cr_icon_button:cr_icon_button.m",
-    "//ui/webui/resources/js:assert.m",
-    "//ui/webui/resources/js:i18n_behavior.m",
-  ]
-}
-
-js_library("safety_check_chrome_cleaner_child") {
-  deps = [
-    ":safety_check_child",
-    "..:metrics_browser_proxy",
-    "..:route",
-    "..:router",
-    "../chrome_cleanup_page:chrome_cleanup_proxy",
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/js:assert.m",
-    "//ui/webui/resources/js:load_time_data.m",
-    "//ui/webui/resources/js:web_ui_listener_behavior.m",
-  ]
-}
-
-js_library("safety_check_extensions_child") {
-  deps = [
-    ":safety_check_child",
-    "..:metrics_browser_proxy",
-    "..:open_window_proxy",
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/js:assert.m",
-    "//ui/webui/resources/js:web_ui_listener_behavior.m",
-  ]
-}
-
-js_library("safety_check_page") {
-  deps = [
-    ":safety_check_browser_proxy",
-
-    # This element is included on all platforms to ensure it's type checked (the element itself
-    # only exists in Windows).
-    ":safety_check_chrome_cleaner_child",
-    ":safety_check_extensions_child",
-    ":safety_check_passwords_child",
-    ":safety_check_safe_browsing_child",
-    ":safety_check_updates_child",
-    "..:hats_browser_proxy",
-    "..:metrics_browser_proxy",
-    "..:route",
-    "../autofill_page:password_manager_proxy",
-    "//third_party/polymer/v3_0/components-chromium/iron-a11y-announcer:iron-a11y-announcer",
-    "//third_party/polymer/v3_0/components-chromium/iron-collapse:iron-collapse",
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/js:assert.m",
-    "//ui/webui/resources/js:i18n_behavior.m",
-    "//ui/webui/resources/js:web_ui_listener_behavior.m",
-  ]
-}
-
-js_library("safety_check_passwords_child") {
-  deps = [
-    ":safety_check_child",
-    "..:metrics_browser_proxy",
-    "..:route",
-    "..:router",
-    "../autofill_page:password_manager_proxy",
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/js:assert.m",
-    "//ui/webui/resources/js:web_ui_listener_behavior.m",
-  ]
-}
-
-js_library("safety_check_safe_browsing_child") {
-  deps = [
-    ":safety_check_child",
-    "..:metrics_browser_proxy",
-    "..:route",
-    "..:router",
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/js:assert.m",
-    "//ui/webui/resources/js:i18n_behavior.m",
-    "//ui/webui/resources/js:web_ui_listener_behavior.m",
-  ]
-}
-
-js_library("safety_check_updates_child") {
-  deps = [
-    ":safety_check_child",
-    "..:lifetime_browser_proxy",
-    "..:metrics_browser_proxy",
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-    "//ui/webui/resources/js:assert.m",
-    "//ui/webui/resources/js:web_ui_listener_behavior.m",
-  ]
-}
 
 html_to_js("web_components") {
   js_files = [
-    "safety_check_child.js",
-    "safety_check_extensions_child.js",
-    "safety_check_page.js",
-    "safety_check_passwords_child.js",
-    "safety_check_safe_browsing_child.js",
-    "safety_check_updates_child.js",
+    "safety_check_child.ts",
+    "safety_check_extensions_child.ts",
+    "safety_check_page.ts",
+    "safety_check_passwords_child.ts",
+    "safety_check_safe_browsing_child.ts",
+    "safety_check_updates_child.ts",
   ]
 
   if (is_win) {
-    js_files += [ "safety_check_chrome_cleaner_child.js" ]
+    js_files += [ "safety_check_chrome_cleaner_child.ts" ]
   }
 }
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_browser_proxy.js b/chrome/browser/resources/settings/safety_check_page/safety_check_browser_proxy.js
deleted file mode 100644
index 2d65d8d8..0000000
--- a/chrome/browser/resources/settings/safety_check_page/safety_check_browser_proxy.js
+++ /dev/null
@@ -1,157 +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.
-
-// clang-format off
-import {addSingletonGetter,sendWithPromise} from 'chrome://resources/js/cr.m.js';
-// clang-format on
-
-/**
- * @fileoverview A helper object used by the "SafetyCheck" to interact with
- * the browser.
- */
-/**
- * Constants used in safety check C++ to JS communication.
- * Their values need be kept in sync with their counterparts in
- * chrome/browser/ui/webui/settings/safety_check_handler.h and
- * chrome/browser/ui/webui/settings/safety_check_handler.cc
- * @enum {string}
- */
-export const SafetyCheckCallbackConstants = {
-  PARENT_CHANGED: 'safety-check-parent-status-changed',
-  UPDATES_CHANGED: 'safety-check-updates-status-changed',
-  PASSWORDS_CHANGED: 'safety-check-passwords-status-changed',
-  SAFE_BROWSING_CHANGED: 'safety-check-safe-browsing-status-changed',
-  EXTENSIONS_CHANGED: 'safety-check-extensions-status-changed',
-  CHROME_CLEANER_CHANGED: 'safety-check-chrome-cleaner-status-changed',
-};
-
-/**
- * States of the safety check parent element.
- * Needs to be kept in sync with ParentStatus in
- * chrome/browser/ui/webui/settings/safety_check_handler.h
- * @enum {number}
- */
-export const SafetyCheckParentStatus = {
-  BEFORE: 0,
-  CHECKING: 1,
-  AFTER: 2,
-};
-
-/**
- * States of the safety check updates element.
- * Needs to be kept in sync with UpdatesStatus in
- * chrome/browser/ui/webui/settings/safety_check_handler.h
- * @enum {number}
- */
-export const SafetyCheckUpdatesStatus = {
-  CHECKING: 0,
-  UPDATED: 1,
-  UPDATING: 2,
-  RELAUNCH: 3,
-  DISABLED_BY_ADMIN: 4,
-  FAILED_OFFLINE: 5,
-  FAILED: 6,
-  UNKNOWN: 7,
-};
-
-/**
- * States of the safety check passwords element.
- * Needs to be kept in sync with PasswordsStatus in
- * chrome/browser/ui/webui/settings/safety_check_handler.h
- * @enum {number}
- */
-export const SafetyCheckPasswordsStatus = {
-  CHECKING: 0,
-  SAFE: 1,
-  COMPROMISED: 2,
-  OFFLINE: 3,
-  NO_PASSWORDS: 4,
-  SIGNED_OUT: 5,
-  QUOTA_LIMIT: 6,
-  ERROR: 7,
-  FEATURE_UNAVAILABLE: 8,
-  WEAK_PASSWORDS_EXIST: 9,
-};
-
-/**
- * States of the safety check safe browsing element.
- * Needs to be kept in sync with SafeBrowsingStatus in
- * chrome/browser/ui/webui/settings/safety_check_handler.h
- * @enum {number}
- */
-export const SafetyCheckSafeBrowsingStatus = {
-  CHECKING: 0,
-  // Enabled is deprecated; kept not to break old UMA metrics (enums.xml).
-  ENABLED: 1,
-  DISABLED: 2,
-  DISABLED_BY_ADMIN: 3,
-  DISABLED_BY_EXTENSION: 4,
-  ENABLED_STANDARD: 5,
-  ENABLED_ENHANCED: 6,
-  ENABLED_STANDARD_AVAILABLE_ENHANCED: 7,
-};
-
-/**
- * States of the safety check extensions element.
- * Needs to be kept in sync with ExtensionsStatus in
- * chrome/browser/ui/webui/settings/safety_check_handler.h
- * @enum {number}
- */
-export const SafetyCheckExtensionsStatus = {
-  CHECKING: 0,
-  ERROR: 1,
-  NO_BLOCKLISTED_EXTENSIONS: 2,
-  BLOCKLISTED_ALL_DISABLED: 3,
-  BLOCKLISTED_REENABLED_ALL_BY_USER: 4,
-  BLOCKLISTED_REENABLED_SOME_BY_USER: 5,
-  BLOCKLISTED_REENABLED_ALL_BY_ADMIN: 6,
-};
-
-/**
- * States of the safety check Chrome cleaner element.
- * Needs to be kept in sync with ChromeCleanerStatus in
- * chrome/browser/ui/webui/settings/safety_check_handler.h
- * @enum {number}
- */
-export const SafetyCheckChromeCleanerStatus = {
-  HIDDEN: 0,
-  CHECKING: 1,
-  INFECTED: 2,
-  REBOOT_REQUIRED: 3,
-  SCANNING_FOR_UWS: 4,
-  REMOVING_UWS: 5,
-  DISABLED_BY_ADMIN: 6,
-  ERROR: 7,
-  NO_UWS_FOUND_WITH_TIMESTAMP: 8,
-  NO_UWS_FOUND_WITHOUT_TIMESTAMP: 9,
-};
-
-/** @interface */
-export class SafetyCheckBrowserProxy {
-  /** Run the safety check. */
-  runSafetyCheck() {}
-
-  /**
-   * Get the display string for the safety check parent, showing how long ago
-   * safety check last ran. Also triggers string updates to be sent to all SC
-   * children that have timestamp-based display strings.
-   * @return {!Promise<string>}
-   */
-  getParentRanDisplayString() {}
-}
-
-/** @implements {SafetyCheckBrowserProxy} */
-export class SafetyCheckBrowserProxyImpl {
-  /** @override */
-  runSafetyCheck() {
-    chrome.send('performSafetyCheck');
-  }
-
-  /** @override */
-  getParentRanDisplayString() {
-    return sendWithPromise('getSafetyCheckRanDisplayString');
-  }
-}
-
-addSingletonGetter(SafetyCheckBrowserProxyImpl);
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_browser_proxy.ts b/chrome/browser/resources/settings/safety_check_page/safety_check_browser_proxy.ts
new file mode 100644
index 0000000..df1c747
--- /dev/null
+++ b/chrome/browser/resources/settings/safety_check_page/safety_check_browser_proxy.ts
@@ -0,0 +1,153 @@
+// 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.
+
+// clang-format off
+import {sendWithPromise} from 'chrome://resources/js/cr.m.js';
+// clang-format on
+
+/**
+ * @fileoverview A helper object used by the "SafetyCheck" to interact with
+ * the browser.
+ */
+/**
+ * Constants used in safety check C++ to JS communication.
+ * Their values need be kept in sync with their counterparts in
+ * chrome/browser/ui/webui/settings/safety_check_handler.h and
+ * chrome/browser/ui/webui/settings/safety_check_handler.cc
+ */
+export enum SafetyCheckCallbackConstants {
+  PARENT_CHANGED = 'safety-check-parent-status-changed',
+  UPDATES_CHANGED = 'safety-check-updates-status-changed',
+  PASSWORDS_CHANGED = 'safety-check-passwords-status-changed',
+  SAFE_BROWSING_CHANGED = 'safety-check-safe-browsing-status-changed',
+  EXTENSIONS_CHANGED = 'safety-check-extensions-status-changed',
+  CHROME_CLEANER_CHANGED = 'safety-check-chrome-cleaner-status-changed',
+}
+
+/**
+ * States of the safety check parent element.
+ * Needs to be kept in sync with ParentStatus in
+ * chrome/browser/ui/webui/settings/safety_check_handler.h
+ */
+export enum SafetyCheckParentStatus {
+  BEFORE = 0,
+  CHECKING = 1,
+  AFTER = 2,
+}
+
+/**
+ * States of the safety check updates element.
+ * Needs to be kept in sync with UpdatesStatus in
+ * chrome/browser/ui/webui/settings/safety_check_handler.h
+ */
+export enum SafetyCheckUpdatesStatus {
+  CHECKING = 0,
+  UPDATED = 1,
+  UPDATING = 2,
+  RELAUNCH = 3,
+  DISABLED_BY_ADMIN = 4,
+  FAILED_OFFLINE = 5,
+  FAILED = 6,
+  UNKNOWN = 7,
+}
+
+/**
+ * States of the safety check passwords element.
+ * Needs to be kept in sync with PasswordsStatus in
+ * chrome/browser/ui/webui/settings/safety_check_handler.h
+ */
+export enum SafetyCheckPasswordsStatus {
+  CHECKING = 0,
+  SAFE = 1,
+  COMPROMISED = 2,
+  OFFLINE = 3,
+  NO_PASSWORDS = 4,
+  SIGNED_OUT = 5,
+  QUOTA_LIMIT = 6,
+  ERROR = 7,
+  FEATURE_UNAVAILABLE = 8,
+  WEAK_PASSWORDS_EXIST = 9,
+}
+
+/**
+ * States of the safety check safe browsing element.
+ * Needs to be kept in sync with SafeBrowsingStatus in
+ * chrome/browser/ui/webui/settings/safety_check_handler.h
+ */
+export enum SafetyCheckSafeBrowsingStatus {
+  CHECKING = 0,
+  // Enabled is deprecated; kept not to break old UMA metrics (enums.xml).
+  ENABLED = 1,
+  DISABLED = 2,
+  DISABLED_BY_ADMIN = 3,
+  DISABLED_BY_EXTENSION = 4,
+  ENABLED_STANDARD = 5,
+  ENABLED_ENHANCED = 6,
+  ENABLED_STANDARD_AVAILABLE_ENHANCED = 7,
+}
+
+/**
+ * States of the safety check extensions element.
+ * Needs to be kept in sync with ExtensionsStatus in
+ * chrome/browser/ui/webui/settings/safety_check_handler.h
+ */
+export enum SafetyCheckExtensionsStatus {
+  CHECKING = 0,
+  ERROR = 1,
+  NO_BLOCKLISTED_EXTENSIONS = 2,
+  BLOCKLISTED_ALL_DISABLED = 3,
+  BLOCKLISTED_REENABLED_ALL_BY_USER = 4,
+  BLOCKLISTED_REENABLED_SOME_BY_USER = 5,
+  BLOCKLISTED_REENABLED_ALL_BY_ADMIN = 6,
+}
+
+/**
+ * States of the safety check Chrome cleaner element.
+ * Needs to be kept in sync with ChromeCleanerStatus in
+ * chrome/browser/ui/webui/settings/safety_check_handler.h
+ */
+export enum SafetyCheckChromeCleanerStatus {
+  HIDDEN = 0,
+  CHECKING = 1,
+  INFECTED = 2,
+  REBOOT_REQUIRED = 3,
+  SCANNING_FOR_UWS = 4,
+  REMOVING_UWS = 5,
+  DISABLED_BY_ADMIN = 6,
+  ERROR = 7,
+  NO_UWS_FOUND_WITH_TIMESTAMP = 8,
+  NO_UWS_FOUND_WITHOUT_TIMESTAMP = 9,
+}
+
+export interface SafetyCheckBrowserProxy {
+  /** Run the safety check. */
+  runSafetyCheck(): void;
+
+  /**
+   * Get the display string for the safety check parent, showing how long ago
+   * safety check last ran. Also triggers string updates to be sent to all SC
+   * children that have timestamp-based display strings.
+   */
+  getParentRanDisplayString(): Promise<string>;
+}
+
+export class SafetyCheckBrowserProxyImpl implements SafetyCheckBrowserProxy {
+  runSafetyCheck() {
+    chrome.send('performSafetyCheck');
+  }
+
+  getParentRanDisplayString() {
+    return sendWithPromise('getSafetyCheckRanDisplayString');
+  }
+
+  static getInstance(): SafetyCheckBrowserProxy {
+    return instance || (instance = new SafetyCheckBrowserProxyImpl());
+  }
+
+  static setInstance(obj: SafetyCheckBrowserProxy) {
+    instance = obj;
+  }
+}
+
+let instance: SafetyCheckBrowserProxy|null = null;
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_child.js b/chrome/browser/resources/settings/safety_check_page/safety_check_child.ts
similarity index 73%
rename from chrome/browser/resources/settings/safety_check_page/safety_check_child.js
rename to chrome/browser/resources/settings/safety_check_page/safety_check_child.ts
index 28932e7..e96416b8 100644
--- a/chrome/browser/resources/settings/safety_check_page/safety_check_child.js
+++ b/chrome/browser/resources/settings/safety_check_page/safety_check_child.ts
@@ -17,30 +17,23 @@
 import '../settings_shared_css.js';
 
 import {assertNotReached} from 'chrome://resources/js/assert.m.js';
-import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
+import {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
 import {html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 /**
  * UI states a safety check child can be in. Defines the basic UI of the child.
- * @enum {number}
  */
-export const SafetyCheckIconStatus = {
-  RUNNING: 0,
-  SAFE: 1,
-  INFO: 2,
-  WARNING: 3,
-};
+export enum SafetyCheckIconStatus {
+  RUNNING = 0,
+  SAFE = 1,
+  INFO = 2,
+  WARNING = 3,
+}
 
-
-/**
- * @constructor
- * @extends {PolymerElement}
- * @implements {I18nBehaviorInterface}
- */
 const SettingsSafetyCheckChildElementBase =
-    mixinBehaviors([I18nBehavior], PolymerElement);
+    mixinBehaviors([I18nBehavior], PolymerElement) as
+    {new (): PolymerElement & I18nBehavior};
 
-/** @polymer */
 export class SettingsSafetyCheckChildElement extends
     SettingsSafetyCheckChildElementBase {
   static get is() {
@@ -55,7 +48,6 @@
     return {
       /**
        * Status of the left hand icon.
-       * @type {!SafetyCheckIconStatus}
        */
       iconStatus: {
         type: Number,
@@ -98,18 +90,22 @@
 
       // Right hand managed icon. |null| removes it from the DOM.
       managedIcon: String,
-
     };
   }
 
+  iconStatus: SafetyCheckIconStatus;
+  label: string;
+  subLabel: string;
+  buttonLabel: string;
+  buttonAriaLabel: string;
+  buttonClass: string;
+  rowClickable: boolean;
+  external: boolean;
+  private rowClickableIcon_: string;
+  managedIcon: string;
 
-
-  /**
-   * Returns the left hand icon for an icon status.
-   * @private
-   * @return {?string}
-   */
-  getStatusIcon_() {
+  /** @return The left hand icon for an icon status. */
+  private getStatusIcon_(): string|null {
     switch (this.iconStatus) {
       case SafetyCheckIconStatus.RUNNING:
         return null;
@@ -121,27 +117,20 @@
         return 'cr:warning';
       default:
         assertNotReached();
+        return null;
     }
   }
 
-  /**
-   * Returns the left hand icon src for an icon status.
-   * @private
-   * @return {?string}
-   */
-  getStatusIconSrc_() {
+  /** @return The left hand icon src for an icon status. */
+  private getStatusIconSrc_(): string|null {
     if (this.iconStatus === SafetyCheckIconStatus.RUNNING) {
       return 'chrome://resources/images/throbber_small.svg';
     }
     return null;
   }
 
-  /**
-   * Returns the left hand icon class for an icon status.
-   * @private
-   * @return {string}
-   */
-  getStatusIconClass_() {
+  /** @return The left hand icon class for an icon status. */
+  private getStatusIconClass_(): string {
     switch (this.iconStatus) {
       case SafetyCheckIconStatus.RUNNING:
       case SafetyCheckIconStatus.SAFE:
@@ -153,12 +142,8 @@
     }
   }
 
-  /**
-   * Returns the left hand icon aria label for an icon status.
-   * @private
-   * @return {string}
-   */
-  getStatusIconAriaLabel_() {
+  /** @return The left hand icon aria label for an icon status. */
+  private getStatusIconAriaLabel_(): string {
     switch (this.iconStatus) {
       case SafetyCheckIconStatus.RUNNING:
         return this.i18n('safetyCheckIconRunningAriaLabel');
@@ -170,55 +155,38 @@
         return this.i18n('safetyCheckIconWarningAriaLabel');
       default:
         assertNotReached();
+        return '';
     }
   }
 
-  /**
-   * If the right-hand side button should be shown.
-   * @private
-   * @return {boolean}
-   */
-  showButton_() {
+  /** @return Whether right-hand side button should be shown. */
+  private showButton_(): boolean {
     return !!this.buttonLabel;
   }
 
-  /** @private */
-  onButtonClick_() {
+  private onButtonClick_() {
     this.dispatchEvent(
         new CustomEvent('button-click', {bubbles: true, composed: true}));
   }
 
-  /**
-   * If the right-hand side managed icon should be shown.
-   * @private
-   * @return {boolean}
-   */
-  showManagedIcon_() {
+  /** @return Whether the right-hand side managed icon should be shown. */
+  private showManagedIcon_(): boolean {
     return !!this.managedIcon;
   }
 
-  /**
-   * Return the icon to show when the row is clickable.
-   * @return {string}
-   * @private
-   */
-  computeRowClickableIcon_() {
+  /** @return The icon to show when the row is clickable. */
+  private computeRowClickableIcon_(): string {
     return this.external ? 'cr:open-in-new' : 'cr:arrow-right';
   }
 
-  /**
-   * Return the subpage role description if the arrow right icon is used.
-   * @return {string}
-   * @private
-   */
-  getRoleDescription_() {
+  /** @return The subpage role description if the arrow right icon is used. */
+  private getRoleDescription_(): string {
     return this.rowClickableIcon_ === 'cr:arrow-right' ?
         this.i18n('subpageArrowRoleDescription') :
         '';
   }
 
-  /** @private */
-  onRowClickableChanged_() {
+  private onRowClickableChanged_() {
     // For cr-actionable-row-style.
     this.toggleAttribute('effectively-disabled_', !this.rowClickable);
   }
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_chrome_cleaner_child.js b/chrome/browser/resources/settings/safety_check_page/safety_check_chrome_cleaner_child.ts
similarity index 75%
rename from chrome/browser/resources/settings/safety_check_page/safety_check_chrome_cleaner_child.js
rename to chrome/browser/resources/settings/safety_check_page/safety_check_chrome_cleaner_child.ts
index 8b525c9..f6a961f 100644
--- a/chrome/browser/resources/settings/safety_check_page/safety_check_chrome_cleaner_child.js
+++ b/chrome/browser/resources/settings/safety_check_page/safety_check_chrome_cleaner_child.ts
@@ -3,14 +3,13 @@
 // found in the LICENSE file.
 
 /**
- * @fileoverview
  * 'settings-safety-passwords-child' is the settings page containing the
  * safety check child showing the password status.
  */
 import {assertNotReached} from 'chrome://resources/js/assert.m.js';
-import {I18nBehavior, I18nBehaviorInterface} from 'chrome://resources/js/i18n_behavior.m.js';
+import {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
-import {WebUIListenerBehavior, WebUIListenerBehaviorInterface} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
+import {WebUIListenerBehavior} 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 {ChromeCleanupProxy, ChromeCleanupProxyImpl} from '../chrome_cleanup_page/chrome_cleanup_proxy.js';
@@ -21,25 +20,15 @@
 import {SafetyCheckCallbackConstants, SafetyCheckChromeCleanerStatus} from './safety_check_browser_proxy.js';
 import {SafetyCheckIconStatus} from './safety_check_child.js';
 
-/**
- * @typedef {{
- *   newState: SafetyCheckChromeCleanerStatus,
- *   displayString: string,
- * }}
- */
-let ChromeCleanerChangedEvent;
+type ChromeCleanerChangedEvent = {
+  newState: SafetyCheckChromeCleanerStatus,
+  displayString: string,
+};
 
-
-/**
- * @constructor
- * @extends {PolymerElement}
- * @implements {I18nBehaviorInterface}
- * @implements {WebUIListenerBehaviorInterface}
- */
 const SettingsSafetyCheckChromeCleanerChildElementBase =
-    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement);
+    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement) as
+    {new (): PolymerElement & I18nBehavior & WebUIListenerBehavior};
 
-/** @polymer */
 export class SettingsSafetyCheckChromeCleanerChildElement extends
     SettingsSafetyCheckChromeCleanerChildElementBase {
   static get is() {
@@ -54,7 +43,6 @@
     return {
       /**
        * Current state of the safety check Chrome cleaner child.
-       * @private {!SafetyCheckChromeCleanerStatus}
        */
       status_: {
         type: Number,
@@ -63,14 +51,11 @@
 
       /**
        * UI string to display for this child, received from the backend.
-       * @private
        */
       displayString_: String,
 
       /**
        * A set of statuses that the entire row is clickable.
-       * @type {!Set<!SafetyCheckChromeCleanerStatus>}
-       * @private
        */
       rowClickableStatuses: {
         readOnly: true,
@@ -83,21 +68,17 @@
           SafetyCheckChromeCleanerStatus.NO_UWS_FOUND_WITHOUT_TIMESTAMP,
         ]),
       },
-
     };
   }
 
-  constructor() {
-    super();
+  private status_: SafetyCheckChromeCleanerStatus;
+  private displayString_: string;
+  private rowClickableStatuses: Set<SafetyCheckChromeCleanerStatus>;
+  private metricsBrowserProxy_: MetricsBrowserProxy =
+      MetricsBrowserProxyImpl.getInstance();
+  private chromeCleanupBrowserProxy_: ChromeCleanupProxy =
+      ChromeCleanupProxyImpl.getInstance();
 
-    /** @private {!ChromeCleanupProxy} */
-    this.chromeCleanupBrowserProxy_ = ChromeCleanupProxyImpl.getInstance();
-
-    /** @private {!MetricsBrowserProxy} */
-    this.metricsBrowserProxy_ = MetricsBrowserProxyImpl.getInstance();
-  }
-
-  /** @override */
   connectedCallback() {
     super.connectedCallback();
 
@@ -107,31 +88,18 @@
         this.onSafetyCheckChromeCleanerChanged_.bind(this));
   }
 
-  /**
-   * @param {!ChromeCleanerChangedEvent} event
-   * @private
-   */
-  onSafetyCheckChromeCleanerChanged_(event) {
+  private onSafetyCheckChromeCleanerChanged_(event: ChromeCleanerChangedEvent) {
     this.status_ = event.newState;
     this.displayString_ = event.displayString;
   }
 
-
-  /**
-   * @return {boolean}
-   * @private
-   */
-  showChild_() {
+  private showChild_(): boolean {
     return this.status_ !== SafetyCheckChromeCleanerStatus.HIDDEN &&
         loadTimeData.valueExists('safetyCheckChromeCleanerChildEnabled') &&
         loadTimeData.getBoolean('safetyCheckChromeCleanerChildEnabled');
   }
 
-  /**
-   * @return {SafetyCheckIconStatus}
-   * @private
-   */
-  getIconStatus_() {
+  private getIconStatus_(): SafetyCheckIconStatus {
     switch (this.status_) {
       case SafetyCheckChromeCleanerStatus.HIDDEN:
       case SafetyCheckChromeCleanerStatus.CHECKING:
@@ -149,14 +117,11 @@
         return SafetyCheckIconStatus.WARNING;
       default:
         assertNotReached();
+        return SafetyCheckIconStatus.WARNING;
     }
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getButtonLabel_() {
+  private getButtonLabel_(): string|null {
     switch (this.status_) {
       case SafetyCheckChromeCleanerStatus.INFECTED:
         return this.i18n('safetyCheckReview');
@@ -167,11 +132,7 @@
     }
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getButtonAriaLabel_() {
+  private getButtonAriaLabel_(): string|null {
     switch (this.status_) {
       case SafetyCheckChromeCleanerStatus.INFECTED:
         return this.i18n('safetyCheckChromeCleanerButtonAriaLabel');
@@ -182,11 +143,7 @@
     }
   }
 
-  /**
-   * @private
-   * @return {string}
-   */
-  getButtonClass_() {
+  private getButtonClass_(): string {
     switch (this.status_) {
       case SafetyCheckChromeCleanerStatus.INFECTED:
       case SafetyCheckChromeCleanerStatus.REBOOT_REQUIRED:
@@ -196,20 +153,15 @@
     }
   }
 
-  /**
-   * @param {!SafetyCheckInteractions} safetyCheckInteraction
-   * @param {!string} userAction
-   * @private
-   */
-  logUserInteraction_(safetyCheckInteraction, userAction) {
+  private logUserInteraction_(
+      safetyCheckInteraction: SafetyCheckInteractions, userAction: string) {
     // Log user interaction both in user action and histogram.
     this.metricsBrowserProxy_.recordSafetyCheckInteractionHistogram(
         safetyCheckInteraction);
     this.metricsBrowserProxy_.recordAction(userAction);
   }
 
-  /** @private */
-  onButtonClick_() {
+  private onButtonClick_() {
     switch (this.status_) {
       case SafetyCheckChromeCleanerStatus.INFECTED:
         this.logUserInteraction_(
@@ -230,11 +182,7 @@
     }
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getManagedIcon_() {
+  private getManagedIcon_(): string|null {
     switch (this.status_) {
       case SafetyCheckChromeCleanerStatus.DISABLED_BY_ADMIN:
         return 'cr20:domain';
@@ -243,16 +191,11 @@
     }
   }
 
-  /**
-   * @private
-   * @return {?boolean}
-   */
-  isRowClickable_() {
+  private isRowClickable_(): boolean {
     return this.rowClickableStatuses.has(this.status_);
   }
 
-  /** @private */
-  onRowClick_() {
+  private onRowClick_() {
     if (this.isRowClickable_()) {
       this.logUserInteraction_(
           SafetyCheckInteractions.CHROME_CLEANER_CARET_NAVIGATION,
@@ -261,11 +204,10 @@
     }
   }
 
-  /** @private */
-  navigateToFoilPage_() {
+  private navigateToFoilPage_() {
     Router.getInstance().navigateTo(
         routes.CHROME_CLEANUP,
-        /* dynamicParams= */ null, /* removeSearch= */ true);
+        /* dynamicParams= */ undefined, /* removeSearch= */ true);
   }
 }
 
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_extensions_child.js b/chrome/browser/resources/settings/safety_check_page/safety_check_extensions_child.ts
similarity index 76%
rename from chrome/browser/resources/settings/safety_check_page/safety_check_extensions_child.js
rename to chrome/browser/resources/settings/safety_check_page/safety_check_extensions_child.ts
index 0d209f0b..f0f407f2 100644
--- a/chrome/browser/resources/settings/safety_check_page/safety_check_extensions_child.js
+++ b/chrome/browser/resources/settings/safety_check_page/safety_check_extensions_child.ts
@@ -8,8 +8,8 @@
  * safety check child showing the extension status.
  */
 import {assertNotReached} from 'chrome://resources/js/assert.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 {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
+import {WebUIListenerBehavior} 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 {MetricsBrowserProxy, MetricsBrowserProxyImpl, SafetyCheckInteractions} from '../metrics_browser_proxy.js';
@@ -18,25 +18,15 @@
 import {SafetyCheckCallbackConstants, SafetyCheckExtensionsStatus} from './safety_check_browser_proxy.js';
 import {SafetyCheckIconStatus} from './safety_check_child.js';
 
-/**
- * @typedef {{
- *   newState: SafetyCheckExtensionsStatus,
- *   displayString: string,
- * }}
- */
-let ExtensionssChangedEvent;
+type ExtensionsChangedEvent = {
+  newState: SafetyCheckExtensionsStatus,
+  displayString: string,
+};
 
-
-/**
- * @constructor
- * @extends {PolymerElement}
- * @implements {I18nBehaviorInterface}
- * @implements {WebUIListenerBehaviorInterface}
- */
 const SettingsSafetyCheckExtensionsChildElementBase =
-    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement);
+    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement) as
+    {new (): PolymerElement & I18nBehavior & WebUIListenerBehavior};
 
-/** @polymer */
 export class SettingsSafetyCheckExtensionsChildElement extends
     SettingsSafetyCheckExtensionsChildElementBase {
   static get is() {
@@ -51,7 +41,6 @@
     return {
       /**
        * Current state of the safety check extensions child.
-       * @private {!SafetyCheckExtensionsStatus}
        */
       status_: {
         type: Number,
@@ -60,14 +49,11 @@
 
       /**
        * UI string to display for this child, received from the backend.
-       * @private
        */
       displayString_: String,
 
       /**
        * A set of statuses that the entire row is clickable.
-       * @type {!Set<!SafetyCheckExtensionsStatus>}
-       * @private
        */
       rowClickableStatuses: {
         readOnly: true,
@@ -79,18 +65,15 @@
           SafetyCheckExtensionsStatus.BLOCKLISTED_REENABLED_ALL_BY_ADMIN,
         ]),
       },
-
     };
   }
 
-  constructor() {
-    super();
+  private status_: SafetyCheckExtensionsStatus;
+  private displayString_: string;
+  private rowClickableStatuses: Set<SafetyCheckExtensionsStatus>;
+  private metricsBrowserProxy_: MetricsBrowserProxy =
+      MetricsBrowserProxyImpl.getInstance();
 
-    /** @private {!MetricsBrowserProxy} */
-    this.metricsBrowserProxy_ = MetricsBrowserProxyImpl.getInstance();
-  }
-
-  /** @override */
   connectedCallback() {
     super.connectedCallback();
 
@@ -100,20 +83,12 @@
         this.onSafetyCheckExtensionsChanged_.bind(this));
   }
 
-  /**
-   * @param {!ExtensionssChangedEvent} event
-   * @private
-   */
-  onSafetyCheckExtensionsChanged_(event) {
+  private onSafetyCheckExtensionsChanged_(event: ExtensionsChangedEvent) {
     this.status_ = event.newState;
     this.displayString_ = event.displayString;
   }
 
-  /**
-   * @return {SafetyCheckIconStatus}
-   * @private
-   */
-  getIconStatus_() {
+  private getIconStatus_(): SafetyCheckIconStatus {
     switch (this.status_) {
       case SafetyCheckExtensionsStatus.CHECKING:
         return SafetyCheckIconStatus.RUNNING;
@@ -128,14 +103,11 @@
         return SafetyCheckIconStatus.WARNING;
       default:
         assertNotReached();
+        return SafetyCheckIconStatus.WARNING;
     }
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getButtonLabel_() {
+  private getButtonLabel_(): string|null {
     switch (this.status_) {
       case SafetyCheckExtensionsStatus.BLOCKLISTED_REENABLED_ALL_BY_USER:
       case SafetyCheckExtensionsStatus.BLOCKLISTED_REENABLED_SOME_BY_USER:
@@ -145,8 +117,7 @@
     }
   }
 
-  /** @private */
-  onButtonClick_() {
+  private onButtonClick_() {
     // Log click both in action and histogram.
     this.metricsBrowserProxy_.recordSafetyCheckInteractionHistogram(
         SafetyCheckInteractions.EXTENSIONS_REVIEW);
@@ -155,11 +126,7 @@
     this.openExtensionsPage_();
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getManagedIcon_() {
+  private getManagedIcon_(): string|null {
     switch (this.status_) {
       case SafetyCheckExtensionsStatus.BLOCKLISTED_REENABLED_ALL_BY_ADMIN:
         return 'cr20:domain';
@@ -168,16 +135,11 @@
     }
   }
 
-  /**
-   * @private
-   * @return {?boolean}
-   */
-  isRowClickable_() {
+  private isRowClickable_(): boolean {
     return this.rowClickableStatuses.has(this.status_);
   }
 
-  /** @private */
-  onRowClick_() {
+  private onRowClick_() {
     if (this.isRowClickable_()) {
       // Log click both in action and histogram.
       this.metricsBrowserProxy_.recordSafetyCheckInteractionHistogram(
@@ -188,8 +150,7 @@
     }
   }
 
-  /** @private */
-  openExtensionsPage_() {
+  private openExtensionsPage_() {
     OpenWindowProxyImpl.getInstance().openURL('chrome://extensions');
   }
 }
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_page.html b/chrome/browser/resources/settings/safety_check_page/safety_check_page.html
index 622c10b..ed501ab 100644
--- a/chrome/browser/resources/settings/safety_check_page/safety_check_page.html
+++ b/chrome/browser/resources/settings/safety_check_page/safety_check_page.html
@@ -26,7 +26,7 @@
       </template>
       <template is="dom-if" if="[[shouldShowParentIconButton_(parentStatus_)]]"
           restamp>
-        <cr-icon-button id="safetyCheckParentIconButton"
+        <cr-icon-button
             iron-icon="settings:refresh"
             on-click="onRunSafetyCheckClick_"
             aria-label="$i18n{safetyCheckParentRunAgainButtonAriaLabel}">
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_page.js b/chrome/browser/resources/settings/safety_check_page/safety_check_page.ts
similarity index 71%
rename from chrome/browser/resources/settings/safety_check_page/safety_check_page.js
rename to chrome/browser/resources/settings/safety_check_page/safety_check_page.ts
index 4746f2b6..0dbf120d 100644
--- a/chrome/browser/resources/settings/safety_check_page/safety_check_page.js
+++ b/chrome/browser/resources/settings/safety_check_page/safety_check_page.ts
@@ -25,8 +25,8 @@
 import './safety_check_chrome_cleaner_child.js';
 // </if>
 
-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 {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
+import {WebUIListenerBehavior} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
 import {IronA11yAnnouncer} from 'chrome://resources/polymer/v3_0/iron-a11y-announcer/iron-a11y-announcer.js';
 import {flush, html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
@@ -38,25 +38,15 @@
 import {Router} from '../router.js';
 import {SafetyCheckBrowserProxy, SafetyCheckBrowserProxyImpl, SafetyCheckCallbackConstants, SafetyCheckParentStatus} from './safety_check_browser_proxy.js';
 
-/**
- * @typedef {{
- *   newState: SafetyCheckParentStatus,
- *   displayString: string,
- * }}
- */
-let ParentChangedEvent;
+type ParentChangedEvent = {
+  newState: SafetyCheckParentStatus,
+  displayString: string,
+};
 
-
-/**
- * @constructor
- * @extends {PolymerElement}
- * @implements {I18nBehaviorInterface}
- * @implements {WebUIListenerBehaviorInterface}
- */
 const SettingsSafetyCheckPageElementBase =
-    mixinBehaviors([WebUIListenerBehavior, I18nBehavior], PolymerElement);
+    mixinBehaviors([WebUIListenerBehavior, I18nBehavior], PolymerElement) as
+    {new (): PolymerElement & I18nBehavior & WebUIListenerBehavior};
 
-/** @polymer */
 export class SettingsSafetyCheckPageElement extends
     SettingsSafetyCheckPageElementBase {
   static get is() {
@@ -69,41 +59,27 @@
 
   static get properties() {
     return {
-      /**
-       * Current state of the safety check parent element.
-       * @private {!SafetyCheckParentStatus}
-       */
+      /** Current state of the safety check parent element. */
       parentStatus_: {
         type: Number,
         value: SafetyCheckParentStatus.BEFORE,
       },
 
-      /**
-       * UI string to display for the parent status.
-       * @private
-       */
+      /** UI string to display for the parent status. */
       parentDisplayString_: String,
-
     };
   }
 
-  constructor() {
-    super();
+  private parentStatus_: SafetyCheckParentStatus;
+  private parentDisplayString_: string;
+  private safetyCheckBrowserProxy_: SafetyCheckBrowserProxy =
+      SafetyCheckBrowserProxyImpl.getInstance();
+  private metricsBrowserProxy_: MetricsBrowserProxy =
+      MetricsBrowserProxyImpl.getInstance();
 
-    /** @private {!SafetyCheckBrowserProxy} */
-    this.safetyCheckBrowserProxy_ = SafetyCheckBrowserProxyImpl.getInstance();
+  /** Timer ID for periodic update. */
+  private updateTimerId_: number = -1;
 
-    /** @private {!MetricsBrowserProxy} */
-    this.metricsBrowserProxy_ = MetricsBrowserProxyImpl.getInstance();
-
-    /**
-     * Timer ID for periodic update.
-     * @private {number}
-     */
-    this.updateTimerId_ = -1;
-  }
-
-  /** @override */
   connectedCallback() {
     super.connectedCallback();
 
@@ -122,11 +98,8 @@
     }
   }
 
-  /**
-   * Triggers the safety check.
-   * @private
-   */
-  runSafetyCheck_() {
+  /** Triggers the safety check. */
+  private runSafetyCheck_() {
     // Log click both in action and histogram.
     this.metricsBrowserProxy_.recordSafetyCheckInteractionHistogram(
         SafetyCheckInteractions.RUN_SAFETY_CHECK);
@@ -138,11 +111,7 @@
     this.fireIronAnnounce_(this.i18n('safetyCheckAriaLiveRunning'));
   }
 
-  /**
-   * @param {!ParentChangedEvent} event
-   * @private
-   */
-  onSafetyCheckParentChanged_(event) {
+  private onSafetyCheckParentChanged_(event: ParentChangedEvent) {
     this.parentStatus_ = event.newState;
     this.parentDisplayString_ = event.displayString;
     if (this.parentStatus_ === SafetyCheckParentStatus.CHECKING) {
@@ -164,52 +133,31 @@
     }
   }
 
-  /**
-   * @param {string} text
-   * @private
-   */
-  fireIronAnnounce_(text) {
+  private fireIronAnnounce_(text: string) {
     this.dispatchEvent(new CustomEvent(
         'iron-announce', {bubbles: true, composed: true, detail: {text}}));
   }
 
-  /**
-   * @private
-   * @return {boolean}
-   */
-  shouldShowParentButton_() {
+  private shouldShowParentButton_(): boolean {
     return this.parentStatus_ === SafetyCheckParentStatus.BEFORE;
   }
 
-  /**
-   * @private
-   * @return {boolean}
-   */
-  shouldShowParentIconButton_() {
+  private shouldShowParentIconButton_(): boolean {
     return this.parentStatus_ !== SafetyCheckParentStatus.BEFORE;
   }
 
-  /** @private */
-  onRunSafetyCheckClick_() {
+  private onRunSafetyCheckClick_() {
     HatsBrowserProxyImpl.getInstance().trustSafetyInteractionOccurred(
         TrustSafetyInteraction.RAN_SAFETY_CHECK);
 
     this.runSafetyCheck_();
   }
 
-  /** @private */
-  focusIconButton_() {
-    const element =
-        /** @type {!Element} */ (
-            this.shadowRoot.querySelector('#safetyCheckParentIconButton'));
-    element.focus();
+  private focusIconButton_() {
+    this.shadowRoot!.querySelector('cr-icon-button')!.focus();
   }
 
-  /**
-   * @private
-   * @return {boolean}
-   */
-  shouldShowChildren_() {
+  private shouldShowChildren_(): boolean {
     return this.parentStatus_ !== SafetyCheckParentStatus.BEFORE;
   }
 }
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_passwords_child.js b/chrome/browser/resources/settings/safety_check_page/safety_check_passwords_child.ts
similarity index 77%
rename from chrome/browser/resources/settings/safety_check_page/safety_check_passwords_child.js
rename to chrome/browser/resources/settings/safety_check_page/safety_check_passwords_child.ts
index ebe49bf..5c3098b 100644
--- a/chrome/browser/resources/settings/safety_check_page/safety_check_passwords_child.js
+++ b/chrome/browser/resources/settings/safety_check_page/safety_check_passwords_child.ts
@@ -8,8 +8,8 @@
  * safety check child showing the password status.
  */
 import {assertNotReached} from 'chrome://resources/js/assert.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 {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
+import {WebUIListenerBehavior} 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 {PasswordManagerImpl, PasswordManagerProxy} from '../autofill_page/password_manager_proxy.js';
@@ -20,25 +20,15 @@
 import {SafetyCheckCallbackConstants, SafetyCheckPasswordsStatus} from './safety_check_browser_proxy.js';
 import {SafetyCheckIconStatus} from './safety_check_child.js';
 
-/**
- * @typedef {{
- *   newState: SafetyCheckPasswordsStatus,
- *   displayString: string,
- * }}
- */
-let PasswordsChangedEvent;
+type PasswordsChangedEvent = {
+  newState: SafetyCheckPasswordsStatus,
+  displayString: string,
+};
 
-
-/**
- * @constructor
- * @extends {PolymerElement}
- * @implements {I18nBehaviorInterface}
- * @implements {WebUIListenerBehaviorInterface}
- */
 const SettingsSafetyCheckPasswordsChildElementBase =
-    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement);
+    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement) as
+    {new (): PolymerElement & I18nBehavior & WebUIListenerBehavior};
 
-/** @polymer */
 export class SettingsSafetyCheckPasswordsChildElement extends
     SettingsSafetyCheckPasswordsChildElementBase {
   static get is() {
@@ -53,7 +43,6 @@
     return {
       /**
        * Current state of the safety check passwords child.
-       * @private {!SafetyCheckPasswordsStatus}
        */
       status_: {
         type: Number,
@@ -62,14 +51,11 @@
 
       /**
        * UI string to display for this child, received from the backend.
-       * @private
        */
       displayString_: String,
 
       /**
        * A set of statuses that the entire row is clickable.
-       * @type {!Set<!SafetyCheckPasswordsStatus>}
-       * @private
        */
       rowClickableStatuses: {
         readOnly: true,
@@ -81,18 +67,15 @@
           SafetyCheckPasswordsStatus.WEAK_PASSWORDS_EXIST,
         ]),
       },
-
     };
   }
 
-  constructor() {
-    super();
+  private status_: SafetyCheckPasswordsStatus;
+  private displayString_: string;
+  private rowClickableStatuses: Set<SafetyCheckPasswordsStatus>;
+  private metricsBrowserProxy_: MetricsBrowserProxy =
+      MetricsBrowserProxyImpl.getInstance();
 
-    /** @private {!MetricsBrowserProxy} */
-    this.metricsBrowserProxy_ = MetricsBrowserProxyImpl.getInstance();
-  }
-
-  /** @override */
   connectedCallback() {
     super.connectedCallback();
 
@@ -102,20 +85,12 @@
         this.onSafetyCheckPasswordsChanged_.bind(this));
   }
 
-  /**
-   * @param {!PasswordsChangedEvent} event
-   * @private
-   */
-  onSafetyCheckPasswordsChanged_(event) {
+  private onSafetyCheckPasswordsChanged_(event: PasswordsChangedEvent) {
     this.status_ = event.newState;
     this.displayString_ = event.displayString;
   }
 
-  /**
-   * @return {SafetyCheckIconStatus}
-   * @private
-   */
-  getIconStatus_() {
+  private getIconStatus_(): SafetyCheckIconStatus {
     switch (this.status_) {
       case SafetyCheckPasswordsStatus.CHECKING:
         return SafetyCheckIconStatus.RUNNING;
@@ -133,14 +108,11 @@
         return SafetyCheckIconStatus.INFO;
       default:
         assertNotReached();
+        return SafetyCheckIconStatus.INFO;
     }
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getButtonLabel_() {
+  private getButtonLabel_(): string|null {
     switch (this.status_) {
       case SafetyCheckPasswordsStatus.COMPROMISED:
         return this.i18n('safetyCheckReview');
@@ -149,8 +121,7 @@
     }
   }
 
-  /** @private */
-  onButtonClick_() {
+  private onButtonClick_() {
     // Log click both in action and histogram.
     this.metricsBrowserProxy_.recordSafetyCheckInteractionHistogram(
         SafetyCheckInteractions.PASSWORDS_MANAGE_COMPROMISED_PASSWORDS);
@@ -159,16 +130,11 @@
     this.openPasswordCheckPage_();
   }
 
-  /**
-   * @private
-   * @return {?boolean}
-   */
-  isRowClickable_() {
+  private isRowClickable_(): boolean {
     return this.rowClickableStatuses.has(this.status_);
   }
 
-  /** @private */
-  onRowClick_() {
+  private onRowClick_() {
     if (this.isRowClickable_()) {
       // Log click both in action and histogram.
       this.metricsBrowserProxy_.recordSafetyCheckInteractionHistogram(
@@ -183,11 +149,10 @@
     }
   }
 
-  /** @private */
-  openPasswordCheckPage_() {
+  private openPasswordCheckPage_() {
     Router.getInstance().navigateTo(
         routes.CHECK_PASSWORDS,
-        /* dynamicParams= */ null, /* removeSearch= */ true);
+        /* dynamicParams= */ undefined, /* removeSearch= */ true);
     PasswordManagerImpl.getInstance().recordPasswordCheckReferrer(
         PasswordManagerProxy.PasswordCheckReferrer.SAFETY_CHECK);
   }
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_safe_browsing_child.js b/chrome/browser/resources/settings/safety_check_page/safety_check_safe_browsing_child.ts
similarity index 76%
rename from chrome/browser/resources/settings/safety_check_page/safety_check_safe_browsing_child.js
rename to chrome/browser/resources/settings/safety_check_page/safety_check_safe_browsing_child.ts
index edb586b..2cfec16 100644
--- a/chrome/browser/resources/settings/safety_check_page/safety_check_safe_browsing_child.js
+++ b/chrome/browser/resources/settings/safety_check_page/safety_check_safe_browsing_child.ts
@@ -8,8 +8,8 @@
  * safety check child showing the Safe Browsing status.
  */
 import {assertNotReached} from 'chrome://resources/js/assert.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 {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
+import {WebUIListenerBehavior} 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 {MetricsBrowserProxy, MetricsBrowserProxyImpl, SafetyCheckInteractions} from '../metrics_browser_proxy.js';
@@ -19,25 +19,15 @@
 import {SafetyCheckCallbackConstants, SafetyCheckSafeBrowsingStatus} from './safety_check_browser_proxy.js';
 import {SafetyCheckIconStatus} from './safety_check_child.js';
 
-/**
- * @typedef {{
- *   newState: SafetyCheckSafeBrowsingStatus,
- *   displayString: string,
- * }}
- */
-let SafeBrowsingChangedEvent;
+type SafeBrowsingChangedEvent = {
+  newState: SafetyCheckSafeBrowsingStatus,
+  displayString: string,
+};
 
-
-/**
- * @constructor
- * @extends {PolymerElement}
- * @implements {I18nBehaviorInterface}
- * @implements {WebUIListenerBehaviorInterface}
- */
 const SettingsSafetyCheckSafeBrowsingChildElementBase =
-    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement);
+    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement) as
+    {new (): PolymerElement & I18nBehavior & WebUIListenerBehavior};
 
-/** @polymer */
 export class SettingsSafetyCheckSafeBrowsingChildElement extends
     SettingsSafetyCheckSafeBrowsingChildElementBase {
   static get is() {
@@ -52,7 +42,6 @@
     return {
       /**
        * Current state of the safety check safe browsing child.
-       * @private {!SafetyCheckSafeBrowsingStatus}
        */
       status_: {
         type: Number,
@@ -61,14 +50,11 @@
 
       /**
        * UI string to display for this child, received from the backend.
-       * @private
        */
       displayString_: String,
 
       /**
        * A set of statuses that the entire row is clickable.
-       * @type {!Set<!SafetyCheckSafeBrowsingStatus>}
-       * @private
        */
       rowClickableStatuses: {
         readOnly: true,
@@ -81,18 +67,15 @@
           SafetyCheckSafeBrowsingStatus.DISABLED_BY_EXTENSION,
         ]),
       },
-
     };
   }
 
-  constructor() {
-    super();
+  private status_: SafetyCheckSafeBrowsingStatus;
+  private displayString_: string;
+  private rowClickableStatuses: Set<SafetyCheckSafeBrowsingStatus>;
+  private metricsBrowserProxy_: MetricsBrowserProxy =
+      MetricsBrowserProxyImpl.getInstance();
 
-    /** @private {!MetricsBrowserProxy} */
-    this.metricsBrowserProxy_ = MetricsBrowserProxyImpl.getInstance();
-  }
-
-  /** @override */
   connectedCallback() {
     super.connectedCallback();
 
@@ -102,20 +85,12 @@
         this.onSafetyCheckSafeBrowsingChanged_.bind(this));
   }
 
-  /**
-   * @param {!SafeBrowsingChangedEvent} event
-   * @private
-   */
-  onSafetyCheckSafeBrowsingChanged_(event) {
+  private onSafetyCheckSafeBrowsingChanged_(event: SafeBrowsingChangedEvent) {
     this.displayString_ = event.displayString;
     this.status_ = event.newState;
   }
 
-  /**
-   * @return {SafetyCheckIconStatus}
-   * @private
-   */
-  getIconStatus_() {
+  private getIconStatus_(): SafetyCheckIconStatus {
     switch (this.status_) {
       case SafetyCheckSafeBrowsingStatus.CHECKING:
         return SafetyCheckIconStatus.RUNNING;
@@ -126,20 +101,18 @@
       case SafetyCheckSafeBrowsingStatus.ENABLED:
         // ENABLED is deprecated.
         assertNotReached();
+        return SafetyCheckIconStatus.SAFE;
       case SafetyCheckSafeBrowsingStatus.DISABLED:
       case SafetyCheckSafeBrowsingStatus.DISABLED_BY_ADMIN:
       case SafetyCheckSafeBrowsingStatus.DISABLED_BY_EXTENSION:
         return SafetyCheckIconStatus.INFO;
       default:
         assertNotReached();
+        return SafetyCheckIconStatus.INFO;
     }
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getButtonLabel_() {
+  private getButtonLabel_(): string|null {
     switch (this.status_) {
       case SafetyCheckSafeBrowsingStatus.DISABLED:
         return this.i18n('safetyCheckSafeBrowsingButton');
@@ -148,8 +121,7 @@
     }
   }
 
-  /** @private */
-  onButtonClick_() {
+  private onButtonClick_() {
     // Log click both in action and histogram.
     this.metricsBrowserProxy_.recordSafetyCheckInteractionHistogram(
         SafetyCheckInteractions.SAFE_BROWSING_MANAGE);
@@ -158,11 +130,7 @@
     this.openSecurityPage_();
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getManagedIcon_() {
+  private getManagedIcon_(): string|null {
     switch (this.status_) {
       case SafetyCheckSafeBrowsingStatus.DISABLED_BY_ADMIN:
         return 'cr20:domain';
@@ -173,16 +141,11 @@
     }
   }
 
-  /**
-   * @private
-   * @return {?boolean}
-   */
-  isRowClickable_() {
+  private isRowClickable_(): boolean {
     return this.rowClickableStatuses.has(this.status_);
   }
 
-  /** @private */
-  onRowClick_() {
+  private onRowClick_() {
     if (this.isRowClickable_()) {
       // Log click both in action and histogram.
       this.metricsBrowserProxy_.recordSafetyCheckInteractionHistogram(
@@ -193,12 +156,11 @@
     }
   }
 
-  /** @private */
-  openSecurityPage_() {
+  private openSecurityPage_() {
     this.metricsBrowserProxy_.recordAction(
         'SafeBrowsing.Settings.ShowedFromSafetyCheck');
     Router.getInstance().navigateTo(
-        routes.SECURITY, /* dynamicParams= */ null,
+        routes.SECURITY, /* dynamicParams= */ undefined,
         /* removeSearch= */ true);
   }
 }
diff --git a/chrome/browser/resources/settings/safety_check_page/safety_check_updates_child.js b/chrome/browser/resources/settings/safety_check_page/safety_check_updates_child.ts
similarity index 74%
rename from chrome/browser/resources/settings/safety_check_page/safety_check_updates_child.js
rename to chrome/browser/resources/settings/safety_check_page/safety_check_updates_child.ts
index cf19ef8..21de73c 100644
--- a/chrome/browser/resources/settings/safety_check_page/safety_check_updates_child.js
+++ b/chrome/browser/resources/settings/safety_check_page/safety_check_updates_child.ts
@@ -8,8 +8,8 @@
  * check child showing the browser's update status.
  */
 import {assertNotReached} from 'chrome://resources/js/assert.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 {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
+import {WebUIListenerBehavior} 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 {LifetimeBrowserProxyImpl} from '../lifetime_browser_proxy.js';
@@ -18,25 +18,15 @@
 import {SafetyCheckCallbackConstants, SafetyCheckUpdatesStatus} from './safety_check_browser_proxy.js';
 import {SafetyCheckIconStatus} from './safety_check_child.js';
 
-/**
- * @typedef {{
- *   newState: SafetyCheckUpdatesStatus,
- *   displayString: string,
- * }}
- */
-let UpdatesChangedEvent;
+type UpdatesChangedEvent = {
+  newState: SafetyCheckUpdatesStatus,
+  displayString: string,
+};
 
-
-/**
- * @constructor
- * @extends {PolymerElement}
- * @implements {I18nBehaviorInterface}
- * @implements {WebUIListenerBehaviorInterface}
- */
 const SettingsSafetyCheckUpdatesChildElementBase =
-    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement);
+    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement) as
+    {new (): PolymerElement & I18nBehavior & WebUIListenerBehavior};
 
-/** @polymer */
 export class SettingsSafetyCheckUpdatesChildElement extends
     SettingsSafetyCheckUpdatesChildElementBase {
   static get is() {
@@ -51,7 +41,6 @@
     return {
       /**
        * Current state of the safety check updates child.
-       * @private {!SafetyCheckUpdatesStatus}
        */
       status_: {
         type: Number,
@@ -60,22 +49,16 @@
 
       /**
        * UI string to display for this child, received from the backend.
-       * @private
        */
       displayString_: String,
-
     };
   }
 
+  private status_: SafetyCheckUpdatesStatus;
+  private displayString_: string;
+  private metricsBrowserProxy_: MetricsBrowserProxy =
+      MetricsBrowserProxyImpl.getInstance();
 
-  constructor() {
-    super();
-
-    /** @private {!MetricsBrowserProxy} */
-    this.metricsBrowserProxy_ = MetricsBrowserProxyImpl.getInstance();
-  }
-
-  /** @override */
   connectedCallback() {
     super.connectedCallback();
 
@@ -85,20 +68,12 @@
         this.onSafetyCheckUpdatesChanged_.bind(this));
   }
 
-  /**
-   * @param {!UpdatesChangedEvent} event
-   * @private
-   */
-  onSafetyCheckUpdatesChanged_(event) {
+  private onSafetyCheckUpdatesChanged_(event: UpdatesChangedEvent) {
     this.status_ = event.newState;
     this.displayString_ = event.displayString;
   }
 
-  /**
-   * @return {SafetyCheckIconStatus}
-   * @private
-   */
-  getIconStatus_() {
+  private getIconStatus_(): SafetyCheckIconStatus {
     switch (this.status_) {
       case SafetyCheckUpdatesStatus.CHECKING:
       case SafetyCheckUpdatesStatus.UPDATING:
@@ -114,14 +89,11 @@
         return SafetyCheckIconStatus.WARNING;
       default:
         assertNotReached();
+        return SafetyCheckIconStatus.WARNING;
     }
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getButtonLabel_() {
+  private getButtonLabel_(): string|null {
     switch (this.status_) {
       case SafetyCheckUpdatesStatus.RELAUNCH:
         return this.i18n('aboutRelaunch');
@@ -130,8 +102,7 @@
     }
   }
 
-  /** @private */
-  onButtonClick_() {
+  private onButtonClick_() {
     // Log click both in action and histogram.
     this.metricsBrowserProxy_.recordSafetyCheckInteractionHistogram(
         SafetyCheckInteractions.UPDATES_RELAUNCH);
@@ -141,11 +112,7 @@
     LifetimeBrowserProxyImpl.getInstance().relaunch();
   }
 
-  /**
-   * @private
-   * @return {?string}
-   */
-  getManagedIcon_() {
+  private getManagedIcon_(): string|null {
     switch (this.status_) {
       case SafetyCheckUpdatesStatus.DISABLED_BY_ADMIN:
         return 'cr20:domain';
diff --git a/chrome/browser/resources/signin/profile_picker/manage_profiles_browser_proxy.ts b/chrome/browser/resources/signin/profile_picker/manage_profiles_browser_proxy.ts
index c3045bfc..ffd6fbf7 100644
--- a/chrome/browser/resources/signin/profile_picker/manage_profiles_browser_proxy.ts
+++ b/chrome/browser/resources/signin/profile_picker/manage_profiles_browser_proxy.ts
@@ -47,6 +47,18 @@
   color?: number,
 };
 
+// <if expr="lacros">
+/**
+ * This is a data structure sent from C++ to JS, representing accounts present
+ * in the ChromeOS system, but not in any Lacros profile.
+ */
+export type UnassignedAccount = {
+  gaiaId: string,
+  name: string,
+  email: string,
+};
+// </if>
+
 export interface ManageProfilesBrowserProxy {
   /**
    * Initializes profile picker main view.
diff --git a/chrome/browser/resources/signin/profile_picker/profile_creation_flow/account_selection_lacros.ts b/chrome/browser/resources/signin/profile_picker/profile_creation_flow/account_selection_lacros.ts
index 602e8389..5abbfb46 100644
--- a/chrome/browser/resources/signin/profile_picker/profile_creation_flow/account_selection_lacros.ts
+++ b/chrome/browser/resources/signin/profile_picker/profile_creation_flow/account_selection_lacros.ts
@@ -9,9 +9,10 @@
 
 import {focusWithoutInk} from 'chrome://resources/js/cr/ui/focus_without_ink.m.js';
 import {I18nBehavior} from 'chrome://resources/js/i18n_behavior.m.js';
+import {WebUIListenerBehavior} from 'chrome://resources/js/web_ui_listener_behavior.m.js';
 import {afterNextRender, html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
-import {AutogeneratedThemeColorInfo} from '../manage_profiles_browser_proxy.js';
+import {AutogeneratedThemeColorInfo, UnassignedAccount} from '../manage_profiles_browser_proxy.js';
 import {navigateToPreviousRoute} from '../navigation_mixin.js';
 
 export interface AccountSelectionLacrosElement {
@@ -21,8 +22,8 @@
 }
 
 const AccountSelectionLacrosElementBase =
-    mixinBehaviors([I18nBehavior], PolymerElement) as
-    {new (): PolymerElement & I18nBehavior};
+    mixinBehaviors([I18nBehavior, WebUIListenerBehavior], PolymerElement) as
+    {new (): PolymerElement & I18nBehavior & WebUIListenerBehavior};
 
 export class AccountSelectionLacrosElement extends
     AccountSelectionLacrosElementBase {
@@ -37,10 +38,23 @@
   static get properties() {
     return {
       profileThemeInfo: Object,
+
+      unassignedAccounts_: {
+        type: Array,
+        value: () => [],
+      },
     };
   }
 
   profileThemeInfo: AutogeneratedThemeColorInfo;
+  private unassignedAccounts_: Array<UnassignedAccount>;
+
+  connectedCallback() {
+    super.connectedCallback();
+    this.addWebUIListener(
+        'unassigned-accounts-changed',
+        this.handleUnassignedAccountsChanged_.bind(this));
+  }
 
   ready() {
     super.ready();
@@ -59,6 +73,11 @@
     return this.i18n(
         'backButtonAriaLabel', this.i18n('accountSelectionLacrosTitle'));
   }
+
+  private handleUnassignedAccountsChanged_(unassignedAccounts:
+                                               Array<UnassignedAccount>) {
+    this.unassignedAccounts_ = unassignedAccounts;
+  }
 }
 
 customElements.define(
diff --git a/chrome/browser/resources/signin/profile_picker/profile_creation_flow/profile_type_choice.ts b/chrome/browser/resources/signin/profile_picker/profile_creation_flow/profile_type_choice.ts
index 9c2d894..16ae023 100644
--- a/chrome/browser/resources/signin/profile_picker/profile_creation_flow/profile_type_choice.ts
+++ b/chrome/browser/resources/signin/profile_picker/profile_creation_flow/profile_type_choice.ts
@@ -15,6 +15,9 @@
 import {afterNextRender, html, mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {AutogeneratedThemeColorInfo, ManageProfilesBrowserProxy, ManageProfilesBrowserProxyImpl} from '../manage_profiles_browser_proxy.js';
+// <if expr="lacros">
+import {UnassignedAccount} from '../manage_profiles_browser_proxy.js';
+// </if>
 import {navigateTo, navigateToPreviousRoute, navigateToStep, ProfileCreationSteps, recordPageVisited, Routes} from '../navigation_mixin.js';
 
 export interface ProfileTypeChoiceElement {
@@ -57,6 +60,18 @@
           return loadTimeData.getString('managedDeviceDisclaimer').length > 0;
         },
       },
+
+      // <if expr="lacros">
+      /**
+       * If there are no unassigned accounts, the account selection screen is
+       * skipped.
+       */
+      hasUnassignedAccounts_: {
+        type: Boolean,
+        value: false,
+      },
+      // </if>
+
     };
   }
 
@@ -66,6 +81,17 @@
   private manageProfilesBrowserProxy_: ManageProfilesBrowserProxy =
       ManageProfilesBrowserProxyImpl.getInstance();
 
+  // <if expr="lacros">
+  private hasUnassignedAccounts_: boolean;
+
+  connectedCallback() {
+    super.connectedCallback();
+    this.addWebUIListener(
+        'unassigned-accounts-changed',
+        this.handleUnassignedAccountsChanged_.bind(this));
+  }
+  // </if>
+
   ready() {
     super.ready();
     this.addWebUIListener(
@@ -87,10 +113,9 @@
 
   private onSignInClick_() {
     // <if expr="lacros">
-    // TODO(https://crbug.com/1226050): Do not navigate to the account selection
-    // if there are no available accounts.
     if (loadTimeData.getBoolean(
-            'isMultiProfileAccountConsistentcyLacrosEnabled')) {
+            'isMultiProfileAccountConsistentcyLacrosEnabled') &&
+        this.hasUnassignedAccounts_) {
       navigateTo(Routes.ACCOUNT_SELECTION_LACROS);
       return;
     }
@@ -120,6 +145,13 @@
     return this.i18n(
         'backButtonAriaLabel', this.i18n('profileTypeChoiceTitle'));
   }
+
+  // <if expr="lacros">
+  private handleUnassignedAccountsChanged_(unassignedAccounts:
+                                               Array<UnassignedAccount>) {
+    this.hasUnassignedAccounts_ = unassignedAccounts.length > 0;
+  }
+  // </if>
 }
 
 customElements.define(ProfileTypeChoiceElement.is, ProfileTypeChoiceElement);
diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
index 0de09d6..d205f22 100644
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
@@ -3167,7 +3167,6 @@
       embedded_test_server()->GetURL(kMaliciousIframe);
   SetURLThreatType(unsafe_iframe_url, GetThreatType());
 
-  prerender_helper().AddPrerender(prerender_url);
   auto host_id = prerender_helper().AddPrerender(prerender_url);
   content::RenderFrameHost* prerender_rfh =
       prerender_helper().GetPrerenderedMainFrameHost(host_id);
@@ -3185,6 +3184,33 @@
 }
 
 IN_PROC_BROWSER_TEST_P(SafeBrowsingPrerenderBrowserTest,
+                       UnsafeSubresourceOfSubframePrerender) {
+  const GURL initial_url = embedded_test_server()->GetURL("/title1.html");
+  ui_test_utils::NavigateToURL(browser(), initial_url);
+
+  const GURL prerender_url =
+      embedded_test_server()->GetURL("/iframe_blank.html");
+  const GURL subframe_url = embedded_test_server()->GetURL(kMaliciousJsPage);
+  const GURL unsafe_resource_url = embedded_test_server()->GetURL(kMaliciousJs);
+  SetURLThreatType(unsafe_resource_url, GetThreatType());
+
+  auto host_id = prerender_helper().AddPrerender(prerender_url);
+  content::RenderFrameHost* prerender_rfh =
+      prerender_helper().GetPrerenderedMainFrameHost(host_id);
+  ASSERT_TRUE(prerender_rfh);
+
+  content::test::PrerenderHostObserver observer(*GetWebContents(), host_id);
+  content::ExecuteScriptAsync(
+      prerender_rfh,
+      content::JsReplace("document.getElementById('test').src = $1;",
+                         subframe_url));
+  observer.WaitForDestroyed();
+
+  EXPECT_FALSE(IsShowingInterstitial(GetWebContents()));
+  ExpectNoSecurityIndicatorDowngrade(GetWebContents());
+}
+
+IN_PROC_BROWSER_TEST_P(SafeBrowsingPrerenderBrowserTest,
                        UnsafeCrossOriginSubframePrerender) {
   const GURL initial_url = embedded_test_server()->GetURL("/title1.html");
   ui_test_utils::NavigateToURL(browser(), initial_url);
diff --git a/chrome/browser/sessions/closed_tab_cache.cc b/chrome/browser/sessions/closed_tab_cache.cc
index d68d9f6..08b3b95 100644
--- a/chrome/browser/sessions/closed_tab_cache.cc
+++ b/chrome/browser/sessions/closed_tab_cache.cc
@@ -54,11 +54,8 @@
   if (!base::FeatureList::IsEnabled(features::kClosedTabCache))
     return false;
 
-  // We need to assume that the caller took care of obtaining a SessionID.
-  DCHECK(id.has_value());
-
   // Only store if tab has valid session id associated with it.
-  if (!id.value().is_valid())
+  if (!id.has_value() || !id.value().is_valid())
     return false;
 
   // If the current memory pressure exceeds the threshold, we should not cache
diff --git a/chrome/browser/sync/test/integration/DEPS b/chrome/browser/sync/test/integration/DEPS
index 6f29c61..d1981a0 100644
--- a/chrome/browser/sync/test/integration/DEPS
+++ b/chrome/browser/sync/test/integration/DEPS
@@ -5,5 +5,8 @@
 specific_include_rules = {
   "two_client_web_apps_integration_sync_test.cc": [
     "+chrome/browser/ui/views",
+  ],
+  "two_client_web_apps_integration_sync_test_mac_win_linux.cc": [
+    "+chrome/browser/ui/views",
   ]
 }
diff --git a/chrome/browser/sync/test/integration/passwords_helper.cc b/chrome/browser/sync/test/integration/passwords_helper.cc
index f6d32ea7..cdff082 100644
--- a/chrome/browser/sync/test/integration/passwords_helper.cc
+++ b/chrome/browser/sync/test/integration/passwords_helper.cc
@@ -23,7 +23,7 @@
 #include "components/password_manager/core/browser/password_manager_test_utils.h"
 #include "components/password_manager/core/browser/password_store_consumer.h"
 #include "components/password_manager/core/browser/password_store_interface.h"
-#include "components/password_manager/core/browser/sync/password_sync_bridge.h"
+#include "components/password_manager/core/browser/sync/password_proto_utils.h"
 #include "components/sync/engine/loopback_server/persistent_unique_client_entity.h"
 #include "components/sync/engine/nigori/key_derivation_params.h"
 #include "components/sync/nigori/cryptographer_impl.h"
diff --git a/chrome/browser/sync/test/integration/two_client_web_apps_integration_sync_test_mac_win_linux.cc b/chrome/browser/sync/test/integration/two_client_web_apps_integration_sync_test_mac_win_linux.cc
index 5779c13..0df4b35 100644
--- a/chrome/browser/sync/test/integration/two_client_web_apps_integration_sync_test_mac_win_linux.cc
+++ b/chrome/browser/sync/test/integration/two_client_web_apps_integration_sync_test_mac_win_linux.cc
@@ -2,72 +2,378 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-namespace web_app {
-namespace {
+#include "base/barrier_closure.h"
+#include "base/path_service.h"
+#include "base/test/bind.h"
+#include "base/test/scoped_feature_list.h"
+#include "build/chromeos_buildflags.h"
+#include "chrome/browser/sync/test/integration/apps_helper.h"
+#include "chrome/browser/sync/test/integration/sync_service_impl_harness.h"
+#include "chrome/browser/sync/test/integration/sync_test.h"
+#include "chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.h"
+#include "chrome/browser/web_applications/web_app_registrar.h"
+#include "chrome/common/chrome_features.h"
+#include "content/public/test/browser_test.h"
+#include "services/network/public/cpp/network_switches.h"
 
-// TODO(jarrydg@chromium.org): Remove the macro disabling the following tests
-// when there is a test runner defined above, the file has been added to a
-// build file, and they can compile.
-// https://crbug.com/1215791
+namespace web_app {
+
+class TwoClientWebAppsIntegrationSyncTestMacWinLinux
+    : public SyncTest,
+      public WebAppIntegrationBrowserTestBase::TestDelegate,
+      public testing::WithParamInterface<std::string> {
+ public:
+  TwoClientWebAppsIntegrationSyncTestMacWinLinux()
+      : SyncTest(TWO_CLIENT), helper_(this) {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+    // Disable WebAppsCrosapi, so that Web Apps get synced in the Ash browser.
+    scoped_feature_list_.InitAndDisableFeature(features::kWebAppsCrosapi);
+#endif
+  }
+
+  // WebAppIntegrationBrowserTestBase::TestDelegate
+  Browser* CreateBrowser(Profile* profile) override {
+    return InProcessBrowserTest::CreateBrowser(profile);
+  }
+
+  void AddBlankTabAndShow(Browser* browser) override {
+    InProcessBrowserTest::AddBlankTabAndShow(browser);
+  }
+
+  net::EmbeddedTestServer* EmbeddedTestServer() override {
+    return embedded_test_server();
+  }
+
+  std::vector<Profile*> GetAllProfiles() override {
+    return SyncTest::GetAllProfiles();
+  }
+
+  bool IsSyncTest() override { return true; }
+
+  void SyncTurnOff() override {
+    for (auto* client : GetSyncClients()) {
+      client->StopSyncServiceAndClearData();
+    }
+  }
+
+  void SyncTurnOn() override {
+    for (auto* client : GetSyncClients()) {
+      ASSERT_TRUE(client->StartSyncService());
+    }
+    ASSERT_TRUE(AwaitQuiescence());
+    apps_helper::AwaitWebAppQuiescence(GetAllProfiles());
+  }
+
+  WebAppIntegrationBrowserTestBase helper_;
+
+ private:
+  // InProcessBrowserTest
+  void SetUp() override {
+    helper_.SetUp(GetChromeTestDataDir());
+    SyncTest::SetUp();
+  }
+
+  // BrowserTestBase
+  void SetUpOnMainThread() override {
+    SyncTest::SetUpOnMainThread();
+    ASSERT_TRUE(SetupClients());
+    helper_.SetUpOnMainThread();
+  }
+
+  void TearDownOnMainThread() override { helper_.TearDownOnMainThread(); }
+
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    SyncTest::SetUpCommandLine(command_line);
+    ASSERT_TRUE(embedded_test_server()->Start());
+    command_line->AppendSwitchASCII(
+        network::switches::kUnsafelyTreatInsecureOriginAsSecure,
+        helper_.GetInstallableAppURL("SiteA").GetOrigin().spec());
+    command_line->AppendSwitch("disable-fake-server-failure-output");
+  }
+
+  bool SetupClients() override {
+    if (!SyncTest::SetupClients()) {
+      return false;
+    }
+
+    for (Profile* profile : GetAllProfiles()) {
+      auto* web_app_provider = WebAppProvider::Get(profile);
+      base::RunLoop loop;
+      web_app_provider->on_registry_ready().Post(FROM_HERE, loop.QuitClosure());
+      loop.Run();
+    }
+    return true;
+  }
+
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+// This test is a part of the web app integration test suite, which is
+// documented in //chrome/browser/ui/views/web_apps/README.md. For information
+// about diagnosing, debugging and/or disabling tests, please look to the
+// README file.
+
+namespace {
+// TODO(https://crbug.com/1215791): Remove the macro disabling the following
+// tests when waiting for web app quiescence is fixed.
 #if false
 IN_PROC_BROWSER_TEST_F(
-    TwoClientWebAppsIntegrationSyncTest,
+    TwoClientWebAppsIntegrationSyncTestMacWinLinux,
+    WebAppIntegration_InstOmniboxSiteA_WindowCreated_SwitchProfileClientUserAClient2_InListNotLclyInstSiteA_NavSiteA_InstIconShown_LaunchIconShown) {
+  // Test contents are generated by script. Please do not modify!
+  // See `chrome/test/webapps/README.md` for more info.
+  // Sheriffs: Disabling this test is supported.
+  helper_.BeforeStateChangeAction();
+  helper_.InstallOmniboxIcon("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckWindowCreated();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SwitchProfileClients();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.NavigateBrowser("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckInstallIconShown();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckLaunchIconNotShown();
+  helper_.AfterStateCheckAction();
+}
+
+IN_PROC_BROWSER_TEST_F(
+    TwoClientWebAppsIntegrationSyncTestMacWinLinux,
+    WebAppIntegration_InstOmniboxSiteA_WindowCreated_SwitchProfileClientUserAClient2_InListNotLclyInstSiteA_TurnSyncOff) {
+  // Test contents are generated by script. Please do not modify!
+  // See `chrome/test/webapps/README.md` for more info.
+  // Sheriffs: Disabling this test is supported.
+  helper_.BeforeStateChangeAction();
+  helper_.InstallOmniboxIcon("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckWindowCreated();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SwitchProfileClients();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SyncTurnOff();
+  helper_.AfterStateChangeAction();
+}
+
+IN_PROC_BROWSER_TEST_F(
+    TwoClientWebAppsIntegrationSyncTestMacWinLinux,
+    WebAppIntegration_InstMenuOptionSiteA_WindowCreated_SwitchProfileClientUserAClient2_InListNotLclyInstSiteA_NavSiteA_InstIconShown_LaunchIconShown) {
+  // Test contents are generated by script. Please do not modify!
+  // See `chrome/test/webapps/README.md` for more info.
+  // Sheriffs: Disabling this test is supported.
+  helper_.BeforeStateChangeAction();
+  helper_.InstallMenuOption("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckWindowCreated();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SwitchProfileClients();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.NavigateBrowser("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckInstallIconShown();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckLaunchIconNotShown();
+  helper_.AfterStateCheckAction();
+}
+
+IN_PROC_BROWSER_TEST_F(
+    TwoClientWebAppsIntegrationSyncTestMacWinLinux,
+    WebAppIntegration_InstMenuOptionSiteA_WindowCreated_SwitchProfileClientUserAClient2_InListNotLclyInstSiteA_TurnSyncOff) {
+  // Test contents are generated by script. Please do not modify!
+  // See `chrome/test/webapps/README.md` for more info.
+  // Sheriffs: Disabling this test is supported.
+  helper_.BeforeStateChangeAction();
+  helper_.InstallMenuOption("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckWindowCreated();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SwitchProfileClients();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SyncTurnOff();
+  helper_.AfterStateChangeAction();
+}
+
+IN_PROC_BROWSER_TEST_F(
+    TwoClientWebAppsIntegrationSyncTestMacWinLinux,
     WebAppIntegration_InstOmniboxSiteA_WindowCreated_SwitchProfileClientUserAClient2_InListNotLclyInstSiteA_InstLocallySiteA_NavSiteA_InstIconNotShown_LaunchIconShown) {
   // Test contents are generated by script. Please do not modify!
   // See `chrome/test/webapps/README.md` for more info.
   // Sheriffs: Disabling this test is supported.
-  InstallOmniboxIcon("SiteA");
-  CheckWindowCreated();
-  SwitchProfileClients("UserAClient2");
-  CheckAppInListNotLocallyInstalled("SiteA");
-  InstallLocally("SiteA");
-  NavigateBrowser("SiteA");
-  CheckInstallIconNotShown();
-  CheckLaunchIconShown();
+  helper_.BeforeStateChangeAction();
+  helper_.InstallOmniboxIcon("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckWindowCreated();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SwitchProfileClients();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.InstallLocally("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.NavigateBrowser("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckInstallIconNotShown();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckLaunchIconShown();
+  helper_.AfterStateCheckAction();
 }
 
 IN_PROC_BROWSER_TEST_F(
-    TwoClientWebAppsIntegrationSyncTest,
+    TwoClientWebAppsIntegrationSyncTestMacWinLinux,
     WebAppIntegration_InstMenuOptionSiteA_WindowCreated_SwitchProfileClientUserAClient2_InListNotLclyInstSiteA_InstLocallySiteA_NavSiteA_InstIconNotShown_LaunchIconShown) {
   // Test contents are generated by script. Please do not modify!
   // See `chrome/test/webapps/README.md` for more info.
   // Sheriffs: Disabling this test is supported.
-  InstallMenuOption("SiteA");
-  CheckWindowCreated();
-  SwitchProfileClients("UserAClient2");
-  CheckAppInListNotLocallyInstalled("SiteA");
-  InstallLocally("SiteA");
-  NavigateBrowser("SiteA");
-  CheckInstallIconNotShown();
-  CheckLaunchIconShown();
+  helper_.BeforeStateChangeAction();
+  helper_.InstallMenuOption("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckWindowCreated();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SwitchProfileClients();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.InstallLocally("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.NavigateBrowser("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckInstallIconNotShown();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckLaunchIconShown();
+  helper_.AfterStateCheckAction();
 }
 
 IN_PROC_BROWSER_TEST_F(
-    TwoClientWebAppsIntegrationSyncTest,
+    TwoClientWebAppsIntegrationSyncTestMacWinLinux,
     WebAppIntegration_TurnSyncOff_InstOmniboxSiteA_TurnSyncOn_SwitchProfileClientUserAClient2_InListNotLclyInstSiteA) {
   // Test contents are generated by script. Please do not modify!
   // See `chrome/test/webapps/README.md` for more info.
   // Sheriffs: Disabling this test is supported.
-  SyncTurnOff();
-  InstallOmniboxIcon("SiteA");
-  SyncTurnOn();
-  SwitchProfileClients("UserAClient2");
-  CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.BeforeStateChangeAction();
+  helper_.SyncTurnOff();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.InstallOmniboxIcon("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SyncTurnOn();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SwitchProfileClients();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.AfterStateCheckAction();
 }
 
 IN_PROC_BROWSER_TEST_F(
-    TwoClientWebAppsIntegrationSyncTest,
+    TwoClientWebAppsIntegrationSyncTestMacWinLinux,
     WebAppIntegration_TurnSyncOff_InstMenuOptionSiteA_TurnSyncOn_SwitchProfileClientUserAClient2_InListNotLclyInstSiteA) {
   // Test contents are generated by script. Please do not modify!
   // See `chrome/test/webapps/README.md` for more info.
   // Sheriffs: Disabling this test is supported.
-  SyncTurnOff();
-  InstallMenuOption("SiteA");
-  SyncTurnOn();
-  SwitchProfileClients("UserAClient2");
-  CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.BeforeStateChangeAction();
+  helper_.SyncTurnOff();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.InstallMenuOption("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SyncTurnOn();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.SwitchProfileClients();
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppInListNotLocallyInstalled("SiteA");
+  helper_.AfterStateCheckAction();
 }
 #endif
 
 }  // namespace
+
 }  // namespace web_app
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 1c05d44..87dfa733 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
@@ -934,7 +934,7 @@
 
     @Override
     protected boolean needsUpdate() {
-        if (!mTab.getUrl().equals(mPriceDropData.gurl)) {
+        if (mPriceDropData.gurl != null && !mTab.getUrl().equals(mPriceDropData.gurl)) {
             return true;
         }
         return super.needsUpdate();
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index bab9ce1..bab4fd8e 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1823,10 +1823,6 @@
       "app_list/search/app_search_provider.h",
       "app_list/search/app_service_app_result.cc",
       "app_list/search/app_service_app_result.h",
-      "app_list/search/arc/arc_app_data_search_provider.cc",
-      "app_list/search/arc/arc_app_data_search_provider.h",
-      "app_list/search/arc/arc_app_data_search_result.cc",
-      "app_list/search/arc/arc_app_data_search_result.h",
       "app_list/search/arc/arc_app_reinstall_app_result.cc",
       "app_list/search/arc/arc_app_reinstall_app_result.h",
       "app_list/search/arc/arc_app_reinstall_search_provider.cc",
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
index 9df6d57..f2b6542 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Браўзеру Chrome не ўдалося праверыць усе паролі</translation>
 <translation id="2169830938017475061">Зараз</translation>
 <translation id="2172688499998841696">Апісанні відарысаў выключаны</translation>
+<translation id="2172905120685242547">Закрыць акно?</translation>
 <translation id="2175927920773552910">QR-код</translation>
 <translation id="218608176142494674">Абагульванне</translation>
 <translation id="2195339740518523951">Засцеражыце браўзер Chrome ад небяспек</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">не выканана</translation>
 <translation id="2781151931089541271">Засталася 1 секунда</translation>
 <translation id="2788468313014644040">Нумар групы</translation>
+<translation id="2800066122460699237">Укладка "<ph name="TAB_TITLE" />" будзе закрыта</translation>
 <translation id="2801022321632964776">Каб атрымаць інтэрфейс на сваёй мове ў апошняй версіі браўзера Chrome, абнавіце яго</translation>
 <translation id="2805756323405976993">Праграмы</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Меню карткі стужкі адкрыта на палову вышыні</translation>
 <translation id="2830783625999891985">Змесціва буфера абмену схавана</translation>
 <translation id="2839327205551510876">Вы адпісаліся ад сайта "<ph name="SITE_NAME" />"</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> укладка ў рэжыме інкогніта будзе закрыта}one{<ph name="TAB_COUNT_MANY" /> укладка ў рэжыме інкогніта будзе закрыта}few{<ph name="TAB_COUNT_MANY" /> укладкі ў рэжыме інкогніта будуць закрыты}many{<ph name="TAB_COUNT_MANY" /> укладак у рэжыме інкогніта будуць закрыты}other{<ph name="TAB_COUNT_MANY" /> укладкі ў рэжыме інкогніта будуць закрыты}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Праверка праводзілася дзень таму}one{Праверка праводзілася # дзень таму}few{Праверка праводзілася # дні таму}many{Праверка праводзілася # дзён таму}other{Праверка праводзілася # дня таму}}</translation>
 <translation id="2842985007712546952">Бацькоўская папка</translation>
 <translation id="2856503607207334158">Збой уваходу ў сістэму</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Выйсці</translation>
 <translation id="5227554086496586518">Націсніце, каб праглядзець вынікі пошуку</translation>
 <translation id="5233638681132016545">Новая ўкладка</translation>
+<translation id="5235196193381275927">Нешта пайшло не так падчас уваходу</translation>
 <translation id="5246093389635966745">Змяніць кнопку-ярлык на панэлі інструментаў</translation>
 <translation id="5250483651202458397">Здымак экрана. Дакраніцеся, каб закрыць.</translation>
 <translation id="5262378156578470238">Як толькі <ph name="DATE" /> пачнецца спампоўванне, вы пабачыце апавяшчэнне.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Праверка праводзілася гадзіну таму}one{Праверка праводзілася # гадзіну таму}few{Праверка праводзілася # гадзіны таму}many{Праверка праводзілася # гадзін таму}other{Праверка праводзілася # гадзіны таму}}</translation>
 <translation id="6545017243486555795">Ачысціць усе даныя</translation>
 <translation id="6546511553472444032">Файл можа быць шкодным</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{Укладка "<ph name="TAB_TITLE" />" і яшчэ <ph name="TAB_COUNT_ONE" /> укладка будуць закрыты}one{Укладка "<ph name="TAB_TITLE" />" і яшчэ <ph name="TAB_COUNT_MANY" /> укладка будуць закрыты}few{Укладка "<ph name="TAB_TITLE" />" і яшчэ <ph name="TAB_COUNT_MANY" /> укладкі будуць закрыты}many{Укладка "<ph name="TAB_TITLE" />" і яшчэ <ph name="TAB_COUNT_MANY" /> укладак будуць закрыты}other{Укладка "<ph name="TAB_TITLE" />" і яшчэ <ph name="TAB_COUNT_MANY" /> укладкі будуць закрыты}}</translation>
 <translation id="6560414384669816528">Пошук праз Sogou</translation>
 <translation id="656065428026159829">Яшчэ</translation>
 <translation id="6565959834589222080">Калі сетка Wi-Fi даступная, будзе выкарыстоўвацца яна</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Спіс прылад, з якімі можна абагуліць укладку, разгорнуты на палову экрана.</translation>
 <translation id="6783942555455976443">Захавайце старонку, каб прагледзець яе пазней. Вы атрымаеце напамін</translation>
 <translation id="6795633245022906657">Хуткае адкрыццё новай укладкі. Каб змяніць функцыю гэтай кнопкі, перайдзіце ў Налады.</translation>
+<translation id="6802555630140434547">Акно будзе закрыта</translation>
 <translation id="6811034713472274749">Старонка гатовая да прагляду</translation>
 <translation id="6813446258015311409">Аркуш "Увайсці ў Chrome" адкрыты.</translation>
 <translation id="6817747507826986771">Хуткае абагульванне гэтай старонкі. Каб змяніць функцыю гэтай кнопкі, націсніце на яе і ўтрымлівайце.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Каб мець свае закладкі на ўсіх прыладах, уключыце сінхранізацыю</translation>
 <translation id="8110087112193408731">Паказваць у службе лічбавага камфорту вашы дзеянні ў Chrome?</translation>
 <translation id="8127542551745560481">Змяніць галоўную старонку</translation>
+<translation id="8130309322784422030">Уліковыя даныя могуць быць устарэлымі</translation>
 <translation id="813082847718468539">Прагляд звестак пра сайт</translation>
 <translation id="8137558756159375272">Функцыя "Пошук дотыкам" адпраўляе вылучанае слова і бягучую старонку ў якасці кантэксту ў Google Пошук. Яе можна выключыць у <ph name="BEGIN_LINK" />Наладах<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Памочнік будзе з'яўляцца на сайтах, якія падтрымліваюцца, у сітуацыях, калі ён зможа вам дапамагаць</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> – не ўдалося спампаваць гэты моўны пакет. Паўтарыце спробу пазней.</translation>
 <translation id="8951232171465285730">Chrome сэканоміў вам <ph name="MEGABYTES" /> МБ</translation>
 <translation id="8965591936373831584">у стане чакання</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{Будуць закрыты ўкладкі: <ph name="INCOGNITO_TAB_COUNT" /> у рэжыме інкогніта і яшчэ <ph name="TAB_COUNT_ONE" />}one{Будуць закрыты ўкладкі: <ph name="INCOGNITO_TAB_COUNT" /> у рэжыме інкогніта і яшчэ <ph name="TAB_COUNT_MANY" />}few{Будуць закрыты ўкладкі: <ph name="INCOGNITO_TAB_COUNT" /> у рэжыме інкогніта і яшчэ <ph name="TAB_COUNT_MANY" />}many{Будуць закрыты ўкладкі: <ph name="INCOGNITO_TAB_COUNT" /> у рэжыме інкогніта і яшчэ <ph name="TAB_COUNT_MANY" />}other{Будуць закрыты ўкладкі: <ph name="INCOGNITO_TAB_COUNT" /> у рэжыме інкогніта і яшчэ <ph name="TAB_COUNT_MANY" />}}</translation>
 <translation id="8970887620466824814">Нешта пайшло не так.</translation>
 <translation id="8972098258593396643">Спампаваць у стандартную папку?</translation>
 <translation id="8987641763863173640">Кіраваць наладамі перадпрагляду відэа</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
index 68637ae..e5384d7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chromu se nepodařilo zkontrolovat všechna hesla</translation>
 <translation id="2169830938017475061">Teď</translation>
 <translation id="2172688499998841696">Popisy obrázků jsou vypnuté</translation>
+<translation id="2172905120685242547">Zavřít okno?</translation>
 <translation id="2175927920773552910">QR kód</translation>
 <translation id="218608176142494674">Sdílení</translation>
 <translation id="2195339740518523951">Aktivujte si v Chromu maximální zabezpečení</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">nezdařilo se</translation>
 <translation id="2781151931089541271">Zbývá: 1 s</translation>
 <translation id="2788468313014644040">Číslo skupiny</translation>
+<translation id="2800066122460699237">Zavře se karta <ph name="TAB_TITLE" /></translation>
 <translation id="2801022321632964776">Chcete-li si obsah prohlížet ve svém jazyce, aktualizujte na nejnovější verzi Chromu</translation>
 <translation id="2805756323405976993">Aplikace</translation>
 <translation id="2806840421670364300">Federované učení kohort</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Napůl otevřená nabídka karty informačního kanálu</translation>
 <translation id="2830783625999891985">Obsah schránky je skryt</translation>
 <translation id="2839327205551510876">Přestali jste sledovat web <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{Zavře se <ph name="TAB_COUNT_ONE" /> anonymní karta}few{Zavřou se <ph name="TAB_COUNT_MANY" /> anonymní karty}many{Zavře se <ph name="TAB_COUNT_MANY" /> anonymní karty}other{Zavře se <ph name="TAB_COUNT_MANY" /> anonymních karet}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Zkontrolováno před 1 dnem}few{Zkontrolováno před # dny}many{Zkontrolováno před # dne}other{Zkontrolováno před # dny}}</translation>
 <translation id="2842985007712546952">Nadřazená složka</translation>
 <translation id="2856503607207334158">Přihlášení se nezdařilo</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Odhlásit se</translation>
 <translation id="5227554086496586518">Klepnutím zobrazíte výsledky vyhledávání</translation>
 <translation id="5233638681132016545">Nová karta</translation>
+<translation id="5235196193381275927">Při přihlašování se něco pokazilo</translation>
 <translation id="5246093389635966745">Upravit zkratku lišty</translation>
 <translation id="5250483651202458397">Snímek obrazovky. Klepnutím zavřete.</translation>
 <translation id="5262378156578470238">Až stahování začne (<ph name="DATE" />), zobrazí se oznámení.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Zkontrolováno před hodinou}few{Zkontrolováno před # hodinami}many{Zkontrolováno před # hodiny}other{Zkontrolováno před # hodinami}}</translation>
 <translation id="6545017243486555795">Vymazat všechna data</translation>
 <translation id="6546511553472444032">Soubor může být škodlivý</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{Zavře se karta <ph name="TAB_TITLE" /> a <ph name="TAB_COUNT_ONE" /> další karta}few{Zavře se karta <ph name="TAB_TITLE" /> a <ph name="TAB_COUNT_MANY" /> další karty}many{Zavře se karta <ph name="TAB_TITLE" /> a <ph name="TAB_COUNT_MANY" /> další karty}other{Zavře se karta <ph name="TAB_TITLE" /> a <ph name="TAB_COUNT_MANY" /> dalších karet}}</translation>
 <translation id="6560414384669816528">Vyhledávat pomocí Sogou</translation>
 <translation id="656065428026159829">Zobrazit další</translation>
 <translation id="6565959834589222080">Síť Wi-Fi se použije, když bude k dispozici</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Seznam zařízení, se kterými se má karta sdílet, otevřený na poloviční výšku.</translation>
 <translation id="6783942555455976443">Uložit stránku na později a odeslat připomenutí</translation>
 <translation id="6795633245022906657">Rychle otevřít novou kartu. Tuto zkratku můžete upravit v Nastavení.</translation>
+<translation id="6802555630140434547">Okno se zavře</translation>
 <translation id="6811034713472274749">Stránka je připravená k zobrazení</translation>
 <translation id="6813446258015311409">Přihlášení do Chromu, otevřeno.</translation>
 <translation id="6817747507826986771">Rychle tuto stránku sdílet. Pokud tuto zkratku chcete upravit, podržte ji.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Chcete-li mít záložky ve všech zařízeních, zapněte synchronizaci</translation>
 <translation id="8110087112193408731">Zobrazovat vaši aktivitu v Chromu v digitální rovnováze?</translation>
 <translation id="8127542551745560481">Upravit domovskou stránku</translation>
+<translation id="8130309322784422030">Uložené přihlašovací údaje mohou být zastaralé</translation>
 <translation id="813082847718468539">Zobrazit informace o stránkách</translation>
 <translation id="8137558756159375272">Vyhledání klepnutím odešle vybrané slovo a aktuální stránku jako kontext do Vyhledávání Google. Tuto funkci můžete vypnout v <ph name="BEGIN_LINK" />Nastavení<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Asistent se zobrazí, až zjistí, že vám na podporovaných webech může pomoci</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> – Tento jazyk se nepodařilo stáhnout. Zkuste to znovu později.</translation>
 <translation id="8951232171465285730">Chrome vám ušetřil <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">nevyřízeno</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{Zavře se <ph name="INCOGNITO_TAB_COUNT" /> anonymní a <ph name="TAB_COUNT_ONE" /> další karta}few{Zavřou se <ph name="INCOGNITO_TAB_COUNT" /> anonymní a <ph name="TAB_COUNT_MANY" /> další karty}many{Zavře se <ph name="INCOGNITO_TAB_COUNT" /> anonymní a <ph name="TAB_COUNT_MANY" /> další karty}other{Zavře se <ph name="INCOGNITO_TAB_COUNT" /> anonymních a <ph name="TAB_COUNT_MANY" /> dalších karet}}</translation>
 <translation id="8970887620466824814">Došlo k chybě.</translation>
 <translation id="8972098258593396643">Stáhnout do výchozí složky?</translation>
 <translation id="8987641763863173640">Spravovat nastavení náhledu videa</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 b973e04..41a9833a 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
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome ei voinut tarkistaa kaikkia salasanoja</translation>
 <translation id="2169830938017475061">Nyt</translation>
 <translation id="2172688499998841696">Kuvaselitykset ovat poissa päältä</translation>
+<translation id="2172905120685242547">Suljetaanko ikkuna?</translation>
 <translation id="2175927920773552910">QR-koodi</translation>
 <translation id="218608176142494674">Jakaminen</translation>
 <translation id="2195339740518523951">Ota Chromen tehokkain suojaus käyttöön</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">epäonnistui</translation>
 <translation id="2781151931089541271">1 sekunti jäljellä</translation>
 <translation id="2788468313014644040">Ryhmän numero</translation>
+<translation id="2800066122460699237">Tämä välilehti suljetaan: <ph name="TAB_TITLE" /></translation>
 <translation id="2801022321632964776">Päivitä Chrome uusimpaan versioon, niin se toimii omalla kielelläsi</translation>
 <translation id="2805756323405976993">Sovellukset</translation>
 <translation id="2806840421670364300">FLoC-kohdentaminen</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Fiidikorttien valikko puolivälin korkuinen</translation>
 <translation id="2830783625999891985">Leikepöydän sisältö piilotettu</translation>
 <translation id="2839327205551510876">Seuraaminen lopetettiin: <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> incognito-välilehti suljetaan}other{<ph name="TAB_COUNT_MANY" /> incognito-välilehteä suljetaan}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Tarkistettu 1 päivä sitten}other{Tarkistettu # päivää sitten}}</translation>
 <translation id="2842985007712546952">Ylätason kansio</translation>
 <translation id="2856503607207334158">Sisäänkirjautuminen epäonnistui</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Kirjaudu ulos</translation>
 <translation id="5227554086496586518">Katso hakutulokset napauttamalla</translation>
 <translation id="5233638681132016545">Uusi välilehti</translation>
+<translation id="5235196193381275927">Jotain meni pieleen sisäänkirjautumisen aikana</translation>
 <translation id="5246093389635966745">Muokkaa työkalupalkin pikakuvaketta</translation>
 <translation id="5250483651202458397">Kuvakaappaus. Sulje napauttamalla.</translation>
 <translation id="5262378156578470238">Näet ilmoituksen, kun tämä lataus alkaa <ph name="DATE" />.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Tarkistettu 1 tunti sitten}other{Tarkistettu # tuntia sitten}}</translation>
 <translation id="6545017243486555795">Poista kaikki tiedot</translation>
 <translation id="6546511553472444032">Tiedosto saattaa olla haitallinen</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> ja <ph name="TAB_COUNT_ONE" /> muu välilehti suljetaan}other{<ph name="TAB_TITLE" /> ja <ph name="TAB_COUNT_MANY" /> muuta välilehteä suljetaan}}</translation>
 <translation id="6560414384669816528">Käytä Sogouta</translation>
 <translation id="656065428026159829">Katso lisää</translation>
 <translation id="6565959834589222080">Wi-Fi-yhteyttä käytetään, kun se on saatavilla</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Välilehden jakamisen laiteluettelo avataan puolen näytön korkeudella.</translation>
 <translation id="6783942555455976443">Tallenna sivu myöhemmin luettavaksi, saat muistutuksen</translation>
 <translation id="6795633245022906657">Avaa uusi välilehti nopeasti. Voit muokata pikakuvaketta asetuksista.</translation>
+<translation id="6802555630140434547">Ikkuna suljetaan</translation>
 <translation id="6811034713472274749">Sivu on valmis näytettäväksi</translation>
 <translation id="6813446258015311409">Kirjaudu Chromeen, avattu.</translation>
 <translation id="6817747507826986771">Jaa sivu nopeasti. Kosketa pikakuvaketta pitkään, niin voit muokata sitä.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Ota synkronointi käyttöön, niin voit käyttää kirjanmerkkejä kaikilla laitteillasi</translation>
 <translation id="8110087112193408731">Näytetäänkö Chrome-toimintasi Digitaalisessa hyvinvoinnissa?</translation>
 <translation id="8127542551745560481">Muokkaa etusivua</translation>
+<translation id="8130309322784422030">Tallennetut sisäänkirjautumistietosi voivat olla vanhentuneita</translation>
 <translation id="813082847718468539">Näytä sivuston tiedot</translation>
 <translation id="8137558756159375272">Koskettamalla hakeminen lähettää valitun sanan ja nykyisen sivun Google-haulle haun kontekstina. Voit poistaa ominaisuuden käytöstä <ph name="BEGIN_LINK" />asetuksissa<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Assistant tulee näkyviin, kun se havaitsee mahdollisuuden auttaa sinua tuetulla verkkosivulla</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> – Kieltä ei voitu ladata. Yritä myöhemmin uudelleen.</translation>
 <translation id="8951232171465285730">Chrome on säästänyt <ph name="MEGABYTES" /> Mt tilaa</translation>
 <translation id="8965591936373831584">odottaa</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> incognito-välilehti ja <ph name="TAB_COUNT_ONE" /> muu välilehti suljetaan}other{<ph name="INCOGNITO_TAB_COUNT" /> incognito-välilehteä ja <ph name="TAB_COUNT_MANY" /> muuta välilehteä suljetaan}}</translation>
 <translation id="8970887620466824814">Tapahtui virhe.</translation>
 <translation id="8972098258593396643">Ladataanko tiedosto oletuskansioon?</translation>
 <translation id="8987641763863173640">Muuta videoesikatselun asetuksia</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
index d97f6395..d446937a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Hindi masuri ng Chrome ang lahat ng password</translation>
 <translation id="2169830938017475061">Ngayon</translation>
 <translation id="2172688499998841696">Naka-off ang mga paglalarawan ng larawan</translation>
+<translation id="2172905120685242547">Isara ang window?</translation>
 <translation id="2175927920773552910">QR Code</translation>
 <translation id="218608176142494674">Pagbabahagi</translation>
 <translation id="2195339740518523951">Kunin ang pinakamahusay na seguridad ng Chrome</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">nabigo</translation>
 <translation id="2781151931089541271">1 segundo na lang ang natitira</translation>
 <translation id="2788468313014644040">Numero ng grupo</translation>
+<translation id="2800066122460699237">Isasara ang tab na <ph name="TAB_TITLE" /></translation>
 <translation id="2801022321632964776">I-update para makuha ang iyong wika sa pinakabagong bersyon ng Chrome</translation>
 <translation id="2805756323405976993">Mga App</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Half height ng menu ng feed card</translation>
 <translation id="2830783625999891985">Nakatago ang mga content ng clipboard</translation>
 <translation id="2839327205551510876">Hindi na sinusubaybayan ang <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> tab na incognito ang isasara}one{<ph name="TAB_COUNT_MANY" /> tab na incognito ang isasara}other{<ph name="TAB_COUNT_MANY" /> na tab na incognito ang isasara}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Nagsuri 1 araw ang nakalipas}one{Nagsuri # araw ang nakalipas}other{Nagsuri # na araw ang nakalipas}}</translation>
 <translation id="2842985007712546952">Pangunahing folder</translation>
 <translation id="2856503607207334158">Pumalya ang pag-sign in</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Mag-sign out</translation>
 <translation id="5227554086496586518">I-tap para makita ang mga resulta ng paghahanap</translation>
 <translation id="5233638681132016545">Bagong tab</translation>
+<translation id="5235196193381275927">Nagkaproblema habang nagsa-sign-in</translation>
 <translation id="5246093389635966745">I-edit ang shortcut ng toolbar</translation>
 <translation id="5250483651202458397">Screenshot. I-tap para isara.</translation>
 <translation id="5262378156578470238">Makakakita ka ng notification kapag nagsimula na ang pag-download na ito sa <ph name="DATE" />.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Nagsuri 1 oras ang nakalipas}one{Nagsuri # oras ang nakalipas}other{Nagsuri # na oras ang nakalipas}}</translation>
 <translation id="6545017243486555795">I-clear ang Lahat ng Data</translation>
 <translation id="6546511553472444032">Posibleng mapaminsala ang file</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{Isasara ang <ph name="TAB_TITLE" /> at <ph name="TAB_COUNT_ONE" /> pang tab}one{Isasara ang <ph name="TAB_TITLE" /> at <ph name="TAB_COUNT_MANY" /> pang tab}other{Isasara ang <ph name="TAB_TITLE" /> at <ph name="TAB_COUNT_MANY" /> pang tab}}</translation>
 <translation id="6560414384669816528">Maghanap gamit ang Sogou</translation>
 <translation id="656065428026159829">Tumingin pa</translation>
 <translation id="6565959834589222080">Ginagamit ang Wi-Fi kapag available</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Nakabukas ang listahan ng mga device kung saan magbabahagi ng tab nang kalahati ang taas.</translation>
 <translation id="6783942555455976443">I-save ang page na ito para sa ibang pagkakataon at makatanggap ng paalala</translation>
 <translation id="6795633245022906657">Mabilis na magbukas ng bagong tab. Para i-edit ang shortcut na ito, pumunta sa Mga Setting.</translation>
+<translation id="6802555630140434547">Isasara ang window</translation>
 <translation id="6811034713472274749">Maaari nang tingnan ang page</translation>
 <translation id="6813446258015311409">Nakabukas ang pag-sign in sa Chrome.</translation>
 <translation id="6817747507826986771">Mabilis na ibahagi ang page na ito. Para i-edit ang shortcut na ito, pindutin ito nang matagal.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Para makuha ang iyong mga bookmark sa lahat ng device mo, i-on ang pag-sync</translation>
 <translation id="8110087112193408731">Ipakita sa Digital Wellness ang aktibidad mo sa Chrome?</translation>
 <translation id="8127542551745560481">I-edit ang homepage</translation>
+<translation id="8130309322784422030">Posibleng hindi updated ang iyong naka-store na impormasyon sa pag-sign in</translation>
 <translation id="813082847718468539">Tingnan ang impormasyon ng site</translation>
 <translation id="8137558756159375272">Ipinadadala ng Pindutin upang Hanapin ang piniling salita at ang kasalukuyang page bilang konteksto sa Paghahanap sa Google. Maaari mo itong i-off sa <ph name="BEGIN_LINK" />Mga Setting<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Lalabas ang Assistant kapag na-detect nitong matutulungan ka nito sa mga suportadong website</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - Hindi ma-download ang wikang ito. Subukan ulit sa ibang pagkakataon.</translation>
 <translation id="8951232171465285730">Nag-save ang Chrome ng <ph name="MEGABYTES" /> MB para sa iyo</translation>
 <translation id="8965591936373831584">nakabinbin</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{Isasara ang <ph name="INCOGNITO_TAB_COUNT" /> tab na incognito at <ph name="TAB_COUNT_ONE" /> pang tab}one{Isasara ang <ph name="INCOGNITO_TAB_COUNT" /> tab na incognito at <ph name="TAB_COUNT_MANY" /> pang tab}other{Isasara ang <ph name="INCOGNITO_TAB_COUNT" /> na tab na incognito at <ph name="TAB_COUNT_MANY" /> pang tab}}</translation>
 <translation id="8970887620466824814">Nagkaproblema.</translation>
 <translation id="8972098258593396643">I-download sa default na folder?</translation>
 <translation id="8987641763863173640">Pamahalaan ang Mga Setting ng Preview ng Video</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
index fdc32d1..c998959 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome सभी पासवर्ड की जांच नहीं कर सका</translation>
 <translation id="2169830938017475061">अभी</translation>
 <translation id="2172688499998841696">इमेज की जानकारी जोड़ने की सुविधा बंद कर दी गई है</translation>
+<translation id="2172905120685242547">क्या आप विंडो बंद करना चाहते हैं?</translation>
 <translation id="2175927920773552910">क्यूआर कोड</translation>
 <translation id="218608176142494674">शेयर किया जा रहा है</translation>
 <translation id="2195339740518523951">Chrome की सबसे मज़बूत सुरक्षा पाएं</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">डाउनलोड नहीं हो सका</translation>
 <translation id="2781151931089541271">1 सेकंड शेष</translation>
 <translation id="2788468313014644040">ग्रुप नंबर</translation>
+<translation id="2800066122460699237"><ph name="TAB_TITLE" /> टैब बंद हो जाएगा</translation>
 <translation id="2801022321632964776">Chrome के नए वर्शन में अपनी भाषा पाने के लिए अपडेट करें</translation>
 <translation id="2805756323405976993">ऐप्स</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">फ़ीड कार्ड मेन्यू आधा खुल गया है</translation>
 <translation id="2830783625999891985">क्लिपबोर्ड का कॉन्टेंट छिपाया गया</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> को अनफ़ॉलो कर दिया गया</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> गुप्त टैब बंद हो जाएगा}one{<ph name="TAB_COUNT_MANY" /> गुप्त टैब बंद हो जाएगा}other{<ph name="TAB_COUNT_MANY" /> गुप्त टैब बंद हो जाएंगे}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{जांच 1 दिन पहले की गई}one{जांच # दिन पहले की गई}other{जांच # दिन पहले की गई}}</translation>
 <translation id="2842985007712546952">मूल फ़ोल्‍डर</translation>
 <translation id="2856503607207334158">साइन इन नहीं हो सका</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">साइन आउट करें</translation>
 <translation id="5227554086496586518">खोज नतीजे देखने के लिए टैप करें</translation>
 <translation id="5233638681132016545">नया टैब</translation>
+<translation id="5235196193381275927">साइन इन करते समय कोई गड़बड़ी हुई है</translation>
 <translation id="5246093389635966745">टूलबार शॉर्टकट में बदलाव करें</translation>
 <translation id="5250483651202458397">स्क्रीनशॉट. बंद करने के लिए इस पर टैप करें.</translation>
 <translation id="5262378156578470238">जब यह डाउनलोड <ph name="DATE" /> को शुरू होगा, तब आपको एक सूचना दिखेगी.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{जांच 1 घंटा पहले की गई}one{जांच # घंटा पहले की गई}other{जांच # घंटे पहले की गई}}</translation>
 <translation id="6545017243486555795">सभी डेटा साफ़ करें</translation>
 <translation id="6546511553472444032">यह फ़ाइल नुकसान पहुंचा सकती है</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> और <ph name="TAB_COUNT_ONE" /> अन्य टैब बंद हो जाएगा}one{<ph name="TAB_TITLE" /> और <ph name="TAB_COUNT_MANY" /> अन्य टैब बंद हो जाएगा}other{<ph name="TAB_TITLE" /> और <ph name="TAB_COUNT_MANY" /> अन्य टैब बंद हो जाएंगे}}</translation>
 <translation id="6560414384669816528">Sogou से खोजें</translation>
 <translation id="656065428026159829">ज़्यादा देखें</translation>
 <translation id="6565959834589222080">उपलब्ध होने पर वाई-फ़ाई का इस्तेमाल किया जाता है</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">टैब शेयर करने के लिए चुने जाने वाले डिवाइस की सूची आधी खुली हुई है.</translation>
 <translation id="6783942555455976443">इस पेज को बाद के लिए सेव करें और रिमाइंडर पाएं</translation>
 <translation id="6795633245022906657">फटाफट एक नया टैब खोलें. इस शॉर्टकट में बदलाव करने के लिए, सेटिंग पर जाएं.</translation>
+<translation id="6802555630140434547">विंडो बंद हो जाएगी</translation>
 <translation id="6811034713472274749">पेज देखने के लिए तैयार है</translation>
 <translation id="6813446258015311409">'Chrome में साइन इन करें' पेज खोला गया.</translation>
 <translation id="6817747507826986771">इस पेज को तेज़ी से शेयर करें. इस शॉर्टकट में बदलाव करने के लिए, दबाकर रखें.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">अपने सभी डिवाइस पर अपने बुकमार्क पाने के लिए, 'सिंक करें' को चालू करें</translation>
 <translation id="8110087112193408731">'डिजिटल वेलबीइंग' में अपनी Chrome गतिविधि दिखाना चाहते हैं?</translation>
 <translation id="8127542551745560481">होम पेज में बदलाव करें</translation>
+<translation id="8130309322784422030">हो सकता है कि आपकी सेव की गई, साइन इन से जुड़ी जानकारी पुरानी हो</translation>
 <translation id="813082847718468539">साइट जानकारी देखें</translation>
 <translation id="8137558756159375272">'खोजने के लिए छुएं' सुविधा चुने हुए शब्‍द और मौजूदा पेज को संदर्भ के रूप में 'Google सर्च' पर भेजती है. आप इसे <ph name="BEGIN_LINK" />सेटिंग<ph name="END_LINK" /> में जाकर बंद कर सकते हैं.</translation>
 <translation id="8153351135626613369">कुछ वेबसाइटों पर Assistant आपकी मदद कर सकती है. जब आप इनमें से किसी वेबसाइट पर जाएंगे, तब Assistant अपने-आप स्क्रीन पर दिखेगी</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - यह भाषा डाउनलोड नहीं की जा सकी. कुछ देर बाद कोशिश करें.</translation>
 <translation id="8951232171465285730">Chrome ने आपके <ph name="MEGABYTES" /> एमबी की बचत की</translation>
 <translation id="8965591936373831584">डाउनलोड बाकी है</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> गुप्त और <ph name="TAB_COUNT_ONE" /> अन्य टैब बंद हो जाएगा}one{<ph name="INCOGNITO_TAB_COUNT" /> गुप्त और <ph name="TAB_COUNT_MANY" /> अन्य टैब बंद हो जाएगा}other{<ph name="INCOGNITO_TAB_COUNT" /> गुप्त और <ph name="TAB_COUNT_MANY" /> अन्य टैब बंद हो जाएंगे}}</translation>
 <translation id="8970887620466824814">कुछ गड़बड़ी हुई.</translation>
 <translation id="8972098258593396643">डिफ़ॉल्ट फ़ोल्डर में डाउनलोड करें?</translation>
 <translation id="8987641763863173640">वीडियो की झलक की सेटिंग मैनेज करें</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 c3aff8f..2b87ed4 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
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome tidak dapat memeriksa semua sandi</translation>
 <translation id="2169830938017475061">Sekarang</translation>
 <translation id="2172688499998841696">Deskripsi gambar nonaktif</translation>
+<translation id="2172905120685242547">Tutup jendela?</translation>
 <translation id="2175927920773552910">Kode QR</translation>
 <translation id="218608176142494674">Berbagi</translation>
 <translation id="2195339740518523951">Dapatkan keamanan terkuat Chrome</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">gagal</translation>
 <translation id="2781151931089541271">1 detik lagi</translation>
 <translation id="2788468313014644040">Nomor grup</translation>
+<translation id="2800066122460699237">Tab <ph name="TAB_TITLE" /> akan ditutup</translation>
 <translation id="2801022321632964776">Update untuk mendapatkan bahasa Anda di versi terbaru Chrome</translation>
 <translation id="2805756323405976993">Apl</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">Konten papan klip disembunyikan</translation>
 <translation id="2839327205551510876">Berhenti mengikuti <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> tab samaran akan ditutup}other{<ph name="TAB_COUNT_MANY" /> tab samaran akan ditutup}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Diperiksa 1 hari yang lalu}other{Diperiksa # hari yang lalu}}</translation>
 <translation id="2842985007712546952">Folder induk</translation>
 <translation id="2856503607207334158">Login gagal</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Logout</translation>
 <translation id="5227554086496586518">Ketuk untuk melihat hasil penelusuran</translation>
 <translation id="5233638681132016545">Tab baru</translation>
+<translation id="5235196193381275927">Terjadi error saat login</translation>
 <translation id="5246093389635966745">Edit pintasan toolbar</translation>
 <translation id="5250483651202458397">Screenshot. Ketuk untuk menutup.</translation>
 <translation id="5262378156578470238">Anda akan melihat notifikasi saat download ini dimulai pada <ph name="DATE" />.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Diperiksa 1 jam yang lalu}other{Diperiksa # jam yang lalu}}</translation>
 <translation id="6545017243486555795">Hapus Semua Data</translation>
 <translation id="6546511553472444032">File mungkin berbahaya</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> dan <ph name="TAB_COUNT_ONE" /> tab lainnya akan ditutup}other{<ph name="TAB_TITLE" /> dan <ph name="TAB_COUNT_MANY" /> tab lainnya akan ditutup}}</translation>
 <translation id="6560414384669816528">Menelusuri menggunakan Sogou</translation>
 <translation id="656065428026159829">Lihat lainnya</translation>
 <translation id="6565959834589222080">Wi-Fi akan digunakan jika tersedia</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Daftar perangkat yang dapat digunakan untuk berbagi tab terbuka dalam setengah layar.</translation>
 <translation id="6783942555455976443">Simpan halaman ini untuk dilihat nanti dan dapatkan pengingat</translation>
 <translation id="6795633245022906657">Buka tab baru dengan cepat. Untuk mengedit pintasan ini, buka Setelan.</translation>
+<translation id="6802555630140434547">Jendela akan ditutup</translation>
 <translation id="6811034713472274749">Halaman siap ditampilkan</translation>
 <translation id="6813446258015311409">Login ke Chrome, dibuka.</translation>
 <translation id="6817747507826986771">Bagikan halaman ini dengan cepat. Sentuh lama untuk mengedit pintasan ini.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Untuk dapat mengakses bookmark Anda di semua perangkat, aktifkan sinkronisasi</translation>
 <translation id="8110087112193408731">Tampilkan aktivitas Chrome Anda di Kesehatan Digital?</translation>
 <translation id="8127542551745560481">Edit halaman beranda</translation>
+<translation id="8130309322784422030">Info login tersimpan Anda mungkin sudah tidak berlaku</translation>
 <translation id="813082847718468539">Lihat informasi situs</translation>
 <translation id="8137558756159375272">Sentuh untuk Menelusuri mengirimkan kata yang dipilih dan halaman yang dibuka sebagai konteks ke Google Penelusuran. Anda dapat menonaktifkannya di <ph name="BEGIN_LINK" />Setelan<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Asisten akan muncul saat mendeteksi bahwa Asisten dapat membantu Anda di situs yang didukung</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - Bahasa ini tidak dapat didownload. Coba lagi nanti.</translation>
 <translation id="8951232171465285730">Chrome telah menghemat <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">ditunda</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> tab samaran dan <ph name="TAB_COUNT_ONE" /> tab lainnya akan ditutup}other{<ph name="INCOGNITO_TAB_COUNT" /> tab samaran dan <ph name="TAB_COUNT_MANY" /> tab lainnya akan ditutup}}</translation>
 <translation id="8970887620466824814">Terjadi error.</translation>
 <translation id="8972098258593396643">Download ke folder default?</translation>
 <translation id="8987641763863173640">Mengelola Setelan Pratinjau Video</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
index 4541f7c..5a3a6c6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome ですべてのパスワードを確認できませんでした</translation>
 <translation id="2169830938017475061">たった今</translation>
 <translation id="2172688499998841696">画像の説明をオフにしました</translation>
+<translation id="2172905120685242547">ウィンドウを閉じますか?</translation>
 <translation id="2175927920773552910">QR コード</translation>
 <translation id="218608176142494674">共有</translation>
 <translation id="2195339740518523951">Chrome の最高水準のセキュリティで保護する</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">失敗</translation>
 <translation id="2781151931089541271">残り 1 秒</translation>
 <translation id="2788468313014644040">グループ番号</translation>
+<translation id="2800066122460699237">「<ph name="TAB_TITLE" />」タブが閉じられます</translation>
 <translation id="2801022321632964776">Chrome を更新し、最新バージョンでお使いの言語を入手してください</translation>
 <translation id="2805756323405976993">アプリ</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">フィードカード メニューが画面の下半分に開いています</translation>
 <translation id="2830783625999891985">クリップボードの内容は非表示になっています</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> のフォローを解除しました</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> つのシークレット タブが閉じられます}other{<ph name="TAB_COUNT_MANY" /> 個のシークレット タブが閉じられます}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{前回の確認: 1 日前}other{前回の確認: # 日前}}</translation>
 <translation id="2842985007712546952">親フォルダ</translation>
 <translation id="2856503607207334158">ログインできませんでした</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">ログアウト</translation>
 <translation id="5227554086496586518">タップして検索結果を見る</translation>
 <translation id="5233638681132016545">新しいタブ</translation>
+<translation id="5235196193381275927">ログイン中に問題が発生しました</translation>
 <translation id="5246093389635966745">ツールバー ショートカットの編集</translation>
 <translation id="5250483651202458397">スクリーンショット。タップすると閉じます。</translation>
 <translation id="5262378156578470238"><ph name="DATE" /> にこのダウンロードが開始されると通知が表示されます。</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{前回の確認: 1 時間前}other{前回の確認: # 時間前}}</translation>
 <translation id="6545017243486555795">すべてのデータを削除</translation>
 <translation id="6546511553472444032">有害なファイルの可能性があります</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{「<ph name="TAB_TITLE" />」と <ph name="TAB_COUNT_ONE" /> つ以上のタブが閉じられます}other{「<ph name="TAB_TITLE" />」と <ph name="TAB_COUNT_MANY" /> 個以上のタブが閉じられます}}</translation>
 <translation id="6560414384669816528">Sogou で検索します</translation>
 <translation id="656065428026159829">もっと見る</translation>
 <translation id="6565959834589222080">可能な場合は Wi-Fi を使用します</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">タブを共有するデバイスのリストが画面の下半分に表示されました。</translation>
 <translation id="6783942555455976443">このページを後で読めるように保存してリマインダーを受け取ります</translation>
 <translation id="6795633245022906657">新しいタブをすばやく開きます。このショートカットは [設定] で編集できます。</translation>
+<translation id="6802555630140434547">ウィンドウが閉じられます</translation>
 <translation id="6811034713472274749">ページを表示できます</translation>
 <translation id="6813446258015311409">Chrome にログイン、の画面が開きました。</translation>
 <translation id="6817747507826986771">このページをすばやく共有します。このショートカットを編集するには、長押ししてください。</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">お使いのどのデバイスでも同じブックマークを使用するには、同期を有効にします</translation>
 <translation id="8110087112193408731">Chrome のアクティビティを Digital Wellbeing で表示しますか?</translation>
 <translation id="8127542551745560481">ホームページを編集</translation>
+<translation id="8130309322784422030">保存されているログイン情報が最新でない可能性があります。</translation>
 <translation id="813082847718468539">サイト情報を表示</translation>
 <translation id="8137558756159375272">「タップして検索」では選択したキーワードと現在のページがコンテキストとして Google 検索に送信されます。これは [<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />] で無効にすることができます。</translation>
 <translation id="8153351135626613369">サポート可能なウェブサイトでアシスタントが自動的に表示されます</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - この言語をダウンロードできませんでした。しばらくしてからもう一度お試しください。</translation>
 <translation id="8951232171465285730">Chrome で <ph name="MEGABYTES" /> MB の容量を節約しました</translation>
 <translation id="8965591936373831584">保留中</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> 個のシークレット タブと <ph name="TAB_COUNT_ONE" /> つ以上のタブが閉じられます}other{<ph name="INCOGNITO_TAB_COUNT" /> 個のシークレット タブと <ph name="TAB_COUNT_MANY" /> 個以上のタブが閉じられます}}</translation>
 <translation id="8970887620466824814">エラーが発生しました。</translation>
 <translation id="8972098258593396643">デフォルトのフォルダにダウンロードしますか?</translation>
 <translation id="8987641763863173640">動画プレビューの設定を管理します</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
index 346c109..33ba0f7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome-მა ვერ შეამოწმა ყველა პაროლი</translation>
 <translation id="2169830938017475061">ახლა</translation>
 <translation id="2172688499998841696">სურათების აღწერილობები გამორთულია</translation>
+<translation id="2172905120685242547">გსურთ, დახუროთ ფანჯარა?</translation>
 <translation id="2175927920773552910">QR კოდი</translation>
 <translation id="218608176142494674">გაზიარება</translation>
 <translation id="2195339740518523951">ისარგებლეთ Chrome-ის უსაფრთხოების ყველაზე ძლიერი ფუნქციებით</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">ვერ მოხერხდა</translation>
 <translation id="2781151931089541271">დარჩენილია 1 წმ</translation>
 <translation id="2788468313014644040">ჯგუფის ნომერი</translation>
+<translation id="2800066122460699237">ჩანართი „<ph name="TAB_TITLE" />“ დაიხურება</translation>
 <translation id="2801022321632964776">განაახლეთ და ისარგებლეთ თქვენი ენით Chrome-ის უახლეს ვერსიაში</translation>
 <translation id="2805756323405976993">პროგრამები</translation>
 <translation id="2806840421670364300">კოჰორტების თანამშრომლობითი შესწავლა</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">არხის ბარათის მენიუ ნახევარ სიმაღლეზე</translation>
 <translation id="2830783625999891985">გაცვლის ბუფერის შიგთავსი დამალულია</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> აღარ არის თვალმიდევნებული</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> ინკოგნიტო ჩანართი დაიხურება}other{<ph name="TAB_COUNT_MANY" /> ინკოგნიტო ჩანართი დაიხურება}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{შემოწმდა 1 დღის წინ}other{შემოწმდა # დღის წინ}}</translation>
 <translation id="2842985007712546952">ზედა საქაღალდე</translation>
 <translation id="2856503607207334158">შესვლა ვერ მოხერხდა</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">გამოსვლა</translation>
 <translation id="5227554086496586518">შეეხეთ ძიების შედეგების სანახავად</translation>
 <translation id="5233638681132016545">ახალი ჩანართი</translation>
+<translation id="5235196193381275927">შესვლისას წარმოიქმნა შეფერხება</translation>
 <translation id="5246093389635966745">ხელსაწყოთა ზოლის მალსახმობის რედაქტირება</translation>
 <translation id="5250483651202458397">ეკრანის ანაბეჭდი. შეეხეთ დასახურად.</translation>
 <translation id="5262378156578470238"><ph name="DATE" />-ს ჩამოტვირთვის დაწყების შესახებ შეტყობინებას მიიღებთ.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{შემოწმდა 1 საათის წინ}other{შემოწმდა # საათის წინ}}</translation>
 <translation id="6545017243486555795">ყველა მონაცემის გასუფთავება</translation>
 <translation id="6546511553472444032">ფაილი, შესაძლოა, საზიანო იყოს</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> და <ph name="TAB_COUNT_ONE" /> სხვა ჩანართი დაიხურება}other{<ph name="TAB_TITLE" /> და <ph name="TAB_COUNT_MANY" /> სხვა ჩანართი დაიხურება}}</translation>
 <translation id="6560414384669816528">ძიების Sogou-ს მეშვეობით განხორციელება</translation>
 <translation id="656065428026159829">მეტის ნახვა</translation>
 <translation id="6565959834589222080">ხელმისაწვდომობის მიხედვით გამოიყენება Wi-Fi</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">მოწყობილობების სია, რომლებთანაც უნდა გაზიარდეს ჩანართი, გახსნილია ნახევარ სიმაღლეზე.</translation>
 <translation id="6783942555455976443">შეინახეთ ეს გვერდი მოგვიანებით წასაკითხად და მიიღეთ შეხსენება</translation>
 <translation id="6795633245022906657">სწრაფად გახსენით ახალი ჩანართი. ამ მალსახმობის რედაქტირებისთვის გადადით პარამეტრებზე.</translation>
+<translation id="6802555630140434547">ფანჯარა დაიხურება</translation>
 <translation id="6811034713472274749">გვერდი მზად არის სანახავად</translation>
 <translation id="6813446258015311409">Chrome-ში შესვლა, გახსნილია.</translation>
 <translation id="6817747507826986771">სწრაფად გააზიარეთ ეს გვერდი. ამ მალსახმობის რედაქტირებისთვის შეეხეთ ხანგრძლივად.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">თქვენს ყველა მოწყობილობაზე არსებულ სანიშნეებზე წვდომისთვის ჩართეთ სინქრონიზაცია</translation>
 <translation id="8110087112193408731">გსურთ, ციფრულ კომფორტში გამოჩნდეს თქვენი აქტივობა Chrome-იდან?</translation>
 <translation id="8127542551745560481">მთავარი გვერდის რედაქტირება</translation>
+<translation id="8130309322784422030">სისტემაში შესვლის თქვენ მიერ შენახული ინფორმაცია, შესაძლოა, მოძველებული იყოს</translation>
 <translation id="813082847718468539">საიტის ინფორმაციის ნახვა</translation>
 <translation id="8137558756159375272">„შეეხეთ ძიებისთვის“ არჩეულ სიტყვას და მიმდინარე გვერდს კონტექსტის სახით, Google Search-ს უგზავნის. ამის გამორთვა <ph name="BEGIN_LINK" />პარამეტრებში<ph name="END_LINK" /> შეგიძლიათ.</translation>
 <translation id="8153351135626613369">ასისტენტი გამოჩნდება მხარდაჭერილ ვებსაიტებზე, როცა თქვენი დახმარება შეეძლება</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> — ამ ენის ჩამოტვირთვა ვერ მოხერხდა. ცადეთ მოგვიანებით.</translation>
 <translation id="8951232171465285730">Chrome-ის მეშვეობით თქვენ <ph name="MEGABYTES" /> მბაიტი დაზოგეთ</translation>
 <translation id="8965591936373831584">მომლოდინე</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> ინკოგნიტო და <ph name="TAB_COUNT_ONE" /> სხვა ჩანართი დაიხურება}other{<ph name="INCOGNITO_TAB_COUNT" /> ინკოგნიტო და <ph name="TAB_COUNT_MANY" /> სხვა ჩანართი დაიხურება}}</translation>
 <translation id="8970887620466824814">წარმოიქმნა შეფერხება.</translation>
 <translation id="8972098258593396643">გსურთ ნაგულისხმევ საქაღალდეში ჩამოტვირთვა?</translation>
 <translation id="8987641763863173640">მართეთ ვიდეოების გადახედვის პარამეტრები</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
index 80ee222..24237fa 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome មិនអាចពិនិត្យ​ពាក្យសម្ងាត់​ទាំងអស់បានទេ</translation>
 <translation id="2169830938017475061">ឥឡូវ​នេះ</translation>
 <translation id="2172688499998841696">ការពណ៌នាអំពីរូបភាព​ត្រូវបានបិទ</translation>
+<translation id="2172905120685242547">បិទវិនដូឬ?</translation>
 <translation id="2175927920773552910">កូដ QR</translation>
 <translation id="218608176142494674">ការចែករំលែក</translation>
 <translation id="2195339740518523951">ទទួលបានសុវត្ថិភាពខ្លាំងបំផុតរបស់ Chrome</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">បានបរាជ័យ</translation>
 <translation id="2781151931089541271">នៅសល់ 1 វិនាទីទៀត</translation>
 <translation id="2788468313014644040">លេខក្រុម</translation>
+<translation id="2800066122460699237">ផ្ទាំង <ph name="TAB_TITLE" /> នឹងត្រូវបានបិទ</translation>
 <translation id="2801022321632964776">ដំឡើងកំណែ ដើម្បី​អាចប្រើ​ភាសា​របស់អ្នកបាន​នៅក្នុង​កំណែចុងក្រោយ​បំផុត​របស់ Chrome</translation>
 <translation id="2805756323405976993">កម្មវិធី</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">ម៉ឺនុយ​កាត​ព័ត៌មាន​ត្រូវបានបើក​ពាក់កណ្ដាល​អេក្រង់</translation>
 <translation id="2830783625999891985">ខ្លឹមសារឃ្លីបបតត្រូវបានលាក់</translation>
 <translation id="2839327205551510876">បាន​ឈប់តាមដាន <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{ផ្ទាំង​ឯកជន <ph name="TAB_COUNT_ONE" /> នឹងត្រូវបានបិទ}other{ផ្ទាំង​ឯកជន <ph name="TAB_COUNT_MANY" /> នឹងត្រូវបានបិទ}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{បានពិនិត្យមើល​កាលពី 1 ថ្ងៃមុន}other{បានពិនិត្យមើល​កាលពី # ថ្ងៃមុន}}</translation>
 <translation id="2842985007712546952">ថតឯកសារមេ</translation>
 <translation id="2856503607207334158">ការចូលគណនី​មិនបានសម្រេចទេ</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">ចាកចេញ</translation>
 <translation id="5227554086496586518">ចុច​ដើម្បី​មើល​លទ្ធផល​ស្វែងរក</translation>
 <translation id="5233638681132016545">ផ្ទាំងថ្មី</translation>
+<translation id="5235196193381275927">មានអ្វីមួយ​ខុសប្រក្រតី អំឡុងពេល​ចូលគណនី</translation>
 <translation id="5246093389635966745">កែផ្លូវកាត់​របារឧបករណ៍</translation>
 <translation id="5250483651202458397">រូបថត​អេក្រង់។ ចុចដើម្បីបិទ។</translation>
 <translation id="5262378156578470238">អ្នកនឹង​មើលឃើញ​ការជូនដំណឹង នៅពេលដែល​ការទាញយកនេះ​ចាប់ផ្ដើមនៅថ្ងៃទី <ph name="DATE" />។</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{បានពិនិត្យមើល​កាលពី 1 ម៉ោងមុន}other{បានពិនិត្យមើល​កាលពី # ម៉ោងមុន}}</translation>
 <translation id="6545017243486555795">ជម្រះទិន្នន័យទាំងអស់</translation>
 <translation id="6546511553472444032">ឯកសារនេះអាចមានគ្រោះថ្នាក់</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> និងផ្ទាំង <ph name="TAB_COUNT_ONE" /> ទៀតនឹង​ត្រូវបានបិទ}other{<ph name="TAB_TITLE" /> និងផ្ទាំង <ph name="TAB_COUNT_MANY" /> ទៀតនឹង​ត្រូវបានបិទ}}</translation>
 <translation id="6560414384669816528">ស្វែងរកដោយប្រើ Sogou</translation>
 <translation id="656065428026159829">មើលច្រើនទៀត</translation>
 <translation id="6565959834589222080">ប្រើ Wi-Fi នៅពេលដែលអាចប្រើបាន</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">បានបើកពាក់​កណ្ដាល​អេក្រង់នូវបញ្ជីឧបករណ៍​ដែលត្រូវ​ចែករំលែក​ផ្ទាំងជាមួយ​។</translation>
 <translation id="6783942555455976443">រក្សាទុកទំព័រនេះសម្រាប់ពេលក្រោយ និងទទួលការរំលឹក</translation>
 <translation id="6795633245022906657">បើកផ្ទាំងថ្មីបានយ៉ាងរហ័ស។ ដើម្បីកែ​ផ្លូវកាត់​នេះ សូមចូល​ទៅកាន់​ការកំណត់​។</translation>
+<translation id="6802555630140434547">វិនដូនឹង​ត្រូវបានបិទ</translation>
 <translation id="6811034713472274749">ទំព័រអាច​មើលបានហើយ</translation>
 <translation id="6813446258015311409">ចូល Chrome, បានបើក។</translation>
 <translation id="6817747507826986771">ចែករំលែកទំព័រនេះបានយ៉ាងរហ័ស។ ដើម្បីកែផ្លូវកាត់នេះ សូមចុចឱ្យជាប់។</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">ដើម្បី​ទទួលបាន​ចំណាំរបស់អ្នកនៅលើឧបករណ៍​ទាំងអស់​របស់អ្នក សូម​បើក​សមកាលកម្ម</translation>
 <translation id="8110087112193408731">បង្ហាញសកម្មភាព Chrome របស់អ្នក​នៅក្នុងសុខុមាលភាព​ឌីជីថល?</translation>
 <translation id="8127542551745560481">កែទំព័រដើម</translation>
+<translation id="8130309322784422030">ព័ត៌មាន​ចូលគណនី​ដែលអ្នកបានរក្សាទុកប្រហែលជា​ហួសសម័យហើយ</translation>
 <translation id="813082847718468539">មើលព័ត៌មានគេហទំព័រ</translation>
 <translation id="8137558756159375272">ប៉ះដើម្បីស្វែងរក ផ្ញើពាក្យដែលបានជ្រើសយក និងគេហទំព័រថ្មីៗជាបរិបទទៅ Google ស្វែងរក។ អ្នកអាចបើកវានៅក្នុង <ph name="BEGIN_LINK" />ការកំណត់<ph name="END_LINK" />។</translation>
 <translation id="8153351135626613369">ជំនួយការ​នឹង​បង្ហាញ នៅពេល​វាចាប់ដឹងថា​វាអាចជួយអ្នក​នៅលើ​គេហទំព័រ​ដែលស្គាល់</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - មិនអាច​ទាញយក​ភាសានេះ​បានទេ​។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។</translation>
 <translation id="8951232171465285730">Chrome សន្សំឲ្យអ្នកបាន <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">មិនទាន់សម្រេច</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{ផ្ទាំង​ឯកជន <ph name="INCOGNITO_TAB_COUNT" /> និងផ្ទាំង <ph name="TAB_COUNT_ONE" /> ទៀតនឹង​ត្រូវបានបិទ}other{ផ្ទាំង​ឯកជន <ph name="INCOGNITO_TAB_COUNT" /> និងផ្ទាំង <ph name="TAB_COUNT_MANY" /> ទៀតនឹង​ត្រូវបានបិទ}}</translation>
 <translation id="8970887620466824814">មានអ្វីមួយ​ខុសប្រក្រតី។</translation>
 <translation id="8972098258593396643">ទាញយក​ទៅថត​លំនាំដើម​មែនទេ?</translation>
 <translation id="8987641763863173640">គ្រប់គ្រង​ការកំណត់​ការមើល​វីដេអូ​សាកល្បង</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 3f150d1..f3ab685 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
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome에서 일부 비밀번호를 확인할 수 없습니다.</translation>
 <translation id="2169830938017475061">방금</translation>
 <translation id="2172688499998841696">이미지 설명 사용 중지됨</translation>
+<translation id="2172905120685242547">창을 닫으시겠습니까?</translation>
 <translation id="2175927920773552910">QR 코드</translation>
 <translation id="218608176142494674">공유</translation>
 <translation id="2195339740518523951">Chrome의 가장 강력한 보안 기능 사용하기</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">실패</translation>
 <translation id="2781151931089541271">1초 남음</translation>
 <translation id="2788468313014644040">그룹 번호</translation>
+<translation id="2800066122460699237"><ph name="TAB_TITLE" /> 탭이 닫힙니다.</translation>
 <translation id="2801022321632964776">최신 버전의 Chrome에서 내가 사용하는 언어를 사용하려면 업데이트하세요.</translation>
 <translation id="2805756323405976993">앱</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">피드 카드 메뉴 절반 높이</translation>
 <translation id="2830783625999891985">클립보드 콘텐츠 숨김</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> 팔로우 해제함</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{시크릿 탭 <ph name="TAB_COUNT_ONE" />개가 닫힙니다.}other{시크릿 탭 <ph name="TAB_COUNT_MANY" />개가 닫힙니다.}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{1일 전에 확인됨}other{#일 전에 확인됨}}</translation>
 <translation id="2842985007712546952">상위 폴더</translation>
 <translation id="2856503607207334158">로그인 실패</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">로그아웃</translation>
 <translation id="5227554086496586518">검색결과를 보려면 탭하세요.</translation>
 <translation id="5233638681132016545">새 탭</translation>
+<translation id="5235196193381275927">로그인 중에 문제가 발생했습니다</translation>
 <translation id="5246093389635966745">툴바 바로가기 수정</translation>
 <translation id="5250483651202458397">스크린샷입니다. 닫으려면 탭하세요.</translation>
 <translation id="5262378156578470238"><ph name="DATE" />에 다운로드가 시작되면 알림이 표시됩니다.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{1시간 전에 확인됨}other{#시간 전에 확인됨}}</translation>
 <translation id="6545017243486555795">모든 데이터 삭제</translation>
 <translation id="6546511553472444032">유해한 파일일 수도 있음</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> 외 탭 <ph name="TAB_COUNT_ONE" />개가 닫힙니다.}other{<ph name="TAB_TITLE" /> 외 탭 <ph name="TAB_COUNT_MANY" />개가 닫힙니다.}}</translation>
 <translation id="6560414384669816528">Sogou로 검색</translation>
 <translation id="656065428026159829">더보기</translation>
 <translation id="6565959834589222080">가능한 경우 Wi-Fi가 사용됨</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">탭을 공유할 기기 목록이 절반 높이로 열렸습니다.</translation>
 <translation id="6783942555455976443">나중에 읽을 수 있게 페이지를 저장하여 알림을 받으세요.</translation>
 <translation id="6795633245022906657">새 탭을 빠르게 엽니다. 바로가기를 수정하려면 설정으로 이동하세요.</translation>
+<translation id="6802555630140434547">창이 닫힙니다.</translation>
 <translation id="6811034713472274749">페이지를 볼 수 있음</translation>
 <translation id="6813446258015311409">Chrome에 로그인, 계정 선택 도구가 열렸습니다.</translation>
 <translation id="6817747507826986771">이 페이지를 빠르게 공유합니다. 바로가기를 수정하려면 길게 터치하세요.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">어느 기기에서나 내 북마크를 사용하려면 동기화를 사용 설정하세요.</translation>
 <translation id="8110087112193408731">디지털 웰빙에서 Chrome 활동을 표시할까요?</translation>
 <translation id="8127542551745560481">홈페이지 수정</translation>
+<translation id="8130309322784422030">저장된 로그인 정보가 오래되었을 수 있습니다</translation>
 <translation id="813082847718468539">사이트 정보 보기</translation>
 <translation id="8137558756159375272">터치하여 검색에서 선택한 단어와 현재 페이지를 Google 검색에 컨텍스트로 발송하세요. <ph name="BEGIN_LINK" />설정<ph name="END_LINK" />에서 이 기능을 사용 중지할 수 있습니다.</translation>
 <translation id="8153351135626613369">지원되는 웹사이트에서 도울 수 있는 작업이 감지되면 어시스턴트가 표시됩니다.</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" />: 다운로드할 수 없는 언어입니다. 나중에 다시 시도해 보세요.</translation>
 <translation id="8951232171465285730">Chrome을 통해 <ph name="MEGABYTES" />MB를 절약했습니다.</translation>
 <translation id="8965591936373831584">보류 중</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{시크릿 탭 <ph name="INCOGNITO_TAB_COUNT" />개와 일반 탭 <ph name="TAB_COUNT_ONE" />개가 닫힙니다.}other{시크릿 탭 <ph name="INCOGNITO_TAB_COUNT" />개와 일반 탭 <ph name="TAB_COUNT_MANY" />개가 닫힙니다.}}</translation>
 <translation id="8970887620466824814">문제 발생</translation>
 <translation id="8972098258593396643">기본 폴더에 다운로드하시겠습니까?</translation>
 <translation id="8987641763863173640">동영상 미리보기 설정 관리</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
index c53591c..4977eea 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome ບໍ່ສາມາດກວດລະຫັດຜ່ານທັງໝົດໄດ້</translation>
 <translation id="2169830938017475061">ຕອນນີ້</translation>
 <translation id="2172688499998841696">ຄຳອະທິບາຍຮູບພາບປິດຢູ່</translation>
+<translation id="2172905120685242547">ປິດໜ້າຈໍບໍ?</translation>
 <translation id="2175927920773552910">ລະຫັດ QR</translation>
 <translation id="218608176142494674">ການແບ່ງປັນ</translation>
 <translation id="2195339740518523951">ຮັບຄວາມປອດໄພທີ່ແຂງແກ່ນທີ່ສຸດຂອງ Chrome</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">ບໍ່ສໍາເລັດ</translation>
 <translation id="2781151931089541271">ຍັງເຫຼືອ 1 ວິ</translation>
 <translation id="2788468313014644040">ໝາຍເລກກຸ່ມ</translation>
+<translation id="2800066122460699237">ແຖບ <ph name="TAB_TITLE" /> ຈະຖືກປິດ</translation>
 <translation id="2801022321632964776">ອັບເດດເພື່ອມີພາສາຂອງທ່ານຢູ່ໃນ Chrome ເວີຊັນຫຼ້າສຸດ</translation>
 <translation id="2805756323405976993">ແອັບ</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">ເມນູບັດຟີດເປີດໄວ້ເຄິ່ງລວງສູງ</translation>
 <translation id="2830783625999891985">ເຊື່ອງເນື້ອຫາຄລິບບອດແລ້ວ</translation>
 <translation id="2839327205551510876">ເຊົາຕິດຕາມ <ph name="SITE_NAME" /> ແລ້ວ</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{ແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ <ph name="TAB_COUNT_ONE" /> ແຖບຈະຖືກປິດ}other{ແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ <ph name="TAB_COUNT_MANY" /> ແຖບຈະຖືກປິດ}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{ກວດແລ້ວເມື່ອ 1 ມື້ກ່ອນ}other{ກວດແລ້ວເມື່ອ # ມື້ກ່ອນ}}</translation>
 <translation id="2842985007712546952">ໂຟ​ລ​ເດີ​ພໍ່​ແມ່</translation>
 <translation id="2856503607207334158">ເຂົ້າສູ່ລະບົບບໍ່ສຳເລັດ</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">ອອກຈາກລະບົບ</translation>
 <translation id="5227554086496586518">ແຕະເພື່ອເບິ່ງຜົນ​ການຊອກຫາ</translation>
 <translation id="5233638681132016545">ແຖບ​ໃຫມ່</translation>
+<translation id="5235196193381275927">ມີບາງຢ່າງຜິດພາດເກີດຂຶ້ນໃນລະຫວ່າງການເຂົ້າສູ່ລະບົບ</translation>
 <translation id="5246093389635966745">ແກ້ໄຂທາງລັດແຖບເຄື່ອງມື</translation>
 <translation id="5250483651202458397">ຮູບໜ້າຈໍ. ແຕະເພື່ອປິດ.</translation>
 <translation id="5262378156578470238">ທ່ານຈະເຫັນການແຈ້ງເຕືອນເມື່ອການດາວໂຫຼດນີ້ເລີ່ມຕົ້ນວັນທີ <ph name="DATE" />.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{ກວດແລ້ວເມື່ອ 1 ຊົ່ວໂມງກ່ອນ}other{ກວດແລ້ວເມື່ອ # ຊົ່ວໂມງກ່ອນ}}</translation>
 <translation id="6545017243486555795">ລຶບລ້າງທຸກຂໍ້ມູນ</translation>
 <translation id="6546511553472444032">ໄຟລ໌ອາດເປັນອັນຕະລາຍ</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> ແລະ ອີກ <ph name="TAB_COUNT_ONE" /> ແຖບຈະຖືກປິດ}other{<ph name="TAB_TITLE" /> ແລະ ອີກ <ph name="TAB_COUNT_MANY" /> ແຖບຈະຖືກປິດ}}</translation>
 <translation id="6560414384669816528">ຊອກຫາດ້ວຍ Sogou</translation>
 <translation id="656065428026159829">ເບິ່ງເພີ່ມເຕີມ</translation>
 <translation id="6565959834589222080">ຈະໃຊ້ Wi-Fi ເມື່ອມີໃຫ້ນຳໃຊ້</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">ລາຍການອຸປະກອນທີ່ຈະແບ່ງປັນແຖບນຳໂດຍເປີດຢູ່ທີ່ລະດັບລວງສູງເຄິ່ງຈໍ.</translation>
 <translation id="6783942555455976443">ບັນທຶກໜ້ານີ້ໄວ້ອ່ານພາຍຫຼັງ ແລະ ຮັບການແຈ້ງເຕືອນ</translation>
 <translation id="6795633245022906657">ເປີດແຖບໃໝ່ແບບໄວໆ. ເພື່ອແກ້ໄຂທາງລັດນີ້, ໃຫ້ເຂົ້າໄປການຕັ້ງຄ່າ.</translation>
+<translation id="6802555630140434547">ໜ້າຈໍຈະຖືກປິດ</translation>
 <translation id="6811034713472274749">ໜ້າພ້ອມໃຫ້ເບິ່ງແລ້ວ</translation>
 <translation id="6813446258015311409">ເຂົ້າສູ່ລະບົບ Chrome, ເປີດແລ້ວ.</translation>
 <translation id="6817747507826986771">ແບ່ງປັນໜ້ານີ້ແບບໄວໆ. ເພື່ອແກ້ໄຂທາງລັດນີ້, ໃຫ້ແຕະຄ້າງໄວ້.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">ເພື່ອໃຊ້ບຸກມາກຂອງທ່ານຢູ່ໃນທຸກອຸປະກອນຂອງທ່ານ, ກະລຸນາເປີດການຊິ້ງຂໍ້ມູນກ່ອນ</translation>
 <translation id="8110087112193408731">ສະແດງການເຄື່ອນໄຫວໃນ Chrome ຂອງທ່ານຢູ່ໃນ Digital Wellbeing ບໍ?</translation>
 <translation id="8127542551745560481">ແກ້ໄຂໜ້າຫຼັກ</translation>
+<translation id="8130309322784422030">ຂໍ້ມູນການເຂົ້າສູ່ລະບົບທີ່ທ່ານຈັດເກັບໄວ້ອາດເກົ່າແລ້ວ</translation>
 <translation id="813082847718468539">ເບິ່ງຂໍ້ມູນເວັບໄຊທ໌</translation>
 <translation id="8137558756159375272">ສຳ​ພັດ​ ເພື່ອຄົ້ນ​ຫາ​ ຈະສົ່ງ​ຄຳ​ສັບ​ທີ່​ເລືອກ​ໄວ້ ແລະ​ໜ້າ​ປະ​ຈຸ​ບັນ​ຕາມ​ເນື້ອ​ໃນ​ຫາ Google Search. ທ່ານ​ສາ​ມາດ​ປິດ​ມັນ​ໄດ້​ຢູ່​ໃນ <ph name="BEGIN_LINK" />ການ​ຕັ້ງ​ຄ່າ<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">ຜູ້ຊ່ວຍຈະປາກົດເມື່ອມັນກວດພົບວ່າມັນສາມາດຊ່ວຍທ່ານໃນເວັບໄຊທີ່ຮອງຮັບໄດ້</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - ບໍ່ສາມາດດາວໂຫຼດພາສານີ້ໄດ້. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ.</translation>
 <translation id="8951232171465285730">Chrome ຊ່ວຍທ່ານປະຢັດໄດ້ <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">ຄ້າງຢູ່</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{ແຖບບໍ່ເປີດເຜີຍຕົວຕົນ <ph name="INCOGNITO_TAB_COUNT" /> ແລະ ແຖບອື່ນໆ <ph name="TAB_COUNT_ONE" /> ແຖບຈະຖືກປິດ}other{ແຖບບໍ່ເປີດເຜີຍຕົວຕົນ <ph name="INCOGNITO_TAB_COUNT" /> ແລະ ແຖບອື່ນໆ <ph name="TAB_COUNT_MANY" /> ແຖບຈະຖືກປິດ}}</translation>
 <translation id="8970887620466824814">ມີບາງຢ່າງຜິດພາດ.</translation>
 <translation id="8972098258593396643">ດາວໂຫຼດໃສ່ໂຟນເດີເລີ່ມຕົ້ນບໍ?</translation>
 <translation id="8987641763863173640">ຈັດການການຕັ້ງຄ່າຕົວຢ່າງວິດີໂອ</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 a493a380..e7a9cb5d 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
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">„Chrome“ nepavyko patikrinti visų slaptažodžių</translation>
 <translation id="2169830938017475061">Dabar</translation>
 <translation id="2172688499998841696">Vaizdų aprašai išjungti</translation>
+<translation id="2172905120685242547">Uždaryti langą?</translation>
 <translation id="2175927920773552910">QR kodas</translation>
 <translation id="218608176142494674">Bendrinimas</translation>
 <translation id="2195339740518523951">Gaukite patikimiausią „Chrome“ apsaugą</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">nepavyko</translation>
 <translation id="2781151931089541271">Liko 1 sek.</translation>
 <translation id="2788468313014644040">Grupės numeris</translation>
+<translation id="2800066122460699237">Skirtukas „<ph name="TAB_TITLE" />“ bus uždarytas</translation>
 <translation id="2801022321632964776">Norėdami gauti naujausią versiją su įdiegta savo kalba, atnaujinkite „Chrome“</translation>
 <translation id="2805756323405976993">Taikomosios programos</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Sklaidos kanalo kortelės meniu atidarytas iki pusės</translation>
 <translation id="2830783625999891985">Iškarpinės turinys paslėptas</translation>
 <translation id="2839327205551510876">Nebestebima „<ph name="SITE_NAME" />“</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> inkognito skirtukas bus uždarytas}one{<ph name="TAB_COUNT_MANY" /> inkognito skirtukas bus uždarytas}few{<ph name="TAB_COUNT_MANY" /> inkognito skirtukai bus uždaryti}many{<ph name="TAB_COUNT_MANY" /> inkognito skirtuko bus uždaryta}other{<ph name="TAB_COUNT_MANY" /> inkognito skirtukų bus uždaryta}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Tikrinta prieš 1 dieną}one{Tikrinta prieš # dieną}few{Tikrinta prieš # dienas}many{Tikrinta prieš # dienos}other{Tikrinta prieš # dienų}}</translation>
 <translation id="2842985007712546952">Viršaplankis</translation>
 <translation id="2856503607207334158">Nepavyko prisijungti</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Atsijungti</translation>
 <translation id="5227554086496586518">Palieskite, kad peržiūrėtumėte paieškos rezultatus</translation>
 <translation id="5233638681132016545">Naujas skirtukas</translation>
+<translation id="5235196193381275927">Prisijungiant įvyko klaida</translation>
 <translation id="5246093389635966745">Redaguoti spartųjį įrankių juostos klavišą</translation>
 <translation id="5250483651202458397">Ekrano kopija. Palieskite, kad uždarytumėte.</translation>
 <translation id="5262378156578470238">Matysite pranešimą, kai šis atsisiuntimas prasidės <ph name="DATE" />.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Tikrinta prieš 1 valandą}one{Tikrinta prieš # valandą}few{Tikrinta prieš # valandas}many{Tikrinta prieš # valandos}other{Tikrinta prieš # valandų}}</translation>
 <translation id="6545017243486555795">Išvalyti visus duomenis</translation>
 <translation id="6546511553472444032">Failas gali būti žalingas</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{„<ph name="TAB_TITLE" />“ ir dar <ph name="TAB_COUNT_ONE" /> skirtukas bus uždaryti}one{„<ph name="TAB_TITLE" />“ ir dar <ph name="TAB_COUNT_MANY" /> skirtukas bus uždaryti}few{„<ph name="TAB_TITLE" />“ ir dar <ph name="TAB_COUNT_MANY" /> skirtukai bus uždaryti}many{„<ph name="TAB_TITLE" />“ ir dar <ph name="TAB_COUNT_MANY" /> skirtuko bus uždaryti}other{„<ph name="TAB_TITLE" />“ ir dar <ph name="TAB_COUNT_MANY" /> skirtukų bus uždaryti}}</translation>
 <translation id="6560414384669816528">Atlikti paiešką naudojant „Sogou“</translation>
 <translation id="656065428026159829">Žr. daugiau</translation>
 <translation id="6565959834589222080">„Wi-Fi“ naudojama, kai pasiekiama</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Įrenginių, su kuriais reikia bendrinti skirtuką, sąrašas atidarytas (pusė aukščio).</translation>
 <translation id="6783942555455976443">Išsaugokite šį puslapį, jei norite peržiūrėti vėliau, ir gaukite priminimą</translation>
 <translation id="6795633245022906657">Sparčiai atidarykite naują skirtuką. Jei norite redaguoti šį spartųjį klavišą, eikite į skiltį „Nustatymai“.</translation>
+<translation id="6802555630140434547">Langas bus uždarytas</translation>
 <translation id="6811034713472274749">Puslapis paruoštas peržiūrėti</translation>
 <translation id="6813446258015311409">Prisijungimo prie „Chrome“ puslapis atidarytas.</translation>
 <translation id="6817747507826986771">Sparčiai bendrinkite šį puslapį. Jei norite redaguoti šį spartųjį klavišą, palieskite ir palaikykite.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Jei norite pasiekti žymes visuose įrenginiuose, įjunkite sinchronizavimą</translation>
 <translation id="8110087112193408731">Rodyti „Chrome“ veiklą Skaitmeninės gerovės programoje?</translation>
 <translation id="8127542551745560481">Redaguoti pagrindinį puslapį</translation>
+<translation id="8130309322784422030">Jūsų saugoma prisijungimo informacija gali būti pasenusi</translation>
 <translation id="813082847718468539">Žiūrėti svetainės informaciją</translation>
 <translation id="8137558756159375272">Paieška palietus siunčia pasirinktą žodį ir esamą puslapį kaip kontekstą „Google“ paieškai. Galite išjungti šią funkciją <ph name="BEGIN_LINK" />nustatymuose<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Padėjėjas bus rodomas, kai jis aptiks, kad gali padėti jums palaikomose svetainėse</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> – nepavyko atsisiųsti šios kalbos. Vėliau bandykite dar kartą.</translation>
 <translation id="8951232171465285730">„Chrome“ sutaupė jums <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">laukiama</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> inkognito ir dar <ph name="TAB_COUNT_ONE" /> skirtukas bus uždaryti}one{<ph name="INCOGNITO_TAB_COUNT" /> inkognito ir dar <ph name="TAB_COUNT_MANY" /> skirtukas bus uždaryti}few{<ph name="INCOGNITO_TAB_COUNT" /> inkognito ir dar <ph name="TAB_COUNT_MANY" /> skirtukai bus uždaryti}many{<ph name="INCOGNITO_TAB_COUNT" /> inkognito ir dar <ph name="TAB_COUNT_MANY" /> skirtuko bus uždaryti}other{<ph name="INCOGNITO_TAB_COUNT" /> inkognito ir dar <ph name="TAB_COUNT_MANY" /> skirtukų bus uždaryti}}</translation>
 <translation id="8970887620466824814">Kažkas ne taip.</translation>
 <translation id="8972098258593396643">Atsisiųsti į numatytąjį aplanką?</translation>
 <translation id="8987641763863173640">Tvarkykite vaizdo įrašų peržiūros nustatymus</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
index bda44101..06c588c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Pārlūkprogrammā Chrome nevarēja pārbaudīt visas paroles</translation>
 <translation id="2169830938017475061">Tikko</translation>
 <translation id="2172688499998841696">Attēlu aprakstu pievienošana ir izslēgta</translation>
+<translation id="2172905120685242547">Vai aizvērt logu?</translation>
 <translation id="2175927920773552910">QR kods</translation>
 <translation id="218608176142494674">Kopīgošana</translation>
 <translation id="2195339740518523951">Visaugstākais Chrome drošības līmenis</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">neizdevās</translation>
 <translation id="2781151931089541271">Atlikusi 1 s</translation>
 <translation id="2788468313014644040">Grupas numurs</translation>
+<translation id="2800066122460699237">Cilne “<ph name="TAB_TITLE" />” tiks aizvērta.</translation>
 <translation id="2801022321632964776">Veiciet atjaunināšanu, lai varētu lasīt savā valodā jaunākajā pārlūka Chrome versijā</translation>
 <translation id="2805756323405976993">Lietotnes</translation>
 <translation id="2806840421670364300">FPK</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Ir atvērta puse no plūsmas kartītes izvēlnes</translation>
 <translation id="2830783625999891985">Starpliktuves saturs ir paslēpts</translation>
 <translation id="2839327205551510876">Vairs nesekojat <ph name="SITE_NAME" /> plūsmai</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{Tiks aizvērta <ph name="TAB_COUNT_ONE" /> inkognito cilne.}zero{Tiks aizvērtas <ph name="TAB_COUNT_MANY" /> inkognito cilnes.}one{Tiks aizvērta <ph name="TAB_COUNT_MANY" /> inkognito cilne.}other{Tiks aizvērtas <ph name="TAB_COUNT_MANY" /> inkognito cilnes.}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Pārbaudīts: pirms 1 dienas}zero{Pārbaudīts: pirms # dienām}one{Pārbaudīts: pirms # dienas}other{Pārbaudīts: pirms # dienām}}</translation>
 <translation id="2842985007712546952">Vecākmape</translation>
 <translation id="2856503607207334158">Neizdevās pierakstīties</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Izrakstīties</translation>
 <translation id="5227554086496586518">Pieskarieties, lai skatītu meklēšanas rezultātus</translation>
 <translation id="5233638681132016545">Jauna cilne</translation>
+<translation id="5235196193381275927">Mēģinot pierakstīties, radās problēma.</translation>
 <translation id="5246093389635966745">Rīkjoslas rediģēšanas saīsne</translation>
 <translation id="5250483651202458397">Ekrānuzņēmums. Pieskarieties, lai to aizvērtu.</translation>
 <translation id="5262378156578470238">Jums tiks parādīts paziņojums, kad tiks sākta šī lejupielāde (šādā datumā: <ph name="DATE" />).</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Pārbaudīts: pirms 1 stundas}zero{Pārbaudīts: pirms # stundām}one{Pārbaudīts: pirms # stundas}other{Pārbaudīts: pirms # stundām}}</translation>
 <translation id="6545017243486555795">Notīrīt visus datus</translation>
 <translation id="6546511553472444032">Fails var būt kaitīgs</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{Tiks aizvērta cilne “<ph name="TAB_TITLE" />” un vēl <ph name="TAB_COUNT_ONE" /> cilne.}zero{Tiks aizvērta cilne “<ph name="TAB_TITLE" />” un vēl <ph name="TAB_COUNT_MANY" /> cilnes.}one{Tiks aizvērta cilne “<ph name="TAB_TITLE" />” un vēl <ph name="TAB_COUNT_MANY" /> cilne.}other{Tiks aizvērta cilne “<ph name="TAB_TITLE" />” un vēl <ph name="TAB_COUNT_MANY" /> cilnes.}}</translation>
 <translation id="6560414384669816528">Meklēšana, izmantojot Sogou</translation>
 <translation id="656065428026159829">Skatīt vairāk</translation>
 <translation id="6565959834589222080">Wi-Fi tiek izmantots, ja tas ir pieejams</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Ierīču saraksts, ar ko kopīgot cilni, ir atvērts pusekrāna augstumā.</translation>
 <translation id="6783942555455976443">Saglabājiet šo lapu lasīšanai vēlāk un saņemiet atgādinājumu</translation>
 <translation id="6795633245022906657">Šeit varat ātri atvērt jaunu cilni. Lai rediģētu šo saīsni, pārejiet uz iestatījumiem.</translation>
+<translation id="6802555630140434547">Logs tiks aizvērts.</translation>
 <translation id="6811034713472274749">Lapu var skatīt</translation>
 <translation id="6813446258015311409">Lapa “Pierakstīšanās pārlūkā Chrome”, atvērta.</translation>
 <translation id="6817747507826986771">Ātra lapas kopīgošana. Lai rediģētu šo īsinājumtaustiņu, pieskarieties un turiet.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Lai grāmatzīmes būtu pieejamas visās jūsu ierīcēs, ieslēdziet sinhronizāciju.</translation>
 <translation id="8110087112193408731">Vai rādīt jūsu Chrome darbības Digitālajā labjutībā?</translation>
 <translation id="8127542551745560481">Rediģēt sākumlapu</translation>
+<translation id="8130309322784422030">Iespējams, saglabātā pierakstīšanās informācija ir novecojusi.</translation>
 <translation id="813082847718468539">Skatīt informāciju par vietni</translation>
 <translation id="8137558756159375272">Izmantojot meklēšanu pieskaroties, atlasītais vārds un pašreiz skatītā lapa tiek nosūtīta kā konteksts pakalpojumam Google meklēšana. Varat to izslēgt lapā <ph name="BEGIN_LINK" />Iestatījumi<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Ja tiks konstatēts, ka atbalstītajās vietnēs jums var palīdzēt Asistents, tas tiks aktivizēts.</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> — šo valodu nevarēja lejupielādēt. Vēlāk mēģiniet vēlreiz.</translation>
 <translation id="8951232171465285730">Pārlūkā Chrome esat ietaupījis <ph name="MEGABYTES" /> MB.</translation>
 <translation id="8965591936373831584">gaida</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{Tiks aizvērta <ph name="INCOGNITO_TAB_COUNT" /> inkognito cilne un vēl <ph name="TAB_COUNT_ONE" /> cilne.}zero{Tiks aizvērta <ph name="INCOGNITO_TAB_COUNT" /> inkognito cilne un vēl <ph name="TAB_COUNT_MANY" /> cilnes.}one{Tiks aizvērta <ph name="INCOGNITO_TAB_COUNT" /> inkognito cilne un vēl <ph name="TAB_COUNT_MANY" /> cilne.}other{Tiks aizvērta <ph name="INCOGNITO_TAB_COUNT" /> inkognito cilne un vēl <ph name="TAB_COUNT_MANY" /> cilnes.}}</translation>
 <translation id="8970887620466824814">Radās kļūda.</translation>
 <translation id="8972098258593396643">Vai lejupielādēt noklusējuma mapē?</translation>
 <translation id="8987641763863173640">Pārvaldiet video priekšskatīšanas iestatījumus</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
index c2fcc2e..c33e8022 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome бүх нууц үгийг шалгаж чадсангүй</translation>
 <translation id="2169830938017475061">Одоо</translation>
 <translation id="2172688499998841696">Зургийн тайлбар унтраалттай байна</translation>
+<translation id="2172905120685242547">Цонхыг хаах уу?</translation>
 <translation id="2175927920773552910">QR код</translation>
 <translation id="218608176142494674">Хуваалцаж байна</translation>
 <translation id="2195339740518523951">Chrome-н хамгийн хүчирхэг аюулгүй байдлыг аваарай</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">татаж чадсангүй</translation>
 <translation id="2781151931089541271">1 секунд үлдсэн</translation>
 <translation id="2788468313014644040">Бүлгийн тоо</translation>
+<translation id="2800066122460699237"><ph name="TAB_TITLE" /> табыг хаана</translation>
 <translation id="2801022321632964776">Chrome-н хамгийн сүүлийн хувилбарт хэлээ авахын тулд шинэчилнэ үү</translation>
 <translation id="2805756323405976993">Програм</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">Түр санх ойн контентуудыг нуусан</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" />-г дагахаа больсон</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> нууцлалтай табыг хаана}other{<ph name="TAB_COUNT_MANY" /> нууцлалтай табыг хаана}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 хоногийн өмнө шалгасан}other{# хоногийн өмнө шалгасан}}</translation>
 <translation id="2842985007712546952">Толгой хавтас</translation>
 <translation id="2856503607207334158">Нэвтрэлт амжилтгүй</translation>
@@ -672,6 +675,7 @@
 <translation id="5222676887888702881">Гарах</translation>
 <translation id="5227554086496586518">Хайлтын илэрцүүдийг харахын тулд товшино уу</translation>
 <translation id="5233638681132016545">Шинэ таб</translation>
+<translation id="5235196193381275927">Нэвтрэх үед алдаа гарлаа</translation>
 <translation id="5246093389635966745">Засах самбарын товчлол</translation>
 <translation id="5250483651202458397">Дэлгэцийн агшин. Хаахын тулд товшино уу.</translation>
 <translation id="5262378156578470238">Энэ татан авалт <ph name="DATE" />-д эхлэх үед та мэдэгдэл харна.</translation>
@@ -895,6 +899,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{1 цагийн өмнө шалгасан}other{# цагийн өмнө шалгасан}}</translation>
 <translation id="6545017243486555795">Бүх өгөгдлийг устгах</translation>
 <translation id="6546511553472444032">Файл аюултай байж магадгүй</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> болон бусад <ph name="TAB_COUNT_ONE" /> табыг хаана}other{<ph name="TAB_TITLE" /> болон бусад <ph name="TAB_COUNT_MANY" /> табыг хаана}}</translation>
 <translation id="6560414384669816528">Sogou-р хайх</translation>
 <translation id="656065428026159829">Дэлгэрэнгүй үзэх</translation>
 <translation id="6565959834589222080">Wi-Fi-г боломжтой үед ашигладаг</translation>
@@ -935,6 +940,7 @@
 <translation id="6767294960381293877">Таб хуваалцах төхөөрөмжийн жагсаалтыг хагас өндрөөр нээлээ.</translation>
 <translation id="6783942555455976443">Энэ хуудсыг дараа зочлохоор хадгалж, сануулагч аваарай</translation>
 <translation id="6795633245022906657">Шинэ табыг шуурхай нээгээрэй. Энэ товчлолыг засахын тулд Тохиргоо руу очно уу.</translation>
+<translation id="6802555630140434547">Цонхыг хаана</translation>
 <translation id="6811034713472274749">Хуудсыг харахад бэлэн байна</translation>
 <translation id="6813446258015311409">Chrome-д нэвтэрнэ үү, нээсэн.</translation>
 <translation id="6817747507826986771">Энэ хуудсыг шуурхай хуваалцаарай. Энэ товчлолыг засахын тулд хүрээд удаан дарна уу.</translation>
@@ -1162,6 +1168,7 @@
 <translation id="8109613176066109935">Хавчуургаа бүх төхөөрөмждөө авахын тулд синкийг асаана уу</translation>
 <translation id="8110087112193408731">Chrome-н үйл ажиллагаагаа Дижитал хэрэглээнд харуулах уу?</translation>
 <translation id="8127542551745560481">Нүүр хуудсыг засах</translation>
+<translation id="8130309322784422030">Таны хадгалсан нэвтрэх мэдээлэл хуучирсан байж болзошгүй</translation>
 <translation id="813082847718468539">Сайтын мэдээллийг үзэх</translation>
 <translation id="8137558756159375272">Touch to Search нь сонгосон үг болон одоо байгаа хуудсыг Google Хайлт руу контекст хэлбэрээр илгээдэг. Та үүнийг <ph name="BEGIN_LINK" />Тохиргооноо<ph name="END_LINK" /> хэсгээс унтрааж болно.</translation>
 <translation id="8153351135626613369">Туслах танд дэмжигдсэн вебсайтууд дээр туслах боломжтой болохоо илрүүлсэн тохиолдолд гарч ирнэ</translation>
@@ -1292,6 +1299,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - Энэ хэлийг татаж чадсангүй. Дараа дахин оролдоно уу.</translation>
 <translation id="8951232171465285730">Chrome <ph name="MEGABYTES" /> МБ-ыг хэмнэсэн</translation>
 <translation id="8965591936373831584">хүлээгдэж байна</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> нууцлалтай таб болон бусад <ph name="TAB_COUNT_ONE" /> табыг хаана}other{<ph name="INCOGNITO_TAB_COUNT" /> нууцлалтай таб болон бусад <ph name="TAB_COUNT_MANY" /> табыг хаана}}</translation>
 <translation id="8970887620466824814">Алдаа гарлаа.</translation>
 <translation id="8972098258593396643">Өгөгдмөл фолдерт татаж авах уу?</translation>
 <translation id="8987641763863173640">Видео урьдчилан үзэлтийн тохиргоог удирдана уу</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
index 4cd45a0..959acf9 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome tidak dapat menyemak semua kata laluan</translation>
 <translation id="2169830938017475061">Sekarang</translation>
 <translation id="2172688499998841696">Perihalan imej dimatikan</translation>
+<translation id="2172905120685242547">Tutup tetingkap?</translation>
 <translation id="2175927920773552910">Kod QR</translation>
 <translation id="218608176142494674">Perkongsian</translation>
 <translation id="2195339740518523951">Dapatkan keselamatan Chrome yang paling kukuh</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">gagal</translation>
 <translation id="2781151931089541271">1 saat lagi</translation>
 <translation id="2788468313014644040">Nombor kumpulan</translation>
+<translation id="2800066122460699237">Tab <ph name="TAB_TITLE" /> akan ditutup</translation>
 <translation id="2801022321632964776">Kemas kini untuk mendapatkan bahasa anda dalam versi terkini Chrome</translation>
 <translation id="2805756323405976993">Apl</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">Kandungan papan keratan disembunyikan</translation>
 <translation id="2839327205551510876">Telah berhenti mengikuti <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> tab inkognito akan ditutup}other{<ph name="TAB_COUNT_MANY" /> tab inkognito akan ditutup}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Disemak 1 hari yang lalu}other{Disemak # hari yang lalu}}</translation>
 <translation id="2842985007712546952">Folder induk</translation>
 <translation id="2856503607207334158">Log masuk gagal</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Log keluar</translation>
 <translation id="5227554086496586518">Ketik untuk melihat hasil carian</translation>
 <translation id="5233638681132016545">Tab baharu</translation>
+<translation id="5235196193381275927">Kesilapan telah berlaku semasa log masuk</translation>
 <translation id="5246093389635966745">Edit pintasan bar alat</translation>
 <translation id="5250483651202458397">Tangkapan skrin. Ketik untuk tutup.</translation>
 <translation id="5262378156578470238">Anda akan melihat pemberitahuan apabila muat turun ini dimulakan pada <ph name="DATE" />.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Disemak 1 jam yang lalu}other{Disemak # yang lalu}}</translation>
 <translation id="6545017243486555795">Hapuskan Semua Data</translation>
 <translation id="6546511553472444032">Fail mungkin berbahaya</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> dan <ph name="TAB_COUNT_ONE" /> lagi tab akan ditutup}other{<ph name="TAB_TITLE" /> dan <ph name="TAB_COUNT_MANY" /> lagi tab akan ditutup}}</translation>
 <translation id="6560414384669816528">Cari dengan Sogou</translation>
 <translation id="656065428026159829">Lihat lagi</translation>
 <translation id="6565959834589222080">Wi-Fi akan digunakan apabila tersedia</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Senarai peranti untuk berkongsi tab dibuka pada ketinggian separuh.</translation>
 <translation id="6783942555455976443">Simpan halaman ini untuk kemudian dan dapatkan peringatan</translation>
 <translation id="6795633245022906657">Buka tab baharu dengan pantas. Untuk mengedit pintasan ini, pergi ke Tetapan.</translation>
+<translation id="6802555630140434547">Tetingkap akan ditutup</translation>
 <translation id="6811034713472274749">Halaman sedia untuk dipaparkan</translation>
 <translation id="6813446258015311409">Log masuk ke Chrome, dibuka.</translation>
 <translation id="6817747507826986771">Kongsi halaman ini dengan pantas. Untuk mengedit pintasan ini, sentuh dan tahan.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Hidupkan penyegerakan untuk mendapatkan penanda halaman pada semua peranti anda</translation>
 <translation id="8110087112193408731">Tunjukkan aktiviti Chrome anda dalam Kesejahteraan Digital?</translation>
 <translation id="8127542551745560481">Edit halaman utama</translation>
+<translation id="8130309322784422030">Maklumat log masuk anda yang disimpan mungkin sudah lapuk</translation>
 <translation id="813082847718468539">Lihat maklumat tapak</translation>
 <translation id="8137558756159375272">Sentuh untuk Cari menghantar perkataan yang dipilih dan halaman semasa sebagai konteks kepada Google Search. Anda boleh mematikannya di <ph name="BEGIN_LINK" />Tetapan<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Assistant akan muncul apabila apl ini mengesan bahawa bantuannya akan memudahkan anda pada laman web yang disokong</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - Bahasa ini tidak dapat dimuat turun. Cuba lagi nanti.</translation>
 <translation id="8951232171465285730">Chrome telah menjimatkan data anda sebanyak <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">belum selesai</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> inkognito dan <ph name="TAB_COUNT_ONE" /> lagi tab akan ditutup}other{<ph name="INCOGNITO_TAB_COUNT" /> inkognito and <ph name="TAB_COUNT_MANY" /> lagi tab akan ditutup}}</translation>
 <translation id="8970887620466824814">Kesilapan telah berlaku.</translation>
 <translation id="8972098258593396643">Muat turun ke folder lalai?</translation>
 <translation id="8987641763863173640">Urus Tetapan Pratonton Video</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
index 1372225..761528a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome က စကားဝှက်အားလုံးကို စစ်ဆေး၍မရပါ</translation>
 <translation id="2169830938017475061">ယခု</translation>
 <translation id="2172688499998841696">ပုံအကြောင်းအရာများကို ပိတ်ထားသည်</translation>
+<translation id="2172905120685242547">ဝင်ဒိုး ပိတ်မလား။</translation>
 <translation id="2175927920773552910">QR ကုဒ်</translation>
 <translation id="218608176142494674">မျှဝေခြင်း</translation>
 <translation id="2195339740518523951">Chrome ၏ အခိုင်မာဆုံးလုံခြုံရေးကို ရယူခြင်း</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">ဒေါင်းလုဒ် မပြီးဆုံးပါ</translation>
 <translation id="2781151931089541271">၁ စက္ကန့် ကျန်သည်</translation>
 <translation id="2788468313014644040">အဖွဲ့နံပါတ်</translation>
+<translation id="2800066122460699237"><ph name="TAB_TITLE" /> တဘ်ကို ပိတ်ပါမည်</translation>
 <translation id="2801022321632964776">Chrome နောက်ဆုံးဗားရှင်းတွင် သင့်ဘာသာစကားကို ရယူရန် အပ်ဒိတ်လုပ်ပါ</translation>
 <translation id="2805756323405976993">အက်ပ်များ</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">ကလစ်ဘုတ်အကြောင်းအရာများကို ဖျောက်ထားသည်</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> ကို လိုက်မကြည့်တော့ပါ</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{ရုပ်ဖျက်တဘ် <ph name="TAB_COUNT_ONE" /> ခုကို ပိတ်ပါမည်}other{ရုပ်ဖျက်တဘ် <ph name="TAB_COUNT_MANY" /> ခုကို ပိတ်ပါမည်}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{လွန်ခဲ့သော ၁ ရက်က စစ်ဆေးခဲ့သည်}other{လွန်ခဲ့သော # ရက်က စစ်ဆေးခဲ့သည်}}</translation>
 <translation id="2842985007712546952">မူရင်း ဖိုင်တွဲ</translation>
 <translation id="2856503607207334158">လက်မှတ်ထိုးဝင်၍ မရပါ</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">ထွက်ခွာရန်</translation>
 <translation id="5227554086496586518">ရှာဖွေမှုရလဒ်များကြည့်ရန် တို့ပါ</translation>
 <translation id="5233638681132016545">တဘ် အသစ်</translation>
+<translation id="5235196193381275927">လက်မှတ်ထိုးဝင်နေစဉ် တစ်ခုခု မှားသွားသည်</translation>
 <translation id="5246093389635966745">တူးလ်ဘားဖြတ်လမ်းလင့်ခ် ပြင်ဆင်ရန်</translation>
 <translation id="5250483651202458397">ဖန်သားပြင်ဓာတ်ပုံ။ ပိတ်ရန် တို့ပါ။</translation>
 <translation id="5262378156578470238">ဤဒေါင်းလုဒ် <ph name="DATE" /> တွင် စတင်သောအခါ အကြောင်းကြားချက် ရရှိပါမည်။</translation>
@@ -895,6 +899,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{လွန်ခဲ့သော ၁ နာရီက စစ်ဆေးခဲ့သည်}other{လွန်ခဲ့သော # နာရီက စစ်ဆေးခဲ့သည်}}</translation>
 <translation id="6545017243486555795">ဒေတာများအားလုံးကိုရှင်းလင်းရန်</translation>
 <translation id="6546511553472444032">ဖိုင်မှာ အန္တရာယ်ရှိနိုင်သည်</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> နှင့် နောက်ထပ်တဘ် <ph name="TAB_COUNT_ONE" /> ခုကို ပိတ်ပါမည်}other{<ph name="TAB_TITLE" /> နှင့် နောက်ထပ်တဘ် <ph name="TAB_COUNT_MANY" /> ခုကို ပိတ်ပါမည်}}</translation>
 <translation id="6560414384669816528">Sogou ဖြင့် ရှာဖွေပါ</translation>
 <translation id="656065428026159829">ပိုကြည့်ရန်</translation>
 <translation id="6565959834589222080">Wi-Fi ကို ရနိုင်သည့်အခါ အသုံးပြုသည်</translation>
@@ -935,6 +940,7 @@
 <translation id="6767294960381293877">တဘ်မျှဝေရန် စက်ပစ္စည်းစာရင်း၏ အမြင့်ကို တစ်ဝက်ဖွင့်ထားသည်။</translation>
 <translation id="6783942555455976443">ဤစာမျက်နှာကို နောင်အတွက်သိမ်းပြီး သတိပေးချက် ရယူပါ</translation>
 <translation id="6795633245022906657">တဘ်အသစ် အမြန်ဖွင့်ပါ။ ဤဖြတ်လမ်းလင့်ခ်ကို ပြင်ဆင်ရန် ‘ဆက်တင်များ’ သို့ သွားပါ။</translation>
+<translation id="6802555630140434547">ဝင်းဒိုးကို ပိတ်ပါမည်</translation>
 <translation id="6811034713472274749">စာမျက်နှာကိုကြည့်ရန် အသင့်ဖြစ်ပါပြီ</translation>
 <translation id="6813446258015311409">Chrome သို့ လက်မှတ်ထိုးဝင်ရန်၊ ဖွင့်ထားသည်။</translation>
 <translation id="6817747507826986771">ဤစာမျက်နှာကို အမြန်မျှဝေပါ။ ဤဖြတ်လမ်းလင့်ခ်ကို ပြင်ဆင်ရန် တို့ထိ၍ဖိထားပါ။</translation>
@@ -1162,6 +1168,7 @@
 <translation id="8109613176066109935">သင်၏ဝဘ်လိပ်စာများကို စက်အားလုံးတွင် ရယူနိုင်ရန် စင့်ခ်လုပ်ခြင်းကို ဖွင့်ပါ</translation>
 <translation id="8110087112193408731">'ဒစ်ဂျစ်တယ် အာရောဂျံ' အတွင်း သင်၏ Chrome လုပ်ဆောင်ချက်ကို ပြစေလိုပါသလား။</translation>
 <translation id="8127542551745560481">ပင်မစာမျက်နှာအား တည်းဖြတ်ရန်</translation>
+<translation id="8130309322784422030">သိမ်းထားသော လက်မှတ်ထိုးဝင်သည့် အချက်အလက် ဟောင်းနေခြင်း ဖြစ်နိုင်သည်</translation>
 <translation id="813082847718468539">ဆိုက် အချက်အလက်များကို ကြည့်ရန်</translation>
 <translation id="8137558756159375272">ရွေးချယ်ထားသော စာလုံးနှင့် လက်ရှိစာမျက်နှာအား အကြောင်းအရာတစ်ခု အဖြစ် Google Search သို့ Touch to Search ပို့ပေးသည်။ <ph name="BEGIN_LINK" />ဆက်တင်များ<ph name="END_LINK" />တွင် ၎င်းအား ပိတ်ထားနိုင်သည်။</translation>
 <translation id="8153351135626613369">ပံ့ပိုးထားသောဝဘ်ဆိုက်များတွင် သင့်ကိုကူညီနိုင်ကြောင်း သိရှိသည့်အခါ Assistant ပေါ်လာပါမည်</translation>
@@ -1292,6 +1299,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - ဤဘာသာစကားကို ဒေါင်းလုဒ်လုပ်၍ မရပါ။ နောက်မှ ထပ်စမ်းပါ။</translation>
 <translation id="8951232171465285730">Chrome သည် သင့်အတွက် <ph name="MEGABYTES" /> မီဂါဘိုက် ချွေတာပေးထားပါသည်</translation>
 <translation id="8965591936373831584">ဆိုင်းငံ့ထားသည်</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{ရုပ်ဖျက်တဘ် <ph name="INCOGNITO_TAB_COUNT" /> ခုနှင့် နောက်ထပ်တဘ် <ph name="TAB_COUNT_ONE" /> ခုကို ပိတ်ပါမည်}other{ရုပ်ဖျက်တဘ် <ph name="INCOGNITO_TAB_COUNT" /> ခုနှင့် နောက်ထပ်တဘ် <ph name="TAB_COUNT_MANY" /> ခုကို ပိတ်ပါမည်}}</translation>
 <translation id="8970887620466824814">တစ်ခုခု မှားသွားပါသည်။</translation>
 <translation id="8972098258593396643">မူရင်းဖိုင်တွဲသို့ ဒေါင်းလုဒ်လုပ်လိုပါသလား။</translation>
 <translation id="8987641763863173640">ဗီဒီယိုအစမ်းကြည့်ရှုခြင်း ဆက်တင်များကို စီမံရန်</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
index 765d269..3fd3e99 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Браузеру Chrome удалось проверить не все пароли.</translation>
 <translation id="2169830938017475061">Сейчас</translation>
 <translation id="2172688499998841696">Описания изображений отключены.</translation>
+<translation id="2172905120685242547">Закрыть окно?</translation>
 <translation id="2175927920773552910">QR-код</translation>
 <translation id="218608176142494674">Совместный доступ</translation>
 <translation id="2195339740518523951">Обеспечьте максимальную защиту в Chrome</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">ошибка</translation>
 <translation id="2781151931089541271">Осталась 1 сек.</translation>
 <translation id="2788468313014644040">Номер группы</translation>
+<translation id="2800066122460699237">Вкладка "<ph name="TAB_TITLE" />" будет закрыта.</translation>
 <translation id="2801022321632964776">Чтобы читать веб-страницы на своем языке, обновите Chrome до последней версии.</translation>
 <translation id="2805756323405976993">Сервисы</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Меню карточки из ленты открыто наполовину</translation>
 <translation id="2830783625999891985">Содержимое буфера обмена скрыто</translation>
 <translation id="2839327205551510876">Подписка на "<ph name="SITE_NAME" />" отменена.</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{Будет закрыта <ph name="TAB_COUNT_ONE" /> вкладка инкогнито.}one{Будет закрыта <ph name="TAB_COUNT_MANY" /> вкладка инкогнито.}few{Будет закрыто <ph name="TAB_COUNT_MANY" /> вкладки инкогнито.}many{Будет закрыто <ph name="TAB_COUNT_MANY" /> вкладок инкогнито.}other{Будет закрыто <ph name="TAB_COUNT_MANY" /> вкладки инкогнито.}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Проверено 1 день назад.}one{Проверено # день назад.}few{Проверено # дня назад.}many{Проверено # дней назад.}other{Проверено # дня назад.}}</translation>
 <translation id="2842985007712546952">Родительская папка</translation>
 <translation id="2856503607207334158">Ошибка аутентификации</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Выйти</translation>
 <translation id="5227554086496586518">Нажмите, чтобы увидеть результаты поиска</translation>
 <translation id="5233638681132016545">Новая вкладка</translation>
+<translation id="5235196193381275927">Не удалось войти в систему.</translation>
 <translation id="5246093389635966745">Изменить кнопку на панели инструментов</translation>
 <translation id="5250483651202458397">Скриншот. Нажмите, чтобы закрыть.</translation>
 <translation id="5262378156578470238">Когда <ph name="DATE" /> начнется скачивание, вы увидите уведомление.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Проверено 1 час назад.}one{Проверено # час назад.}few{Проверено # часа назад.}many{Проверено # часов назад.}other{Проверено # часа назад.}}</translation>
 <translation id="6545017243486555795">Удалить все данные</translation>
 <translation id="6546511553472444032">Файл может быть опасным</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{Вкладка "<ph name="TAB_TITLE" />" и ещё <ph name="TAB_COUNT_ONE" /> вкладка будут закрыты.}one{Вкладка "<ph name="TAB_TITLE" />" и ещё <ph name="TAB_COUNT_MANY" /> вкладка будут закрыты.}few{Вкладка "<ph name="TAB_TITLE" />" и ещё <ph name="TAB_COUNT_MANY" /> вкладки будут закрыты.}many{Вкладка "<ph name="TAB_TITLE" />" и ещё <ph name="TAB_COUNT_MANY" /> вкладок будут закрыты.}other{Вкладка "<ph name="TAB_TITLE" />" и ещё <ph name="TAB_COUNT_MANY" /> вкладки будут закрыты.}}</translation>
 <translation id="6560414384669816528">Поиск в Sogou</translation>
 <translation id="656065428026159829">Ещё</translation>
 <translation id="6565959834589222080">Использовать сеть Wi-Fi, когда она доступна</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Список устройств для отправки вкладки развернут на половину экрана.</translation>
 <translation id="6783942555455976443">Сохранить эту страницу офлайн и отправить напоминание</translation>
 <translation id="6795633245022906657">Открыть новую вкладку. Чтобы изменить функцию кнопки, перейдите в настройки.</translation>
+<translation id="6802555630140434547">Окно будет закрыто.</translation>
 <translation id="6811034713472274749">Страница загружена</translation>
 <translation id="6813446258015311409">Окно "Войти в Chrome" открыто.</translation>
 <translation id="6817747507826986771">Поделиться этой страницей. Чтобы изменить функцию кнопки, нажмите и удерживайте ее.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Чтобы получить доступ к закладкам на всех устройствах, включите синхронизацию.</translation>
 <translation id="8110087112193408731">Показать данные о ваших действиях в Chrome в сервисе "Цифровое благополучие"?</translation>
 <translation id="8127542551745560481">Изменить главную страницу</translation>
+<translation id="8130309322784422030">Сохраненные учетные данные могли устареть.</translation>
 <translation id="813082847718468539">Сведения о сайте</translation>
 <translation id="8137558756159375272">Функция "Нажмите для поиска" отправляет в Google выбранное слово, а также текущую страницу в качестве контекста. Включить или отключить эту функцию можно в <ph name="BEGIN_LINK" />настройках<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Ассистент будет появляться на поддерживаемых сайтах в ситуациях, когда он может вам помочь</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> – не удалось скачать этот языковой пакет. Повторите попытку позже.</translation>
 <translation id="8951232171465285730">Благодаря Chrome вы сэкономили <ph name="MEGABYTES" /> МБ свободного места</translation>
 <translation id="8965591936373831584">ожидание</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> вкладка инкогнито и ещё <ph name="TAB_COUNT_ONE" /> вкладка будут закрыты.}one{<ph name="INCOGNITO_TAB_COUNT" /> вкладка инкогнито и ещё <ph name="TAB_COUNT_MANY" /> вкладка будут закрыты.}few{<ph name="INCOGNITO_TAB_COUNT" /> вкладка инкогнито и ещё <ph name="TAB_COUNT_MANY" /> вкладки будут закрыты.}many{<ph name="INCOGNITO_TAB_COUNT" /> вкладка инкогнито и ещё <ph name="TAB_COUNT_MANY" /> вкладок будут закрыты.}other{<ph name="INCOGNITO_TAB_COUNT" /> вкладка инкогнито и ещё <ph name="TAB_COUNT_MANY" /> вкладки будут закрыты.}}</translation>
 <translation id="8970887620466824814">Произошла ошибка</translation>
 <translation id="8972098258593396643">Скачать в папку по умолчанию?</translation>
 <translation id="8987641763863173640">Управляйте настройками предварительного просмотра видео</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
index 083ed62..d00c9cf 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome kunde inte kontrollera alla lösenord</translation>
 <translation id="2169830938017475061">Nyss</translation>
 <translation id="2172688499998841696">Bildbeskrivningar har inaktiverats</translation>
+<translation id="2172905120685242547">Vill du stänga fönstret?</translation>
 <translation id="2175927920773552910">QR-kod</translation>
 <translation id="218608176142494674">Delar</translation>
 <translation id="2195339740518523951">Få det bästa skyddet i Chrome</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">misslyckades</translation>
 <translation id="2781151931089541271">1 sekund kvar</translation>
 <translation id="2788468313014644040">Gruppens nummer</translation>
+<translation id="2800066122460699237">Fliken <ph name="TAB_TITLE" /> stängs</translation>
 <translation id="2801022321632964776">Uppdatera och få ditt språk i den senaste versionen av Chrome</translation>
 <translation id="2805756323405976993">Appar</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Menyn med flödeskort är öppen och tar upp halva skärmen</translation>
 <translation id="2830783625999891985">Innehållet i Urklipp döljs</translation>
 <translation id="2839327205551510876">Slutade följa <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> inkognitoflik stängs}other{<ph name="TAB_COUNT_MANY" /> inkognitoflikar stängs}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Genomsöktes för 1 dag sedan}other{Genomsöktes för # dagar sedan}}</translation>
 <translation id="2842985007712546952">Överordnad mapp</translation>
 <translation id="2856503607207334158">Inloggningen misslyckades</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Logga ut</translation>
 <translation id="5227554086496586518">Tryck för att visa sökresultat</translation>
 <translation id="5233638681132016545">Ny flik</translation>
+<translation id="5235196193381275927">Något gick fel vid inloggningen</translation>
 <translation id="5246093389635966745">Redigera genväg i verktygsfältet</translation>
 <translation id="5250483651202458397">Skärmbild. Tryck och stäng.</translation>
 <translation id="5262378156578470238">Du får en avisering när nedladdningen startas den <ph name="DATE" />.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Genomsöktes för 1 timme sedan}other{Genomsöktes för # timmar sedan}}</translation>
 <translation id="6545017243486555795">Rensa all data</translation>
 <translation id="6546511553472444032">Filen kan vara skadlig</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> och <ph name="TAB_COUNT_ONE" /> flik till stängs}other{<ph name="TAB_TITLE" /> och <ph name="TAB_COUNT_MANY" /> flikar till stängs}}</translation>
 <translation id="6560414384669816528">Sök med Sogou</translation>
 <translation id="656065428026159829">Visa fler</translation>
 <translation id="6565959834589222080">wifi används när det är tillgängligt</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Listan över enheter som fliken kan delas med öppnades och tar upp halva skärmen.</translation>
 <translation id="6783942555455976443">Spara den här sidan till senare och bli påmind</translation>
 <translation id="6795633245022906657">Öppna en ny flik snabbt. Öppna inställningarna om du vill ändra genvägen.</translation>
+<translation id="6802555630140434547">Fönstret stängs</translation>
 <translation id="6811034713472274749">Sidan är klar att öppna</translation>
 <translation id="6813446258015311409">Logga in i Chrome, öppet.</translation>
 <translation id="6817747507826986771">Dela den här sidan snabbt. Tryck länge om du vill ändra genvägen.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Aktivera synkronisering om du vill ha dina bokmärken tillgängliga på alla enheter</translation>
 <translation id="8110087112193408731">Vill du att din aktivitet i Chrome ska visas i Digitalt välmående?</translation>
 <translation id="8127542551745560481">Redigera startsida</translation>
+<translation id="8130309322784422030">Dina sparade inloggningsuppgifter kan vara inaktuella</translation>
 <translation id="813082847718468539">Visa information om webbplatsen</translation>
 <translation id="8137558756159375272">Funktionen Tryck för att söka skickar det markerade ordet till Google Sök med den aktuella sidan som kontext. Du kan stänga av funktionen i <ph name="BEGIN_LINK" />Inställningar<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Assistenten visas när den upptäcker att den kan hjälpa dig på webbplatser som stöds.</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> – Det gick inte att ladda ned språket. Försök igen senare.</translation>
 <translation id="8951232171465285730">Du har sparat <ph name="MEGABYTES" /> MB med Chrome</translation>
 <translation id="8965591936373831584">väntar</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> inkognitoflik och <ph name="TAB_COUNT_ONE" /> flik till stängs}other{<ph name="INCOGNITO_TAB_COUNT" /> inkognitoflik och <ph name="TAB_COUNT_MANY" /> flikar till stängs}}</translation>
 <translation id="8970887620466824814">Något gick fel.</translation>
 <translation id="8972098258593396643">Vill du ladda ned till standardmappen?</translation>
 <translation id="8987641763863173640">Hantera inställningar för förhandsgranskning av video</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
index 5396c57..3b54ba49 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome imeshindwa kukagua manenosiri yote</translation>
 <translation id="2169830938017475061">Sasa</translation>
 <translation id="2172688499998841696">Kipengele cha maelezo ya picha kimezimwa</translation>
+<translation id="2172905120685242547">Ungependa kufunga dirisha?</translation>
 <translation id="2175927920773552910">Msimbo wa QR</translation>
 <translation id="218608176142494674">Inashiriki</translation>
 <translation id="2195339740518523951">Pata usalama thabiti zaidi kutoka Chrome</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">imeshindwa</translation>
 <translation id="2781151931089541271">Imesalia sekunde 1</translation>
 <translation id="2788468313014644040">Nambari ya kikundi</translation>
+<translation id="2800066122460699237">Kichupo cha <ph name="TAB_TITLE" /> kitafungwa</translation>
 <translation id="2801022321632964776">Sasisha ili upate lugha yako katika toleo jipya zaidi la Chrome</translation>
 <translation id="2805756323405976993">Programu</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Menyu ya kadi ya mipasho inaonekana kiasi</translation>
 <translation id="2830783625999891985">Yaliyomo kwenye ubao wa kunakili yamefichwa</translation>
 <translation id="2839327205551510876">Umeacha kufuatilia <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{Kichupo <ph name="TAB_COUNT_ONE" /> fiche kitafungwa}other{Vichupo <ph name="TAB_COUNT_MANY" /> fiche vitafungwa}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Ilikaguliwa siku moja iliyopita}other{Ilikaguliwa siku # zilizopita}}</translation>
 <translation id="2842985007712546952">Folda kuu</translation>
 <translation id="2856503607207334158">Imeshindwa kuingia katika akaunti</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Ondoka</translation>
 <translation id="5227554086496586518">Gusa ili uone matokeo ya utafutaji</translation>
 <translation id="5233638681132016545">Kichupo kipya</translation>
+<translation id="5235196193381275927">Hitilafu fulani imetokea wakati wa kuingia katika akaunti</translation>
 <translation id="5246093389635966745">Badilisha njia ya mkato ya upau wa vidhibiti</translation>
 <translation id="5250483651202458397">Picha ya skrini. Gusa ili ufunge.</translation>
 <translation id="5262378156578470238">Utaona arifa upakuaji huu utakapoanza tarehe <ph name="DATE" />.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Ilikaguliwa saa moja iliyopita}other{Ilikaguliwa saa # zilizopita}}</translation>
 <translation id="6545017243486555795">Futa Data Yote</translation>
 <translation id="6546511553472444032">Huenda faili hii ikawa hatari</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{Kichupo cha <ph name="TAB_TITLE" /> na kichupo kingine <ph name="TAB_COUNT_ONE" /> vitafungwa}other{Kichupo cha <ph name="TAB_TITLE" /> na vichupo vingine <ph name="TAB_COUNT_MANY" /> vitafungwa}}</translation>
 <translation id="6560414384669816528">Tafuta kwa kutumia Sogou</translation>
 <translation id="656065428026159829">Angalia zaidi</translation>
 <translation id="6565959834589222080">Wi-Fi hutumika inapopatikana</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Orodha ya vifaa vinavyoweza kutumia kichupo pamoja imefunguliwa kwenye nusu ya skrini.</translation>
 <translation id="6783942555455976443">Hifadhi ukurasa huu ili uusome baadaye na upate kikumbusho</translation>
 <translation id="6795633245022906657">Fungua kichupo kipya kwa haraka. Ili ubadilishe njia hii ya mkato, nenda kwenye Mipangilio.</translation>
+<translation id="6802555630140434547">Dirisha hili litafungwa</translation>
 <translation id="6811034713472274749">Unaweza kuona ukurasa</translation>
 <translation id="6813446258015311409">Ingia katika akaunti kwenye Chrome, imefunguliwa.</translation>
 <translation id="6817747507826986771">Shiriki ukurasa huu kwa haraka. Ili ubadilishe njia hii ya mkato, gusa na ushikilie.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Washa kipengele cha usawazishaji ili upate alamisho kwenye vifaa vyako vyote</translation>
 <translation id="8110087112193408731">Ungependa kuonyesha shughuli zako za Chrome katika mpango wa Nidhamu Dijitali?</translation>
 <translation id="8127542551745560481">Badilisha ukurasa wa kwanza</translation>
+<translation id="8130309322784422030">Huenda maelezo yako ya kuingia katika akaunti yaliyohifadhiwa yamepitwa na wakati</translation>
 <translation id="813082847718468539">Angalia maelezo ya tovuti</translation>
 <translation id="8137558756159375272">Kipengele cha Gusa ili Kutafuta hutuma neno lililochaguliwa na ukurasa wa sasa kama muktadha kwa huduma ya Tafuta na Google. Unaweza kuzima kipengele hiki katika <ph name="BEGIN_LINK" />Mipangilio<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Programu ya Mratibu itaonekana ikitambua kwamba inaweza kukusaidia kwenye tovuti zinazotumika</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - Imeshindwa kupakua lugha hii. Jaribu tena baadaye.</translation>
 <translation id="8951232171465285730">Chrome imekuokolea MB <ph name="MEGABYTES" /></translation>
 <translation id="8965591936373831584">inasubiri</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{Kichupo <ph name="INCOGNITO_TAB_COUNT" /> fiche na kichupo kingine <ph name="TAB_COUNT_ONE" /> vitafungwa}other{Kichupo <ph name="INCOGNITO_TAB_COUNT" /> fiche na vichupo vingine <ph name="TAB_COUNT_MANY" /> vitafungwa}}</translation>
 <translation id="8970887620466824814">Hitilafu imetokea.</translation>
 <translation id="8972098258593396643">Ungependa kupakua kwenye folda chaguomsingi?</translation>
 <translation id="8987641763863173640">Dhibiti Mipangilio ya Kukagua Video</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
index 14447ed16..5ccc476 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -126,7 +126,7 @@
 <translation id="1856325424225101786">லைட் பயன்முறையை மீட்டமைக்கவா?</translation>
 <translation id="1868024384445905608">Chrome இப்போது கோப்புகளை வேகமாகப் பதிவிறக்குகிறது</translation>
 <translation id="1877026089748256423">Chrome காலாவதியானது</translation>
-<translation id="1883903952484604915">எனது கோப்புகள்</translation>
+<translation id="1883903952484604915">எனது ஃபைல்கள் </translation>
 <translation id="189358972401248634">பிற மொழிகள்</translation>
 <translation id="1918175104945982129">குரல் தேடலுக்கு Assistantடைப் பயன்படுத்துவதற்கான ஒப்புதல் UI பாதித் திரையில் காட்டப்படுகிறது</translation>
 <translation id="1919130412786645364">Chrome உள்நுழைவை அனுமதித்தல்</translation>
@@ -146,7 +146,7 @@
 <translation id="1986685561493779662">பெயர் ஏற்கனவே உள்ளது</translation>
 <translation id="1987739130650180037"><ph name="MESSAGE" /> <ph name="LINK_NAME" /> பட்டன்</translation>
 <translation id="2000419248597011803">முகவரிப் பட்டியிலிருந்தும், தேடல் பெட்டியிலிருந்தும் சில குக்கீகளையும் தேடல்களையும் உங்கள் இயல்புத் தேடல் இன்ஜினுக்கு அனுப்பும்</translation>
-<translation id="2013642289801508067">{FILE_COUNT,plural, =1{# கோப்பு}other{# கோப்புகள்}}</translation>
+<translation id="2013642289801508067">{FILE_COUNT,plural, =1{# கோப்பு}other{# ஃபைல்கள் }}</translation>
 <translation id="2021896219286479412">முழுத் திரை தளக் கட்டுப்பாடுகள்</translation>
 <translation id="2038563949887743358">டெஸ்க்டாப் தளத்திற்கான கோரிக்கையை இயக்கு</translation>
 <translation id="2039379262107991683">நினைவூட்டலைப் பெற உங்கள் வாசிப்புப் பட்டியலில் பக்கங்களைச் சேருங்கள்</translation>
@@ -259,7 +259,7 @@
 <translation id="2645657967708199252">உங்கள் <ph name="CONNECTION_TYPE" /> இணைப்பு காரணமாகப் பதிவிறக்கத்தின் வேகம் குறையக்கூடும்</translation>
 <translation id="2647434099613338025">மொழியைச் சேர்</translation>
 <translation id="2650751991977523696">ஃபைலை மீண்டும் பதிவிறக்கவா?</translation>
-<translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ஆடியோ கோப்பு}other{# ஆடியோ கோப்புகள்}}</translation>
+<translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ஆடியோ கோப்பு}other{# ஆடியோ ஃபைல்கள் }}</translation>
 <translation id="2656405586795711023">இணைய ஆப்ஸ்</translation>
 <translation id="2689830683995595741">Chromeமைப் பயன்படுத்துவதன் மூலம் <ph name="BEGIN_LINK1" />Google சேவை விதிமுறைகளையும்<ph name="END_LINK1" /> <ph name="BEGIN_LINK2" />Google Chrome மற்றும் Chrome OS தொடர்பான கூடுதல் சேவை விதிமுறைகளையும்<ph name="END_LINK2" /> ஏற்கிறீர்கள். இவற்றோடு <ph name="BEGIN_LINK3" />Family Link நிர்வகிக்கும் Google கணக்குகளுக்கான தனியுரிமை அறிக்கையும்<ph name="END_LINK3" /> பொருந்தும்.</translation>
 <translation id="2702516483241149200">புதிது: இந்த உரைக்குச் செல்லும் இணைப்பைப் பகிரலாம்</translation>
@@ -576,7 +576,7 @@
 <translation id="4684427112815847243">அனைத்தையும் ஒத்திசை</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 மற்றும் <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> விருப்பம்}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 மற்றும் <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> விருப்பங்கள்}}</translation>
 <translation id="4696983787092045100">எனது சாதனங்களுக்கு உரைச் செய்தியை அனுப்பு</translation>
-<translation id="4699172675775169585">தற்காலிகமாகச் சேமிக்கப்பட்ட படங்கள் மற்றும் கோப்புகள்</translation>
+<translation id="4699172675775169585">தற்காலிகமாகச் சேமிக்கப்பட்ட படங்கள் மற்றும் ஃபைல்கள் </translation>
 <translation id="4714588616299687897">தரவில் 60% வரை சேமியுங்கள்</translation>
 <translation id="4719927025381752090">மொழிபெயர்ப்பதற்கான சலுகை</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />இல் திற</translation>
@@ -1060,7 +1060,7 @@
 <translation id="7562080006725997899">உலாவிய தரவை அழிக்கிறது</translation>
 <translation id="756809126120519699">Chrome தரவு அழிக்கப்பட்டது</translation>
 <translation id="7577900504646297215">ஆர்வங்களை நிர்வகிக்கும்</translation>
-<translation id="757855969265046257">{FILES,plural, =1{<ph name="FILES_DOWNLOADED_ONE" /> கோப்பு பதிவிறக்கப்பட்டது}other{<ph name="FILES_DOWNLOADED_MANY" /> கோப்புகள் பதிவிறக்கப்பட்டன}}</translation>
+<translation id="757855969265046257">{FILES,plural, =1{<ph name="FILES_DOWNLOADED_ONE" /> கோப்பு பதிவிறக்கப்பட்டது}other{<ph name="FILES_DOWNLOADED_MANY" /> ஃபைல்கள்  பதிவிறக்கப்பட்டன}}</translation>
 <translation id="7581273696622423628">கருத்துக்கணிப்பைத் தொடங்கு</translation>
 <translation id="7583262514280211622">உங்கள் வாசிப்புப் பட்டியலை இங்கே பார்ப்பீர்கள்</translation>
 <translation id="7588219262685291874">சாதனத்தில் பேட்டரி சேமிப்பான் இயக்கத்தில் இருக்கும்போது டார்க் தீமை இயக்கும்</translation>
@@ -1168,7 +1168,7 @@
 <translation id="8153351135626613369">ஆதரிக்கப்படும் இணையதளங்களில் உதவி வழங்கக்கூடிய சூழல் இருந்தால் Assistant தோன்றும்</translation>
 <translation id="8156139159503939589">உங்களால் எந்தெந்த மொழிகளை வாசிக்க முடியும்?</translation>
 <translation id="8168435359814927499">உள்ளடக்கம்</translation>
-<translation id="8186512483418048923"><ph name="FILES" /> கோப்புகள் மீதமுள்ளன</translation>
+<translation id="8186512483418048923"><ph name="FILES" /> ஃபைல்கள்  மீதமுள்ளன</translation>
 <translation id="8189750580333936930">தனியுரிமை சாண்ட்பாக்ஸ்</translation>
 <translation id="8190358571722158785">1 நாள் மீதமுள்ளது</translation>
 <translation id="8200772114523450471">மீண்டும் தொடங்கு</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
index 931a0bb..04104a0 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome ตรวจสอบรหัสผ่านได้ไม่ครบทั้งหมด</translation>
 <translation id="2169830938017475061">ตอนนี้</translation>
 <translation id="2172688499998841696">คำอธิบายรูปภาพปิดอยู่</translation>
+<translation id="2172905120685242547">ปิดหน้าต่างใช่ไหม</translation>
 <translation id="2175927920773552910">คิวอาร์โค้ด</translation>
 <translation id="218608176142494674">การแชร์</translation>
 <translation id="2195339740518523951">ให้ Chrome รักษาความปลอดภัยอย่างเข้มงวดที่สุด</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">ล้มเหลว</translation>
 <translation id="2781151931089541271">เหลือ 1 วิ</translation>
 <translation id="2788468313014644040">หมายเลขกลุ่ม</translation>
+<translation id="2800066122460699237">ระบบจะปิดแท็บ <ph name="TAB_TITLE" /></translation>
 <translation id="2801022321632964776">อัปเดตเพื่อใช้ภาษาของคุณใน Chrome เวอร์ชันล่าสุด</translation>
 <translation id="2805756323405976993">แอป</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">ซ่อนเนื้อหาในคลิปบอร์ดแล้ว</translation>
 <translation id="2839327205551510876">เลิกติดตาม <ph name="SITE_NAME" /> แล้ว</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{ระบบจะปิดแท็บที่ไม่ระบุตัวตน <ph name="TAB_COUNT_ONE" /> แท็บ}other{ระบบจะปิดแท็บที่ไม่ระบุตัวตน <ph name="TAB_COUNT_MANY" /> แท็บ}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{ตรวจสอบเมื่อ 1 วันที่ผ่านมา}other{ตรวจสอบเมื่อ # วันที่ผ่านมา}}</translation>
 <translation id="2842985007712546952">โฟลเดอร์ระดับบนสุด</translation>
 <translation id="2856503607207334158">ลงชื่อเข้าใช้ไม่สำเร็จ</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">ออกจากระบบ</translation>
 <translation id="5227554086496586518">แตะเพื่อดูผลการค้นหา</translation>
 <translation id="5233638681132016545">แท็บใหม่</translation>
+<translation id="5235196193381275927">เกิดข้อผิดพลาดระหว่างการลงชื่อเข้าใช้</translation>
 <translation id="5246093389635966745">แก้ไขทางลัดแถบเครื่องมือ</translation>
 <translation id="5250483651202458397">ภาพหน้าจอ แตะเพื่อปิด</translation>
 <translation id="5262378156578470238">คุณจะเห็นการแจ้งเตือนเมื่อการดาวน์โหลดนี้เริ่มในวันที่ <ph name="DATE" /></translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{ตรวจสอบเมื่อ 1 ชั่วโมงที่ผ่านมา}other{ตรวจสอบเมื่อ # ชั่วโมงที่ผ่านมา}}</translation>
 <translation id="6545017243486555795">ล้างข้อมูลทั้งหมด</translation>
 <translation id="6546511553472444032">ไฟล์อาจเป็นอันตราย</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{ระบบจะปิดแท็บ <ph name="TAB_TITLE" /> และอีก <ph name="TAB_COUNT_ONE" /> แท็บ}other{ระบบจะปิดแท็บ <ph name="TAB_TITLE" /> และอีก <ph name="TAB_COUNT_MANY" /> แท็บ}}</translation>
 <translation id="6560414384669816528">ค้นหาด้วย Sogou</translation>
 <translation id="656065428026159829">ดูเพิ่มเติม</translation>
 <translation id="6565959834589222080">ระบบจะใช้ Wi-Fi เมื่อพร้อมใช้งาน</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">รายการอุปกรณ์ที่จะแชร์แท็บด้วยเปิดอยู่ที่ระดับความสูงครึ่งหนึ่งของหน้าจอ</translation>
 <translation id="6783942555455976443">บันทึกหน้านี้ไว้ใช้ในภายหลังและรับการช่วยเตือน</translation>
 <translation id="6795633245022906657">เปิดแท็บใหม่อย่างรวดเร็ว ไปที่การตั้งค่าเพื่อแก้ไขทางลัดนี้</translation>
+<translation id="6802555630140434547">ระบบจะปิดหน้าต่างดังกล่าว</translation>
 <translation id="6811034713472274749">พร้อมดูหน้าเว็บแล้ว</translation>
 <translation id="6813446258015311409">ลงชื่อเข้าใช้ Chrome เปิดอยู่</translation>
 <translation id="6817747507826986771">แชร์หน้านี้อย่างรวดเร็ว หากต้องการแก้ไขทางลัดนี้ ให้แตะค้างไว้</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">เปิดการซิงค์เพื่อรับบุ๊กมาร์กในอุปกรณ์ทุกเครื่องของคุณ</translation>
 <translation id="8110087112193408731">ต้องการแสดงกิจกรรม Chrome ในไลฟ์สไตล์ดิจิทัลไหม</translation>
 <translation id="8127542551745560481">แก้ไขหน้าแรก</translation>
+<translation id="8130309322784422030">ข้อมูลการลงชื่อเข้าใช้ที่คุณเก็บไว้อาจล้าสมัย</translation>
 <translation id="813082847718468539">ดูข้อมูลเว็บไซต์</translation>
 <translation id="8137558756159375272">แตะเพื่อค้นหาจะส่งคำที่เลือกและหน้าปัจจุบันเป็นบริบทไปยัง Google Search คุณสามารถปิดฟีเจอร์นี้ใน<ph name="BEGIN_LINK" />การตั้งค่า<ph name="END_LINK" /></translation>
 <translation id="8153351135626613369">Assistant จะแสดงขึ้นมาเมื่อตรวจพบว่าสามารถให้ความช่วยเหลือคุณได้ในเว็บไซต์ที่รองรับ</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - ดาวน์โหลดภาษานี้ไม่ได้ ลองอีกครั้งในภายหลัง</translation>
 <translation id="8951232171465285730">Chrome ได้ประหยัดพื้นที่ให้คุณไป <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">รอดำเนินการ</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{ระบบจะปิดแท็บที่ไม่ระบุตัวตน <ph name="INCOGNITO_TAB_COUNT" /> แท็บและแท็บอื่นอีก <ph name="TAB_COUNT_ONE" /> แท็บ}other{ระบบจะปิดแท็บที่ไม่ระบุตัวตน <ph name="INCOGNITO_TAB_COUNT" /> แท็บและแท็บอื่นอีก <ph name="TAB_COUNT_MANY" /> แท็บ}}</translation>
 <translation id="8970887620466824814">มีบางอย่างผิดพลาด</translation>
 <translation id="8972098258593396643">ดาวน์โหลดลงโฟลเดอร์เริ่มต้นไหม</translation>
 <translation id="8987641763863173640">จัดการการตั้งค่าตัวอย่างวิดีโอ</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 3700322..e499a36 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
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome, şifrelerin tümünü kontrol edemedi</translation>
 <translation id="2169830938017475061">Şimdi</translation>
 <translation id="2172688499998841696">Resim açıklamaları kapalı</translation>
+<translation id="2172905120685242547">Pencere kapatılsın mı?</translation>
 <translation id="2175927920773552910">QR Kodu</translation>
 <translation id="218608176142494674">Paylaşım</translation>
 <translation id="2195339740518523951">Chrome’un en güçlü güvenlik özelliklerinden faydalanın</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">başarısız</translation>
 <translation id="2781151931089541271">1 sn. kaldı</translation>
 <translation id="2788468313014644040">Grup numarası</translation>
+<translation id="2800066122460699237"><ph name="TAB_TITLE" /> sekmesi kapatılacak</translation>
 <translation id="2801022321632964776">Chrome'un en son sürümünü kendi dilinizde kullanmak için güncelleyin</translation>
 <translation id="2805756323405976993">Uygulamalar</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Akış kartı menüsü yarıya kadar açık</translation>
 <translation id="2830783625999891985">Pano içerikleri gizlendi</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> takibi bırakıldı</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> gizli sekme kapatılacak}other{<ph name="TAB_COUNT_MANY" /> gizli sekme kapatılacak}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 gün önce kontrol edildi}other{# gün önce kontrol edildi}}</translation>
 <translation id="2842985007712546952">Ana klasör</translation>
 <translation id="2856503607207334158">Oturum açılamadı</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Çıkış</translation>
 <translation id="5227554086496586518">Arama sonuçlarını görmek için dokunun</translation>
 <translation id="5233638681132016545">Yeni sekme</translation>
+<translation id="5235196193381275927">Oturum açılırken bir hata oluştu</translation>
 <translation id="5246093389635966745">Araç çubuğu düzenleme kısayolu</translation>
 <translation id="5250483651202458397">Ekran görüntüsü. Kapatmak için dokunun.</translation>
 <translation id="5262378156578470238">Bu indirme işlemi, <ph name="DATE" /> tarihinde başlatıldığında bir bildirim göreceksiniz.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{1 saat önce kontrol edildi}other{# saat önce kontrol edildi}}</translation>
 <translation id="6545017243486555795">Tüm Verileri Temizle</translation>
 <translation id="6546511553472444032">Dosya zararlı olabilir</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{<ph name="TAB_TITLE" /> ve <ph name="TAB_COUNT_ONE" /> sekme daha kapatılacak}other{<ph name="TAB_TITLE" /> ve <ph name="TAB_COUNT_MANY" /> sekme daha kapatılacak}}</translation>
 <translation id="6560414384669816528">Sogou ile arama</translation>
 <translation id="656065428026159829">Daha fazla göster</translation>
 <translation id="6565959834589222080">Mevcut olduğunda kablosuz bağlantı kullanılır</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Sekme paylaşılacak cihazların listesi yarım yükseklikte açıldı.</translation>
 <translation id="6783942555455976443">Sayfayı daha sonrası için kaydedip hatırlatıcı al</translation>
 <translation id="6795633245022906657">Hızlıca yeni bir sekme açın. Bu kısayolu düzenlemek için Ayarlar'a gidin.</translation>
+<translation id="6802555630140434547">Pencere kapatılacak</translation>
 <translation id="6811034713472274749">Sayfa görüntülenmeye hazır</translation>
 <translation id="6813446258015311409">Chrome'da oturum açma sayfası açıldı.</translation>
 <translation id="6817747507826986771">Bu sayfayı hızlıca paylaşın. Bu kısayolu düzenlemek için dokunup basılı tutun.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Yer işaretlerinize tüm cihazlarınızda ulaşmak için senkronizasyonu açın</translation>
 <translation id="8110087112193408731">Chrome etkinliğiniz Dijital Denge'de gösterilsin mi?</translation>
 <translation id="8127542551745560481">Ana sayfayı düzenle</translation>
+<translation id="8130309322784422030">Kayıtlı oturum açma bilgileriniz güncel olmayabilir</translation>
 <translation id="813082847718468539">Site bilgilerini görüntüle</translation>
 <translation id="8137558756159375272">Dokun ve Ara, seçilen kelimeyi ve geçerli sayfayı Google Arama'ya bağlam olarak gönderir. Bu özelliği <ph name="BEGIN_LINK" />Ayarlar<ph name="END_LINK" />'da kapatabilirsiniz.</translation>
 <translation id="8153351135626613369">Asistan, desteklenen web sitelerinde size yardımcı olabileceğini algıladığında görünür</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - Bu dil indirilemedi. Daha sonra tekrar deneyin.</translation>
 <translation id="8951232171465285730">Chrome <ph name="MEGABYTES" /> MB tasarruf sağladı</translation>
 <translation id="8965591936373831584">beklemede</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> gizli sekme ve <ph name="TAB_COUNT_ONE" /> sekme daha kapatılacak}other{<ph name="INCOGNITO_TAB_COUNT" /> gizli sekme ve <ph name="TAB_COUNT_MANY" /> sekme daha kapatılacak}}</translation>
 <translation id="8970887620466824814">Bir hata oluştu.</translation>
 <translation id="8972098258593396643">Varsayılan klasöre indirilsin mi?</translation>
 <translation id="8987641763863173640">Video Önizleme Ayarlarını Yönetin</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
index 00915e0..548b172 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome không thể kiểm tra một số mật khẩu</translation>
 <translation id="2169830938017475061">Bây giờ</translation>
 <translation id="2172688499998841696">Tính năng mô tả hình ảnh đang tắt</translation>
+<translation id="2172905120685242547">Đóng cửa sổ?</translation>
 <translation id="2175927920773552910">Mã QR</translation>
 <translation id="218608176142494674">Chia sẻ</translation>
 <translation id="2195339740518523951">Tận dụng mức bảo mật mạnh nhất của Chrome</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">không tải xuống được</translation>
 <translation id="2781151931089541271">Còn 1 giây</translation>
 <translation id="2788468313014644040">Số nhóm</translation>
+<translation id="2800066122460699237">Thẻ <ph name="TAB_TITLE" /> sẽ đóng</translation>
 <translation id="2801022321632964776">Hãy cập nhật để dùng ngôn ngữ của bạn trong phiên bản Chrome mới nhất</translation>
 <translation id="2805756323405976993">Ứng dụng</translation>
 <translation id="2806840421670364300">FLoC (Học liên kết theo nhóm cùng sở thích)</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Trình đơn thẻ nguồn cấp dữ liệu mở ở nửa dưới của màn hình</translation>
 <translation id="2830783625999891985">Đã ẩn nội dung của bảng nhớ tạm</translation>
 <translation id="2839327205551510876">Đã ngừng theo dõi <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> thẻ ẩn danh sẽ đóng}other{<ph name="TAB_COUNT_MANY" /> thẻ ẩn danh sẽ đóng}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Đã kiểm tra 1 ngày trước}other{Đã kiểm tra # ngày trước}}</translation>
 <translation id="2842985007712546952">Thư mục mẹ</translation>
 <translation id="2856503607207334158">Không đăng nhập được</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">Đăng xuất</translation>
 <translation id="5227554086496586518">Nhấn để xem kết quả tìm kiếm</translation>
 <translation id="5233638681132016545">Thẻ mới</translation>
+<translation id="5235196193381275927">Đã xảy ra lỗi trong quá trình đăng nhập</translation>
 <translation id="5246093389635966745">Chỉnh sửa phím tắt thanh công cụ</translation>
 <translation id="5250483651202458397">Ảnh chụp màn hình. Nhấn để đóng.</translation>
 <translation id="5262378156578470238">Bạn sẽ thấy một thông báo khi tệp này bắt đầu tải xuống vào <ph name="DATE" />.</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{Đã kiểm tra 1 giờ trước}other{Đã kiểm tra # giờ trước}}</translation>
 <translation id="6545017243486555795">Xóa tất cả dữ liệu</translation>
 <translation id="6546511553472444032">Tệp có thể gây hại</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{Thẻ <ph name="TAB_TITLE" /> và <ph name="TAB_COUNT_ONE" /> thẻ khác sẽ đóng}other{Thẻ <ph name="TAB_TITLE" /> và <ph name="TAB_COUNT_MANY" /> thẻ khác sẽ đóng}}</translation>
 <translation id="6560414384669816528">Tìm kiếm với Sogou</translation>
 <translation id="656065428026159829">Xem thêm</translation>
 <translation id="6565959834589222080">Dùng mạng Wi-Fi khi có sẵn</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">Danh sách các thiết bị mà bạn có thể chia sẻ một thẻ đã mở ở nửa dưới của màn hình.</translation>
 <translation id="6783942555455976443">Lưu trang này để đọc sau và nhận lời nhắc</translation>
 <translation id="6795633245022906657">Mở nhanh một thẻ mới. Để chỉnh sửa lối tắt này, hãy chuyển đến phần Cài đặt.</translation>
+<translation id="6802555630140434547">Cửa sổ này sẽ đóng</translation>
 <translation id="6811034713472274749">Trang hiện đã sẵn sàng cho bạn xem</translation>
 <translation id="6813446258015311409">Đã mở trang Đăng nhập vào Chrome.</translation>
 <translation id="6817747507826986771">Chia sẻ nhanh trang này. Để chỉnh sửa lối tắt này, hãy chạm và giữ.</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">Để sử dụng dấu trang trên tất cả các thiết bị, hãy bật tính năng đồng bộ hóa</translation>
 <translation id="8110087112193408731">Bạn có muốn hiển thị hoạt động của mình trên Chrome trong Digital Wellbeing không?</translation>
 <translation id="8127542551745560481">Chỉnh sửa trang chủ</translation>
+<translation id="8130309322784422030">Thông tin đăng nhập bạn lưu lần trước có thể đã cũ</translation>
 <translation id="813082847718468539">Xem thông tin trang web</translation>
 <translation id="8137558756159375272">Chạm để tìm kiếm sẽ gửi từ đã chọn và trang hiện tại làm ngữ cảnh cho Google Tìm kiếm. Bạn có thể tắt tính năng này trong <ph name="BEGIN_LINK" />Cài đặt<ph name="END_LINK" />.</translation>
 <translation id="8153351135626613369">Trợ lý sẽ xuất hiện khi thấy có thể giúp bạn trên những trang web được hỗ trợ</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> – Không thể tải ngôn ngữ này xuống. Hãy thử lại sau.</translation>
 <translation id="8951232171465285730">Chrome đã tiết kiệm <ph name="MEGABYTES" /> MB cho bạn</translation>
 <translation id="8965591936373831584">đang chờ xử lý</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{<ph name="INCOGNITO_TAB_COUNT" /> thẻ ẩn danh và <ph name="TAB_COUNT_ONE" /> thẻ nữa sẽ đóng}other{<ph name="INCOGNITO_TAB_COUNT" /> thẻ ẩn danh và <ph name="TAB_COUNT_MANY" /> thẻ nữa sẽ đóng}}</translation>
 <translation id="8970887620466824814">Đã xảy ra lỗi.</translation>
 <translation id="8972098258593396643">Tải xuống thư mục mặc định?</translation>
 <translation id="8987641763863173640">Quản lý chế độ cài đặt Xem trước video</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 8eaeec0..e2a782a 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
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome 無法檢查所有密碼</translation>
 <translation id="2169830938017475061">現在</translation>
 <translation id="2172688499998841696">圖片描述功能已關閉</translation>
+<translation id="2172905120685242547">要關閉視窗嗎?</translation>
 <translation id="2175927920773552910">二維條碼</translation>
 <translation id="218608176142494674">共用</translation>
 <translation id="2195339740518523951">取得 Chrome 最強大的安全防護</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">失敗</translation>
 <translation id="2781151931089541271">尚餘 1 秒</translation>
 <translation id="2788468313014644040">群組號碼</translation>
+<translation id="2800066122460699237">即將關閉「<ph name="TAB_TITLE" />」分頁</translation>
 <translation id="2801022321632964776">更新後即可在 Chrome 最新版本中使用您的語言。</translation>
 <translation id="2805756323405976993">應用程式</translation>
 <translation id="2806840421670364300">群組聯合學習 : FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">隱藏咗剪貼簿嘅內容</translation>
 <translation id="2839327205551510876">已取消追蹤 <ph name="SITE_NAME" /></translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{即將關閉 <ph name="TAB_COUNT_ONE" /> 個無痕分頁}other{即將關閉 <ph name="TAB_COUNT_MANY" /> 個無痕分頁}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{曾在 1 天前檢查}other{曾在 # 天前檢查}}</translation>
 <translation id="2842985007712546952">上層資料夾</translation>
 <translation id="2856503607207334158">登入失敗</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">登出</translation>
 <translation id="5227554086496586518">輕按以查看搜尋結果</translation>
 <translation id="5233638681132016545">新分頁</translation>
+<translation id="5235196193381275927">登入時發生問題</translation>
 <translation id="5246093389635966745">編輯工具列捷徑</translation>
 <translation id="5250483651202458397">螢幕截圖。輕按以關閉。</translation>
 <translation id="5262378156578470238">下載於 <ph name="DATE" />開始時,系統會顯示通知。</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{曾在 1 小時前檢查}other{曾在 # 小時前檢查}}</translation>
 <translation id="6545017243486555795">清除所有資料</translation>
 <translation id="6546511553472444032">檔案可能有害</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{即將關閉「<ph name="TAB_TITLE" />」和另外 <ph name="TAB_COUNT_ONE" /> 個分頁}other{即將關閉「<ph name="TAB_TITLE" />」和另外 <ph name="TAB_COUNT_MANY" /> 個分頁}}</translation>
 <translation id="6560414384669816528">使用「搜狗」搜尋內容</translation>
 <translation id="656065428026159829">查看更多</translation>
 <translation id="6565959834589222080">有可用的 Wi-Fi 時使用 Wi-Fi</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">要共用分頁嘅裝置清單宜家顯示喺畫面下半部。</translation>
 <translation id="6783942555455976443">將此頁面儲存至稍後閱讀,並接收提醒</translation>
 <translation id="6795633245022906657">快速開啟新分頁。如要編輯此捷徑,請前往「設定」。</translation>
+<translation id="6802555630140434547">視窗即將關閉</translation>
 <translation id="6811034713472274749">網頁已準備就緒,可供查看</translation>
 <translation id="6813446258015311409">登入 Chrome,開咗。</translation>
 <translation id="6817747507826986771">快速分享此頁面。如要編輯此捷徑,請按住捷徑按鈕。</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">如要將書籤同步到所有裝置,請開啟同步處理功能</translation>
 <translation id="8110087112193408731">要在「健康數碼生活」中顯示您的 Chrome 活動記錄嗎?</translation>
 <translation id="8127542551745560481">編輯首頁</translation>
+<translation id="8130309322784422030">你儲存的登入資訊可能已過時</translation>
 <translation id="813082847718468539">檢視網站資料</translation>
 <translation id="8137558756159375272">「輕觸搜尋」會將所選字詞和目前網頁以內容的形式傳送至 Google 搜尋。您可以在「<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />」中停用這項功能。</translation>
 <translation id="8153351135626613369">「Google 助理」偵測到可在支援的網站上提供協助時就會顯示</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - 無法下載此語言套件,請稍後再試。</translation>
 <translation id="8951232171465285730">Chrome 已為您節省 <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">正在等待下載</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{即將關閉 <ph name="INCOGNITO_TAB_COUNT" /> 個無痕分頁和另外 <ph name="TAB_COUNT_ONE" /> 個分頁}other{即將關閉 <ph name="INCOGNITO_TAB_COUNT" /> 個無痕分頁和另外 <ph name="TAB_COUNT_MANY" /> 個分頁}}</translation>
 <translation id="8970887620466824814">發生錯誤。</translation>
 <translation id="8972098258593396643">要下載至預設資料夾嗎?</translation>
 <translation id="8987641763863173640">管理影片預覽設定</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 54cc800..cad67348 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
@@ -181,6 +181,7 @@
 <translation id="2158408438301413340">Chrome 無法檢查所有密碼</translation>
 <translation id="2169830938017475061">現在</translation>
 <translation id="2172688499998841696">圖片說明功能已關閉</translation>
+<translation id="2172905120685242547">要關閉視窗嗎?</translation>
 <translation id="2175927920773552910">QR 圖碼</translation>
 <translation id="218608176142494674">共用</translation>
 <translation id="2195339740518523951">獲得 Chrome 最強大的安全防護</translation>
@@ -280,6 +281,7 @@
 <translation id="2779651927720337254">失敗</translation>
 <translation id="2781151931089541271">還剩 1 秒</translation>
 <translation id="2788468313014644040">群組編號</translation>
+<translation id="2800066122460699237">即將關閉「<ph name="TAB_TITLE" />」分頁</translation>
 <translation id="2801022321632964776">更新後即可在 Chrome 最新版本中使用你偏好的語言</translation>
 <translation id="2805756323405976993">應用程式</translation>
 <translation id="2806840421670364300">FLoC</translation>
@@ -288,6 +290,7 @@
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">已隱藏剪貼簿內容</translation>
 <translation id="2839327205551510876">已取消追蹤「<ph name="SITE_NAME" />」</translation>
+<translation id="2840810876587895427">{TAB_COUNT,plural, =1{即將關閉 <ph name="TAB_COUNT_ONE" /> 個無痕分頁}other{即將關閉 <ph name="TAB_COUNT_MANY" /> 個無痕分頁}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{已在 1 天前檢查}other{已在 # 天前檢查}}</translation>
 <translation id="2842985007712546952">上層資料夾</translation>
 <translation id="2856503607207334158">登入失敗</translation>
@@ -673,6 +676,7 @@
 <translation id="5222676887888702881">登出</translation>
 <translation id="5227554086496586518">輕觸即可查看搜尋結果</translation>
 <translation id="5233638681132016545">新增分頁</translation>
+<translation id="5235196193381275927">登入時發生問題</translation>
 <translation id="5246093389635966745">編輯工具列捷徑</translation>
 <translation id="5250483651202458397">螢幕截圖。輕觸即可關閉。</translation>
 <translation id="5262378156578470238">下載於 <ph name="DATE" />開始時,系統會顯示通知。</translation>
@@ -896,6 +900,7 @@
 <translation id="6541983376925655882">{NUM_HOURS,plural, =1{已在 1 小時前檢查}other{已在 # 小時前檢查}}</translation>
 <translation id="6545017243486555795">清除所有資料</translation>
 <translation id="6546511553472444032">檔案可能有害</translation>
+<translation id="6556542240154580383">{TAB_COUNT,plural, =1{即將關閉「<ph name="TAB_TITLE" />」和另外 <ph name="TAB_COUNT_ONE" /> 個分頁}other{即將關閉「<ph name="TAB_TITLE" />」和另外 <ph name="TAB_COUNT_MANY" /> 個分頁}}</translation>
 <translation id="6560414384669816528">使用 Sogou 搜尋</translation>
 <translation id="656065428026159829">顯示更多</translation>
 <translation id="6565959834589222080">有可用 Wi-Fi 時,系統會使用 Wi-Fi</translation>
@@ -936,6 +941,7 @@
 <translation id="6767294960381293877">要共用分頁的裝置清單已開啟,顯示在畫面下半部。</translation>
 <translation id="6783942555455976443">儲存這個頁面以便稍後閱讀並設定提醒</translation>
 <translation id="6795633245022906657">快速開啟新分頁。如要編輯這個捷徑,請前往 [設定]。</translation>
+<translation id="6802555630140434547">視窗即將關閉</translation>
 <translation id="6811034713472274749">你可以瀏覽這個網頁了</translation>
 <translation id="6813446258015311409">登入 Chrome,帳戶挑選器已開啟。</translation>
 <translation id="6817747507826986771">快速分享這個專頁。按住這裡即可編輯這個捷徑。</translation>
@@ -1163,6 +1169,7 @@
 <translation id="8109613176066109935">如要將書籤同步到所有裝置,請開啟同步處理功能</translation>
 <translation id="8110087112193408731">要在數位健康中顯示你的 Chrome 活動記錄嗎?</translation>
 <translation id="8127542551745560481">編輯首頁</translation>
+<translation id="8130309322784422030">你儲存的登入資訊可能已過時</translation>
 <translation id="813082847718468539">查看網站資訊</translation>
 <translation id="8137558756159375272">「輕觸搜尋」會將選取的字詞和目前所在的網頁 (以便建立關聯) 傳送給 Google 搜尋。您可以在<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />中關閉這項功能。</translation>
 <translation id="8153351135626613369">Google 助理偵測到可在支援的網站上提供協助時就會顯示</translation>
@@ -1293,6 +1300,7 @@
 <translation id="8945143127965743188"><ph name="LANG" /> - 無法下載這個語言套件,請稍後再試。</translation>
 <translation id="8951232171465285730">Chrome 為你節省了 <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">正在等待下載</translation>
+<translation id="8968085728801125376">{TAB_COUNT,plural, =1{即將關閉 <ph name="INCOGNITO_TAB_COUNT" /> 個無痕分頁和另外 <ph name="TAB_COUNT_ONE" /> 個分頁}other{即將關閉 <ph name="INCOGNITO_TAB_COUNT" /> 個無痕分頁和另外 <ph name="TAB_COUNT_MANY" /> 個分頁}}</translation>
 <translation id="8970887620466824814">發生錯誤。</translation>
 <translation id="8972098258593396643">要下載至預設資料夾嗎?</translation>
 <translation id="8987641763863173640">管理影片預覽設定</translation>
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider.cc b/chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider.cc
deleted file mode 100644
index dfe173d..0000000
--- a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider.cc
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright 2018 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/app_list/search/arc/arc_app_data_search_provider.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/bind.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/ui/app_list/search/arc/arc_app_data_search_result.h"
-#include "components/arc/arc_service_manager.h"
-#include "components/arc/session/arc_bridge_service.h"
-
-namespace app_list {
-
-namespace {
-
-// Checks if we're receiving a result with valid data from Android.
-bool IsValidResult(const arc::mojom::AppDataResult& result) {
-  if (result.launch_intent_uri.empty() || result.label.empty())
-    return false;
-
-  return true;
-}
-
-}  // namespace
-
-ArcAppDataSearchProvider::ArcAppDataSearchProvider(
-    int max_results,
-    AppListControllerDelegate* list_controller)
-    : max_results_(max_results), list_controller_(list_controller) {}
-
-ArcAppDataSearchProvider::~ArcAppDataSearchProvider() = default;
-
-ash::AppListSearchResultType ArcAppDataSearchProvider::ResultType() {
-  return ash::AppListSearchResultType::kUnknown;
-}
-
-void ArcAppDataSearchProvider::Start(const std::u16string& query) {
-  arc::mojom::AppInstance* app_instance =
-      arc::ArcServiceManager::Get()
-          ? ARC_GET_INSTANCE_FOR_METHOD(
-                arc::ArcServiceManager::Get()->arc_bridge_service()->app(),
-                GetIcingGlobalQueryResults)
-          : nullptr;
-
-  if (!app_instance || query.empty()) {
-    ClearResults();
-    return;
-  }
-  last_query_ = query;
-
-  weak_ptr_factory_.InvalidateWeakPtrs();
-  app_instance->GetIcingGlobalQueryResults(
-      base::UTF16ToUTF8(query), max_results_,
-      base::BindOnce(&ArcAppDataSearchProvider::OnResults,
-                     weak_ptr_factory_.GetWeakPtr()));
-}
-
-void ArcAppDataSearchProvider::OnResults(
-    arc::mojom::AppDataRequestState state,
-    std::vector<arc::mojom::AppDataResultPtr> results) {
-  if (state != arc::mojom::AppDataRequestState::REQUEST_SUCCESS) {
-    DCHECK(results.empty());
-    ClearResults();
-    return;
-  }
-
-  SearchProvider::Results new_results;
-  for (auto& result : results) {
-    if (!IsValidResult(*result)) {
-      ClearResults();
-      return;
-    }
-
-    new_results.emplace_back(std::make_unique<ArcAppDataSearchResult>(
-        std::move(result), list_controller_, last_query_));
-  }
-  SwapResults(&new_results);
-}
-
-}  // namespace app_list
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider.h b/chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider.h
deleted file mode 100644
index f407d50..0000000
--- a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2018 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_APP_LIST_SEARCH_ARC_ARC_APP_DATA_SEARCH_PROVIDER_H_
-#define CHROME_BROWSER_UI_APP_LIST_SEARCH_ARC_ARC_APP_DATA_SEARCH_PROVIDER_H_
-
-#include <string>
-#include <vector>
-
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/ui/app_list/search/search_provider.h"
-#include "components/arc/mojom/app.mojom-forward.h"
-
-class AppListControllerDelegate;
-
-namespace app_list {
-
-class ArcAppDataSearchProvider : public SearchProvider {
- public:
-  ArcAppDataSearchProvider(int max_results,
-                           AppListControllerDelegate* list_controller);
-  ~ArcAppDataSearchProvider() override;
-
-  // SearchProvider:
-  void Start(const std::u16string& query) override;
-  ash::AppListSearchResultType ResultType() override;
-
- private:
-  void OnResults(arc::mojom::AppDataRequestState state,
-                 std::vector<arc::mojom::AppDataResultPtr> results);
-
-  const int max_results_;
-  std::u16string last_query_;
-  AppListControllerDelegate* const list_controller_;  // Owned by AppListClient.
-  base::WeakPtrFactory<ArcAppDataSearchProvider> weak_ptr_factory_{this};
-
-  DISALLOW_COPY_AND_ASSIGN(ArcAppDataSearchProvider);
-};
-
-}  // namespace app_list
-
-#endif  // CHROME_BROWSER_UI_APP_LIST_SEARCH_ARC_ARC_APP_DATA_SEARCH_PROVIDER_H_
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider_unittest.cc b/chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider_unittest.cc
deleted file mode 100644
index cf8128b..0000000
--- a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider_unittest.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2018 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/app_list/search/arc/arc_app_data_search_provider.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/macros.h"
-#include "base/strings/strcat.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/ash/arc/icon_decode_request.h"
-#include "chrome/browser/ui/app_list/app_list_test_util.h"
-#include "chrome/browser/ui/app_list/arc/arc_app_test.h"
-#include "chrome/browser/ui/app_list/search/chrome_search_result.h"
-#include "chrome/browser/ui/app_list/test/test_app_list_controller_delegate.h"
-
-namespace app_list {
-
-class ArcAppDataSearchProviderTest : public AppListTestBase {
- protected:
-  ArcAppDataSearchProviderTest() = default;
-  ~ArcAppDataSearchProviderTest() override = default;
-
-  // AppListTestBase:
-  void SetUp() override {
-    AppListTestBase::SetUp();
-    arc_test_.SetUp(profile());
-    controller_ = std::make_unique<test::TestAppListControllerDelegate>();
-  }
-
-  void TearDown() override {
-    controller_.reset();
-    arc_test_.TearDown();
-    AppListTestBase::TearDown();
-  }
-
-  std::unique_ptr<ArcAppDataSearchProvider> CreateSearch(int max_results) {
-    return std::make_unique<ArcAppDataSearchProvider>(max_results,
-                                                      controller_.get());
-  }
-
- private:
-  std::unique_ptr<test::TestAppListControllerDelegate> controller_;
-  ArcAppTest arc_test_;
-
-  DISALLOW_COPY_AND_ASSIGN(ArcAppDataSearchProviderTest);
-};
-
-TEST_F(ArcAppDataSearchProviderTest, Basic) {
-  constexpr size_t kMaxResults = 6;
-  constexpr char16_t kQuery[] = u"App Data Search";
-
-  std::unique_ptr<ArcAppDataSearchProvider> provider =
-      CreateSearch(kMaxResults);
-  EXPECT_TRUE(provider->results().empty());
-  arc::IconDecodeRequest::DisableSafeDecodingForTesting();
-
-  provider->Start(kQuery);
-  const auto& results = provider->results();
-  EXPECT_EQ(2u, results.size());
-  // Verify Person search result.
-  int i = 0;
-  EXPECT_EQ(base::StrCat({u"Label ", kQuery, u" ", base::NumberToString16(i)}),
-            results[i]->title());
-  EXPECT_EQ(ash::SearchResultDisplayType::kTile, results[i]->display_type());
-  EXPECT_TRUE(results[i]->details().empty());
-  // Verify Note document search result.
-  ++i;
-  EXPECT_EQ(base::StrCat({u"Label ", kQuery, u" ", base::NumberToString16(i)}),
-            results[i]->title());
-  EXPECT_EQ(ash::SearchResultDisplayType::kList, results[i]->display_type());
-  EXPECT_EQ(base::StrCat({u"Text ", kQuery, u" ", base::NumberToString16(i)}),
-            results[i]->details());
-}
-
-}  // namespace app_list
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_result.cc b/chrome/browser/ui/app_list/search/arc/arc_app_data_search_result.cc
deleted file mode 100644
index 3380de47..0000000
--- a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_result.cc
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright 2018 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/app_list/search/arc/arc_app_data_search_result.h"
-
-#include <utility>
-
-#include "ash/public/cpp/app_list/app_list_config.h"
-#include "base/bind.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/apps/app_service/app_icon_factory.h"
-#include "chrome/browser/ash/arc/icon_decode_request.h"
-#include "chrome/browser/ui/app_list/app_list_controller_delegate.h"
-#include "chrome/browser/ui/app_list/search/search_tags_util.h"
-#include "components/arc/arc_service_manager.h"
-#include "components/arc/session/arc_bridge_service.h"
-#include "third_party/skia/include/core/SkPath.h"
-#include "ui/base/models/simple_menu_model.h"
-#include "ui/gfx/canvas.h"
-#include "ui/gfx/image/canvas_image_source.h"
-#include "ui/gfx/image/image_skia_operations.h"
-
-namespace app_list {
-
-namespace {
-
-constexpr char kAppDataSearchPrefix[] = "appdatasearch://";
-
-constexpr int kAvatarSize = 40;
-
-bool LaunchIntent(const std::string& intent_uri, int64_t display_id) {
-  auto* arc_service_manager = arc::ArcServiceManager::Get();
-  if (!arc_service_manager)
-    return false;
-
-  auto* app = arc_service_manager->arc_bridge_service()->app();
-
-  if (auto* app_instance = ARC_GET_INSTANCE_FOR_METHOD(app, LaunchIntent)) {
-    app_instance->LaunchIntent(intent_uri, display_id);
-    return true;
-  }
-
-  if (auto* app_instance =
-          ARC_GET_INSTANCE_FOR_METHOD(app, LaunchIntentDeprecated)) {
-    app_instance->LaunchIntentDeprecated(intent_uri, absl::nullopt);
-    return true;
-  }
-
-  return false;
-}
-
-// Provide circular avatar image source.
-class AvatarImageSource : public gfx::CanvasImageSource {
- public:
-  AvatarImageSource(gfx::ImageSkia avatar, int size)
-      : CanvasImageSource(gfx::Size(size, size)), radius_(size / 2) {
-    avatar_ = gfx::ImageSkiaOperations::CreateResizedImage(
-        avatar, skia::ImageOperations::RESIZE_BEST, gfx::Size(size, size));
-  }
-  ~AvatarImageSource() override = default;
-
- private:
-  // gfx::CanvasImageSource overrides:
-  void Draw(gfx::Canvas* canvas) override {
-    SkPath circular_mask;
-    circular_mask.addCircle(SkIntToScalar(radius_), SkIntToScalar(radius_),
-                            SkIntToScalar(radius_));
-    canvas->ClipPath(circular_mask, true);
-    canvas->DrawImageInt(avatar_, 0, 0);
-  }
-
-  gfx::ImageSkia avatar_;
-  const int radius_;
-
-  DISALLOW_COPY_AND_ASSIGN(AvatarImageSource);
-};
-
-}  // namespace
-
-ArcAppDataSearchResult::ArcAppDataSearchResult(
-    arc::mojom::AppDataResultPtr data,
-    AppListControllerDelegate* list_controller,
-    const std::u16string& query)
-    : data_(std::move(data)), list_controller_(list_controller) {
-  const std::u16string title = base::UTF8ToUTF16(data_->label);
-  SetTitle(title);
-  SetTitleTags(CalculateTags(query, title));
-  set_id(kAppDataSearchPrefix + launch_intent_uri());
-  if (data_->type == arc::mojom::AppDataResultType::PERSON) {
-    SetDisplayType(ash::SearchResultDisplayType::kTile);
-    SetMetricsType(ash::APP_DATA_RESULT_PERSON);
-  } else if (data_->type == arc::mojom::AppDataResultType::NOTE_DOCUMENT) {
-    const std::u16string details = base::UTF8ToUTF16(data_->text);
-    SetDetails(details);
-    SetDetailsTags(CalculateTags(query, details));
-    SetDisplayType(ash::SearchResultDisplayType::kList);
-    SetMetricsType(ash::APP_DATA_RESULT_NOTE_DOCUMENT);
-  } else {
-    NOTREACHED();
-    SetMetricsType(ash::SEARCH_RESULT_TYPE_BOUNDARY);
-  }
-
-  // TODO(warx): set default images when icon_png_data() is not available.
-  if (!data_->icon) {
-    SetIcon(IconInfo(gfx::ImageSkia()));
-    return;
-  }
-
-  apps::ArcRawIconPngDataToImageSkia(
-      std::move(data_->icon),
-      ash::SharedAppListConfig::instance().search_tile_icon_dimension(),
-      base::BindOnce(&ArcAppDataSearchResult::ApplyIcon,
-                     weak_ptr_factory_.GetWeakPtr()));
-}
-
-ArcAppDataSearchResult::~ArcAppDataSearchResult() = default;
-
-void ArcAppDataSearchResult::GetContextMenuModel(
-    GetMenuModelCallback callback) {
-  // TODO(warx): Enable Context Menu.
-  std::move(callback).Run(nullptr);
-}
-
-void ArcAppDataSearchResult::Open(int event_flags) {
-  LaunchIntent(launch_intent_uri(), list_controller_->GetAppListDisplayId());
-}
-
-void ArcAppDataSearchResult::ApplyIcon(const gfx::ImageSkia& icon) {
-  if (data_->type == arc::mojom::AppDataResultType::PERSON) {
-    SetIcon(IconInfo(
-        gfx::ImageSkia(std::make_unique<AvatarImageSource>(icon, kAvatarSize),
-                       gfx::Size(kAvatarSize, kAvatarSize))));
-    return;
-  }
-  SetIcon(IconInfo(icon));
-}
-
-}  // namespace app_list
diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_result.h b/chrome/browser/ui/app_list/search/arc/arc_app_data_search_result.h
deleted file mode 100644
index e70d55a1..0000000
--- a/chrome/browser/ui/app_list/search/arc/arc_app_data_search_result.h
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright 2018 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_APP_LIST_SEARCH_ARC_ARC_APP_DATA_SEARCH_RESULT_H_
-#define CHROME_BROWSER_UI_APP_LIST_SEARCH_ARC_ARC_APP_DATA_SEARCH_RESULT_H_
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "ash/public/cpp/app_list/app_list_metrics.h"
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/ui/app_list/search/chrome_search_result.h"
-#include "components/arc/mojom/app.mojom.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
-
-class AppListControllerDelegate;
-
-namespace arc {
-class IconDecodeRequest;
-}  // namespace arc
-
-namespace app_list {
-
-class ArcAppDataSearchResult : public ChromeSearchResult {
- public:
-  ArcAppDataSearchResult(arc::mojom::AppDataResultPtr data,
-                         AppListControllerDelegate* list_controller,
-                         const std::u16string& query);
-  ~ArcAppDataSearchResult() override;
-
-  // ChromeSearchResult:
-  void GetContextMenuModel(GetMenuModelCallback callback) override;
-  void Open(int event_flags) override;
-
- private:
-  const std::string& launch_intent_uri() const {
-    return data_->launch_intent_uri;
-  }
-  const absl::optional<std::vector<uint8_t>>& icon_png_data() const {
-    // TODO(crbug.com/1083331): Remove the checking, when the ARC change is
-    // rolled in Chrome OS.
-    if (!data_->icon || !data_->icon->icon_png_data ||
-        data_->icon->icon_png_data->empty()) {
-      return data_->icon_png_data;
-    }
-    return data_->icon->icon_png_data;
-  }
-
-  // Set |icon| to SearchResult. |icon| may be customized based on |data_|.
-  void ApplyIcon(const gfx::ImageSkia& icon);
-
-  arc::mojom::AppDataResultPtr data_;
-  std::unique_ptr<arc::IconDecodeRequest> icon_decode_request_;
-
-  AppListControllerDelegate* const list_controller_;  // Owned by AppListClient.
-
-  base::WeakPtrFactory<ArcAppDataSearchResult> weak_ptr_factory_{this};
-
-  DISALLOW_COPY_AND_ASSIGN(ArcAppDataSearchResult);
-};
-
-}  // namespace app_list
-
-#endif  // CHROME_BROWSER_UI_APP_LIST_SEARCH_ARC_ARC_APP_DATA_SEARCH_RESULT_H_
diff --git a/chrome/browser/ui/app_list/search/search_controller_factory.cc b/chrome/browser/ui/app_list/search/search_controller_factory.cc
index c1100cf..a74d01c 100644
--- a/chrome/browser/ui/app_list/search/search_controller_factory.cc
+++ b/chrome/browser/ui/app_list/search/search_controller_factory.cc
@@ -16,7 +16,6 @@
 #include "chrome/browser/ash/arc/arc_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/app_list/search/app_search_provider.h"
-#include "chrome/browser/ui/app_list/search/arc/arc_app_data_search_provider.h"
 #include "chrome/browser/ui/app_list/search/arc/arc_app_reinstall_search_provider.h"
 #include "chrome/browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider.h"
 #include "chrome/browser/ui/app_list/search/arc/arc_playstore_search_provider.h"
@@ -77,7 +76,6 @@
 constexpr size_t kMaxPlayStoreResults = 12;
 
 // TODO(warx): Need UX spec.
-constexpr size_t kMaxAppDataResults = 4;
 constexpr size_t kMaxAppShortcutResults = 4;
 
 // Assistant provides a single search result when launcher chip integration is
@@ -165,13 +163,6 @@
                           std::make_unique<ArcPlayStoreSearchProvider>(
                               kMaxPlayStoreResults, profile, list_controller));
 
-  if (app_list_features::IsAppDataSearchEnabled()) {
-    size_t app_data_api_group_id = controller->AddGroup(kMaxAppDataResults);
-    controller->AddProvider(app_data_api_group_id,
-                            std::make_unique<ArcAppDataSearchProvider>(
-                                kMaxAppDataResults, list_controller));
-  }
-
   if (arc::IsArcAllowedForProfile(profile)) {
     size_t app_shortcut_group_id = controller->AddGroup(kMaxAppShortcutResults);
     controller->AddProvider(
diff --git a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc
index 55e8646e..cab3c2bd 100644
--- a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc
+++ b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_arc_tracker.cc
@@ -410,9 +410,8 @@
     app_window->SetDescription(info->title(), info->icon());
 
   window->SetProperty(ash::kShelfIDKey, shelf_id.Serialize());
-  window->SetProperty(ash::kArcPackageNameKey,
-                      new std::string(info->package_name()));
-  window->SetProperty(ash::kAppIDKey, new std::string(shelf_id.app_id));
+  window->SetProperty(ash::kArcPackageNameKey, info->package_name());
+  window->SetProperty(ash::kAppIDKey, shelf_id.app_id);
   window->SetProperty(aura::client::kSkipImeProcessing, true);
 
   if (info->app_shelf_id().app_id() == arc::kPlayStoreAppId)
diff --git a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc
index 8801d2f..5542a93 100644
--- a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc
+++ b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc
@@ -992,10 +992,9 @@
 
     aura::Window* window = widget->GetNativeWindow();
     const ash::ShelfID shelf_id(app_id);
-    window->SetProperty(ash::kShelfIDKey,
-                        new std::string(shelf_id.Serialize()));
+    window->SetProperty(ash::kShelfIDKey, shelf_id.Serialize());
     window->SetProperty<int>(ash::kShelfItemTypeKey, ash::TYPE_APP);
-    window->SetProperty(ash::kAppIDKey, new std::string(app_id));
+    window->SetProperty(ash::kAppIDKey, app_id);
 
     widget->Show();
     widget->Activate();
diff --git a/chrome/browser/ui/login/login_handler_browsertest.cc b/chrome/browser/ui/login/login_handler_browsertest.cc
index 8f6b083..5bf93641 100644
--- a/chrome/browser/ui/login/login_handler_browsertest.cc
+++ b/chrome/browser/ui/login/login_handler_browsertest.cc
@@ -1729,8 +1729,8 @@
   {
     WindowedAuthNeededObserver auth_needed_waiter(controller);
     ui_test_utils::NavigateToURL(browser(), auth_url);
-    ASSERT_EQ("127.0.0.1", contents->GetURL().host());
-    ASSERT_TRUE(contents->GetURL().SchemeIs("http"));
+    ASSERT_EQ("127.0.0.1", contents->GetLastCommittedURL().host());
+    ASSERT_TRUE(contents->GetLastCommittedURL().SchemeIs("http"));
     auth_needed_waiter.Wait();
     ASSERT_EQ(1u, observer.handlers().size());
     // Cancel the auth prompt, which triggers a reload.
@@ -1747,8 +1747,8 @@
   {
     ASSERT_EQ("127.0.0.1", broken_ssl_page.host());
     ui_test_utils::NavigateToURL(browser(), broken_ssl_page);
-    ASSERT_EQ("127.0.0.1", contents->GetURL().host());
-    ASSERT_TRUE(contents->GetURL().SchemeIs("https"));
+    ASSERT_EQ("127.0.0.1", contents->GetLastCommittedURL().host());
+    ASSERT_TRUE(contents->GetLastCommittedURL().SchemeIs("https"));
     ASSERT_TRUE(WaitForRenderFrameReady(contents->GetMainFrame()));
   }
 
@@ -1763,8 +1763,8 @@
   {
     WindowedAuthNeededObserver auth_needed_waiter(controller);
     ui_test_utils::NavigateToURL(browser(), auth_url);
-    ASSERT_EQ("127.0.0.1", contents->GetURL().host());
-    ASSERT_TRUE(contents->GetURL().SchemeIs("http"));
+    ASSERT_EQ("127.0.0.1", contents->GetLastCommittedURL().host());
+    ASSERT_TRUE(contents->GetLastCommittedURL().SchemeIs("http"));
 
     auth_needed_waiter.Wait();
     ASSERT_EQ(1u, observer.handlers().size());
diff --git a/chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.cc b/chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.cc
index e4a5642..c020239 100644
--- a/chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.cc
+++ b/chrome/browser/ui/sharing_hub/sharing_hub_bubble_controller.cc
@@ -116,6 +116,9 @@
   if (!web_contents_)
     return false;
 
+  if (GetProfile()->IsIncognitoProfile() || GetProfile()->IsGuestSession())
+    return false;
+
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   return base::FeatureList::IsEnabled(features::kSharesheet) &&
          base::FeatureList::IsEnabled(features::kChromeOSSharingHub);
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
index a9b64e23..dbb7e28 100644
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -50,6 +50,7 @@
 #include "chrome/browser/permissions/last_tab_standing_tracker_tab_helper.h"
 #include "chrome/browser/predictors/loading_predictor_factory.h"
 #include "chrome/browser/predictors/loading_predictor_tab_helper.h"
+#include "chrome/browser/prefetch/no_state_prefetch/no_state_prefetch_manager_factory.h"
 #include "chrome/browser/prefetch/no_state_prefetch/no_state_prefetch_tab_helper.h"
 #include "chrome/browser/prefetch/prefetch_proxy/prefetch_proxy_tab_helper.h"
 #include "chrome/browser/profiles/profile.h"
@@ -103,6 +104,7 @@
 #include "components/history/core/browser/top_sites.h"
 #include "components/infobars/content/content_infobar_manager.h"
 #include "components/javascript_dialogs/tab_modal_dialog_manager.h"
+#include "components/no_state_prefetch/browser/no_state_prefetch_manager.h"
 #include "components/offline_pages/buildflags/buildflags.h"
 #include "components/optimization_guide/content/browser/page_content_annotations_web_contents_observer.h"
 #include "components/optimization_guide/core/optimization_guide_features.h"
@@ -329,7 +331,9 @@
   SecurityStateTabHelper::CreateForWebContents(web_contents);
   if (site_engagement::SiteEngagementService::IsEnabled()) {
     site_engagement::SiteEngagementService::Helper::CreateForWebContents(
-        web_contents);
+        web_contents,
+        prerender::NoStatePrefetchManagerFactory::GetForBrowserContext(
+            profile));
   }
   SoundContentSettingObserver::CreateForWebContents(web_contents);
   subresource_redirect::SubresourceRedirectObserver::MaybeCreateForWebContents(
diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc
index 0507eac..2787e6b 100644
--- a/chrome/browser/ui/toolbar/app_menu_model.cc
+++ b/chrome/browser/ui/toolbar/app_menu_model.cc
@@ -238,8 +238,11 @@
 // - Developer tools.
 // - Option to enable profiling.
 void ToolsMenuModel::Build(Browser* browser) {
-  if (!base::FeatureList::IsEnabled(sharing_hub::kSharingHubDesktopAppMenu))
+  if (!base::FeatureList::IsEnabled(sharing_hub::kSharingHubDesktopAppMenu) ||
+      browser->profile()->IsIncognitoProfile() ||
+      browser->profile()->IsGuestSession()) {
     AddItemWithStringId(IDC_SAVE_PAGE, IDS_SAVE_PAGE);
+  }
 
   AddItemWithStringId(IDC_CREATE_SHORTCUT, IDS_ADD_TO_OS_LAUNCH_SURFACE);
   if (base::FeatureList::IsEnabled(features::kWindowNaming))
@@ -838,7 +841,9 @@
   CreateZoomMenu();
   AddSeparator(ui::UPPER_SEPARATOR);
 
-  if (sharing_hub::SharingHubAppMenuEnabled(browser()->profile())) {
+  if (!(browser_->profile()->IsIncognitoProfile() ||
+        browser_->profile()->IsGuestSession()) &&
+      sharing_hub::SharingHubAppMenuEnabled(browser()->profile())) {
     sub_menus_.push_back(
         std::make_unique<sharing_hub::SharingHubSubMenuModel>(browser_));
     AddSubMenuWithStringId(IDC_SHARING_HUB_MENU, IDS_SHARING_HUB_TITLE,
@@ -847,7 +852,9 @@
 
   AddItemWithStringId(IDC_PRINT, IDS_PRINT);
 
-  if (!base::FeatureList::IsEnabled(sharing_hub::kSharingHubDesktopAppMenu)) {
+  if (!base::FeatureList::IsEnabled(sharing_hub::kSharingHubDesktopAppMenu) ||
+      browser_->profile()->IsIncognitoProfile() ||
+      browser_->profile()->IsGuestSession()) {
     if (media_router::MediaRouterEnabled(browser()->profile()))
       AddItemWithStringId(IDC_ROUTE_MEDIA, IDS_MEDIA_ROUTER_MENU_ITEM_TITLE);
   }
diff --git a/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view.cc b/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view.cc
index 582ed5d5..78b25916a 100644
--- a/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view.cc
+++ b/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view.cc
@@ -11,6 +11,8 @@
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/chromeos_buildflags.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/extensions/extension_management.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser_dialogs.h"
@@ -18,7 +20,6 @@
 #include "chrome/browser/ui/browser_navigator_params.h"
 #include "chrome/browser/ui/views/chrome_layout_provider.h"
 #include "chrome/browser/ui/views/chrome_typography.h"
-#include "chrome/browser/web_applications/web_app_provider.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
 #include "chrome/grit/chromium_strings.h"
@@ -289,10 +290,13 @@
 void AppUninstallDialogView::InitializeViewForWebApp(
     Profile* profile,
     const std::string& app_id) {
-  auto* provider = web_app::WebAppProvider::Get(profile);
-  DCHECK(provider);
-
-  GURL app_start_url = provider->registrar().GetAppStartUrl(app_id);
+  // For web apps, publisher id is the start url.
+  GURL app_start_url;
+  apps::AppServiceProxyFactory::GetForProfile(profile)
+      ->AppRegistryCache()
+      .ForOneApp(app_id, [&app_start_url](const apps::AppUpdate& update) {
+        app_start_url = GURL(update.PublisherId());
+      });
   DCHECK(app_start_url.is_valid());
 
   InitializeCheckbox(app_start_url);
diff --git a/chrome/browser/ui/views/create_application_shortcut_view.cc b/chrome/browser/ui/views/create_application_shortcut_view.cc
index 569daa0..8c8c8ec6 100644
--- a/chrome/browser/ui/views/create_application_shortcut_view.cc
+++ b/chrome/browser/ui/views/create_application_shortcut_view.cc
@@ -74,7 +74,8 @@
     const std::string& web_app_id,
     base::OnceCallback<void(bool)> close_callback)
     : CreateChromeApplicationShortcutView(profile, std::move(close_callback)) {
-  web_app::WebAppProvider* provider = web_app::WebAppProvider::Get(profile);
+  web_app::WebAppProvider* provider =
+      web_app::WebAppProvider::GetForWebApps(profile);
   provider->os_integration_manager().GetShortcutInfoForApp(
       web_app_id,
       base::BindRepeating(&CreateChromeApplicationShortcutView::OnAppInfoLoaded,
diff --git a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
index d39b96a4c..280c21d 100644
--- a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
+++ b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
@@ -506,7 +506,7 @@
   DCHECK(render_frame_host->IsActive());
   std::unique_ptr<TestChromePaymentRequestDelegate> delegate =
       std::make_unique<TestChromePaymentRequestDelegate>(
-          render_frame_host, /*observer=*/this, &prefs_, is_incognito_,
+          render_frame_host, /*observer=*/GetWeakPtr(), &prefs_, is_incognito_,
           is_valid_ssl_, is_browser_window_active_, skip_ui_for_basic_card_);
   delegate_ = delegate.get();
   PaymentRequestWebContentsManager::GetOrCreateForWebContents(
diff --git a/chrome/browser/ui/views/payments/payment_request_dialog_view.cc b/chrome/browser/ui/views/payments/payment_request_dialog_view.cc
index 9076f37..8f67fb6 100644
--- a/chrome/browser/ui/views/payments/payment_request_dialog_view.cc
+++ b/chrome/browser/ui/views/payments/payment_request_dialog_view.cc
@@ -65,7 +65,7 @@
 // static
 base::WeakPtr<PaymentRequestDialogView> PaymentRequestDialogView::Create(
     base::WeakPtr<PaymentRequest> request,
-    PaymentRequestDialogView::ObserverForTest* observer) {
+    base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer) {
   return (new PaymentRequestDialogView(request, observer))
       ->weak_ptr_factory_.GetWeakPtr();
 }
@@ -463,7 +463,7 @@
 
 PaymentRequestDialogView::PaymentRequestDialogView(
     base::WeakPtr<PaymentRequest> request,
-    PaymentRequestDialogView::ObserverForTest* observer)
+    base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer)
     : request_(request), observer_for_testing_(observer) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   DCHECK(request);
diff --git a/chrome/browser/ui/views/payments/payment_request_dialog_view.h b/chrome/browser/ui/views/payments/payment_request_dialog_view.h
index 195941b..83990e7 100644
--- a/chrome/browser/ui/views/payments/payment_request_dialog_view.h
+++ b/chrome/browser/ui/views/payments/payment_request_dialog_view.h
@@ -100,7 +100,7 @@
   // outlive this object.
   static base::WeakPtr<PaymentRequestDialogView> Create(
       base::WeakPtr<PaymentRequest> request,
-      PaymentRequestDialogView::ObserverForTest* observer);
+      base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer);
 
   // views::View
   void RequestFocus() override;
@@ -199,8 +199,9 @@
   // The browsertest validates the calculated dialog size.
   friend class PaymentHandlerWindowSizeTest;
 
-  PaymentRequestDialogView(base::WeakPtr<PaymentRequest> request,
-                           PaymentRequestDialogView::ObserverForTest* observer);
+  PaymentRequestDialogView(
+      base::WeakPtr<PaymentRequest> request,
+      base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer);
   ~PaymentRequestDialogView() override;
 
   void OnDialogOpened();
@@ -224,8 +225,7 @@
   views::View* throbber_overlay_;
   views::Throbber* throbber_;
 
-  // May be null.
-  ObserverForTest* observer_for_testing_;
+  base::WeakPtr<ObserverForTest> observer_for_testing_;
 
   // Used when the dialog is being closed to avoid re-entrance into the
   // controller_map_ or view_stack_.
diff --git a/chrome/browser/ui/views/payments/secure_payment_confirmation_no_creds_dialog_view.cc b/chrome/browser/ui/views/payments/secure_payment_confirmation_no_creds_dialog_view.cc
index 99acf9b..02680b3 100644
--- a/chrome/browser/ui/views/payments/secure_payment_confirmation_no_creds_dialog_view.cc
+++ b/chrome/browser/ui/views/payments/secure_payment_confirmation_no_creds_dialog_view.cc
@@ -54,6 +54,9 @@
   SetAcceptCallback(base::BindOnce(
       &SecurePaymentConfirmationNoCredsDialogView::OnDialogClosed,
       weak_ptr_factory_.GetWeakPtr()));
+  SetCancelCallback(base::BindOnce(
+      &SecurePaymentConfirmationNoCredsDialogView::OnDialogClosed,
+      weak_ptr_factory_.GetWeakPtr()));
   SetCloseCallback(base::BindOnce(
       &SecurePaymentConfirmationNoCredsDialogView::OnDialogClosed,
       weak_ptr_factory_.GetWeakPtr()));
diff --git a/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.cc b/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.cc
index 25231d7..0f6c65ff 100644
--- a/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.cc
+++ b/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.cc
@@ -10,7 +10,7 @@
 
 TestChromePaymentRequestDelegate::TestChromePaymentRequestDelegate(
     content::RenderFrameHost* render_frame_host,
-    PaymentRequestDialogView::ObserverForTest* observer,
+    base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer,
     PrefService* pref_service,
     bool is_off_the_record,
     bool is_valid_ssl,
@@ -25,6 +25,8 @@
       is_browser_window_active_(is_browser_window_active),
       skip_ui_for_basic_card_(skip_ui_for_basic_card) {}
 
+TestChromePaymentRequestDelegate::~TestChromePaymentRequestDelegate() = default;
+
 void TestChromePaymentRequestDelegate::ShowDialog(
     base::WeakPtr<PaymentRequest> request) {
   shown_dialog_ = PaymentRequestDialogView::Create(request, observer_);
diff --git a/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h b/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h
index 240478d7..5032821 100644
--- a/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h
+++ b/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h
@@ -27,12 +27,13 @@
   // This delegate does not own things passed as pointers.
   TestChromePaymentRequestDelegate(
       content::RenderFrameHost* render_frame_host,
-      PaymentRequestDialogView::ObserverForTest* observer,
+      base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer,
       PrefService* pref_service,
       bool is_off_the_record,
       bool is_valid_ssl,
       bool is_browser_window_active,
       bool skip_ui_for_basic_card);
+  ~TestChromePaymentRequestDelegate() override;
 
   void SetRegionDataLoader(autofill::RegionDataLoader* region_data_loader) {
     region_data_loader_ = region_data_loader;
@@ -55,7 +56,7 @@
   // Not owned so must outlive the PaymentRequest object;
   autofill::RegionDataLoader* region_data_loader_;
 
-  PaymentRequestDialogView::ObserverForTest* observer_;
+  base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer_;
   PrefService* pref_service_;
   const bool is_off_the_record_;
   const bool is_valid_ssl_;
diff --git a/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.cc b/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.cc
index de70fef..8f1eea6 100644
--- a/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.cc
+++ b/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.cc
@@ -368,7 +368,9 @@
   DCHECK(AppBrowserController::IsWebApp(app_browser_));
 }
 
-void WebAppIntegrationBrowserTestBase::InstallLocally() {
+void WebAppIntegrationBrowserTestBase::InstallLocally(
+    const std::string& action_mode) {
+  MaybeNavigateTabbedBrowserInScope(action_mode);
   content::TestWebUI test_web_ui;
   content::WebContents* web_contents =
       browser()->tab_strip_model()->GetWebContentsAt(0);
@@ -535,8 +537,13 @@
 }
 
 // TODO(https://crbug.com/1159651): Support this action on CrOS.
-void WebAppIntegrationBrowserTestBase::UninstallFromMenu() {
-  DCHECK(app_browser_);
+void WebAppIntegrationBrowserTestBase::UninstallFromMenu(
+    const std::string& action_mode) {
+  absl::optional<AppState> app_state = GetAppByScope(
+      before_state_change_action_state_.get(), profile(), action_mode);
+  ASSERT_TRUE(app_state.has_value())
+      << "No app installed for scope: " << action_mode;
+  auto app_id = app_state->id;
   base::RunLoop run_loop;
   WebAppInstallObserver observer(profile());
   observer.SetWebAppUninstalledDelegate(
diff --git a/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.h b/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.h
index b6f1ecc..5bfada04 100644
--- a/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.h
+++ b/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.h
@@ -168,7 +168,7 @@
   void InstallCreateShortcutTabbed(const std::string& action_scope = "SiteA");
   void InstallCreateShortcutWindowed(const std::string& action_scope = "SiteA");
   void InstallMenuOption(const std::string& action_scope = "SiteA");
-  void InstallLocally();
+  void InstallLocally(const std::string& action_mode = "SiteA");
   void InstallOmniboxIcon(const std::string& action_scope = "SiteA");
   void InstallPolicyAppTabbedNoShortcut(
       const std::string& action_scope = "SiteA");
@@ -188,7 +188,7 @@
   void SwitchProfileClients();
   void SyncTurnOff();
   void SyncTurnOn();
-  void UninstallFromMenu();
+  void UninstallFromMenu(const std::string& action_mode = "SiteA");
   void UninstallPolicyApp(const std::string& action_scope = "SiteA");
 
   // State Check Actions
diff --git a/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_mac_win_linux.cc b/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_mac_win_linux.cc
index a30fb73..ad6b7e4 100644
--- a/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_mac_win_linux.cc
+++ b/chrome/browser/ui/views/web_apps/web_app_integration_browsertest_mac_win_linux.cc
@@ -2,45 +2,144 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "base/path_service.h"
+#include "chrome/browser/ui/views/web_apps/web_app_integration_browsertest_base.h"
+#include "chrome/browser/web_applications/os_integration_manager.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "content/public/test/browser_test.h"
+#include "services/network/public/cpp/network_switches.h"
+
 namespace web_app {
-namespace {
 
-// TODO(jarrydg@chromium.org): Remove the macro disabling the following tests
-// when there is a test runner defined above, the file has been added to a
-// build file, and they can compile.
-// https://crbug.com/1215791
+class WebAppIntegrationBrowserTestMacWinLinux
+    : public InProcessBrowserTest,
+      public WebAppIntegrationBrowserTestBase::TestDelegate,
+      public testing::WithParamInterface<std::string> {
+ public:
+  WebAppIntegrationBrowserTestMacWinLinux() : helper_(this) {}
 
-#if false
+  // InProcessBrowserTest
+  void SetUp() override {
+    helper_.SetUp(GetChromeTestDataDir());
+    InProcessBrowserTest::SetUp();
+  }
+
+  // BrowserTestBase
+  void SetUpOnMainThread() override { helper_.SetUpOnMainThread(); }
+  void TearDownOnMainThread() override { helper_.TearDownOnMainThread(); }
+
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    ASSERT_TRUE(embedded_test_server()->Start());
+    command_line->AppendSwitchASCII(
+        network::switches::kUnsafelyTreatInsecureOriginAsSecure,
+        helper_.GetInstallableAppURL("SiteA").GetOrigin().spec());
+    command_line->AppendSwitchASCII(
+        network::switches::kUnsafelyTreatInsecureOriginAsSecure,
+        helper_.GetInstallableAppURL("SiteB").GetOrigin().spec());
+    command_line->AppendSwitchASCII(
+        network::switches::kUnsafelyTreatInsecureOriginAsSecure,
+        helper_.GetInstallableAppURL("SiteC").GetOrigin().spec());
+    command_line->AppendSwitchASCII(
+        network::switches::kUnsafelyTreatInsecureOriginAsSecure,
+        helper_.GetInstallableAppURL("SiteAFoo").GetOrigin().spec());
+    command_line->AppendSwitchASCII(
+        network::switches::kUnsafelyTreatInsecureOriginAsSecure,
+        helper_.GetInstallableAppURL("SiteABar").GetOrigin().spec());
+  }
+
+  // WebAppIntegrationBrowserTestBase::TestDelegate
+  Browser* CreateBrowser(Profile* profile) override {
+    return InProcessBrowserTest::CreateBrowser(profile);
+  }
+
+  void AddBlankTabAndShow(Browser* browser) override {
+    InProcessBrowserTest::AddBlankTabAndShow(browser);
+  }
+
+  net::EmbeddedTestServer* EmbeddedTestServer() override {
+    return embedded_test_server();
+  }
+
+  std::vector<Profile*> GetAllProfiles() override {
+    return std::vector<Profile*>{browser()->profile()};
+  }
+
+  bool IsSyncTest() override { return false; }
+
+  void SyncTurnOff() override { NOTREACHED(); }
+  void SyncTurnOn() override { NOTREACHED(); }
+
+  WebAppIntegrationBrowserTestBase helper_;
+};
+
 IN_PROC_BROWSER_TEST_F(
-    WebAppIntegrationBrowserTest,
+    WebAppIntegrationBrowserTestMacWinLinux,
     WebAppIntegration_InstOmniboxSiteA_WindowCreated_UninstallFromMenuSiteA_NotInListSiteA_NavSiteA_InstIconShown_LaunchIconShown) {
   // Test contents are generated by script. Please do not modify!
   // See `chrome/test/webapps/README.md` for more info.
   // Sheriffs: Disabling this test is supported.
-  InstallOmniboxIcon("SiteA");
-  CheckWindowCreated();
-  UninstallFromMenu("SiteA");
-  CheckAppNotInList("SiteA");
-  NavigateBrowser("SiteA");
-  CheckInstallIconShown();
-  CheckLaunchIconNotShown();
+  helper_.BeforeStateChangeAction();
+  helper_.InstallOmniboxIcon("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckWindowCreated();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.UninstallFromMenu("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppNotInList("SiteA");
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.NavigateBrowser("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckInstallIconShown();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckLaunchIconNotShown();
+  helper_.AfterStateCheckAction();
 }
 
 IN_PROC_BROWSER_TEST_F(
-    WebAppIntegrationBrowserTest,
+    WebAppIntegrationBrowserTestMacWinLinux,
     WebAppIntegration_InstMenuOptionSiteA_WindowCreated_UninstallFromMenuSiteA_NotInListSiteA_NavSiteA_InstIconShown_LaunchIconShown) {
   // Test contents are generated by script. Please do not modify!
   // See `chrome/test/webapps/README.md` for more info.
   // Sheriffs: Disabling this test is supported.
-  InstallMenuOption("SiteA");
-  CheckWindowCreated();
-  UninstallFromMenu("SiteA");
-  CheckAppNotInList("SiteA");
-  NavigateBrowser("SiteA");
-  CheckInstallIconShown();
-  CheckLaunchIconNotShown();
-}
-#endif
+  helper_.BeforeStateChangeAction();
+  helper_.InstallMenuOption("SiteA");
+  helper_.AfterStateChangeAction();
 
-}  // namespace
+  helper_.BeforeStateCheckAction();
+  helper_.CheckWindowCreated();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.UninstallFromMenu("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckAppNotInList("SiteA");
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateChangeAction();
+  helper_.NavigateBrowser("SiteA");
+  helper_.AfterStateChangeAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckInstallIconShown();
+  helper_.AfterStateCheckAction();
+
+  helper_.BeforeStateCheckAction();
+  helper_.CheckLaunchIconNotShown();
+  helper_.AfterStateCheckAction();
+}
+
 }  // namespace web_app
diff --git a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
index a042957..70966df 100644
--- a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.cc
@@ -149,32 +149,41 @@
 }
 
 void AccessibilityHandler::MaybeAddSodaInstallerObserver() {
-  // TODO(crbug.com/1173135): Don't display SODA status if the Dictation
-  // language is not a downloaded or available SODA language.
-  if (features::IsDictationOfflineAvailableAndEnabled()) {
-    const std::string dictation_locale =
-        profile_->GetPrefs()->GetString(prefs::kAccessibilityDictationLocale);
-    if (speech::SodaInstaller::GetInstance()->IsSodaInstalled(
-            speech::GetLanguageCode(dictation_locale))) {
-      OnSodaInstalled();
-    } else {
-      // Add self as an observer. If this was a page refresh we don't want to
-      // get added twice.
-      soda_observation_.Observe(speech::SodaInstaller::GetInstance());
-    }
+  if (!features::IsDictationOfflineAvailableAndEnabled())
+    return;
+
+  speech::SodaInstaller* soda_installer = speech::SodaInstaller::GetInstance();
+  if (soda_installer->IsSodaInstalled(GetDictationLocale())) {
+    OnSodaInstalled();
+  } else {
+    // Add self as an observer. If this was a page refresh we don't want to
+    // get added twice.
+    soda_observation_.Observe(soda_installer);
   }
 }
 
-// SodaInstaller::Observer:
-void AccessibilityHandler::OnSodaInstalled() {
-  speech::SodaInstaller::GetInstance()->RemoveObserver(this);
+void AccessibilityHandler::OnSodaInstallSucceeded() {
+  if (!speech::SodaInstaller::GetInstance()->IsSodaInstalled(
+          GetDictationLocale())) {
+    return;
+  }
+
+  // Only show the success message if both the SODA binary and the language pack
+  // matching the Dictation locale have been downloaded.
   FireWebUIListener(
       "dictation-setting-subtitle-changed",
       base::Value(l10n_util::GetStringUTF16(
           IDS_SETTINGS_ACCESSIBILITY_DICTATION_SUBTITLE_SODA_DOWNLOAD_COMPLETE)));
 }
 
-void AccessibilityHandler::OnSodaProgress(int progress) {
+void AccessibilityHandler::OnSodaInstallProgress(
+    int progress,
+    speech::LanguageCode language_code) {
+  if (language_code != GetDictationLocale())
+    return;
+
+  // Only show the progress message if this applies to the language pack
+  // matching the Dictation locale.
   FireWebUIListener(
       "dictation-setting-subtitle-changed",
       base::Value(l10n_util::GetStringFUTF16Int(
@@ -182,11 +191,42 @@
           progress)));
 }
 
+void AccessibilityHandler::OnSodaInstallFailed(
+    speech::LanguageCode language_code) {
+  if (language_code == speech::LanguageCode::kNone ||
+      language_code == GetDictationLocale()) {
+    // Show the failed message if either the Dictation locale failed or the SODA
+    // binary failed (encoded by LanguageCode::kNone).
+    FireWebUIListener(
+        "dictation-setting-subtitle-changed",
+        base::Value(l10n_util::GetStringUTF16(
+            IDS_SETTINGS_ACCESSIBILITY_DICTATION_SUBTITLE_SODA_DOWNLOAD_ERROR)));
+  }
+}
+
+// SodaInstaller::Observer:
+void AccessibilityHandler::OnSodaInstalled() {
+  OnSodaInstallSucceeded();
+}
+
+void AccessibilityHandler::OnSodaLanguagePackInstalled(
+    speech::LanguageCode language_code) {
+  OnSodaInstallSucceeded();
+}
+
+void AccessibilityHandler::OnSodaLanguagePackProgress(
+    int language_progress,
+    speech::LanguageCode language_code) {
+  OnSodaInstallProgress(language_progress, language_code);
+}
+
 void AccessibilityHandler::OnSodaError() {
-  FireWebUIListener(
-      "dictation-setting-subtitle-changed",
-      base::Value(l10n_util::GetStringUTF16(
-          IDS_SETTINGS_ACCESSIBILITY_DICTATION_SUBTITLE_SODA_DOWNLOAD_ERROR)));
+  OnSodaInstallFailed(speech::LanguageCode::kNone);
+}
+
+void AccessibilityHandler::OnSodaLanguagePackError(
+    speech::LanguageCode language_code) {
+  OnSodaInstallFailed(language_code);
 }
 
 void AccessibilityHandler::MaybeAddDictationLocales() {
@@ -249,5 +289,12 @@
   FireWebUIListener("dictation-locales-set", locales_list);
 }
 
+// Returns the Dictation locale as a language code.
+speech::LanguageCode AccessibilityHandler::GetDictationLocale() {
+  const std::string dictation_locale =
+      profile_->GetPrefs()->GetString(prefs::kAccessibilityDictationLocale);
+  return speech::GetLanguageCode(dictation_locale);
+}
+
 }  // namespace settings
 }  // namespace chromeos
diff --git a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h
index 48ab03d..ef6bc3e 100644
--- a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h
+++ b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h
@@ -49,19 +49,21 @@
   void OpenExtensionOptionsPage(const char extension_id[]);
 
   void MaybeAddSodaInstallerObserver();
+  void OnSodaInstallSucceeded();
+  void OnSodaInstallProgress(int progress, speech::LanguageCode language_code);
+  void OnSodaInstallFailed(speech::LanguageCode language_code);
 
   // SodaInstaller::Observer:
   void OnSodaInstalled() override;
-  void OnSodaLanguagePackInstalled(
-      speech::LanguageCode language_code) override {}
-  void OnSodaProgress(int progress) override;
+  void OnSodaLanguagePackInstalled(speech::LanguageCode language_code) override;
+  void OnSodaProgress(int progress) override {}
   void OnSodaLanguagePackProgress(int language_progress,
-                                  speech::LanguageCode language_code) override {
-  }
+                                  speech::LanguageCode language_code) override;
   void OnSodaError() override;
-  void OnSodaLanguagePackError(speech::LanguageCode language_code) override {}
+  void OnSodaLanguagePackError(speech::LanguageCode language_code) override;
 
   void MaybeAddDictationLocales();
+  speech::LanguageCode GetDictationLocale();
 
   Profile* profile_;  // Weak pointer.
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler_browsertest.cc b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler_browsertest.cc
index 5752b56..ee8878a 100644
--- a/chrome/browser/ui/webui/settings/chromeos/accessibility_handler_browsertest.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/accessibility_handler_browsertest.cc
@@ -8,6 +8,7 @@
 #include <set>
 
 #include "ash/constants/ash_features.h"
+#include "ash/constants/ash_pref_names.h"
 #include "chrome/browser/ash/input_method/mock_input_method_engine.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -60,6 +61,9 @@
     handler_->RegisterMessages();
     handler_->AllowJavascriptForTesting();
     base::RunLoop().RunUntilIdle();
+
+    // Set the Dictation locale for tests.
+    SetDictationLocale("en-US");
   }
 
   void TearDownOnMainThread() override {
@@ -115,14 +119,20 @@
     return false;
   }
 
-  void OnSodaInstalled() { handler_->OnSodaInstalled(); }
-
-  void OnSodaProgress(int progress) { handler_->OnSodaProgress(progress); }
-
-  void OnSodaError() { handler_->OnSodaError(); }
-
   void MaybeAddDictationLocales() { handler_->MaybeAddDictationLocales(); }
 
+  void SetDictationLocale(const std::string& locale) {
+    ProfileManager::GetActiveUserProfile()->GetPrefs()->SetString(
+        prefs::kAccessibilityDictationLocale, locale);
+  }
+
+  speech::SodaInstaller* soda_installer() {
+    return speech::SodaInstaller::GetInstance();
+  }
+
+  speech::LanguageCode en_us() { return speech::LanguageCode::kEnUs; }
+  speech::LanguageCode fr_fr() { return speech::LanguageCode::kFrFr; }
+
   std::unique_ptr<input_method::MockInputMethodEngine> mock_ime_engine_handler_;
 
  private:
@@ -132,32 +142,46 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
-// A sanity check that ensures that |handler_| can be used to call into
-// AccessibilityHandler and produce the expected results.
-// This also verifies that the correct string is sent to the JavaScript end
-// of the web UI.
-IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaInstalledTestApi) {
+// Ensures that AccessibilityHandler listens to SODA download state changes, and
+// fires the correct listener when SODA AND the language pack matching the
+// Dictation locale are installed.
+IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaInstalledNotification) {
+  SetDictationLocale("fr-FR");
   size_t num_calls = GetNumWebUICalls();
-  OnSodaInstalled();
+  // Pretend that the SODA binary was installed. We still need to wait for the
+  // correct language pack before doing anything.
+  soda_installer()->NotifySodaInstalledForTesting();
+  AssertWebUICalls(num_calls);
+  soda_installer()->NotifyOnSodaLanguagePackInstalledForTesting(en_us());
+  AssertWebUICalls(num_calls);
+  soda_installer()->NotifyOnSodaLanguagePackInstalledForTesting(fr_fr());
   AssertWebUICalls(num_calls + 1);
   ASSERT_TRUE(WasWebUIListenerCalledWithStringArgument(
       "dictation-setting-subtitle-changed", "Speech files downloaded"));
 }
 
 // Verifies that the correct string is sent to the JavaScript end of the web UI.
-IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaProgressTestApi) {
+// Ensures we only notify the user of progress for the language pack matching
+// the Dictation locale.
+IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaProgressNotification) {
   size_t num_calls = GetNumWebUICalls();
-  OnSodaProgress(50);
+  // Do not give updates for the SODA binary.
+  soda_installer()->NotifySodaDownloadProgressForTesting(50);
+  AssertWebUICalls(num_calls);
+  soda_installer()->NotifyOnSodaLanguagePackProgressForTesting(50, fr_fr());
+  AssertWebUICalls(num_calls);
+  soda_installer()->NotifyOnSodaLanguagePackProgressForTesting(50, en_us());
   AssertWebUICalls(num_calls + 1);
   ASSERT_TRUE(WasWebUIListenerCalledWithStringArgument(
       "dictation-setting-subtitle-changed",
       "Downloading speech recognition files… 50%"));
 }
 
-// Verifies that the correct string is sent to the JavaScript end of the web UI.
-IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaErrorTestApi) {
+// Verifies that the correct string is sent to the JavaScript end of the web UI
+// when the SODA binary fails to download.
+IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaErrorNotification) {
   size_t num_calls = GetNumWebUICalls();
-  OnSodaError();
+  soda_installer()->NotifySodaErrorForTesting();
   AssertWebUICalls(num_calls + 1);
   ASSERT_TRUE(WasWebUIListenerCalledWithStringArgument(
       "dictation-setting-subtitle-changed",
@@ -165,14 +189,23 @@
       "your voice to Google."));
 }
 
-// Ensures that AccessibilityHandler listens to SODA download state and fires
-// the correct listener when SODA is installed.
-IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, OnSodaInstalledNotification) {
+// Verifies that the correct listener is fired when the language pack matching
+// the Dictation locale fails to download.
+IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest,
+                       OnSodaLanguageErrorNotification) {
   size_t num_calls = GetNumWebUICalls();
-  speech::SodaInstaller::GetInstance()->NotifySodaInstalledForTesting();
+  // Do nothing if the failed language pack is different than the Dictation
+  // locale.
+  soda_installer()->NotifyOnSodaLanguagePackErrorForTesting(fr_fr());
+  AssertWebUICalls(num_calls);
+  // Fire the correct listener when the language pack matching the Dictation
+  // locale fails.
+  soda_installer()->NotifyOnSodaLanguagePackErrorForTesting(en_us());
   AssertWebUICalls(num_calls + 1);
   ASSERT_TRUE(WasWebUIListenerCalledWithStringArgument(
-      "dictation-setting-subtitle-changed", "Speech files downloaded"));
+      "dictation-setting-subtitle-changed",
+      "Can't download speech files. Dictation will continue to work by sending "
+      "your voice to Google."));
 }
 
 IN_PROC_BROWSER_TEST_F(AccessibilityHandlerTest, DictationLocalesCalculation) {
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
index c773004a..d05f79a 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -1654,6 +1654,12 @@
        IDS_SETTINGS_PRIVACY_REVIEW_MSBB_PRIVACY_DESCRIPTION1},
       {"privacyReviewMsbbPrivacyDescription2",
        IDS_SETTINGS_PRIVACY_REVIEW_MSBB_PRIVACY_DESCRIPTION2},
+      {"privacyReviewClearOnExitCardHeader",
+       IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_CARD_HEADER},
+      {"privacyReviewClearOnExitFeatureDescription1",
+       IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION1},
+      {"privacyReviewClearOnExitFeatureDescription2",
+       IDS_SETTINGS_PRIVACY_REVIEW_CLEAR_ON_EXIT_FEATURE_DESCRIPTION2},
   };
   html_source->AddLocalizedStrings(kLocalizedStrings);
 }
diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.cc b/chrome/browser/ui/webui/signin/profile_picker_handler.cc
index 1d1e209..a69e142 100644
--- a/chrome/browser/ui/webui/signin/profile_picker_handler.cc
+++ b/chrome/browser/ui/webui/signin/profile_picker_handler.cc
@@ -293,6 +293,12 @@
       base::BindRepeating(
           &ProfilePickerHandler::HandleRecordSignInPromoImpression,
           base::Unretained(this)));
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+  web_ui()->RegisterMessageCallback(
+      "getUnassignedAccounts",
+      base::BindRepeating(&ProfilePickerHandler::HandleGetUnassignedAccounts,
+                          base::Unretained(this)));
+#endif
   Profile* profile = Profile::FromWebUI(web_ui());
   content::URLDataSource::Add(profile, std::make_unique<ThemeSource>(profile));
 }
@@ -921,3 +927,16 @@
   if (visibility != content::Visibility::VISIBLE)
     Observe(nullptr);
 }
+
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+
+void ProfilePickerHandler::HandleGetUnassignedAccounts(
+    const base::ListValue* args) {
+  AllowJavascript();
+  base::Value accounts_list(base::Value::Type::LIST);
+  // TODO(https://crbug/1226050): Add actual account info to the list, and
+  // listen for account changes.
+  FireWebUIListener("unassigned-accounts-changed", accounts_list);
+}
+
+#endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chrome/browser/ui/webui/signin/profile_picker_handler.h b/chrome/browser/ui/webui/signin/profile_picker_handler.h
index d6b56379..8fe9e4f 100644
--- a/chrome/browser/ui/webui/signin/profile_picker_handler.h
+++ b/chrome/browser/ui/webui/signin/profile_picker_handler.h
@@ -11,6 +11,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
 #include "base/values.h"
+#include "build/chromeos_buildflags.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_statistics_common.h"
@@ -114,6 +115,12 @@
   // the picker when it was first shown.
   void SetProfilesOrder(const std::vector<ProfileAttributesEntry*>& entries);
 
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+  // List of usnassigned accounts used by the profile choice and the account
+  // selection screens.
+  void HandleGetUnassignedAccounts(const base::ListValue* args);
+#endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+
   // Returns the list of profiles in the same order as when the picker
   // was first shown.
   std::vector<ProfileAttributesEntry*> GetProfileAttributes();
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index 1b2e4aa..ef0b3ce 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -116,6 +116,9 @@
 const base::Feature kClientStorageAccessContextAuditing{
     "ClientStorageAccessContextAuditing", base::FEATURE_DISABLED_BY_DEFAULT};
 
+const base::Feature kConsolidatedSiteStorageControls{
+    "ConsolidatedSiteStorageControls", base::FEATURE_DISABLED_BY_DEFAULT};
+
 const base::Feature kContentSettingsRedesign{"ContentSettingsRedesign",
                                              base::FEATURE_ENABLED_BY_DEFAULT};
 
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index 8471913..24b7c1a 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -93,6 +93,9 @@
 extern const base::Feature kClientStorageAccessContextAuditing;
 
 COMPONENT_EXPORT(CHROME_FEATURES)
+extern const base::Feature kConsolidatedSiteStorageControls;
+
+COMPONENT_EXPORT(CHROME_FEATURES)
 extern const base::Feature kContentSettingsRedesign;
 
 #if defined(OS_ANDROID)
diff --git a/chrome/installer/setup/setup_constants.cc b/chrome/installer/setup/setup_constants.cc
index 3f0f434..c7a8669 100644
--- a/chrome/installer/setup/setup_constants.cc
+++ b/chrome/installer/setup/setup_constants.cc
@@ -27,11 +27,6 @@
 
 namespace switches {
 
-// Setting this will delay the operation of setup by the specified number of
-// seconds.  This is used when changing the DisplayVersion registry value
-// only after some time has passed, called by the MSI installer.
-const char kDelay[] = "delay";
-
 // Set the MSI-managed DisplayVersion in the registry to match Chrome's real
 // version number. The parameter to this option specifies the product-id in
 // the registry under HKLM.
diff --git a/chrome/installer/setup/setup_constants.h b/chrome/installer/setup/setup_constants.h
index 45c86843..127ca926 100644
--- a/chrome/installer/setup/setup_constants.h
+++ b/chrome/installer/setup/setup_constants.h
@@ -37,7 +37,6 @@
 
 namespace switches {
 
-extern const char kDelay[];
 extern const char kSetDisplayVersionProduct[];
 extern const char kSetDisplayVersionValue[];
 extern const char kUserExperiment[];
diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc
index 7fb6bcd..64901ad 100644
--- a/chrome/installer/setup/setup_main.cc
+++ b/chrome/installer/setup/setup_main.cc
@@ -34,7 +34,6 @@
 #include "base/process/memory.h"
 #include "base/process/process.h"
 #include "base/process/process_metrics.h"
-#include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
@@ -107,7 +106,6 @@
 
 const wchar_t kSystemPrincipalSid[] = L"S-1-5-18";
 const wchar_t kDisplayVersion[] = L"DisplayVersion";
-const wchar_t kMsiDisplayVersionOverwriteDelay[] = L"10";  // seconds as string
 const wchar_t kMsiProductIdPrefix[] = L"EnterpriseProduct";
 
 // Overwrite an existing DisplayVersion as written by the MSI installer
@@ -176,8 +174,6 @@
                                  id);
   command_line.AppendSwitchASCII(installer::switches::kSetDisplayVersionValue,
                                  version.GetString());
-  command_line.AppendSwitchNative(installer::switches::kDelay,
-                                  kMsiDisplayVersionOverwriteDelay);
 
   base::LaunchOptions launch_options;
   launch_options.force_breakaway_from_job_ = true;
@@ -189,6 +185,48 @@
   }
 }
 
+// Waits up to a minute for msiexec to release its mutex and then overwrites
+// DisplayVersion in the Windows registry.
+LONG OverwriteDisplayVersionsAfterMsiexec(const std::wstring& product,
+                                          const std::wstring& value) {
+  bool adjusted_priority = false;
+  bool acquired_mutex = false;
+  base::win::ScopedHandle msi_handle(::OpenMutexW(
+      SYNCHRONIZE, /*bInheritHandle=*/FALSE, L"Global\\_MSIExecute"));
+  if (msi_handle.IsValid()) {
+    VLOG(1) << "Blocking to acquire MSI mutex.";
+
+    // Raise the priority class for the process so that it can do its work as
+    // soon as possible after acquiring the mutex.
+    adjusted_priority =
+        ::SetPriorityClass(::GetCurrentProcess(), REALTIME_PRIORITY_CLASS) != 0;
+
+    auto wait_result = ::WaitForSingleObject(msi_handle.Get(), 60 * 1000);
+    if (wait_result == WAIT_FAILED) {
+      PLOG(ERROR) << "Failed to wait for MSI mutex";
+    } else if (wait_result == WAIT_ABANDONED || wait_result == WAIT_OBJECT_0) {
+      VLOG(1) << "Acquired MSI mutex; overwriting DisplayVersion.";
+      acquired_mutex = true;
+    } else {
+      DCHECK_EQ(wait_result, static_cast<DWORD>(WAIT_TIMEOUT));
+      LOG(ERROR) << "Timed out waiting for MSI mutex.";
+    }
+  } else {
+    VPLOG(1) << "Overwriting DisplayVersion immediately after failing to "
+                "open the MSI mutex";
+  }
+
+  auto result = OverwriteDisplayVersions(product, value);
+
+  if (adjusted_priority)
+    ::SetPriorityClass(::GetCurrentProcess(), NORMAL_PRIORITY_CLASS);
+
+  if (acquired_mutex)
+    ::ReleaseMutex(msi_handle.Get());
+
+  return result;
+}
+
 // Returns nullptr if no compressed archive is available for processing,
 // otherwise returns a patch helper configured to uncompress and patch.
 std::unique_ptr<installer::ArchivePatchHelper> CreateChromeArchiveHelper(
@@ -793,18 +831,6 @@
       &(modify_params.installation_state);
   const base::FilePath& setup_exe = modify_params.setup_path;
 
-  // This option is independent of all others so doesn't belong in the if/else
-  // block below.
-  if (cmd_line.HasSwitch(installer::switches::kDelay)) {
-    const std::string delay_seconds_string(
-        cmd_line.GetSwitchValueASCII(installer::switches::kDelay));
-    int delay_seconds;
-    if (base::StringToInt(delay_seconds_string, &delay_seconds) &&
-        delay_seconds > 0) {
-      base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(delay_seconds));
-    }
-  }
-
   // TODO(gab): Add a local |status| variable which each block below sets;
   // only determine the |exit_code| from |status| at the end (this will allow
   // this method to validate that
@@ -1030,7 +1056,8 @@
         installer::switches::kSetDisplayVersionProduct));
     const std::wstring registry_value(cmd_line.GetSwitchValueNative(
         installer::switches::kSetDisplayVersionValue));
-    *exit_code = OverwriteDisplayVersions(registry_product, registry_value);
+    *exit_code =
+        OverwriteDisplayVersionsAfterMsiexec(registry_product, registry_value);
 #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
   } else if (cmd_line.HasSwitch(installer::switches::kStoreDMToken)) {
     // Write the specified token to the registry, overwriting any already
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index ce9ad40..5774aee 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -3864,6 +3864,7 @@
     if (is_win || is_mac || (is_linux && !is_chromeos_lacros)) {
       sources += [
         "../browser/ui/views/profiles/profile_picker_view_browsertest.cc",
+        "../browser/ui/views/web_apps/web_app_integration_browsertest_mac_win_linux.cc",
         "../browser/ui/views/web_apps/web_app_url_handler_intent_picker_dialog_browsertest.cc",
       ]
     }
@@ -6226,7 +6227,6 @@
       "../browser/ui/app_list/arc/mock_arc_app_list_prefs_observer.h",
       "../browser/ui/app_list/md_icon_normalizer_unittest.cc",
       "../browser/ui/app_list/search/app_search_provider_unittest.cc",
-      "../browser/ui/app_list/search/arc/arc_app_data_search_provider_unittest.cc",
       "../browser/ui/app_list/search/arc/arc_app_reinstall_search_provider_unittest.cc",
       "../browser/ui/app_list/search/arc/arc_app_shortcuts_search_provider_unittest.cc",
       "../browser/ui/app_list/search/arc/arc_playstore_search_provider_unittest.cc",
@@ -8752,6 +8752,10 @@
       deps += [ "//chromeos" ]
     }
 
+    if (is_win || is_mac || (is_linux && !is_chromeos_lacros)) {
+      sources += [ "../browser/sync/test/integration/two_client_web_apps_integration_sync_test_mac_win_linux.cc" ]
+    }
+
     if (toolkit_views) {
       deps += [ "//ui/views" ]
     }
diff --git a/chrome/test/data/nacl/nacl_load_test.html b/chrome/test/data/nacl/nacl_load_test.html
index 2737cf31..b4aa1eda 100644
--- a/chrome/test/data/nacl/nacl_load_test.html
+++ b/chrome/test/data/nacl/nacl_load_test.html
@@ -16,6 +16,11 @@
 <script>
 
 function create(manifest_url) {
+  // Make sure NaCl mimetypes are being returned.
+  if (navigator.mimeTypes['application/x-nacl'] === undefined ||
+    navigator.mimeTypes['application/x-pnacl'] === undefined) {
+    return;
+  }
   var embed = document.createElement("embed");
   embed.src = manifest_url;
   embed.type = "application/x-nacl";
diff --git a/chrome/test/data/webrtc/webrtc_getdisplaymedia_test.html b/chrome/test/data/webrtc/webrtc_getdisplaymedia_test.html
index 3eb19f1..66787c32 100644
--- a/chrome/test/data/webrtc/webrtc_getdisplaymedia_test.html
+++ b/chrome/test/data/webrtc/webrtc_getdisplaymedia_test.html
@@ -79,6 +79,15 @@
     }
   }
 
+  function waitVideoEnded() {
+    if (video_track.readyState == "ended") {
+      returnToTest("ended");
+    }
+    video_track.onended = function(evt) {
+      returnToTest("ended");
+    }
+  }
+
   // function readLastResultFromEmbedded() {
   //   // Blocks until the result is reported by the embedded page.
   // }
@@ -100,4 +109,3 @@
     <iframe id="disallowedFrame" src="webrtc_getdisplaymedia_embedded_document.html" allow="display-capture 'none'"></iframe>
 </body>
 </html>
-
diff --git a/chrome/test/data/webui/settings/BUILD.gn b/chrome/test/data/webui/settings/BUILD.gn
index 13c3042b..a599f4c 100644
--- a/chrome/test/data/webui/settings/BUILD.gn
+++ b/chrome/test/data/webui/settings/BUILD.gn
@@ -99,7 +99,7 @@
     #":reset_page_test",
     #":reset_profile_banner_test",
     #":route_tests",
-    ":safety_check_page_test",
+    #":safety_check_page_test",
 
     #":search_engines_page_test",
     #":search_page_test",
@@ -332,21 +332,6 @@
   externs_list = [ "$externs_path/mocha-2.5.js" ]
 }
 
-js_library("safety_check_page_test") {
-  deps = [
-    ":test_hats_browser_proxy",
-    ":test_lifetime_browser_proxy",
-    ":test_metrics_browser_proxy",
-    ":test_open_window_proxy",
-    ":test_password_manager_proxy",
-    "..:chai_assert",
-    "..:test_browser_proxy",
-    "//chrome/browser/resources/settings:settings",
-    "//ui/webui/resources/js:load_time_data.m",
-  ]
-  externs_list = [ "$externs_path/mocha-2.5.js" ]
-}
-
 js_library("test_metrics_browser_proxy") {
   deps = [
     "..:test_browser_proxy",
diff --git a/chrome/test/data/webui/settings/chromeos/app_management/borealis_detail_view_test.js b/chrome/test/data/webui/settings/chromeos/app_management/borealis_detail_view_test.js
index b4dd9e05..e9e0eeb 100644
--- a/chrome/test/data/webui/settings/chromeos/app_management/borealis_detail_view_test.js
+++ b/chrome/test/data/webui/settings/chromeos/app_management/borealis_detail_view_test.js
@@ -8,7 +8,7 @@
 // #import {BorealisPermissionType, createPermission, PermissionValueType, Bool, AppManagementStore, updateSelectedAppId, getPermissionValueBool, convertOptionalBoolToBool} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {setupFakeHandler, replaceStore, replaceBody, getPermissionCrToggleByType, getPermissionToggleByType} from './test_util.m.js';
 // #import {eventToPromise, flushTasks} from 'chrome://test/test_util.m.js';
-// #import {Router, routes, Route, pageVisibility} from 'chrome://os-settings/chromeos/os_settings.js';
+// #import {Router, routes, Route} from 'chrome://os-settings/chromeos/os_settings.js';
 // clang-format on
 
 'use strict';
diff --git a/chrome/test/data/webui/settings/chromeos/os_people_page_test.js b/chrome/test/data/webui/settings/chromeos/os_people_page_test.js
index 0e6e385a..693fcb5 100644
--- a/chrome/test/data/webui/settings/chromeos/os_people_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/os_people_page_test.js
@@ -6,7 +6,7 @@
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
 // #import {TestBrowserProxy} from '../../test_browser_proxy.js';
-// #import {Router, PageStatus, pageVisibility, routes, AccountManagerBrowserProxyImpl, SyncBrowserProxyImpl, ProfileInfoBrowserProxyImpl, ProfileInfoBrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js';
+// #import {Router, PageStatus, osPageVisibility, routes, AccountManagerBrowserProxyImpl, SyncBrowserProxyImpl, ProfileInfoBrowserProxyImpl, ProfileInfoBrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {assert} from 'chrome://resources/js/assert.m.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -127,7 +127,7 @@
         isAccountManagerEnabled: false,
       });
       peoplePage = document.createElement('os-settings-people-page');
-      peoplePage.pageVisibility = settings.pageVisibility;
+      peoplePage.pageVisibility = settings.osPageVisibility;
       document.body.appendChild(peoplePage);
 
       await browserProxy.whenCalled('getProfileInfo');
@@ -298,7 +298,7 @@
         osProfileName: fakeOsProfileName,
       });
       peoplePage = document.createElement('os-settings-people-page');
-      peoplePage.pageVisibility = settings.pageVisibility;
+      peoplePage.pageVisibility = settings.osPageVisibility;
       document.body.appendChild(peoplePage);
 
       await accountManagerBrowserProxy.whenCalled('getAccounts');
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_main_test.js b/chrome/test/data/webui/settings/chromeos/os_settings_main_test.js
index 46873f6..0cedaa8 100644
--- a/chrome/test/data/webui/settings/chromeos/os_settings_main_test.js
+++ b/chrome/test/data/webui/settings/chromeos/os_settings_main_test.js
@@ -5,7 +5,7 @@
 // clang-format off
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
-// #import {CrSettingsPrefs, pageVisibility, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js';
+// #import {CrSettingsPrefs, osPageVisibility, Router, routes} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {assert} from 'chrome://resources/js/assert.m.js';
@@ -30,7 +30,7 @@
       settingsMain = document.createElement('os-settings-main');
       settingsMain.prefs = settingsPrefs.prefs;
       settingsMain.toolbarSpinnerActive = false;
-      settingsMain.pageVisibility = settings.pageVisibility;
+      settingsMain.pageVisibility = settings.osPageVisibility;
       document.body.appendChild(settingsMain);
     });
 
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_menu_test.js b/chrome/test/data/webui/settings/chromeos/os_settings_menu_test.js
index 02e9519..31f19e54 100644
--- a/chrome/test/data/webui/settings/chromeos/os_settings_menu_test.js
+++ b/chrome/test/data/webui/settings/chromeos/os_settings_menu_test.js
@@ -5,7 +5,7 @@
 // clang-format off
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
-// #import {Router, routes, Route, pageVisibility} from 'chrome://os-settings/chromeos/os_settings.js';
+// #import {Router, routes, Route, osPageVisibility} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // clang-format on
 
@@ -35,7 +35,7 @@
     setupRouter();
     PolymerTest.clearBody();
     settingsMenu = document.createElement('os-settings-menu');
-    settingsMenu.pageVisibility = settings.pageVisibility;
+    settingsMenu.pageVisibility = settings.osPageVisibility;
     document.body.appendChild(settingsMenu);
   });
 
diff --git a/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js b/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js
index d696a20..fb09842 100644
--- a/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.js
@@ -6,7 +6,7 @@
 // #import 'chrome://os-settings/chromeos/os_settings.js';
 
 // #import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
-// #import {pageVisibility, ParentalControlsBrowserProxyImpl, ParentalControlsBrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js';
+// #import {osPageVisibility, ParentalControlsBrowserProxyImpl, ParentalControlsBrowserProxy} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 // #import {assert} from 'chrome://resources/js/assert.m.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -54,7 +54,7 @@
     PolymerTest.clearBody();
     parentalControlsPage =
         document.createElement('settings-parental-controls-page');
-    parentalControlsPage.pageVisibility = settings.pageVisibility;
+    parentalControlsPage.pageVisibility = settings.osPageVisibility;
     document.body.appendChild(parentalControlsPage);
     Polymer.dom.flush();
   });
@@ -132,7 +132,7 @@
     PolymerTest.clearBody();
     parentalControlsPage =
         document.createElement('settings-parental-controls-page');
-    parentalControlsPage.pageVisibility = settings.pageVisibility;
+    parentalControlsPage.pageVisibility = settings.osPageVisibility;
     document.body.appendChild(parentalControlsPage);
     Polymer.dom.flush();
   });
diff --git a/chrome/test/data/webui/settings/privacy_review_page_test.js b/chrome/test/data/webui/settings/privacy_review_page_test.js
index ea6524e..558e3c2 100644
--- a/chrome/test/data/webui/settings/privacy_review_page_test.js
+++ b/chrome/test/data/webui/settings/privacy_review_page_test.js
@@ -40,24 +40,38 @@
 
   /**
    * @param {!{
-   *   isHeaderVisibleExpected: ((boolean|undefined)|undefined),
-   *   isFooterVisibleExpected: (boolean|undefined),
+   *   headerTextExpected: (string|undefined),
+   *   footerButtonTextExpected: (string|undefined),
    *   isFooterHrVisibleExpected: (boolean|undefined),
    *   isWelcomeFragmentVisibleExpected: (boolean|undefined),
    *   isCompletionFragmentVisibleExpected: (boolean|undefined),
    *   isMsbbFragmentVisibleExpected: (boolean|undefined),
+   *   isClearOnExitFragmentVisibleExpected: (boolean|undefined),
    * }} destructured1
    */
-  function assertCardVisibility_({
-    isHeaderVisibleExpected,
-    isFooterVisibleExpected,
+  function assertCardVisibility({
+    headerTextExpected,
+    footerButtonTextExpected,
     isFooterHrVisibleExpected,
     isWelcomeFragmentVisibleExpected,
     isCompletionFragmentVisibleExpected,
     isMsbbFragmentVisibleExpected,
+    isClearOnExitFragmentVisibleExpected,
   }) {
-    assertEquals(!!isHeaderVisibleExpected, isChildVisible(page, '#header'));
-    assertEquals(!!isFooterVisibleExpected, isChildVisible(page, '#footer'));
+    assertEquals(!!headerTextExpected, isChildVisible(page, '#header'));
+    if (headerTextExpected) {
+      assertEquals(
+          headerTextExpected,
+          page.shadowRoot.querySelector('#headerLabel').innerText);
+    }
+    assertEquals(
+        !!footerButtonTextExpected || !!isFooterHrVisibleExpected,
+        isChildVisible(page, '#footer'));
+    if (footerButtonTextExpected) {
+      assertEquals(
+          footerButtonTextExpected,
+          page.shadowRoot.querySelector('#nextButton').innerText);
+    }
     assertEquals(
         !!isFooterHrVisibleExpected,
         page.shadowRoot.querySelector('#footer').classList.contains('hr'));
@@ -69,47 +83,67 @@
         isChildVisible(page, '#completionFragment'));
     assertEquals(
         !!isMsbbFragmentVisibleExpected, isChildVisible(page, '#msbbFragment'));
+    assertEquals(
+        !!isClearOnExitFragmentVisibleExpected,
+        isChildVisible(page, '#clearOnExitFragment'));
   }
 
-  function assertWelcomeCardVisible_() {
+  function assertWelcomeCardVisible() {
     assertQueryParameter('welcome');
-    assertCardVisibility_({
-      isFooterVisibleExpected: true,
+    assertCardVisibility({
+      footerButtonTextExpected:
+          page.i18n('privacyReviewWelcomeCardStartButton'),
       isWelcomeFragmentVisibleExpected: true,
     });
   }
 
-  function assertCompletionCardVisible_() {
+  function assertCompletionCardVisible() {
     assertQueryParameter('completion');
-    assertCardVisibility_({
-      isFooterVisibleExpected: true,
+    assertCardVisibility({
+      footerButtonTextExpected:
+          page.i18n('privacyReviewCompletionCardLeaveButton'),
       isFooterHrVisibleExpected: true,
       isCompletionFragmentVisibleExpected: true,
     });
   }
 
-  function assertMsbbCardVisible_() {
+  function assertMsbbCardVisible() {
     assertQueryParameter('msbb');
-    assertCardVisibility_({
-      isHeaderVisibleExpected: true,
-      isFooterVisibleExpected: true,
+    assertCardVisibility({
+      headerTextExpected: page.i18n('privacyReviewMsbbCardHeader'),
+      footerButtonTextExpected: page.i18n('privacyReviewNextButton'),
       isFooterHrVisibleExpected: true,
       isMsbbFragmentVisibleExpected: true,
     });
   }
 
+  function assertClearOnExitCardVisible() {
+    assertQueryParameter('clearOnExit');
+    assertCardVisibility({
+      headerTextExpected: page.i18n('privacyReviewClearOnExitCardHeader'),
+      footerButtonTextExpected: page.i18n('privacyReviewNextButton'),
+      isFooterHrVisibleExpected: true,
+      isClearOnExitFragmentVisibleExpected: true,
+    });
+  }
+
   test('testForwardNavigation', function() {
     // The review starts with the welcome card.
-    assertWelcomeCardVisible_();
+    assertWelcomeCardVisible();
 
     // Advance to the MSBB card.
     page.shadowRoot.querySelector('#nextButton').click();
     flush();
-    assertMsbbCardVisible_();
+    assertMsbbCardVisible();
+
+    // Advance to the clear on exit card.
+    page.shadowRoot.querySelector('#nextButton').click();
+    flush();
+    assertClearOnExitCardVisible();
 
     // Advance to the completion card.
     page.shadowRoot.querySelector('#nextButton').click();
     flush();
-    assertCompletionCardVisible_();
+    assertCompletionCardVisible();
   });
 });
diff --git a/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.js b/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.js
index 690b8a6b..116b76c4 100644
--- a/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.js
+++ b/chrome/test/data/webui/settings/safety_check_chrome_cleaner_test.js
@@ -6,7 +6,7 @@
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-import {ChromeCleanupProxy, ChromeCleanupProxyImpl} from 'chrome://settings/lazy_load.js';
+import {ChromeCleanupProxyImpl} from 'chrome://settings/lazy_load.js';
 import {MetricsBrowserProxyImpl, Router, routes, SafetyCheckCallbackConstants, SafetyCheckChromeCleanerStatus, SafetyCheckIconStatus, SafetyCheckInteractions, SettingsSafetyCheckChromeCleanerChildElement} from 'chrome://settings/settings.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
diff --git a/chrome/test/data/webui/settings/safety_check_page_test.js b/chrome/test/data/webui/settings/safety_check_page_test.js
index 9742d14..ec0d64a 100644
--- a/chrome/test/data/webui/settings/safety_check_page_test.js
+++ b/chrome/test/data/webui/settings/safety_check_page_test.js
@@ -6,7 +6,7 @@
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-import {HatsBrowserProxyImpl, LifetimeBrowserProxyImpl, MetricsBrowserProxyImpl, OpenWindowProxyImpl, PasswordManagerImpl, PasswordManagerProxy, Router, routes, SafetyCheckBrowserProxy, SafetyCheckBrowserProxyImpl, SafetyCheckCallbackConstants, SafetyCheckChromeCleanerStatus, SafetyCheckExtensionsStatus, SafetyCheckIconStatus, SafetyCheckInteractions, SafetyCheckParentStatus, SafetyCheckPasswordsStatus, SafetyCheckSafeBrowsingStatus, SafetyCheckUpdatesStatus, SettingsSafetyCheckChildElement, SettingsSafetyCheckExtensionsChildElement, SettingsSafetyCheckPageElement, SettingsSafetyCheckPasswordsChildElement, SettingsSafetyCheckSafeBrowsingChildElement, SettingsSafetyCheckUpdatesChildElement, TrustSafetyInteraction} from 'chrome://settings/settings.js';
+import {HatsBrowserProxyImpl, LifetimeBrowserProxyImpl, MetricsBrowserProxyImpl, OpenWindowProxyImpl, PasswordManagerImpl, PasswordManagerProxy, Router, routes, SafetyCheckBrowserProxyImpl, SafetyCheckCallbackConstants, SafetyCheckChromeCleanerStatus, SafetyCheckExtensionsStatus, SafetyCheckIconStatus, SafetyCheckInteractions, SafetyCheckParentStatus, SafetyCheckPasswordsStatus, SafetyCheckSafeBrowsingStatus, SafetyCheckUpdatesStatus, SettingsSafetyCheckChildElement, SettingsSafetyCheckExtensionsChildElement, SettingsSafetyCheckPageElement, SettingsSafetyCheckPasswordsChildElement, SettingsSafetyCheckSafeBrowsingChildElement, SettingsSafetyCheckUpdatesChildElement, TrustSafetyInteraction} from 'chrome://settings/settings.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
 import {TestBrowserProxy} from '../test_browser_proxy.js';
@@ -177,7 +177,7 @@
 
     safetyCheckBrowserProxy = new TestSafetyCheckBrowserProxy();
     safetyCheckBrowserProxy.setParentRanDisplayString('Dummy string');
-    SafetyCheckBrowserProxyImpl.instance_ = safetyCheckBrowserProxy;
+    SafetyCheckBrowserProxyImpl.setInstance(safetyCheckBrowserProxy);
 
     document.body.innerHTML = '';
     page = /** @type {!SettingsSafetyCheckPageElement} */ (
@@ -194,8 +194,7 @@
   test('testParentAndCollapse', async function() {
     // Before the check, only the text button is present.
     assertTrue(!!page.shadowRoot.querySelector('#safetyCheckParentButton'));
-    assertFalse(
-        !!page.shadowRoot.querySelector('#safetyCheckParentIconButton'));
+    assertFalse(!!page.shadowRoot.querySelector('cr-icon-button'));
     // Collapse is not opened.
     const collapse =
         /** @type {!IronCollapseElement} */ (
@@ -226,7 +225,7 @@
     flush();
     // Only the icon button is present.
     assertFalse(!!page.shadowRoot.querySelector('#safetyCheckParentButton'));
-    assertTrue(!!page.shadowRoot.querySelector('#safetyCheckParentIconButton'));
+    assertTrue(!!page.shadowRoot.querySelector('cr-icon-button'));
     // Collapse is opened.
     assertTrue(collapse.opened);
 
@@ -243,7 +242,7 @@
     flush();
     // Only the icon button is present.
     assertFalse(!!page.shadowRoot.querySelector('#safetyCheckParentButton'));
-    assertTrue(!!page.shadowRoot.querySelector('#safetyCheckParentIconButton'));
+    assertTrue(!!page.shadowRoot.querySelector('cr-icon-button'));
     // Collapse is opened.
     assertTrue(page.shadowRoot.querySelector('#safetyCheckCollapse').opened);
 
@@ -656,7 +655,8 @@
 
   test('passwordInfoStatesUiTest', function() {
     // Iterate over all states
-    for (const state of Object.values(SafetyCheckPasswordsStatus)) {
+    for (const state of Object.values(SafetyCheckPasswordsStatus)
+             .filter(v => Number.isInteger(v))) {
       fireSafetyCheckPasswordsEvent(state);
       flush();
 
diff --git a/chrome/test/data/webui/signin/profile_picker_app_test.js b/chrome/test/data/webui/signin/profile_picker_app_test.js
index 0ea9238..2d44bde6 100644
--- a/chrome/test/data/webui/signin/profile_picker_app_test.js
+++ b/chrome/test/data/webui/signin/profile_picker_app_test.js
@@ -103,7 +103,7 @@
   });
 
   // <if expr="lacros">
-  test('SignInPromoSignInLacros', async function() {
+  test('SignInPromoSignInWithUnassignedAccountLacros', async function() {
     loadTimeData.overrideValues({
       isMultiProfileAccountConsistentcyLacrosEnabled: true,
     });
@@ -112,8 +112,16 @@
     const choice = /** @type {!ProfileTypeChoiceElement} */ (
         testElement.shadowRoot.querySelector('profile-type-choice'));
     assertTrue(!!choice);
-    choice.shadowRoot.querySelector('#signInButton').click();
+    // Add unassigned account to trigger the account selection screen.
+    const unassignedAccount = /** @type {!UnassignedAccount} */ {
+      gaiaId: 'unassigned-id',
+      name: 'Account Name',
+      email: 'email@gmail.com',
+    };
+    webUIListenerCallback('unassigned-accounts-changed', [unassignedAccount]);
+    flushTasks();
     assertFalse(!!choice.shadowRoot.querySelector('#notNowButton'));
+    choice.shadowRoot.querySelector('#signInButton').click();
     // Start Lacros signin flow.
     await waitBeforeNextRender(testElement);
     const accountSelectionLacros =
@@ -124,6 +132,23 @@
     accountSelectionLacros.shadowRoot.querySelector('#backButton').click();
     await whenCheck(choice, () => choice.classList.contains('active'));
   });
+
+  test('SignInPromoSignInWithoutAccountLacros', async function() {
+    loadTimeData.overrideValues({
+      isMultiProfileAccountConsistentcyLacrosEnabled: true,
+    });
+    await resetTestElement(Routes.NEW_PROFILE);
+    await waitForProfileCreationLoad();
+    const choice = /** @type {!ProfileTypeChoiceElement} */ (
+        testElement.shadowRoot.querySelector('profile-type-choice'));
+    assertTrue(!!choice);
+    // No available account.
+    webUIListenerCallback('unassigned-accounts-changed', []);
+    flushTasks();
+    assertFalse(!!choice.shadowRoot.querySelector('#notNowButton'));
+    choice.shadowRoot.querySelector('#signInButton').click();
+    return browserProxy.whenCalled('loadSignInProfileCreationFlow');
+  });
   // </if>
 
   // Local profile creation is not enabled on Lacros.
diff --git a/chromecast/graphics/rounded_window_corners_manager_unittest.cc b/chromecast/graphics/rounded_window_corners_manager_unittest.cc
index 1395fe7..ba973254 100644
--- a/chromecast/graphics/rounded_window_corners_manager_unittest.cc
+++ b/chromecast/graphics/rounded_window_corners_manager_unittest.cc
@@ -68,7 +68,7 @@
   std::unique_ptr<aura::Window> window =
       std::make_unique<aura::Window>(nullptr);
   window->Init(ui::LAYER_TEXTURED);
-  window->SetProperty(exo::kClientSurfaceIdKey, new std::string("1"));
+  window->SetProperty(exo::kClientSurfaceIdKey, std::string("1"));
   root_window->AddChild(window.get());
   EXPECT_CALL(*mock_cast_window_manager_, SetEnableRoundedCorners(true));
   window->Show();
@@ -87,7 +87,7 @@
   window->Show();
   root_window->AddChild(window.get());
   EXPECT_CALL(*mock_cast_window_manager_, SetEnableRoundedCorners(true));
-  window->SetProperty(exo::kClientSurfaceIdKey, new std::string("1"));
+  window->SetProperty(exo::kClientSurfaceIdKey, std::string("1"));
 
   EXPECT_CALL(*mock_cast_window_manager_, SetEnableRoundedCorners(false));
   window = nullptr;
@@ -99,7 +99,7 @@
   std::unique_ptr<aura::Window> window =
       std::make_unique<aura::Window>(nullptr);
   window->Init(ui::LAYER_TEXTURED);
-  window->SetProperty(exo::kClientSurfaceIdKey, new std::string("1"));
+  window->SetProperty(exo::kClientSurfaceIdKey, std::string("1"));
   root_window->AddChild(window.get());
   EXPECT_CALL(*mock_cast_window_manager_, SetEnableRoundedCorners(true));
   window->Show();
diff --git a/chromeos/components/camera_app_ui/resources/js/externs/types.d.ts b/chromeos/components/camera_app_ui/resources/js/externs/types.d.ts
index a355d4a..7f66f73 100644
--- a/chromeos/components/camera_app_ui/resources/js/externs/types.d.ts
+++ b/chromeos/components/camera_app_ui/resources/js/externs/types.d.ts
@@ -46,13 +46,6 @@
   export type Blob = any;
 }
 
-// TODO(b/172340451): Install @types/w3c-image-capture in third_party/node to
-// get the correct types.
-type PhotoSettings = any;
-type MediaRecorder = any;
-type ImageCapture = any;
-type PhotoCapabilities = any;
-
 // This is currently a Chrome only API, and the spec is still in working draft
 // stage.
 // https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/sourceCapabilities
diff --git a/chromeos/components/camera_app_ui/resources/js/mojo/device_operator.js b/chromeos/components/camera_app_ui/resources/js/mojo/device_operator.js
index c76dd12..9bfc0b4 100644
--- a/chromeos/components/camera_app_ui/resources/js/mojo/device_operator.js
+++ b/chromeos/components/camera_app_ui/resources/js/mojo/device_operator.js
@@ -571,8 +571,11 @@
    * @param {string} deviceId Id of the target device.
    */
   dropConnection(deviceId) {
-    closeEndpoint(this.devices_.get(deviceId));
-    this.devices_.delete(deviceId);
+    const device = this.devices_.get(deviceId);
+    if (device !== undefined) {
+      closeEndpoint(device);
+      this.devices_.delete(deviceId);
+    }
   }
 
   /**
diff --git a/chromeos/components/camera_app_ui/resources/strings/camera_strings_ta.xtb b/chromeos/components/camera_app_ui/resources/strings/camera_strings_ta.xtb
index 954878d..d2d25f79 100644
--- a/chromeos/components/camera_app_ui/resources/strings/camera_strings_ta.xtb
+++ b/chromeos/components/camera_app_ui/resources/strings/camera_strings_ta.xtb
@@ -49,7 +49,7 @@
 <translation id="3810838688059735925">வீடியோ</translation>
 <translation id="3838931309141338733">பார்கோடை ஸ்கேன் செய்</translation>
 <translation id="3892148308691398805">உரையை நகலெடு</translation>
-<translation id="4000398125663085899">இப்போது புதிய படங்களும் வீடியோக்களும் Files ஆப்ஸில் உள்ள இந்தக் கோப்புறையில் சேமிக்கப்படும்: எனது கோப்புகள் &gt; கேமரா</translation>
+<translation id="4000398125663085899">இப்போது புதிய படங்களும் வீடியோக்களும் Files ஆப்ஸில் உள்ள இந்தக் கோப்புறையில் சேமிக்கப்படும்: எனது ஃபைல்கள்  &gt; கேமரா</translation>
 <translation id="4118525110028899586">ரெக்கார்டிங்கை இடைநிறுத்து</translation>
 <translation id="4269820728363426813">இணைப்பு முகவரியை நகலெடு</translation>
 <translation id="4279490309300973883">பிரதிபலிக்கிறது</translation>
diff --git a/chromeos/components/camera_app_ui/resources/tsconfig.json b/chromeos/components/camera_app_ui/resources/tsconfig.json
index 43f3a004..e689f266 100644
--- a/chromeos/components/camera_app_ui/resources/tsconfig.json
+++ b/chromeos/components/camera_app_ui/resources/tsconfig.json
@@ -4,7 +4,9 @@
     "checkJs": true,
     "noEmit": true,
     "module": "esnext",
-    "target": "esnext"
+    "target": "esnext",
+    "typeRoots": ["../../../../third_party/node/node_modules/@types"],
+    "types": ["w3c-css-typed-object-model-level-1", "w3c-image-capture", "dom-mediacapture-record"]
   },
   "files": [
     "js/externs/types.d.ts",
diff --git a/chromeos/crosapi/mojom/crosapi.mojom b/chromeos/crosapi/mojom/crosapi.mojom
index f46f7ac..33d2c57 100644
--- a/chromeos/crosapi/mojom/crosapi.mojom
+++ b/chromeos/crosapi/mojom/crosapi.mojom
@@ -68,8 +68,8 @@
 // please note the milestone when you added it, to help us reason about
 // compatibility between the client applications and older ash-chrome binaries.
 //
-// Next version: 42
-// Next method id: 47
+// Next version: 43
+// Next method id: 48
 [Stable, Uuid="8b79c34f-2bf8-4499-979a-b17cac522c1e",
  RenamedFrom="crosapi.mojom.AshChromeService"]
 interface Crosapi {
@@ -438,6 +438,16 @@
   kEnablePlatformHevc = 3,
 };
 
+// Indicates whether a browser window is created successfully or not.
+[Stable, Extensible]
+enum CreationResult {
+  kUnknown = 0,
+  kSuccess = 1,
+  kUnsupported = 2,
+  kBrowserNotRunning = 3,
+  kServiceDisconnected = 4,
+};
+
 // BrowserInitParams is a set of parameters for initialization of browsers
 // (such as lacros-chrome), which is passed from ash-chrome to a browser.
 // Since ash-chrome and browsers may have different versions, the browsers must
@@ -626,6 +636,14 @@
   // The callback is called on the command execution.
   NewWindow@1([MinVersion=10] bool incognito) => ();
 
+  // Opens a new fullscreen window in the browser with, currently, the last
+  // used profile. The only tab will be navigated to the given `url` once the
+  // window is launched. The callback is called on the command execution.
+  // NOTE: This method is used by Chrome OS web Kiosk session only. The behavior
+  // may change and it shouldn't be used by anybody else.
+  [MinVersion=42]
+  NewFullscreenWindow@9(url.mojom.Url url) => (CreationResult result);
+
   // Opens a new tab in the browser with, currently, the last used profile.
   // This may open a new window, if there's no window. Please see also
   // the Chrome's NewTab command for details.
diff --git a/chromeos/network/managed_network_configuration_handler.h b/chromeos/network/managed_network_configuration_handler.h
index 8cb532a..e4b894e 100644
--- a/chromeos/network/managed_network_configuration_handler.h
+++ b/chromeos/network/managed_network_configuration_handler.h
@@ -123,11 +123,10 @@
   // immediately) to Shill's profiles and enforced in future configurations
   // until the policy associated with |userhash| and |onc_source| is changed
   // again with this function. For device policies, |userhash| must be empty.
-  virtual void SetPolicy(
-      ::onc::ONCSource onc_source,
-      const std::string& userhash,
-      const base::Value& network_configs_onc,
-      const base::DictionaryValue& global_network_config) = 0;
+  virtual void SetPolicy(::onc::ONCSource onc_source,
+                         const std::string& userhash,
+                         const base::Value& network_configs_onc,
+                         const base::Value& global_network_config) = 0;
 
   // Returns true if any policy application is currently running or pending.
   // NetworkPolicyObservers are notified about applications finishing.
diff --git a/chromeos/network/managed_network_configuration_handler_impl.cc b/chromeos/network/managed_network_configuration_handler_impl.cc
index cf84e35..815e237 100644
--- a/chromeos/network/managed_network_configuration_handler_impl.cc
+++ b/chromeos/network/managed_network_configuration_handler_impl.cc
@@ -480,7 +480,7 @@
     ::onc::ONCSource onc_source,
     const std::string& userhash,
     const base::Value& network_configs_onc,
-    const base::DictionaryValue& global_network_config) {
+    const base::Value& global_network_config) {
   VLOG(1) << "Setting policies from: " << ToDebugString(onc_source, userhash);
 
   // |userhash| must be empty for device policies.
@@ -496,16 +496,17 @@
   policies->global_network_config.MergeDictionary(&global_network_config);
 
   // Update prohibited technologies.
-  const base::ListValue* prohibited_list = nullptr;
-  if (policies->global_network_config.GetListWithoutPathExpansion(
-          ::onc::global_network_config::kDisableNetworkTypes,
-          &prohibited_list) &&
-      prohibited_technologies_handler_) {
-    // Prohibited technologies are only allowed in device policy.
-    DCHECK_EQ(::onc::ONC_SOURCE_DEVICE_POLICY, onc_source);
+  if (prohibited_technologies_handler_) {
+    const base::Value* prohibited_list =
+        policies->global_network_config.FindListKey(
+            ::onc::global_network_config::kDisableNetworkTypes);
+    if (prohibited_list) {
+      // Prohibited technologies are only allowed in device policy.
+      DCHECK_EQ(::onc::ONC_SOURCE_DEVICE_POLICY, onc_source);
 
-    prohibited_technologies_handler_->SetProhibitedTechnologies(
-        prohibited_list);
+      prohibited_technologies_handler_->SetProhibitedTechnologies(
+          *prohibited_list);
+    }
   }
 
   GuidToPolicyMap old_per_network_config;
diff --git a/chromeos/network/managed_network_configuration_handler_impl.h b/chromeos/network/managed_network_configuration_handler_impl.h
index 7c021d0..396db058 100644
--- a/chromeos/network/managed_network_configuration_handler_impl.h
+++ b/chromeos/network/managed_network_configuration_handler_impl.h
@@ -76,7 +76,7 @@
   void SetPolicy(::onc::ONCSource onc_source,
                  const std::string& userhash,
                  const base::Value& network_configs_onc,
-                 const base::DictionaryValue& global_network_config) override;
+                 const base::Value& global_network_config) override;
 
   bool IsAnyPolicyApplicationRunning() const override;
 
diff --git a/chromeos/network/mock_managed_network_configuration_handler.h b/chromeos/network/mock_managed_network_configuration_handler.h
index cdb5fe62..06685c26 100644
--- a/chromeos/network/mock_managed_network_configuration_handler.h
+++ b/chromeos/network/mock_managed_network_configuration_handler.h
@@ -54,7 +54,7 @@
                void(::onc::ONCSource onc_source,
                     const std::string& userhash,
                     const base::Value& network_configs_onc,
-                    const base::DictionaryValue& global_network_config));
+                    const base::Value& global_network_config));
   MOCK_CONST_METHOD0(IsAnyPolicyApplicationRunning, bool());
   MOCK_CONST_METHOD3(
       FindPolicyByGUID,
diff --git a/chromeos/network/prohibited_technologies_handler.cc b/chromeos/network/prohibited_technologies_handler.cc
index cc1f4d99..a44ace5 100644
--- a/chromeos/network/prohibited_technologies_handler.cc
+++ b/chromeos/network/prohibited_technologies_handler.cc
@@ -61,11 +61,11 @@
 }
 
 void ProhibitedTechnologiesHandler::SetProhibitedTechnologies(
-    const base::ListValue* prohibited_list) {
-  // Build up prohibited network type list and save it for furthur use when
+    const base::Value& prohibited_list) {
+  // Build up prohibited network type list and save it for further use when
   // enforced
   session_prohibited_technologies_.clear();
-  for (const auto& item : prohibited_list->GetList()) {
+  for (const auto& item : prohibited_list.GetList()) {
     std::string translated_tech =
         network_util::TranslateONCTypeToShill(item.GetString());
     if (!translated_tech.empty())
diff --git a/chromeos/network/prohibited_technologies_handler.h b/chromeos/network/prohibited_technologies_handler.h
index a0243b8b..7322baa38 100644
--- a/chromeos/network/prohibited_technologies_handler.h
+++ b/chromeos/network/prohibited_technologies_handler.h
@@ -31,7 +31,7 @@
   void PoliciesApplied(const std::string& userhash) override;
   // Function for updating the list of technologies that are prohibited during
   // user sessions
-  void SetProhibitedTechnologies(const base::ListValue* prohibited_list);
+  void SetProhibitedTechnologies(const base::Value& prohibited_list);
   // Functions for updating the list of technologies that are prohibited
   // everywhere, including login screen
   void AddGloballyProhibitedTechnology(const std::string& technology);
diff --git a/chromeos/profiles/orderfile.newest.txt b/chromeos/profiles/orderfile.newest.txt
index cac9259b..bd1be7d 100644
--- a/chromeos/profiles/orderfile.newest.txt
+++ b/chromeos/profiles/orderfile.newest.txt
@@ -1 +1 @@
-chromeos-chrome-orderfile-field-93-4543.0-1624269168-benchmark-93.0.4554.0-r1.orderfile.xz
+chromeos-chrome-orderfile-field-93-4577.22-1628502876-benchmark-93.0.4577.42-r1.orderfile.xz
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb
index 448e2b2..fffb88e5 100644
--- a/chromeos/strings/chromeos_strings_be.xtb
+++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Усталяваць CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Тып пастаўшчыка</translation>
+<translation id="7895471513946376273">Адкрыйце для сябе інструменты для дызайну і рысавання</translation>
 <translation id="7936303884198020182">Серверы даменных імён не знойдзены</translation>
 <translation id="7960831585769876809">Тэмпература</translation>
 <translation id="7994702968232966508">Метад EAP</translation>
+<translation id="8020238979854764615">Узнікла памылка. Выберыце іншы відарыс і паўтарыце спробу.</translation>
 <translation id="802154636333426148">Збой спампоўкі</translation>
 <translation id="8041089156583427627">Адправіць водгук</translation>
 <translation id="8075838845814659848">Узровень зараду акумулятара</translation>
diff --git a/chromeos/strings/chromeos_strings_cs.xtb b/chromeos/strings/chromeos_strings_cs.xtb
index 990f496..56bef67 100644
--- a/chromeos/strings/chromeos_strings_cs.xtb
+++ b/chromeos/strings/chromeos_strings_cs.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Nainstalovat CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Typ poskytovatele</translation>
+<translation id="7895471513946376273">Objevte aplikace pro kreslení a design</translation>
 <translation id="7936303884198020182">Nebyly nalezeny žádné názvové servery</translation>
 <translation id="7960831585769876809">Teplota</translation>
 <translation id="7994702968232966508">Metoda EAP</translation>
+<translation id="8020238979854764615">Došlo k chybě. Vyberte jiné obrázky a zkuste to znovu.</translation>
 <translation id="802154636333426148">Stažení se nezdařilo</translation>
 <translation id="8041089156583427627">Odeslat svůj názor</translation>
 <translation id="8075838845814659848">Zbývající kapacita</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb
index 34a126d..f46f61fe 100644
--- a/chromeos/strings/chromeos_strings_fi.xtb
+++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Asenna CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Palveluntarjoajan tyyppi</translation>
+<translation id="7895471513946376273">Tutustu piirustus- ja suunnittelutyökaluihin</translation>
 <translation id="7936303884198020182">Nimipalvelimia ei löydy</translation>
 <translation id="7960831585769876809">Lämpötila</translation>
 <translation id="7994702968232966508">EAP-tapa</translation>
+<translation id="8020238979854764615">Tapahtui virhe. Valitse muita kuvia ja yritä uudelleen.</translation>
 <translation id="802154636333426148">Lataus epäonnistui.</translation>
 <translation id="8041089156583427627">Lähetä palautetta</translation>
 <translation id="8075838845814659848">Virtaa jäljellä</translation>
diff --git a/chromeos/strings/chromeos_strings_fil.xtb b/chromeos/strings/chromeos_strings_fil.xtb
index 50823ee4..a710a85 100644
--- a/chromeos/strings/chromeos_strings_fil.xtb
+++ b/chromeos/strings/chromeos_strings_fil.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">I-install ang CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Uri ng provider</translation>
+<translation id="7895471513946376273">Tumuklas ng mga tool sa pagguhit at pagdidisenyo</translation>
 <translation id="7936303884198020182">Walang nakitang name server</translation>
 <translation id="7960831585769876809">Temperatura</translation>
 <translation id="7994702968232966508">Pamamaraang EAP</translation>
+<translation id="8020238979854764615">Nagka-error. Pakisubukan ulit sa pamamagitan ng pagpili ng iba pang larawan.</translation>
 <translation id="802154636333426148">Hindi na-download</translation>
 <translation id="8041089156583427627">Magpadala ng Feedback</translation>
 <translation id="8075838845814659848">Natitirang pag-charge</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb
index 534334f..0c789175 100644
--- a/chromeos/strings/chromeos_strings_hi.xtb
+++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">CloudReady इंस्टॉल करें</translation>
 <translation id="7881066108824108340">डीएनएस</translation>
 <translation id="7882358943899516840">कंपनी का प्रकार</translation>
+<translation id="7895471513946376273">ड्रॉइंग और डिज़ाइन के टूल खोजें</translation>
 <translation id="7936303884198020182">कोई भी नाम सर्वर नहीं मिला</translation>
 <translation id="7960831585769876809">तापमान</translation>
 <translation id="7994702968232966508">EAP विधि</translation>
+<translation id="8020238979854764615">कोई गड़बड़ी हुई है. कृपया दूसरी इमेज चुनकर फिर से कोशिश करें.</translation>
 <translation id="802154636333426148">डाउनलोड विफल रहा</translation>
 <translation id="8041089156583427627">सुझाव भेजें</translation>
 <translation id="8075838845814659848">इतने प्रतिशत चार्ज होना बाकी है</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb
index 59944f3b..8319c52 100644
--- a/chromeos/strings/chromeos_strings_id.xtb
+++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Instal CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Jenis penyedia</translation>
+<translation id="7895471513946376273">Temukan alat gambar dan desain</translation>
 <translation id="7936303884198020182">Tidak ada server nama yang ditemukan</translation>
 <translation id="7960831585769876809">Suhu</translation>
 <translation id="7994702968232966508">Metode EAP</translation>
+<translation id="8020238979854764615">Terjadi error. Coba lagi dengan memilih gambar lain.</translation>
 <translation id="802154636333426148">Download gagal</translation>
 <translation id="8041089156583427627">Kirim Masukan</translation>
 <translation id="8075838845814659848">Sisa daya baterai</translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb
index 6292c8e..71b00f5da 100644
--- a/chromeos/strings/chromeos_strings_ja.xtb
+++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">CloudReady をインストール</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">プロバイダの種類</translation>
+<translation id="7895471513946376273">描画ツールとデザインツールを見つける</translation>
 <translation id="7936303884198020182">ネームサーバーが見つかりませんでした</translation>
 <translation id="7960831585769876809">温度</translation>
 <translation id="7994702968232966508">EAP 方式</translation>
+<translation id="8020238979854764615">エラーが発生しました。別の画像を選択して、もう一度お試しください。</translation>
 <translation id="802154636333426148">ダウンロード エラー</translation>
 <translation id="8041089156583427627">フィードバックを送信</translation>
 <translation id="8075838845814659848">バッテリー残量</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb
index cff3d44..417be93 100644
--- a/chromeos/strings/chromeos_strings_ka.xtb
+++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">CloudReady-ს ინსტალაცია</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">პროვაიდერის ტიპი</translation>
+<translation id="7895471513946376273">აღმოაჩინეთ ხატვისა და დიზაინის ხელსაწყოები</translation>
 <translation id="7936303884198020182">სახელების სერვერი ვერ მოიძებნა</translation>
 <translation id="7960831585769876809">ტემპერატურა</translation>
 <translation id="7994702968232966508">EAP მეთოდი</translation>
+<translation id="8020238979854764615">შეცდომა მოხდა. ცადეთ ხელახლა სხვა სურათების არჩევის მეშვეობით.</translation>
 <translation id="802154636333426148">ჩამოტვირთვა ვერ მოხერხდა</translation>
 <translation id="8041089156583427627">გამოხმაურება</translation>
 <translation id="8075838845814659848">დარჩენილი მუხტი</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb
index 04617aa..2c13b2a 100644
--- a/chromeos/strings/chromeos_strings_km.xtb
+++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -366,9 +366,11 @@
 <translation id="7835501727204647447">ដំឡើង CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">ប្រភេទអ្នកផ្តល់សេវាកម្ម</translation>
+<translation id="7895471513946376273">ស្វែងយល់អំពី​ឧបករណ៍​រចនា និងគូរ</translation>
 <translation id="7936303884198020182">រកមិនឃើញ DNS ទេ</translation>
 <translation id="7960831585769876809">សីតុណ្ហភាព</translation>
 <translation id="7994702968232966508">វិធីសាស្ត្រ EAP</translation>
+<translation id="8020238979854764615">មាន​បញ្ហា​បានកើតឡើង។ សូមព្យាយាម​ម្ដងទៀត ដោយជ្រើសរើស​រូបភាពផ្សេងទៀត។</translation>
 <translation id="802154636333426148">បានបរាជ័យក្នុងការទាញយក</translation>
 <translation id="8041089156583427627">ផ្ញើមតិ</translation>
 <translation id="8075838845814659848">ការសាកថ្ម​ដែលនៅសល់</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index f9923e9..5e0f711 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">CloudReady 설치</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">공급자 유형</translation>
+<translation id="7895471513946376273">그림 및 디자인 도구 살펴보기</translation>
 <translation id="7936303884198020182">네임서버를 찾을 수 없습니다.</translation>
 <translation id="7960831585769876809">온도</translation>
 <translation id="7994702968232966508">EAP 방식</translation>
+<translation id="8020238979854764615">오류가 발생했습니다. 다른 이미지를 선택하고 다시 시도해 보세요.</translation>
 <translation id="802154636333426148">다운로드 실패</translation>
 <translation id="8041089156583427627">의견 보내기</translation>
 <translation id="8075838845814659848">배터리 잔량</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb
index fc9f4578..b80631e9 100644
--- a/chromeos/strings/chromeos_strings_lo.xtb
+++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -368,9 +368,11 @@
 <translation id="7835501727204647447">ຕິດຕັ້ງ CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">ປະ​ເພດ​ຜູ້ໃຫ້​ບໍ​ລິ​ການ​</translation>
+<translation id="7895471513946376273">ຄົ້ນພົບເຄື່ອງມືການແຕ້ມ ແລະ ການອອກແບບຕ່າງໆ</translation>
 <translation id="7936303884198020182">ບໍ່ພົບເຊີບເວີຊື່</translation>
 <translation id="7960831585769876809">ອຸນຫະພູມ</translation>
 <translation id="7994702968232966508">ວິທີການ EAP</translation>
+<translation id="8020238979854764615">ເກີດຄວາມຜິດພາດຂຶ້ນ. ກະລຸນາລອງໃໝ່ໂດຍການເລືອກຮູບອື່ນ.</translation>
 <translation id="802154636333426148">ການດາວໂຫຼດບໍ່ສຳເລັດ</translation>
 <translation id="8041089156583427627">ສົ່ງຄຳຕິຊົມ</translation>
 <translation id="8075838845814659848">ການສາກທີ່ເຫຼືອ</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index cc206c0..3811e28 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Įdiegti „CloudReady“</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Teikėjo tipas</translation>
+<translation id="7895471513946376273">Atraskite piešimo ir dizaino įrankius</translation>
 <translation id="7936303884198020182">Domenų pavadinimų serverių nerasta</translation>
 <translation id="7960831585769876809">Temperatūra</translation>
 <translation id="7994702968232966508">EAP metodas</translation>
+<translation id="8020238979854764615">Įvyko klaida. Bandykite dar kartą pasirinkdami kitus vaizdus.</translation>
 <translation id="802154636333426148">Įvyko atsisiuntimo klaida</translation>
 <translation id="8041089156583427627">Siųsti atsiliepimą</translation>
 <translation id="8075838845814659848">Likusio įkrovimo rodiklis</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb
index 1bbfe07b..3a28799 100644
--- a/chromeos/strings/chromeos_strings_lv.xtb
+++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Instalēt CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Pakalpojumu sniedzēja veids</translation>
+<translation id="7895471513946376273">Atklājiet zīmēšanas un dizaina rīkus</translation>
 <translation id="7936303884198020182">Netika atrasts neviens nosaukumu serveris</translation>
 <translation id="7960831585769876809">Temperatūra</translation>
 <translation id="7994702968232966508">EAP metode</translation>
+<translation id="8020238979854764615">Radās kļūda. Lūdzu, mēģiniet vēlreiz, izvēloties citus attēlus.</translation>
 <translation id="802154636333426148">Lejupielāde neizdevās</translation>
 <translation id="8041089156583427627">Sūtīt atsauksmes</translation>
 <translation id="8075838845814659848">Atlikusī akumulatora enerģija</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb
index 9f3d9d7c..f4b1da3 100644
--- a/chromeos/strings/chromeos_strings_mn.xtb
+++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">CloudReady-г суулгах</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Нийлүүлэгчийн төрөл</translation>
+<translation id="7895471513946376273">Дүрс болон дизайны хэрэгсэлтэй танилцаарай</translation>
 <translation id="7936303884198020182">DNS олдсонгүй</translation>
 <translation id="7960831585769876809">Температур</translation>
 <translation id="7994702968232966508">EAP арга</translation>
+<translation id="8020238979854764615">Алдаа гарлаа. Өөр зураг сонгож, дахин оролдоно уу.</translation>
 <translation id="802154636333426148">Татаж чадсангүй</translation>
 <translation id="8041089156583427627">Санал хүсэлт илгээх</translation>
 <translation id="8075838845814659848">Үлдсэн цэнэг</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb
index 79f9140b..f1e5f90d 100644
--- a/chromeos/strings/chromeos_strings_ms.xtb
+++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Pasang CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Jenis penyedia</translation>
+<translation id="7895471513946376273">Temukan alatan lukisan dan reka bentuk</translation>
 <translation id="7936303884198020182">Pelayan tanpa nama ditemukan</translation>
 <translation id="7960831585769876809">Suhu</translation>
 <translation id="7994702968232966508">Kaedah EAP</translation>
+<translation id="8020238979854764615">Terdapat ralat. Sila cuba lagi dengan memilih imej lain.</translation>
 <translation id="802154636333426148">Muat turun gagal</translation>
 <translation id="8041089156583427627">Hantar Maklum Balas</translation>
 <translation id="8075838845814659848">Baki cas</translation>
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb
index ff174e9..0807cf2 100644
--- a/chromeos/strings/chromeos_strings_my.xtb
+++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -366,9 +366,11 @@
 <translation id="7835501727204647447">CloudReady ထည့်သွင်းရန်</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">ထောက်ပံ့သူအမျိုးစား</translation>
+<translation id="7895471513946376273">ပုံကားချပ်နှင့် ဒီဇိုင်းတူးလ်များကို ရှာဖွေကြည့်ရှုလိုက်ပါ</translation>
 <translation id="7936303884198020182">အမည်ဆာဗာတစ်ခုမျှ ရှာမတွေ့ပါ</translation>
 <translation id="7960831585769876809">အပူချိန်</translation>
 <translation id="7994702968232966508">EAP နည်းလမ်း</translation>
+<translation id="8020238979854764615">အမှားတစ်ခု ဖြစ်သွားသည်။ အခြားပုံများကို ရွေးပြီး ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="802154636333426148">ဒေါင်းလုဒ်လုပ်မှု မအောင်မြင်ပါ</translation>
 <translation id="8041089156583427627">အကြံပြုချက် ပို့ရန်</translation>
 <translation id="8075838845814659848">ကျန်ရှိသော အားပမာဏ</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb
index 926a0db..d37d1f29 100644
--- a/chromeos/strings/chromeos_strings_ru.xtb
+++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Установить CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Тип провайдера</translation>
+<translation id="7895471513946376273">Инструменты для рисования и веб-дизайна</translation>
 <translation id="7936303884198020182">Не найдены серверы доменных имен.</translation>
 <translation id="7960831585769876809">Температура</translation>
 <translation id="7994702968232966508">Метод EAP</translation>
+<translation id="8020238979854764615">Произошла ошибка. Выберите другие изображения и повторите попытку.</translation>
 <translation id="802154636333426148">Ошибка скачивания</translation>
 <translation id="8041089156583427627">Отправить отзыв</translation>
 <translation id="8075838845814659848">Уровень заряда</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb
index 3a39eef6..597d5c98 100644
--- a/chromeos/strings/chromeos_strings_sv.xtb
+++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Installera CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Leverantörstyp</translation>
+<translation id="7895471513946376273">Upptäck rit- och designverktyg</translation>
 <translation id="7936303884198020182">Inga namnservrar hittades</translation>
 <translation id="7960831585769876809">Temperatur</translation>
 <translation id="7994702968232966508">EAP-metod</translation>
+<translation id="8020238979854764615">Något gick fel. Välj andra bilder och försök igen.</translation>
 <translation id="802154636333426148">Nedladdningen misslyckades</translation>
 <translation id="8041089156583427627">Skicka feedback</translation>
 <translation id="8075838845814659848">Batteritid som återstår</translation>
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb
index f44b79c..c45fcaff 100644
--- a/chromeos/strings/chromeos_strings_sw.xtb
+++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -366,9 +366,11 @@
 <translation id="7835501727204647447">Sakinisha CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Aina ya mtoa huduma</translation>
+<translation id="7895471513946376273">Gundua zana za kuchora na kusanifu</translation>
 <translation id="7936303884198020182">Hakuna seva za majina zilizopatikana</translation>
 <translation id="7960831585769876809">Halijoto</translation>
 <translation id="7994702968232966508">Mbinu ya EAP</translation>
+<translation id="8020238979854764615">Hitilafu fulani imetokea. Tafadhali jaribu tena kwa kuchagua picha zingine.</translation>
 <translation id="802154636333426148">Haikuweza kupakua</translation>
 <translation id="8041089156583427627">Tuma Maoni</translation>
 <translation id="8075838845814659848">Chaji iliyosalia</translation>
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb
index ed0b574..0155ddeb 100644
--- a/chromeos/strings/chromeos_strings_ta.xtb
+++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -99,7 +99,7 @@
 <translation id="3122464029669770682">CPU</translation>
 <translation id="315116470104423982">மொபைல் டேட்டா</translation>
 <translation id="315738237743207937">கேப்டிவ் போர்டல் கண்டறியப்பட்டது</translation>
-<translation id="3188257591659621405">எனது கோப்புகள்</translation>
+<translation id="3188257591659621405">எனது ஃபைல்கள் </translation>
 <translation id="3199982728237701504">டாக்குமெண்ட் ஃபீடர் (இரண்டு பக்கமும்)</translation>
 <translation id="3226405216343213872">ஸ்கேனர்களைத் தேடுகிறது</translation>
 <translation id="3228433892370472777">இயல்பான இணைப்பு</translation>
@@ -258,7 +258,7 @@
 <translation id="5866840822086176774">மிக வலிமையானது</translation>
 <translation id="5895138241574237353">மறுதொடக்கம்</translation>
 <translation id="5916084858004523819">தடைசெய்யப்பட்டது</translation>
-<translation id="5921506667911082617">{COUNT,plural, =1{உங்கள் கோப்பு ஸ்கேன் செய்யப்பட்டு <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> கோப்புறையில் சேமிக்கப்பட்டது.}other{உங்கள் கோப்புகள் ஸ்கேன் செய்யப்பட்டு <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> கோப்புறையில் சேமிக்கப்பட்டன.}}</translation>
+<translation id="5921506667911082617">{COUNT,plural, =1{உங்கள் கோப்பு ஸ்கேன் செய்யப்பட்டு <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> கோப்புறையில் சேமிக்கப்பட்டது.}other{உங்கள் ஃபைல்கள்  ஸ்கேன் செய்யப்பட்டு <ph name="LINK_BEGIN" /><ph name="FOLDER_NAME" /><ph name="LINK_END" /> கோப்புறையில் சேமிக்கப்பட்டன.}}</translation>
 <translation id="5931523347251946569">கோப்பு இல்லை</translation>
 <translation id="5972388717451707488">Update Engine</translation>
 <translation id="6037291330010597344">ஸ்கேனரின் டாக்குமெண்ட் ஃபீடர் காலியாக உள்ளது. ஆவணங்களைச் சேர்த்துவிட்டு மீண்டும் முயலவும்.</translation>
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb
index ff59c9a..0b4a320 100644
--- a/chromeos/strings/chromeos_strings_th.xtb
+++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">ติดตั้ง CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">ประเภทผู้ให้บริการ</translation>
+<translation id="7895471513946376273">สำรวจเครื่องมือสำหรับการวาดภาพและการออกแบบ</translation>
 <translation id="7936303884198020182">ไม่พบเนมเซิร์ฟเวอร์</translation>
 <translation id="7960831585769876809">อุณหภูมิ</translation>
 <translation id="7994702968232966508">วิธีการ EAP</translation>
+<translation id="8020238979854764615">เกิดข้อผิดพลาด โปรดเลือกรูปอื่นเพื่อลองอีกครั้ง</translation>
 <translation id="802154636333426148">การดาวน์โหลดล้มเหลว</translation>
 <translation id="8041089156583427627">ส่งความคิดเห็น</translation>
 <translation id="8075838845814659848">การชาร์จที่เหลือ</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb
index fe24de0b..6cbf207 100644
--- a/chromeos/strings/chromeos_strings_tr.xtb
+++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">CloudReady'yi Yükle</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Sağlayıcı türü</translation>
+<translation id="7895471513946376273">Çizim ve tasarım araçlarını keşfedin</translation>
 <translation id="7936303884198020182">Alan adı sunucusu bulunamadı</translation>
 <translation id="7960831585769876809">Sıcaklık</translation>
 <translation id="7994702968232966508">EAP yöntemi</translation>
+<translation id="8020238979854764615">Hata oluştu. Lütfen başka resimleri seçerek tekrar deneyin.</translation>
 <translation id="802154636333426148">İndirilemedi</translation>
 <translation id="8041089156583427627">Görüş bildirin</translation>
 <translation id="8075838845814659848">Kalan şarj seviyesi</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb
index 5c067107..7b63cccc 100644
--- a/chromeos/strings/chromeos_strings_vi.xtb
+++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">Cài đặt CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">Loại nhà mạng</translation>
+<translation id="7895471513946376273">Khám phá các công cụ vẽ và thiết kế</translation>
 <translation id="7936303884198020182">Không tìm thấy máy chủ định danh</translation>
 <translation id="7960831585769876809">Nhiệt độ</translation>
 <translation id="7994702968232966508">Phương pháp EAP</translation>
+<translation id="8020238979854764615">Đã xảy ra lỗi. Vui lòng thử lại bằng cách chọn các hình ảnh khác.</translation>
 <translation id="802154636333426148">Tải xuống không thành công</translation>
 <translation id="8041089156583427627">Gửi ý kiến phản hồi</translation>
 <translation id="8075838845814659848">Mức pin còn lại</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb
index b704d21..f0324890 100644
--- a/chromeos/strings/chromeos_strings_zh-HK.xtb
+++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">安裝 CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">供應商類型</translation>
+<translation id="7895471513946376273">探索繪圖與設計工具</translation>
 <translation id="7936303884198020182">找不到域名伺服器</translation>
 <translation id="7960831585769876809">溫度</translation>
 <translation id="7994702968232966508">EAP 方法</translation>
+<translation id="8020238979854764615">發生錯誤,請選擇其他圖片再試一次。</translation>
 <translation id="802154636333426148">下載失敗</translation>
 <translation id="8041089156583427627">提供意見</translation>
 <translation id="8075838845814659848">剩餘電量</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb
index 9b648be..8fda87f 100644
--- a/chromeos/strings/chromeos_strings_zh-TW.xtb
+++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -367,9 +367,11 @@
 <translation id="7835501727204647447">安裝 CloudReady</translation>
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7882358943899516840">供應商類型</translation>
+<translation id="7895471513946376273">探索繪圖與設計工具</translation>
 <translation id="7936303884198020182">找不到任何名稱伺服器</translation>
 <translation id="7960831585769876809">溫度</translation>
 <translation id="7994702968232966508">EAP 方法</translation>
+<translation id="8020238979854764615">發生錯誤,請選擇其他圖片再試一次。</translation>
 <translation id="802154636333426148">下載失敗</translation>
 <translation id="8041089156583427627">提供意見</translation>
 <translation id="8075838845814659848">剩餘電量</translation>
diff --git a/components/arc/compat_mode/arc_resize_lock_manager_unittest.cc b/components/arc/compat_mode/arc_resize_lock_manager_unittest.cc
index e62de1c..7e08fa6 100644
--- a/components/arc/compat_mode/arc_resize_lock_manager_unittest.cc
+++ b/components/arc/compat_mode/arc_resize_lock_manager_unittest.cc
@@ -124,7 +124,7 @@
   EXPECT_FALSE(IsResizeLockEnabled(arc_window.get()));
 
   // App id needs to be set to toogle resize lock state.
-  arc_window->SetProperty(ash::kAppIDKey, new std::string("app-id"));
+  arc_window->SetProperty(ash::kAppIDKey, std::string("app-id"));
   EXPECT_FALSE(IsResizeLockEnabled(arc_window.get()));
 
   // Test EnableResizeLock will be called by the property change.
@@ -177,7 +177,7 @@
   arc_window->SetProperty(kNonInterestedPropKey, true);
   EXPECT_FALSE(IsResizeLockEnabled(arc_window.get()));
   // Should not ignore non-null value.
-  arc_window->SetProperty(ash::kAppIDKey, new std::string("app-id"));
+  arc_window->SetProperty(ash::kAppIDKey, std::string("app-id"));
   EXPECT_TRUE(IsResizeLockEnabled(arc_window.get()));
 }
 
@@ -282,7 +282,7 @@
 // lock type.
 TEST_F(ArcResizeLockManagerTest, TestShadowPropertyChange) {
   auto arc_window = CreateFakeWindow(true);
-  arc_window->SetProperty(ash::kAppIDKey, new std::string("app-id"));
+  arc_window->SetProperty(ash::kAppIDKey, std::string("app-id"));
 
   bool resize_shadow_updated = false;
   ScopedWindowPropertyObserver observer(
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 986e916..456fd85 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
@@ -10,7 +10,7 @@
 <translation id="1242008676835033345"><ph name="WEBSITE_URL" /> இல் உட்பொதியப்பட்டது</translation>
 <translation id="1272079795634619415">நிறுத்து</translation>
 <translation id="1289742167380433257">உங்கள் டேட்டாவைச் சேமிப்பதற்காக, இந்தப் பக்கத்தின் படங்கள் Googleளால் சுருக்கப்பட்டுள்ளன.</translation>
-<translation id="129382876167171263">இணையதளங்கள் சேமித்த கோப்புகள் இங்கே தோன்றும்</translation>
+<translation id="129382876167171263">இணையதளங்கள் சேமித்த ஃபைல்கள்  இங்கே தோன்றும்</translation>
 <translation id="1317194122196776028">இந்தத் தளத்தை அகற்று</translation>
 <translation id="1364532808393826295"><ph name="APP_NAME" /> - <ph name="NOTIFICATION_MESSAGE" /></translation>
 <translation id="1369915414381695676"><ph name="SITE_NAME" /> தளம் சேர்க்கப்பட்டது</translation>
diff --git a/components/browser_ui/styles/android/java/res/values/styles.xml b/components/browser_ui/styles/android/java/res/values/styles.xml
index 6b904d29..433d1092 100644
--- a/components/browser_ui/styles/android/java/res/values/styles.xml
+++ b/components/browser_ui/styles/android/java/res/values/styles.xml
@@ -91,8 +91,15 @@
         <item name="colorControlNormal">@color/control_normal_color</item>
         <item name="colorControlHighlight">@color/control_highlight_color</item>
         <item name="colorPrimary">@color/default_control_color_active</item>
-        <item name="buttonBarButtonStyle">@style/AlertDialogButtonStyle</item>
         <item name="spinnerStyle">@style/SpinnerStyle</item>
+
+        <!-- Depending on if the support library or framework is inflating the
+             dialog, a different layout is used, that names this style slightly
+             differently. WebView will use the framework version for the
+             foreseeable future, so both of these need to be specified. See
+             https://crbug.com/1234129. -->
+        <item name="android:buttonBarButtonStyle">@style/AlertDialogButtonStyle</item>
+        <item name="buttonBarButtonStyle">@style/AlertDialogButtonStyle</item>
     </style>
 
     <style name="Theme.Chromium.AlertDialog" parent="Base.Theme.Chromium.AlertDialog" />
diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc
index e410df38..274b468 100644
--- a/components/content_settings/renderer/content_settings_agent_impl.cc
+++ b/components/content_settings/renderer/content_settings_agent_impl.cc
@@ -453,11 +453,6 @@
   if (should_allowlist_)
     return true;
 
-  // Allowlist ftp directory listings, as they require JavaScript to function
-  // properly.
-  if (render_frame()->IsFTPDirectoryListing())
-    return true;
-
   const WebDocument& document = render_frame()->GetWebFrame()->GetDocument();
   WebSecurityOrigin origin = document.GetSecurityOrigin();
   WebURL document_url = document.Url();
diff --git a/components/exo/ui_lock_controller.cc b/components/exo/ui_lock_controller.cc
index 3a799d70..195bf97 100644
--- a/components/exo/ui_lock_controller.cc
+++ b/components/exo/ui_lock_controller.cc
@@ -4,6 +4,8 @@
 
 #include "components/exo/ui_lock_controller.h"
 
+#include <memory>
+
 #include "ash/constants/app_types.h"
 #include "ash/constants/ash_features.h"
 #include "ash/wm/window_state.h"
@@ -270,7 +272,8 @@
   }
 
   // Object is owned as a window property.
-  window->SetProperty(kEscHoldNotifierKey, new EscHoldNotifier(window));
+  window->SetProperty(kEscHoldNotifierKey,
+                      std::make_unique<EscHoldNotifier>(window));
 }
 
 views::Widget* UILockController::GetEscNotificationForTesting(
diff --git a/components/full_restore/full_restore_read_handler.cc b/components/full_restore/full_restore_read_handler.cc
index c66e6f1..eb6ac5d 100644
--- a/components/full_restore/full_restore_read_handler.cc
+++ b/components/full_restore/full_restore_read_handler.cc
@@ -326,7 +326,8 @@
     const int32_t index = *window_info->activation_index;
     // kActivationIndexKey is owned, which allows for passing in this raw
     // pointer.
-    property_handler->SetProperty(kActivationIndexKey, new int32_t(index));
+    property_handler->SetProperty(kActivationIndexKey,
+                                  std::make_unique<int32_t>(index));
     // Windows opened from full restore should not be activated. Widgets that
     // are shown are activated by default. Force the widget to not be
     // activatable; the activation will be restored in ash once the window is
diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc
index 1a8f9ee..a66000ca 100644
--- a/components/history/core/browser/history_backend.cc
+++ b/components/history/core/browser/history_backend.cc
@@ -1472,19 +1472,14 @@
       continue;  // DB out of sync and URL doesn't exist, try to recover.
     }
 
+    // The return values for these annotation fetches are not checked for
+    // failures, because visits can lack annotations for legitimate reasons.
+    // In these cases, the annotations members are left unchanged.
+    // TODO(tommycli): Migrate these fields to use absl::optional to make the
+    // optional nature more explicit.
     VisitContextAnnotations context_annotations;
-    if (!db_->GetContextAnnotationsForVisit(visit_row.visit_id,
-                                            &context_annotations)) {
-      // Redirects don't have context annotations. That's not an exceptional
-      // case. We just skip these as normal.
-      continue;
-    }
-
-    // The return value of GetContentAnnotationsForVisit() is not checked for
-    // failures, because the feature flag may be legitimately switched off.
-    // Moreover, some visits may legitimately not have any content annotations.
-    // In those cases, `content_annotations` is left unchanged, and this is
-    // the intended behavior.
+    db_->GetContextAnnotationsForVisit(visit_row.visit_id,
+                                       &context_annotations);
     VisitContentAnnotations content_annotations;
     db_->GetContentAnnotationsForVisit(visit_row.visit_id,
                                        &content_annotations);
diff --git a/components/history/core/browser/history_backend_unittest.cc b/components/history/core/browser/history_backend_unittest.cc
index 086893c..ed2112d7 100644
--- a/components/history/core/browser/history_backend_unittest.cc
+++ b/components/history/core/browser/history_backend_unittest.cc
@@ -3328,44 +3328,54 @@
   EXPECT_EQ(backend_->GetAnnotatedVisits(query_options).size(), 3u);
   EXPECT_EQ(get_annotated_visit_row_count_in_db(), 3u);
 
-  // Annotated visits without an associated visit should not be added.
+  // `GetAnnotatedVisits()` should still succeed to fetch visits that lack
+  // annotations. They just won't have annotations attached.
   backend_->AddContextAnnotationsForVisit(4, {true});
   EXPECT_EQ(add_url_and_visit("http://3.com/"),
             (std::pair<URLID, VisitID>{3, 4}));
-  EXPECT_EQ(backend_->GetAnnotatedVisits(query_options).size(), 3u);
+  EXPECT_EQ(backend_->GetAnnotatedVisits(query_options).size(), 4u);
+  // Context annotations added before the visit itself are discarded.
   EXPECT_EQ(get_annotated_visit_row_count_in_db(), 3u);
 
-  // Annotated visits associated with a removed visit should not be added.
+  // Annotations associated with a removed visit should not be added.
   EXPECT_EQ(add_url_and_visit("http://4.com/"),
             (std::pair<URLID, VisitID>{4, 5}));
   delete_visit(5);
   backend_->AddContextAnnotationsForVisit(5, {true});
-  EXPECT_EQ(backend_->GetAnnotatedVisits(query_options).size(), 3u);
+  EXPECT_EQ(backend_->GetAnnotatedVisits(query_options).size(), 4u);
+  EXPECT_EQ(get_annotated_visit_row_count_in_db(), 3u);
 
   // Verify only the correct annotated visits are retrieved ordered recent
   // visits first.
   auto annotated_visits = backend_->GetAnnotatedVisits(query_options);
-  ASSERT_EQ(annotated_visits.size(), 3u);
-  EXPECT_EQ(annotated_visits[0].url_row.id(), 1);
-  EXPECT_EQ(annotated_visits[0].url_row.url(), "http://1.com/");
-  EXPECT_EQ(annotated_visits[0].visit_row.visit_id, 3);
-  EXPECT_EQ(annotated_visits[0].visit_row.url_id, 1);
+  ASSERT_EQ(annotated_visits.size(), 4u);
+  EXPECT_EQ(annotated_visits[0].url_row.id(), 3);
+  EXPECT_EQ(annotated_visits[0].url_row.url(), "http://3.com/");
+  EXPECT_EQ(annotated_visits[0].visit_row.visit_id, 4);
+  EXPECT_EQ(annotated_visits[0].visit_row.url_id, 3);
   EXPECT_EQ(annotated_visits[0].context_annotations.omnibox_url_copied, false);
   EXPECT_EQ(annotated_visits[0].referring_visit_of_redirect_chain_start, 0);
-  EXPECT_EQ(annotated_visits[1].url_row.id(), 2);
-  EXPECT_EQ(annotated_visits[1].url_row.url(), "http://2.com/");
-  EXPECT_EQ(annotated_visits[1].visit_row.visit_id, 2);
-  EXPECT_EQ(annotated_visits[1].visit_row.url_id, 2);
-  EXPECT_EQ(annotated_visits[1].context_annotations.omnibox_url_copied, true);
+  EXPECT_EQ(annotated_visits[1].url_row.id(), 1);
+  EXPECT_EQ(annotated_visits[1].url_row.url(), "http://1.com/");
+  EXPECT_EQ(annotated_visits[1].visit_row.visit_id, 3);
+  EXPECT_EQ(annotated_visits[1].visit_row.url_id, 1);
+  EXPECT_EQ(annotated_visits[1].context_annotations.omnibox_url_copied, false);
   EXPECT_EQ(annotated_visits[1].referring_visit_of_redirect_chain_start, 0);
-  EXPECT_EQ(annotated_visits[2].url_row.id(), 1);
-  EXPECT_EQ(annotated_visits[2].url_row.url(), "http://1.com/");
-  EXPECT_EQ(annotated_visits[2].visit_row.visit_id, 1);
-  EXPECT_EQ(annotated_visits[2].visit_row.url_id, 1);
+  EXPECT_EQ(annotated_visits[2].url_row.id(), 2);
+  EXPECT_EQ(annotated_visits[2].url_row.url(), "http://2.com/");
+  EXPECT_EQ(annotated_visits[2].visit_row.visit_id, 2);
+  EXPECT_EQ(annotated_visits[2].visit_row.url_id, 2);
   EXPECT_EQ(annotated_visits[2].context_annotations.omnibox_url_copied, true);
   EXPECT_EQ(annotated_visits[2].referring_visit_of_redirect_chain_start, 0);
+  EXPECT_EQ(annotated_visits[3].url_row.id(), 1);
+  EXPECT_EQ(annotated_visits[3].url_row.url(), "http://1.com/");
+  EXPECT_EQ(annotated_visits[3].visit_row.visit_id, 1);
+  EXPECT_EQ(annotated_visits[3].visit_row.url_id, 1);
+  EXPECT_EQ(annotated_visits[3].context_annotations.omnibox_url_copied, true);
+  EXPECT_EQ(annotated_visits[3].referring_visit_of_redirect_chain_start, 0);
 
   delete_url(2);
+  delete_url(3);
   delete_visit(3);
   // Annotated visits should be unfetchable if their associated URL or visit is
   // removed. Notably, because of that, the row count in the DB and the fetched
diff --git a/components/history_clusters/core/history_clusters_service.cc b/components/history_clusters/core/history_clusters_service.cc
index bf0d05c4..074d6bb 100644
--- a/components/history_clusters/core/history_clusters_service.cc
+++ b/components/history_clusters/core/history_clusters_service.cc
@@ -80,6 +80,10 @@
     // If for some reason this fails, fallback to 24 hours ago.
     if (!base::Time::FromLocalExploded(exploded_begin, &options_.begin_time))
       options_.begin_time = end_time - base::TimeDelta::FromDays(1);
+
+    // History Clusters wants a complete navigation graph and internally handles
+    // de-duplication.
+    options_.duplicate_policy = history::QueryOptions::KEEP_ALL_DUPLICATES;
   }
 
   bool RunOnDBThread(history::HistoryBackend* backend,
diff --git a/components/history_clusters/core/history_clusters_service_test_api.h b/components/history_clusters/core/history_clusters_service_test_api.h
index 3e82e502..eb7fff0 100644
--- a/components/history_clusters/core/history_clusters_service_test_api.h
+++ b/components/history_clusters/core/history_clusters_service_test_api.h
@@ -30,8 +30,10 @@
     std::vector<history::AnnotatedVisit> annotated_visits;
 
     base::CancelableTaskTracker tracker;
+    history::QueryOptions options;
+    options.duplicate_policy = history::QueryOptions::KEEP_ALL_DUPLICATES;
     history_service_->GetAnnotatedVisits(
-        history::QueryOptions(),
+        options,
         base::BindLambdaForTesting(
             [&](std::vector<history::AnnotatedVisit> visits) {
               annotated_visits = std::move(visits);
diff --git a/components/history_clusters/core/history_clusters_service_unittest.cc b/components/history_clusters/core/history_clusters_service_unittest.cc
index b115a58..bcc07e6 100644
--- a/components/history_clusters/core/history_clusters_service_unittest.cc
+++ b/components/history_clusters/core/history_clusters_service_unittest.cc
@@ -524,10 +524,6 @@
 
 TEST_F(HistoryClustersServiceTest,
        CompleteVisitContextAnnotationsIfReadyWhenFeatureDisabled) {
-  history_service_->AddPageWithDetails(GURL("https://fake.com"), u"Test 1", 1,
-                                       1, base::Time::Now(), false,
-                                       history::SOURCE_BROWSED);
-
   // When the feature is disabled, the `IncompleteVisitContextAnnotations`
   // should be removed but not added to visits.
   base::test::ScopedFeatureList feature_list;
@@ -536,6 +532,7 @@
           kMemories,
           kPersistContextAnnotationsInHistoryDb,
       });
+
   auto& incomplete_visit_context_annotations =
       history_clusters_service_->GetOrCreateIncompleteVisitContextAnnotations(
           0);
@@ -545,19 +542,12 @@
   history_clusters_service_->CompleteVisitContextAnnotationsIfReady(0);
   EXPECT_FALSE(
       history_clusters_service_->HasIncompleteVisitContextAnnotations(0));
-  EXPECT_TRUE(history_clusters_service_test_api_->GetVisits().empty());
 }
 
 TEST_F(HistoryClustersServiceTest,
        CompleteVisitContextAnnotationsIfReadyWhenFeatureEnabled) {
-  history_service_->AddPageWithDetails(GURL("https://fake.com"), u"Test 1", 1,
-                                       1, base::Time::Now(), false,
-                                       history::SOURCE_BROWSED);
-
   // When the feature is enabled, the `IncompleteVisitContextAnnotations`
   // should be removed and added to visits.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(kMemories);
   auto& incomplete_visit_context_annotations =
       history_clusters_service_->GetOrCreateIncompleteVisitContextAnnotations(
           0);
@@ -567,7 +557,6 @@
   history_clusters_service_->CompleteVisitContextAnnotationsIfReady(0);
   EXPECT_FALSE(
       history_clusters_service_->HasIncompleteVisitContextAnnotations(0));
-  EXPECT_EQ(history_clusters_service_test_api_->GetVisits().size(), 1u);
 }
 
 TEST_F(HistoryClustersServiceTest, DoesQueryMatchAnyCluster) {
diff --git a/components/optimization_guide/proto/models.proto b/components/optimization_guide/proto/models.proto
index 9039103..e6a7db7 100644
--- a/components/optimization_guide/proto/models.proto
+++ b/components/optimization_guide/proto/models.proto
@@ -271,9 +271,6 @@
   // A model using only operations that are supported by TensorflowLite 2.3.0
   // with updated FULLY_CONNECTED and BATCH_MUL versions for quantized models.
   MODEL_TYPE_TFLITE_2_3_0_1 = 3;
-  // TensorflowLite version 2.4.2, and a bit more up to internal rev number
-  // 381280669.
-  MODEL_TYPE_TFLITE_2_4 = 4;
 }
 
 // A set of model features and the host that it applies to.
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
index 11d49242..1cde5a0 100644
--- a/components/password_manager/core/browser/BUILD.gn
+++ b/components/password_manager/core/browser/BUILD.gn
@@ -226,6 +226,8 @@
     "store_metrics_reporter.h",
     "sync/password_model_type_controller.cc",
     "sync/password_model_type_controller.h",
+    "sync/password_proto_utils.cc",
+    "sync/password_proto_utils.h",
     "sync/password_sync_bridge.cc",
     "sync/password_sync_bridge.h",
     "sync_credentials_filter.cc",
@@ -682,6 +684,7 @@
     "sql_table_builder_unittest.cc",
     "statistics_table_unittest.cc",
     "store_metrics_reporter_unittest.cc",
+    "sync/password_proto_utils_unittest.cc",
     "sync/password_sync_bridge_unittest.cc",
     "sync_credentials_filter_unittest.cc",
     "ui/bulk_leak_check_service_adapter_unittest.cc",
diff --git a/components/password_manager/core/browser/sync/password_proto_utils.cc b/components/password_manager/core/browser/sync/password_proto_utils.cc
new file mode 100644
index 0000000..9932f94
--- /dev/null
+++ b/components/password_manager/core/browser/sync/password_proto_utils.cc
@@ -0,0 +1,186 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/password_manager/core/browser/sync/password_proto_utils.h"
+
+#include "base/containers/flat_map.h"
+#include "base/strings/utf_string_conversions.h"
+#include "components/password_manager/core/browser/password_form.h"
+#include "components/sync/protocol/list_passwords_result.pb.h"
+#include "components/sync/protocol/password_specifics.pb.h"
+#include "components/sync/protocol/password_with_local_data.pb.h"
+
+namespace password_manager {
+
+namespace {
+
+base::Time ConvertToBaseTime(uint64_t time) {
+  return base::Time::FromDeltaSinceWindowsEpoch(
+      // Use FromDeltaSinceWindowsEpoch because create_time_us has
+      // always used the Windows epoch.
+      base::TimeDelta::FromMicroseconds(time));
+}
+
+}  // namespace
+
+sync_pb::PasswordSpecificsData_PasswordIssues PasswordIssuesMapToProto(
+    const base::flat_map<InsecureType, InsecurityMetadata>&
+        form_password_issues) {
+  sync_pb::PasswordSpecificsData::PasswordIssues password_issues;
+  for (const auto& form_issue : form_password_issues) {
+    sync_pb::PasswordSpecificsData::PasswordIssues::PasswordIssue issue;
+    issue.set_date_first_detection_microseconds(
+        form_issue.second.create_time.ToDeltaSinceWindowsEpoch()
+            .InMicroseconds());
+    issue.set_is_muted(form_issue.second.is_muted.value());
+    switch (form_issue.first) {
+      case InsecureType::kLeaked:
+        DCHECK(!password_issues.has_leaked_password_issue());
+        *password_issues.mutable_leaked_password_issue() = std::move(issue);
+        break;
+      case InsecureType::kPhished:
+        DCHECK(!password_issues.has_phished_password_issue());
+        *password_issues.mutable_phished_password_issue() = std::move(issue);
+        break;
+      case InsecureType::kWeak:
+        DCHECK(!password_issues.has_weak_password_issue());
+        *password_issues.mutable_weak_password_issue() = std::move(issue);
+        break;
+      case InsecureType::kReused:
+        DCHECK(!password_issues.has_reused_password_issue());
+        *password_issues.mutable_reused_password_issue() = std::move(issue);
+        break;
+    }
+  }
+  return password_issues;
+}
+
+base::flat_map<InsecureType, InsecurityMetadata> PasswordIssuesMapFromProto(
+    const sync_pb::PasswordSpecificsData& password_data) {
+  base::flat_map<InsecureType, InsecurityMetadata> form_issues;
+  const auto& specifics_issues = password_data.password_issues();
+  if (specifics_issues.has_leaked_password_issue()) {
+    const auto& issue = specifics_issues.leaked_password_issue();
+    form_issues[InsecureType::kLeaked] = InsecurityMetadata(
+        ConvertToBaseTime(issue.date_first_detection_microseconds()),
+        IsMuted(issue.is_muted()));
+  }
+  if (specifics_issues.has_reused_password_issue()) {
+    const auto& issue = specifics_issues.reused_password_issue();
+    form_issues[InsecureType::kReused] = InsecurityMetadata(
+        ConvertToBaseTime(issue.date_first_detection_microseconds()),
+        IsMuted(issue.is_muted()));
+  }
+  if (specifics_issues.has_weak_password_issue()) {
+    const auto& issue = specifics_issues.weak_password_issue();
+    form_issues[InsecureType::kWeak] = InsecurityMetadata(
+        ConvertToBaseTime(issue.date_first_detection_microseconds()),
+        IsMuted(issue.is_muted()));
+  }
+  if (specifics_issues.has_phished_password_issue()) {
+    const auto& issue = specifics_issues.phished_password_issue();
+    form_issues[InsecureType::kPhished] = InsecurityMetadata(
+        ConvertToBaseTime(issue.date_first_detection_microseconds()),
+        IsMuted(issue.is_muted()));
+  }
+  return form_issues;
+}
+
+sync_pb::PasswordSpecifics SpecificsFromPassword(
+    const PasswordForm& password_form) {
+  sync_pb::PasswordSpecifics specifics;
+  sync_pb::PasswordSpecificsData* password_data =
+      specifics.mutable_client_only_encrypted_data();
+  password_data->set_scheme(static_cast<int>(password_form.scheme));
+  password_data->set_signon_realm(password_form.signon_realm);
+  password_data->set_origin(password_form.url.spec());
+  password_data->set_action(password_form.action.spec());
+  password_data->set_username_element(
+      base::UTF16ToUTF8(password_form.username_element));
+  password_data->set_password_element(
+      base::UTF16ToUTF8(password_form.password_element));
+  password_data->set_username_value(
+      base::UTF16ToUTF8(password_form.username_value));
+  password_data->set_password_value(
+      base::UTF16ToUTF8(password_form.password_value));
+  password_data->set_date_last_used(
+      password_form.date_last_used.ToDeltaSinceWindowsEpoch().InMicroseconds());
+  password_data->set_date_password_modified_windows_epoch_micros(
+      password_form.date_password_modified.ToDeltaSinceWindowsEpoch()
+          .InMicroseconds());
+  password_data->set_date_created(
+      password_form.date_created.ToDeltaSinceWindowsEpoch().InMicroseconds());
+  password_data->set_blacklisted(password_form.blocked_by_user);
+  password_data->set_type(static_cast<int>(password_form.type));
+  password_data->set_times_used(password_form.times_used);
+  password_data->set_display_name(
+      base::UTF16ToUTF8(password_form.display_name));
+  password_data->set_avatar_url(password_form.icon_url.spec());
+  password_data->set_federation_url(
+      password_form.federation_origin.opaque()
+          ? std::string()
+          : password_form.federation_origin.Serialize());
+  *password_data->mutable_password_issues() =
+      PasswordIssuesMapToProto(password_form.password_issues);
+
+  return specifics;
+}
+
+PasswordForm PasswordFromSpecifics(
+    const sync_pb::PasswordSpecificsData& password_data) {
+  PasswordForm password;
+  password.scheme = static_cast<PasswordForm::Scheme>(password_data.scheme());
+  password.signon_realm = password_data.signon_realm();
+  password.url = GURL(password_data.origin());
+  password.action = GURL(password_data.action());
+  password.username_element =
+      base::UTF8ToUTF16(password_data.username_element());
+  password.password_element =
+      base::UTF8ToUTF16(password_data.password_element());
+  password.username_value = base::UTF8ToUTF16(password_data.username_value());
+  password.password_value = base::UTF8ToUTF16(password_data.password_value());
+  if (password_data.has_date_last_used()) {
+    password.date_last_used = ConvertToBaseTime(password_data.date_last_used());
+  } else if (password_data.preferred()) {
+    // For legacy passwords that don't have the |date_last_used| field set, we
+    // should it similar to the logic in login database migration.
+    password.date_last_used =
+        base::Time::FromDeltaSinceWindowsEpoch(base::TimeDelta::FromDays(1));
+  }
+
+  password.date_password_modified = ConvertToBaseTime(
+      password_data.has_date_password_modified_windows_epoch_micros()
+          ? password_data.date_password_modified_windows_epoch_micros()
+          : password_data.date_created());
+  password.date_created = ConvertToBaseTime(password_data.date_created());
+  password.blocked_by_user = password_data.blacklisted();
+  password.type = static_cast<PasswordForm::Type>(password_data.type());
+  password.times_used = password_data.times_used();
+  password.display_name = base::UTF8ToUTF16(password_data.display_name());
+  password.icon_url = GURL(password_data.avatar_url());
+  password.federation_origin =
+      url::Origin::Create(GURL(password_data.federation_url()));
+  password.password_issues = PasswordIssuesMapFromProto(password_data);
+
+  return password;
+}
+
+PasswordForm PasswordFromProtoWithLocalData(
+    const sync_pb::PasswordWithLocalData& password) {
+  PasswordForm form = PasswordFromSpecifics(password.password_specifics_data());
+  // TODO(crbug.com/1229654): Consider password.local_chrome_data().
+  return form;
+}
+
+std::vector<PasswordForm> PasswordVectorFromListResult(
+    const sync_pb::ListPasswordsResult& list_result) {
+  std::vector<PasswordForm> forms;
+  for (const sync_pb::PasswordWithLocalData& password :
+       list_result.password_data()) {
+    forms.push_back(PasswordFromProtoWithLocalData(password));
+  }
+  return forms;
+}
+
+}  // namespace password_manager
diff --git a/components/password_manager/core/browser/sync/password_proto_utils.h b/components/password_manager/core/browser/sync/password_proto_utils.h
new file mode 100644
index 0000000..590f27b
--- /dev/null
+++ b/components/password_manager/core/browser/sync/password_proto_utils.h
@@ -0,0 +1,54 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_SYNC_PASSWORD_PROTO_UTILS_H_
+#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_SYNC_PASSWORD_PROTO_UTILS_H_
+
+#include <vector>
+
+#include "base/containers/flat_map.h"
+#include "components/password_manager/core/browser/password_form.h"
+
+namespace sync_pb {
+class PasswordSpecifics;
+class PasswordSpecificsData;
+class PasswordSpecificsData_PasswordIssues;
+class PasswordWithLocalData;
+class ListPasswordsResult;
+}  // namespace sync_pb
+
+namespace password_manager {
+
+// Converts a map of `form_password_issues` into the format required by the
+// proto.
+sync_pb::PasswordSpecificsData_PasswordIssues PasswordIssuesMapToProto(
+    const base::flat_map<InsecureType, InsecurityMetadata>&
+        form_password_issues);
+
+// Builds a map of password issues from the proto data. The map is required
+// for storing issues in a `PasswordForm`.
+base::flat_map<InsecureType, InsecurityMetadata> PasswordIssuesMapFromProto(
+    const sync_pb::PasswordSpecificsData& password_data);
+
+// Returns sync_pb::PasswordSpecifics based on given `password_form`.
+sync_pb::PasswordSpecifics SpecificsFromPassword(
+    const PasswordForm& password_form);
+
+// Returns a partial PasswordForm for a given set of `password_data`. In
+// contrast to `PasswordFromProtoWithLocalData`, this method resets local data.
+PasswordForm PasswordFromSpecifics(
+    const sync_pb::PasswordSpecificsData& password_data);
+
+// Returns a PasswordForm for a given `password` with local, chrome-specific
+// data.
+PasswordForm PasswordFromProtoWithLocalData(
+    const sync_pb::PasswordWithLocalData& password);
+
+// Converts the `list_result` to PasswordForms and returns them in a vector.
+std::vector<PasswordForm> PasswordVectorFromListResult(
+    const sync_pb::ListPasswordsResult& list_result);
+
+}  // namespace password_manager
+
+#endif  // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_SYNC_PASSWORD_PROTO_UTILS_H_
diff --git a/components/password_manager/core/browser/sync/password_proto_utils_unittest.cc b/components/password_manager/core/browser/sync/password_proto_utils_unittest.cc
new file mode 100644
index 0000000..ae1f64fdf
--- /dev/null
+++ b/components/password_manager/core/browser/sync/password_proto_utils_unittest.cc
@@ -0,0 +1,145 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/password_manager/core/browser/sync/password_proto_utils.h"
+
+#include "components/password_manager/core/browser/password_form.h"
+#include "components/sync/protocol/list_passwords_result.pb.h"
+#include "components/sync/protocol/password_specifics.pb.h"
+#include "components/sync/protocol/password_with_local_data.pb.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace password_manager {
+
+namespace {
+
+using testing::ElementsAre;
+using testing::Eq;
+
+constexpr time_t kIssuesCreationTime = 1337;
+
+sync_pb::PasswordSpecificsData_PasswordIssues CreateSpecificsDataIssues(
+    const std::vector<InsecureType>& issue_types) {
+  sync_pb::PasswordSpecificsData_PasswordIssues remote_issues;
+  for (auto type : issue_types) {
+    sync_pb::PasswordSpecificsData_PasswordIssues_PasswordIssue remote_issue;
+    remote_issue.set_date_first_detection_microseconds(
+        base::Time::FromTimeT(kIssuesCreationTime)
+            .ToDeltaSinceWindowsEpoch()
+            .InMicroseconds());
+    remote_issue.set_is_muted(false);
+    switch (type) {
+      case InsecureType::kLeaked:
+        *remote_issues.mutable_leaked_password_issue() = remote_issue;
+        break;
+      case InsecureType::kPhished:
+        *remote_issues.mutable_phished_password_issue() = remote_issue;
+        break;
+      case InsecureType::kWeak:
+        *remote_issues.mutable_weak_password_issue() = remote_issue;
+        break;
+      case InsecureType::kReused:
+        *remote_issues.mutable_reused_password_issue() = remote_issue;
+        break;
+    }
+  }
+  return remote_issues;
+}
+
+sync_pb::PasswordSpecificsData CreateSpecificsData(
+    const std::string& origin,
+    const std::string& username_element,
+    const std::string& username_value,
+    const std::string& password_element,
+    const std::string& signon_realm,
+    const std::vector<InsecureType>& issue_types) {
+  sync_pb::PasswordSpecificsData password_specifics;
+  password_specifics.set_origin(origin);
+  password_specifics.set_username_element(username_element);
+  password_specifics.set_username_value(username_value);
+  password_specifics.set_password_element(password_element);
+  password_specifics.set_signon_realm(signon_realm);
+  password_specifics.set_scheme(static_cast<int>(PasswordForm::Scheme::kHtml));
+  password_specifics.set_action(GURL(origin).spec());
+  password_specifics.set_password_value("D3f4ultP4$$w0rd");
+  password_specifics.set_date_last_used(kIssuesCreationTime);
+  password_specifics.set_date_created(kIssuesCreationTime);
+  password_specifics.set_date_password_modified_windows_epoch_micros(
+      kIssuesCreationTime);
+  password_specifics.set_blacklisted(false);
+  password_specifics.set_type(static_cast<int>(PasswordForm::Type::kManual));
+  password_specifics.set_times_used(1);
+  password_specifics.set_display_name("display_name");
+  password_specifics.set_avatar_url(GURL(origin).spec());
+  password_specifics.set_federation_url(std::string());
+  *password_specifics.mutable_password_issues() =
+      CreateSpecificsDataIssues(issue_types);
+  return password_specifics;
+}
+
+}  // namespace
+
+TEST(PasswordProtoUtilsTest, ConvertIssueProtoToMapAndBack) {
+  sync_pb::PasswordSpecificsData specifics_data =
+      CreateSpecificsData("http://www.origin.com/", "username_element",
+                          "username_value", "password_element", "signon_realm",
+                          {InsecureType::kLeaked, InsecureType::kPhished,
+                           InsecureType::kReused, InsecureType::kWeak});
+
+  EXPECT_THAT(
+      PasswordIssuesMapToProto(PasswordIssuesMapFromProto(specifics_data))
+          .SerializeAsString(),
+      Eq(specifics_data.password_issues().SerializeAsString()));
+}
+
+TEST(PasswordProtoUtilsTest, ConvertSpecificsToFormAndBack) {
+  sync_pb::PasswordSpecifics specifics;
+  *specifics.mutable_client_only_encrypted_data() =
+      CreateSpecificsData("http://www.origin.com/", "username_element",
+                          "username_value", "password_element", "signon_realm",
+                          /*issue_types=*/{});
+
+  EXPECT_THAT(SpecificsFromPassword(
+                  PasswordFromSpecifics(specifics.client_only_encrypted_data()))
+                  .SerializeAsString(),
+              Eq(specifics.SerializeAsString()));
+}
+
+TEST(PasswordProtoUtilsTest, ConvertPasswordWithLocalDataToFullPasswordForm) {
+  sync_pb::PasswordWithLocalData password_data;
+  *password_data.mutable_password_specifics_data() = CreateSpecificsData(
+      "http://www.origin.com/", "username_element", "username_value",
+      "password_element", "signon_realm", {InsecureType::kLeaked});
+
+  // TODO(crbug.com/1229654): Add and test password_data.local_chrome_data().
+
+  PasswordForm form = PasswordFromProtoWithLocalData(password_data);
+  EXPECT_THAT(form.url, Eq(GURL("http://www.origin.com/")));
+  EXPECT_THAT(form.username_element, Eq(u"username_element"));
+  EXPECT_THAT(form.username_value, Eq(u"username_value"));
+  EXPECT_THAT(form.password_element, Eq(u"password_element"));
+  EXPECT_THAT(form.signon_realm, Eq("signon_realm"));
+}
+
+TEST(PasswordProtoUtilsTest, ConvertListResultToFormVector) {
+  sync_pb::ListPasswordsResult list_result;
+  sync_pb::PasswordWithLocalData password1;
+  *password1.mutable_password_specifics_data() =
+      CreateSpecificsData("http://1.origin.com/", "username_1", "username_1",
+                          "password_1", "signon_1", {InsecureType::kLeaked});
+  sync_pb::PasswordWithLocalData password2;
+  *password2.mutable_password_specifics_data() =
+      CreateSpecificsData("http://2.origin.com/", "username_2", "username_2",
+                          "password_2", "signon_2", {InsecureType::kLeaked});
+  *list_result.add_password_data() = password1;
+  *list_result.add_password_data() = password2;
+
+  std::vector<PasswordForm> forms = PasswordVectorFromListResult(list_result);
+
+  EXPECT_THAT(forms, ElementsAre(PasswordFromProtoWithLocalData(password1),
+                                 PasswordFromProtoWithLocalData(password2)));
+}
+
+}  // namespace password_manager
diff --git a/components/password_manager/core/browser/sync/password_sync_bridge.cc b/components/password_manager/core/browser/sync/password_sync_bridge.cc
index 36f7f4b0..b73b536 100644
--- a/components/password_manager/core/browser/sync/password_sync_bridge.cc
+++ b/components/password_manager/core/browser/sync/password_sync_bridge.cc
@@ -20,6 +20,7 @@
 #include "components/password_manager/core/browser/password_form.h"
 #include "components/password_manager/core/browser/password_manager_metrics_util.h"
 #include "components/password_manager/core/browser/password_store_change.h"
+#include "components/password_manager/core/browser/sync/password_proto_utils.h"
 #include "components/password_manager/core/common/password_manager_features.h"
 #include "components/sync/model/in_memory_metadata_change_list.h"
 #include "components/sync/model/metadata_batch.h"
@@ -66,73 +67,6 @@
       base::TimeDelta::FromMicroseconds(time));
 }
 
-// Converts a map of `form_password_issues` into the format required by the
-// proto.
-sync_pb::PasswordSpecificsData::PasswordIssues PasswordIssuesMapToProto(
-    const base::flat_map<InsecureType, InsecurityMetadata>&
-        form_password_issues) {
-  sync_pb::PasswordSpecificsData::PasswordIssues password_issues;
-  for (const auto& form_issue : form_password_issues) {
-    sync_pb::PasswordSpecificsData::PasswordIssues::PasswordIssue issue;
-    issue.set_date_first_detection_microseconds(
-        form_issue.second.create_time.ToDeltaSinceWindowsEpoch()
-            .InMicroseconds());
-    issue.set_is_muted(form_issue.second.is_muted.value());
-    switch (form_issue.first) {
-      case InsecureType::kLeaked:
-        DCHECK(!password_issues.has_leaked_password_issue());
-        *password_issues.mutable_leaked_password_issue() = std::move(issue);
-        break;
-      case InsecureType::kPhished:
-        DCHECK(!password_issues.has_phished_password_issue());
-        *password_issues.mutable_phished_password_issue() = std::move(issue);
-        break;
-      case InsecureType::kWeak:
-        DCHECK(!password_issues.has_weak_password_issue());
-        *password_issues.mutable_weak_password_issue() = std::move(issue);
-        break;
-      case InsecureType::kReused:
-        DCHECK(!password_issues.has_reused_password_issue());
-        *password_issues.mutable_reused_password_issue() = std::move(issue);
-        break;
-    }
-  }
-  return password_issues;
-}
-
-// Builds a map of password issues from the proto data. The map is required
-// for storing issues in a `PasswordForm`.
-base::flat_map<InsecureType, InsecurityMetadata> PasswordIssuesMapFromProto(
-    const sync_pb::PasswordSpecificsData& password_data) {
-  base::flat_map<InsecureType, InsecurityMetadata> form_issues;
-  const auto& specifics_issues = password_data.password_issues();
-  if (specifics_issues.has_leaked_password_issue()) {
-    const auto& issue = specifics_issues.leaked_password_issue();
-    form_issues[InsecureType::kLeaked] = InsecurityMetadata(
-        ConvertToBaseTime(issue.date_first_detection_microseconds()),
-        IsMuted(issue.is_muted()));
-  }
-  if (specifics_issues.has_reused_password_issue()) {
-    const auto& issue = specifics_issues.reused_password_issue();
-    form_issues[InsecureType::kReused] = InsecurityMetadata(
-        ConvertToBaseTime(issue.date_first_detection_microseconds()),
-        IsMuted(issue.is_muted()));
-  }
-  if (specifics_issues.has_weak_password_issue()) {
-    const auto& issue = specifics_issues.weak_password_issue();
-    form_issues[InsecureType::kWeak] = InsecurityMetadata(
-        ConvertToBaseTime(issue.date_first_detection_microseconds()),
-        IsMuted(issue.is_muted()));
-  }
-  if (specifics_issues.has_phished_password_issue()) {
-    const auto& issue = specifics_issues.phished_password_issue();
-    form_issues[InsecureType::kPhished] = InsecurityMetadata(
-        ConvertToBaseTime(issue.date_first_detection_microseconds()),
-        IsMuted(issue.is_muted()));
-  }
-  return form_issues;
-}
-
 PasswordForm PasswordFromEntityChange(const syncer::EntityChange& entity_change,
                                       base::Time sync_time) {
   DCHECK(entity_change.data().specifics.has_password());
@@ -282,46 +216,6 @@
 
 }  // namespace
 
-sync_pb::PasswordSpecifics SpecificsFromPassword(
-    const PasswordForm& password_form) {
-  sync_pb::PasswordSpecifics specifics;
-  sync_pb::PasswordSpecificsData* password_data =
-      specifics.mutable_client_only_encrypted_data();
-  password_data->set_scheme(static_cast<int>(password_form.scheme));
-  password_data->set_signon_realm(password_form.signon_realm);
-  password_data->set_origin(password_form.url.spec());
-  password_data->set_action(password_form.action.spec());
-  password_data->set_username_element(
-      base::UTF16ToUTF8(password_form.username_element));
-  password_data->set_password_element(
-      base::UTF16ToUTF8(password_form.password_element));
-  password_data->set_username_value(
-      base::UTF16ToUTF8(password_form.username_value));
-  password_data->set_password_value(
-      base::UTF16ToUTF8(password_form.password_value));
-  password_data->set_date_last_used(
-      password_form.date_last_used.ToDeltaSinceWindowsEpoch().InMicroseconds());
-  password_data->set_date_password_modified_windows_epoch_micros(
-      password_form.date_password_modified.ToDeltaSinceWindowsEpoch()
-          .InMicroseconds());
-  password_data->set_date_created(
-      password_form.date_created.ToDeltaSinceWindowsEpoch().InMicroseconds());
-  password_data->set_blacklisted(password_form.blocked_by_user);
-  password_data->set_type(static_cast<int>(password_form.type));
-  password_data->set_times_used(password_form.times_used);
-  password_data->set_display_name(
-      base::UTF16ToUTF8(password_form.display_name));
-  password_data->set_avatar_url(password_form.icon_url.spec());
-  password_data->set_federation_url(
-      password_form.federation_origin.opaque()
-          ? std::string()
-          : password_form.federation_origin.Serialize());
-  *password_data->mutable_password_issues() =
-      PasswordIssuesMapToProto(password_form.password_issues);
-
-  return specifics;
-}
-
 PasswordSyncBridge::PasswordSyncBridge(
     std::unique_ptr<syncer::ModelTypeChangeProcessor> change_processor,
     PasswordStoreSync* password_store_sync,
diff --git a/components/password_manager/core/browser/sync/password_sync_bridge.h b/components/password_manager/core/browser/sync/password_sync_bridge.h
index ea063502..ec174eb 100644
--- a/components/password_manager/core/browser/sync/password_sync_bridge.h
+++ b/components/password_manager/core/browser/sync/password_sync_bridge.h
@@ -21,10 +21,6 @@
 
 class PasswordStoreSync;
 
-// Returns sync_pb::PasswordSpecifics based on given |password_form|.
-sync_pb::PasswordSpecifics SpecificsFromPassword(
-    const PasswordForm& password_form);
-
 // Sync bridge implementation for PASSWORDS model type. Takes care of
 // propagating local passwords to other clients and vice versa.
 //
diff --git a/components/payments/content/payment_request.cc b/components/payments/content/payment_request.cc
index 33a7f43..ff42617 100644
--- a/components/payments/content/payment_request.cc
+++ b/components/payments/content/payment_request.cc
@@ -75,8 +75,8 @@
 PaymentRequest::PaymentRequest(
     content::RenderFrameHost* render_frame_host,
     std::unique_ptr<ContentPaymentRequestDelegate> delegate,
-    PaymentRequestWebContentsManager* manager,
-    PaymentRequestDisplayManager* display_manager,
+    base::WeakPtr<PaymentRequestWebContentsManager> manager,
+    base::WeakPtr<PaymentRequestDisplayManager> display_manager,
     mojo::PendingReceiver<mojom::PaymentRequest> receiver,
     base::WeakPtr<ObserverForTest> observer_for_testing)
     : initiator_frame_routing_id_(content::GlobalRenderFrameHostId(
@@ -292,7 +292,9 @@
   journey_logger_.SetTriggerTime();
 
   // A tab can display only one PaymentRequest UI at a time.
-  display_handle_ = display_manager_->TryShow(delegate_->GetContentWeakPtr());
+  if (display_manager_)
+    display_handle_ = display_manager_->TryShow(delegate_->GetContentWeakPtr());
+
   if (!display_handle_) {
     log_.Error(errors::kAnotherUiShowing);
     DCHECK(!has_recorded_completion_);
@@ -816,7 +818,9 @@
   payment_handler_host_->Disconnect();
   if (observer_for_testing_)
     observer_for_testing_->OnConnectionTerminated();
-  manager_->DestroyRequest(weak_ptr_factory_.GetWeakPtr());
+
+  if (manager_)
+    manager_->DestroyRequest(weak_ptr_factory_.GetWeakPtr());
 }
 
 void PaymentRequest::DidStartMainFrameNavigationToDifferentDocument(
@@ -854,7 +858,9 @@
     observer_for_testing_->OnConnectionTerminated();
 
   RecordFirstAbortReason(JourneyLogger::ABORT_REASON_MOJO_CONNECTION_ERROR);
-  manager_->DestroyRequest(weak_ptr_factory_.GetWeakPtr());
+
+  if (manager_)
+    manager_->DestroyRequest(weak_ptr_factory_.GetWeakPtr());
 }
 
 void PaymentRequest::Pay() {
diff --git a/components/payments/content/payment_request.h b/components/payments/content/payment_request.h
index 2f2b0500..75b2fda 100644
--- a/components/payments/content/payment_request.h
+++ b/components/payments/content/payment_request.h
@@ -67,8 +67,8 @@
 
   PaymentRequest(content::RenderFrameHost* render_frame_host,
                  std::unique_ptr<ContentPaymentRequestDelegate> delegate,
-                 PaymentRequestWebContentsManager* manager,
-                 PaymentRequestDisplayManager* display_manager,
+                 base::WeakPtr<PaymentRequestWebContentsManager> manager,
+                 base::WeakPtr<PaymentRequestDisplayManager> display_manager,
                  mojo::PendingReceiver<mojom::PaymentRequest> receiver,
                  base::WeakPtr<ObserverForTest> observer_for_testing);
   ~PaymentRequest() override;
@@ -216,8 +216,8 @@
   DeveloperConsoleLogger log_;
   std::unique_ptr<ContentPaymentRequestDelegate> delegate_;
   // |manager_| owns this PaymentRequest.
-  PaymentRequestWebContentsManager* manager_;
-  PaymentRequestDisplayManager* display_manager_;
+  base::WeakPtr<PaymentRequestWebContentsManager> manager_;
+  base::WeakPtr<PaymentRequestDisplayManager> display_manager_;
   std::unique_ptr<PaymentRequestDisplayManager::DisplayHandle> display_handle_;
   mojo::Receiver<mojom::PaymentRequest> receiver_{this};
   mojo::Remote<mojom::PaymentRequestClient> client_;
diff --git a/components/payments/content/payment_request_display_manager.cc b/components/payments/content/payment_request_display_manager.cc
index e7b4749..d7f9b8c1 100644
--- a/components/payments/content/payment_request_display_manager.cc
+++ b/components/payments/content/payment_request_display_manager.cc
@@ -12,14 +12,16 @@
 class PaymentRequest;
 
 PaymentRequestDisplayManager::DisplayHandle::DisplayHandle(
-    PaymentRequestDisplayManager* display_manager,
+    base::WeakPtr<PaymentRequestDisplayManager> display_manager,
     base::WeakPtr<ContentPaymentRequestDelegate> delegate)
     : display_manager_(display_manager), delegate_(delegate) {
-  display_manager_->set_current_handle(this);
+  if (display_manager_)
+    display_manager_->set_current_handle(GetWeakPtr());
 }
 
 PaymentRequestDisplayManager::DisplayHandle::~DisplayHandle() {
-  display_manager_->set_current_handle(nullptr);
+  if (display_manager_)
+    display_manager_->set_current_handle(nullptr);
 }
 
 void PaymentRequestDisplayManager::DisplayHandle::Show(
@@ -42,6 +44,11 @@
     delegate_->EmbedPaymentHandlerWindow(url, std::move(callback));
 }
 
+base::WeakPtr<PaymentRequestDisplayManager::DisplayHandle>
+PaymentRequestDisplayManager::DisplayHandle::GetWeakPtr() {
+  return weak_ptr_factory_.GetWeakPtr();
+}
+
 PaymentRequestDisplayManager::PaymentRequestDisplayManager()
     : current_handle_(nullptr) {}
 
@@ -53,7 +60,7 @@
   std::unique_ptr<PaymentRequestDisplayManager::DisplayHandle> handle;
   if (!current_handle_ && delegate) {
     handle = std::make_unique<PaymentRequestDisplayManager::DisplayHandle>(
-        this, delegate);
+        GetWeakPtr(), delegate);
   }
 
   return handle;
@@ -69,4 +76,9 @@
   }
 }
 
+base::WeakPtr<PaymentRequestDisplayManager>
+PaymentRequestDisplayManager::GetWeakPtr() {
+  return weak_ptr_factory_.GetWeakPtr();
+}
+
 }  // namespace payments
diff --git a/components/payments/content/payment_request_display_manager.h b/components/payments/content/payment_request_display_manager.h
index 6951e7c..4ee5320d 100644
--- a/components/payments/content/payment_request_display_manager.h
+++ b/components/payments/content/payment_request_display_manager.h
@@ -32,7 +32,7 @@
  public:
   class DisplayHandle {
    public:
-    DisplayHandle(PaymentRequestDisplayManager* display_manager,
+    DisplayHandle(base::WeakPtr<PaymentRequestDisplayManager> display_manager,
                   base::WeakPtr<ContentPaymentRequestDelegate> delegate);
     ~DisplayHandle();
     void Show(base::WeakPtr<PaymentRequest> request);
@@ -46,10 +46,14 @@
     // Returns true after Show() was called.
     bool was_shown() const { return was_shown_; }
 
+    base::WeakPtr<DisplayHandle> GetWeakPtr();
+
    private:
-    PaymentRequestDisplayManager* display_manager_;
+    base::WeakPtr<PaymentRequestDisplayManager> display_manager_;
     base::WeakPtr<ContentPaymentRequestDelegate> delegate_;
     bool was_shown_ = false;
+
+    base::WeakPtrFactory<DisplayHandle> weak_ptr_factory_{this};
     DISALLOW_COPY_AND_ASSIGN(DisplayHandle);
   };
 
@@ -66,11 +70,16 @@
   void ShowPaymentHandlerWindow(const GURL& url,
                                 PaymentHandlerOpenWindowCallback callback);
 
+  base::WeakPtr<PaymentRequestDisplayManager> GetWeakPtr();
+
  private:
-  void set_current_handle(DisplayHandle* handle) { current_handle_ = handle; }
+  void set_current_handle(base::WeakPtr<DisplayHandle> handle) {
+    current_handle_ = handle;
+  }
 
-  DisplayHandle* current_handle_;
+  base::WeakPtr<DisplayHandle> current_handle_;
 
+  base::WeakPtrFactory<PaymentRequestDisplayManager> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(PaymentRequestDisplayManager);
 };
 
diff --git a/components/payments/content/payment_request_web_contents_manager.cc b/components/payments/content/payment_request_web_contents_manager.cc
index a254b26..2846d5f 100644
--- a/components/payments/content/payment_request_web_contents_manager.cc
+++ b/components/payments/content/payment_request_web_contents_manager.cc
@@ -33,8 +33,9 @@
     mojo::PendingReceiver<payments::mojom::PaymentRequest> receiver,
     base::WeakPtr<PaymentRequest::ObserverForTest> observer_for_testing) {
   auto new_request = std::make_unique<PaymentRequest>(
-      render_frame_host, std::move(delegate), /*manager=*/this,
-      delegate->GetDisplayManager(), std::move(receiver), observer_for_testing);
+      render_frame_host, std::move(delegate), /*manager=*/GetWeakPtr(),
+      delegate->GetDisplayManager()->GetWeakPtr(), std::move(receiver),
+      observer_for_testing);
   PaymentRequest* request_ptr = new_request.get();
   payment_requests_.insert(std::make_pair(request_ptr, std::move(new_request)));
 }
@@ -75,6 +76,11 @@
   }
 }
 
+base::WeakPtr<PaymentRequestWebContentsManager>
+PaymentRequestWebContentsManager::GetWeakPtr() {
+  return weak_ptr_factory_.GetWeakPtr();
+}
+
 void PaymentRequestWebContentsManager::DestroyRequest(
     base::WeakPtr<PaymentRequest> request) {
   if (!request)
diff --git a/components/payments/content/payment_request_web_contents_manager.h b/components/payments/content/payment_request_web_contents_manager.h
index 3e8769ee..10eef6c 100644
--- a/components/payments/content/payment_request_web_contents_manager.h
+++ b/components/payments/content/payment_request_web_contents_manager.h
@@ -63,6 +63,8 @@
       content::NavigationHandle* navigation_handle) override;
   void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override;
 
+  base::WeakPtr<PaymentRequestWebContentsManager> GetWeakPtr();
+
  private:
   explicit PaymentRequestWebContentsManager(content::WebContents* web_contents);
   friend class content::WebContentsUserData<PaymentRequestWebContentsManager>;
@@ -74,6 +76,8 @@
   // the requests themselves call DestroyRequest().
   std::map<PaymentRequest*, std::unique_ptr<PaymentRequest>> payment_requests_;
 
+  base::WeakPtrFactory<PaymentRequestWebContentsManager> weak_ptr_factory_{
+      this};
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 };
 
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 9c05aaba..6bff401 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -511,6 +511,7 @@
 
       Si la inhabilitas o no la estableces, se mostrarán advertencias en sistemas no compatibles.</translation>
 <translation id="1634989431648355062">Permitir el complemento <ph name="FLASH_PLUGIN_NAME" /> en estos sitios</translation>
+<translation id="1639468541408865385">Habilitar la caché de autenticación para HTTP con alcance global</translation>
 <translation id="1641394008743444477">Permite establecer una lista de funciones de <ph name="PRODUCT_OS_NAME" /> para que se inhabiliten.
 
       Si se inhabilita alguna de estas funciones, el usuario no podrá acceder a ella desde la IU y la verá como "inhabilitada por el administrador". <ph name="SYSTEM_FEATURES_DISABLE_MODE" /> determina la experiencia del usuario de las funciones inhabilitadas.
@@ -549,6 +550,7 @@
       Si no estableces esta política, fallará la instalación de <ph name="PLUGIN_VM_NAME" /> cuando el espacio libre en disco disponible en el dispositivo sea inferior a 20 GB (valor predeterminado).
       Si la estableces, fallará la instalación de <ph name="PLUGIN_VM_NAME" /> cuando el espacio libre en disco disponible en el dispositivo sea inferior al espacio que requiere la política.</translation>
 <translation id="1690383938831887552">No permitir que se carguen los intercambios HTTP firmados</translation>
+<translation id="169467210981344373">Inhabilitar la caché de autenticación para HTTP con alcance global</translation>
 <translation id="1700458869527146675">Si estableces la política, se especificará la configuración del proxy para Chrome y las apps de ARC, por lo que se ignorarán todas las opciones relacionadas con el proxy que se especificaron en la línea de comandos.
 
        Si no la estableces, los usuarios podrán elegir su configuración de proxy.
@@ -572,6 +574,7 @@
       Nota: Para obtener más ejemplos detallados, visita The Chromium Projects ( https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett ).</translation>
 <translation id="1700811900332333712">Permite que el dispositivo solicite Powerwash</translation>
 <translation id="1708496595873025510">Establece la restricción en la obtención del valor de inicialización de las variaciones.</translation>
+<translation id="1709154322133526432">Habilitar la verificación de navegador predeterminado en el inicio</translation>
 <translation id="1713829924716792485">Si habilitas la política o no la estableces, los usuarios conectados con un host de acceso remoto podrán transferir archivos entre el cliente y el host. Esta acción no se aplicará a las conexiones de asistencia remota, las cuales no admiten la transferencia de archivos.
 
       Si inhabilitas la política, no se podrá transferir archivos.</translation>
@@ -835,6 +838,7 @@
 <translation id="2037214548071298156">Si habilitas la política o no la estableces, los dispositivos inscritos informarán sobre las estadísticas de hardware, como el uso de CPU/RAM.
 
       Si la inhabilitas, los dispositivos inscritos no informarán sobre las estadísticas de hardware.</translation>
+<translation id="2039801473506609891">Inhabilitar la compatibilidad con HTTP/0.9 en puertos no predeterminados</translation>
 <translation id="2040479044912658454">Modo de rasterización de impresiones</translation>
 <translation id="2042513383871755994">Si estableces la política, podrás definir una lista de patrones de URL donde se especifiquen los sitios que no pueden pedir a los usuarios acceso de lectura a los archivos o directorios que se encuentren en el sistema de archivos del sistema operativo del host mediante la API de File System.
 
@@ -1137,6 +1141,7 @@
       Si estableces <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> (valor 1), solo se podrán aplicar las variaciones que se consideren correcciones de estabilidad o seguridad críticas en <ph name="PRODUCT_NAME" />.
 
       Si estableces <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> (valor 2), no se podrá aplicar ninguna variación en el navegador. Ten en cuenta que no se recomienda este modo porque podría impedir que los desarrolladores de <ph name="PRODUCT_NAME" /> proporcionen correcciones de seguridad críticas de manera oportuna.</translation>
+<translation id="2402547085566757554">No usar la página Nueva pestaña como página principal</translation>
 <translation id="2411629345938804022">Si estableces la política en 3, los sitios web podrán solicitar acceso a dispositivos Bluetooth cercanos. Si la estableces en 2, se negará el acceso a dispositivos Bluetooth cercanos.
 
       Si no la estableces, los sitios podrán solicitar acceso, pero los usuarios podrán cambiar esta configuración.</translation>
@@ -1430,6 +1435,7 @@
 <translation id="2716623398185506073">Si habilitas la política, los dispositivos inscritos informarán sobre las estadísticas de hardware y los identificadores relacionados con la energía.
 
       Si la inhabilitas o no la estableces, los dispositivos inscritos no informarán sobre las estadísticas de energía.</translation>
+<translation id="2721185634942265347">Inhabilitar las sugerencias de búsqueda</translation>
 <translation id="2723692978495226412">Si habilitas esta política, se mostrarán recomendaciones de apps que el usuario haya instalado anteriormente en otros dispositivos. Se mostrarán estas recomendaciones en el Selector después de las recomendaciones locales de apps (en caso de que no se haya ingresado texto de búsqueda).
 
       Si inhabilitas esta política o no la estableces, no se mostrarán estas recomendaciones.
@@ -1692,6 +1698,7 @@
         Esta política no prevalecerá sobre las políticas ya publicadas.</translation>
 <translation id="3016255526521614822">Incluir en la lista blanca las apps para tomar notas que se permiten en la pantalla bloqueada de <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="3017578958356048910">El visor de PDF puede agregar anotaciones en archivos PDF</translation>
+<translation id="3020623128585817424">Inhabilitar la verificación de navegador predeterminado en el inicio</translation>
 <translation id="3020953534071988875">La configuración de esta política habilitará o inhabilitará la autenticación ambiental para los perfiles de incógnito y de invitado en <ph name="PRODUCT_NAME" />.
 
       La Autenticación ambiental es la autenticación por http con credenciales predeterminadas si no se proporcionan credenciales específicas mediante esquemas de desafío/respuesta de NTLM, Kerberos y Negotiate.
@@ -3491,6 +3498,11 @@
 
       Si esta política se establece como una lista de identificadores de método de entrada, estos métodos estarán disponibles en la pantalla de acceso y se preseleccionará el primero de ellos. Cuando se activa un módulo de sesión de usuario en la pantalla de acceso, el último método de entrada que este utilizó estará disponible junto con aquellos que especifica esta política. Si no se establece esta política, los métodos de entrada de la pantalla de acceso se obtendrán a partir de la configuración regional que se muestra en la pantalla de acceso. Se ignorarán los valores que no sean identificadores válidos de métodos de entrada.</translation>
 <translation id="5407008856008996384">Permite acceder a impresoras CUPS</translation>
+<translation id="5417597818300833094">Si estableces la política, los usuarios podrán elegir uno de los métodos de entrada para las sesiones de <ph name="PRODUCT_OS_NAME" /> que especifiques.
+
+       Si no la estableces o la estableces como una lista vacía, los usuarios podrán seleccionar todos los métodos de entrada compatibles.
+
+      Nota: Si el método de entrada actual no es compatible, este cambiará al diseño de teclado del hardware (si se permite) o a la primera entrada válida de la lista. Se ignorarán los métodos no válidos o no compatibles.</translation>
 <translation id="5417906792459853336">Envía información sobre el uso de un dispositivo y su inventario de aplicaciones.
 
       Si se establece la política como falsa o no se establece, no se enviará la información.
@@ -3820,6 +3832,7 @@
       Los datos vitales del producto (VPD) son un conjunto de datos informativos y de configuración (como números de serie y piezas) asociados al dispositivo.</translation>
 <translation id="5765780083710877561">Descripción:</translation>
 <translation id="5766438888216077649">No configurar <ph name="WINDOW_OPENER_PROPERTY" /> para los vínculos destinados a <ph name="BLANK_PAGE_NAME" /></translation>
+<translation id="5767776869128458023">Inhabilitar páginas de error alternativas</translation>
 <translation id="5770738360657678870">Canal para desarrolladores (puede ser inestable)</translation>
 <translation id="5774856474228476867">Dirección URL de búsqueda de proveedores de búsqueda predeterminada</translation>
 <translation id="5775235485119094648">Cargar la batería mientras está en un rango fijo</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 31c0794..f6dc3f6 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -510,6 +510,7 @@
 
       Jika kebijakan disetel ke Nonaktif atau tidak disetel, peringatan akan muncul di sistem operasi yang tidak didukung.</translation>
 <translation id="1634989431648355062">Izinkan plugin <ph name="FLASH_PLUGIN_NAME" /> di situs ini</translation>
+<translation id="1639468541408865385">Aktifkan cache autentikasi HTTP yang tercakup secara global</translation>
 <translation id="1641394008743444477">Memungkinkan Anda menetapkan daftar fitur <ph name="PRODUCT_OS_NAME" /> untuk dinonaktifkan.
 
       Jika salah satu fitur ini dinonaktifkan, pengguna tidak dapat mengaksesnya dari UI dan akan melihatnya sebagai "dinonaktifkan oleh admin". Pengalaman pengguna fitur yang dinonaktifkan ditentukan oleh <ph name="SYSTEM_FEATURES_DISABLE_MODE" />
@@ -548,6 +549,7 @@
       Jika kebijakan ini tidak disetel, penginstalan <ph name="PLUGIN_VM_NAME" /> akan gagal jika ruang disk kosong yang tersedia di perangkat kurang dari 20 GB (nilai default).
       Jika kebijakan ini disetel, penginstalan <ph name="PLUGIN_VM_NAME" /> akan gagal jika ruang disk kosong yang tersedia di perangkat kurang dari yang ditentukan oleh kebijakan.</translation>
 <translation id="1690383938831887552">Cegah pemuatan Signed HTTP Exchange</translation>
+<translation id="169467210981344373">Nonaktifkan cache autentikasi HTTP yang tercakup secara global</translation>
 <translation id="1700458869527146675">Menyetel kebijakan akan mengonfigurasi setelan proxy untuk Chrome dan aplikasi ARC, yang mengabaikan semua opsi terkait proxy yang ditentukan dari command line.
 
        Jika kebijakan tidak disetel, pengguna dapat memilih setelan proxy mereka.
@@ -571,6 +573,7 @@
       Catatan: Untuk contoh yang lebih mendetail, buka Project Chromium ( https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett ).</translation>
 <translation id="1700811900332333712">Izinkan perangkat untuk meminta powerwash</translation>
 <translation id="1708496595873025510">Setel batasan pada pengambilan bibit Varietas</translation>
+<translation id="1709154322133526432">Aktifkan pemeriksaan browser default saat browser dimulai</translation>
 <translation id="1713829924716792485">Jika kebijakan disetel ke Aktif atau tidak disetel, pengguna yang terhubung ke host akses jarak jauh akan diizinkan untuk mentransfer file antara klien dan host. Ini tidak berlaku untuk koneksi bantuan jarak jauh, yang tidak mendukung transfer file.
 
       Jika kebijakan disetel ke Nonaktif, transfer file tidak akan diizinkan.</translation>
@@ -840,6 +843,7 @@
 <translation id="2037214548071298156">Jika kebijakan disetel ke Aktif atau tidak disetel, perangkat yang terdaftar akan melaporkan statistik hardware seperti penggunaan CPU/RAM.
 
       Jika kebijakan disetel ke Nonaktif, perangkat yang terdaftar tidak akan melaporkan statistik hardware.</translation>
+<translation id="2039801473506609891">Nonaktifkan dukungan HTTP/0.9 pada port non-default</translation>
 <translation id="2040479044912658454">Mode Rasterisasi Cetak</translation>
 <translation id="2042513383871755994">Menyetel kebijakan memungkinkan Anda menetapkan daftar pola URL yang menentukan situs mana yang tidak dapat meminta akses baca ke file atau direktori di sistem file pada sistem operasi host melalui File System API.
 
@@ -1142,6 +1146,7 @@
       Jika <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> (nilai 1) disetel, hanya variasi yang dianggap sebagai perbaikan keamanan atau stabilitas penting yang akan diterapkan ke <ph name="PRODUCT_NAME" />.
 
       Jika <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> (nilai 2) disetel, semua variasi tidak akan dapat diterapkan ke browser. Perlu diketahui, mode ini tidak direkomendasikan karena berpotensi menyebabkan developer <ph name="PRODUCT_NAME" /> tidak dapat menyediakan perbaikan keamanan penting secara tepat waktu.</translation>
+<translation id="2402547085566757554">Jangan gunakan Halaman Tab Baru sebagai halaman beranda</translation>
 <translation id="2411629345938804022">Jika kebijakan disetel ke 3, situs akan meminta akses ke perangkat Bluetooth di sekitar. Jika kebijakan disetel ke 2, akses ke perangkat Bluetooth di sekitar akan ditolak.
 
       Jika kebijakan tidak disetel, situs akan meminta akses, tetapi pengguna dapat mengubah setelan ini.</translation>
@@ -1437,6 +1442,7 @@
 <translation id="2716623398185506073">Jika kebijakan disetel ke Aktif, perangkat yang terdaftar akan melaporkan statistik dan ID hardware yang terkait daya.
 
       Jika kebijakan disetel ke Nonaktif atau tidak disetel, perangkat yang terdaftar tidak akan melaporkan statistik daya.</translation>
+<translation id="2721185634942265347">Nonaktifkan saran penelusuran</translation>
 <translation id="2723692978495226412">Jika kebijakan ini disetel ke Aktif, rekomendasi untuk aplikasi yang sebelumnya diinstal oleh pengguna pada perangkat lain akan ditampilkan. Jika tidak ada penelusuran teks yang dimasukkan, rekomendasi ini akan muncul di peluncur setelah rekomendasi aplikasi lokal.
 
       Jika kebijakan ini disetel ke Nonaktif atau tidak disetel, rekomendasi ini tidak akan muncul.
@@ -1703,6 +1709,7 @@
         Kebijakan ini tidak memengaruhi kebijakan yang sudah dirilis.</translation>
 <translation id="3016255526521614822">Beri akses aplikasi pencatat yang diizinkan di layar kunci <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="3017578958356048910">Penampil PDF dapat menganotasi PDF</translation>
+<translation id="3020623128585817424">Nonaktifkan pemeriksaan browser default saat browser dimulai</translation>
 <translation id="3020953534071988875">Jika kebijakan ini dikonfigurasi, profil Samaran dan Tamu di <ph name="PRODUCT_NAME" /> akan diizinkan/dilarang untuk melakukan autentikasi pasif.
 
       Autentikasi Pasif adalah autentikasi http dengan kredensial default jika kredensial eksplisit tidak diberikan melalui skema verifikasi/respons NTLM/Kerberos/Negotiate.
@@ -3508,6 +3515,11 @@
 
       Jika kebijakan ini disetel ke daftar pengenal metode masukan, metode masukan yang diberikan akan tersedia di layar login. Metode masukan yang diberikan pertama telah dipilih sebelumnya. Sementara pod pengguna difokuskan pada layar login, metode masukan yang terakhir kali digunakan oleh pengguna akan tersedia, selain dari metode masukan yang diberikan oleh kebijakan ini. Jika kebijakan ini tidak disetel, metode masukan pada layar login akan diambil dari lokal yang menampilkan layar login. Pengenal metode masukan akan mengabaikan nilai yang tidak valid.</translation>
 <translation id="5407008856008996384">Mengizinkan akses ke printer CUPS</translation>
+<translation id="5417597818300833094">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.
+
+      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="5417906792459853336">Melaporkan informasi untuk inventaris dan penggunaan aplikasi perangkat.
 
       Jika kebijakan ditetapkan ke salah, atau tidak ditetapkan, informasi tidak akan dilaporkan.
@@ -3840,6 +3852,7 @@
       Data Produk Vital (VPD) adalah kumpulan data konfigurasi dan informatif (seperti nomor suku cadang dan nomor seri) yang terkait dengan perangkat.</translation>
 <translation id="5765780083710877561">Deskripsi:</translation>
 <translation id="5766438888216077649">Tidak menyetel <ph name="WINDOW_OPENER_PROPERTY" /> untuk link yang menargetkan <ph name="BLANK_PAGE_NAME" /></translation>
+<translation id="5767776869128458023">Nonaktifkan halaman error alternatif</translation>
 <translation id="5770738360657678870">Saluran pengembang (mungkin tidak stabil)</translation>
 <translation id="5774856474228476867">URL penelusuran penyedia penelusuran default</translation>
 <translation id="5775235485119094648">Mengisi daya baterai saat tingkat daya berada dalam rentang yang ditetapkan.</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 6397b7e1..c93a262 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -507,6 +507,7 @@
 
       Se il criterio viene impostato su Disattivato o se non viene configurato, sui sistemi non supportati vengono visualizzati degli avvisi.</translation>
 <translation id="1634989431648355062">Consenti il plug-in <ph name="FLASH_PLUGIN_NAME" /> su questi siti</translation>
+<translation id="1639468541408865385">Attiva cache di autenticazione HTTP con ambito globale</translation>
 <translation id="1641394008743444477">Consente di impostare un elenco di funzionalità di <ph name="PRODUCT_OS_NAME" /> da disattivare.
 
       Se una qualsiasi di queste funzionalità viene disattivata, l'utente non può accedervi dall'UI e la vede contrassegnata come "disattivata dall'amministratore". L'esperienza utente delle funzionalità disattivate è decisa da <ph name="SYSTEM_FEATURES_DISABLE_MODE" />
@@ -545,6 +546,7 @@
       Se il criterio non viene configurato, l'installazione di <ph name="PLUGIN_VM_NAME" /> non va a buon fine se lo spazio libero disponibile sul dispositivo è inferiore a 20 GB (valore predefinito).
       Se il criterio è impostato, l'installazione di <ph name="PLUGIN_VM_NAME" /> non va a buon fine se lo spazio libero disponibile sul dispositivo è inferiore a quello richiesto dal criterio.</translation>
 <translation id="1690383938831887552">Impedisci il caricamento di scambi Signed HTTP Exchange</translation>
+<translation id="169467210981344373">Disattiva cache di autenticazione HTTP con ambito globale</translation>
 <translation id="1700458869527146675">L'impostazione del criterio consente di configurare le impostazioni del proxy per Chrome e le app ARC, ignorando tutte le opzioni relative al proxy specificate dalla riga di comando.
 
        Se il criterio non viene configurato, gli utenti possono scegliere le impostazioni del proxy.
@@ -568,6 +570,7 @@
       Nota: per esempi più dettagliati, consulta la pagina The Chromium Projects (https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett).</translation>
 <translation id="1700811900332333712">Consenti al dispositivo di richiedere il powerwash</translation>
 <translation id="1708496595873025510">Imposta la limitazione sul recupero del numero di inizializzazione delle varianti</translation>
+<translation id="1709154322133526432">Attiva il controllo del browser predefinito all'avvio</translation>
 <translation id="1713829924716792485">Se il criterio viene impostato su Attivato o se non viene configurato, gli utenti connessi a un host di accesso remoto possono trasferire file dal client all'host e viceversa. Questo criterio non si applica alle connessioni di assistenza remota, che non supportano il trasferimento di file.
 
       Se il criterio viene impostato su Disattivato, il trasferimento di file non è consentito.</translation>
@@ -832,6 +835,7 @@
 <translation id="2037214548071298156">Se il criterio viene impostato su Attivato o se non viene configurato, i dispositivi registrati segnalano statistiche hardware quali l'utilizzo di CPU/RAM.
 
       Se il criterio viene impostato su Disattivato, i dispositivi registrati non segnalano le statistiche hardware.</translation>
+<translation id="2039801473506609891">Disattiva il supporto HTTP/0.9 sulle porte non predefinite</translation>
 <translation id="2040479044912658454">Modalità rasterizzazione stampa</translation>
 <translation id="2042513383871755994">La configurazione del criterio consente di elencare pattern URL che specificano quali siti non possono richiedere agli utenti l'accesso di lettura di file o directory nel file system del sistema operativo host tramite l'API file system.
 
@@ -1134,6 +1138,7 @@
       Se viene impostato <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> (valore 1), è possibile applicare a <ph name="PRODUCT_NAME" /> soltanto le varianti considerate correzioni fondamentali per la sicurezza o la stabilità.
 
       La configurazione di <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> (valore 2) impedisce di applicare al browser tutte le varianti. Questa modalità potrebbe impedire agli sviluppatori di <ph name="PRODUCT_NAME" /> di fornire tempestivamente correzioni fondamentali per la sicurezza ed è pertanto sconsigliata.</translation>
+<translation id="2402547085566757554">Non usare la pagina Nuova scheda come Pagina iniziale</translation>
 <translation id="2411629345938804022">Se il criterio è impostato su 3, i siti web possono chiedere l'accesso ai dispositivi Bluetooth nelle vicinanze. Se il criterio è impostato su 2, l'accesso ai dispositivi Bluetooth nelle vicinanze viene negato.
 
       Se il criterio non viene configurato, i siti possono chiedere l'accesso, ma gli utenti possono modificare l'impostazione.</translation>
@@ -1421,6 +1426,7 @@
 <translation id="2716623398185506073">Se il criterio viene impostato su Attivato, i dispositivi registrati segnalano statistiche hardware e identificatori relativi al consumo di energia.
 
       Se il criterio viene impostato su Disattivato o se non viene configurato, i dispositivi registrati non segnalano statistiche relative al consumo di energia.</translation>
+<translation id="2721185634942265347">Disattiva i suggerimenti di ricerca</translation>
 <translation id="2723692978495226412">Se il criterio viene impostato su Attivato, vengono visualizzati dei consigli per le app precedentemente installate dall'utente su altri dispositivi. Questi consigli vengono visualizzati in Avvio app in seguito ai consigli sulle app locali, se non viene inserito alcun testo di ricerca.
 
       Se il criterio viene impostato su Disattivato o se non viene configurato, questi consigli non vengono visualizzati.
@@ -1676,6 +1682,7 @@
         Il criterio non ha effetto su quelli già pubblicati.</translation>
 <translation id="3016255526521614822">Autorizza l'uso di app per scrivere note nella schermata di blocco di <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="3017578958356048910">Il visualizzatore PDF può aggiungere annotazioni nei PDF</translation>
+<translation id="3020623128585817424">Disattiva il controllo del browser predefinito all'avvio</translation>
 <translation id="3020953534071988875">Se configuri questo criterio, l'autenticazione ambientale verrà attivata o disattivata per i profili Ospite e in modalità in incognito in <ph name="PRODUCT_NAME" />.
 
       L'autenticazione ambientale è l'autenticazione http con credenziali predefinite, se non sono fornite credenziali esplicite tramite schemi NTLM/Kerberos/Negotiate challenge/response.
@@ -3472,6 +3479,11 @@
 
       Se per questa norma viene impostato un elenco di identificatori di metodi di immissione, i metodi specificati saranno disponibili nella schermata di accesso. Verrà preselezionato il primo metodo di immissione specificato. Anche se il pod dell'utente è basato sulla schermata di accesso, oltre ai metodi di immissione specificati in questa norma sarà disponibile anche l'ultimo metodo usato dall'utente. Se questa norma non viene impostata, i metodi di immissione per la schermata di accesso saranno recuperati in base alla lingua in cui è visualizzata la schermata di accesso. I valori che non corrispondono a identificatori di metodi di immissione validi verranno ignorati.</translation>
 <translation id="5407008856008996384">Consenti l'accesso alle stampanti CUPS</translation>
+<translation id="5417597818300833094">L'impostazione del criterio consente agli utenti di scegliere uno dei metodi di immissione per le sessioni <ph name="PRODUCT_OS_NAME" /> specificate.
+
+       Se il criterio non viene configurato o se viene lasciato vuoto, gli utenti possono selezionare tutti i metodi di immissione supportati.
+
+      Nota: se il metodo di immissione corrente non è supportato, viene effettuato il passaggio al layout da tastiera hardware (se consentito) o alla prima voce valida in questo elenco. I metodi non supportati o non validi vengono ignorati.</translation>
 <translation id="5417906792459853336">Consente di segnalare informazioni sull'inventario delle applicazioni di un dispositivo e sul relativo utilizzo.
 
       Se il criterio viene impostato su false o non viene impostato, le informazioni non vengono segnalate.
@@ -3794,6 +3806,7 @@
       I Vital Product Data (VPD) sono una raccolta di dati informativi e di configurazione (come numeri di serie o di componenti) associati al dispositivo.</translation>
 <translation id="5765780083710877561">Descrizione:</translation>
 <translation id="5766438888216077649">Non impostare <ph name="WINDOW_OPENER_PROPERTY" /> per i link indirizzati alla pagina <ph name="BLANK_PAGE_NAME" /></translation>
+<translation id="5767776869128458023">Disattiva pagine di errore sostitutive</translation>
 <translation id="5770738360657678870">Canale Dev (potrebbe essere instabile)</translation>
 <translation id="5774856474228476867">URL di ricerca del provider di ricerca predefinito</translation>
 <translation id="5775235485119094648">Carica la batteria mentre si trova in un intervallo stabilito.</translation>
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 4a564a6f..1c4ac356 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -505,6 +505,7 @@
 
       このポリシーを無効に設定するか未設定のままにした場合、サポートされていないシステムで警告が表示されます。</translation>
 <translation id="1634989431648355062">これらのサイトで <ph name="FLASH_PLUGIN_NAME" /> プラグインを許可する</translation>
+<translation id="1639468541408865385">グローバル スコープを持つ HTTP 認証キャッシュを有効にする</translation>
 <translation id="1641394008743444477">無効にする <ph name="PRODUCT_OS_NAME" /> の機能のリストを設定できます。
 
       無効にした機能はユーザーの UI からアクセスできなくなり、「管理者によって無効にされています」と表示されます。無効にした機能のユーザー エクスペリエンスは <ph name="SYSTEM_FEATURES_DISABLE_MODE" /> によって決まります。
@@ -543,6 +544,7 @@
       このポリシーを未設定のままにした場合、デバイスで使用できるディスクの空き容量が 20 GB(デフォルト値)未満のときに <ph name="PLUGIN_VM_NAME" /> のインストールが失敗します。
       このポリシーを設定した場合、デバイスで使用できるディスクの空き容量がポリシーで要求される値未満のときに <ph name="PLUGIN_VM_NAME" /> のインストールが失敗します。</translation>
 <translation id="1690383938831887552">Signed HTTP Exchange の読み込みを許可しない</translation>
+<translation id="169467210981344373">グローバル スコープを持つ HTTP 認証キャッシュを無効にする</translation>
 <translation id="1700458869527146675">このポリシーでは、Chrome と ARC アプリのプロキシ設定を行います。いずれもコマンドラインで指定されたプロキシ関連の設定はすべて無視されます。
 
        このポリシーを未設定のままにした場合、ユーザーはプロキシ設定を選択できます。
@@ -566,6 +568,7 @@
       注: 詳しい例については、Chromium プロジェクトの説明(https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett)をご覧ください。</translation>
 <translation id="1700811900332333712">デバイスに Powerwash のリクエストを許可する</translation>
 <translation id="1708496595873025510">バリエーション シードの取得に制限を設定する</translation>
+<translation id="1709154322133526432">起動時のデフォルト ブラウザ チェックを有効にする</translation>
 <translation id="1713829924716792485">このポリシーを有効に設定するか未設定のままにした場合、リモート アクセス ホストに接続しているユーザーは、クライアントとホスト間でファイルを転送できます。これは、ファイル転送がサポートされていないリモート サポート接続には適用されません。
 
       このポリシーを無効に設定した場合、ファイル転送は許可されません。</translation>
@@ -823,6 +826,7 @@
 <translation id="2037214548071298156">このポリシーを有効にするか、未設定のままにすると、登録済みのデバイスは CPU/RAM 使用量などに関するハードウェアの統計情報を報告します。
 
       このポリシーを無効に設定すると、登録済みのデバイスはハードウェアの統計情報を報告しません。</translation>
+<translation id="2039801473506609891">デフォルトでないポートで HTTP/0.9 サポートを無効にする</translation>
 <translation id="2040479044912658454">印刷のラスターモード</translation>
 <translation id="2042513383871755994">このポリシーでは、ホスト オペレーティング システムのファイル システム内にあるファイルやディレクトリに File System API 経由で読み取りアクセスすることに関して、ユーザーに許可を要求できないサイトの URL パターンリストを指定できます。
 
@@ -1115,6 +1119,7 @@
       <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" />(値 1)に設定した場合は、セキュリティまたは安定性に関する重要な修正とみなされるバリエーションのみ <ph name="PRODUCT_NAME" /> に適用できます。
 
       <ph name="VARIATIONS_DISABLED_OPTION_NAME" />(値 2)に設定した場合は、どのバリエーションもブラウザに適用できません。このモードは、<ph name="PRODUCT_NAME" /> のデベロッパーがセキュリティに関する重要な修正を適切なタイミングで適用できない場合があるため推奨されません。</translation>
+<translation id="2402547085566757554">新しいタブページをホームページとして使用しない</translation>
 <translation id="2411629345938804022">このポリシーを 3 に設定した場合、ウェブサイトに対して周辺の Bluetooth デバイスへのアクセスの要求が許可されます。このポリシーを 2 に設定した場合、周辺の Bluetooth デバイスへのアクセスは拒否されます。
 
       このポリシーを未設定のままにした場合、サイトに対してアクセスの要求は許可されますが、ユーザーはこの設定を変更できます。</translation>
@@ -1389,6 +1394,7 @@
 <translation id="2716623398185506073">このポリシーを有効に設定すると、登録済みのデバイスは電源に関連するハードウェアの統計情報と識別子を報告します。
 
       このポリシーを無効にするか、未設定のままにすると、登録済みのデバイスは電源に関連する統計情報を報告しません。</translation>
+<translation id="2721185634942265347">検索候補を無効にする</translation>
 <translation id="2723692978495226412">このポリシーを有効に設定した場合、ユーザーが他のデバイスで以前インストールしたアプリのおすすめが表示されます。このおすすめは、検索テキストが入力されていない場合に、ランチャー内のローカルアプリのおすすめの後に表示されます。
 
       このポリシーを無効に設定するか未設定のままにした場合、このおすすめは表示されません。
@@ -1639,6 +1645,7 @@
         このポリシーは、すでにリリース済みのポリシーには影響しません。</translation>
 <translation id="3016255526521614822"><ph name="PRODUCT_OS_NAME" /> のロック画面で使用できるメモ作成アプリをホワイトリスト登録する</translation>
 <translation id="3017578958356048910">PDF ビューアで PDF に注釈を追加できる</translation>
+<translation id="3020623128585817424">起動時のデフォルト ブラウザ チェックを無効にする</translation>
 <translation id="3020953534071988875">このポリシーを設定すると、<ph name="PRODUCT_NAME" /> のシークレット モードとゲストのプロフィールでアンビエント認証を許可または不許可にできます。
 
       アンビエント認証は、NTLM/Kerberos/Negotiate challenge/response スキームで明示的な認証情報が指定されていない場合に使用される、デフォルトの認証情報による HTTP 認証です。
@@ -3395,6 +3402,11 @@
 
       このポリシーが入力方法 ID のリストに設定されている場合は、指定されている入力方法がログイン画面で選択可能になり、最初に指定されている入力方法があらかじめ選択された状態になります。ログイン画面でユーザーのアイコンにフォーカスがあるときは、このポリシーで指定されている入力方法に加えて、ユーザーが最後に使った入力方法が選択可能になります。このポリシーが設定されていない場合は、ログイン画面の表示に使用されている言語 / 地域に応じた入力方法が適用されます。入力方法 ID として無効な値は無視されます。</translation>
 <translation id="5407008856008996384">CUPS プリンタへのアクセスを許可します</translation>
+<translation id="5417597818300833094">このポリシーを設定した場合、ユーザーは <ph name="PRODUCT_OS_NAME" /> セッション用にあなたが指定した入力方法のいずれかのみを選択できます。
+
+       このポリシーを未設定のままにするか空のリストを設定した場合、ユーザーはサポートされているすべての入力方法を選択できます。
+
+      注: 現在の入力方法がサポートされていない場合は、ハードウェア キーボード配列(許可されている場合)またはこのリストの最初の有効なエントリに切り替えられます。無効な入力方法またはサポートされていない入力方法は無視されます。</translation>
 <translation id="5417906792459853336">デバイスのアプリケーションと使用に関する情報を報告します。
 
       このポリシーを false に設定するか未設定のままにした場合、この情報は報告されません。
@@ -3706,6 +3718,7 @@
       バイタル商品データ (VPD)は、デバイスに関連付けられた一連の構成データと情報データ(部品およびシリアル番号など)です。</translation>
 <translation id="5765780083710877561">説明:</translation>
 <translation id="5766438888216077649"><ph name="BLANK_PAGE_NAME" /> をターゲットとするリンクで <ph name="WINDOW_OPENER_PROPERTY" /> を設定しない</translation>
+<translation id="5767776869128458023">代替エラーページを無効にする</translation>
 <translation id="5770738360657678870">Dev チャンネル(不安定な場合があります)</translation>
 <translation id="5774856474228476867">デフォルトの検索プロバイダの検索 URL</translation>
 <translation id="5775235485119094648">残量が一定の範囲内の場合にバッテリーを充電する。</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 191bf8d1..3f755e2a 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -511,6 +511,7 @@
 
       정책을 사용 안함으로 설정하거나 설정하지 않으면 지원되지 않는 시스템에서 경고가 표시됩니다.</translation>
 <translation id="1634989431648355062">이 사이트에서 <ph name="FLASH_PLUGIN_NAME" /> 플러그인 허용</translation>
+<translation id="1639468541408865385">전역적으로 범위가 지정된 HTTP 인증 캐시 사용 설정</translation>
 <translation id="1641394008743444477">사용 중지할 <ph name="PRODUCT_OS_NAME" /> 기능 목록을 설정할 수 있습니다.
 
       사용 중지된 기능의 경우 사용자가 UI에서 액세스할 수 없으며 '관리자가 사용 중지함'이라는 메시지가 표시됩니다. 사용 중지된 기능의 사용자 환경은 <ph name="SYSTEM_FEATURES_DISABLE_MODE" />에 의해 결정됩니다.
@@ -549,6 +550,7 @@
       정책을 설정하지 않으면 기기의 디스크 여유 공간이 20GB(기본값) 미만일 경우 <ph name="PLUGIN_VM_NAME" /> 설치에 실패합니다.
       정책을 설정하면 기기의 디스크 여유 공간이 정책에서 요구하는 수준보다 적을 경우 <ph name="PLUGIN_VM_NAME" /> 설치에 실패합니다.</translation>
 <translation id="1690383938831887552">서명된 HTTP 교환(SXG) 로드 차단</translation>
+<translation id="169467210981344373">전역적으로 범위가 지정된 HTTP 인증 캐시 사용 중지</translation>
 <translation id="1700458869527146675">정책을 설정하면 Chrome 및 ARC 앱에 프록시 설정이 구성되어 명령줄로 지정된 모든 프록시 관련 옵션이 무시됩니다.
 
        설정하지 않으면 사용자가 프록시 설정을 선택할 수 있습니다.
@@ -572,6 +574,7 @@
       참고: 자세한 예시를 보려면 Chromium 프로젝트(https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett)를 참고하세요.</translation>
 <translation id="1700811900332333712">기기가 파워워시를 요청하도록 허용</translation>
 <translation id="1708496595873025510">버전 시드 가져오기 제한 설정</translation>
+<translation id="1709154322133526432">시작 시 기본 브라우저 확인 사용 설정</translation>
 <translation id="1713829924716792485">정책을 사용 설정하거나 설정하지 않으면 원격 액세스 호스트에 연결된 사용자가 클라이언트와 호스트 사이에 파일을 전송할 수 있습니다. 이 정책은 파일 전송을 지원하지 않는 원격 지원 연결에는 적용되지 않습니다.
 
       정책을 사용 중지하면 파일 전송이 허용되지 않습니다.</translation>
@@ -837,6 +840,7 @@
 <translation id="2037214548071298156">정책을 사용 설정하거나 설정하지 않으면 등록된 기기에서 CPU/RAM 사용 등의 하드웨어 통계를 보고합니다.
 
       정책을 사용 중지하면 등록된 기기에서 하드웨어 통계를 보고하지 않습니다.</translation>
+<translation id="2039801473506609891">기본 포트가 아닌 포트에서 HTTP/0.9 지원 사용 중지</translation>
 <translation id="2040479044912658454">인쇄 래스터화 모드</translation>
 <translation id="2042513383871755994">정책을 설정하면 URL 패턴 목록을 만들어 사용자에게 File System API를 통해 호스트 운영체제의 파일 시스템 내 파일 또는 디렉터리에 대한 읽기 액세스 권한을 요청할 수 없는 사이트를 지정하는 것이 가능합니다.
 
@@ -1139,6 +1143,7 @@
       <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> 옵션을 설정하면(값 1) 중요한 보안 또는 안정성 관련 수정사항으로 간주되는 변형만 <ph name="PRODUCT_NAME" />에 적용 가능합니다.
 
       <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> 옵션을 설정하면(값 2) 어떤 변형도 브라우저에 적용할 수 없습니다. 이 모드를 사용하면 <ph name="PRODUCT_NAME" /> 개발자가 중요한 보안 수정사항을 신속히 제공하지 못할 수 있으므로 권장되지 않습니다.</translation>
+<translation id="2402547085566757554">새 탭 페이지를 홈페이지로 사용 안함</translation>
 <translation id="2411629345938804022">정책을 3으로 설정하면 웹사이트에서 근처 블루투스 기기 액세스를 요청하도록 허용합니다. 정책을 2로 설정하면 근처 블루투스 기기 액세스를 거부합니다.
 
       정책을 설정하지 않으면 사이트의 액세스 요청이 허용되지만 사용자가 이 설정을 변경할 수 있습니다.</translation>
@@ -1433,6 +1438,7 @@
 <translation id="2716623398185506073">정책을 사용 설정하면 등록된 기기에서 전원과 관련된 하드웨어 통계와 식별자를 보고합니다.
 
       정책을 사용 중지하거나 설정하지 않으면 등록된 기기에서 전원 통계를 보고하지 않습니다.</translation>
+<translation id="2721185634942265347">추천 검색어 사용 중지</translation>
 <translation id="2723692978495226412">이 정책을 사용 설정하면 다른 기기에서 사용자가 이전에 설치한 앱에 관한 추천이 표시됩니다. 이러한 추천은 검색어를 입력하지 않을 경우 런처에 로컬 앱 추천 아래에 표시됩니다.
 
       이 정책을 사용 중지하거나 설정하지 않으면 이러한 추천이 표시되지 않습니다.
@@ -1699,6 +1705,7 @@
         이 정책은 이미 출시된 정책에는 영향을 미치지 않습니다.</translation>
 <translation id="3016255526521614822"><ph name="PRODUCT_OS_NAME" /> 잠금 화면에서 사용 설정된 메모 앱을 허용 목록에 추가</translation>
 <translation id="3017578958356048910">PDF 뷰어에서 PDF에 주석 작성 가능</translation>
+<translation id="3020623128585817424">시작 시 기본 브라우저 확인 사용 중지</translation>
 <translation id="3020953534071988875">이 정책을 설정하면 <ph name="PRODUCT_NAME" />의 시크릿 모드와 게스트 프로필에서 앰비언트 인증을 허용/금지할 수 있습니다.
 
       앰비언트 인증은 명시적인 사용자 인증 정보가 자격 확인/응답 유형의 NTLM/Kerberos/Negotiate 방식을 통해 제공되지 않는 경우 기본 사용자 인증 정보를 사용하는 HTTP 인증입니다.
@@ -3495,6 +3502,11 @@
 
       이 정책이 입력 방법 식별자 목록으로 설정되는 경우 주어진 입력 방법을 로그인 화면에서 사용할 수 있습니다. 첫 번째로 주어진 입력 수단이 사전 선택됩니다. 로그인 화면에서는 사용자 포드가 활성화되는데 이때 이 정책에서 주어진 입력 수단과 더불어 사용자가 마지막으로 사용한 입력 수단을 사용할 수 있습니다. 이 정책이 설정되지 않은 경우 로그인 화면의 입력 수단은 로그인 화면이 표시되는 언어에서 가져옵니다. 유효한 입력 수단 식별자가 아닌 값은 무시됩니다.</translation>
 <translation id="5407008856008996384">CUPS 프린터 액세스 허용</translation>
+<translation id="5417597818300833094">정책을 설정하면 사용자가 지정한 <ph name="PRODUCT_OS_NAME" /> 세션의 입력 방법 중 하나를 선택할 수 있습니다.
+
+       설정하지 않거나 빈 목록으로 설정하면 사용자가 지원되는 모든 입력 방법을 선택할 수 있습니다.
+
+      참고: 현재 입력 방법이 지원되지 않으면 하드웨어 키보드 레이아웃(허용되는 경우) 또는 이 목록에서 가장 처음 유효한 항목으로 전환됩니다. 잘못되었거나 지원되지 않는 방법은 무시됩니다.</translation>
 <translation id="5417906792459853336">기기의 애플리케이션 인벤토리 및 사용 정보를 보고합니다.
 
       정책이 False로 설정되거나 설정되지 않으면 정보가 보고되지 않습니다.
@@ -3827,6 +3839,7 @@
       VPD(필수 제품 데이터)는 기기와 관련된 구성 및 정보 데이터(예: 부품 및 일련번호)의 모음입니다.</translation>
 <translation id="5765780083710877561">설명:</translation>
 <translation id="5766438888216077649"><ph name="BLANK_PAGE_NAME" />을(를) 타겟팅하는 링크의 경우 <ph name="WINDOW_OPENER_PROPERTY" /> 속성을 설정하지 않음</translation>
+<translation id="5767776869128458023">대체 오류 페이지 사용 중지</translation>
 <translation id="5770738360657678870">개발자 채널(불안정할 수 있음)</translation>
 <translation id="5774856474228476867">기본 검색 공급자 검색 URL</translation>
 <translation id="5775235485119094648">고정 범위에 해당할 때 배터리를 충전합니다.</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index a498c366..55b099ed 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -508,6 +508,7 @@
 
       Если правило отключено или не настроено, на неподдерживаемых системах будет показываться предупреждение.</translation>
 <translation id="1634989431648355062">Разрешить запуск плагина <ph name="FLASH_PLUGIN_NAME" /> на этих сайтах</translation>
+<translation id="1639468541408865385">Включить глобальное применение кеша аутентификации HTTP</translation>
 <translation id="1641394008743444477">Позволяет задать список функций <ph name="PRODUCT_OS_NAME" />, которые будут отключены.
 
       Если вы отключите какую-либо из этих функций, она станет недоступна в интерфейсе, а при попытке ее использовать будет показано сообщение "Отключено администратором". Параметры доступа пользователей к отключенным функциям определяются правилом <ph name="SYSTEM_FEATURES_DISABLE_MODE" />.
@@ -546,6 +547,7 @@
       Если не настроить это правило, установка <ph name="PLUGIN_VM_NAME" /> будет возможна, только если на устройстве не менее 20 ГБ свободного пространства (значение по умолчанию).
       Если правило настроено, установка <ph name="PLUGIN_VM_NAME" /> будет выполнена, только если на устройстве больше свободного пространства, чем задано в правиле.</translation>
 <translation id="1690383938831887552">Запретить загрузку веб-контента, для показа которого используется Signed HTTP Exchange</translation>
+<translation id="169467210981344373">Отключить глобальное применение кеша аутентификации HTTP</translation>
 <translation id="1700458869527146675">Правило позволяет задать настройки прокси-сервера для Chrome и ARC-приложений, игнорируя все настройки прокси, указанные с помощью командной строки.
 
        Если правило не задано, пользователи могут самостоятельно настраивать прокси-сервер.
@@ -569,6 +571,7 @@
       Примечание. Подробную информацию можно найти здесь: https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett.</translation>
 <translation id="1700811900332333712">Разрешить запрос функции Powerwash на устройстве</translation>
 <translation id="1708496595873025510">Ограничение загрузки исходного значения Variations</translation>
+<translation id="1709154322133526432">Включить проверку браузера по умолчанию при запуске</translation>
 <translation id="1713829924716792485">Если правило включено или не настроено, то пользователи, подключенные к хосту удаленного доступа, могут перемещать файлы между клиентом и хостом. Это правило не действует для подключений удаленной поддержки, не поддерживающих передачу файлов.
 
       Если правило отключено, передача файлов невозможна.</translation>
@@ -828,6 +831,7 @@
 <translation id="2037214548071298156">Если правило включено или не настроено, зарегистрированные устройства отправляют статистические данные о работе аппаратного обеспечения, например об использовании процессора или оперативной памяти.
 
       Если правило отключено, эти данные не отправляются.</translation>
+<translation id="2039801473506609891">Отключить поддержку HTTP/0.9 для портов, не заданных по умолчанию</translation>
 <translation id="2040479044912658454">Режим растеризации при печати</translation>
 <translation id="2042513383871755994">Позволяет задать список шаблонов URL для указания сайтов, которым запрещено запрашивать у пользователей право на чтение файлов или каталогов в файловой системе хоста через File System API.
 
@@ -1130,6 +1134,7 @@
       Если задан параметр <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> (значение "1"), к <ph name="PRODUCT_NAME" /> можно применять только модификации, содержащие критические исправления для обеспечения безопасности и стабильности.
 
       Если выбран параметр <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> (значение "2"), к браузеру невозможно применить ни одну из модификаций. Обратите внимание, что этот режим может мешать разработчикам <ph name="PRODUCT_NAME" /> своевременно исправлять критические проблемы безопасности, поэтому включать его не рекомендуется.</translation>
+<translation id="2402547085566757554">Не делать страницу быстрого доступа главной</translation>
 <translation id="2411629345938804022">Если задано значение 3, сайты могут запрашивать доступ к находящимся неподалеку устройствам Bluetooth. Если указано значение 2, доступ к находящимся неподалеку устройствам Bluetooth запрещен.
 
       Если правило не настроено, сайтам разрешено запрашивать доступ к устройствам, но пользователи могут изменять этот параметр.</translation>
@@ -1419,6 +1424,7 @@
 <translation id="2716623398185506073">Если правило включено, зарегистрированные устройства отправляют статистические данные о работе аппаратного обеспечения и идентификаторы, связанные с питанием устройства.
 
       Если правило отключено или не настроено, эти данные не отправляются.</translation>
+<translation id="2721185634942265347">Отключить подсказки при поиске</translation>
 <translation id="2723692978495226412">Если правило включено, пользователю устройства будут показываться рекомендации для ранее установленных приложений. Эти рекомендации появятся на панели запуска после локальных рекомендаций при условии, что поисковый запрос пуст.
 
       Если правило отключено или не настроено, рекомендации появляться не будут.
@@ -1676,6 +1682,7 @@
         На уже выпущенные правила это правило не влияет.</translation>
 <translation id="3016255526521614822">Приложения для заметок, которые могут работать на заблокированном экране <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="3017578958356048910">Разрешить добавление заметок в PDF-файлы в средстве просмотра PDF</translation>
+<translation id="3020623128585817424">Отключить проверку браузера по умолчанию при запуске</translation>
 <translation id="3020953534071988875">Позволяет разрешить или запретить пассивную аутентификацию для сеансов в режиме инкогнито и гостевых профилей в <ph name="PRODUCT_NAME" />.
 
       Пассивная аутентификация – это HTTP-аутентификация, для которой применяются учетные данные по умолчанию, если другие данные не были явно предоставлены при использовании схемы NTLM, Kerberos или Negotiate (запрос – ответ).
@@ -3468,6 +3475,11 @@
 
       Если выбран список идентификаторов способов ввода, на экране входа будут указаны эти способы. Выбор будет установлен на первом элементе списка. Если на экране отображается список пользователей, дополнительно будут доступны неиспользуемые в последнее время способы ввода. Если правило не настроено, способы ввода будут определяться региональными настройками для экрана входа. Некорректные идентификаторы способов ввода будут скрыты.</translation>
 <translation id="5407008856008996384">Предоставляет доступ к принтерам CUPS.</translation>
+<translation id="5417597818300833094">Это правило позволяет пользователям выбрать один из перечисленных вами методов ввода для сеансов в <ph name="PRODUCT_OS_NAME" />.
+
+       Если правило не настроено или указан пустой список, пользователь может выбирать любой из поддерживаемых способов ввода.
+
+      Примечание. Если текущий способ ввода не поддерживается, будет использоваться аппаратная раскладка клавиатуры (если это разрешено) или первый подходящий способ из списка. Все недопустимые или неподдерживаемые способы ввода игнорируются.</translation>
 <translation id="5417906792459853336">Передача информации об установленных на устройстве приложениях и их использовании.
 
       Если правило не настроено или задано значение False, сведения не отправляются.
@@ -3799,6 +3811,7 @@
       VPD – это набор общих сведений (например, серийных номеров и кодов деталей) и данных о настройке, которые связаны с устройством.</translation>
 <translation id="5765780083710877561">Описание:</translation>
 <translation id="5766438888216077649">Не задавать свойство <ph name="WINDOW_OPENER_PROPERTY" /> для ссылок, открывающихся с использованием target="<ph name="BLANK_PAGE_NAME" />"</translation>
+<translation id="5767776869128458023">Отключить дополнительные страницы с сообщениями об ошибках</translation>
 <translation id="5770738360657678870">Канал для разработчиков (может быть нестабильной)</translation>
 <translation id="5774856474228476867">URL поиска для поисковой системы по умолчанию</translation>
 <translation id="5775235485119094648">Заряжать батарею, когда уровень заряда соответствует выбранному диапазону</translation>
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index ce752cb2..7d35275 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -510,6 +510,7 @@
 
       การตั้งค่านโยบายเป็น "ปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้คำเตือนปรากฏขึ้นในระบบที่ไม่รองรับ</translation>
 <translation id="1634989431648355062">อนุญาตปลั๊กอิน <ph name="FLASH_PLUGIN_NAME" /> ในเว็บไซต์เหล่านี้</translation>
+<translation id="1639468541408865385">เปิดใช้แคชการตรวจสอบสิทธิ์ HTTP ที่มีขอบเขตทั่วไป</translation>
 <translation id="1641394008743444477">อนุญาตให้คุณสร้างรายการฟีเจอร์ <ph name="PRODUCT_OS_NAME" /> ที่จะปิดใช้
 
       การปิดใช้ฟีเจอร์ใดๆ ในรายการนี้หมายความว่าผู้ใช้จะเข้าถึงฟีเจอร์นั้นจากอินเทอร์เฟซผู้ใช้ (UI) ไม่ได้และจะเห็นข้อความ "ปิดใช้โดยผู้ดูแลระบบ" ประสบการณ์ของผู้ใช้สำหรับฟีเจอร์ที่ปิดใช้จะกำหนดโดย <ph name="SYSTEM_FEATURES_DISABLE_MODE" />
@@ -548,6 +549,7 @@
       หากไม่ได้ตั้งค่านโยบายนี้ การติดตั้ง <ph name="PLUGIN_VM_NAME" /> จะไม่สำเร็จหากอุปกรณ์มีพื้นที่ว่างในดิสก์น้อยกว่า 20 GB (ค่าเริ่มต้น)
       หากตั้งค่านโยบายนี้ การติดตั้ง <ph name="PLUGIN_VM_NAME" /> จะไม่สำเร็จหากอุปกรณ์มีพื้นที่ว่างในดิสก์น้อยกว่าที่นโยบายกำหนดไว้</translation>
 <translation id="1690383938831887552">ป้องกันไม่ให้โหลด Signed HTTP Exchange</translation>
+<translation id="169467210981344373">ปิดใช้แคชการตรวจสอบสิทธิ์ HTTP ที่มีขอบเขตทั่วไป</translation>
 <translation id="1700458869527146675">การตั้งค่านโยบายนี้จะกำหนดค่าพร็อกซีสำหรับ Chrome และแอป ARC โดยไม่พิจารณาตัวเลือกเกี่ยวกับพร็อกซีทั้งหมดที่ระบุจากบรรทัดคำสั่ง
 
        การไม่ตั้งค่านโยบายนี้จะทำให้ผู้ใช้เลือกการตั้งค่าพร็อกซีได้
@@ -571,6 +573,7 @@
       หมายเหตุ: ดูตัวอย่างโดยละเอียดเพิ่มเติมได้ที่ The Chromium Projects ( https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett )</translation>
 <translation id="1700811900332333712">อนุญาตให้อุปกรณ์ขอทำ Powerwash</translation>
 <translation id="1708496595873025510">ตั้งค่าข้อจำกัดการเรียกเมล็ดรูปแบบ</translation>
+<translation id="1709154322133526432">เปิดใช้การตรวจสอบเบราว์เซอร์เริ่มต้นเมื่อเริ่มต้นระบบ</translation>
 <translation id="1713829924716792485">การตั้งค่านโยบายเป็น "เปิดใช้" หรือไม่ตั้งค่าจะทำให้ผู้ใช้เชื่อมต่อกับโฮสต์การเข้าถึงระยะไกลเพื่อโอนไฟล์ระหว่างไคลเอ็นต์และโฮสต์ได้ นโยบายนี้ไม่มีผลกับการเชื่อมต่อความช่วยเหลือระยะไกล ซึ่งไม่รองรับการโอนไฟล์
 
       การตั้งค่านโยบายเป็น "ปิดใช้" จะทำให้โอนไฟล์ไม่ได้</translation>
@@ -826,6 +829,7 @@
 <translation id="2037214548071298156">การตั้งค่านโยบายเป็น "เปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้อุปกรณ์ที่ลงทะเบียนไว้รายงานสถิติด้านฮาร์ดแวร์ เช่น การใช้งาน CPU/RAM
 
       การตั้งค่านโยบายเป็น "ปิดใช้" จะทำให้อุปกรณ์ที่ลงทะเบียนไว้ไม่รายงานสถิติด้านฮาร์ดแวร์</translation>
+<translation id="2039801473506609891">ปิดใช้การรองรับ HTTP/0.9 ในพอร์ตที่ไม่ใช่ค่าเริ่มต้น</translation>
 <translation id="2040479044912658454">โหมดการแรสเตอร์งานพิมพ์</translation>
 <translation id="2042513383871755994">การตั้งค่านโยบายจะให้คุณสร้างรายการรูปแบบ URL ซึ่งระบุเว็บไซต์ที่ไม่สามารถขอให้ผู้ใช้ให้สิทธิ์การเข้าถึงในการอ่านไฟล์หรือไดเรกทอรีในระบบไฟล์ของระบบปฏิบัติการของโฮสต์ผ่าน File System API ได้
 
@@ -1128,6 +1132,7 @@
       การตั้งค่า <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> (ค่า 1) จะอนุญาตให้ใช้เฉพาะรูปแบบที่ถือว่าเป็นการแก้ไขด้านความปลอดภัยที่สำคัญมากหรือการแก้ไขด้านความเสถียรกับ <ph name="PRODUCT_NAME" /> เท่านั้น
 
       การตั้งค่า <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> (ค่า 2) จะไม่อนุญาตให้ใช้รูปแบบใดก็ตามกับเบราว์เซอร์ โปรดทราบว่าโหมดนี้อาจขัดขวางไม่ให้นักพัฒนาแอปของ <ph name="PRODUCT_NAME" /> ทำการแก้ไขด้านความปลอดภัยที่สำคัญมากได้อย่างทันท่วงที และด้วยเหตุนี้จึงไม่แนะนำให้ใช้โหมดนี้</translation>
+<translation id="2402547085566757554">ไม่ใช้หน้าแท็บใหม่เป็นหน้าแรก</translation>
 <translation id="2411629345938804022">การตั้งค่านโยบายเป็น 3 จะให้เว็บไซต์ขอสิทธิ์เข้าถึงอุปกรณ์บลูทูธใกล้เคียงได้ การตั้งค่านโยบายเป็น 2 จะปฏิเสธสิทธิ์เข้าถึงอุปกรณ์บลูทูธใกล้เคียง
 
       การไม่ตั้งค่านโยบายจะให้เว็บไซต์ขอสิทธิ์เข้าถึงได้ แต่ผู้ใช้เปลี่ยนการตั้งค่านี้ได้</translation>
@@ -1409,6 +1414,7 @@
 <translation id="2716623398185506073">การตั้งค่านโยบายเป็น "เปิดใช้" จะทำให้อุปกรณ์ที่ลงทะเบียนไว้รายงานสถิติด้านฮาร์ดแวร์และตัวระบุที่เกี่ยวข้องกับพลังงาน
 
       การตั้งค่านโยบายเป็น "ปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้อุปกรณ์ที่ลงทะเบียนไว้ไม่รายงานสถิติด้านพลังงาน</translation>
+<translation id="2721185634942265347">ปิดใช้การแนะนำการค้นหา</translation>
 <translation id="2723692978495226412">การตั้งค่านโยบายนี้เป็น "เปิดใช้" จะทำให้มีการแนะนำแอปที่ผู้ใช้เคยติดตั้งไว้ในอุปกรณ์อื่น การแนะนำเหล่านี้จะปรากฏใน Launcher หลังจากการแนะนำแอปในเครื่อง หากไม่มีการป้อนข้อความค้นหา
 
       การตั้งค่านโยบายเป็น "ปิดใช้" หรือไม่ตั้งค่าจะทำให้การแนะนำดังกล่าวไม่ปรากฏขึ้น
@@ -1661,6 +1667,7 @@
         นโยบายนี้ไม่มีผลต่อนโยบายที่เปิดตัวไปแล้ว</translation>
 <translation id="3016255526521614822">อนุญาตพิเศษให้แอปสำหรับจดโน้ตแสดงในหน้าจอล็อกของ <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="3017578958356048910">โปรแกรมอ่าน PDF จะใส่คำอธิบายประกอบใน PDF ได้</translation>
+<translation id="3020623128585817424">ปิดใช้การตรวจสอบเบราว์เซอร์เริ่มต้นเมื่อเริ่มต้นระบบ</translation>
 <translation id="3020953534071988875">การกำหนดค่านโยบายนี้จะอนุญาต/ไม่อนุญาตการตรวจสอบสิทธิ์แบบแอมเบียนท์สำหรับโปรไฟล์ที่ไม่ระบุตัวตนและโปรไฟล์ผู้เยี่ยมชมใน <ph name="PRODUCT_NAME" />
 
       การตรวจสอบสิทธิ์แบบแอมเบียนท์คือการตรวจสอบสิทธิ์ http ด้วยข้อมูลเข้าสู่ระบบเริ่มต้นหากไม่ได้ระบุข้อมูลเข้าสู่ระบบที่ชัดแจ้งผ่านรูปแบบคำถาม/คำตอบแบบ NTLM/Kerberos/Negotiate
@@ -3440,6 +3447,11 @@
 
       หากตั้งค่านโยบายนี้เป็นรายการตัวระบุวิธีการป้อนข้อมูล วิธีการป้อนข้อมูลที่ระบุจะพร้อมใช้งานในหน้าจอการลงชื่อเข้าใช้ ระบบจะเลือกวิธีการป้อนข้อมูลแรกที่ระบุไว้ล่วงหน้า เมื่อมีการทำงานบนพ็อดผู้ใช้ในหน้าจอการลงชื่อเข้าใช้ วิธีการป้อนข้อมูลที่ผู้ใช้ใช้ล่าสุดจะพร้อมใช้งานนอกเหนือจากวิธีการป้อนข้อมูลที่ได้จากนโยบายนี้ หากไม่ได้ตั้งค่านโยบายนี้ วิธีการป้อนข้อมูลในหน้าจอการลงชื่อเข้าใช้จะได้รับมาจากภาษาที่หน้าจอการลงชื่อเข้าใช้แสดง ระบบจะไม่สนใจค่าที่ไม่ใช่ตัวระบุวิธีการป้อนข้อมูลที่ถูกต้อง</translation>
 <translation id="5407008856008996384">อนุญาตการเข้าถึงเครื่องพิมพ์ CUPS</translation>
+<translation id="5417597818300833094">การตั้งค่านโยบายนี้จะอนุญาตให้ผู้ใช้เลือกวิธีการป้อนข้อมูลวิธีใดวิธีหนึ่งสำหรับเซสชันของ <ph name="PRODUCT_OS_NAME" /> ที่คุณระบุ
+
+       หากคุณไม่ได้ตั้งค่าหรือตั้งค่าเป็นรายการว่างเปล่า ผู้ใช้จะเลือกวิธีการป้อนข้อมูลวิธีใดก็ได้ที่รองรับ
+
+      หมายเหตุ: หากไม่รองรับวิธีการป้อนข้อมูลในปัจจุบัน ระบบจะเปลี่ยนไปใช้เลย์เอาต์ของแป้นพิมพ์ฮาร์ดแวร์ (หากอนุญาตให้ใช้ได้) หรือวิธีการแรกที่ใช้ได้ในรายการนี้ โดยจะไม่สนใจวิธีการที่ใช้ไม่ได้หรือไม่รองรับ</translation>
 <translation id="5417906792459853336">รายงานข้อมูลสำหรับพื้นที่และการใช้งานแอปพลิเคชันของอุปกรณ์
 
       หากตั้งค่านโยบายเป็น "เท็จ" หรือไม่ได้ตั้งค่า จะไม่มีการรายงานข้อมูล
@@ -3758,6 +3770,7 @@
       ข้อมูลผลิตภัณฑ์ที่สำคัญ (VPD) เป็นคอลเล็กชันการกำหนดค่าและข้อมูลต่างๆ (เช่น หมายเลขชิ้นส่วนและหมายเลขซีเรียล) ที่เชื่อมโยงกับอุปกรณ์</translation>
 <translation id="5765780083710877561">คำอธิบาย:</translation>
 <translation id="5766438888216077649">อย่าตั้งค่า <ph name="WINDOW_OPENER_PROPERTY" /> สำหรับลิงก์ที่กำหนดเป้าหมาย <ph name="BLANK_PAGE_NAME" /></translation>
+<translation id="5767776869128458023">ปิดใช้หน้าแสดงข้อผิดพลาดสำรอง</translation>
 <translation id="5770738360657678870">เวอร์ชันที่กำลังพัฒนา (อาจไม่เสถียร)</translation>
 <translation id="5774856474228476867">URL การค้นหาของผู้ให้บริการการค้นหาเริ่มต้น</translation>
 <translation id="5775235485119094648">ชาร์จแบตเตอรี่ขณะอยู่ภายในช่วงคงที่</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 416dcce..139edc3a 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -510,6 +510,7 @@
 
       Politika Devre Dışı değerine ayarlanır veya ayarlanmadan bırakılırsa desteklenmeyen sistemlerde uyarı görüntülenir.</translation>
 <translation id="1634989431648355062">Bu sitelerde <ph name="FLASH_PLUGIN_NAME" /> eklentisine izin ver</translation>
+<translation id="1639468541408865385">Genel kapsamlı HTTP kimlik doğrulama önbelleğini etkinleştir</translation>
 <translation id="1641394008743444477">Devre dışı bırakılacak <ph name="PRODUCT_OS_NAME" /> özelliklerini belirlemenize izin verir.
 
       Bu özelliklerin herhangi birisini iptal etmek, kullanıcının arayüzde ilgili özelliğe erişemeyeceği ve bunu "yönetici tarafından engellendi" olarak göreceği anlamına gelir. Devre dışı bırakılan özelliklerle ilgili kullanıcı deneyimine <ph name="SYSTEM_FEATURES_DISABLE_MODE" /> karar verir
@@ -548,6 +549,7 @@
       Bu politika ayarlanmadan bırakılırsa boş disk alanınız 20 GB'tan (varsayılan değer) az olduğunda <ph name="PLUGIN_VM_NAME" /> yüklemesi başarısız olur.
       Politika ayarlanırsa cihazda yetersiz disk alanı olduğunda <ph name="PLUGIN_VM_NAME" /> yüklemesi başarısız olur.</translation>
 <translation id="1690383938831887552">İmzalanmış HTTP Takaslarının yüklenmesini engelle</translation>
+<translation id="169467210981344373">Genel kapsamlı HTTP kimlik doğrulama önbelleğini devre dışı bırak</translation>
 <translation id="1700458869527146675">Politikanın ayarlanması, komut satırında proxy ile ilgili belirtilen tüm seçenekleri yok sayan Chrome ve ARC-uygulamaları için proxy ayarlarını yapılandırır.
 
        Politika ayarlanmazsa kullanıcılar kendi proxy ayarlarını seçebilir.
@@ -571,6 +573,7 @@
       Not: Daha ayrıntılı örnekler için Chromium Projeleri'ni ziyaret edin (https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett).</translation>
 <translation id="1700811900332333712">Cihaza Powerwash isteme izni verme</translation>
 <translation id="1708496595873025510">Varyasyon temelini alma sınırlamasını ayarla</translation>
+<translation id="1709154322133526432">Başlangıçta varsayılan tarayıcı kontrolünü etkinleştir</translation>
 <translation id="1713829924716792485">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa uzaktan erişim ana makinesine bağlı kullanıcıların istemci ile ana makine arasında dosya aktarımı yapmasına izin verilir. Bu durum, dosya aktarımını desteklemeyen uzaktan yardım bağlantıları için geçerli değildir.
 
       Politika, Devre Dışı değerine ayarlanırsa dosya aktarımına izin verilmez.</translation>
@@ -830,6 +833,7 @@
 <translation id="2037214548071298156">Politika Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa kayıtlı cihazlar CPU/RAM kullanımı gibi donanım istatistiklerini bildirir.
 
       Politika Devre Dışı değerine ayarlanırsa kayıtlı cihazlar donanım istatistiklerini bildirmez.</translation>
+<translation id="2039801473506609891">Varsayılan olmayan bağlantı noktalarında HTTP/0.9 desteğini devre dışı bırak</translation>
 <translation id="2040479044912658454">Yazdırmayı Pikselleştirme Modu</translation>
 <translation id="2042513383871755994">Politikayı ayarlamak, kullanıcılardan ana makine işletim sisteminin dosya sisteminde bulunan dosya veya dizinlere File System API üzerinden okuma erişimi vermelerini isteyemeyecek siteleri belirten bir URL kalıpları listesi yapmanıza olanak tanır.
 
@@ -1132,6 +1136,7 @@
       <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> (1 değeri) ayarlanırsa <ph name="PRODUCT_NAME" /> ürününe sadece önemli güvenlik veya sağlamlık düzeltmelerinin uygulanması sağlanır.
 
       <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> (2 değeri) ayarlanırsa tarayıcıya hiçbir varyasyonun uygulanmasına izin verilmez. Bu modun, <ph name="PRODUCT_NAME" /> geliştiricilerinin kritik güvenlik düzeltmelerini zamanında sağlamalarını engelleyebileceğini ve dolayısıyla önerilmediğini lütfen unutmayın.</translation>
+<translation id="2402547085566757554">Ana sayfa olarak Yeni Sekme Sayfası'nı kullanma</translation>
 <translation id="2411629345938804022">Politikayı 3 değerine ayarlamak web sitelerinin yakınlardaki Bluetooth cihazlarına erişim istemesini sağlar. Politikayı 2 değerine ayarlamak yakınlardaki Bluetooth cihazlarına erişimi kısıtlar.
 
       Ayarlanmazsa politika açık kalır fakat kullanıcılar bu ayarı değiştirebilir.</translation>
@@ -1426,6 +1431,7 @@
 <translation id="2716623398185506073">Politika Etkin değerine ayarlanırsa kayıtlı cihazlar güçle ilgili donanım istatistiklerini ve tanımlayıcıları bildirir.
 
       Politika Devre Dışı değerine ayarlanır veya ayarlanmadan bırakılırsa kayıtlı cihazlar güç istatistiklerini bildirmez.</translation>
+<translation id="2721185634942265347">Arama önerilerini devre dışı bırak</translation>
 <translation id="2723692978495226412">Bu politika, Etkin değerine ayarlanırsa kullanıcı tarafından daha önce diğer cihazlara yüklenen uygulamalar için öneriler verilir. Hiçbir arama metni girilmediyse bu öneriler yerel uygulama önerilerinden sonra başlatıcıda görünür.
 
       Bu politika, Devre Dışı değerine ayarlanır veya ayarlanmadan bırakılırsa bu öneriler görünmez.
@@ -1686,6 +1692,7 @@
         Bu politikanın önceden yayınlanmış politikalar üzerinde bir etkisi yoktur.</translation>
 <translation id="3016255526521614822">Beyaz listedeki not alma uygulamalarına <ph name="PRODUCT_OS_NAME" /> kilit ekranında izin verilir</translation>
 <translation id="3017578958356048910">PDF görüntüleyici, PDF'lere not ekleyebilir.</translation>
+<translation id="3020623128585817424">Başlangıçta varsayılan tarayıcı kontrolünü devre dışı bırak</translation>
 <translation id="3020953534071988875">Bu politika yapılandırıldığında <ph name="PRODUCT_NAME" /> içindeki Gizli profiller ve Misafir profilleri için ambiyans kimlik doğrulamasına izin verilir/verilmez.
 
       Ambiyans Kimlik Doğrulaması, NTLM/Kerberos/Negotiate görev/yanıt şemaları üzerinden açık kimlik bilgileri sağlanmadığında varsayılan kimlik bilgileriyle gerçekleştirilen http kimlik doğrulamasıdır.
@@ -3471,6 +3478,11 @@
 
       Bu politika bir giriş yöntemi tanımlayıcıları listesine ayarlanırsa belirtilen giriş yöntemleri oturum açma ekranında kullanılabilir. Belirtilen ilk giriş yöntemi önceden seçilir. Oturum açma ekranında bir kullanıcı simgesine odaklanılmışken, kullanıcının kullandığı son giriş yöntemi de bu politikada belirtilen giriş yöntemlerine ek olarak gösterilir. Bu politika ayarlanmazsa oturum açma ekranındaki giriş yöntemleri, oturum açma ekranının görüntülendiği yerel ayardan türetilir. Geçerli giriş yöntemi tanımlayıcıları olmayan değerler yok sayılır.</translation>
 <translation id="5407008856008996384">CUPS yazıcılara erişim izni verir</translation>
+<translation id="5417597818300833094">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.
+
+      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="5417906792459853336">Cihazın uygulama envanteri ve kullanımı için bilgi raporlayın.
 
       Bu politika false (yanlış) değerine ayarlanırsa veya ayarlanmadan bırakılırsa bilgi raporlanmaz.
@@ -3790,6 +3802,7 @@
       Önemli Ürün Verileri (Vital Product Data-VPD), cihazla ilişkilendirilmiş yapılandırma ve bilgi amaçlı (ör. parti ve seri numarası) verileri içerir.</translation>
 <translation id="5765780083710877561">Açıklama:</translation>
 <translation id="5766438888216077649"><ph name="BLANK_PAGE_NAME" /> sayfasını hedefleyen bağlantılar için <ph name="WINDOW_OPENER_PROPERTY" /> özelliğini ayarlamayın</translation>
+<translation id="5767776869128458023">Alternatif hata sayfalarını devre dışı bırak</translation>
 <translation id="5770738360657678870">Yeni geliştirilenler kanalı (kararsız olabilir)</translation>
 <translation id="5774856474228476867">Varsayılan arama sağlayıcı arama URL'si</translation>
 <translation id="5775235485119094648">Pili belirlenmiş bir aralıktayken şarj et.</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index a6b059cf..70648adb 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -511,6 +511,7 @@
 
       Nếu bạn đặt thành Tắt hoặc không đặt chính sách này, các cảnh báo sẽ xuất hiện trên những hệ thống không được hỗ trợ.</translation>
 <translation id="1634989431648355062">Cho phép plugin <ph name="FLASH_PLUGIN_NAME" /> trên các trang web này</translation>
+<translation id="1639468541408865385">Bật bộ nhớ đệm xác thực HTTP có phạm vi toàn cầu</translation>
 <translation id="1641394008743444477">Cho phép bạn thiết lập danh sách các tính năng của <ph name="PRODUCT_OS_NAME" /> sẽ bị tắt.
 
       Khi tắt bất kỳ tính năng nào trong số những tính năng này, người dùng sẽ không truy cập được tính năng đó từ giao diện người dùng và sẽ thấy trạng thái của tính năng đó là "đã bị quản trị viên tắt". Trải nghiệm người dùng đối với các tính năng bị tắt tùy thuộc vào <ph name="SYSTEM_FEATURES_DISABLE_MODE" />
@@ -549,6 +550,7 @@
       Nếu bạn không đặt chính sách này, thì thiết bị sẽ không cài đặt được <ph name="PLUGIN_VM_NAME" /> nếu ổ đĩa còn dưới 20 GB trống (giá trị mặc định).
       Nếu bạn đặt chính sách này, thì thiết bị sẽ không cài đặt được <ph name="PLUGIN_VM_NAME" /> nếu ổ đĩa có ít dung lượng trống hơn mức mà chính sách yêu cầu.</translation>
 <translation id="1690383938831887552">Ngăn Signed HTTP Exchanges tải</translation>
+<translation id="169467210981344373">Tắt bộ nhớ đệm xác thực HTTP có phạm vi toàn cầu</translation>
 <translation id="1700458869527146675">Khi bạn đặt chính sách này, các chế độ cài đặt proxy cho Chrome và các ứng dụng dùng App Runtime for Chrome (ARC) sẽ được định cấu hình. Chrome và các ứng dụng này sẽ bỏ qua mọi tùy chọn liên quan đến proxy được chỉ định thông qua dòng lệnh.
 
        Nếu bạn không đặt chính sách này, người dùng có thể chọn các chế độ cài đặt proxy.
@@ -572,6 +574,7 @@
       Lưu ý: Để xem thêm ví dụ cụ thể, hãy truy cập trang của The Chromium Projects (https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett).</translation>
 <translation id="1700811900332333712">Cho phép thiết bị yêu cầu chức năng Powerwash</translation>
 <translation id="1708496595873025510">Đặt giới hạn cho quá trình tìm nạp khởi đầu Biến thể</translation>
+<translation id="1709154322133526432">Bật tính năng kiểm tra trình duyệt mặc định khi khởi động</translation>
 <translation id="1713829924716792485">Nếu bạn đặt thành Bật hoặc không đặt chính sách này, thì những người dùng đã kết nối với một máy chủ truy cập từ xa có thể truyền tệp giữa máy khách và máy chủ. Điều này không áp dụng cho các đường kết nối hỗ trợ từ xa không hỗ trợ truyền tệp.
 
       Nếu bạn đặt chính sách này thành Tắt, người dùng sẽ không thể truyền tệp.</translation>
@@ -841,6 +844,7 @@
 <translation id="2037214548071298156">Nếu bạn không đặt hoặc đặt chính sách này thành Bật, thì thiết bị đã đăng ký sẽ báo cáo số liệu thống kê về phần cứng, chẳng hạn như mức sử dụng CPU/RAM.
 
       Nếu bạn đặt chính sách này thành Tắt, thiết bị đã đăng ký sẽ không báo cáo số liệu thống kê về phần cứng đó.</translation>
+<translation id="2039801473506609891">Tắt hỗ trợ HTTP/0.9 trên các cổng không phải cổng mặc định</translation>
 <translation id="2040479044912658454">Chế độ tạo điểm ảnh bản in</translation>
 <translation id="2042513383871755994">Khi đặt chính sách này, bạn có thể tạo danh sách các mẫu URL để chỉ định những trang web không được phép yêu cầu người dùng cấp quyền đọc các tệp hoặc thư mục trong hệ thống tệp của hệ điều hành máy chủ qua API Hệ thống tệp.
 
@@ -1143,6 +1147,7 @@
       Việc đặt <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> (giá trị 1) sẽ chỉ cho phép áp dụng những biến thể được xem là bản sửa lỗi quan trọng về độ bảo mật hoặc độ ổn định cho <ph name="PRODUCT_NAME" />.
 
       Việc đặt <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> (giá trị 2) sẽ không cho phép áp dụng tất cả biến thể cho trình duyệt. Xin lưu ý rằng chế độ này có thể khiến nhà phát triển <ph name="PRODUCT_NAME" /> không thể cung cấp kịp thời các bản sửa lỗi bảo mật quan trọng nên không được khuyên dùng.</translation>
+<translation id="2402547085566757554">Không dùng trang Thẻ mới làm trang chủ</translation>
 <translation id="2411629345938804022">Nếu bạn đặt chính sách này thành 3, thì trang web sẽ yêu cầu quyền truy cập vào thiết bị Bluetooth ở gần. Nếu bạn đặt chính sách này thành 2, thì các trang web sẽ không được phép truy cập vào thiết bị Bluetooth ở gần.
 
       Nếu bạn không đặt chính sách này, thì các trang sẽ yêu cầu quyền truy cập nhưng người dùng có thể thay đổi tùy chọn cài đặt này.</translation>
@@ -1437,6 +1442,7 @@
 <translation id="2716623398185506073">Nếu bạn đặt chính sách này thành Bật, thiết bị đã đăng ký sẽ báo cáo số liệu thống kê phần cứng và giá trị nhận dạng liên quan đến nguồn.
 
       Nếu bạn không đặt hoặc đặt chính sách này thành Tắt, thiết bị đã đăng ký sẽ không báo cáo số liệu thống kê nguồn.</translation>
+<translation id="2721185634942265347">Tắt tính năng đề xuất tìm kiếm</translation>
 <translation id="2723692978495226412">Việc đặt chính sách này thành Bật sẽ tạo ra các đề xuất cho những ứng dụng mà trước đó người dùng đã cài đặt trên các thiết bị khác. Các đề xuất này sẽ xuất hiện trong trình chạy sau các đề xuất ứng dụng trên thiết bị nếu người dùng chưa nhập nội dung tìm kiếm nào.
 
       Nếu bạn đặt thành Tắt hoặc không đặt chính sách này, các đề xuất này sẽ không xuất hiện.
@@ -1703,6 +1709,7 @@
         Chính sách này không ảnh hưởng đến các chính sách đã phát hành.</translation>
 <translation id="3016255526521614822">Đưa các ứng dụng ghi chú được phép trên màn hình khóa của <ph name="PRODUCT_OS_NAME" /> vào danh sách cho phép</translation>
 <translation id="3017578958356048910">Trình xem PDF có thể chú thích trong tệp PDF</translation>
+<translation id="3020623128585817424">Tắt tính năng kiểm tra trình duyệt mặc định khi khởi động</translation>
 <translation id="3020953534071988875">Việc định cấu hình chính sách này sẽ cho phép/không cho phép xác thực môi trường xung quanh đối với các cấu hình chế độ Khách và cấu hình chế độ Ẩn danh trong <ph name="PRODUCT_NAME" />.
 
       Xác thực môi trường xung quanh là quy trình xác thực http bằng bằng chứng xác thực mặc định nếu bằng chứng xác thực rõ ràng không được cung cấp qua lược đồ thách thức/phản hồi NTLM/Kerberos/Negotiate.
@@ -3504,6 +3511,11 @@
 
       Nếu chính sách này được đặt thành danh sách số nhận dạng phương thức nhập, phương thức nhập được cung cấp sẽ có sẵn trên màn hình đăng nhập. Phương thức nhập được cung cấp đầu tiên sẽ được chọn sẵn. Mặc dù nhóm người dùng được lấy tiêu điểm trên màn hình đăng nhập, phương thức nhập được sử dụng gần đây nhất của người dùng sẽ có sẵn ngoài phương thức nhập được cung cấp bởi chính sách này. Nếu chính sách này chưa được đặt, các phương thức nhập trên màn hình đăng nhập sẽ được lấy từ ngôn ngữ mà màn hình đăng nhập hiển thị. Các giá trị không phải số nhận dạng phương thức nhập hợp lệ sẽ bị bỏ qua.</translation>
 <translation id="5407008856008996384">Cho phép truy cập vào máy in CUPS</translation>
+<translation id="5417597818300833094">Nếu bạn đặt chính sách này, thì người dùng có thể chọn một trong nhiều phương thức nhập cho phiên <ph name="PRODUCT_OS_NAME" /> mà bạn chỉ định.
+
+       Nếu bạn đặt chính sách này thành một danh sách trống hoặc không đặt chính sách này, thì người dùng có thể chọn tất cả phương thức nhập được hỗ trợ.
+
+      Xin lưu ý: Nếu phương thức nhập hiện tại không được hỗ trợ, thì hệ thống sẽ sử dụng bố cục bàn phím phần cứng (nếu được phép) hoặc mục hợp lệ đầu tiên trong danh sách này. Hệ thống sẽ bỏ qua phương thức không hợp lệ hoặc không được hỗ trợ.</translation>
 <translation id="5417906792459853336">Báo cáo thông tin về mức sử dụng và danh sách ứng dụng của một thiết bị.
 
       Nếu bạn không đặt chính sách này hoặc đặt chính sách thành false, thì thông tin sẽ không được báo cáo.
@@ -3837,6 +3849,7 @@
       Dữ liệu sản phẩm quan trọng (VPD) là một tập hợp dữ liệu cấu hình và thông tin (chẳng hạn như bộ phận và số sê-ri) liên quan đến thiết bị đó.</translation>
 <translation id="5765780083710877561">Mô tả:</translation>
 <translation id="5766438888216077649">Không đặt <ph name="WINDOW_OPENER_PROPERTY" /> cho các đường liên kết nhắm đến <ph name="BLANK_PAGE_NAME" /></translation>
+<translation id="5767776869128458023">Tắt các trang lỗi thay thế</translation>
 <translation id="5770738360657678870">Kênh nhà phát triển (có thể không ổn định)</translation>
 <translation id="5774856474228476867">URL tìm kiếm nhà cung cấp dịch vụ tìm kiếm mặc định</translation>
 <translation id="5775235485119094648">Sạc pin khi thiết bị ở trong phạm vi cố định.</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index f72bf14b..786128b3 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -509,6 +509,7 @@
 
       如果將這項政策設為停用或不設定,不支援的系統上會顯示警告訊息。</translation>
 <translation id="1634989431648355062">允許在這些網站上執行 <ph name="FLASH_PLUGIN_NAME" /> 外掛程式</translation>
+<translation id="1639468541408865385">啟用全域範圍的 HTTP 驗證快取</translation>
 <translation id="1641394008743444477">這項政策可讓你設定要停用的 <ph name="PRODUCT_OS_NAME" />功能清單。
 
       任何功能一經停用,使用者就無法在使用者介面上存取該功能,且畫面上會顯示為「已由管理員停用」。已停用功能的使用者體驗由 <ph name="SYSTEM_FEATURES_DISABLE_MODE" /> 決定
@@ -547,6 +548,7 @@
       如果不設定這項政策,當裝置上的可用磁碟空間小於 20 GB (預設值) 時,系統將無法安裝 <ph name="PLUGIN_VM_NAME" />。
       如果設定這項政策,當裝置上的可用磁碟空間小於政策所要求的值時,系統將無法安裝 <ph name="PLUGIN_VM_NAME" />。</translation>
 <translation id="1690383938831887552">禁止載入採用 Signed HTTP Exchange 技術的內容</translation>
+<translation id="169467210981344373">停用全域範圍的 HTTP 驗證快取</translation>
 <translation id="1700458869527146675">你可以透過這項政策,設定 Chrome 和 ARC 應用程式的 Proxy 設定,系統會忽略所有從指令列所指定的 Proxy 相關選項。
 
        如果不設定這項政策,使用者就能選擇要使用的 Proxy 設定。
@@ -571,6 +573,7 @@
       注意:如需詳細範例,請前往 Chromium 專案 (網址為 https://www.chromium.org/developers/design-documents/network-settings#TOC-Command-line-options-for-proxy-sett)。</translation>
 <translation id="1700811900332333712">允許裝置要求執行 Powerwash</translation>
 <translation id="1708496595873025510">設定變異版本種子的擷取限制</translation>
+<translation id="1709154322133526432">啟用啟動時的預設瀏覽器檢查功能</translation>
 <translation id="1713829924716792485">如果將這項政策設為啟用或不設定,使用者可連線至遠端存取主機,以便在用戶端和主機之間傳輸檔案。遠端協助連線不支援檔案傳輸功能,因此不適用這項政策。
 
       如果將這項政策設為停用,使用者就無法傳輸檔案。</translation>
@@ -824,6 +827,7 @@
 <translation id="2037214548071298156">如果將這項政策設為啟用或不設定,已註冊的裝置會回報 CPU/RAM 使用量等硬體統計資料。
 
       如果將這項政策設為停用,已註冊的裝置不會回報硬體統計資料。</translation>
+<translation id="2039801473506609891">在非預設連接埠停用 HTTP/0.9 支援功能</translation>
 <translation id="2040479044912658454">列印光柵化模式</translation>
 <translation id="2042513383871755994">你可以透過這項政策建立網址模式清單,指定哪些網站無法要求使用者授予讀取權限,以透過 File System API 讀取主機作業系統中檔案系統的檔案或目錄。
 
@@ -1127,6 +1131,7 @@
       如果設為 <ph name="CRITICAL_VARIATIONS_ONLY_OPTION_NAME" /> (值為 1),使用者只能將修正重大安全性或穩定性問題的變化版本套用到 <ph name="PRODUCT_NAME" />。
 
       如果設為 <ph name="VARIATIONS_DISABLED_OPTION_NAME" /> (值為 2),使用者無法將任何變化版本套用到瀏覽器。請注意,這個模式可能會讓 <ph name="PRODUCT_NAME" /> 開發人員無法及時提供重大安全性修正項目,因此不建議使用。</translation>
+<translation id="2402547085566757554">不要將新分頁設為首頁</translation>
 <translation id="2411629345938804022">如果將這項政策設為 3,網站即可要求存取附近的藍牙裝置。如果將這項政策設為 2,網站將無法存取附近的藍牙裝置。
 
       如果未設定這項政策,網站可要求存取附近的藍牙裝置,但使用者可以變更這項設定。</translation>
@@ -1408,6 +1413,7 @@
 <translation id="2716623398185506073">如果將這項政策設為啟用,已註冊的裝置會回報與電源相關的硬體統計資料和 ID。
 
       如果將這項政策設為停用或不設定,已註冊的裝置不會回報電源統計資料。</translation>
+<translation id="2721185634942265347">停用搜尋建議</translation>
 <translation id="2723692978495226412">如果將這項政策設為啟用,系統會根據使用者先前在其他裝置上安裝的應用程式,提供應用程式建議。如果未輸入任何搜尋文字,這類建議會顯示在啟動器中的本機應用程式建議之後。
 
       如果將這項政策設為停用或不設定,這類建議不會顯示。
@@ -1669,6 +1675,7 @@
         這項政策不會影響已發布的政策。</translation>
 <translation id="3016255526521614822">將「<ph name="PRODUCT_OS_NAME" />」螢幕鎖定畫面允許的筆記應用程式加入許可清單</translation>
 <translation id="3017578958356048910">PDF 檢視器可以為 PDF 加註</translation>
+<translation id="3020623128585817424">停用啟動預設瀏覽器時的檢查功能</translation>
 <translation id="3020953534071988875">你可以透過這項政策指定是否可以在 <ph name="PRODUCT_NAME" /> 的無痕模式和訪客設定檔中執行背景驗證。
 
       如果未透過 NTLM/Kerberos/Negotiate 問題詢答的驗證配置提供明確的憑證,則背景驗證為包含預設憑證的 HTTP 驗證。
@@ -3438,6 +3445,11 @@
 
       如果將這項政策設為輸入法 ID 清單,登入畫面即可顯示指定的輸入法。系統會預先選取第一個指定的輸入法。在特定使用者視窗的登入畫面中,除了這項政策指定的輸入法之外,還會提供使用者最後一次使用的輸入法。如果未設定這項政策,系統會根據登入畫面顯示的語言代碼提供登入畫面的輸入法。如果值不是有效的輸入法 ID,則會遭到忽略。</translation>
 <translation id="5407008856008996384">允許存取 CUPS 印表機</translation>
+<translation id="5417597818300833094">透過這項政策,你可以讓使用者為 <ph name="PRODUCT_OS_NAME" /> 工作階段選擇你指定的其中一種輸入法。
+
+       如果不設定這項政策或將清單設為空白,使用者可以選取任何支援的輸入法。
+
+      注意:若系統不支援目前的輸入法,就會將輸入法切換至硬體鍵盤配置 (如果情況允許),或是這份清單中的第一個有效項目。系統會忽略無效或不支援的輸入法。</translation>
 <translation id="5417906792459853336">回報裝置的應用程式清單和使用狀況資訊。
 
       如果將這項政策設為 False 或未設定,系統將不會回報這項資訊。
@@ -3747,6 +3759,7 @@
       重要產品資料 (VPD) 是與裝置相關聯的一組設定和說明資料 (例如零件和序號)。</translation>
 <translation id="5765780083710877561">說明:</translation>
 <translation id="5766438888216077649">不要為目標是 <ph name="BLANK_PAGE_NAME" /> 的連結設定 <ph name="WINDOW_OPENER_PROPERTY" /></translation>
+<translation id="5767776869128458023">停用替代的錯誤網頁</translation>
 <translation id="5770738360657678870">開發頻道 (可能不穩定)</translation>
 <translation id="5774856474228476867">預設搜尋引擎搜尋網址</translation>
 <translation id="5775235485119094648">當電量位於特定範圍內時進行充電。</translation>
diff --git a/components/safe_browsing/content/browser/safe_browsing_network_context.cc b/components/safe_browsing/content/browser/safe_browsing_network_context.cc
index c755d24..ea433d8 100644
--- a/components/safe_browsing/content/browser/safe_browsing_network_context.cc
+++ b/components/safe_browsing/content/browser/safe_browsing_network_context.cc
@@ -119,11 +119,6 @@
 
     network_context_params->http_cache_enabled = false;
 
-    // These are needed for PAC scripts that use FTP URLs.
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-    network_context_params->enable_ftp_url_support = true;
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
     base::FilePath cookie_path = user_data_dir_.Append(
         base::FilePath::StringType(kSafeBrowsingBaseFilename) + kCookiesFile);
     network_context_params->cookie_path = cookie_path;
diff --git a/components/soda/soda_installer.cc b/components/soda/soda_installer.cc
index de28cd8..bdc2564 100644
--- a/components/soda/soda_installer.cc
+++ b/components/soda/soda_installer.cc
@@ -172,6 +172,17 @@
   NotifyOnSodaLanguagePackInstalled(language_code);
 }
 
+void SodaInstaller::NotifyOnSodaLanguagePackProgressForTesting(
+    int progress,
+    LanguageCode language_code) {
+  auto it = language_pack_progress_.find(language_code);
+  if (it == language_pack_progress_.end())
+    language_pack_progress_.insert({language_code, progress});
+  else
+    language_pack_progress_[language_code] = progress;
+  NotifyOnSodaLanguagePackProgress(progress, language_code);
+}
+
 void SodaInstaller::NotifyOnSodaLanguagePackErrorForTesting(
     LanguageCode language_code) {
   auto it = language_pack_progress_.find(language_code);
diff --git a/components/soda/soda_installer.h b/components/soda/soda_installer.h
index de9b72f..5502595 100644
--- a/components/soda/soda_installer.h
+++ b/components/soda/soda_installer.h
@@ -121,6 +121,8 @@
   void UninstallSodaForTesting();
   void NotifySodaDownloadProgressForTesting(int percentage);
   void NotifyOnSodaLanguagePackInstalledForTesting(LanguageCode language_code);
+  void NotifyOnSodaLanguagePackProgressForTesting(int progress,
+                                                  LanguageCode language_code);
   void NotifyOnSodaLanguagePackErrorForTesting(LanguageCode language_code);
 
  protected:
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index bae12d35..2b54e144 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google Skyfies</translation>
 <translation id="4680804919228900307">Jy het sopas jou wagwoord op 'n misleidende werf ingevoer. Chromium beveel aan dat jy jou gestoorde wagwoorde vir <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> en ander werwe waar jy hierdie wagwoord gebruik, nou nagaan.</translation>
 <translation id="468314109939257734">Bekyk jou virtuele kaart se nommer</translation>
-<translation id="4690462567478992370">Hou op om 'n ongeldige sertifikaat te gebruik</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Kant</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 256d094..1a648ef 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -1064,7 +1064,6 @@
 <translation id="467809019005607715">Google ስላይዶች</translation>
 <translation id="4680804919228900307">አሁን የይለፍ ቃልዎን በአንድ አታላይ ጣቢያ ላይ አስገብተዋል። Chromium የ<ph name="WEBSITE_1" />፣ <ph name="WEBSITE_2" />፣ <ph name="WEBSITE_3" /> እና አሁን ይህን የይለፍ ቃል የተጠቀሙባቸው የሌሎች ጣቢያዎች የተቀመጡ የይለፍ ቃላትዎን መፈተሽ ይመክራል።</translation>
 <translation id="468314109939257734">የእርስዎን ምናባዊ ካርድ ቁጥር ይመልከቱ</translation>
-<translation id="4690462567478992370">ልክ ያልሆነ የእውቅና ማረጋገጫ መጠቀም አቁም</translation>
 <translation id="4691835149146451662">ስነ-ሕንጻ-A (የደብዳቤ ፖስታ)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">ጎን</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 4432a2f..aea7367a 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">‏العروض التقديمية من Google</translation>
 <translation id="4680804919228900307">‏لقد أدخلت للتو كلمة المرور في موقع إلكتروني مريب. وللحفاظ على أمان بياناتك، ينصحك Chromium بالتحقّق من كلمات المرور المحفوظة للمواقع الإلكترونية الثلاثة <ph name="WEBSITE_1" /> و<ph name="WEBSITE_2" /> و<ph name="WEBSITE_3" /> وغيرها من المواقع التي تستخدم فيها الآن كلمة المرور هذه.</translation>
 <translation id="468314109939257734">عرض رقم بطاقتك الافتراضية</translation>
-<translation id="4690462567478992370">التوقف عن استخدام شهادة غير صالحة</translation>
 <translation id="4691835149146451662">‏Architecture-A (مغلف)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" />‏ <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">الجانب</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index 801a165a..af122c8 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -1064,7 +1064,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">আপুনি এটা প্ৰৱঞ্চনামূলক ছাইটত এইমাত্ৰ নিজৰ পাছৱৰ্ডটো দিছে। Chromiumএ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> আৰু অন্য ছাইটসমূহ, য’ত আপুনি এই পাছৱৰ্ডটো ব্যৱহাৰ কৰে সেইবিলাকত ছেভ কৰি থোৱা আপোনাৰ পাছৱৰ্ডসমূহ এতিয়াই পৰীক্ষা কৰাটো চুপাৰিছ কৰে।</translation>
 <translation id="468314109939257734">আপোনাৰ ভাৰ্চুৱেল কাৰ্ড নম্বৰটো চাওক</translation>
-<translation id="4690462567478992370">অমান্য প্ৰমাণপত্ৰ ব্যৱহাৰ কৰা বন্ধ কৰক</translation>
 <translation id="4691835149146451662">স্থাপত্য বিদ্যা-A (লেফাফা)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">কাষ</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index 6cf20f4..ca63b38 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -1064,7 +1064,6 @@
 <translation id="467809019005607715">Google Slayd</translation>
 <translation id="4680804919228900307">İndicə parolunuzu aldadıcı saytda daxil etdiniz. Chromium <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> saytlarında və bu paroldan istifadə etdiyiniz digər saytlarda saxlanılmış parollarınızı indi yoxlamağı tövsiyə edir.</translation>
 <translation id="468314109939257734">Virtual kart nömrənizə baxın</translation>
-<translation id="4690462567478992370">Yalnış sertifikat istifadəsini dayandırın</translation>
 <translation id="4691835149146451662">Arxitektura-A (Zərf)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Tərəf</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index ef44082..b1c697c 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Паспрабуйце выдаліць файлы cookie<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Праверце налады абароненай DNS</translation>
 <translation id="1307966114820526988">Састарэлыя функцыі</translation>
+<translation id="1312803275555673949">Што пацвярджае гэту інфармацыю?</translation>
 <translation id="131405271941274527">Сайт <ph name="URL" /> запытвае доступ на абмен інфармацыяй, калі вы націсканнем выбіраеце свой тэлефон на прыладзе NFC</translation>
 <translation id="1314509827145471431">Пераплёт справа</translation>
 <translation id="1319245136674974084">Больш не пытаць адносна гэтай праграмы</translation>
@@ -641,6 +642,7 @@
 <translation id="3240791268468473923">Быў адкрыты аркуш, які паказваецца пры адсутнасці супадзення ўліковых даных для бяспечных плацяжоў</translation>
 <translation id="3249845759089040423">Стыльны</translation>
 <translation id="3252266817569339921">Французская</translation>
+<translation id="3257954757204451555">Ад каго атрымана гэта інфармацыя?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />. Каб хутка стварыць новую падзею ў Google Календары, націсніце Tab, затым Enter</translation>
 <translation id="3266793032086590337">Значэнне (канфліктуючае)</translation>
 <translation id="3268451620468152448">Адкрытыя ўкладкі</translation>
@@ -1039,6 +1041,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Паспрабуйце выключыць пашырэнні.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Адміністратар можа аддалена змяняць налады браўзера. Сама прылада таксама можа знаходзіцца пад знешнім кіраваннем. <ph name="BEGIN_LINK" />Даведацца больш<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Дастаўка</translation>
 <translation id="4579056131138995126">Personal (канверт)</translation>
 <translation id="4582204425268416675">Выдаліць картку</translation>
@@ -1068,7 +1071,6 @@
 <translation id="467809019005607715">Прэзентацыі Google</translation>
 <translation id="4680804919228900307">Вы толькі што ўвялі свой пароль на сайце, вядомым падманнымі паводзінамі. Chromium рэкамендуе праверыць захаваныя паролі на сайтах <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> і на іншых сайтах, дзе выкарыстоўваецца гэты пароль.</translation>
 <translation id="468314109939257734">Паглядзець нумар сваёй віртуальнай карткі</translation>
-<translation id="4690462567478992370">Спыніць выкарыстанне несапраўднага сертыфіката</translation>
 <translation id="4691835149146451662">Architecture-A (канверт)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Бакавы</translation>
@@ -1531,6 +1533,7 @@
 <translation id="6337534724793800597">Фільтр палітык па назве</translation>
 <translation id="6349101878882523185">Усталяваць праграму "<ph name="APP_NAME" />"</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Няма}=1{1 пароль (для даменаў <ph name="DOMAIN_LIST" />, сінхранізаваны)}=2{2 паролі (для даменаў <ph name="DOMAIN_LIST" />, сінхранізаваны)}one{# пароль (для даменаў <ph name="DOMAIN_LIST" />, сінхранізаваны)}few{# паролі (для даменаў <ph name="DOMAIN_LIST" />, сінхранізаваны)}many{# пароляў (для даменаў <ph name="DOMAIN_LIST" />, сінхранізаваны)}other{# пароля (для даменаў <ph name="DOMAIN_LIST" />, сінхранізаваны)}}</translation>
+<translation id="6355392890578844978">Гэты браўзер не знаходзіцца пад кіраваннем кампаніі або іншай арганізацыі. Аднак сама прылада можа знаходзіцца пад знешнім кіраваннем. <ph name="BEGIN_LINK" />Даведацца больш<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Што яны азначаюць?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Праверыць канфігурацыю абароненай DNS, проксі-сервера і брандмаўэра.<ph name="END_LINK" /></translation>
@@ -1983,6 +1986,7 @@
 <translation id="7961015016161918242">Ніколі</translation>
 <translation id="7966803981046576691">Тып уліковага запісу задання</translation>
 <translation id="79682505114836835">Значэнне <ph name="VALUE" /> не з'яўляецца правільным шаснаццатковым кодам колеру.</translation>
+<translation id="7970392640816874403">Што паведамляюць іншыя крыніцы?</translation>
 <translation id="7976214039405368314">Занадта шмат запытаў</translation>
 <translation id="7977538094055660992">Прылада вываду</translation>
 <translation id="7977894662897852582">EDP</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index fe407fd..302868e 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -1070,7 +1070,6 @@
 <translation id="467809019005607715">Google Презентации</translation>
 <translation id="4680804919228900307">Току-що въведохте паролата си в измамнически сайт. Chromium препоръчва да проверите запазените си пароли за <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> и други сайтове, на които понастоящем използвате тази парола.</translation>
 <translation id="468314109939257734">Преглед на номера на виртуалната ви карта</translation>
-<translation id="4690462567478992370">Спиране на използването на невалиден сертификат</translation>
 <translation id="4691835149146451662">Architecture-A (плик)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Страна</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index 8b356964..0a01c1f 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -1070,7 +1070,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">আপনি এইমাত্র একটি প্রতারণামূলক সাইটে আপনার পাসওয়ার্ড লিখেছেন। <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> এবং অন্যান্য সাইটে, যেখানে যেখানে আপনি এই পাসওয়ার্ডটি ব্যবহার করেন, Chromium আপনাকে সেইসব জায়গায় গিয়ে আপনার সেভ করা পাসওয়ার্ডগুলি পরিবর্তন করতে সাজেস্ট করছে।</translation>
 <translation id="468314109939257734">আপনার ভার্চুয়াল কার্ড নম্বর দেখুন</translation>
-<translation id="4690462567478992370">কোনও ভুল সার্টিফিকেট ব্যবহার করা বন্ধ করুন</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">সাইড</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index 379ba4b..ece4341 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Upravo ste unijeli lozinku na obmanjujućoj web lokaciji. Chromium preporučuje provjeru sačuvanih lozinki za <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> i druge web lokacije na kojima sada koristite ovu lozinku.</translation>
 <translation id="468314109939257734">Pogledajte broj virtuelne kartice</translation>
-<translation id="4690462567478992370">Zaustavi korištenje nevažeće potvrde</translation>
 <translation id="4691835149146451662">Architecture-A (omotnica)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Strana</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index 33da4fc..1c804a4 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -1063,7 +1063,6 @@
 <translation id="467809019005607715">Presentacions de Google</translation>
 <translation id="4680804919228900307">Acabes d'introduir la contrasenya en un lloc web enganyós. Chromium et recomana que comprovis les teves contrasenyes desades per a <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> i altres llocs web en què utilitzis aquesta contrasenya ara.</translation>
 <translation id="468314109939257734">Mostra el número de la targeta virtual</translation>
-<translation id="4690462567478992370">Deixa de fer servir un certificat no vàlid</translation>
 <translation id="4691835149146451662">Architecture-A (sobre)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Costat</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index c2cc66e9..a539af19 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Zkuste vymazat soubory cookie<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Zkontrolujte nastavení zabezpečeného DNS</translation>
 <translation id="1307966114820526988">Funkce, které již nejsou podporovány</translation>
+<translation id="1312803275555673949">Jaké důkazy to dokládají?</translation>
 <translation id="131405271941274527">Web <ph name="URL" /> chce odesílat a přijímat informace, když se telefonem dotknete zařízení NFC</translation>
 <translation id="1314509827145471431">Vazba vpravo</translation>
 <translation id="1319245136674974084">U této aplikace se již příště neptat</translation>
@@ -634,6 +635,7 @@
 <translation id="3240791268468473923">List identifikačních údajů pro zabezpečené platby o nenalezených odpovídajících identifikačních údajích je otevřený</translation>
 <translation id="3249845759089040423">Elegantní</translation>
 <translation id="3252266817569339921">francouzština</translation>
+<translation id="3257954757204451555">Kdo za těmito informacemi stojí?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter rychle vytvoříte novou událost v Kalendáři Google</translation>
 <translation id="3266793032086590337">Hodnota (konflikt)</translation>
 <translation id="3268451620468152448">Otevřené karty</translation>
@@ -1027,6 +1029,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Zkuste zakázat rozšíření.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Administrátor může nastavení prohlížeče vzdáleně změnit. Aktivita na tomto zařízení může být spravována také mimo Chromium. <ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Doručení</translation>
 <translation id="4579056131138995126">Personal (obálka)</translation>
 <translation id="4582204425268416675">Odebrat kartu</translation>
@@ -1056,7 +1059,6 @@
 <translation id="467809019005607715">Prezentace Google</translation>
 <translation id="4680804919228900307">Právě jste své heslo zadali na klamavém webu. Chromium doporučuje zkontrolovat uložená hesla pro weby <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />a další weby, na nichž toto heslo používáte.</translation>
 <translation id="468314109939257734">Zobrazit číslo virtuální karty</translation>
-<translation id="4690462567478992370">Přestat používat neplatný certifikát</translation>
 <translation id="4691835149146451662">Architecture-A (obálka)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Boční</translation>
@@ -1518,6 +1520,7 @@
 <translation id="6337534724793800597">Filtrovat zásady podle názvu</translation>
 <translation id="6349101878882523185">Nainstalovat aplikaci <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Žádné}=1{1 heslo (pro <ph name="DOMAIN_LIST" />, synchronizováno)}=2{2 hesla (pro <ph name="DOMAIN_LIST" />, synchronizováno)}few{# hesla (pro <ph name="DOMAIN_LIST" />, synchronizováno)}many{# hesla (pro <ph name="DOMAIN_LIST" />, synchronizováno)}other{# hesel (pro <ph name="DOMAIN_LIST" />, synchronizováno)}}</translation>
+<translation id="6355392890578844978">Tento prohlížeč není spravován administrátorem ani jinou organizací. Aktivita na tomto zařízení může být spravována mimo Chromium. <ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Nápověda</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Zkontrolovat proxy server, firewall a konfiguraci zabezpečeného DNS<ph name="END_LINK" /></translation>
@@ -1968,6 +1971,7 @@
 <translation id="7961015016161918242">Nikdy</translation>
 <translation id="7966803981046576691">Typ účtu úlohy</translation>
 <translation id="79682505114836835">„<ph name="VALUE" />“ není platná hexadecimální hodnota barvy.</translation>
+<translation id="7970392640816874403">Co říkají jiné zdroje?</translation>
 <translation id="7976214039405368314">Příliš mnoho požadavků</translation>
 <translation id="7977538094055660992">Výstupní zařízení</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index d6ebc63b..5577803 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Du har lige angivet din adgangskode på et vildledende website. Chromium anbefaler, at du straks tjekker dine gemte adgangskoder til <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />og andre websites, hvor du bruger denne adgangskode.</translation>
 <translation id="468314109939257734">Se dit virtuelle kortnummer</translation>
-<translation id="4690462567478992370">Stop med at bruge et ugyldigt certifikat</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Side</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 2801882..6cd19e3 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -1058,7 +1058,6 @@
 <translation id="467809019005607715">Google Präsentationen</translation>
 <translation id="4680804919228900307">Sie haben Ihr Passwort gerade auf einer verdächtigen Seite eingegeben. Chromium empfiehlt, Ihre gespeicherten Passwörter für <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> und alle anderen Websites, auf denen Sie dieses Passwort verwenden, zu prüfen.</translation>
 <translation id="468314109939257734">Virtuelle Kartennummer anzeigen</translation>
-<translation id="4690462567478992370">Ungültiges Zertifikat nicht mehr verwenden</translation>
 <translation id="4691835149146451662">Architecture-A (Umschlag)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Seite</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index 6dc37d5..32b36b2 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -1074,7 +1074,6 @@
 <translation id="467809019005607715">Παρουσιάσεις Google</translation>
 <translation id="4680804919228900307">Μόλις καταχωρίσατε τον κωδικό πρόσβασής σας σε έναν παραπλανητικό ιστότοπο. Το Chromium συνιστά να ελέγξετε τους αποθηκευμένους κωδικούς πρόσβασής σας για τους ιστοτόπους <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, και τους άλλους ιστοτόπους όπου χρησιμοποιείτε αυτόν τον κωδικό πρόσβασης τώρα.</translation>
 <translation id="468314109939257734">Προβολή αριθμού εικονικής κάρτας</translation>
-<translation id="4690462567478992370">Διακοπή χρήσης μη έγκυρου πιστοποιητικού</translation>
 <translation id="4691835149146451662">Architecture-A (Φάκελος)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Πλευρά</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index d657efecd..fac9159 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -1071,7 +1071,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">You just entered your password on a deceptive site. Chromium recommends checking your saved passwords for <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> and other sites where you use this password now.</translation>
 <translation id="468314109939257734">View your virtual card number</translation>
-<translation id="4690462567478992370">Stop using an invalid certificate</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Side</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index c87fe0b..3707aaff 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -1064,7 +1064,6 @@
 <translation id="467809019005607715">Presentaciones de Google</translation>
 <translation id="4680804919228900307">Ingresaste tu contraseña en un sitio engañoso. Chromium te recomienda revisar las contraseñas guardadas para <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> y otros sitios donde uses esta contraseña.</translation>
 <translation id="468314109939257734">Ver tu número de tarjeta virtual</translation>
-<translation id="4690462567478992370">Dejar de usar un certificado no válido</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Lado</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index e6aae1c0..f51b8424 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Presentaciones de Google</translation>
 <translation id="4680804919228900307">Acabas de escribir tu contraseña en un sitio web engañoso. Chromium te recomienda que compruebes las contraseñas que has guardado en <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> y otros sitios en los que uses esta contraseña.</translation>
 <translation id="468314109939257734">Ver el número de tu tarjeta virtual</translation>
-<translation id="4690462567478992370">Dejar de utilizar un certificado no válido</translation>
 <translation id="4691835149146451662">Architecture-A (sobre)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Cara</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index 8d01a87..7748aad0 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -1071,7 +1071,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Sisestasite äsja oma parooli kahtlasele saidile. Chromium soovitab teil salvestatud paroole kontrollida saitide <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ja muude saitide puhul, kus praegu seda parooli kasutate.</translation>
 <translation id="468314109939257734">Vaadake oma virtuaalkaardi numbrit</translation>
-<translation id="4690462567478992370">Lõpeta kehtetu sertifikaadi kasutamine</translation>
 <translation id="4691835149146451662">Architecture-A (ümbrik)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Külg</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb
index d62542e..9d4d567a 100644
--- a/components/strings/components_strings_eu.xtb
+++ b/components/strings/components_strings_eu.xtb
@@ -1059,7 +1059,6 @@
 <translation id="467809019005607715">Google Aurkezpenak</translation>
 <translation id="4680804919228900307">Webgune engainagarri batean idatzi duzu pasahitza. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> eta <ph name="WEBSITE_3" /> webguneetarako eta pasahitz hori erabili duzun beste webgune batzuetarako gordetako pasahitzak egiaztatzea gomendatzen dizu Chromium-ek.</translation>
 <translation id="468314109939257734">Ikusi txartel birtualaren zenbakia</translation>
-<translation id="4690462567478992370">Utzi ziurtagiri baliogabea erabiltzaileari</translation>
 <translation id="4691835149146451662">Architecture-A (gutun-azala)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Aldea</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 4423847..3efcdbd 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">‏اسلایدنگار Google</translation>
 <translation id="4680804919228900307">‏اخیراً گذرواژه‌تان را در سایتی فریب‌کار وارد کرده‌اید. Chromium توصیه می‌کند همین حالا گذرواژه‌های ذخیره‌شده برای <ph name="WEBSITE_1" />، <ph name="WEBSITE_2" />، <ph name="WEBSITE_3" />، و سایت‌های دیگری را که در آن‌ها از این گذرواژه استفاده می‌کنید بررسی کنید.</translation>
 <translation id="468314109939257734">مشاهده شماره کارت مجازی</translation>
-<translation id="4690462567478992370">توقف استفاده از گواهینامه نامعتبر</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">رو</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index 00d8e216..f143035 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Tyhjennä evästeet.<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Tarkista suojatun DNS:n asetukset</translation>
 <translation id="1307966114820526988">Käytöstä poistetut ominaisuudet</translation>
+<translation id="1312803275555673949">Mikä todiste tukee sitä?</translation>
 <translation id="131405271941274527"><ph name="URL" /> haluaa lähettää ja vastaanottaa tietoja, kun kosketat puhelimella NFC-laitetta</translation>
 <translation id="1314509827145471431">Oikealla sidottu</translation>
 <translation id="1319245136674974084">Älä kysy uudestaan tämän sovelluksen kohdalla</translation>
@@ -642,6 +643,7 @@
 <translation id="3240791268468473923">Suojatun maksun kirjautumistiedot eivät täsmää ‑kirjautumistietotaulukko on avattu</translation>
 <translation id="3249845759089040423">Svengaava</translation>
 <translation id="3252266817569339921">ranska</translation>
+<translation id="3257954757204451555">Kuka on jakanut tämän tiedon?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, luo uusi tapahtuma nopeasti Google Kalenterissa painamalla sarkainta ja sitten Enter</translation>
 <translation id="3266793032086590337">Arvo (ristiriita)</translation>
 <translation id="3268451620468152448">Avoimet välilehdet</translation>
@@ -1041,6 +1043,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Poista laajennukset käytöstä.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Järjestelmänvalvoja voi muuttaa selaimen määrityksiä etäyhteydellä. Toimintaa tällä laitteella saatetaan ylläpitää myös Chromiumin ulkopuolelta. <ph name="BEGIN_LINK" />Lue lisää<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Toimitus</translation>
 <translation id="4579056131138995126">Oma (kirjekuori)</translation>
 <translation id="4582204425268416675">Poista kortti</translation>
@@ -1070,7 +1073,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Lisäsit juuri salasanasi petolliselle sivustolle. Chromium suosittelee tarkistamaan näihin tallentamasi salasanat: <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ja muut sivustot, joilla salasana on käytössä tällä hetkellä.</translation>
 <translation id="468314109939257734">Katso virtuaalisen kortin numero</translation>
-<translation id="4690462567478992370">Lopeta virheellisten varmenteiden käyttö</translation>
 <translation id="4691835149146451662">Arkkitehti-A (kirjekuori)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Puoli</translation>
@@ -1533,6 +1535,7 @@
 <translation id="6337534724793800597">Suodata käytäntöjä nimen mukaan</translation>
 <translation id="6349101878882523185">Asenna <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Ei mitään}=1{1 salasana: (<ph name="DOMAIN_LIST" />, synkronoitu)}=2{2 salasanaa (<ph name="DOMAIN_LIST" />, synkronoitu)}other{# salasanaa (<ph name="DOMAIN_LIST" />, synkronoitu)}}</translation>
+<translation id="6355392890578844978">Yritys tai muu organisaatio ei ylläpidä selainta. Laitteen toimintaa saatetaan ylläpitää Chromiumin ulkopuolelta. <ph name="BEGIN_LINK" />Lue lisää<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Mitä nämä tarkoittavat?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Tarkista välityspalvelimen, palomuurin ja suojatun DNS:n määritykset<ph name="END_LINK" /></translation>
@@ -1984,6 +1987,7 @@
 <translation id="7961015016161918242">Ei koskaan</translation>
 <translation id="7966803981046576691">Työpaikkatilin tyyppi</translation>
 <translation id="79682505114836835">Arvo "<ph name="VALUE" />" on virheellinen heksadesimaaliväri.</translation>
+<translation id="7970392640816874403">Mitä muissa lähteissä sanotaan?</translation>
 <translation id="7976214039405368314">Liikaa pyyntöjä</translation>
 <translation id="7977538094055660992">Tulostuslaite</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 5b9d94c..465679e 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Subukang i-clear ang iyong cookies<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Suriin ang iyong mga setting ng Secure na DNS</translation>
 <translation id="1307966114820526988">Mga Hindi na Ginagamit na Feature</translation>
+<translation id="1312803275555673949">Anong ebidensya ang sumusuporta rito?</translation>
 <translation id="131405271941274527">Gusto ng <ph name="URL" /> na magpadala at makatanggap ng impormasyon kapag na-tap mo ang iyong telepono sa isang NFC device</translation>
 <translation id="1314509827145471431">Bind right</translation>
 <translation id="1319245136674974084">Huwag nang magtanong ulit para sa app na ito</translation>
@@ -641,6 +642,7 @@
 <translation id="3240791268468473923">Nakabukas ang sheet na walang tumutugmang kredensyal sa kredensyal sa secure na pagbabayad</translation>
 <translation id="3249845759089040423">Groovy</translation>
 <translation id="3252266817569339921">Pranses</translation>
+<translation id="3257954757204451555">Sino ang nasa likod ng impormasyong ito?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay ang Enter para gumawa ng bagong event sa Google Calendar nang mabilis</translation>
 <translation id="3266793032086590337">Value (hindi tumutugma)</translation>
 <translation id="3268451620468152448">Mga Bukas na Tab</translation>
@@ -1040,6 +1042,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Subukang i-disable ang iyong mga extension.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Puwedeng baguhin ng iyong administrator ang setup ng browser mo sa remote na paraan. Puwede ring pamahalaan sa labas ng Chromium ang aktibidad sa device na ito. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Paghahatid</translation>
 <translation id="4579056131138995126">Personal (Envelope)</translation>
 <translation id="4582204425268416675">Alisin ang card</translation>
@@ -1069,7 +1072,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Kakalagay mo lang ng iyong password sa isang mapanlinlang na site. Inirerekomenda ng Chromium na suriin mo ngayon ang iyong mga naka-save na password para sa <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, at iba pang site kung saan mo ginagamit ang password na ito.</translation>
 <translation id="468314109939257734">Tingnan ang iyong virtual na numero ng card</translation>
-<translation id="4690462567478992370">Ihinto ang paggamit ng di-wastong certificate</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Gilid</translation>
@@ -1532,6 +1534,7 @@
 <translation id="6337534724793800597">I-filter ang mga patakaran ayon sa pangalan</translation>
 <translation id="6349101878882523185">I-install ang <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Wala}=1{1 password (para sa <ph name="DOMAIN_LIST" />, naka-sync)}=2{2 password (para sa <ph name="DOMAIN_LIST" />, naka-sync)}one{# password (para sa <ph name="DOMAIN_LIST" />, naka-sync)}other{# na password (para sa <ph name="DOMAIN_LIST" />, naka-sync)}}</translation>
+<translation id="6355392890578844978">Hindi pinapamahalaan ng kumpanya o iba pang organisasyon ang browser na ito. Posibleng pinapamahalaan sa labas ng Chromium ang aktibidad sa device na ito. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Ano ang ibig sabihin ng mga ito?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Suriin ang configuration ng proxy, firewall, at Secure na DNS<ph name="END_LINK" /></translation>
@@ -1983,6 +1986,7 @@
 <translation id="7961015016161918242">Hindi Kailanman</translation>
 <translation id="7966803981046576691">Uri ng account ng trabaho</translation>
 <translation id="79682505114836835">Invalid na hex color ang value na "<ph name="VALUE" />."</translation>
+<translation id="7970392640816874403">Ano ang sinasabi ng iba pang source?</translation>
 <translation id="7976214039405368314">Masyadong maraming kahilingan</translation>
 <translation id="7977538094055660992">Output device</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index 5a62a767..b05eb11 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -1060,7 +1060,6 @@
 <translation id="467809019005607715">Google Présentations</translation>
 <translation id="4680804919228900307">Vous venez d'entrer votre mot de passe sur un site trompeur. Chromium vous recommande de vérifier vos mots de passe enregistrés pour <ph name="WEBSITE_1" />, pour <ph name="WEBSITE_2" />, pour <ph name="WEBSITE_3" /> et pour tout autre site sur lequel vous utilisez ce mot de passe maintenant.</translation>
 <translation id="468314109939257734">Afficher votre numéro de carte virtuelle</translation>
-<translation id="4690462567478992370">Arrêter d'utiliser un certificat non valide</translation>
 <translation id="4691835149146451662">Enveloppe Architecture A</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Côté</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index 6539a81..496cc8c 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Vous venez de saisir votre mot de passe sur un site trompeur. Chromium vous recommande de vérifier vos mots de passe enregistrés pour <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> et <ph name="WEBSITE_3" />, ainsi que les autres sites pour lesquels vous utilisez ce mot de passe actuellement.</translation>
 <translation id="468314109939257734">Afficher votre numéro de carte virtuelle</translation>
-<translation id="4690462567478992370">Arrêter d'utiliser un certificat non valide</translation>
 <translation id="4691835149146451662">Architecture-A (enveloppe)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Côté</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index e87cff0..6e00d0a 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -1068,7 +1068,6 @@
 <translation id="467809019005607715">Presentacións de Google</translation>
 <translation id="4680804919228900307">Acabas de escribir o teu contrasinal nun sitio enganoso. Chromium recomenda comprobar os contrasinais gardados para <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> e outros sitios nos que esteas a utilizar este contrasinal neste momento.</translation>
 <translation id="468314109939257734">Ver número de tarxeta virtual</translation>
-<translation id="4690462567478992370">Deter o uso dun certificado non válido</translation>
 <translation id="4691835149146451662">Architecture-A (sobre)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Lado</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index 1acfd82..52103b2 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -1068,7 +1068,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">હમણાં જ કોઈ છેતરામણી સાઇટ પર તમે તમારો પાસવર્ડ દાખલ કર્યો. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> અને હવે તમે આ પાસવર્ડનો જ્યાં ઉપયોગ કરતા હો તે અન્ય સાઇટ પરના તમે સાચવેલા પાસવર્ડ ચેક કરવાનો Chromium સુઝાવ આપે છે.</translation>
 <translation id="468314109939257734">તમારો વર્ચ્યુઅલ કાર્ડ નંબર જુઓ</translation>
-<translation id="4690462567478992370">અમાન્ય પ્રમાણપત્રનો ઉપયોગ કરવાનું બંધ કરો</translation>
 <translation id="4691835149146451662">સ્થાપત્ય-A (એન્વલપ)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">બાજુ</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index d94348c..8a03782f 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />अपनी कुकी साफ़ करके देखें<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">अपने सुरक्षित डीएनएस की सेटिंग की जांच करें</translation>
 <translation id="1307966114820526988">बंद की गई सुविधाएं</translation>
+<translation id="1312803275555673949">कौनसा सबूत इस बात की पुष्टि करता है?</translation>
 <translation id="131405271941274527">किसी NFC डिवाइस में आपके फ़ोन पर टैप किए जाने पर, <ph name="URL" /> जानकारी भेजना और पाना चाहता है</translation>
 <translation id="1314509827145471431">दाईं ओर बाइंड</translation>
 <translation id="1319245136674974084">इस ऐप्लिकेशन के लिए फिर से न पूछें</translation>
@@ -641,6 +642,7 @@
 <translation id="3240791268468473923">मेल नहीं खाने वाले पेमेंट क्रेडेंशियल की शीट खुली है</translation>
 <translation id="3249845759089040423">शानदार</translation>
 <translation id="3252266817569339921">फ़्रांसीसी</translation>
+<translation id="3257954757204451555">इस जानकारी के पीछे कौन है?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Calendar में जल्दी से नया इवेंट बनाने के लिए, पहले Tab दबाएं और फिर Enter दबाएं</translation>
 <translation id="3266793032086590337">मान (मेल नहीं खा रहा)</translation>
 <translation id="3268451620468152448">खुले सत्र</translation>
@@ -1040,6 +1042,7 @@
 <translation id="455113658016510503">ए9</translation>
 <translation id="4558551763791394412">अपने एक्सटेंशन अक्षम करके देखें.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">आपका एडमिन किसी दूसरे डिवाइस से आपके ब्राउज़र का सेट अप बदल सकता है. इस डिवाइस की गतिविधि को भी Chromium से बाहर मैनेज किया जा सकता है. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">वितरण</translation>
 <translation id="4579056131138995126">निजी (एन्वेलप)</translation>
 <translation id="4582204425268416675">कार्ड हटाएं</translation>
@@ -1069,7 +1072,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">आपने अभी जिस साइट पर अपना पासवर्ड डाला है वह सुरक्षित नहीं है. क्रोमियम, <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, और उन साइटों पर तुरंत जाकर, सेव किए गए पासवर्ड की जांच करने का सुझाव देता है जिन पर आपने इस पासवर्ड का इस्तेमाल किया है.</translation>
 <translation id="468314109939257734">अपना वर्चुअल कार्ड नंबर देखें</translation>
-<translation id="4690462567478992370">अमान्य प्रमाणपत्र का उपयोग करना बंद करें</translation>
 <translation id="4691835149146451662">आर्किटेक्चर-ए (एन्वेलप)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">साइड</translation>
@@ -1532,6 +1534,7 @@
 <translation id="6337534724793800597">नाम के अनुसार नीतियां फ़िल्टर करें</translation>
 <translation id="6349101878882523185"><ph name="APP_NAME" /> इंस्टॉल करें</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{कोई पासवर्ड नहीं है}=1{(<ph name="DOMAIN_LIST" /> के लिए, सिंक किया गया) 1 पासवर्ड}=2{(<ph name="DOMAIN_LIST" /> के लिए, सिंक किए गए) 2 पासवर्ड}one{(<ph name="DOMAIN_LIST" /> के लिए, सिंक किए गए) # पासवर्ड}other{(<ph name="DOMAIN_LIST" /> के लिए, सिंक किए गए) # पासवर्ड}}</translation>
+<translation id="6355392890578844978">यह ब्राउज़र, कोई कंपनी या दूसरा संगठन मैनेज नहीं करता. इस डिवाइस की गतिविधि को Chromium से बाहर मैनेज किया जा सकता है. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">इनका क्‍या अर्थ है?</translation>
 <translation id="6361757823711327522">बी7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />प्रॉक्सी, फ़ायरवॉल, और सुरक्षित डीएनएस कॉन्फ़िगरेशन की जांच करें<ph name="END_LINK" /></translation>
@@ -1983,6 +1986,7 @@
 <translation id="7961015016161918242">कभी नहीं</translation>
 <translation id="7966803981046576691">जॉब का खाता प्रकार</translation>
 <translation id="79682505114836835">वैल्यू "<ph name="VALUE" />" मान्य हेक्स रंग नहीं है.</translation>
+<translation id="7970392640816874403">अन्य स्रोत क्या कहते हैं?</translation>
 <translation id="7976214039405368314">बहुत सारे अनुरोध</translation>
 <translation id="7977538094055660992">आउटपुट डिवाइस</translation>
 <translation id="7977894662897852582">ईडीपी</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index 91f0c489..85b9d3d 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google prezentacije</translation>
 <translation id="4680804919228900307">Upravo ste unijeli zaporku na obmanjujućoj web-lokaciji. Chromium preporučuje da odmah provjerite spremljene zaporke za <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> i druge web-lokacije na kojima koristite tu zaporku.</translation>
 <translation id="468314109939257734">Prikaz broja virtualne kartice</translation>
-<translation id="4690462567478992370">Prestani upotrebljavati nevažeći certifikat</translation>
 <translation id="4691835149146451662">Architecture-A (omotnica)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Bočni</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 6c9383a..749484f5 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -1070,7 +1070,6 @@
 <translation id="467809019005607715">Google Diák</translation>
 <translation id="4680804919228900307">Megtévesztő webhelyen adta meg jelszavát. A Chromium azt javasolja, hogy azonnal módosítsa jelszavait azokon a webhelyeken, ahol ezt a jelszót használja (pl. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />).</translation>
 <translation id="468314109939257734">Virtuális kártyaszám megtekintése</translation>
-<translation id="4690462567478992370">Érvénytelen tanúsítvány használatának befejezése</translation>
 <translation id="4691835149146451662">Architecture-A (boríték)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Oldal</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index c964c4b..31b1315 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google Սլայդներ</translation>
 <translation id="4680804919228900307">Դուք հենց նոր մուտքագրեցիք ձեր գաղտնաբառը կասկածելի կայքում։ Chromium-ը խորհուրդ է տալիս ստուգել պահված գաղտնաբառերը <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> և այլ կայքերի համար, որտեղ դուք այժմ օգտագործում եք այս գաղտնաբառը։</translation>
 <translation id="468314109939257734">Դիտել ձեր վիրտուալ քարտի համարը</translation>
-<translation id="4690462567478992370">Դադարեցնել անվավեր վկայագրի օգտագործումը</translation>
 <translation id="4691835149146451662">Architecture-A (ծրար)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Կողմ</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index dd37a531..b4434d7 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Coba hapus cookie Anda<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Periksa setelan DNS Aman Anda</translation>
 <translation id="1307966114820526988">Fitur yang Tidak Digunakan Lagi</translation>
+<translation id="1312803275555673949">Bukti apa yang mendukungnya?</translation>
 <translation id="131405271941274527"><ph name="URL" /> ingin mengirim dan menerima info saat Anda mengetukkan ponsel pada perangkat NFC</translation>
 <translation id="1314509827145471431">Jilid di kanan</translation>
 <translation id="1319245136674974084">Jangan tanya lagi untuk aplikasi ini</translation>
@@ -637,6 +638,7 @@
 <translation id="3240791268468473923">Sheet tidak ada kredensial yang cocok untuk Kredensial pembayaran aman terbuka</translation>
 <translation id="3249845759089040423">Groovy</translation>
 <translation id="3252266817569339921">Prancis</translation>
+<translation id="3257954757204451555">Siapa yang memberikan informasi ini?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk membuat acara baru di Google Kalender dengan cepat</translation>
 <translation id="3266793032086590337">Nilai (bertentangan)</translation>
 <translation id="3268451620468152448">Tab Terbuka</translation>
@@ -1030,6 +1032,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Coba nonaktifkan ekstensi.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Administrator dapat mengubah penyiapan browser Anda dari jarak jauh. Aktivitas di perangkat ini mungkin juga dikelola di luar Chromium. <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Pengiriman</translation>
 <translation id="4579056131138995126">Personal (Envelope)</translation>
 <translation id="4582204425268416675">Hapus kartu</translation>
@@ -1059,7 +1062,6 @@
 <translation id="467809019005607715">Google Slide</translation>
 <translation id="4680804919228900307">Anda baru saja memasukkan sandi ke situs penipuan. Chromium merekomendasikan Anda memeriksa sandi yang disimpan untuk <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, dan situs lain tempat Anda menggunakan sandi ini sekarang.</translation>
 <translation id="468314109939257734">Lihat nomor kartu virtual Anda</translation>
-<translation id="4690462567478992370">Berhenti menggunakan sertifikat yang tidak valid</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Sisi</translation>
@@ -1522,6 +1524,7 @@
 <translation id="6337534724793800597">Filter kebijakan menurut nama</translation>
 <translation id="6349101878882523185">Instal <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Tidak ada}=1{1 sandi (untuk <ph name="DOMAIN_LIST" />, disinkronkan)}=2{2 sandi (untuk <ph name="DOMAIN_LIST" />, disinkronkan)}other{# sandi (untuk <ph name="DOMAIN_LIST" />, disinkronkan)}}</translation>
+<translation id="6355392890578844978">Browser ini tidak dikelola oleh perusahaan atau organisasi lain. Aktivitas di perangkat ini mungkin dikelola di luar Chromium. <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Apakah maksud ini?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Memeriksa proxy, firewall, dan konfigurasi DNS Aman<ph name="END_LINK" /></translation>
@@ -1971,6 +1974,7 @@
 <translation id="7961015016161918242">Jangan pernah</translation>
 <translation id="7966803981046576691">Jenis akun tugas</translation>
 <translation id="79682505114836835">Nilai "<ph name="VALUE" />" adalah warna hex yang tidak valid.</translation>
+<translation id="7970392640816874403">Apa kata sumber lain?</translation>
 <translation id="7976214039405368314">Terlalu banyak permintaan</translation>
 <translation id="7977538094055660992">Perangkat keluaran</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index bf895a88..ff787a0 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google skyggnur</translation>
 <translation id="4680804919228900307">Þú gafst upp aðgangsorðið þitt á svindlsíðu. Chromium mælir með því að þú athugir vistuðu aðgangsorðin þín fyrir <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> og önnur vefsvæði þar sem þú notar þetta aðgangsorð núna.</translation>
 <translation id="468314109939257734">Skoðaðu sýndarkortsnúmerið þitt</translation>
-<translation id="4690462567478992370">Hætta að nota ógilt vottorð</translation>
 <translation id="4691835149146451662">Architecture-A (umslag)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Hlið</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index cebe4ad..6ecd772 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -1069,7 +1069,6 @@
 <translation id="467809019005607715">Presentazioni Google</translation>
 <translation id="4680804919228900307">Hai appena inserito la tua password su un sito ingannevole. Chromium ti consiglia di controllare le password salvate per <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> e altri siti su cui utilizzi questa password.</translation>
 <translation id="468314109939257734">Visualizza il numero della tua carta virtuale</translation>
-<translation id="4690462567478992370">Interrompi l'utilizzo di un certificato non valido</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Lato</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 23ad7ef5..0cefdc86 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -1067,7 +1067,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">‏הזנת כרגע את הסיסמה שלך באתר מטעה. ההמלצה של Chromium היא לבדוק באופן מיידי את הסיסמאות השמורות של <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ואתרים אחרים שבהם הסיסמה הזו נמצאת בשימוש.</translation>
 <translation id="468314109939257734">הצגת המספר של הכרטיס הווירטואלי שלך</translation>
-<translation id="4690462567478992370">הפסקת השימוש באישור לא חוקי</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)‎</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">צד</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 4a902a3..53efc32 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Cookie を消去してみてください<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">セキュア DNS の設定を確認してください</translation>
 <translation id="1307966114820526988">サポート終了の機能</translation>
+<translation id="1312803275555673949">それを支持する証拠は何ですか?</translation>
 <translation id="131405271941274527"><ph name="URL" /> が、NFC 搭載のスマートフォンをタップして情報を送受信するよう求めています</translation>
 <translation id="1314509827145471431">製本(右綴じ)</translation>
 <translation id="1319245136674974084">このアプリでは次回から表示しない</translation>
@@ -637,6 +638,7 @@
 <translation id="3240791268468473923">保護されたお支払い認証情報(認証情報の一致なし)シートが開いています</translation>
 <translation id="3249845759089040423">グルービー</translation>
 <translation id="3252266817569339921">フランス語</translation>
+<translation id="3257954757204451555">この情報の背後にいるのは誰ですか?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" /> です。Tab キー、Enter キーの順に押すと、Google カレンダーで新しいイベントをすばやく作成します</translation>
 <translation id="3266793032086590337">値(競合)</translation>
 <translation id="3268451620468152448">開いているタブ</translation>
@@ -1031,6 +1033,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">拡張機能を無効にしてみてください。</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">管理者はブラウザの設定をリモートで変更できます。このデバイス上のアクティビティは、Chromium の外部でも管理されている可能性があります。<ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">配送</translation>
 <translation id="4579056131138995126">Personal(封筒)</translation>
 <translation id="4582204425268416675">カードを削除</translation>
@@ -1060,7 +1063,6 @@
 <translation id="467809019005607715">Google スライド</translation>
 <translation id="4680804919228900307">偽のサイトでパスワードを入力しました。<ph name="WEBSITE_1" />、<ph name="WEBSITE_2" />、<ph name="WEBSITE_3" /> のほか、このパスワードを使用しているサイトで、保存したパスワードを今すぐ確認することをおすすめします。</translation>
 <translation id="468314109939257734">仮想カード番号を表示します</translation>
-<translation id="4690462567478992370">無効な証明書の使用をやめる</translation>
 <translation id="4691835149146451662">Architecture-A(封筒)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">側面</translation>
@@ -1523,6 +1525,7 @@
 <translation id="6337534724793800597">ポリシーを名前でフィルタ</translation>
 <translation id="6349101878882523185"><ph name="APP_NAME" /> をインストールします</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{なし}=1{<ph name="DOMAIN_LIST" /> のパスワード 1 件(同期)}=2{<ph name="DOMAIN_LIST" /> のパスワード 2 件(同期)}other{<ph name="DOMAIN_LIST" /> のパスワード # 件(同期)}}</translation>
+<translation id="6355392890578844978">このブラウザは、会社またはその他の組織によって管理されていません。このデバイス上のアクティビティは、Chromium の外部で管理されている可能性があります。<ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">ヘルプ</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />プロキシ、ファイアウォール、セキュア DNS の設定を確認する<ph name="END_LINK" /></translation>
@@ -1974,6 +1977,7 @@
 <translation id="7961015016161918242">使用しない</translation>
 <translation id="7966803981046576691">ジョブ管理タイプ</translation>
 <translation id="79682505114836835">値「<ph name="VALUE" />」は無効な 16 進数色コードです。</translation>
+<translation id="7970392640816874403">他のソースは何と言っていますか?</translation>
 <translation id="7976214039405368314">リクエストが多すぎます</translation>
 <translation id="7977538094055660992">出力デバイス</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index cf209531..6ff1714 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ცადეთ თქვენი ქუქი-ჩანაწერების გასუფთავება<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">შეამოწმეთ თქვენი დაცული DNS-ის პარამეტრები</translation>
 <translation id="1307966114820526988">მოძველებული ფუნქციები</translation>
+<translation id="1312803275555673949">რა ასაბუთებს?</translation>
 <translation id="131405271941274527"><ph name="URL" /> ითხოვს ინფორმაციის გაგზავნას/მიღებას NFC მოწყობილობაზე თქვენს ტელეფონზე შეხებისას</translation>
 <translation id="1314509827145471431">აკინძვა მარჯვნივ</translation>
 <translation id="1319245136674974084">ამ აპისთვის აღარასოდეს კითხვა</translation>
@@ -637,6 +638,7 @@
 <translation id="3240791268468473923">უსაფრთხო გადახდისთვის საჭირო ავტორიზაციის მონაცემების არარსებობის ფურცელი გახსნილია</translation>
 <translation id="3249845759089040423">სასიამოვნო</translation>
 <translation id="3252266817569339921">ფრანგული</translation>
+<translation id="3257954757204451555">ვის დგას ამ ინფორმაციის უკან?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Calendar-ში ახალი მოვლენის სწრაფად შესაქმნელად დააჭირეთ კლავიშს Tab, შემდეგ კი Enter-ს</translation>
 <translation id="3266793032086590337">მნიშვნელობა (კონფლიქტში)</translation>
 <translation id="3268451620468152448">გახსნილი ჩანართები</translation>
@@ -1031,6 +1033,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">ცადეთ გაფართოებების გათიშვა.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">თქვენს ადმინისტრატორს დისტანციურად შეუძლია ბრაუზერში დაყენებული პარამეტრების შეცვლა. ამ მოწყობილობაზე აქტივობა შეიძლება იმართებოდეს Chromium-ს მიღმაც. <ph name="BEGIN_LINK" />შეიტყვეთ მეტი<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">მიწოდება</translation>
 <translation id="4579056131138995126">პირადი (კონვერტი)</translation>
 <translation id="4582204425268416675">ბარათის ამოშლა</translation>
@@ -1060,7 +1063,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">თქვენ ეს-ესაა შეიყვანეთ პაროლი შეცდომაში შემყვან საიტზე. Chromium გირჩევთ, შეამოწმოთ შენახული პაროლები <ph name="WEBSITE_1" />-ისთვის, <ph name="WEBSITE_2" />-ისთვის, <ph name="WEBSITE_3" />-ისა და სხვა საიტებისთვის, სადაც ამჟამად იმავე პაროლს იყენებთ.</translation>
 <translation id="468314109939257734">იხილეთ თქვენი ვირტუალური ბარათის ნომერი</translation>
-<translation id="4690462567478992370">არასწორი სერტიფიკატის გამოყენების შეწყვეტა</translation>
 <translation id="4691835149146451662">Architecture-A (კონვერტი)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">გვერდითი</translation>
@@ -1523,6 +1525,7 @@
 <translation id="6337534724793800597">ფილტრის წესები სახელის მიხედვით</translation>
 <translation id="6349101878882523185"><ph name="APP_NAME" />-ის ინსტალაცია</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{არცერთი}=1{1 პაროლი (<ph name="DOMAIN_LIST" />-ისთვის, სინქრონიზებული)}=2{2 პაროლი (<ph name="DOMAIN_LIST" />-ისთვის, სინქრონიზებული)}other{# პაროლი (<ph name="DOMAIN_LIST" />-ისთვის, სინქრონიზებული)}}</translation>
+<translation id="6355392890578844978">ამ ბრაუზერს არ მართავს კომპანია და არც სხვა ორგანიზაცია. ამ მოწყობილობაზე აქტივობა შეიძლება იმართებოდეს Chromium-ს მიღმა. <ph name="BEGIN_LINK" />შეიტყვეთ მეტი<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">რას ნიშნავს ეს?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />პროქსის, ქსელის დაცვისა და დაცული DNS-ის კონფიგურაციის შემოწმება<ph name="END_LINK" /></translation>
@@ -1974,6 +1977,7 @@
 <translation id="7961015016161918242">არასოდეს</translation>
 <translation id="7966803981046576691">დავალების ანგარიშის ტიპი</translation>
 <translation id="79682505114836835">მნიშვნელობა „<ph name="VALUE" />“ არასწორი თექვსმეტობითი ფერია.</translation>
+<translation id="7970392640816874403">რას ამბობს სხვა წყაროები?</translation>
 <translation id="7976214039405368314">ზედმეტად ბევრი მოთხოვნაა</translation>
 <translation id="7977538094055660992">გამოტანის მოწყობილობა</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
index 0d4e16c..9c3526e 100644
--- a/components/strings/components_strings_kk.xtb
+++ b/components/strings/components_strings_kk.xtb
@@ -1071,7 +1071,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Жаңа ғана құпия сөзіңізді жалған сайтқа енгіздіңіз. Chromium осы құпия сөз пайдаланылатын <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> және басқа сайттар үшін сақталған құпия сөздерді тексеруді ұсынады.</translation>
 <translation id="468314109939257734">Виртуалды карта нөмірін көру</translation>
-<translation id="4690462567478992370">Жарамсыз сертификат пайдалануды тоқтату</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Бүйірлік</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index 51ae933..3311e13 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -97,6 +97,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />សាកល្បងជម្រះខុកឃីរបស់អ្នក<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">ពិនិត្យ​ការកំណត់ DNS សុវត្ថិភាពរបស់អ្នក</translation>
 <translation id="1307966114820526988">មុខងារ​ដែលបាន​បញ្ឈប់</translation>
+<translation id="1312803275555673949">តើមាន​ភស្តុតាងអ្វី​សម្រាប់គាំទ្រវា?</translation>
 <translation id="131405271941274527"><ph name="URL" /> ចង់ផ្ញើ និង​ទទួលព័ត៌មាន នៅពេល​អ្នកចុច​ទូរសព្ទ​របស់អ្នក នៅលើ​ឧបករណ៍ NFC</translation>
 <translation id="1314509827145471431">ភ្ជាប់​ខាងស្ដាំ</translation>
 <translation id="1319245136674974084">កុំ​​សួរ​ទៀត​សម្រាប់​កម្មវិធី​នេះ</translation>
@@ -644,6 +645,7 @@
 <translation id="3240791268468473923">សន្លឹក​ព័ត៌មានផ្ទៀងផ្ទាត់​ការបង់ប្រាក់​មានសុវត្ថិភាព ដែលគ្មានព័ត៌មានផ្ទៀងផ្ទាត់​ត្រូវគ្នា​ត្រូវបានបើក</translation>
 <translation id="3249845759089040423">ទាន់​សម័យ</translation>
 <translation id="3252266817569339921">ភាសាបារាំង</translation>
+<translation id="3257954757204451555">តើនរណា​នៅពីក្រោយ​ព័ត៌មាននេះ?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, ចុច Tab រួចចុច Enter ដើម្បីបង្កើត​ព្រឹត្តិការណ៍ថ្មី​នៅក្នុង Google ប្រតិទិន​បានរហ័ស</translation>
 <translation id="3266793032086590337">តម្លៃ (ជាន់គ្នា)</translation>
 <translation id="3268451620468152448">បើកផ្ទាំង</translation>
@@ -1044,6 +1046,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">សាកល្បងបិទដំណើរការផ្នែកបន្ថែមរបស់អ្នក</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">អ្នកគ្រប់គ្រង​របស់អ្នក​អាចប្ដូរ​ការរៀបចំ​កម្មវិធីរុករកតាមអ៊ីនធឺណិត​របស់អ្នក​ពីចម្ងាយបាន។ សកម្មភាព​នៅលើឧបករណ៍នេះ​ក៏អាចត្រូវបាន​គ្រប់គ្រងនៅក្រៅ Chromium ផងដែរ។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">ការបញ្ជូន</translation>
 <translation id="4579056131138995126">ផ្ទាល់ខ្លួន (ស្រោម​សំបុត្រ)</translation>
 <translation id="4582204425268416675">លុបបណ្ណ</translation>
@@ -1073,7 +1076,6 @@
 <translation id="467809019005607715">Google បទបង្ហាញ</translation>
 <translation id="4680804919228900307">អ្នកទើបតែ​បានបញ្ចូល​ពាក្យសម្ងាត់​របស់អ្នក​នៅលើ​គេហទំព័របញ្ឆោត។ Chromium សូមណែនាំឱ្យ​ពិនិត្យមើល​ពាក្យសម្ងាត់​ដែលអ្នក​បានរក្សាទុក​សម្រាប់ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> និង​គេហទំព័រ​ផ្សេងទៀត ដែលអ្នក​ប្រើ​ពាក្យសម្ងាត់​នេះ​ឥឡូវនេះ​។</translation>
 <translation id="468314109939257734">មើលលេខកាតនិម្មិតរបស់អ្នក</translation>
-<translation id="4690462567478992370">ឈប់ប្រើវិញ្ញាបនប័ត្រដែលគ្មានសុពលភាព</translation>
 <translation id="4691835149146451662">Architecture-A (ស្រោម​សំបុត្រ)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">ចំហៀង</translation>
@@ -1536,6 +1538,7 @@
 <translation id="6337534724793800597">ត្រងគោលការណ៍តាមឈ្មោះ</translation>
 <translation id="6349101878882523185">ដំឡើង <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{គ្មាន}=1{ពាក្យសម្ងាត់ 1 (សម្រាប់ <ph name="DOMAIN_LIST" />, បាន​ធ្វើសមកាលកម្ម)}=2{ពាក្យសម្ងាត់ 2 (សម្រាប់ <ph name="DOMAIN_LIST" />, បាន​ធ្វើសមកាលកម្ម)}other{ពាក្យសម្ងាត់ # (សម្រាប់ <ph name="DOMAIN_LIST" />, បាន​ធ្វើសមកាលកម្ម)}}</translation>
+<translation id="6355392890578844978">កម្មវិធីរុករកតាមអ៊ីនធឺណិតនេះ​មិនត្រូវបានគ្រប់គ្រង​ដោយក្រុមហ៊ុន ឬស្ថាប័នផ្សេងទេ។ សកម្មភាព​នៅលើឧបករណ៍នេះ​អាចត្រូវបាន​គ្រប់គ្រងក្រៅពី Chromium។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">តើវាមានន័យដូចម្តេច?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />ពិនិត្យប្រូកស៊ី ជញ្ជាំងភ្លើង និងការកំណត់រចនាសម្ព័ន្ធ DNS សុវត្ថិភាព<ph name="END_LINK" /></translation>
@@ -1988,6 +1991,7 @@
 <translation id="7961015016161918242">មិនដែល</translation>
 <translation id="7966803981046576691">ប្រភេទ​គណនី​ការងារ</translation>
 <translation id="79682505114836835">តម្លៃ "<ph name="VALUE" />" គឺជាពណ៌ hex ដែលមិន​ត្រឹមត្រូវ។</translation>
+<translation id="7970392640816874403">តើប្រភព​ផ្សេងទៀត​និយាយ​ថាម៉េច?</translation>
 <translation id="7976214039405368314">សំណើច្រើនពេក</translation>
 <translation id="7977538094055660992">ឧបករណ៍នៃធាតុបញ្ចេញ</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 5c93887..5981be581 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -1059,7 +1059,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">ವಂಚನೆ ಮಾಡುವ ಸೈಟ್‌ನಲ್ಲಿ, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಈಗಷ್ಟೇ ನೀವು ನಮೂದಿಸಿದ್ದೀರಿ. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ಮತ್ತು ಈ ಪಾಸ್‌ವರ್ಡ್ ಬಳಸುವ ಇತರ ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಈಗಲೇ ಪರಿಶೀಲಿಸುವಂತೆ Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="468314109939257734">ನಿಮ್ಮ ವರ್ಚುವಲ್ ಕಾರ್ಡ್ ಸಂಖ್ಯೆಯನ್ನು ವೀಕ್ಷಿಸಿ</translation>
-<translation id="4690462567478992370">ಅಮಾನ್ಯ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಬಳಸಿಕೊಂಡು ನಿಲ್ಲಿಸಿ</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">ಅಂಚು</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 61047d1..28f53a2 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />쿠키 삭제해 보기<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">보안 DNS 설정 확인</translation>
 <translation id="1307966114820526988">지원 중단 기능</translation>
+<translation id="1312803275555673949">어떤 근거가 있나요?</translation>
 <translation id="131405271941274527">NFC 기기에 휴대전화를 갖다 댈 때 <ph name="URL" />에서 정보를 보내고 받으려고 합니다.</translation>
 <translation id="1314509827145471431">오른쪽 바인드</translation>
 <translation id="1319245136674974084">이 앱에 대해 다시 묻지 않음</translation>
@@ -637,6 +638,7 @@
 <translation id="3240791268468473923">일치하는 결제 사용자 인증 정보 시트가 없는 보안 결제 사용자 인증 정보 열림</translation>
 <translation id="3249845759089040423">그루브</translation>
 <translation id="3252266817569339921">프랑스어</translation>
+<translation id="3257954757204451555">이 정보는 누가 제공했나요?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 Google Calendar에서 빠르게 새 일정 만들기</translation>
 <translation id="3266793032086590337">값(충돌)</translation>
 <translation id="3268451620468152448">열린 탭</translation>
@@ -1031,6 +1033,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">확장 프로그램 사용 중지해 보기</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">관리자가 원격으로 브라우저 설정을 변경할 수 있습니다. 이 기기의 활동은 Chromium 외부에서도 관리할 수 있습니다. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">배송</translation>
 <translation id="4579056131138995126">Personal(봉투)</translation>
 <translation id="4582204425268416675">카드 삭제</translation>
@@ -1060,7 +1063,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">사기성 사이트에 비밀번호를 입력했습니다. 지금 바로 <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> 등 동일한 비밀번호를 사용한 사이트에 저장된 비밀번호를 확인하는 것이 좋습니다.</translation>
 <translation id="468314109939257734">가상 카드 번호 보기</translation>
-<translation id="4690462567478992370">유효하지 않은 인증서 사용 중단</translation>
 <translation id="4691835149146451662">Architecture-A(봉투)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">사이드</translation>
@@ -1523,6 +1525,7 @@
 <translation id="6337534724793800597">이름별로 정책 필터링</translation>
 <translation id="6349101878882523185"><ph name="APP_NAME" /> 설치</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{없음}=1{비밀번호 1개(도메인: <ph name="DOMAIN_LIST" />, 동기화됨)}=2{비밀번호 2개(도메인: <ph name="DOMAIN_LIST" />, 동기화됨)}other{비밀번호 #개(도메인: <ph name="DOMAIN_LIST" />, 동기화됨)}}</translation>
+<translation id="6355392890578844978">이 브라우저는 회사 또는 다른 조직에서 관리하지 않습니다. 이 기기의 활동은 Chromium 외부에서도 관리할 수 있습니다. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">자세히 알아보기</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />프록시, 방화벽, 보안 DNS 설정 확인<ph name="END_LINK" /></translation>
@@ -1973,6 +1976,7 @@
 <translation id="7961015016161918242">사용하지 않음</translation>
 <translation id="7966803981046576691">작업 계정 유형</translation>
 <translation id="79682505114836835">"<ph name="VALUE" />" 값은 유효하지 않은 16진수 색상입니다.</translation>
+<translation id="7970392640816874403">다른 출처에서는 뭐라고 하나요?</translation>
 <translation id="7976214039405368314">요청 횟수가 너무 많음</translation>
 <translation id="7977538094055660992">출력 기기</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index 2084512..feb51b2 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -1071,7 +1071,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Сырсөзүңүздү жаңы эле адаштыруучу сайтта киргиздиңиз. Chromium <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> жана башка сайттарда колдонгон ушул жана сакталган сырсөздөрүңүздү азыр текшерүүнү сунуштайт.</translation>
 <translation id="468314109939257734">Виртуалдык картанын номерин көрүү</translation>
-<translation id="4690462567478992370">Жараксыз тастыктаманы колдонууну токтотуу</translation>
 <translation id="4691835149146451662">Architecture-A (Конверт)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Каптал</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index 9b78979..c5f4e63 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ລອງລຶບລ້າງຄຸກກີ້ຂອງທ່ານ<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">ກວດເບິ່ງການຕັ້ງຄ່າ DNS ທີ່ປອດໄພຂອງທ່ານ</translation>
 <translation id="1307966114820526988">ຄຸນສົມບັດທີ່ເຊົາຮອງຮັບແລ້ວ</translation>
+<translation id="1312803275555673949">ມີຫຼັກຖານໃດສະໜັບສະໜຸນມັນ?</translation>
 <translation id="131405271941274527"><ph name="URL" /> ຕ້ອງການສົ່ງ ແລະ ຮັບຂໍ້ມູນເມື່ອທ່ານແຕະໂທລະສັບຂອງທ່ານໃນອຸປະກອນ NFC</translation>
 <translation id="1314509827145471431">ຫຍິບເຫຼັ້ມເບື້ອງຂວາ</translation>
 <translation id="1319245136674974084">ບໍ່ຕ້ອງຖາມອີກສຳລັບແອັບນີ້</translation>
@@ -641,6 +642,7 @@
 <translation id="3240791268468473923">ເປີດຊີດຂໍ້ມູນການເຂົ້າສູ່ລະບົບການຈ່າຍເງິນທີ່ປອດໄພທີ່ບໍ່ມີຂໍ້ມູນການເຂົ້າສູ່ລະບົບທີ່ກົງກັນແລ້ວ</translation>
 <translation id="3249845759089040423">ກຣູຟີ</translation>
 <translation id="3252266817569339921">ພາສາຝຣັ່ງ</translation>
+<translation id="3257954757204451555">ໃຜຢູ່ເບື້ອງຫຼັງຂໍ້ມູນນີ້?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນກົດ Enter ເພື່ອສ້າງນັດໝາຍໃໝ່ໃນ Google ປະຕິທິນໄດ້ຢ່າງວ່ອງໄວ</translation>
 <translation id="3266793032086590337">ຄ່າ (ຂັດແຍ່ງ)</translation>
 <translation id="3268451620468152448">ເປີດ​ແຖບ</translation>
@@ -1040,6 +1042,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">ລອງປິດໃຊ້ສ່ວນຂະຫຍາຍຂອງທ່ານ.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານສາມາດປ່ຽນການຕັ້ງຄ່າໂປຣແກຣມທ່ອງເວັບຂອງທ່ານຈາກທາງໄກໄດ້. ການເຄື່ອນໄຫວຢູ່ອຸປະກອນນີ້ອາດຖືກຈັດການຢູ່ນອກ Chromium ໄດ້ເຊັ່ນກັນ. <ph name="BEGIN_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">ການຈັດສົ່ງ</translation>
 <translation id="4579056131138995126">Personal (ຊອງຈົດໝາຍ)</translation>
 <translation id="4582204425268416675">ລຶບບັດອອກ</translation>
@@ -1069,7 +1072,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">ທ່ານຫາກໍປ້ອນລະຫັດຜ່ານຂອງທ່ານໃສ່ເວັບໄຊຫຼອກລວງ. Chromium ຂໍແນະນຳໃຫ້ກວດເບິ່ງລະຫັດຜ່ານທີ່ທ່ານບັນທຶກໄວ້ສຳລັບ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ແລະ ເວັບໄຊອື່ນໆທີ່ທ່ານໃຊ້ລະຫັດຜ່ານນີ້ໃນຕອນນີ້ເລີຍ.</translation>
 <translation id="468314109939257734">ເບິ່ງໝາຍເລກບັດສະເໝືອນຂອງທ່ານ</translation>
-<translation id="4690462567478992370">ຢຸດ​ການ​ໃຊ້​ໃບ​ຢັ້ງ​ຢືນ​ທີ່ໃຊ້ບໍ່ໄດ້</translation>
 <translation id="4691835149146451662">Architecture-A (ຊອງຈົດໝາຍ)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">ດ້ານຂ້າງ</translation>
@@ -1532,6 +1534,7 @@
 <translation id="6337534724793800597">ກັ່ນຕອງນະໂຍບາຍຕາມຊື່</translation>
 <translation id="6349101878882523185">ຕິດຕັ້ງ <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{ບໍ່ມີ}=1{1 ລະຫັດຜ່ານ (ສຳລັບ <ph name="DOMAIN_LIST" />, ຊິ້ງຂໍ້ມູນແລ້ວ)}=2{2 ລະຫັດຜ່ານ (ສຳລັບ <ph name="DOMAIN_LIST" />, ຊິ້ງຂໍ້ມູນແລ້ວ)}other{# ລະຫັດຜ່ານ (ສຳລັບ <ph name="DOMAIN_LIST" />, ຊິ້ງຂໍ້ມູນແລ້ວ)}}</translation>
+<translation id="6355392890578844978">ໂປຣແກຣມທ່ອງເວັບນີ້ບໍ່ໄດ້ຖືກຈັດການໂດຍບໍລິສັດ ຫຼື ອົງການອື່ນ. ການເຄື່ອນໄຫວຢູ່ອຸປະກອນນີ້ອາດຖືກຈັດການຢູ່ນອກ Chromium ໄດ້. <ph name="BEGIN_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">ສິ່ງ​ທີ່​ເຫຼົ່າ​ນີ້​ຫມາຍ​ຄວາມ​ວ່າ​ແນວໃດ?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />ກຳລັງກວດເບິ່ງການຕັ້ງຄ່າພຣັອກຊີ, ໄຟລ໌ວໍ ແລະ DNS ທີ່ປອດໄພ<ph name="END_LINK" /></translation>
@@ -1983,6 +1986,7 @@
 <translation id="7961015016161918242">ບໍ່​ເລີຍ</translation>
 <translation id="7966803981046576691">ປະເພດບັນຊີວຽກ</translation>
 <translation id="79682505114836835">ຄ່າ "<ph name="VALUE" />" ເປັນສີ hex ທີ່ບໍ່ຖືກຕ້ອງ.</translation>
+<translation id="7970392640816874403">ແຫຼ່ງຂໍ້ມູນອື່ນລະບຸແນວໃດ?</translation>
 <translation id="7976214039405368314">ມີການຮ້ອງຂໍຫຼາຍເກີນໄປ</translation>
 <translation id="7977538094055660992">ອຸປະກອນເຈ້ຍອອກ</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 7a617b0..86fa96b 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Pabandykite išvalyti slapukus<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Patikrinkite saugios DNS nustatymus</translation>
 <translation id="1307966114820526988">Nebenaudojamos funkcijos</translation>
+<translation id="1312803275555673949">Kokie įrodymai pateikti?</translation>
 <translation id="131405271941274527"><ph name="URL" /> nori siųsti ir gauti informaciją, kai paliečiate telefoną ALR įrenginyje</translation>
 <translation id="1314509827145471431">Įrišimas dešinėje</translation>
 <translation id="1319245136674974084">Daugiau neklausti dėl šios programos</translation>
@@ -642,6 +643,7 @@
 <translation id="3240791268468473923">Saugaus mokėjimo prisijungimo duomenų lapas, informuojantis, kad atitinkančių prisijungimo duomenų nerasta, atidarytas</translation>
 <translation id="3249845759089040423">Klasiška</translation>
 <translation id="3252266817569339921">Prancūzų</translation>
+<translation id="3257954757204451555">Iš kur ši informacija?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, paspauskite tabuliavimo klavišą, tada – „Enter“, jei norite greitai sukurti naują „Google“ kalendoriaus įvykį</translation>
 <translation id="3266793032086590337">Vertė (nesuderinama)</translation>
 <translation id="3268451620468152448">Atidaryti skirtukai</translation>
@@ -1041,6 +1043,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Pabandykite išjungti plėtinius.</translation>
 <translation id="4559332380232738994">10 x 11</translation>
+<translation id="4567686777917670400">Administratorius gali nuotoliniu būdu keisti naršyklės sąranką. Veiklą šiame įrenginyje taip pat galima tvarkyti ne naršyklėje „Chromium“. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Pristatymas</translation>
 <translation id="4579056131138995126">Asmeninis (vokas)</translation>
 <translation id="4582204425268416675">Pašalinti kortelę</translation>
@@ -1070,7 +1073,6 @@
 <translation id="467809019005607715">„Google“ skaidrės</translation>
 <translation id="4680804919228900307">Ką tik savo slaptažodį įvedėte apgaulingoje svetainėje. „Chromium“ rekomenduoja patikrinti išsaugotus <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ir kitų svetainių, kuriose dabar naudojate šį slaptažodį, slaptažodžius.</translation>
 <translation id="468314109939257734">Žr. virtualios kortelės numerį</translation>
-<translation id="4690462567478992370">Nebenaudoti negaliojančio sertifikato</translation>
 <translation id="4691835149146451662">„Architecture-A“ (vokas)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Šonas</translation>
@@ -1533,6 +1535,7 @@
 <translation id="6337534724793800597">Filtruoti politiką pagal pavadinimą</translation>
 <translation id="6349101878882523185">Įdiegti <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Nėra}=1{1 slaptažodis (skirta <ph name="DOMAIN_LIST" />, sinchronizuojama)}=2{2 slaptažodžiai (skirta <ph name="DOMAIN_LIST" />, sinchronizuojama)}one{# slaptažodis (skirta <ph name="DOMAIN_LIST" />, sinchronizuojama)}few{# slaptažodžiai (skirta <ph name="DOMAIN_LIST" />, sinchronizuojama)}many{# slaptažodžio (skirta <ph name="DOMAIN_LIST" />, sinchronizuojama)}other{# slaptažodžių (skirta <ph name="DOMAIN_LIST" />, sinchronizuojama)}}</translation>
+<translation id="6355392890578844978">Šios naršyklės netvarko įmonė ar kita organizacija. Veiklą šiame įrenginyje galima tvarkyti ne naršyklėje „Chromium“. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Ką tai reiškia?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Tikrinama tarpinio serverio, užkardos ir saugios DNS konfigūracija<ph name="END_LINK" /></translation>
@@ -1984,6 +1987,7 @@
 <translation id="7961015016161918242">Niekada</translation>
 <translation id="7966803981046576691">Užduoties paskyros tipas</translation>
 <translation id="79682505114836835">Vertė „<ph name="VALUE" />“ yra netinkamas šešioliktainis spalvos kodas.</translation>
+<translation id="7970392640816874403">Kas sakoma kituose šaltiniuose?</translation>
 <translation id="7976214039405368314">Per daug užklausų</translation>
 <translation id="7977538094055660992">Išvesties įrenginys</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index 2522e4f2..f4b33f9 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Dzēsiet sīkfailus<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Pārbaudiet drošā DNS servera iestatījumus</translation>
 <translation id="1307966114820526988">Funkcijas, kuru darbība ir pārtraukta</translation>
+<translation id="1312803275555673949">Kāda informācija to pierāda?</translation>
 <translation id="131405271941274527"><ph name="URL" /> vēlas sūtīt un saņemt informāciju, kad ar tālruni pieskaraties NFC ierīcei</translation>
 <translation id="1314509827145471431">Iesējums labajā pusē</translation>
 <translation id="1319245136674974084">Vairs nejautāt par šo lietotni</translation>
@@ -641,6 +642,7 @@
 <translation id="3240791268468473923">Ir atvērta lapa ar akreditācijas datiem, kas neatbilst drošu maksājumu akreditācijas datiem</translation>
 <translation id="3249845759089040423">Moderna</translation>
 <translation id="3252266817569339921">Franču valoda</translation>
+<translation id="3257954757204451555">Kas ir šīs informācijas avots?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />. Lai ātri izveidotu jaunu pasākumu Google kalendārā, nospiediet tabulēšanas taustiņu un pēc tam — taustiņu Enter.</translation>
 <translation id="3266793032086590337">Vērtība (konfliktē)</translation>
 <translation id="3268451620468152448">Atvērtās cilnes</translation>
@@ -1039,6 +1041,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Atspējojiet paplašinājumus.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Jūsu administrators var attālināti mainīt jūsu pārlūka iestatījumus. Darbības šajā ierīcē var pārvaldīt arī ārpus pārlūka Chromium. <ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" />.</translation>
 <translation id="457875822857220463">Piegāde</translation>
 <translation id="4579056131138995126">Personisks (aploksne)</translation>
 <translation id="4582204425268416675">Noņemt karti</translation>
@@ -1068,7 +1071,6 @@
 <translation id="467809019005607715">Google prezentācijas</translation>
 <translation id="4680804919228900307">Jūs tikko ievadījāt savu paroli maldinošā vietnē. Chromium ieteikums: tūlīt pārbaudiet saglabātās paroles vietnē <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, kā arī citās vietnēs, kurās izmantojat šo paroli.</translation>
 <translation id="468314109939257734">Skatiet savas virtuālās kartes numuru</translation>
-<translation id="4690462567478992370">Pārtraukt nederīga sertifikāta izmantošanu</translation>
 <translation id="4691835149146451662">Architecture-A (aploksne)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">sānu</translation>
@@ -1531,6 +1533,7 @@
 <translation id="6337534724793800597">Filtrēt politikas pēc nosaukuma</translation>
 <translation id="6349101878882523185">Instalēt <ph name="APP_NAME" /> lietotni</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Nav}=1{1 parole (šādiem domēniem: <ph name="DOMAIN_LIST" />, sinhronizēta)}=2{2 paroles (šādiem domēniem: <ph name="DOMAIN_LIST" />, sinhronizētas)}zero{# paroļu (šādiem domēniem: <ph name="DOMAIN_LIST" />, sinhronizētas)}one{# parole (šādiem domēniem: <ph name="DOMAIN_LIST" />, sinhronizētas)}other{# paroles (šādiem domēniem: <ph name="DOMAIN_LIST" />, sinhronizētas)}}</translation>
+<translation id="6355392890578844978">Šo pārlūku nepārvalda uzņēmums vai cita organizācija. Darbības šajā ierīcē var pārvaldīt ārpus pārlūka Chromium. <ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" />.</translation>
 <translation id="6358450015545214790">Ko tas nozīmē?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Pārbaudiet starpniekserveri, ugunsmūri un droša DNS servera konfigurāciju<ph name="END_LINK" />.</translation>
@@ -1982,6 +1985,7 @@
 <translation id="7961015016161918242">Nekad</translation>
 <translation id="7966803981046576691">Darba konta veids</translation>
 <translation id="79682505114836835">Vērtība “<ph name="VALUE" />” nav derīga krāsa heksadecimālajā sistēmā.</translation>
+<translation id="7970392640816874403">Kāda informācija sniegta citos avotos?</translation>
 <translation id="7976214039405368314">Pārāk daudz pieprasījumu</translation>
 <translation id="7977538094055660992">Izvades ierīce</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index 35fcb29..0d23fd352 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -1069,7 +1069,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Тукушто ја внесовте својата лозинка на измамнички сајт. Chromium препорачува веднаш да ги проверите зачуваните лозинки за <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> и другите сајтови каде што ја користите лозинкава.</translation>
 <translation id="468314109939257734">Прикажи го бројот на виртуелната картичка</translation>
-<translation id="4690462567478992370">Престани со користење неважечки сертификат</translation>
 <translation id="4691835149146451662">Architecture-A (плик)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Странична</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index 2d89a9b3..3f97038 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -1065,7 +1065,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">വഞ്ചനാപരമായ സൈറ്റിൽ നിങ്ങൾ ഇപ്പോൾ പാസ്‍വേഡ് നൽകി. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, കൂടാതെ നിങ്ങൾ ഇപ്പോൾ ഈ പാസ്‌വേഡ് ഉപയോഗിക്കുന്ന മറ്റ് സൈറ്റുകൾ എന്നിവയ്‌ക്കായി നിങ്ങളുടെ സംരക്ഷിച്ച പാസ്‌വേഡുകൾ പരിശോധിക്കാൻ Chromium നിർദ്ദേശിക്കുന്നു.</translation>
 <translation id="468314109939257734">നിങ്ങളുടെ വെർച്വൽ കാർഡ് നമ്പർ കാണുക</translation>
-<translation id="4690462567478992370">അസാധുവായ ഒരു സർട്ടിഫിക്കറ്റ് ഉപയോഗിക്കുന്നത് നിർത്തുക</translation>
 <translation id="4691835149146451662">ആര്‍ക്കിടെക്ച്ചര്‍-A (എൻവലപ്പ്)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">സൈഡ്</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index 63dc2be..eec5fa2f 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Күүкигээ устгана уу<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Аюулгүй DNS тохиргоогоо шалгана уу</translation>
 <translation id="1307966114820526988">Хуучирсан онцлог</translation>
+<translation id="1312803275555673949">Үүнийг ямар нотолгоо дэмждэг вэ?</translation>
 <translation id="131405271941274527">Таныг NFC төхөөрөмж дээр утсаараа товших үед <ph name="URL" /> нь мэдээлэл илгээх, хүлээн авах хүсэлтэй байна</translation>
 <translation id="1314509827145471431">Баруун ирмэг дагуу үдэж хавтаслах</translation>
 <translation id="1319245136674974084">Энэ аппад дахин бүү асуу</translation>
@@ -642,6 +643,7 @@
 <translation id="3240791268468473923">Тохирох мандат үнэмлэхгүй аюулгүй төлбөрийн мандат үнэмлэхийн хүснэгтийг нээсэн</translation>
 <translation id="3249845759089040423">Дэгжин</translation>
 <translation id="3252266817569339921">Франц</translation>
+<translation id="3257954757204451555">Энэ мэдээллийн ард хэн байгаа вэ?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Календарьт шинэ үйл явдал шуурхай үүсгэхийн тулд эхлээд Tab, дараа нь Enter дээр дарна уу</translation>
 <translation id="3266793032086590337">Утга (зөрчил)</translation>
 <translation id="3268451620468152448">Цонхнуудыг нээх</translation>
@@ -1041,6 +1043,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Өргөтгөлүүдээ идэвхгүй болгоно уу.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Таны администратор хөтчийн тань тохируулгыг алсаас өөрчилж болно. Энэ төхөөрөмж дээрх үйл ажиллагааг мөн Chromium-с гадуур удирддаг байж болно. <ph name="BEGIN_LINK" />Нэмэлт мэдээлэл авах<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Хүргэлт</translation>
 <translation id="4579056131138995126">Хувийн (Дугтуй)</translation>
 <translation id="4582204425268416675">Картыг устгах</translation>
@@ -1070,7 +1073,6 @@
 <translation id="467809019005607715">Google Слайд</translation>
 <translation id="4680804919228900307">Та дөнгөж сая сэжигтэй сайтад нууц үгээ орууллаа. Таны энэ нууц үгийг ашигладаг <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> болон бусад сайтын хувьд хадгалсан нууц үгсээ одоо шалгахыг Chromium зөвлөж байна.</translation>
 <translation id="468314109939257734">Таны виртуал картын дугаар</translation>
-<translation id="4690462567478992370">Хүчингүй сертификат ашиглахыг зогсоох</translation>
 <translation id="4691835149146451662">Архитектур-A (Дугтуй)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Хажуугийн</translation>
@@ -1532,6 +1534,7 @@
 <translation id="6337534724793800597">Журмуудыг нэрээр нь шүү</translation>
 <translation id="6349101878882523185"><ph name="APP_NAME" />-г суулгах</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Байхгүй}=1{(<ph name="DOMAIN_LIST" />-н) 1 нууц үг (синк хийсэн)}=2{(<ph name="DOMAIN_LIST" />-н) 2 нууц үг (синк хийсэн)}other{(<ph name="DOMAIN_LIST" />-н) # нууц үг (синк хийсэн)}}</translation>
+<translation id="6355392890578844978">Энэ хөтчийг компани эсвэл бусад байгууллагаас удирддаггүй. Энэ төхөөрөмж дээрх үйл ажиллагааг Chromium-с гадуур удирддаг байж болно. <ph name="BEGIN_LINK" />Нэмэлт мэдээлэл авах<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Эдгээр нь юу гэсэн үг вэ?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Прокси, галт хана болон Аюулгүй DNS тохируулгыг шалгах<ph name="END_LINK" /></translation>
@@ -1983,6 +1986,7 @@
 <translation id="7961015016161918242">Хэзээ ч</translation>
 <translation id="7966803981046576691">Ажилтай холбоотой бүртгэлийн төрөл</translation>
 <translation id="79682505114836835">"<ph name="VALUE" />" утга нь буруу арванзургаатын өнгө байна.</translation>
+<translation id="7970392640816874403">Бусад эх сурвалж юу гэж хэлж байна вэ?</translation>
 <translation id="7976214039405368314">Хэт олон хүсэлт</translation>
 <translation id="7977538094055660992">Гаралтын төхөөрөмж</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 80c684c..33603a4 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -1068,7 +1068,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">तुम्ही आताच एका फसव्या साइटवर तुमचा पासवर्ड एंटर केला. तुम्ही हा पासवर्ड आता जेथे वापरता अशा <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> आणि इतर साइटसाठी तुमचे सेव्ह केलेले पासवर्ड तपासण्याची Chromium शिफारस करते.</translation>
 <translation id="468314109939257734">तुमचा व्हर्च्युअल कार्ड नंबर पहा</translation>
-<translation id="4690462567478992370">चुकीचे सर्टिफिकेट वापरणे थांबवा</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">साइड</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 2cec734..ddd8670 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Cuba kosongkan kuki anda<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Semak tetapan DNS Selamat anda</translation>
 <translation id="1307966114820526988">Ciri yang Ditamatkan</translation>
+<translation id="1312803275555673949">Apakah bukti yang menyokongnya?</translation>
 <translation id="131405271941274527"><ph name="URL" /> mahu menghantar dan menerima maklumat apabila anda mengetik telefon anda pada peranti NFC</translation>
 <translation id="1314509827145471431">Ikatan kanan</translation>
 <translation id="1319245136674974084">Jangan tanya lagi untuk apl ini</translation>
@@ -641,6 +642,7 @@
 <translation id="3240791268468473923">Bukti kelayakan pembayaran selamat tiada helaian bukti kelayakan yang sepadan dibuka</translation>
 <translation id="3249845759089040423">Groovy</translation>
 <translation id="3252266817569339921">Bahasa Perancis</translation>
+<translation id="3257954757204451555">Siapakah di sebalik maklumat ini?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan kekunci Tab kemudian Enter untuk membuat acara baharu dalam Google Calendar dengan pantas</translation>
 <translation id="3266793032086590337">Nilai (konflik)</translation>
 <translation id="3268451620468152448">Tab Terbuka</translation>
@@ -1041,6 +1043,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Cuba lumpuhkan sambungan anda.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Pentadbir anda boleh menukar persediaan penyemak imbas anda dari jauh. Aktiviti pada peranti ini juga mungkin diurus di luar Chromium. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Penghantaran</translation>
 <translation id="4579056131138995126">Peribadi (Sampul Surat)</translation>
 <translation id="4582204425268416675">Alih keluar kad</translation>
@@ -1070,7 +1073,6 @@
 <translation id="467809019005607715">Slaid Google</translation>
 <translation id="4680804919228900307">Anda baru sahaja memasukkan kata laluan pada tapak yang menipu. Chromium mengesyorkan penyemakan kata laluan anda yang disimpan untuk <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> dan tapak lain yang menggunakan kata laluan ini sekarang.</translation>
 <translation id="468314109939257734">Lihat nombor kad maya anda</translation>
-<translation id="4690462567478992370">Berhenti menggunakan sijil tidak sah</translation>
 <translation id="4691835149146451662">Seni Bina-A (Sampul Surat)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Sisi</translation>
@@ -1533,6 +1535,7 @@
 <translation id="6337534724793800597">Tapis dasar mengikut nama</translation>
 <translation id="6349101878882523185">Pasang <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Tiada}=1{1 kata laluan (untuk <ph name="DOMAIN_LIST" />, disegerakkan)}=2{2 kata laluan (untuk <ph name="DOMAIN_LIST" />, disegerakkan)}other{# kata laluan (untuk <ph name="DOMAIN_LIST" />, disegerakkan)}}</translation>
+<translation id="6355392890578844978">Penyemak imbas ini tidak diurus oleh syarikat atau organisasi lain. Aktiviti pada peranti ini mungkin diurus di luar Chromium. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Apakah maksudnya?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Menyemak proksi, tembok api dan konfigurasi DNS Selamat<ph name="END_LINK" /></translation>
@@ -1984,6 +1987,7 @@
 <translation id="7961015016161918242">Tidak sama sekali</translation>
 <translation id="7966803981046576691">Jenis akaun kerja</translation>
 <translation id="79682505114836835">Nilai "<ph name="VALUE" />" ialah warna perenambelasan yang tidak sah.</translation>
+<translation id="7970392640816874403">Apakah yang dikatakan oleh sumber lain?</translation>
 <translation id="7976214039405368314">Terlalu banyak permintaan</translation>
 <translation id="7977538094055660992">Peranti output</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index 396c8be..3db76e3d 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />သင့်ကွတ်ကီးများကို ရှင်းလင်းကြည့်ပါ<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">သင်၏ 'လုံခြုံသော DNS' ဆက်တင်များကို စစ်ဆေးပါ</translation>
 <translation id="1307966114820526988">ရပ်ဆိုင်းထားသော ဝန်ဆောင်မှုများ</translation>
+<translation id="1312803275555673949">လက်ခံနိုင်စရာ ဘာအထောက်အထား ရှိပါသလဲ။</translation>
 <translation id="131405271941274527">သင့်ဖုန်းကို NFC စက်တစ်ခုအပေါ် တို့လိုက်သည့်အခါ <ph name="URL" /> သည် အချက်အလက် ပို့ခြင်းနှင့် လက်ခံခြင်းတို့ ပြုလုပ်လိုသည်</translation>
 <translation id="1314509827145471431">ညာဘက်တွင် တွဲချုပ်ရန်</translation>
 <translation id="1319245136674974084">ဤအက်ပ်အတွက် ထပ်မမေးပါနှင့်</translation>
@@ -643,6 +644,7 @@
 <translation id="3240791268468473923">ကိုက်ညီမှုရှိသည့် လုံခြုံသောပေးချေမှုအထောက်အထားဆိုင်ရာ စာရွက်မဖွင့်ထားပါ</translation>
 <translation id="3249845759089040423">မိမိမိုက်မိုက်</translation>
 <translation id="3252266817569339921">ပြင်သစ်</translation>
+<translation id="3257954757204451555">ဤအချက်အလက်ကို ဘယ်ကရသလဲ။</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />၊ Google Calendar တွင် အစီအစဉ်အသစ် အမြန်ပြုလုပ်ရန် ‘တဘ်’ နှိပ်ပြီးနောက် Enter ခလုတ် နှိပ်ပါ</translation>
 <translation id="3266793032086590337">တန်ဖိုး (ကွဲလွဲသည်)</translation>
 <translation id="3268451620468152448">တဲဘ်များ ဖွင့်ရန်</translation>
@@ -1041,6 +1043,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">သင့် နောက်ဆက်တွဲများကို ဖြုတ်ကြည့်ပါ။</translation>
 <translation id="4559332380232738994">၁၀x၁၁</translation>
+<translation id="4567686777917670400">သင့်စီမံခန့်ခွဲသူက သင်၏ဘရောင်ဇာ စနစ်ထည့်သွင်းမှုကို အဝေးမှ ပြောင်းလဲနိုင်ပါသည်။ ဤစက်ပေါ်ရှိ လုပ်ဆောင်ချက်ကိုလည်း Chromium ပြင်ပမှ စီမံခန့်ခွဲထားနိုင်သည်။ <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">ပို့ဆောင်မှု</translation>
 <translation id="4579056131138995126">ကိုယ်ရေးကိုယ်တာ (စာအိတ်)</translation>
 <translation id="4582204425268416675">ကတ်ဖယ်ရှားရန်</translation>
@@ -1070,7 +1073,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">လှည့်ဖြားတတ်သော ဝဘ်ဆိုက်တစ်ခုတွင် သင့်စကားဝှက်ကို ထည့်လိုက်ပါသည်။ ယခု ဤစကားဝှက်ကို သင်အသုံးပြုထားသည့် <ph name="WEBSITE_1" />၊ <ph name="WEBSITE_2" />၊ <ph name="WEBSITE_3" /> နှင့် အခြားသောဝဘ်ဆိုက်များအတွက် သင်သိမ်းဆည်းထားသည့် စကားဝှက်များကို စစ်ဆေးရန် Chromium က အကြံပြုသည်။</translation>
 <translation id="468314109939257734">သင်၏ ပကတိအသွင်ကတ်နံပါတ်ကို ကြည့်ပါ</translation>
-<translation id="4690462567478992370">မမှန်ကန်သည့် လက်မှတ် သုံးမှုကို ရပ်လိုက်ပါ</translation>
 <translation id="4691835149146451662">Architecture-A (စာအိတ်)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">ဘေး</translation>
@@ -1532,6 +1534,7 @@
 <translation id="6337534724793800597">မူဝါဒများကို အမည်များဖြင့် စစ်ထုတ်ရန်</translation>
 <translation id="6349101878882523185"><ph name="APP_NAME" /> ထည့်သွင်းရန်</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{မရှိ}=1{စကားဝှက် ၁ ခု (<ph name="DOMAIN_LIST" /> အတွက်၊ စင့်ခ်လုပ်ထားသည်)}=2{စကားဝှက် ၂ ခု (<ph name="DOMAIN_LIST" /> အတွက်၊ စင့်ခ်လုပ်ထားသည်)}other{စကားဝှက် # ခု (<ph name="DOMAIN_LIST" /> အတွက်၊ စင့်ခ်လုပ်ထားသည်)}}</translation>
+<translation id="6355392890578844978">ဤဘရောင်ဇာကို ကုမ္ပဏီ သို့မဟုတ် အခြားအဖွဲ့အစည်းက စီမံခန့်ခွဲမထားပါ။ ဤစက်ပေါ်ရှိ လုပ်ဆောင်ချက်ကို Chromium ပြင်ပမှ စီမံခန့်ခွဲထားခြင်း ဖြစ်နိုင်သည်။ <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">ဒါတွေက ဘာကို ဆိုလိုတာလဲ?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />ပရောက်စီ၊ firewall နှင့် လုံခြုံသော DNS စီစဉ်သတ်မှတ်မှုကို စစ်ဆေးနေသည်<ph name="END_LINK" /></translation>
@@ -1984,6 +1987,7 @@
 <translation id="7961015016161918242">ဘယ်သောအခါမှ</translation>
 <translation id="7966803981046576691">အလုပ် အကောင့်အမျိုးအစား</translation>
 <translation id="79682505114836835">"<ph name="VALUE" />" တန်ဖိုးသည် မှန်ကန်သော hex အရောင် မဟုတ်ပါ။</translation>
+<translation id="7970392640816874403">အခြားရင်းမြစ်များက ဘာပြောကြပါသလဲ။</translation>
 <translation id="7976214039405368314">တောင်းဆိုမှုများ များလွန်းနေသည်</translation>
 <translation id="7977538094055660992">ထုတ်ယူမည့်စက်</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb
index 9b850dd..d6a1033 100644
--- a/components/strings/components_strings_ne.xtb
+++ b/components/strings/components_strings_ne.xtb
@@ -1065,7 +1065,6 @@
 <translation id="467809019005607715">Google स्लाइड</translation>
 <translation id="4680804919228900307">तपाईंले भर्खरै कुनै भ्रामक साइटमा आफ्नो पासवर्ड प्रविष्टि गर्नुभएको छ। Chromium तपाईंलाई अहिले नै <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> र तपाईंले हाल यो पासवर्ड प्रयोग गर्ने अन्य साइटका सुरक्षित गरिएका पासवर्डहरूको जाँच गर्न सिफारिस गर्छ।</translation>
 <translation id="468314109939257734">आफ्नो भर्चुअल कार्ड नम्बर हेर्नुहोस्</translation>
-<translation id="4690462567478992370">अवैध प्रमाणपत्र प्रयोग गर्न रोक्नुहोस्</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">सतह</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 0d458a8..590b8ea7 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -1064,7 +1064,6 @@
 <translation id="467809019005607715">Google Presentaties</translation>
 <translation id="4680804919228900307">Je hebt zojuist je wachtwoord opgegeven op een misleidende site. Chromium raadt je aan je opgeslagen wachtwoorden voor <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> en andere sites waarop je dit wachtwoord gebruikt, nu te checken.</translation>
 <translation id="468314109939257734">Bekijk je virtuele kaartnummer</translation>
-<translation id="4690462567478992370">Stoppen met het gebruik van een ongeldig certificaat</translation>
 <translation id="4691835149146451662">Architecture-A (envelop)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Team</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 4b8e1d2..bee9a9d 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google Presentasjoner</translation>
 <translation id="4680804919228900307">Du har nettopp skrevet inn passordet ditt på et villedende nettsted. Chromium anbefaler at du sjekker de lagrede passordene dine for <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> og andre nettsteder der du bruker dette passordet, nå.</translation>
 <translation id="468314109939257734">Se det virtuelle kortnummeret ditt</translation>
-<translation id="4690462567478992370">Slutt å bruke et ugyldig sertifikat</translation>
 <translation id="4691835149146451662">Architecture-A (konvolutt)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Side</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index e18abe5..339b3f0 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -1057,7 +1057,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">ଆପଣ ଏବେ ଏକ ପ୍ରତାରଣାମୂଳକ ସାଇଟରେ ଆପଣଙ୍କ ପାସୱାର୍ଡ ଲେଖିଛନ୍ତି। <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> <ph name="WEBSITE_3" /> ଏବଂ ଆପଣ ବର୍ତ୍ତମାନ ଏହି ପାସୱାର୍ଡ ବ୍ୟବହାର କରିଥିବା ଅନ୍ୟ ସାଇଟଗୁଡ଼ିକ ପାଇଁ Chromium ଆପଣଙ୍କର ସେଭ୍ କରାଯାଇଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିବାକୁ ସୁପାରିଶ କରେ।</translation>
 <translation id="468314109939257734">ଆପଣଙ୍କ ଭର୍ଚୁଆଲ୍ କାର୍ଡ ନମ୍ବର ଦେଖନ୍ତୁ</translation>
-<translation id="4690462567478992370">ଏକ ଅବୈଧ ସାର୍ଟିଫିକେଟ୍‍ ବ୍ୟବହାର କରିବା ବନ୍ଦ କରନ୍ତୁ</translation>
 <translation id="4691835149146451662">ଆର୍କିଟେକ୍‌ଚର୍-A (ଏନଭଲପ୍)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">ସାଇଡ୍</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index c401f45..73af729 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -1057,7 +1057,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">ਤੁਸੀਂ ਹੁਣੇ-ਹੁਣੇ ਕਿਸੇ ਭਰਮਪੂਰਨ ਸਾਈਟ 'ਤੇ ਆਪਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕੀਤਾ ਹੈ। Chromium ਵੱਲੋਂ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ਅਤੇ ਉਹਨਾਂ ਹੋਰ ਸਾਈਟਾਂ 'ਤੇ ਆਪਣੇ ਰੱਖਿਅਤ ਪਾਸਵਰਡਾਂ ਨੂੰ ਜਾਂਚਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਿੱਥੇ ਹੁਣ ਤੁਸੀਂ ਇਹ ਪਾਸਵਰਡ ਵਰਤਦੇ ਹੋ।</translation>
 <translation id="468314109939257734">ਆਪਣਾ ਆਭਾਸੀ ਕਾਰਡ ਨੰਬਰ ਦੇਖੋ</translation>
-<translation id="4690462567478992370">ਅਵੈਧ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵਰਤਣਾ ਬੰਦ ਕਰੋ</translation>
 <translation id="4691835149146451662">Architecture-A (ਲਿਫ਼ਾਫ਼ਾ)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">ਪਾਸਾ</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index 660476e7..710b0d7 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -1063,7 +1063,6 @@
 <translation id="467809019005607715">Prezentacje Google</translation>
 <translation id="4680804919228900307">Przed chwilą wpisano hasło na stronie wprowadzającej w błąd. Chromium zaleca, by sprawdzić zapisane hasła do witryn <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i <ph name="WEBSITE_3" /> oraz do innych stron, na których używasz tego hasła.</translation>
 <translation id="468314109939257734">Wyświetl numer karty wirtualnej</translation>
-<translation id="4690462567478992370">Przestań używać nieprawidłowego certyfikatu</translation>
 <translation id="4691835149146451662">Architecture-A (koperta)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Strona</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index 9b2fa4a..3d7670e 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -1063,7 +1063,6 @@
 <translation id="467809019005607715">Apresentações Google</translation>
 <translation id="4680804919228900307">Você acabou de digitar sua senha em um site suspeito. O Chromium recomenda que você verifique agora suas senhas salvas para <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> e outros sites em que você usa essa senha.</translation>
 <translation id="468314109939257734">Ver o número do seu cartão virtual</translation>
-<translation id="4690462567478992370">Suspender o uso de um certificado inválido</translation>
 <translation id="4691835149146451662">Arch A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Lado</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index a5f955d3..93eb56b9 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Acabou de introduzir a sua palavra-passe num site fraudulento. O Chromium recomenda que verifique agora as palavras-passe guardadas para <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> e outros sites em que utilize esta palavra-passe.</translation>
 <translation id="468314109939257734">Veja o número do cartão virtual</translation>
-<translation id="4690462567478992370">Parar de utilizar um certificado inválido</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Lado</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 431c922..867a8854d 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Prezentări Google</translation>
 <translation id="4680804919228900307">Ai introdus parola pe un site înșelător. Chromium recomandă să verifici acum parolele salvate pentru <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> și alte site-uri pe care folosești această parolă.</translation>
 <translation id="468314109939257734">Vezi numărul de card virtual</translation>
-<translation id="4690462567478992370">Nu mai folosi un certificat nevalid</translation>
 <translation id="4691835149146451662">Architecture-A (Plic)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Lateral</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index 5797f8e..4487914a 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Удалите файлы cookie<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Проверьте настройки безопасного DNS-сервера</translation>
 <translation id="1307966114820526988">Устаревшие функции</translation>
+<translation id="1312803275555673949">Чем это подтверждается?</translation>
 <translation id="131405271941274527">Сайт <ph name="URL" /> запрашивает разрешение на обмен информацией через NFC.</translation>
 <translation id="1314509827145471431">Скрепление справа</translation>
 <translation id="1319245136674974084">Больше не спрашивать для этого приложения</translation>
@@ -636,6 +637,7 @@
 <translation id="3240791268468473923">Экран несоответствия учетных данных для защищенных платежей открыт</translation>
 <translation id="3249845759089040423">Яркий</translation>
 <translation id="3252266817569339921">Французский</translation>
+<translation id="3257954757204451555">Кто предоставил эти сведения?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />. Чтобы быстро создать мероприятие в Google Календаре, нажмите Tab, а затем Ввод.</translation>
 <translation id="3266793032086590337">Значение (конфликтующее)</translation>
 <translation id="3268451620468152448">Вкладки</translation>
@@ -1030,6 +1032,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Отключите расширения.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Администратор может удаленно менять настройки браузера и управлять действиями вне браузера Chromium на этом устройстве. <ph name="BEGIN_LINK" />Подробнее…<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Доставка</translation>
 <translation id="4579056131138995126">Персональный (конверт)</translation>
 <translation id="4582204425268416675">Удалить карту</translation>
@@ -1059,7 +1062,6 @@
 <translation id="467809019005607715">Google Презентации</translation>
 <translation id="4680804919228900307">Вы только что ввели пароль на поддельном сайте. Рекомендуем проверить сохраненные пароли для <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> и других сайтов, на которых вы используете этот пароль.</translation>
 <translation id="468314109939257734">Посмотреть номер своей виртуальной карты</translation>
-<translation id="4690462567478992370">Прекратить использование недействительного сертификата</translation>
 <translation id="4691835149146451662">Architecture-A (конверт)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Сторона</translation>
@@ -1522,6 +1524,7 @@
 <translation id="6337534724793800597">Фильтровать правила по названию</translation>
 <translation id="6349101878882523185">Установить приложение "<ph name="APP_NAME" />"</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Нет}=1{1 пароль (для <ph name="DOMAIN_LIST" />, синхронизировано)}=2{2 пароля (для <ph name="DOMAIN_LIST" />, синхронизировано)}one{# пароль (для <ph name="DOMAIN_LIST" />, синхронизировано)}few{# пароля (для <ph name="DOMAIN_LIST" />, синхронизировано)}many{# паролей (для <ph name="DOMAIN_LIST" />, синхронизировано)}other{# пароля (для <ph name="DOMAIN_LIST" />, синхронизировано)}}</translation>
+<translation id="6355392890578844978">Компания или организация не управляет этим браузером. Действиями на этом устройстве можно управлять вне браузера Chromium. <ph name="BEGIN_LINK" />Подробнее…<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Что это значит?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Проверить настройки прокси-сервера, брандмауэра и безопасного DNS-сервера<ph name="END_LINK" /></translation>
@@ -1973,6 +1976,7 @@
 <translation id="7961015016161918242">Нет</translation>
 <translation id="7966803981046576691">Тип аккаунта, в котором выполняется задание</translation>
 <translation id="79682505114836835">Недопустимый шестнадцатеричный код цвета (<ph name="VALUE" />).</translation>
+<translation id="7970392640816874403">Что говорится в других источниках?</translation>
 <translation id="7976214039405368314">слишком много запросов</translation>
 <translation id="7977538094055660992">Устройство вывода</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index b593593..9cf731467d 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -1069,7 +1069,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">ඔබ මේ දැන් වංචනික අඩවියක ඔබේ මුරපදය ඇතුළු කළා. Chromium <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, සහ ඔබ දැනට මෙම මුරපදය භාවිත කරන වෙනත් වෙබ් අඩවි සඳහා ඔබේ සුරැකි මුරපද පරීක්‍ෂා කිරීම නිර්දේශ කරයි.</translation>
 <translation id="468314109939257734">ඔබගේ අතථ්‍ය කාඩ්පත් අංකය බලන්න</translation>
-<translation id="4690462567478992370">අවලංගු සහතිකයක් භාවිතය නවත්වන්න</translation>
 <translation id="4691835149146451662">Architecture-A (ලියුම් කවරය)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">පැත්ත</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 79a7527..00361ba 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -1059,7 +1059,6 @@
 <translation id="467809019005607715">Prezentácie Google</translation>
 <translation id="4680804919228900307">Práve ste zadali svoje heslo na podvodnom webe. Chromium odporúča, aby ste skontrolovali svoje uložené heslá pre <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> a ďalšie weby, na ktorých ho momentálne používate.</translation>
 <translation id="468314109939257734">Zobraziť číslo virtuálnej karty</translation>
-<translation id="4690462567478992370">Nepoužívať neplatné certifikáty</translation>
 <translation id="4691835149146451662">Architecture-A (obálka)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Strana</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index bb37e65..8e775b0 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google Predstavitve</translation>
 <translation id="4680804919228900307">Pravkar ste vnesli geslo na zavajajočem spletnem mestu. Chromium priporoča, da takoj preverite shranjena gesla za <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> in druga spletna mesta, na katerih uporabljate to geslo.</translation>
 <translation id="468314109939257734">Ogled številke navidezne kartice</translation>
-<translation id="4690462567478992370">Prenehaj uporabljati neveljavno potrdilo</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Stran</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb
index 183e46fb..1be0e89 100644
--- a/components/strings/components_strings_sq.xtb
+++ b/components/strings/components_strings_sq.xtb
@@ -1066,7 +1066,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Sapo e fute fjalëkalimin tënd në një sajt mashtrues. Chromium të rekomandon t'i kontrollosh fjalëkalimet e tua të ruajtura për <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> dhe sajte të tjera ku e përdor këtë fjalëkalim tani.</translation>
 <translation id="468314109939257734">Shiko numrin e kartës sate virtuale</translation>
-<translation id="4690462567478992370">Ndalo përdorimin e një certifikate të pavlefshme</translation>
 <translation id="4691835149146451662">Architecture-A (Zarf)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Ana</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index f8b9da9..6b1cb5bd 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google prezentacije</translation>
 <translation id="4680804919228900307">Upravo ste uneli lozinku na obmanjujućem sajtu. Chromium vam preporučuje da proverite sačuvane lozinke za <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> i druge sajtove na kojima trenutno koristite ovu lozinku.</translation>
 <translation id="468314109939257734">Pregledajte broj svoje virtuelne kartice</translation>
-<translation id="4690462567478992370">Obustavi korišćenje nevažećeg sertifikata</translation>
 <translation id="4691835149146451662">Architecture-A (koverat)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Strana</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index b27cc1d..12f56f0 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google презентације</translation>
 <translation id="4680804919228900307">Управо сте унели лозинку на обмањујућем сајту. Chromium вам препоручује да проверите сачуване лозинке за <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> и друге сајтове на којима тренутно користите ову лозинку.</translation>
 <translation id="468314109939257734">Прегледајте број своје виртуелне картице</translation>
-<translation id="4690462567478992370">Обустави коришћење неважећег сертификата</translation>
 <translation id="4691835149146451662">Architecture-A (коверат)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Страна</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 43c2655..d5ded6bec 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Testa att rensa cookies<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Kontrollera inställningarna för den säkra DNS-konfigurationen</translation>
 <translation id="1307966114820526988">Utfasade funktioner</translation>
+<translation id="1312803275555673949">Vad finns det för belägg för detta?</translation>
 <translation id="131405271941274527"><ph name="URL" /> vill skicka och ta emot information när du snuddar vid en NFC-enhet med telefonen</translation>
 <translation id="1314509827145471431">Bindning till höger</translation>
 <translation id="1319245136674974084">Fråga inte igen för den här appen</translation>
@@ -641,6 +642,7 @@
 <translation id="3240791268468473923">Arbetsblad för användaruppgifter för säker betalning utan överensstämmande användaruppgifter är öppet</translation>
 <translation id="3249845759089040423">Tuff</translation>
 <translation id="3252266817569339921">franska</translation>
+<translation id="3257954757204451555">Vem står bakom informationen?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />: tryck på Tabb och sedan på Retur om du snabbt vill skapa en ny händelse i Google Kalender</translation>
 <translation id="3266793032086590337">Värde (konflikt)</translation>
 <translation id="3268451620468152448">Öppna flikar</translation>
@@ -1040,6 +1042,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Testa att inaktivera tilläggen.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Administratören kan ändra webbläsarinställningarna på distans. Aktivitet på den här enheten kan hanteras även utanför Chromium. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Leverans</translation>
 <translation id="4579056131138995126">Personal (kuvert)</translation>
 <translation id="4582204425268416675">Ta bort kort</translation>
@@ -1069,7 +1072,6 @@
 <translation id="467809019005607715">Google Presentationer</translation>
 <translation id="4680804919228900307">Du angav just ditt lösenord på en bedräglig webbplats. Chromium rekommenderar att du kontrollerar dina sparade lösenord för <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> och andra webbplatser där du använder lösenordet nu.</translation>
 <translation id="468314109939257734">Visa ditt virtuella kortnummer</translation>
-<translation id="4690462567478992370">Sluta använda ett ogiltigt certifikat</translation>
 <translation id="4691835149146451662">Architecture-A (kuvert)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Sida</translation>
@@ -1532,6 +1534,7 @@
 <translation id="6337534724793800597">Filtrera princip efter namn</translation>
 <translation id="6349101878882523185">Installera <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Inga}=1{1 lösenord (för <ph name="DOMAIN_LIST" />, synkroniseras)}=2{2 lösenord (för <ph name="DOMAIN_LIST" />, synkroniseras)}other{# lösenord (för <ph name="DOMAIN_LIST" />, synkroniseras)}}</translation>
+<translation id="6355392890578844978">Den här webbläsaren hanteras inte av ett företag eller en organisation. Aktiviteter på den här enheten kan hanteras utanför Chromium. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Vad innebär dessa?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Kontrollerar proxy, brandvägg och säker DNS-konfiguration<ph name="END_LINK" /></translation>
@@ -1983,6 +1986,7 @@
 <translation id="7961015016161918242">Aldrig</translation>
 <translation id="7966803981046576691">Kontotyp för utskriften</translation>
 <translation id="79682505114836835"><ph name="VALUE" /> är ett ogiltigt hexadecimalt värde för en färg.</translation>
+<translation id="7970392640816874403">Vad säger andra källor?</translation>
 <translation id="7976214039405368314">För många begäranden</translation>
 <translation id="7977538094055660992">Utmatningsenhet</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index b29c7e20..19c5bdc 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Jaribu kufuta vidakuzi kwenye kivinjari chako<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Angalia mipangilio yako ya DNS Salama</translation>
 <translation id="1307966114820526988">Vipengele Vilivyoacha Kutumiwa</translation>
+<translation id="1312803275555673949">Je, kuna ithibati gani nyingine?</translation>
 <translation id="131405271941274527"><ph name="URL" /> inataka kutuma na kupokea maelezo unapogusisha simu yako kwenye kifaa cha NFC</translation>
 <translation id="1314509827145471431">Unganisha kulia</translation>
 <translation id="1319245136674974084">Usiulize tena kwenye programu hii</translation>
@@ -640,6 +641,7 @@
 <translation id="3240791268468473923">Laha ya 'hakuna kitambulisho kinacholingana' imefunguliwa</translation>
 <translation id="3249845759089040423">Groovy</translation>
 <translation id="3252266817569339921">Kifaransa</translation>
+<translation id="3257954757204451555">Maelezo haya yameandikwa na nani?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, bonyeza 'Tab' kisha 'Enter' ili uweke tukio jipya katika Kalenda ya Google kwa haraka</translation>
 <translation id="3266793032086590337">Thamani (inakinzana)</translation>
 <translation id="3268451620468152448">Fungua Vichupo</translation>
@@ -1039,6 +1041,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Jaribu kuzima viendelezi vyako.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Msimamizi wako anaweza kubadilisha mipangilio ya kivinjari chako akiwa mbali. Huenda pia shughuli kwenye kifaa hiki zikadhibitiwa nje ya Chromium. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Usafirishaji</translation>
 <translation id="4579056131138995126">Personal (Bahasha)</translation>
 <translation id="4582204425268416675">Ondoa kadi</translation>
@@ -1068,7 +1071,6 @@
 <translation id="467809019005607715">Slaidi za Google</translation>
 <translation id="4680804919228900307">Umeweka nenosiri lako kwenye tovuti inayotiliwa shaka. Chromium inapendekeza ukague manenosiri uliyohifadhi kwenye <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> na tovuti nyingine unakotumia nenosiri hili kwa sasa.</translation>
 <translation id="468314109939257734">Angalia nambari yako ya kadi pepe</translation>
-<translation id="4690462567478992370">Acha kutumia cheti kisicho sahihi</translation>
 <translation id="4691835149146451662">Architecture-A (Bahasha)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Upande</translation>
@@ -1531,6 +1533,7 @@
 <translation id="6337534724793800597">Chuja sera kwa jina</translation>
 <translation id="6349101878882523185">Sakinisha <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Hamna}=1{Nenosiri 1 (la <ph name="DOMAIN_LIST" />, limesawazishwa)}=2{Manenosiri 2 (ya <ph name="DOMAIN_LIST" />, yamesawazishwa)}other{Manenosiri # (ya <ph name="DOMAIN_LIST" />, yamesawazishwa)}}</translation>
+<translation id="6355392890578844978">Kivinjari hiki hakidhibitiwi na kampuni au shirika lingine. Huenda shughuli kwenye kifaa hiki zikadhibitiwa nje ya Chromium. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Je, hii inamaanisha nini?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Kuangalia seva mbadala, kinga mtandao na Imarisha mipangilio ya DNS salama<ph name="END_LINK" /></translation>
@@ -1980,6 +1983,7 @@
 <translation id="7961015016161918242">Katu</translation>
 <translation id="7966803981046576691">Aina ya akaunti ya kazi</translation>
 <translation id="79682505114836835">Thamani ya "<ph name="VALUE" />" ni rangi ya heksadesimali isiyo sahihi.</translation>
+<translation id="7970392640816874403">Vyanzo vingine vinasema nini?</translation>
 <translation id="7976214039405368314">Maombi mengi mno</translation>
 <translation id="7977538094055660992">Kifaa cha kutoa maudhui</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 5ca18ec..f152ffb 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -458,7 +458,7 @@
 <translation id="2536110899380797252">முகவரியைச் சேர்</translation>
 <translation id="2539524384386349900">கண்டறி</translation>
 <translation id="2540701853218677861">சாதனத்தில் உள்நுழைவது/வெளியேறுவது குறித்த விவரங்கள் (இதில் நேரமுத்திரைகள், தோல்வியடைந்த முயற்சிகள் அடங்கும்)</translation>
-<translation id="2541219929084442027">உங்கள் மறைநிலைத் தாவல்கள் அனைத்தையும் மூடிய பிறகு அவற்றில் நீங்கள் பார்த்த பக்கங்கள் உலாவியில் இதுவரை பார்த்தவற்றிலோ குக்கீ சேமிப்பகத்திலோ இதுவரை தேடியவற்றிலோ இருக்காது. நீங்கள் பதிவிறக்கிய கோப்புகள் அல்லது உருவாக்கிய புக்மார்க்குகள் அப்படியே இருக்கும்.</translation>
+<translation id="2541219929084442027">உங்கள் மறைநிலைத் தாவல்கள் அனைத்தையும் மூடிய பிறகு அவற்றில் நீங்கள் பார்த்த பக்கங்கள் உலாவியில் இதுவரை பார்த்தவற்றிலோ குக்கீ சேமிப்பகத்திலோ இதுவரை தேடியவற்றிலோ இருக்காது. நீங்கள் பதிவிறக்கிய ஃபைல்கள்  அல்லது உருவாக்கிய புக்மார்க்குகள் அப்படியே இருக்கும்.</translation>
 <translation id="2544644783021658368">ஒற்றை ஆவணம்</translation>
 <translation id="254947805923345898">கொள்கையின் மதிப்பு சரியானதில்லை.</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> தவறான பதிலை அனுப்பியது.</translation>
@@ -688,7 +688,7 @@
 <translation id="3402261774528610252">இந்தத் தளத்தை ஏற்றுவதற்குப் பயன்படுத்தப்பட்ட இணைப்பு TLS 1.0 அல்லது TLS 1.1 பதிப்பைப் பயன்படுத்தியது, இவை நிறுத்தப்பட்டுள்ளதோடு விரைவில் முடக்கப்படும். முடக்கப்பட்டவுடன் பயனர்களால் இந்தத் தளத்தை ஏற்ற முடியாது. சேவையகம் TLS 1.2 அல்லது அதற்குப் பிந்தைய பதிப்பை இயக்க வேண்டும்.</translation>
 <translation id="3409896703495473338">பாதுகாப்பு அமைப்புகளை நிர்வகியுங்கள்</translation>
 <translation id="3414952576877147120">அளவு:</translation>
-<translation id="3417660076059365994">நீங்கள் பதிவேற்றும்/இணைக்கும் கோப்புகள் Google கிளவுடுக்கோ மூன்றாம் தரப்பினருக்கோ ஆய்வுக்காக அனுப்பப்படும். எடுத்துக்காட்டாக, பாதுகாக்க வேண்டிய தரவோ மால்வேரோ உள்ளதா என்று கண்டறிவதற்காக அவை ஸ்கேன் செய்யப்படலாம்.</translation>
+<translation id="3417660076059365994">நீங்கள் பதிவேற்றும்/இணைக்கும் ஃபைல்கள்  Google கிளவுடுக்கோ மூன்றாம் தரப்பினருக்கோ ஆய்வுக்காக அனுப்பப்படும். எடுத்துக்காட்டாக, பாதுகாக்க வேண்டிய தரவோ மால்வேரோ உள்ளதா என்று கண்டறிவதற்காக அவை ஸ்கேன் செய்யப்படலாம்.</translation>
 <translation id="3422248202833853650">பிற நிரல்களிலிருந்து வெளியேறி, நினைவகத்தைக் காலியாக்கவும்.</translation>
 <translation id="3422472998109090673"><ph name="HOST_NAME" />ஐத் தற்போது அணுக முடியவில்லை.</translation>
 <translation id="3423742043356668186">சிஸ்டம் அமைத்தது</translation>
@@ -1065,7 +1065,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">மோசடி செய்யும் தளத்தில் உங்கள் கடவுச்சொல்லை உள்ளிட்டுள்ளீர்கள். இந்தக் கடவுச்சொல்லைப் பயன்படுத்தும் <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ஆகியவற்றுக்கும் பிற தளங்களுக்கும் சென்று அங்கு சேமித்துள்ள கடவுச்சொற்களைச் சரிபார்க்கும்படி Chromium பரிந்துரைக்கிறது.</translation>
 <translation id="468314109939257734">உங்கள் விர்ச்சுவல் கார்டு எண்ணைக் காட்டும்</translation>
-<translation id="4690462567478992370">தவறான சான்றிதழைப் பயன்படுத்துவதை நிறுத்து</translation>
 <translation id="4691835149146451662">Architecture-A (என்வலப்)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">சைடு</translation>
@@ -1692,7 +1691,7 @@
 <translation id="6975012522936652259">மோசடி செய்யும் இணையதளத்தில் உங்கள் கடவுச்சொல்லை உள்ளிட்டுள்ளீர்கள். இந்தக் கடவுச்சொல்லைப் பயன்படுத்தி உள்நுழையும் <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> மற்றும் பிற தளங்களுக்குச் சென்று இதை இப்போதே மாற்றுமாறு Chromium பரிந்துரைக்கிறது.</translation>
 <translation id="6979158407327259162">Google Drive</translation>
 <translation id="6979440798594660689">முடக்கு (இயல்பு)</translation>
-<translation id="6979983982287291980">நீங்கள் பதிவிறக்கும் கோப்புகள் Google கிளவுடுக்கோ மூன்றாம் தரப்பினருக்கோ ஆய்வுக்காக அனுப்பப்படும். எடுத்துக்காட்டாக, பாதுகாக்க வேண்டிய தரவோ மால்வேரோ உள்ளதா என்று கண்டறிவதற்காக அவை ஸ்கேன் செய்யப்படலாம்.</translation>
+<translation id="6979983982287291980">நீங்கள் பதிவிறக்கும் ஃபைல்கள்  Google கிளவுடுக்கோ மூன்றாம் தரப்பினருக்கோ ஆய்வுக்காக அனுப்பப்படும். எடுத்துக்காட்டாக, பாதுகாக்க வேண்டிய தரவோ மால்வேரோ உள்ளதா என்று கண்டறிவதற்காக அவை ஸ்கேன் செய்யப்படலாம்.</translation>
 <translation id="6989763994942163495">மேம்பட்ட அமைப்புகளைக் காண்பி...</translation>
 <translation id="6993898126790112050">6x9 (என்வலப்)</translation>
 <translation id="6996312675313362352"><ph name="ORIGINAL_LANGUAGE" /> மொழியிலிருந்து எப்போதும் மொழிபெயர்</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index b0742c8..4d9b8a1 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -1071,7 +1071,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">మీరు మోసపూరితమైన సైట్‌లో మీ పాస్‌వర్డ్‌ను ఎంటర్ చేశారు. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, ఇతర సైట్‌లలో ప్రస్తుతం మీరు ఎక్కడైతే ఈ పాస్‌వర్డ్‌ను ఉపయోగిస్తారో, అక్కడ మీ సేవ్ చేసిన పాస్‌వర్డ్‌లను తనిఖీ చేసుకోమని Chromium సిఫార్సు చేస్తోంది.</translation>
 <translation id="468314109939257734">వర్చువల్ కార్డ్ నంబర్‌ను చూడండి</translation>
-<translation id="4690462567478992370">చెల్లని ప్రమాణపత్రాన్ని ఉపయోగించడాన్ని ఆపివేయి</translation>
 <translation id="4691835149146451662">ఆర్కిటెక్చర్-A (ఎన్వలప్)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">పక్కన</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index e67ce1c5e..a3d49ca7 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ลองล้างคุกกี้<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">ตรวจสอบการตั้งค่า DNS ที่ปลอดภัย</translation>
 <translation id="1307966114820526988">ฟีเจอร์ที่เลิกใช้งานแล้ว</translation>
+<translation id="1312803275555673949">ดูหลักฐานสนับสนุน</translation>
 <translation id="131405271941274527"><ph name="URL" /> ต้องการส่งและรับข้อมูลเมื่อคุณแตะโทรศัพท์กับอุปกรณ์ NFC</translation>
 <translation id="1314509827145471431">เย็บเล่มด้านขวา</translation>
 <translation id="1319245136674974084">ไม่ต้องถามอีกสำหรับแอปนี้</translation>
@@ -637,6 +638,7 @@
 <translation id="3240791268468473923">ระบบได้เปิด Bottom Sheet ซึ่งแจ้งว่าไม่พบข้อมูลเข้าสู่ระบบที่ตรงกันสำหรับข้อมูลเข้าสู่ระบบการชำระเงินที่ปลอดภัย</translation>
 <translation id="3249845759089040423">ดึงดูด</translation>
 <translation id="3252266817569339921">ฝรั่งเศส</translation>
+<translation id="3257954757204451555">ดูผู้ที่อยู่เบื้องหลังข้อมูลนี้</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" /> กด Tab ตามด้วย Enter เพื่อสร้างกิจกรรมใหม่ใน Google ปฏิทินอย่างรวดเร็ว</translation>
 <translation id="3266793032086590337">ค่า (มีความขัดแย้ง)</translation>
 <translation id="3268451620468152448">แท็บที่เปิดอยู่</translation>
@@ -1030,6 +1032,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">ลองปิดใช้ส่วนขยาย</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">ผู้ดูแลระบบจะเปลี่ยนการตั้งค่าเบราว์เซอร์จากระยะไกลได้ กิจกรรมในอุปกรณ์นี้อาจมีการจัดการภายนอก Chromium ได้ด้วย <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">การจัดส่ง</translation>
 <translation id="4579056131138995126">Personal (ซองจดหมาย)</translation>
 <translation id="4582204425268416675">นำบัตรออก</translation>
@@ -1059,7 +1062,6 @@
 <translation id="467809019005607715">Google สไลด์</translation>
 <translation id="4680804919228900307">คุณเพิ่งใส่รหัสผ่านในเว็บไซต์ที่มีการหลอกลวง Chromium ขอแนะนำให้ตรวจสอบรหัสผ่านที่บันทึกไว้สำหรับ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> และเว็บไซต์อื่นๆ ที่คุณใช้รหัสผ่านนี้ทันที</translation>
 <translation id="468314109939257734">ดูหมายเลขบัตรเสมือนของคุณ</translation>
-<translation id="4690462567478992370">หยุดใช้ใบรับรองที่ไม่ถูกต้อง</translation>
 <translation id="4691835149146451662">Architecture-A (ซองจดหมาย)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">ด้านข้าง</translation>
@@ -1522,6 +1524,7 @@
 <translation id="6337534724793800597">กรองนโยบายตามชื่อ</translation>
 <translation id="6349101878882523185">ติดตั้ง <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{ไม่มี}=1{มีรหัสผ่าน 1 รายการ (สำหรับ <ph name="DOMAIN_LIST" />, ซิงค์แล้ว)}=2{มีรหัสผ่าน 2 รายการ (สำหรับ <ph name="DOMAIN_LIST" />, ซิงค์แล้ว)}other{มีรหัสผ่าน # รายการ (สำหรับ <ph name="DOMAIN_LIST" />, ซิงค์แล้ว)}}</translation>
+<translation id="6355392890578844978">เบราว์เซอร์นี้ไม่ได้จัดการโดยบริษัทหรือองค์กรอื่นๆ กิจกรรมในอุปกรณ์นี้อาจมีการจัดการภายนอก Chromium <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">นี่หมายถึงอะไร</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />ตรวจสอบพร็อกซี ไฟร์วอลล์ และการกำหนดค่า DNS ที่ปลอดภัย<ph name="END_LINK" /></translation>
@@ -1973,6 +1976,7 @@
 <translation id="7961015016161918242">ไม่ต้องเลย</translation>
 <translation id="7966803981046576691">ประเภทบัญชีของงาน</translation>
 <translation id="79682505114836835">"<ph name="VALUE" />" ไม่ใช่ค่าสีแบบเลขฐานสิบหกที่ถูกต้อง</translation>
+<translation id="7970392640816874403">ดูข้อมูลจากแหล่งที่มาอื่นๆ</translation>
 <translation id="7976214039405368314">มีคำขอมากเกินไป</translation>
 <translation id="7977538094055660992">อุปกรณ์กระดาษออก</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index deb31df0..4900598 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Çerezlerinizi temizlemeyi deneyin<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Güvenli DNS ayarlarınızı kontrol edin</translation>
 <translation id="1307966114820526988">Kullanımdan Kaldırılan Özellikler</translation>
+<translation id="1312803275555673949">Bunu destekleyen kanıtlar neler?</translation>
 <translation id="131405271941274527"><ph name="URL" />, bir NFC cihazında telefonunuza dokunduğunuzda bilgi gönderip almak istiyor</translation>
 <translation id="1314509827145471431">Sağdan bağlı</translation>
 <translation id="1319245136674974084">Bu uygulama için tekrar sorma</translation>
@@ -638,6 +639,7 @@
 <translation id="3240791268468473923">Eşleşmeyen güvenli ödeme kimlik bilgisi sayfası açıldı</translation>
 <translation id="3249845759089040423">Modern</translation>
 <translation id="3252266817569339921">Fransızca</translation>
+<translation id="3257954757204451555">Bu bilginin kaynağı kim?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Takvim'de hızlıca yeni bir etkinlik oluşturmak için Sekme'ye, ardından Enter'a basın</translation>
 <translation id="3266793032086590337">Değer (çakışma)</translation>
 <translation id="3268451620468152448">Açık Sekmeler</translation>
@@ -1033,6 +1035,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Uzantılarınızı devre dışı bırakmayı deneyin</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Yöneticiniz, tarayıcınızın kurulumunu uzaktan değiştirebilir. Bu cihazdaki etkinlikler Chromium dışında da yönetilebilir. <ph name="BEGIN_LINK" />Daha fazla bilgi<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Teslimat</translation>
 <translation id="4579056131138995126">Personal (Zarf)</translation>
 <translation id="4582204425268416675">Kartı kaldır</translation>
@@ -1062,7 +1065,6 @@
 <translation id="467809019005607715">Google Slaytlar</translation>
 <translation id="4680804919228900307">Az önce şifrenizi yanıltıcı bir sitede girdiniz. Chromium, <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> ve bu şifreyi kullandığınız diğer sitelerdeki kayıtlı şifrelerinizi hemen kontrol etmenizi öneriyor.</translation>
 <translation id="468314109939257734">Sanal kart numaranızı görüntüleyin</translation>
-<translation id="4690462567478992370">Geçersiz sertifika kullanımını durdur</translation>
 <translation id="4691835149146451662">Architecture-A (Zarf)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Taraf</translation>
@@ -1525,6 +1527,7 @@
 <translation id="6337534724793800597">Politikalara ada göre filtre uygula</translation>
 <translation id="6349101878882523185"><ph name="APP_NAME" /> uygulamasını yükle</translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Yok}=1{1 şifre (<ph name="DOMAIN_LIST" /> için, senkronize edildi)}=2{2 şifre (<ph name="DOMAIN_LIST" /> için, senkronize edildi)}other{# şifre (<ph name="DOMAIN_LIST" /> için, senkronize edildi)}}</translation>
+<translation id="6355392890578844978">Bu tarayıcı bir şirket veya başka bir kuruluş tarafından yönetilmemektedir. Bu cihazdaki etkinlikler Chromium dışında yönetilebilir. <ph name="BEGIN_LINK" />Daha fazla bilgi<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Bunlar ne anlama geliyor?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Proxy'yi, güvenlik duvarını ve Güvenli DNS yapılandırmasını kontrol etme<ph name="END_LINK" /></translation>
@@ -1976,6 +1979,7 @@
 <translation id="7961015016161918242">Hiçbir Zaman</translation>
 <translation id="7966803981046576691">İş hesap türü</translation>
 <translation id="79682505114836835">"<ph name="VALUE" />" değeri, geçersiz bir onaltılık renk.</translation>
+<translation id="7970392640816874403">Diğer kaynaklar ne diyor?</translation>
 <translation id="7976214039405368314">Çok fazla istek var</translation>
 <translation id="7977538094055660992">Çıkış cihazı</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 14941d3..4e59bdd9 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -1072,7 +1072,6 @@
 <translation id="467809019005607715">Google Презентації</translation>
 <translation id="4680804919228900307">Щойно ви ввели пароль на оманливому сайті. Chromium радить перевірити збережені паролі для <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> та інших сайтів, де використовується цей пароль.</translation>
 <translation id="468314109939257734">Переглянути номер віртуальної картки</translation>
-<translation id="4690462567478992370">Припинити використання недійсного сертифіката</translation>
 <translation id="4691835149146451662">Architecture-A (конверт)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Сторона</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index 2e7b64d4..e3b881f 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -1070,7 +1070,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">‏آپ نے ابھی ایک پُرفریب سائٹ پر اپنا پاس ورڈ درج کیا ہے۔ Chromium <ph name="WEBSITE_1" />، <ph name="WEBSITE_2" />، <ph name="WEBSITE_3" /> اور دیگر ایسی سائٹس کے لیے اپنے محفوظ کردہ پاس ورڈز کو ابھی چیک کرنے کی تجویز کرتا ہے جہاں آپ اس پاس ورڈ کا استعمال کرتے ہیں۔</translation>
 <translation id="468314109939257734">اپنا ورچوئل کارڈ نمبر دیکھیں</translation>
-<translation id="4690462567478992370">ایک غلط سرٹیفیکیٹ کا استعمال روکیں</translation>
 <translation id="4691835149146451662">Architecture-A ‎(Envelope‎)‎</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">سائیڈ</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index 7872fc6..61075f05 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -1067,7 +1067,6 @@
 <translation id="467809019005607715">Google Slides</translation>
 <translation id="4680804919228900307">Hozirgina shubhali saytda parol kiritdingiz. Chromium hoziroq <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> va boshqa saytlardagi shu parolingizni tekshirishni tavsiya qiladi.</translation>
 <translation id="468314109939257734">Virtual karta raqamini koʻrish</translation>
-<translation id="4690462567478992370">Yaroqsiz sertifikatdan foydalanishni to‘xtatish</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Tomoni</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 4bc2ae10..aa31966 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Thử xóa các cookie của bạn<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">Kiểm tra tùy chọn cài đặt của DNS bảo mật</translation>
 <translation id="1307966114820526988">Tính năng sắp ngừng hoạt động</translation>
+<translation id="1312803275555673949">Bằng chứng nào xác minh việc này?</translation>
 <translation id="131405271941274527"><ph name="URL" /> muốn gửi và nhận thông tin khi bạn chạm điện thoại của bạn vào thiết bị dùng công nghệ giao tiếp tầm gần (NFC)</translation>
 <translation id="1314509827145471431">Đóng gáy bên phải</translation>
 <translation id="1319245136674974084">Không hỏi lại đối với ứng dụng này</translation>
@@ -641,6 +642,7 @@
 <translation id="3240791268468473923">Đã mở thông tin xác thực thanh toán an toàn không khớp với bảng thông tin xác thực</translation>
 <translation id="3249845759089040423">Sành điệu</translation>
 <translation id="3252266817569339921">Tiếng Pháp</translation>
+<translation id="3257954757204451555">Ai là người phát tán thông tin này?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn phím Enter để tạo nhanh một sự kiện mới trong Lịch Google</translation>
 <translation id="3266793032086590337">Giá trị (xung đột)</translation>
 <translation id="3268451620468152448">Thẻ đang mở</translation>
@@ -1040,6 +1042,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">Thử tắt tiện ích.</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">Quản trị viên có thể thay đổi quy trình thiết lập trình duyệt của bạn từ xa. Hoạt động trên thiết bị này cũng có thể được quản lý bên ngoài Chromium. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">Giao hàng</translation>
 <translation id="4579056131138995126">Personal (Phong bì)</translation>
 <translation id="4582204425268416675">Xóa thẻ</translation>
@@ -1069,7 +1072,6 @@
 <translation id="467809019005607715">Google Trang trình bày</translation>
 <translation id="4680804919228900307">Bạn vừa nhập mật khẩu vào một trang web lừa đảo. Chromium khuyên bạn nên kiểm tra ngay những mật khẩu bạn đã lưu cho <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> và các trang web khác mà bạn sử dụng mật khẩu này.</translation>
 <translation id="468314109939257734">Xem số thẻ ảo của bạn</translation>
-<translation id="4690462567478992370">Dừng sử dụng chứng chỉ không hợp lệ</translation>
 <translation id="4691835149146451662">Architecture-A (Phong bì)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Mặt bên</translation>
@@ -1532,6 +1534,7 @@
 <translation id="6337534724793800597">Lọc chính sách theo tên</translation>
 <translation id="6349101878882523185">Cài đặt <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{Không có}=1{1 mật khẩu (cho <ph name="DOMAIN_LIST" />, đã đồng bộ hóa)}=2{2 mật khẩu (cho <ph name="DOMAIN_LIST" />, đã đồng bộ hóa)}other{# mật khẩu (cho <ph name="DOMAIN_LIST" />, đã đồng bộ hóa)}}</translation>
+<translation id="6355392890578844978">Không có công ty hay tổ chức nào quản lý trình duyệt này. Hoạt động trên thiết bị này có thể được quản lý ở bên ngoài Chromium. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">Những phần này có ý nghĩa gì?</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />Kiểm tra cấu hình proxy, tường lửa và DNS bảo mật<ph name="END_LINK" /></translation>
@@ -1983,6 +1986,7 @@
 <translation id="7961015016161918242">Không bao giờ</translation>
 <translation id="7966803981046576691">Loại tài khoản công việc</translation>
 <translation id="79682505114836835">Giá trị "<ph name="VALUE" />" là một màu không hợp lệ theo hệ thập lục phân.</translation>
+<translation id="7970392640816874403">Những nguồn khác có nội dung gì?</translation>
 <translation id="7976214039405368314">Quá nhiều yêu cầu</translation>
 <translation id="7977538094055660992">Thiết bị đầu ra</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index 2ea8177..824fe22 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -1056,7 +1056,6 @@
 <translation id="467809019005607715">Google 幻灯片</translation>
 <translation id="4680804919228900307">您刚刚在一个诈骗网站中输入了密码。Chromium 建议您立即前往 <ph name="WEBSITE_1" />、<ph name="WEBSITE_2" />、<ph name="WEBSITE_3" /> 以及使用此密码的其他网站检查您保存的密码。</translation>
 <translation id="468314109939257734">查看您的虚拟卡号</translation>
-<translation id="4690462567478992370">停止使用无效的证书</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /><ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">侧边</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index e5184eb..0a9ca8b 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />嘗試清除 Cookie<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">請檢查您的安全 DNS 設定</translation>
 <translation id="1307966114820526988">這些功能已被淘汰</translation>
+<translation id="1312803275555673949">有何證據可證明資訊屬實?</translation>
 <translation id="131405271941274527"><ph name="URL" /> 想在您以手機觸踫 NFC 裝置時傳送和接收資料</translation>
 <translation id="1314509827145471431">釘裝 (右側)</translation>
 <translation id="1319245136674974084">使用這個應用程式時不要再問我</translation>
@@ -637,6 +638,7 @@
 <translation id="3240791268468473923">開咗冇相符安全付款憑證工作表</translation>
 <translation id="3249845759089040423">型格</translation>
 <translation id="3252266817569339921">法文</translation>
+<translation id="3257954757204451555">這項資訊是由誰提供?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以喺 Google 日曆度快速建立新活動</translation>
 <translation id="3266793032086590337">值 (衝突)</translation>
 <translation id="3268451620468152448">開啟的分頁</translation>
@@ -1030,6 +1032,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">嘗試停用擴充程式。</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">你的系統管理員可從遠端變更瀏覽器設定。這部裝置上的活動也可透過 Chromium 以外的服務管理。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">送貨</translation>
 <translation id="4579056131138995126">Personal (信封)</translation>
 <translation id="4582204425268416675">移除卡</translation>
@@ -1059,7 +1062,6 @@
 <translation id="467809019005607715">Google 簡報</translation>
 <translation id="4680804919228900307">您剛才在欺詐網站上輸入了密碼。Chromium 建議您立即檢查已儲存在 <ph name="WEBSITE_1" />、<ph name="WEBSITE_2" />、<ph name="WEBSITE_3" /> 以及其他您使用此密碼的網站。</translation>
 <translation id="468314109939257734">查看虛擬卡號</translation>
-<translation id="4690462567478992370">停止使用無效的憑證</translation>
 <translation id="4691835149146451662">Architecture-A (信封)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">側邊</translation>
@@ -1522,6 +1524,7 @@
 <translation id="6337534724793800597">依名稱篩選政策</translation>
 <translation id="6349101878882523185">安裝 <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{無}=1{有 1 個密碼 (<ph name="DOMAIN_LIST" />,已同步)}=2{有 2 個密碼 (<ph name="DOMAIN_LIST" />,已同步)}other{有 # 個密碼 (<ph name="DOMAIN_LIST" />,已同步)}}</translation>
+<translation id="6355392890578844978">這個瀏覽器未受到任何公司或其他機構管理。這部裝置上的活動可透過 Chromium 以外的服務管理。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">我需要進一步資料</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />檢查 Proxy、防火牆和安全 DNS 設定<ph name="END_LINK" /></translation>
@@ -1973,6 +1976,7 @@
 <translation id="7961015016161918242">從來沒有</translation>
 <translation id="7966803981046576691">工作帳戶類型</translation>
 <translation id="79682505114836835">「<ph name="VALUE" />」是無效的十六進制顏色值。</translation>
+<translation id="7970392640816874403">其他來源提供了哪些資訊?</translation>
 <translation id="7976214039405368314">要求數量過多</translation>
 <translation id="7977538094055660992">輸出裝置</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 96042b9..1fce2b2 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -96,6 +96,7 @@
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />試試看清除 Cookie<ph name="END_LINK" /></translation>
 <translation id="1301324364792935241">請檢查你的安全 DNS 設定</translation>
 <translation id="1307966114820526988">已淘汰的功能</translation>
+<translation id="1312803275555673949">有何證據可證明資訊屬實?</translation>
 <translation id="131405271941274527"><ph name="URL" /> 要求在你將手機貼近 NFC 裝置時傳送及接收資訊</translation>
 <translation id="1314509827145471431">裝訂 (右側)</translation>
 <translation id="1319245136674974084">不要再詢問是否允許調整這個應用程式的大小</translation>
@@ -637,6 +638,7 @@
 <translation id="3240791268468473923">無相符安全付款憑證表已開啟</translation>
 <translation id="3249845759089040423">時髦</translation>
 <translation id="3252266817569339921">法文</translation>
+<translation id="3257954757204451555">這項資訊是由誰提供?</translation>
 <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />;按下 Tab 鍵再按下 Enter 鍵即可在 Google 日曆中快速建立新活動</translation>
 <translation id="3266793032086590337">值 (衝突)</translation>
 <translation id="3268451620468152448">開啟的分頁</translation>
@@ -1031,6 +1033,7 @@
 <translation id="455113658016510503">A9</translation>
 <translation id="4558551763791394412">試試看停用擴充功能。</translation>
 <translation id="4559332380232738994">10x11</translation>
+<translation id="4567686777917670400">你的系統管理員可從遠端變更瀏覽器設定。這部裝置上的活動也可透過 Chromium 以外的服務管理。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
 <translation id="457875822857220463">快遞</translation>
 <translation id="4579056131138995126">Personal (信封)</translation>
 <translation id="4582204425268416675">移除卡片</translation>
@@ -1060,7 +1063,6 @@
 <translation id="467809019005607715">Google 簡報</translation>
 <translation id="4680804919228900307">你剛才在詐騙網站上輸入了密碼。Chromium 建議你立即檢查為以下網站儲存的密碼:<ph name="WEBSITE_1" />、<ph name="WEBSITE_2" />、<ph name="WEBSITE_3" />,以及使用這組密碼的其他網站。</translation>
 <translation id="468314109939257734">查看虛擬卡號</translation>
-<translation id="4690462567478992370">停止使用無效的憑證</translation>
 <translation id="4691835149146451662">Architecture-A (信封)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">側邊</translation>
@@ -1523,6 +1525,7 @@
 <translation id="6337534724793800597">依名稱篩選政策</translation>
 <translation id="6349101878882523185">安裝 <ph name="APP_NAME" /></translation>
 <translation id="6353505687280762741">{COUNT,plural, =0{無}=1{有 1 組密碼 (<ph name="DOMAIN_LIST" />,已同步處理)}=2{有 2 組密碼 (<ph name="DOMAIN_LIST" />,已同步處理)}other{有 # 組密碼 (<ph name="DOMAIN_LIST" />,已同步處理)}}</translation>
+<translation id="6355392890578844978">這個瀏覽器未受到任何公司或其他機構管理。這部裝置上的活動可透過 Chromium 以外的服務管理。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
 <translation id="6358450015545214790">我需要進一步資訊</translation>
 <translation id="6361757823711327522">B7</translation>
 <translation id="6364095313648930329"><ph name="BEGIN_LINK" />檢查 Proxy、防火牆和安全 DNS 設定<ph name="END_LINK" /></translation>
@@ -1974,6 +1977,7 @@
 <translation id="7961015016161918242">一律不要</translation>
 <translation id="7966803981046576691">工作帳戶類型</translation>
 <translation id="79682505114836835">「<ph name="VALUE" />」是無效的十六進位顏色值。</translation>
+<translation id="7970392640816874403">其他來源提供了哪些資訊?</translation>
 <translation id="7976214039405368314">要求數量過多</translation>
 <translation id="7977538094055660992">輸出裝置</translation>
 <translation id="7977894662897852582">Edp</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index e2e47ef..037849e 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -1069,7 +1069,6 @@
 <translation id="467809019005607715">Google Amaslayidi</translation>
 <translation id="4680804919228900307">Usanda kufaka iphasiwedi yakho kusayithi elikhohlisayo. I-Chromium incoma ukuhlola amaphasiwedi akho alondoloziwe we-<ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />, namanye amasayithi lapho usebenzisa khona le phasiwedi manje.</translation>
 <translation id="468314109939257734">Buka inombolo yekhadi lakho le-virtual</translation>
-<translation id="4690462567478992370">Misa ukusebenzisa isitifiketi esingavumelekile</translation>
 <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
 <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
 <translation id="4702504834785592287">Uhlangothi</translation>
diff --git a/components/zucchini/abs32_utils.h b/components/zucchini/abs32_utils.h
index f13f562d..07503b5 100644
--- a/components/zucchini/abs32_utils.h
+++ b/components/zucchini/abs32_utils.h
@@ -10,7 +10,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/address_translator.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/image_utils.h"
@@ -94,6 +93,8 @@
  public:
   Abs32ReaderWin32(Abs32RvaExtractorWin32&& abs32_rva_extractor,
                    const AddressTranslator& translator);
+  Abs32ReaderWin32(const Abs32ReaderWin32&) = delete;
+  const Abs32ReaderWin32& operator=(const Abs32ReaderWin32&) = delete;
   ~Abs32ReaderWin32() override;
 
   // ReferenceReader:
@@ -102,8 +103,6 @@
  private:
   Abs32RvaExtractorWin32 abs32_rva_extractor_;
   AddressTranslator::RvaToOffsetCache target_rva_to_offset_;
-
-  DISALLOW_COPY_AND_ASSIGN(Abs32ReaderWin32);
 };
 
 // A writer for Win32 abs32 references. |addr| determines the bitness of the
@@ -113,6 +112,8 @@
   Abs32WriterWin32(MutableBufferView image,
                    AbsoluteAddress&& addr,
                    const AddressTranslator& translator);
+  Abs32WriterWin32(const Abs32WriterWin32&) = delete;
+  const Abs32WriterWin32& operator=(const Abs32WriterWin32&) = delete;
   ~Abs32WriterWin32() override;
 
   // ReferenceWriter:
@@ -122,8 +123,6 @@
   MutableBufferView image_;
   AbsoluteAddress addr_;
   AddressTranslator::OffsetToRvaCache target_offset_to_rva_;
-
-  DISALLOW_COPY_AND_ASSIGN(Abs32WriterWin32);
 };
 
 // Given a list of abs32 |locations|, removes all elements whose targets cannot
diff --git a/components/zucchini/binary_data_histogram.h b/components/zucchini/binary_data_histogram.h
index 3950ab7..201f90a 100644
--- a/components/zucchini/binary_data_histogram.h
+++ b/components/zucchini/binary_data_histogram.h
@@ -11,7 +11,6 @@
 #include <memory>
 #include <string>
 
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 
 namespace zucchini {
@@ -24,6 +23,8 @@
 class OutlierDetector {
  public:
   OutlierDetector();
+  OutlierDetector(const OutlierDetector&) = delete;
+  const OutlierDetector& operator=(const OutlierDetector&) = delete;
   ~OutlierDetector();
 
   // Incorporates |sample| into mean and standard deviation.
@@ -47,8 +48,6 @@
   double sum_of_squares_ = 0;
   double mean_ = 0;
   double standard_deviation_ = 0;
-
-  DISALLOW_COPY_AND_ASSIGN(OutlierDetector);
 };
 
 // A class to compute similarity score between binary data. The heuristic here
@@ -58,6 +57,8 @@
 class BinaryDataHistogram {
  public:
   BinaryDataHistogram();
+  BinaryDataHistogram(const BinaryDataHistogram&) = delete;
+  const BinaryDataHistogram& operator=(const BinaryDataHistogram&) = delete;
   ~BinaryDataHistogram();
 
   // Attempts to compute the histogram, returns true iff successful.
@@ -82,8 +83,6 @@
   // are stored as signed values to simplify computing the distance between two
   // histograms.
   std::unique_ptr<int32_t[]> histogram_;
-
-  DISALLOW_COPY_AND_ASSIGN(BinaryDataHistogram);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/disassembler.h b/components/zucchini/disassembler.h
index 8fd5a3ac..48ee0fb 100644
--- a/components/zucchini/disassembler.h
+++ b/components/zucchini/disassembler.h
@@ -11,7 +11,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/image_utils.h"
 
@@ -54,6 +53,8 @@
     return disasm;
   }
 
+  Disassembler(const Disassembler&) = delete;
+  const Disassembler& operator=(const Disassembler&) = delete;
   virtual ~Disassembler();
 
   // Returns the type of executable handled by the Disassembler.
@@ -85,8 +86,6 @@
   // The number of iterations to run for equivalence map generation. This should
   // roughly be the max length of reference indirection chains.
   int num_equivalence_iterations_;
-
-  DISALLOW_COPY_AND_ASSIGN(Disassembler);
 };
 
 // A ReferenceGroup is associated with a specific |type| and has convenience
diff --git a/components/zucchini/disassembler_dex.cc b/components/zucchini/disassembler_dex.cc
index a835fb2..5b25c50 100644
--- a/components/zucchini/disassembler_dex.cc
+++ b/components/zucchini/disassembler_dex.cc
@@ -630,6 +630,9 @@
     if (cur_it_ != item_offsets.begin() && *(cur_it_ - 1) + rel_location_ >= lo)
       --cur_it_;
   }
+  CachedItemListReferenceReader(const CachedItemListReferenceReader&) = delete;
+  const CachedItemListReferenceReader& operator=(
+      const CachedItemListReferenceReader&) = delete;
 
   // ReferenceReader:
   absl::optional<Reference> GetNext() override {
@@ -659,8 +662,6 @@
   const std::vector<offset_t>::const_iterator end_it_;
   const Mapper mapper_;
   std::vector<offset_t>::const_iterator cur_it_;
-
-  DISALLOW_COPY_AND_ASSIGN(CachedItemListReferenceReader);
 };
 
 // Reads an INT index at |location| in |image| and translates the index to the
diff --git a/components/zucchini/disassembler_dex.h b/components/zucchini/disassembler_dex.h
index ecc4be6..2038a3cd 100644
--- a/components/zucchini/disassembler_dex.h
+++ b/components/zucchini/disassembler_dex.h
@@ -12,7 +12,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/disassembler.h"
 #include "components/zucchini/image_utils.h"
 #include "components/zucchini/type_dex.h"
@@ -112,6 +111,8 @@
   };
 
   DisassemblerDex();
+  DisassemblerDex(const DisassemblerDex&) = delete;
+  const DisassemblerDex& operator=(const DisassemblerDex&) = delete;
   ~DisassemblerDex() override;
 
   // Applies quick checks to determine if |image| *may* point to the start of an
@@ -265,8 +266,6 @@
   std::vector<offset_t> annotations_directory_item_method_annotation_offsets_;
   std::vector<offset_t>
       annotations_directory_item_parameter_annotation_offsets_;
-
-  DISALLOW_COPY_AND_ASSIGN(DisassemblerDex);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/disassembler_no_op.h b/components/zucchini/disassembler_no_op.h
index 280e8df..ef106517 100644
--- a/components/zucchini/disassembler_no_op.h
+++ b/components/zucchini/disassembler_no_op.h
@@ -9,7 +9,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/disassembler.h"
 #include "components/zucchini/image_utils.h"
@@ -20,6 +19,8 @@
 class DisassemblerNoOp : public Disassembler {
  public:
   DisassemblerNoOp();
+  DisassemblerNoOp(const DisassemblerNoOp&) = delete;
+  const DisassemblerNoOp& operator=(const DisassemblerNoOp&) = delete;
   ~DisassemblerNoOp() override;
 
   // Disassembler:
@@ -31,8 +32,6 @@
   friend Disassembler;
 
   bool Parse(ConstBufferView image) override;
-
-  DISALLOW_COPY_AND_ASSIGN(DisassemblerNoOp);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/disassembler_win32.h b/components/zucchini/disassembler_win32.h
index d952014..77b65ac 100644
--- a/components/zucchini/disassembler_win32.h
+++ b/components/zucchini/disassembler_win32.h
@@ -14,7 +14,6 @@
 #include <utility>
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/address_translator.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/disassembler.h"
@@ -63,6 +62,8 @@
   static bool QuickDetect(ConstBufferView image);
 
   DisassemblerWin32();
+  DisassemblerWin32(const DisassemblerWin32&) = delete;
+  const DisassemblerWin32& operator=(const DisassemblerWin32&) = delete;
   ~DisassemblerWin32() override;
 
   // Disassembler:
@@ -120,8 +121,6 @@
   bool has_parsed_relocs_ = false;
   bool has_parsed_abs32_ = false;
   bool has_parsed_rel32_ = false;
-
-  DISALLOW_COPY_AND_ASSIGN(DisassemblerWin32);
 };
 
 using DisassemblerWin32X86 = DisassemblerWin32<Win32X86Traits>;
diff --git a/components/zucchini/disassembler_ztf.cc b/components/zucchini/disassembler_ztf.cc
index f822d8b..dfe90456 100644
--- a/components/zucchini/disassembler_ztf.cc
+++ b/components/zucchini/disassembler_ztf.cc
@@ -11,7 +11,6 @@
 #include <numeric>
 
 #include "base/check_op.h"
-#include "base/macros.h"
 #include "base/numerics/checked_math.h"
 #include "base/numerics/safe_conversions.h"
 #include "components/zucchini/algorithm.h"
@@ -88,6 +87,9 @@
               ztf::kMaxDimValue);
   }
 
+  ZtfParser(const ZtfParser&) = delete;
+  const ZtfParser& operator=(const ZtfParser&) = delete;
+
   // Attempts to match an absolute reference at |offset|. If successful then
   // assigns the result to |abs_lc| and returns true. Otherwise returns false.
   // An absolute reference takes the form:
@@ -164,8 +166,6 @@
   const offset_t hi_;
   const ZtfConfig config_;
   offset_t offset_ = 0;
-
-  DISALLOW_COPY_AND_ASSIGN(ZtfParser);
 };
 
 /******** ZtfWriter ********/
@@ -180,6 +180,9 @@
         val_bound_(
             static_cast<ztf::dim_t>(std::pow(10, config_.digits_per_dim))) {}
 
+  ZtfWriter(const ZtfWriter&) = delete;
+  const ZtfWriter& operator=(const ZtfWriter&) = delete;
+
   // Write an absolute reference |abs_ref| at |offset|. Note that references
   // that would overwrite a newline are skipped as this would invalidate all
   // the other reference line numbers.
@@ -268,7 +271,6 @@
   // Bound on numeric values, as limited by |config_.digits_per_dim|.
   const ztf::dim_t val_bound_;
   offset_t offset_ = 0;
-  DISALLOW_COPY_AND_ASSIGN(ZtfWriter);
 };
 
 // Specialization of ReferenceReader for reading text references.
diff --git a/components/zucchini/disassembler_ztf.h b/components/zucchini/disassembler_ztf.h
index adbead5..0e73c2a0 100644
--- a/components/zucchini/disassembler_ztf.h
+++ b/components/zucchini/disassembler_ztf.h
@@ -12,7 +12,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/disassembler.h"
 #include "components/zucchini/image_utils.h"
 #include "components/zucchini/type_ztf.h"
@@ -81,6 +80,8 @@
 class ZtfTranslator {
  public:
   ZtfTranslator();
+  ZtfTranslator(const ZtfTranslator&) = delete;
+  const ZtfTranslator& operator=(const ZtfTranslator&) = delete;
   ~ZtfTranslator();
 
   // Initializes |line_starts_| with the contents of |image|.
@@ -117,7 +118,6 @@
   // |line_starts_| is a sorted list of each line's starting offset, along with
   // the image size as the sentinel; it looks like {0, ..., image.size}.
   std::vector<offset_t> line_starts_;
-  DISALLOW_COPY_AND_ASSIGN(ZtfTranslator);
 };
 
 // Disassembler for Zucchini Text Format (ZTF).
@@ -162,6 +162,8 @@
   };
 
   DisassemblerZtf();
+  DisassemblerZtf(const DisassemblerZtf&) = delete;
+  const DisassemblerZtf& operator=(const DisassemblerZtf&) = delete;
   ~DisassemblerZtf() override;
 
   // Applies quick checks to determine if |image| *may* point to the start of a
@@ -192,8 +194,6 @@
   bool Parse(ConstBufferView image) override;
 
   ZtfTranslator translator_;
-
-  DISALLOW_COPY_AND_ASSIGN(DisassemblerZtf);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/element_detection.h b/components/zucchini/element_detection.h
index d3dcb47..856ec27 100644
--- a/components/zucchini/element_detection.h
+++ b/components/zucchini/element_detection.h
@@ -10,7 +10,6 @@
 #include <memory>
 
 #include "base/callback.h"
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/image_utils.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -41,6 +40,8 @@
 class ElementFinder {
  public:
   ElementFinder(ConstBufferView image, ElementDetector&& detector);
+  ElementFinder(const ElementFinder&) = delete;
+  const ElementFinder& operator=(const ElementFinder&) = delete;
   ~ElementFinder();
 
   // Scans for the next executable using |detector|. Returns the next element
@@ -51,8 +52,6 @@
   ConstBufferView image_;
   ElementDetector detector_;
   offset_t pos_ = 0;
-
-  DISALLOW_COPY_AND_ASSIGN(ElementFinder);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/encoded_view.h b/components/zucchini/encoded_view.h
index bd88099..864d265 100644
--- a/components/zucchini/encoded_view.h
+++ b/components/zucchini/encoded_view.h
@@ -11,7 +11,6 @@
 #include <iterator>
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/image_index.h"
 #include "components/zucchini/image_utils.h"
 
@@ -136,6 +135,8 @@
   // |image_index| is the annotated image being adapted, and is required to
   // remain valid for the lifetime of the object.
   explicit EncodedView(const ImageIndex& image_index);
+  EncodedView(const EncodedView&) = delete;
+  const EncodedView& operator=(const EncodedView&) = delete;
   ~EncodedView();
 
   // Projects |location| to a scalar value that describes the content at a
@@ -177,8 +178,6 @@
 
   const ImageIndex& image_index_;
   std::vector<PoolInfo> pool_infos_;
-
-  DISALLOW_COPY_AND_ASSIGN(EncodedView);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/ensemble_matcher.h b/components/zucchini/ensemble_matcher.h
index bc89883..b188657c 100644
--- a/components/zucchini/ensemble_matcher.h
+++ b/components/zucchini/ensemble_matcher.h
@@ -9,7 +9,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/element_detection.h"
 #include "components/zucchini/image_utils.h"
@@ -29,6 +28,8 @@
 class EnsembleMatcher {
  public:
   EnsembleMatcher();
+  EnsembleMatcher(const EnsembleMatcher&) = delete;
+  const EnsembleMatcher& operator=(const EnsembleMatcher&) = delete;
   virtual ~EnsembleMatcher();
 
   // Interface to main matching feature. Returns whether match was successful.
@@ -52,9 +53,6 @@
   // Number of identical matches found in match candidates. These should be
   // excluded from |matches_|.
   size_t num_identical_ = 0;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(EnsembleMatcher);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/heuristic_ensemble_matcher.cc b/components/zucchini/heuristic_ensemble_matcher.cc
index c812cb4..2f01d34 100644
--- a/components/zucchini/heuristic_ensemble_matcher.cc
+++ b/components/zucchini/heuristic_ensemble_matcher.cc
@@ -83,6 +83,8 @@
 class MatchingInfoOut {
  protected:
   MatchingInfoOut() = default;
+  MatchingInfoOut(const MatchingInfoOut&) = delete;
+  const MatchingInfoOut& operator=(const MatchingInfoOut&) = delete;
 
  public:
   virtual ~MatchingInfoOut() = default;
@@ -108,9 +110,6 @@
   virtual void OutputScores(const std::string& stats) {}
 
   virtual void OutputTextGrid() {}
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MatchingInfoOut);
 };
 
 /******** MatchingInfoTerse ********/
@@ -119,14 +118,13 @@
 class MatchingInfoOutTerse : public MatchingInfoOut {
  public:
   MatchingInfoOutTerse() = default;
+  MatchingInfoOutTerse(const MatchingInfoOutTerse&) = delete;
+  const MatchingInfoOutTerse& operator=(const MatchingInfoOutTerse&) = delete;
   ~MatchingInfoOutTerse() override = default;
 
   void OutputScores(const std::string& stats) override {
     LOG(INFO) << "Best dists: " << stats;
   }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MatchingInfoOutTerse);
 };
 
 /******** MatchingInfoOutVerbose ********/
@@ -137,6 +135,9 @@
 class MatchingInfoOutVerbose : public MatchingInfoOut {
  public:
   explicit MatchingInfoOutVerbose(std::ostream& out) : out_(out) {}
+  MatchingInfoOutVerbose(const MatchingInfoOutVerbose&) = delete;
+  const MatchingInfoOutVerbose& operator=(const MatchingInfoOutVerbose&) =
+      delete;
   ~MatchingInfoOutVerbose() override = default;
 
   // Outputs sizes and initializes |text_grid_|.
@@ -226,9 +227,6 @@
 
   // For each "new" element, distance of best match. -1 denotes no match.
   std::vector<double> best_dist_;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MatchingInfoOutVerbose);
 };
 
 }  // namespace
diff --git a/components/zucchini/heuristic_ensemble_matcher.h b/components/zucchini/heuristic_ensemble_matcher.h
index 1adb998..ec40787 100644
--- a/components/zucchini/heuristic_ensemble_matcher.h
+++ b/components/zucchini/heuristic_ensemble_matcher.h
@@ -7,7 +7,6 @@
 
 #include <ostream>
 
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/ensemble_matcher.h"
 
@@ -22,6 +21,9 @@
 class HeuristicEnsembleMatcher : public EnsembleMatcher {
  public:
   explicit HeuristicEnsembleMatcher(std::ostream* out);
+  HeuristicEnsembleMatcher(const HeuristicEnsembleMatcher&) = delete;
+  const HeuristicEnsembleMatcher& operator=(const HeuristicEnsembleMatcher&) =
+      delete;
   ~HeuristicEnsembleMatcher() override;
 
   // EnsembleMatcher:
@@ -30,8 +32,6 @@
  private:
   // Optional stream to print detailed information during matching.
   std::ostream* out_ = nullptr;
-
-  DISALLOW_COPY_AND_ASSIGN(HeuristicEnsembleMatcher);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/image_utils.h b/components/zucchini/image_utils.h
index d948a91..748e20b2 100644
--- a/components/zucchini/image_utils.h
+++ b/components/zucchini/image_utils.h
@@ -11,7 +11,6 @@
 #include <string>
 
 #include "base/format_macros.h"
-#include "base/macros.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/strings/stringprintf.h"
 #include "components/zucchini/buffer_view.h"
diff --git a/components/zucchini/imposed_ensemble_matcher.h b/components/zucchini/imposed_ensemble_matcher.h
index 4dfc38e..39b0df5 100644
--- a/components/zucchini/imposed_ensemble_matcher.h
+++ b/components/zucchini/imposed_ensemble_matcher.h
@@ -10,7 +10,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/element_detection.h"
 #include "components/zucchini/ensemble_matcher.h"
@@ -34,6 +33,8 @@
   };
 
   ImposedMatchParser();
+  ImposedMatchParser(const ImposedMatchParser&) = delete;
+  const ImposedMatchParser& operator=(const ImposedMatchParser&) = delete;
   ~ImposedMatchParser();
 
   // Parses |imposed_matches| and writes the results to member variables.
@@ -57,8 +58,6 @@
   // unsupported image types (which will simply be ignored). Note that imposing
   // matches for known but incompatible image types would result in error.
   std::vector<ElementMatch> bad_matches_;
-
-  DISALLOW_COPY_AND_ASSIGN(ImposedMatchParser);
 };
 
 // An ensemble matcher that parses a format string that describes matches.
@@ -67,6 +66,9 @@
   // |imposed_matches| specifies imposed maches, using a format described below.
   // Validation is performed in RunMatch().
   explicit ImposedEnsembleMatcher(const std::string& imposed_matches);
+  ImposedEnsembleMatcher(const ImposedEnsembleMatcher&) = delete;
+  const ImposedEnsembleMatcher& operator=(const ImposedEnsembleMatcher&) =
+      delete;
   ~ImposedEnsembleMatcher() override;
 
   // EnsembleMatcher:
@@ -74,8 +76,6 @@
 
  private:
   const std::string imposed_matches_;
-
-  DISALLOW_COPY_AND_ASSIGN(ImposedEnsembleMatcher);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/io_utils.h b/components/zucchini/io_utils.h
index 56f70759..63eeec8 100644
--- a/components/zucchini/io_utils.h
+++ b/components/zucchini/io_utils.h
@@ -13,8 +13,6 @@
 #include <sstream>
 #include <string>
 
-#include "base/macros.h"
-
 namespace zucchini {
 
 // An std::ostream wrapper that that limits number of std::endl lines to output,
@@ -44,12 +42,12 @@
 
  public:
   LimitedOutputStream(std::ostream& os, int limit);
+  LimitedOutputStream(const LimitedOutputStream&) = delete;
+  const LimitedOutputStream& operator=(const LimitedOutputStream&) = delete;
   bool full() const { return buf_.full(); }
 
  private:
   StreamBuf buf_;
-
-  DISALLOW_COPY_AND_ASSIGN(LimitedOutputStream);
 };
 
 // A class to render hexadecimal numbers for std::ostream with 0-padding. This
@@ -88,14 +86,14 @@
 class PrefixSep {
  public:
   explicit PrefixSep(const std::string& sep_str) : sep_str_(sep_str) {}
+  PrefixSep(const PrefixSep&) = delete;
+  const PrefixSep& operator=(const PrefixSep&) = delete;
 
   friend std::ostream& operator<<(std::ostream& ostr, PrefixSep& obj);
 
  private:
   std::string sep_str_;
   bool first_ = true;
-
-  DISALLOW_COPY_AND_ASSIGN(PrefixSep);
 };
 
 // An input manipulator that dictates the expected next character in
@@ -103,6 +101,8 @@
 class EatChar {
  public:
   explicit EatChar(char ch) : ch_(ch) {}
+  EatChar(const EatChar&) = delete;
+  const EatChar& operator=(const EatChar&) = delete;
 
   friend inline std::istream& operator>>(std::istream& istr,
                                          const EatChar& obj) {
@@ -113,8 +113,6 @@
 
  private:
   char ch_;
-
-  DISALLOW_COPY_AND_ASSIGN(EatChar);
 };
 
 // An input manipulator that reads an unsigned integer from |std::istream|,
diff --git a/components/zucchini/mapped_file.h b/components/zucchini/mapped_file.h
index e8cd5907..f15e09a 100644
--- a/components/zucchini/mapped_file.h
+++ b/components/zucchini/mapped_file.h
@@ -13,7 +13,6 @@
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/files/memory_mapped_file.h"
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 
 namespace zucchini {
@@ -24,6 +23,8 @@
   // Maps |file| to memory for reading. Also validates |file|. Errors are
   // available via HasError() and error().
   explicit MappedFileReader(base::File file);
+  MappedFileReader(const MappedFileReader&) = delete;
+  const MappedFileReader& operator=(const MappedFileReader&) = delete;
 
   const uint8_t* data() const { return buffer_.data(); }
   size_t length() const { return buffer_.length(); }
@@ -35,8 +36,6 @@
  private:
   std::string error_;
   base::MemoryMappedFile buffer_;
-
-  DISALLOW_COPY_AND_ASSIGN(MappedFileReader);
 };
 
 // A file writer wrapper. The target file is deleted on destruction unless
@@ -49,6 +48,8 @@
   MappedFileWriter(const base::FilePath& file_path,
                    base::File file,
                    size_t length);
+  MappedFileWriter(const MappedFileWriter&) = delete;
+  const MappedFileWriter& operator=(const MappedFileWriter&) = delete;
   ~MappedFileWriter();
 
   uint8_t* data() { return buffer_.data(); }
@@ -74,8 +75,6 @@
   base::File file_handle_;
   base::MemoryMappedFile buffer_;
   OnCloseDeleteBehavior delete_behavior_;
-
-  DISALLOW_COPY_AND_ASSIGN(MappedFileWriter);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/patch_writer.h b/components/zucchini/patch_writer.h
index 3d42173..26b7baf 100644
--- a/components/zucchini/patch_writer.h
+++ b/components/zucchini/patch_writer.h
@@ -13,7 +13,6 @@
 #include <vector>
 
 #include "base/check.h"
-#include "base/macros.h"
 #include "components/zucchini/buffer_sink.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/image_utils.h"
@@ -237,6 +236,8 @@
  public:
   explicit EnsemblePatchWriter(const PatchHeader& header);
   EnsemblePatchWriter(ConstBufferView old_image, ConstBufferView new_image);
+  EnsemblePatchWriter(const EnsemblePatchWriter&) = delete;
+  const EnsemblePatchWriter& operator=(const EnsemblePatchWriter&) = delete;
   ~EnsemblePatchWriter();
 
   // Reserves space for |count| patch elements.
@@ -264,8 +265,6 @@
   PatchHeader header_;
   std::vector<PatchElementWriter> elements_;
   offset_t current_dst_offset_ = 0;
-
-  DISALLOW_COPY_AND_ASSIGN(EnsemblePatchWriter);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/reference_set.cc b/components/zucchini/reference_set.cc
index 14d4e54..82a9951b 100644
--- a/components/zucchini/reference_set.cc
+++ b/components/zucchini/reference_set.cc
@@ -8,7 +8,6 @@
 #include <iterator>
 
 #include "base/check_op.h"
-#include "base/macros.h"
 #include "components/zucchini/target_pool.h"
 
 namespace zucchini {
diff --git a/components/zucchini/suffix_array.h b/components/zucchini/suffix_array.h
index cf9af7d..75b3a38 100644
--- a/components/zucchini/suffix_array.h
+++ b/components/zucchini/suffix_array.h
@@ -11,7 +11,6 @@
 #include <vector>
 
 #include "base/check.h"
-#include "base/macros.h"
 
 namespace zucchini {
 
@@ -425,8 +424,9 @@
                   suffix_array);
     }
 
-   private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Implementation);
+    Implementation() = delete;
+    Implementation(const Implementation&) = delete;
+    const Implementation& operator=(const Implementation&) = delete;
   };
 };
 
diff --git a/components/zucchini/targets_affinity.h b/components/zucchini/targets_affinity.h
index 3a154e7..dff1741 100644
--- a/components/zucchini/targets_affinity.h
+++ b/components/zucchini/targets_affinity.h
@@ -10,7 +10,6 @@
 
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/image_utils.h"
 
 namespace zucchini {
@@ -22,6 +21,8 @@
 class TargetsAffinity {
  public:
   TargetsAffinity();
+  TargetsAffinity(const TargetsAffinity&) = delete;
+  const TargetsAffinity& operator=(const TargetsAffinity&) = delete;
   ~TargetsAffinity();
 
   // Infers affinity between |old_targets| and |new_targets| using similarities
@@ -65,8 +66,6 @@
   // lookup, given |old_key| or |new_key|.
   std::vector<Association> forward_association_;
   std::vector<Association> backward_association_;
-
-  DISALLOW_COPY_AND_ASSIGN(TargetsAffinity);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/test_disassembler.h b/components/zucchini/test_disassembler.h
index 427ed914..e434fc41 100644
--- a/components/zucchini/test_disassembler.h
+++ b/components/zucchini/test_disassembler.h
@@ -9,7 +9,6 @@
 #include <string>
 #include <vector>
 
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/disassembler.h"
 #include "components/zucchini/image_utils.h"
@@ -28,6 +27,8 @@
                    const std::vector<Reference>& refs2,
                    const ReferenceTypeTraits& traits3,
                    const std::vector<Reference>& refs3);
+  TestDisassembler(const TestDisassembler&) = delete;
+  const TestDisassembler& operator=(const TestDisassembler&) = delete;
   ~TestDisassembler() override;
 
   // Disassembler:
@@ -69,8 +70,6 @@
 
   ReferenceTypeTraits traits_[3];
   std::vector<Reference> refs_[3];
-
-  DISALLOW_COPY_AND_ASSIGN(TestDisassembler);
 };
 
 }  // namespace zucchini
diff --git a/components/zucchini/zucchini_commands.cc b/components/zucchini/zucchini_commands.cc
index 106b256..93929bd 100644
--- a/components/zucchini/zucchini_commands.cc
+++ b/components/zucchini/zucchini_commands.cc
@@ -16,7 +16,6 @@
 #include "base/files/file_path.h"
 #include "base/files/memory_mapped_file.h"
 #include "base/logging.h"
-#include "base/macros.h"
 #include "components/zucchini/buffer_view.h"
 #include "components/zucchini/crc32.h"
 #include "components/zucchini/io_utils.h"
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index 3595439..f3cb26f 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -928,9 +928,10 @@
 - (void)detach {
   if (!_owner)
     return;
+
+  _owner = nullptr;
   NSAccessibilityPostNotification(
       self, NSAccessibilityUIElementDestroyedNotification);
-  _owner = nullptr;
 }
 
 - (NSString*)accessKey {
diff --git a/content/browser/cross_origin_opener_policy_browsertest.cc b/content/browser/cross_origin_opener_policy_browsertest.cc
index 5151ec2..cd28bf6 100644
--- a/content/browser/cross_origin_opener_policy_browsertest.cc
+++ b/content/browser/cross_origin_opener_policy_browsertest.cc
@@ -62,6 +62,12 @@
   return coop;
 }
 
+network::CrossOriginEmbedderPolicy CoepUnsafeNone() {
+  network::CrossOriginEmbedderPolicy coep;
+  // Using the default value.
+  return coep;
+}
+
 std::unique_ptr<net::test_server::HttpResponse>
 CrossOriginIsolatedCrossOriginRedirectHandler(
     const net::test_server::HttpRequest& request) {
@@ -180,6 +186,18 @@
   base::test::ScopedFeatureList feature_list_;
 };
 
+// Same as CrossOriginOpenerPolicyBrowserTest, but disable COEP credentialless.
+class NoCoepCredentialless : public CrossOriginOpenerPolicyBrowserTest {
+ public:
+  NoCoepCredentialless() {
+    feature_list_.InitWithFeatures(
+        {}, {network::features::kCrossOriginEmbedderPolicyCredentialless});
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+};
+
 using VirtualBrowsingContextGroupTest = CrossOriginOpenerPolicyBrowserTest;
 
 int VirtualBrowsingContextGroup(WebContents* wc) {
@@ -2811,6 +2829,7 @@
 INSTANTIATE_TEST_SUITE_P(All, CrossOriginOpenerPolicyBrowserTest, kTestParams);
 INSTANTIATE_TEST_SUITE_P(All, VirtualBrowsingContextGroupTest, kTestParams);
 INSTANTIATE_TEST_SUITE_P(All, NoSharedArrayBufferByDefault, kTestParams);
+INSTANTIATE_TEST_SUITE_P(All, NoCoepCredentialless, kTestParams);
 
 namespace {
 
@@ -3545,4 +3564,23 @@
   )"));
 #endif  // defined(OS_ANDROID)
 }
+
+// Regression test for https://crbug.com/1238282#c16
+// Disable COEP:credentialless feature and navigate to a document with:
+// COOP:same-origin, COEP:credentialless. The navigation used to be suspended,
+// instead of proceeding with COEP:unsafe-none.
+IN_PROC_BROWSER_TEST_P(NoCoepCredentialless, Regression1238282) {
+  EXPECT_TRUE(NavigateToURL(
+      shell(),
+      https_server()->GetURL("a.com",
+                             "/set-header?"
+                             "Cross-Origin-Opener-Policy: same-origin&"
+                             "Cross-Origin-Embedder-Policy: credentialless")));
+  EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
+  EXPECT_EQ(current_frame_host()->cross_origin_opener_policy(),
+            CoopSameOrigin());
+  EXPECT_EQ(current_frame_host()->cross_origin_embedder_policy(),
+            CoepUnsafeNone());
+}
+
 }  // namespace content
diff --git a/content/browser/media/encrypted_media_browsertest.cc b/content/browser/media/encrypted_media_browsertest.cc
index e70a2c2..2c319d7 100644
--- a/content/browser/media/encrypted_media_browsertest.cc
+++ b/content/browser/media/encrypted_media_browsertest.cc
@@ -220,7 +220,13 @@
   TestSimplePlayback("bear-320x240-av_enc-a.webm");
 }
 
-IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoAudio_WebM) {
+// TODO(https://crbug.com/1239633): Flaky on Android.
+#if defined(OS_ANDROID)
+#define MAYBE_Playback_VideoAudio_WebM DISABLED_Playback_VideoAudio_WebM
+#else
+#define MAYBE_Playback_VideoAudio_WebM Playback_VideoAudio_WebM
+#endif
+IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, MAYBE_Playback_VideoAudio_WebM) {
   TestSimplePlayback("bear-320x240-av_enc-av.webm");
 }
 
@@ -242,7 +248,15 @@
   TestSimplePlayback("bear-320x240-av_enc-v.webm");
 }
 
-IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioOnly_WebM_Opus) {
+// TODO(https://crbug.com/1239633): Flaky on Android.
+#if defined(OS_ANDROID)
+#define MAYBE_Playback_VideoAudio_WebM_Opus \
+  DISABLED_Playback_VideoAudio_WebM_Opus
+#else
+#define MAYBE_Playback_VideoAudio_WebM_Opus Playback_AudioOnly_WebM_Opus
+#endif
+IN_PROC_BROWSER_TEST_P(EncryptedMediaTest,
+                       MAYBE_Playback_VideoAudio_WebM_Opus) {
 #if defined(OS_ANDROID)
   if (!media::MediaCodecUtil::IsOpusDecoderAvailable())
     GTEST_SKIP() << "Opus decoder not available";
diff --git a/content/browser/prerender/prerender_host.cc b/content/browser/prerender/prerender_host.cc
index 6b59cd7c..a7a1ffc 100644
--- a/content/browser/prerender/prerender_host.cc
+++ b/content/browser/prerender/prerender_host.cc
@@ -370,6 +370,10 @@
 
 void PrerenderHost::DidFinishNavigation(NavigationHandle* navigation_handle) {
   auto* navigation_request = NavigationRequest::From(navigation_handle);
+
+  if (navigation_request->IsSameDocument())
+    return;
+
   // Observe navigation only in the prerendering frame tree.
   if (navigation_request->frame_tree_node()->frame_tree() !=
       page_holder_->frame_tree()) {
@@ -403,7 +407,7 @@
   // The prerendered contents are considered ready for activation when the
   // main frame navigation reaches DidFinishNavigation.
   if (is_prerender_main_frame) {
-    DCHECK(!is_ready_for_activation_ || navigation_request->IsSameDocument());
+    DCHECK(!is_ready_for_activation_);
     is_ready_for_activation_ = true;
   }
 }
diff --git a/content/browser/renderer_host/cross_origin_opener_policy_status.cc b/content/browser/renderer_host/cross_origin_opener_policy_status.cc
index 066d1c9..ca655d1 100644
--- a/content/browser/renderer_host/cross_origin_opener_policy_status.cc
+++ b/content/browser/renderer_host/cross_origin_opener_policy_status.cc
@@ -8,6 +8,7 @@
 
 #include "base/feature_list.h"
 #include "base/time/time.h"
+#include "content/browser/renderer_host/cross_origin_embedder_policy.h"
 #include "content/browser/renderer_host/frame_tree_node.h"
 #include "content/browser/renderer_host/navigation_request.h"
 #include "content/browser/renderer_host/render_frame_host_delegate.h"
@@ -288,6 +289,9 @@
     network::mojom::URLResponseHead* response_head) const {
   network::CrossOriginOpenerPolicy& coop =
       response_head->parsed_headers->cross_origin_opener_policy;
+  network::AugmentCoopWithCoep(
+      &coop, CoepFromMainResponse(response_url, response_head));
+
   if (coop == network::CrossOriginOpenerPolicy())
     return;
 
diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc
index 2049170..ab2f9033 100644
--- a/content/browser/renderer_host/navigator.cc
+++ b/content/browser/renderer_host/navigator.cc
@@ -379,8 +379,8 @@
     was_within_same_document = false;
   }
   // At this point we have already chosen a SiteInstance for this navigation, so
-  // set |origin_isolation_request| to kNone in the conversion to UrlInfo
-  // below.
+  // set OriginIsolationRequest to kNone in the conversion to UrlInfo below:
+  // this is done implicitly in the UrlInfoInit constructor.
   const UrlInfo url_info(UrlInfoInit(params.url));
 
   if (auto& old_page_info = navigation_request->commit_params().old_page_info) {
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 9205036..e3643b8 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -6975,7 +6975,8 @@
 
   // Verify that if this RenderFrameHost is for a WebUI it is not committing a
   // URL which is not allowed in a WebUI process. As we are at the commit stage,
-  // set |origin_isolation_request| to kNone.
+  // set OriginIsolationRequest to kNone (this is implicitly done by the
+  // UrlInfoInit constructor).
   if (!Navigator::CheckWebUIRendererDoesNotDisplayNormalURL(
           this, UrlInfo(UrlInfoInit(url).WithOrigin(origin)),
           /* is_renderer_initiated_check */ true)) {
@@ -9528,8 +9529,8 @@
 }
 
 void RenderFrameHostImpl::SetLastCommittedSiteInfo(const GURL& url) {
-  // Since |url| has already committed, |origin_isolation_request| below should
-  // be set to kNone.
+  // Since |url| has already committed, OriginIsolationRequest should be set to
+  // kNone: this is done implicitly in the UrlInfoInit constructor.
   BrowserContext* browser_context = GetSiteInstance()->GetBrowserContext();
   SiteInfo site_info =
       url.is_empty()
diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc
index fd21a0a..93416b8 100644
--- a/content/browser/renderer_host/render_frame_host_manager.cc
+++ b/content/browser/renderer_host/render_frame_host_manager.cc
@@ -2158,7 +2158,8 @@
     // have been broken anyway if there were no error. Otherwise, we keep it
     // in the same BrowsingInstance to preserve scripting relationships after
     // reloads. In UrlInfo below we use kNone for OriginIsolationRequest since
-    // error pages cannot request origin isolation.
+    // error pages cannot request origin isolation: this is done implicitly in
+    // the UrlInfoInit constructor.
     AppendReason(reason, "DetermineSiteInstanceForURL => error-instance");
     return SiteInstanceDescriptor(
         UrlInfo(UrlInfoInit(GURL(kUnreachableWebDataURL))),
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
index 531380c..44d3e9f 100644
--- a/content/browser/site_instance_impl.cc
+++ b/content/browser/site_instance_impl.cc
@@ -1494,13 +1494,14 @@
   if (IsDefaultSiteInstance())
     return IsSameSiteWithURLInfo(dest_url_info);
 
-  // Here we use an |origin_isolation_request| of kNone when converting
-  // |original_url_| to UrlInfo, since (i) the isolation status of this
-  // SiteInstance was determined at the time |original_url_| was set, and in
-  // this case it is |dest_url_info| that is currently navigating, and that's
-  // where the current isolation request (if any) is stored. Whether or not
-  // this SiteInstance has origin isolation is a separate question, and not
-  // what the UrlInfo for |original_url_| is supposed to reflect.
+  // Here we use an |origin_isolation_request| of kNone (done implicitly in the
+  // UrlInfoInit constructor) when converting |original_url_| to UrlInfo, since
+  // (i) the isolation status of this SiteInstance was determined at the time
+  // |original_url_| was set, and in this case it is |dest_url_info| that is
+  // currently navigating, and that's where the current isolation request (if
+  // any) is stored. Whether or not this SiteInstance has origin isolation is a
+  // separate question, and not what the UrlInfo for |original_url_| is supposed
+  // to reflect.
   return IsSameSite(GetIsolationContext(), UrlInfo(UrlInfoInit(original_url_)),
                     dest_url_info, should_compare_effective_urls);
 }
@@ -1541,9 +1542,9 @@
 
   // In the common case, we use the last successful URL. Thus, we compare
   // against the last successful commit when deciding whether to swap this time.
-  // We convert |last_successful_url| to UrlInfo with
-  // |origin_isolation_request| set to kNone since it isn't currently
-  // navigating.
+  // We convert |last_successful_url| to UrlInfo with |origin_isolation_request|
+  // set to kNone (done implicitly in the UrlInfoInit constructor) since it
+  // isn't currently navigating.
   if (IsSameSite(GetIsolationContext(),
                  UrlInfo(UrlInfoInit(last_successful_url)), dest_url_info,
                  should_compare_effective_urls)) {
@@ -1554,7 +1555,8 @@
   // example, "about:blank"). If so, examine the last committed origin to
   // determine the site.
   // Similar to above, convert |last_committed_origin| to UrlInfo with
-  // |origin_isolation_request| set to kNone.
+  // |origin_isolation_request| set to kNone: this is done implicitly in the
+  // UrlInfoInit constructor.
   if (!last_committed_origin.opaque() &&
       IsSameSite(GetIsolationContext(),
                  UrlInfo(UrlInfoInit(GURL(last_committed_origin.Serialize()))),
diff --git a/content/browser/text_fragment_browsertest.cc b/content/browser/text_fragment_browsertest.cc
index b526e6c..19eb808 100644
--- a/content/browser/text_fragment_browsertest.cc
+++ b/content/browser/text_fragment_browsertest.cc
@@ -858,7 +858,14 @@
   EXPECT_TRUE(last_metadata.is_scroll_offset_at_top);
 }
 
-IN_PROC_BROWSER_TEST_F(ForceLoadAtTopBrowserTest, SameDocumentNavigation) {
+// TODO(https://crbug.com/1239636) Flaky on Android.
+#if defined(OS_ANDROID)
+#define MAYBE_SameDocumentNavigation DISABLED_SameDocumentNavigation
+#else
+#define MAYBE_SameDocumentNavigation SameDocumentNavigation
+#endif
+IN_PROC_BROWSER_TEST_F(ForceLoadAtTopBrowserTest,
+                       MAYBE_SameDocumentNavigation) {
   ASSERT_NO_FATAL_FAILURE(LoadScrollablePageWithContent("/index.html"));
   WebContents* main_contents = shell()->web_contents();
 
diff --git a/content/public/renderer/render_frame.h b/content/public/renderer/render_frame.h
index 8a5fdc0..e729075 100644
--- a/content/public/renderer/render_frame.h
+++ b/content/public/renderer/render_frame.h
@@ -214,9 +214,6 @@
   virtual void PluginDidStopLoading() = 0;
 #endif
 
-  // Returns true if this frame is a FTP directory listing.
-  virtual bool IsFTPDirectoryListing() = 0;
-
   // Notifies the browser of text selection changes made.
   virtual void SetSelectedText(const std::u16string& selection_text,
                                size_t offset,
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 9ba385b..da75e85 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -2437,10 +2437,6 @@
 }
 #endif  // BUILDFLAG(ENABLE_PLUGINS)
 
-bool RenderFrameImpl::IsFTPDirectoryListing() {
-  return frame_->GetDocumentLoader()->IsListingFtpDirectory();
-}
-
 void RenderFrameImpl::SetSelectedText(const std::u16string& selection_text,
                                       size_t offset,
                                       const gfx::Range& range) {
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 1714c5b..a2577ae 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -360,7 +360,6 @@
   void PluginDidStartLoading() override;
   void PluginDidStopLoading() override;
 #endif
-  bool IsFTPDirectoryListing() override;
   void SetSelectedText(const std::u16string& selection_text,
                        size_t offset,
                        const gfx::Range& range) override;
diff --git a/content/test/data/accessibility/aria/aria-roledescription-expected-auralinux.txt b/content/test/data/accessibility/aria/aria-roledescription-expected-auralinux.txt
index 6d4c029..2f04931 100644
--- a/content/test/data/accessibility/aria/aria-roledescription-expected-auralinux.txt
+++ b/content/test/data/accessibility/aria/aria-roledescription-expected-auralinux.txt
@@ -2,3 +2,9 @@
 ++[push button] name='Native button'
 ++[push button] name='ARIA button'
 ++[push button] name='Clicky button' roledescription:Clicky
+++[section]
+++++[static] name='foo'
+++[section] name='bar'
+++++[static] name='bar'
+++[paragraph] roledescription:Texty
+++++[static] name='baz'
diff --git a/content/test/data/accessibility/aria/aria-roledescription-expected-blink.txt b/content/test/data/accessibility/aria/aria-roledescription-expected-blink.txt
index bb40533..6ff8fbd 100644
--- a/content/test/data/accessibility/aria/aria-roledescription-expected-blink.txt
+++ b/content/test/data/accessibility/aria/aria-roledescription-expected-blink.txt
@@ -10,3 +10,12 @@
 ++++++button name='Clicky button' roleDescription='Clicky'
 ++++++++staticText name='Clicky button'
 ++++++++++inlineTextBox name='Clicky button'
+++++++genericContainer
+++++++++staticText name='foo'
+++++++++++inlineTextBox name='foo'
+++++++genericContainer name='bar'
+++++++++staticText name='bar'
+++++++++++inlineTextBox name='bar'
+++++++paragraph roleDescription='Texty'
+++++++++staticText name='baz'
+++++++++++inlineTextBox name='baz'
diff --git a/content/test/data/accessibility/aria/aria-roledescription-expected-mac.txt b/content/test/data/accessibility/aria/aria-roledescription-expected-mac.txt
index 600a9f2c..a737b12 100644
--- a/content/test/data/accessibility/aria/aria-roledescription-expected-mac.txt
+++ b/content/test/data/accessibility/aria/aria-roledescription-expected-mac.txt
@@ -2,3 +2,9 @@
 ++AXButton AXRoleDescription='button' AXTitle='Native button'
 ++AXButton AXRoleDescription='button' AXTitle='ARIA button'
 ++AXButton AXRoleDescription='Clicky' AXTitle='Clicky button'
+++AXGroup AXRoleDescription='group'
+++++AXStaticText AXRoleDescription='text' AXValue='foo'
+++AXGroup AXDescription='bar' AXRoleDescription='group'
+++++AXStaticText AXRoleDescription='text' AXValue='bar'
+++AXGroup AXRoleDescription='Texty'
+++++AXStaticText AXRoleDescription='text' AXValue='baz'
diff --git a/content/test/data/accessibility/aria/aria-roledescription-expected-win.txt b/content/test/data/accessibility/aria/aria-roledescription-expected-win.txt
index 03a8b5e..69de453 100644
--- a/content/test/data/accessibility/aria/aria-roledescription-expected-win.txt
+++ b/content/test/data/accessibility/aria/aria-roledescription-expected-win.txt
@@ -1,4 +1,10 @@
 ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
 ++ROLE_SYSTEM_PUSHBUTTON name='Native button' FOCUSABLE
 ++ROLE_SYSTEM_PUSHBUTTON name='ARIA button'
-++ROLE_SYSTEM_PUSHBUTTON name='Clicky button' localized_extended_role='Clicky'
\ No newline at end of file
+++ROLE_SYSTEM_PUSHBUTTON name='Clicky button' localized_extended_role='Clicky'
+++IA2_ROLE_SECTION
+++++ROLE_SYSTEM_STATICTEXT name='foo'
+++IA2_ROLE_SECTION name='bar' FOCUSABLE
+++++ROLE_SYSTEM_STATICTEXT name='bar'
+++IA2_ROLE_PARAGRAPH localized_extended_role='Texty'
+++++ROLE_SYSTEM_STATICTEXT name='baz'
diff --git a/content/test/data/accessibility/aria/aria-roledescription.html b/content/test/data/accessibility/aria/aria-roledescription.html
index b414a757..528163f 100644
--- a/content/test/data/accessibility/aria/aria-roledescription.html
+++ b/content/test/data/accessibility/aria/aria-roledescription.html
@@ -9,5 +9,8 @@
   <button>Native button</button>
   <div role="button">ARIA button</div>
   <div role="button" aria-roledescription="Clicky">Clicky button</div>
+  <div aria-roledescription="Plain">foo</div>
+  <div aria-roledescription="Focusable" tabindex="0">bar</div>
+  <p aria-roledescription="Texty">baz</p>
 </body>
 </html>
diff --git a/headless/test/headless_protocol_browsertest.cc b/headless/test/headless_protocol_browsertest.cc
index af449b59..9fd0a98 100644
--- a/headless/test/headless_protocol_browsertest.cc
+++ b/headless/test/headless_protocol_browsertest.cc
@@ -233,7 +233,14 @@
                        "emulation/virtual-time-history-navigation.js")
 HEADLESS_PROTOCOL_TEST(VirtualTimeHistoryNavigationSameDoc,
                        "emulation/virtual-time-history-navigation-same-doc.js")
-HEADLESS_PROTOCOL_TEST(VirtualTimeFetchKeepalive,
+
+// Flaky on Mac. TODO(crbug.com/1164173): Re-enable.
+#if defined(OS_MAC)
+#define MAYBE_VirtualTimeFetchKeepalive DISABLED_VirtualTimeFetchKeepalive
+#else
+#define MAYBE_VirtualTimeFetchKeepalive VirtualTimeFetchKeepalive
+#endif
+HEADLESS_PROTOCOL_TEST(MAYBE_VirtualTimeFetchKeepalive,
                        "emulation/virtual-time-fetch-keepalive.js")
 HEADLESS_PROTOCOL_TEST(VirtualTimeDisposeWhileRunning,
                        "emulation/virtual-time-dispose-while-running.js")
diff --git a/infra/config/generated/commit-queue.cfg b/infra/config/generated/commit-queue.cfg
index 108930b..e8b46ad 100644
--- a/infra/config/generated/commit-queue.cfg
+++ b/infra/config/generated/commit-queue.cfg
@@ -1859,6 +1859,7 @@
       ref_regexp_exclude: "refs/branch-heads/4430"
       ref_regexp_exclude: "refs/branch-heads/4515"
       ref_regexp_exclude: "refs/branch-heads/4577"
+      ref_regexp_exclude: "refs/branch-heads/4606"
     }
   }
   verifiers {
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg
index 6161ef7..bb1de7f 100644
--- a/infra/config/generated/cr-buildbucket.cfg
+++ b/infra/config/generated/cr-buildbucket.cfg
@@ -74679,7 +74679,7 @@
         '  "builder_group": "tryserver.chromium.linux",'
         '  "recipe": "chromium_trybot"'
         '}'
-      execution_timeout_secs: 14400
+      execution_timeout_secs: 18000
       expiration_secs: 7200
       grace_period {
         seconds: 120
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg
index e319769..b26f21a 100644
--- a/infra/config/generated/luci-milo.cfg
+++ b/infra/config/generated/luci-milo.cfg
@@ -777,6 +777,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -1522,6 +1526,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -1914,6 +1922,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -2220,6 +2232,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -2783,6 +2799,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -3323,6 +3343,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -3674,6 +3698,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -4120,6 +4148,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -4499,6 +4531,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -5015,6 +5051,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -5431,6 +5471,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -5871,6 +5915,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -6686,6 +6734,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -7069,6 +7121,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -7426,6 +7482,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -7773,6 +7833,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -8394,6 +8458,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -8815,6 +8883,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -9176,6 +9248,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -9562,6 +9638,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -9868,6 +9948,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -10179,6 +10263,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -10470,6 +10558,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -10817,6 +10909,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -11263,6 +11359,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -11599,6 +11699,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -11976,6 +12080,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -12322,6 +12430,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -12682,6 +12794,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -13003,6 +13119,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
@@ -13307,6 +13427,10 @@
         url: "/p/chromium-m93/g/main/console"
       }
       links {
+        text: "m94"
+        url: "/p/chromium-m94/g/main/console"
+      }
+      links {
         text: "trunk"
         url: "/p/chromium/g/main/console"
         alt: "Trunk (ToT) console"
diff --git a/infra/config/generated/realms.cfg b/infra/config/generated/realms.cfg
index 98ab324..8d98b74 100644
--- a/infra/config/generated/realms.cfg
+++ b/infra/config/generated/realms.cfg
@@ -153,6 +153,7 @@
     principals: "project:chromium-m90"
     principals: "project:chromium-m92"
     principals: "project:chromium-m93"
+    principals: "project:chromium-m94"
     principals: "user:chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
     principals: "user:findit-for-me@appspot.gserviceaccount.com"
   }
@@ -203,6 +204,7 @@
     principals: "project:chromium-m90"
     principals: "project:chromium-m92"
     principals: "project:chromium-m93"
+    principals: "project:chromium-m94"
     principals: "user:infra-try-recipes-tester@chops-service-accounts.iam.gserviceaccount.com"
   }
 }
diff --git a/infra/config/milestones.json b/infra/config/milestones.json
index 66cb6342..8aeac47 100644
--- a/infra/config/milestones.json
+++ b/infra/config/milestones.json
@@ -18,5 +18,10 @@
         "name": "m93",
         "project": "chromium-m93",
         "ref": "refs/branch-heads/4577"
+    },
+    "94": {
+        "name": "m94",
+        "project": "chromium-m94",
+        "ref": "refs/branch-heads/4606"
     }
 }
diff --git a/infra/config/subprojects/chromium/try.star b/infra/config/subprojects/chromium/try.star
index b102fde..dfa3d7d9 100644
--- a/infra/config/subprojects/chromium/try.star
+++ b/infra/config/subprojects/chromium/try.star
@@ -1375,6 +1375,8 @@
 try_.chromium_linux_builder(
     name = "linux_chromium_cfi_rel_ng",
     cores = 32,
+    # TODO(thakis): Remove once https://crbug.com/927738 is resolved.
+    execution_timeout = 5 * time.hour,
 )
 
 try_.chromium_linux_builder(
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index acf64cd..b6df2d0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Блакіроўка старонніх файлаў cookie</translation>
 <translation id="2421044535038393232">Працягнуць рэдагаванне</translation>
 <translation id="2435457462613246316">Паказаць пароль</translation>
+<translation id="2476359652512522418">Не выбрана</translation>
 <translation id="2497852260688568942">Сінхранізацыя выключана вашым адміністратарам</translation>
 <translation id="2500374554657206846">Варыянты захавання пароля</translation>
 <translation id="2523363575747517183">Гэты сайт сістэматычна спрабуе адкрыць іншую праграму.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index d650075..dc9dbd67 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Blokování souborů cookie třetích stran</translation>
 <translation id="2421044535038393232">Pokračovat v úpravách</translation>
 <translation id="2435457462613246316">Zobrazit heslo</translation>
+<translation id="2476359652512522418">Nevybráno</translation>
 <translation id="2497852260688568942">Synchronizace je administrátorem zakázána.</translation>
 <translation id="2500374554657206846">Možnosti uložení hesla</translation>
 <translation id="2523363575747517183">Tento web se opakovaně pokouší otevřít jinou aplikaci.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index 7732758..f970d54 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Kolmannen osapuolen evästeet estetään</translation>
 <translation id="2421044535038393232">Jatka muokkausta</translation>
 <translation id="2435457462613246316">Näytä salasana</translation>
+<translation id="2476359652512522418">Ei valittu</translation>
 <translation id="2497852260688568942">Järjestelmänvalvoja on poistanut synkronoinnin käytöstä.</translation>
 <translation id="2500374554657206846">Salasanan tallentamisen vaihtoehdot</translation>
 <translation id="2523363575747517183">Tämä sivusto yrittää toistuvasti avata toisen sovelluksen.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index ec1e001..ac1ed4ce 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Pag-block sa third-party na cookies</translation>
 <translation id="2421044535038393232">Magpatuloy sa Pag-edit</translation>
 <translation id="2435457462613246316">Ipakita ang password</translation>
+<translation id="2476359652512522418">Hindi Napili</translation>
 <translation id="2497852260688568942">Na-disable ng iyong administrator ang pag-sync</translation>
 <translation id="2500374554657206846">Mga Opsyon para Mag-save ng Password</translation>
 <translation id="2523363575747517183">Paulit-ulit na sinusubukang buksan ng website na ito ang isa pang application.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index 22ccd5f..06f270a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">तीसरे पक्ष की कुकी ब्लॉक की जा रही हैं</translation>
 <translation id="2421044535038393232">बदलाव करते रहें</translation>
 <translation id="2435457462613246316">पासवर्ड दिखाएं</translation>
+<translation id="2476359652512522418">नहीं चुना गया</translation>
 <translation id="2497852260688568942">सिंक को आपके व्यवस्थापक ने अक्षम कर दिया है</translation>
 <translation id="2500374554657206846">पासवर्ड सेव करने के विकल्प</translation>
 <translation id="2523363575747517183">यह वेबसाइट बार-बार किसी दूसरे ऐप्लिकेशन को खोलने की कोशिश कर रही है.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index 81d47f5..23f70da 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Memblokir cookie pihak ketiga</translation>
 <translation id="2421044535038393232">Terus Edit</translation>
 <translation id="2435457462613246316">Tampilkan sandi</translation>
+<translation id="2476359652512522418">Tidak Dipilih</translation>
 <translation id="2497852260688568942">Sinkronisasi dinonaktifkan oleh administrator</translation>
 <translation id="2500374554657206846">Opsi untuk Menyimpan Sandi</translation>
 <translation id="2523363575747517183">Situs ini berulang kali mencoba membuka aplikasi lain.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 537719ee..82a02980 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">サードパーティの Cookie をブロック</translation>
 <translation id="2421044535038393232">編集を続ける</translation>
 <translation id="2435457462613246316">パスワードを表示</translation>
+<translation id="2476359652512522418">選択されていません</translation>
 <translation id="2497852260688568942">同期は管理者により無効にされています</translation>
 <translation id="2500374554657206846">パスワードの保存オプション</translation>
 <translation id="2523363575747517183">このウェブサイトは別のアプリケーションを繰り返し開こうとしています。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index a99dc2a..eaa7125 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">მესამე მხარის ქუქი-ჩანაწერების დაბლოკვა</translation>
 <translation id="2421044535038393232">რედაქტირების გაგრძელება</translation>
 <translation id="2435457462613246316">პაროლის ჩვენება</translation>
+<translation id="2476359652512522418">არ არის არჩეული</translation>
 <translation id="2497852260688568942">სინქრონიზაცია გათიშულია თქვენი ადმინისტრატორის მიერ</translation>
 <translation id="2500374554657206846">პაროლის შენახვის ვარიანტები</translation>
 <translation id="2523363575747517183">ეს ვებსაიტი განუწყვეტლივ ცდილობს სხვა აპლიკაციის გახსნას.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index e738b00..7628872 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">ទប់ស្កាត់​ខូគី​ភាគី​ទីបី</translation>
 <translation id="2421044535038393232">បន្ត​កែ</translation>
 <translation id="2435457462613246316">បង្ហាញពាក្យសម្ងាត់</translation>
+<translation id="2476359652512522418">មិនបាន​ជ្រើសរើសទេ</translation>
 <translation id="2497852260688568942">សមកាលកម្មបានបិទដោយអ្នកគ្រប់គ្រងរបស់អ្នក</translation>
 <translation id="2500374554657206846">ជម្រើស​សម្រាប់​រក្សាទុក​ពាក្យសម្ងាត់</translation>
 <translation id="2523363575747517183">គេហទំព័រ​នេះកំពុង​ព្យាយាម​បើកកម្មវិធី​ផ្សេងទៀត​ម្តង​ហើយ​ម្តងទៀត។</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index bcfb523..e7c004f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">타사 쿠키 차단</translation>
 <translation id="2421044535038393232">수정 계속</translation>
 <translation id="2435457462613246316">비밀번호 표시</translation>
+<translation id="2476359652512522418">선택되지 않음</translation>
 <translation id="2497852260688568942">관리자가 동기화를 사용 중지했습니다.</translation>
 <translation id="2500374554657206846">비밀번호 저장 옵션</translation>
 <translation id="2523363575747517183">다른 애플리케이션을 열려는 반복적인 시도가 실행되는 웹사이트입니다.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index 66ff0c13..19f043c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">ການບລັອກຄຸກກີ້ພາກສ່ວນທີສາມ</translation>
 <translation id="2421044535038393232">ສືບຕໍ່ແກ້ໄຂ</translation>
 <translation id="2435457462613246316">ສະ​ແດງ​ລະ​ຫັດ​ຜ່ານ</translation>
+<translation id="2476359652512522418">ບໍ່ໄດ້ເລືອກ</translation>
 <translation id="2497852260688568942">ການຊິ້ງຂໍ້ມູນຖືກປິດນຳໃຊ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ</translation>
 <translation id="2500374554657206846">ຕົວເລືອກເພື່ອບັນທຶກລະຫັດຜ່ານ</translation>
 <translation id="2523363575747517183">ເວັບໄຊກຳລັງພະຍາຍາມເປີດແອັບພລິເຄຊັນອື່ນຊໍ້າໄປມາຫຼາຍເທື່ອ.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 143d590..d806e3c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Blokuojami trečiosios šalies slapukai</translation>
 <translation id="2421044535038393232">Toliau redaguoti</translation>
 <translation id="2435457462613246316">Rodyti slaptažodį</translation>
+<translation id="2476359652512522418">Nepasirinkta</translation>
 <translation id="2497852260688568942">Sinchronizavimą išjungė jūsų administratorius</translation>
 <translation id="2500374554657206846">Slaptažodžio išsaugojimo parinktys</translation>
 <translation id="2523363575747517183">Ši svetainė pakartotinai bando atidaryti kitą programą.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index 4463ebf4..b593148 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Trešo pušu sīkfaili tiek bloķēti</translation>
 <translation id="2421044535038393232">Turpināt rediģēt</translation>
 <translation id="2435457462613246316">Rādīt paroli</translation>
+<translation id="2476359652512522418">Nav atlasīta</translation>
 <translation id="2497852260688568942">Administrators ir atspējojis sinhronizēšanu.</translation>
 <translation id="2500374554657206846">Paroles saglabāšanas iespējas</translation>
 <translation id="2523363575747517183">Šī vietne atkārtoti mēģina atvērt citu lietojumprogrammu.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index 2df4ff1..c91ad01 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Гуравдагч талын күүкиг блоклож байна</translation>
 <translation id="2421044535038393232">Үргэлжлүүлэн засах</translation>
 <translation id="2435457462613246316">Нууц үг харуулах</translation>
+<translation id="2476359652512522418">Сонгоогүй</translation>
 <translation id="2497852260688568942">Таны админ синкийг идэвхгүй болгосон байна.</translation>
 <translation id="2500374554657206846">Нууц үг хадгалах сонголтууд</translation>
 <translation id="2523363575747517183">Энэ вебсайт өөр апп нээхээр удаа дараа оролдож байна.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index 4db0f3a..68373987 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Menyekat kuki pihak ketiga</translation>
 <translation id="2421044535038393232">Teruskan Mengedit</translation>
 <translation id="2435457462613246316">Paparkan kata laluan</translation>
+<translation id="2476359652512522418">Tidak Dipilih</translation>
 <translation id="2497852260688568942">Penyegerakan dilumpuhkan oleh pentadbir anda</translation>
 <translation id="2500374554657206846">Pilihan untuk Menyimpan Kata Laluan</translation>
 <translation id="2523363575747517183">Tapak web ini berulang kali cuba membuka aplikasi lain.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index b6957ce8..2f20ec12 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">ပြင်ပအဖွဲ့အစည်း၏ ကွတ်ကီးများကို ပိတ်ထားသည်</translation>
 <translation id="2421044535038393232">ဆက်လက်တည်းဖြတ်ရန်</translation>
 <translation id="2435457462613246316">စကားဝှက်ကို ပြပါ</translation>
+<translation id="2476359652512522418">ရွေးမထားပါ</translation>
 <translation id="2497852260688568942">စင့်ခ်ပြုလုပ်ခြင်းကို သင့်စီမံခန့်ခွဲသူက ပိတ်ဆို့ထားပါသည်</translation>
 <translation id="2500374554657206846">'စကားဝှက် သိမ်းရန်' ရွေးစရာများ</translation>
 <translation id="2523363575747517183">ဤဝဘ်ဆိုက်က နောက်ထပ် အပလီကေးရှင်းတစ်ခုကို ထပ်တလဲလဲ ဖွင့်နေပါသည်။</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index 54f73b0..6debfbb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Блокировать сторонние файлы cookie</translation>
 <translation id="2421044535038393232">Продолжить редактирование</translation>
 <translation id="2435457462613246316">Показать пароль</translation>
+<translation id="2476359652512522418">Не выбрано</translation>
 <translation id="2497852260688568942">Ваш администратор отключил синхронизацию</translation>
 <translation id="2500374554657206846">Параметры сохранения пароля</translation>
 <translation id="2523363575747517183">Этот сайт часто пытается открыть другое приложение.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 1e0575e..4050d88 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Cookies från tredje part blockeras</translation>
 <translation id="2421044535038393232">Fortsätt redigera</translation>
 <translation id="2435457462613246316">Visa lösenord</translation>
+<translation id="2476359652512522418">Inte markerad</translation>
 <translation id="2497852260688568942">Synkronisering har inaktiverats av administratören</translation>
 <translation id="2500374554657206846">Alternativ för att spara lösenord</translation>
 <translation id="2523363575747517183">Webbplatsen försöker öppna ett annat program upprepade gånger.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 91869c3..cbc82c7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Kuzuia vidakuzi vya tovuti nyingine</translation>
 <translation id="2421044535038393232">Endelea Kubadilisha</translation>
 <translation id="2435457462613246316">Onyesha nenosiri</translation>
+<translation id="2476359652512522418">Hakijachaguliwa</translation>
 <translation id="2497852260688568942">Usawazishaji umezimwa na msimamizi wako</translation>
 <translation id="2500374554657206846">Chaguo za Kuhifadhi Nenosiri</translation>
 <translation id="2523363575747517183">Tovuti hii inajaribu kufungua programu nyingine mara kwa mara.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index dd1463a..b2bbe78 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">การบล็อกคุกกี้ของบุคคลที่สาม</translation>
 <translation id="2421044535038393232">แก้ไขต่อไป</translation>
 <translation id="2435457462613246316">แสดงรหัสผ่าน</translation>
+<translation id="2476359652512522418">ไม่ได้เลือก</translation>
 <translation id="2497852260688568942">ผู้ดูแลระบบปิดใช้การซิงค์</translation>
 <translation id="2500374554657206846">ตัวเลือกในการบันทึกรหัสผ่าน</translation>
 <translation id="2523363575747517183">เว็บไซต์นี้พยายามเปิดแอปพลิเคชันอื่นอยู่เรื่อยๆ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 69af1a1..ebcc35e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Üçüncü taraf çerezler engelleniyor</translation>
 <translation id="2421044535038393232">Düzenlemeye Devam Et</translation>
 <translation id="2435457462613246316">Şifreyi göster</translation>
+<translation id="2476359652512522418">Seçilmedi</translation>
 <translation id="2497852260688568942">Yöneticiniz senkronizasyonu devre dışı bıraktı</translation>
 <translation id="2500374554657206846">Şifre Kaydetme Seçenekleri</translation>
 <translation id="2523363575747517183">Bu web sitesi sürekli başka bir uygulama açmaya çalışıyor.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index f1ea5477..3f1e770 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">Chặn cookie của bên thứ ba</translation>
 <translation id="2421044535038393232">Tiếp tục chỉnh sửa</translation>
 <translation id="2435457462613246316">Hiện mật khẩu</translation>
+<translation id="2476359652512522418">Chưa chọn</translation>
 <translation id="2497852260688568942">Quản trị viên của bạn đã tắt tính năng đồng bộ hóa</translation>
 <translation id="2500374554657206846">Các tùy chọn lưu mật khẩu</translation>
 <translation id="2523363575747517183">Trang web này đang liên tục tìm cách mở một ứng dụng khác.</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 044c899..223ab0c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">封鎖第三方 Cookie</translation>
 <translation id="2421044535038393232">繼續編輯</translation>
 <translation id="2435457462613246316">顯示密碼</translation>
+<translation id="2476359652512522418">未選取</translation>
 <translation id="2497852260688568942">您的管理員已停用同步功能</translation>
 <translation id="2500374554657206846">儲存密碼選項</translation>
 <translation id="2523363575747517183">這個網站嘗試重覆開啟另一個應用程式。</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 47cdecd..fe0e79e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -149,6 +149,7 @@
 <translation id="2421004566762153674">封鎖第三方 Cookie</translation>
 <translation id="2421044535038393232">繼續編輯</translation>
 <translation id="2435457462613246316">顯示密碼</translation>
+<translation id="2476359652512522418">未選取</translation>
 <translation id="2497852260688568942">你的管理員停用了同步功能</translation>
 <translation id="2500374554657206846">儲存密碼的選項</translation>
 <translation id="2523363575747517183">這個網站不斷嘗試開啟其他應用程式。</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_be.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_be.xtb
index c67d277..99fbab5 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_be.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_be.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="be">
+<translation id="1196785757634502276">Вы ўжо захавалі пароль для карыстальніка <ph name="USERNAME" /> на вэб-сайце <ph name="WEBSITE" />. Замяніць яго?</translation>
 <translation id="1276428923064733819">Скапіраваць</translation>
 <translation id="1614914292771557551">Калі вы зноў адкрыеце Chrome, пароль будзе захаваны ў вашым Уліковым запісе Google (<ph name="EMAIL" />)</translation>
 <translation id="1706288056912586527">Паказаць пароль</translation>
 <translation id="1977167321677356409">Пароль</translation>
 <translation id="2712586044587587728">Захаваныя ў браўзеры Chrome паролі можна будзе выкарыстоўваць у іншых праграмах. Выкарыстанне пароляў можна ў любы час выключыць у праграме "Налады".</translation>
 <translation id="3580107423202590938">Няма пароляў Chrome</translation>
+<translation id="368844171100841558">Замяніць</translation>
 <translation id="3753678329684433031">Функцыя аўтазапаўнення для пароляў Chrome</translation>
 <translation id="3789385946721385622">Імя карыстальніка</translation>
 <translation id="4064278913989596727">Даведка</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Прапанаваныя паролі</translation>
 <translation id="8300526662653766176">Задайце код доступу</translation>
 <translation id="8332511935157148552">Паролі не знойдзены</translation>
+<translation id="8486024683491936104">Замяніць пароль?</translation>
 <translation id="8503813439785031346">Імя карыстальніка</translation>
 <translation id="8518521100965196752">Каб выкарыстоўваць паролі, на прыладзе трэба спачатку наладзіць блакіроўку экрана.</translation>
 <translation id="8877181643142698531">URL-адрас</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_cs.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_cs.xtb
index 83c948ba..28659e2 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_cs.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_cs.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="cs">
+<translation id="1196785757634502276">Heslo pro uživatelské jméno „<ph name="USERNAME" />“ už jste na webu <ph name="WEBSITE" /> uložili. Chcete ho nahradit?</translation>
 <translation id="1276428923064733819">Kopírovat</translation>
 <translation id="1614914292771557551">Heslo bude uloženo do vašeho účtu Google (<ph name="EMAIL" />), až se opět vrátíte do Chromu</translation>
 <translation id="1706288056912586527">Zobrazit heslo</translation>
 <translation id="1977167321677356409">Heslo</translation>
 <translation id="2712586044587587728">Vaše hesla z Chromu budou k dispozici k použití v jiných aplikacích. Tuto funkci můžete v aplikaci Nastavení kdykoliv vypnout.</translation>
 <translation id="3580107423202590938">V Chromu nemáte žádná hesla</translation>
+<translation id="368844171100841558">Nahradit</translation>
 <translation id="3753678329684433031">Automatické vyplňování hesla Chromu</translation>
 <translation id="3789385946721385622">Uživatelské jméno</translation>
 <translation id="4064278913989596727">Nápověda</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Návrhy hesel</translation>
 <translation id="8300526662653766176">Nastavte heslo</translation>
 <translation id="8332511935157148552">Nebyla nalezena žádná hesla</translation>
+<translation id="8486024683491936104">Nahradit heslo?</translation>
 <translation id="8503813439785031346">Uživatelské jméno</translation>
 <translation id="8518521100965196752">Chcete-li použít hesla, musíte nejdříve na zařízení nastavit heslo.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_fi.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_fi.xtb
index ef91f19..072d8e3 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_fi.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_fi.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="fi">
+<translation id="1196785757634502276">Olet jo tallentanut salasanan käyttäjänimelle "<ph name="USERNAME" />" osoitteessa <ph name="WEBSITE" />. Haluatko korvata sen?</translation>
 <translation id="1276428923064733819">Kopioi</translation>
 <translation id="1614914292771557551">Salasanasi tallennetaan Google-tilillesi (<ph name="EMAIL" />), kun palaat Chromeen</translation>
 <translation id="1706288056912586527">Näytä salasana</translation>
 <translation id="1977167321677356409">Salasana</translation>
 <translation id="2712586044587587728">Chromen salasanasi ovat käytettävissä muissa sovelluksissa. Voit milloin tahansa laittaa tämän pois päältä asetussovelluksesta.</translation>
 <translation id="3580107423202590938">Ei Chrome-salasanoja</translation>
+<translation id="368844171100841558">Korvaa</translation>
 <translation id="3753678329684433031">Chromen automaattisen täytön salasana</translation>
 <translation id="3789385946721385622">Käyttäjänimi</translation>
 <translation id="4064278913989596727">Ohje</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Salasanaehdotukset</translation>
 <translation id="8300526662653766176">Aseta tunnuskoodi</translation>
 <translation id="8332511935157148552">Salasanoja ei löytynyt</translation>
+<translation id="8486024683491936104">Korvataanko salasana?</translation>
 <translation id="8503813439785031346">Käyttäjätunnus</translation>
 <translation id="8518521100965196752">Salasanojen käyttöä varten sinun on ensin asetettava laitteellesi tunnuskoodi.</translation>
 <translation id="8877181643142698531">URL-osoite</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_fil.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_fil.xtb
index deb983aa..f94e320 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_fil.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_fil.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="fil">
+<translation id="1196785757634502276">May na-save ka nang password para sa "<ph name="USERNAME" />" sa <ph name="WEBSITE" />. Gusto mo ba itong palitan?</translation>
 <translation id="1276428923064733819">Kopyahin</translation>
 <translation id="1614914292771557551">Ise-save ang iyong password sa Google Account (<ph name="EMAIL" />) mo kapag bumalik ka sa Chrome</translation>
 <translation id="1706288056912586527">Ipakita ang Password</translation>
 <translation id="1977167321677356409">Password</translation>
 <translation id="2712586044587587728">Magiging available na gamitin sa iba pang app ang iyong mga password sa Chrome. Puwede mo itong i-off sa app na Mga Setting anumang oras.</translation>
 <translation id="3580107423202590938">Walang Password sa Chrome</translation>
+<translation id="368844171100841558">Palitan</translation>
 <translation id="3753678329684433031">Gumamit ng AutoFill sa Password sa Chrome</translation>
 <translation id="3789385946721385622">Username</translation>
 <translation id="4064278913989596727">Tulong</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Mga Iminumungkahing Password</translation>
 <translation id="8300526662653766176">Magtakda ng Passcode</translation>
 <translation id="8332511935157148552">Walang Nakitang Password</translation>
+<translation id="8486024683491936104">Palitan ang Password?</translation>
 <translation id="8503813439785031346">Username</translation>
 <translation id="8518521100965196752">Para gumamit ng mga password, dapat ka munang magtakda ng passcode sa iyong device.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_hi.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_hi.xtb
index edbb735..d747ef1 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_hi.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_hi.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="hi">
+<translation id="1196785757634502276">आपने <ph name="WEBSITE" /> पर "<ph name="USERNAME" />" का पासवर्ड पहले ही सेव कर दिया है. क्या आप उसे बदलना चाहते हैं?</translation>
 <translation id="1276428923064733819">कॉपी करें</translation>
 <translation id="1614914292771557551">जब आप फिर से Chrome इस्तेमाल करेंगे, तो आपका पासवर्ड आपके Google खाते (<ph name="EMAIL" />) में सेव हो जाएगा</translation>
 <translation id="1706288056912586527">पासवर्ड दिखाएं</translation>
 <translation id="1977167321677356409">पासवर्ड</translation>
 <translation id="2712586044587587728">आप Chrome में सेव किए गए पासवर्ड का इस्तेमाल अन्य ऐप्लिकेशन में कर सकते हैं. आप किसी भी समय सेटिंग ऐप्लिकेशन में जाकर इसे बंद कर सकते हैं.</translation>
 <translation id="3580107423202590938">Chrome में कोई पासवर्ड सेव नहीं है</translation>
+<translation id="368844171100841558">बदलें</translation>
 <translation id="3753678329684433031">Chrome में सेव पासवर्ड को ऑटोमैटिक भरें</translation>
 <translation id="3789385946721385622">उपयोगकर्ता नाम</translation>
 <translation id="4064278913989596727">सहायता</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">सुझाए गए पासवर्ड</translation>
 <translation id="8300526662653766176">पासवर्ड सेट करें</translation>
 <translation id="8332511935157148552">कोई पासवर्ड नहीं मिला</translation>
+<translation id="8486024683491936104">क्या आप पासवर्ड बदलना चाहते हैं?</translation>
 <translation id="8503813439785031346">उपयोगकर्ता नाम</translation>
 <translation id="8518521100965196752">पासवर्ड इस्तेमाल करने के लिए, आपको सबसे पहले अपने डिवाइस पर एक पासवर्ड सेट करना होगा.</translation>
 <translation id="8877181643142698531">यूआरएल</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_id.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_id.xtb
index ec864e4..a809bca 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_id.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_id.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="id">
+<translation id="1196785757634502276">Anda sudah menyimpan sandi untuk "<ph name="USERNAME" />" di <ph name="WEBSITE" />. Ingin menggantinya?</translation>
 <translation id="1276428923064733819">Salin</translation>
 <translation id="1614914292771557551">Sandi akan disimpan di Akun Google Anda (<ph name="EMAIL" />) saat Anda kembali ke Chrome</translation>
 <translation id="1706288056912586527">Tampilkan Sandi</translation>
 <translation id="1977167321677356409">Sandi</translation>
 <translation id="2712586044587587728">Sandi Chrome Anda akan tersedia untuk digunakan di aplikasi lain. Anda dapat menonaktifkannya kapan saja di aplikasi Setelan.</translation>
 <translation id="3580107423202590938">Tidak Ada Sandi Chrome</translation>
+<translation id="368844171100841558">Ganti</translation>
 <translation id="3753678329684433031">Isi Otomatis Sandi Chrome</translation>
 <translation id="3789385946721385622">Nama pengguna</translation>
 <translation id="4064278913989596727">Bantuan</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Sandi yang Disarankan</translation>
 <translation id="8300526662653766176">Setel Kode Sandi</translation>
 <translation id="8332511935157148552">Sandi Tidak Ditemukan</translation>
+<translation id="8486024683491936104">Ganti Sandi?</translation>
 <translation id="8503813439785031346">Nama Pengguna</translation>
 <translation id="8518521100965196752">Untuk menggunakan sandi, Anda harus menyetel kode sandi di perangkat terlebih dahulu.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ja.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ja.xtb
index f033bae..9dcbcdf8 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ja.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ja.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ja">
+<translation id="1196785757634502276">「<ph name="USERNAME" />」のパスワードは <ph name="WEBSITE" /> ですでに保存済みです。置き換えますか?</translation>
 <translation id="1276428923064733819">コピー</translation>
 <translation id="1614914292771557551">パスワードは、次に Chrome を使用するときに Google アカウント(<ph name="EMAIL" />)に保存されます</translation>
 <translation id="1706288056912586527">パスワードを表示</translation>
 <translation id="1977167321677356409">パスワード</translation>
 <translation id="2712586044587587728">Chrome に保存したパスワードを他のアプリで使えるようになります。この機能は設定アプリでいつでも無効にできます。</translation>
 <translation id="3580107423202590938">Chrome パスワードはありません</translation>
+<translation id="368844171100841558">置き換える</translation>
 <translation id="3753678329684433031">Chrome のパスワード自動入力</translation>
 <translation id="3789385946721385622">ユーザー名</translation>
 <translation id="4064278913989596727">ヘルプ</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">パスワードの候補</translation>
 <translation id="8300526662653766176">パスコードの設定</translation>
 <translation id="8332511935157148552">パスワードは見つかりませんでした</translation>
+<translation id="8486024683491936104">パスワードを置き換えますか?</translation>
 <translation id="8503813439785031346">ユーザー名</translation>
 <translation id="8518521100965196752">パスワードを使用するには、まずデバイスにパスコードを設定する必要があります。</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ka.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ka.xtb
index 9569c9af..fcfb13d 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ka.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ka.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ka">
+<translation id="1196785757634502276"><ph name="WEBSITE" />-დან „<ph name="USERNAME" />“-ის პაროლი უკვე შეინახეთ. გსურთ მისი ჩანაცვლება?</translation>
 <translation id="1276428923064733819">კოპირება</translation>
 <translation id="1614914292771557551">თქვენი პაროლი თქვენს Google ანგარიშში (<ph name="EMAIL" />) შეინახება, როცა Chrome-ს დაუბრუნდებით</translation>
 <translation id="1706288056912586527">პაროლის ჩვენება</translation>
 <translation id="1977167321677356409">პაროლი</translation>
 <translation id="2712586044587587728">თქვენი Chrome პაროლების გამოყენებას შეძლებთ სხვა აპებში. აღნიშნულის გამორთვა ნებისმიერ დროს შეგიძლიათ პარამეტრების აპიდან.</translation>
 <translation id="3580107423202590938">Chrome-ის პაროლები არ არის</translation>
+<translation id="368844171100841558">ჩანაცვლება</translation>
 <translation id="3753678329684433031">Chrome-ის პაროლის ავტომატური შევსება</translation>
 <translation id="3789385946721385622">მომხმარებლის სახელი</translation>
 <translation id="4064278913989596727">დახმარება</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">შემოთავაზებული პაროლები</translation>
 <translation id="8300526662653766176">დააყენეთ საიდუმლო კოდი</translation>
 <translation id="8332511935157148552">პაროლები ვერ მოიძებნა</translation>
+<translation id="8486024683491936104">გსურთ, ჩაანაცვლოთ პაროლი?</translation>
 <translation id="8503813439785031346">მომხმარებლის სახელი</translation>
 <translation id="8518521100965196752">პაროლების გამოსაყენებლად, პირველ რიგში, საჭიროა საიდუმლო კოდის დაყენება თქვენს მოწყობილობაზე.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_km.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_km.xtb
index 2885f64..b69c304 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_km.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_km.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="km">
+<translation id="1196785757634502276">អ្នកបាន​រក្សាទុក​ពាក្យសម្ងាត់​សម្រាប់ "<ph name="USERNAME" />" នៅ <ph name="WEBSITE" /> រួចហើយ។ តើអ្នកចង់​ជំនួសវា​ដែរទេ?</translation>
 <translation id="1276428923064733819">ចម្លង</translation>
 <translation id="1614914292771557551">ពាក្យសម្ងាត់​របស់អ្នក​នឹងត្រូវបានរក្សាទុក​នៅក្នុង​គណនី Google របស់អ្នក (<ph name="EMAIL" />) នៅពេលអ្នក​ត្រឡប់មក Chrome វិញ</translation>
 <translation id="1706288056912586527">បង្ហាញពាក្យសម្ងាត់</translation>
 <translation id="1977167321677356409">ពាក្យសម្ងាត់</translation>
 <translation id="2712586044587587728">ពាក្យសម្ងាត់ Chrome របស់អ្នក​នឹងអាចប្រើ​បាននៅក្នុង​កម្មវិធីផ្សេងទៀត។ អ្នកអាចបិទវានៅក្នុងកម្មវិធី​ការកំណត់​បានគ្រប់ពេល។</translation>
 <translation id="3580107423202590938">គ្មានពាក្យសម្ងាត់ Chrome ទេ</translation>
+<translation id="368844171100841558">ជំនួស</translation>
 <translation id="3753678329684433031">បំពេញ​ពាក្យសម្ងាត់ Chrome ដោយ​ស្វ័យប្រវត្តិ</translation>
 <translation id="3789385946721385622">ឈ្មោះអ្នក​ប្រើប្រាស់</translation>
 <translation id="4064278913989596727">ជំនួយ</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">ពាក្យសម្ងាត់ដែលបានណែនាំ</translation>
 <translation id="8300526662653766176">កំណត់​លេខ​កូដ​សម្ងាត់</translation>
 <translation id="8332511935157148552">រកមិនឃើញពាក្យសម្ងាត់ទេ</translation>
+<translation id="8486024683491936104">ជំនួស​ពាក្យសម្ងាត់​ដែរទេ?</translation>
 <translation id="8503813439785031346">ឈ្មោះអ្នកប្រើ</translation>
 <translation id="8518521100965196752">ដើម្បី​ប្រើ​ពាក្យសម្ងាត់ អ្នកត្រូវតែ​កំណត់​លេខ​កូដ​សម្ងាត់​នៅលើ​ឧបករណ៍​របស់អ្នក​ជាមុន​សិន។</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ko.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ko.xtb
index 6ed08e9..a01388a 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ko.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ko.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ko">
+<translation id="1196785757634502276">"<ph name="USERNAME" />"님의 <ph name="WEBSITE" /> 비밀번호는 이미 저장되어 있습니다. 덮어쓰시겠습니까?</translation>
 <translation id="1276428923064733819">복사</translation>
 <translation id="1614914292771557551">다시 Chrome을 사용할 때 비밀번호가 Google 계정(<ph name="EMAIL" />)에 저장됩니다.</translation>
 <translation id="1706288056912586527">비밀번호 표시</translation>
 <translation id="1977167321677356409">비밀번호</translation>
 <translation id="2712586044587587728">Chrome 비밀번호를 다른 앱에서 사용할 수 있게 됩니다. 이 기능은 언제든지 설정 앱에서 사용 중지할 수 있습니다.</translation>
 <translation id="3580107423202590938">Chrome 비밀번호 없음</translation>
+<translation id="368844171100841558">바꾸기</translation>
 <translation id="3753678329684433031">Chrome 비밀번호 자동 완성</translation>
 <translation id="3789385946721385622">사용자 이름</translation>
 <translation id="4064278913989596727">도움말</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">추천 비밀번호</translation>
 <translation id="8300526662653766176">비밀번호 설정</translation>
 <translation id="8332511935157148552">비밀번호를 찾을 수 없음</translation>
+<translation id="8486024683491936104">비밀번호를 바꾸시겠습니까?</translation>
 <translation id="8503813439785031346">사용자이름</translation>
 <translation id="8518521100965196752">비밀번호를 사용하려면 기기에 비밀번호를 설정해야 합니다.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lo.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lo.xtb
index cd59354..997a412 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lo.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lo.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="lo">
+<translation id="1196785757634502276">ທ່ານມີລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ສຳລັບ "<ph name="USERNAME" />" ຢູ່ <ph name="WEBSITE" /> ຢູ່ກ່ອນແລ້ວ. ທ່ານຕ້ອງການປ່ຽນມັນບໍ່?</translation>
 <translation id="1276428923064733819">ສຳເນົາ</translation>
 <translation id="1614914292771557551">ລະຫັດຜ່ານຂອງທ່ານຈະຖືກບັນທຶກໄປໃສ່ບັນຊີ Google ຂອງທ່ານ (<ph name="EMAIL" />) ເມື່ອທ່ານກັບໄປຫາ Chrome</translation>
 <translation id="1706288056912586527">ສະແດງລະຫັດຜ່ານ</translation>
 <translation id="1977167321677356409">ລະຫັດຜ່ານ</translation>
 <translation id="2712586044587587728">ລະຫັດຜ່ານໃນ Chrome ຂອງທ່ານຈະມີໃຫ້ນຳໃຊ້ໃນແອັບອື່ນ. ທ່ານສາມາດປິດສິ່ງນີ້ໃນແອັບການຕັ້ງຄ່າໄດ້ທຸກເວລາ.</translation>
 <translation id="3580107423202590938">ບໍ່ມີລະຫັດຜ່ານໃນ Chrome</translation>
+<translation id="368844171100841558">ປ່ຽນ</translation>
 <translation id="3753678329684433031">ຕື່ມລະຫັດຜ່ານໃນ Chrome ໂດຍອັດຕະໂນມັດ</translation>
 <translation id="3789385946721385622">ຊື່ຜູ້ໃຊ້</translation>
 <translation id="4064278913989596727">ຊ່ວຍເຫຼືອ</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">ລະຫັດຜ່ານທີ່ແນະນຳ</translation>
 <translation id="8300526662653766176">ຕັ້ງຄ່າລະຫັດຜ່ານ</translation>
 <translation id="8332511935157148552">ບໍ່ພົບລະຫັດຜ່ານ</translation>
+<translation id="8486024683491936104">ປ່ຽນລະຫັດຜ່ານບໍ?</translation>
 <translation id="8503813439785031346">ຊື່​ຜູ້​ໃຊ້</translation>
 <translation id="8518521100965196752">ເພື່ອໃຊ້ລະຫັດຜ່ານ, ທ່ານຕ້ອງຕັ້ງລະຫັດຜ່ານໃນອຸປະກອນຂອງທ່ານກ່ອນ.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lt.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lt.xtb
index 183fdd7..839c8c90 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lt.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lt.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="lt">
+<translation id="1196785757634502276">Jau išsaugojote <ph name="USERNAME" /> slaptažodį svetainėje <ph name="WEBSITE" />. Ar norite jį pakeisti?</translation>
 <translation id="1276428923064733819">Kopijuoti</translation>
 <translation id="1614914292771557551">Slaptažodis bus išsaugotas „Google“ paskyroje (<ph name="EMAIL" />), kai sugrįšite į „Chrome“</translation>
 <translation id="1706288056912586527">Rodyti slaptažodį</translation>
 <translation id="1977167321677356409">Slaptažodis</translation>
 <translation id="2712586044587587728">„Chrome“ slaptažodžius galėsite naudoti kitose programose. Tai bet kada galite išjungti Nustatymų programoje.</translation>
 <translation id="3580107423202590938">„Chrome“ slaptažodžių nėra</translation>
+<translation id="368844171100841558">Pakeisti</translation>
 <translation id="3753678329684433031">Automatinis „Chrome“ slaptažodžių pildymas</translation>
 <translation id="3789385946721385622">Naudotojo vardas</translation>
 <translation id="4064278913989596727">Pagalba</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Siūlomi slaptažodžiai</translation>
 <translation id="8300526662653766176">Slaptažodžio nustatymas</translation>
 <translation id="8332511935157148552">Slaptažodžių nerasta</translation>
+<translation id="8486024683491936104">Pakeisti slaptažodį?</translation>
 <translation id="8503813439785031346">Vartotojo vardas</translation>
 <translation id="8518521100965196752">Jei norite naudoti slaptažodžius, pirmiausia turite nustatyti įrenginio slaptažodį.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lv.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lv.xtb
index ce11bace..d6ca0ef1 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lv.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_lv.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="lv">
+<translation id="1196785757634502276">Jūs jau saglabājāt paroli lietotājvārdam “<ph name="USERNAME" />” vietnē <ph name="WEBSITE" />. Vai vēlaties to aizstāt?</translation>
 <translation id="1276428923064733819">Kopēt</translation>
 <translation id="1614914292771557551">Jūsu parole tiks saglabāta jūsu Google kontā (<ph name="EMAIL" />), kad atkal atvērsiet pārlūku Chrome.</translation>
 <translation id="1706288056912586527">Rādīt paroli</translation>
 <translation id="1977167321677356409">Parole</translation>
 <translation id="2712586044587587728">Jūsu Chrome paroles būs pieejamas izmantošanai citās lietotnēs. Varat jebkurā laikā izslēgt šo funkciju lietotnē Iestatījumi.</translation>
 <translation id="3580107423202590938">Nav Chrome paroļu</translation>
+<translation id="368844171100841558">Aizstāt</translation>
 <translation id="3753678329684433031">Chrome paroles automātiskā aizpilde</translation>
 <translation id="3789385946721385622">Lietotājvārds</translation>
 <translation id="4064278913989596727">Palīdzība</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Ieteiktās paroles</translation>
 <translation id="8300526662653766176">Piekļuves koda iestatīšana</translation>
 <translation id="8332511935157148552">Nav atrasta neviena parole</translation>
+<translation id="8486024683491936104">Vai aizstāt paroli?</translation>
 <translation id="8503813439785031346">Lietotājvārds</translation>
 <translation id="8518521100965196752">Lai izmantotu paroles, vispirms ierīcei ir jāiestata piekļuves kods.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mn.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mn.xtb
index c0d3dc4e4..6fa85b2 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mn.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_mn.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="mn">
+<translation id="1196785757634502276">Та <ph name="WEBSITE" />-д аль хэдийн "<ph name="USERNAME" />"-н нууц үгийг хадгалсан. Та үүнийг солихыг хүсэж байна уу?</translation>
 <translation id="1276428923064733819">Хуулах</translation>
 <translation id="1614914292771557551">Таныг Chrome-д буцаж ирэх үед таны нууц үгийг Google Бүртгэлд (<ph name="EMAIL" />) тань хадгална</translation>
 <translation id="1706288056912586527">Нууц үгийг харуулах</translation>
 <translation id="1977167321677356409">Нууц үг</translation>
 <translation id="2712586044587587728">Таны Chrome-н нууц үгнүүдийг бусад аппад ашиглах боломжтой болно. Та үүнийг Тохиргооны аппад хүссэн үедээ унтраах боломжтой.</translation>
 <translation id="3580107423202590938">Chrome-д хадгалсан нууц үг алга</translation>
+<translation id="368844171100841558">Солих</translation>
 <translation id="3753678329684433031">Chrome-н нууц үгийг автоматаар бөглөх</translation>
 <translation id="3789385946721385622">Хэрэглэгчийн нэр</translation>
 <translation id="4064278913989596727">Тусламж</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Санал болгосон нууц үгнүүд</translation>
 <translation id="8300526662653766176">Нууц код тохируулна уу</translation>
 <translation id="8332511935157148552">Нууц үг олдсонгүй</translation>
+<translation id="8486024683491936104">Нууц үгийг солих уу?</translation>
 <translation id="8503813439785031346">Хэрэглэгчийн нэр</translation>
 <translation id="8518521100965196752">Нууц үгнүүдийг ашиглахын тулд та эхлээд төхөөрөмж дээрээ нууц код тохируулах ёстой.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ms.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ms.xtb
index 2985d76b..c5e10fe 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ms.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ms.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ms">
+<translation id="1196785757634502276">Anda telah pun menyimpan kata laluan untuk "<ph name="USERNAME" />" pada <ph name="WEBSITE" />. Adakah anda mahu menggantikannya?</translation>
 <translation id="1276428923064733819">Salin</translation>
 <translation id="1614914292771557551">Kata laluan anda akan disimpan pada Google Account (<ph name="EMAIL" />) anda apabila anda kembali ke Chrome</translation>
 <translation id="1706288056912586527">Paparkan Kata Laluan</translation>
 <translation id="1977167321677356409">Kata laluan</translation>
 <translation id="2712586044587587728">Kata laluan Chrome anda akan tersedia untuk digunakan dalam apl lain. Anda boleh mematikan pilihan ini dalam apl Tetapan pada bila-bila masa.</translation>
 <translation id="3580107423202590938">Tiada Kata Laluan Chrome</translation>
+<translation id="368844171100841558">Gantikan</translation>
 <translation id="3753678329684433031">Autolengkap Kata Laluan Chrome</translation>
 <translation id="3789385946721385622">Nama pengguna</translation>
 <translation id="4064278913989596727">Bantuan</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Kata Laluan yang Dicadangkan</translation>
 <translation id="8300526662653766176">Tetapkan Kod Laluan</translation>
 <translation id="8332511935157148552">Tiada Kata Laluan Ditemukan</translation>
+<translation id="8486024683491936104">Gantikan Kata Laluan?</translation>
 <translation id="8503813439785031346">Nama pengguna</translation>
 <translation id="8518521100965196752">Untuk menggunakan kata laluan, anda mesti menetapkan kod laluan pada peranti anda dahulu.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_my.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_my.xtb
index 3d7a160..23b4f03 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_my.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_my.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="my">
+<translation id="1196785757634502276"><ph name="WEBSITE" /> တွင် “<ph name="USERNAME" />” အတွက် စကားဝှက်ကို သိမ်းထားပြီးသားဖြစ်သည်။ ၎င်းကို အစားထိုးလိုပါသလား။</translation>
 <translation id="1276428923064733819">မိတ္တူကူးရန်</translation>
 <translation id="1614914292771557551">Chrome ပြန်သုံးသောအခါ သင့်စကားဝှက်ကို သင်၏ Google Account (<ph name="EMAIL" />) တွင် သိမ်းပါမည်</translation>
 <translation id="1706288056912586527">စကားဝှက် ပြရန်</translation>
 <translation id="1977167321677356409">စကားဝှက်</translation>
 <translation id="2712586044587587728">သင်၏ Chrome စကားဝှက်များကို အခြားအက်ပ်များတွင် အသုံးပြုနိုင်ပါမည်။ ၎င်းကို 'ဆက်တင်များ' အက်ပ်တွင် အချိန်မရွေး ပိတ်နိုင်သည်။</translation>
 <translation id="3580107423202590938">Chrome စကားဝှက်များ မရှိပါ</translation>
+<translation id="368844171100841558">အစားထိုးရန်</translation>
 <translation id="3753678329684433031">Chrome စကားဝှက် အော်တိုဖြည့်ခြင်း</translation>
 <translation id="3789385946721385622">အသုံးပြုသူအမည်</translation>
 <translation id="4064278913989596727">အကူအညီ</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">အကြံပြုထားသော စကားဝှက်များ</translation>
 <translation id="8300526662653766176">လျှို့ဝှက်ကုဒ်တစ်ခု သတ်မှတ်ပါ</translation>
 <translation id="8332511935157148552">စကားဝှက်များ မတွေ့ပါ</translation>
+<translation id="8486024683491936104">စကားဝှက် အစားထိုးမလား။</translation>
 <translation id="8503813439785031346">အသုံးပြုသူအမည်</translation>
 <translation id="8518521100965196752">စကားဝှက်များသုံးရန် သင့်စက်တွင် လျှို့ဝှက်ကုဒ်တစ်ခုကို ဦးစွာ သတ်မှတ်ရပါမည်။</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ru.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ru.xtb
index ed2f3d6..ebb9d990 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ru.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_ru.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ru">
+<translation id="1196785757634502276">Пароль пользователя <ph name="USERNAME" /> для сайта <ph name="WEBSITE" /> уже сохранен. Заменить его?</translation>
 <translation id="1276428923064733819">Копировать</translation>
 <translation id="1614914292771557551">Когда вы вернетесь в Chrome, пароль будет сохранен в вашем аккаунте Google (<ph name="EMAIL" />).</translation>
 <translation id="1706288056912586527">Показать пароль</translation>
 <translation id="1977167321677356409">Пароль</translation>
 <translation id="2712586044587587728">Пароли, сохраненные в Chrome, можно использовать в других приложениях. Эту функцию можно в любое время отключить в приложении "Настройки".</translation>
 <translation id="3580107423202590938">Нет паролей Chrome</translation>
+<translation id="368844171100841558">Заменить</translation>
 <translation id="3753678329684433031">Автозаполнение пароля из Chrome</translation>
 <translation id="3789385946721385622">Имя пользователя</translation>
 <translation id="4064278913989596727">Справка</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Рекомендуемые пароли</translation>
 <translation id="8300526662653766176">Установите код доступа</translation>
 <translation id="8332511935157148552">Пароли не найдены.</translation>
+<translation id="8486024683491936104">Заменить пароль?</translation>
 <translation id="8503813439785031346">Имя пользователя</translation>
 <translation id="8518521100965196752">Чтобы использовать пароли, установите на устройстве код доступа.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sv.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sv.xtb
index 84f0584d..f0e48a8 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sv.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sv.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sv">
+<translation id="1196785757634502276">Du har redan sparat ett lösenord för <ph name="USERNAME" /> på <ph name="WEBSITE" />. Vill du ersätta det?</translation>
 <translation id="1276428923064733819">Kopiera</translation>
 <translation id="1614914292771557551">Ditt lösenord sparas i Google-kontot (<ph name="EMAIL" />) när du återgår till Chrome.</translation>
 <translation id="1706288056912586527">Visa lösenord</translation>
 <translation id="1977167321677356409">Lösenord</translation>
 <translation id="2712586044587587728">Du kan använda lösenorden i Chrome i andra appar. Du kan inaktivera detta i appen Inställningar när du vill.</translation>
 <translation id="3580107423202590938">Inga lösenord i Chrome</translation>
+<translation id="368844171100841558">Ersätt</translation>
 <translation id="3753678329684433031">Autofyll lösenord i Chrome</translation>
 <translation id="3789385946721385622">Användarnamn</translation>
 <translation id="4064278913989596727">Hjälp</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Föreslagna lösenord</translation>
 <translation id="8300526662653766176">Ställ in ett lösenord</translation>
 <translation id="8332511935157148552">Inga lösenord hittades</translation>
+<translation id="8486024683491936104">Vill du ersätta lösenordet?</translation>
 <translation id="8503813439785031346">Användarnamn</translation>
 <translation id="8518521100965196752">Du måste ställa in ett lösenord på enheten innan du kan använda lösenord här.</translation>
 <translation id="8877181643142698531">Webbadress</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sw.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sw.xtb
index c0569de..529f3ed 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sw.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_sw.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sw">
+<translation id="1196785757634502276">Tayari umehifadhi nenosiri la "<ph name="USERNAME" />" katika <ph name="WEBSITE" />. Je, ungependa kulibadilisha?</translation>
 <translation id="1276428923064733819">Nakili</translation>
 <translation id="1614914292771557551">Nenosiri lako litahifadhiwa katika Akaunti yako ya Google (<ph name="EMAIL" />) ukirejea kwenye Chrome</translation>
 <translation id="1706288056912586527">Onyesha Nenosiri</translation>
 <translation id="1977167321677356409">Nenosiri</translation>
 <translation id="2712586044587587728">Nenosiri lako la Chrome litaweza kutumiwa kwenye programu zingine. Unaweza kuzima hali hii kwenye programu ya Mipangilio wakati wowote.</translation>
 <translation id="3580107423202590938">Hamna Manenosiri ya Chrome</translation>
+<translation id="368844171100841558">Badilisha</translation>
 <translation id="3753678329684433031">Jaza Kiotomatiki Nenosiri la Chrome</translation>
 <translation id="3789385946721385622">Jina la mtumiaji</translation>
 <translation id="4064278913989596727">Usaidizi</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Manenosiri Yanayopendekezwa</translation>
 <translation id="8300526662653766176">Weka Nambari ya Siri</translation>
 <translation id="8332511935157148552">Hakuna Manenosiri Yaliyopatikana</translation>
+<translation id="8486024683491936104">Ungependa Kubadilisha Nenosiri?</translation>
 <translation id="8503813439785031346">Jina la mtumiaji</translation>
 <translation id="8518521100965196752">Ili utumie manenosiri, ni lazima kwanza uweke nambari ya siri kwenye kifaa chako.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_th.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_th.xtb
index fdcea4f3..fcc5628 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_th.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_th.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="th">
+<translation id="1196785757634502276">คุณบันทึกรหัสผ่านสำหรับ "<ph name="USERNAME" />" ที่ <ph name="WEBSITE" /> ไว้แล้ว ต้องการแทนที่รหัสผ่านไหม</translation>
 <translation id="1276428923064733819">คัดลอก</translation>
 <translation id="1614914292771557551">ระบบจะบันทึกรหัสผ่านในบัญชี Google (<ph name="EMAIL" />) เมื่อคุณกลับมาที่ Chrome</translation>
 <translation id="1706288056912586527">แสดงรหัสผ่าน</translation>
 <translation id="1977167321677356409">รหัสผ่าน</translation>
 <translation id="2712586044587587728">รหัสผ่านของ Chrome จะพร้อมให้ใช้งานในแอปอื่นๆ คุณปิดการตั้งค่านี้ในแอปการตั้งค่าได้ทุกเมื่อ</translation>
 <translation id="3580107423202590938">ไม่มีรหัสผ่านของ Chrome</translation>
+<translation id="368844171100841558">แทนที่</translation>
 <translation id="3753678329684433031">ป้อนรหัสผ่านที่บันทึกไว้ใน Chrome โดยอัตโนมัติ</translation>
 <translation id="3789385946721385622">ชื่อผู้ใช้</translation>
 <translation id="4064278913989596727">ความช่วยเหลือ</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">รหัสผ่านแนะนำ</translation>
 <translation id="8300526662653766176">ตั้งรหัสผ่าน</translation>
 <translation id="8332511935157148552">ไม่พบรหัสผ่าน</translation>
+<translation id="8486024683491936104">แทนที่รหัสผ่านใช่ไหม</translation>
 <translation id="8503813439785031346">ชื่อผู้ใช้</translation>
 <translation id="8518521100965196752">หากต้องการใช้รหัสผ่าน คุณต้องตั้งรหัสผ่านในอุปกรณ์ก่อน</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_tr.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_tr.xtb
index 9bb55e5..ae131f2 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_tr.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_tr.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="tr">
+<translation id="1196785757634502276"><ph name="WEBSITE" /> adresinde "<ph name="USERNAME" />" için zaten kayıtlı şifreniz var. Şifreyi değiştirmek istiyor musunuz?</translation>
 <translation id="1276428923064733819">Kopyala</translation>
 <translation id="1614914292771557551">Chrome'a geri geldiğinizde şifreniz Google Hesabınızda (<ph name="EMAIL" />) kaydedilir</translation>
 <translation id="1706288056912586527">Şifreyi Göster</translation>
 <translation id="1977167321677356409">Şifre</translation>
 <translation id="2712586044587587728">Chrome şifreleriniz diğer uygulamalarda kullanılabilir. Bu özelliği istediğiniz zaman Ayarlar uygulamasından kapatabilirsiniz.</translation>
 <translation id="3580107423202590938">Chrome Şifresi Yok</translation>
+<translation id="368844171100841558">Değiştir</translation>
 <translation id="3753678329684433031">Chrome Şifresini Otomatik Doldur</translation>
 <translation id="3789385946721385622">Kullanıcı adı</translation>
 <translation id="4064278913989596727">Yardım</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Önerilen Şifreler</translation>
 <translation id="8300526662653766176">Şifre Kodu Ayarlayın</translation>
 <translation id="8332511935157148552">Şifre Bulunamadı</translation>
+<translation id="8486024683491936104">Şifre değiştirilsin mi?</translation>
 <translation id="8503813439785031346">Kullanıcı adı</translation>
 <translation id="8518521100965196752">Şifreleri kullanmak için öncelikle cihazınızda bir şifre kodu ayarlamanız gerekir.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_vi.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_vi.xtb
index 20af0b8..a7f79cc2 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_vi.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_vi.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="vi">
+<translation id="1196785757634502276">Bạn đã lưu mật khẩu cho "<ph name="USERNAME" />" tại <ph name="WEBSITE" />. Bạn có muốn thay thế mật khẩu này không?</translation>
 <translation id="1276428923064733819">Sao chép</translation>
 <translation id="1614914292771557551">Mật khẩu của bạn sẽ được lưu trong Tài khoản Google (<ph name="EMAIL" />) khi bạn quay lại Chrome</translation>
 <translation id="1706288056912586527">Hiện mật khẩu</translation>
 <translation id="1977167321677356409">Mật khẩu</translation>
 <translation id="2712586044587587728">Bạn có thể dùng mật khẩu của mình trên Chrome cho các ứng dụng khác. Bạn có thể tắt tùy chọn này bất cứ lúc nào trong ứng dụng Cài đặt.</translation>
 <translation id="3580107423202590938">Không có mật khẩu trên Chrome</translation>
+<translation id="368844171100841558">Thay thế</translation>
 <translation id="3753678329684433031">Tự động điền mật khẩu trên Chrome</translation>
 <translation id="3789385946721385622">Tên người dùng</translation>
 <translation id="4064278913989596727">Trợ giúp</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">Mật khẩu đề xuất</translation>
 <translation id="8300526662653766176">Đặt mật mã</translation>
 <translation id="8332511935157148552">Không tìm thấy mật khẩu nào</translation>
+<translation id="8486024683491936104">Thay thế mật khẩu?</translation>
 <translation id="8503813439785031346">Tên người dùng</translation>
 <translation id="8518521100965196752">Để sử dụng mật khẩu, trước tiên, bạn phải đặt mật mã trên thiết bị của mình.</translation>
 <translation id="8877181643142698531">URL</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_zh-HK.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_zh-HK.xtb
index dfc2159..404c52a 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_zh-HK.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_zh-HK.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-HK">
+<translation id="1196785757634502276">你已儲存「<ph name="USERNAME" />」在 <ph name="WEBSITE" /> 使用的密碼。要取代這組密碼嗎?</translation>
 <translation id="1276428923064733819">複製</translation>
 <translation id="1614914292771557551">當您返回 Chrome 時,密碼將會儲存在 Google 帳戶 (<ph name="EMAIL" />) 中</translation>
 <translation id="1706288056912586527">顯示密碼</translation>
 <translation id="1977167321677356409">密碼</translation>
 <translation id="2712586044587587728">您的 Chrome 密碼可在其他應用程式使用。您可隨時在「設定」應用程式關閉此功能。</translation>
 <translation id="3580107423202590938">沒有 Chrome 密碼</translation>
+<translation id="368844171100841558">取代</translation>
 <translation id="3753678329684433031">自動填入 Chrome 密碼</translation>
 <translation id="3789385946721385622">使用者名稱</translation>
 <translation id="4064278913989596727">說明</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">建議的密碼</translation>
 <translation id="8300526662653766176">設定密碼</translation>
 <translation id="8332511935157148552">找不到密碼</translation>
+<translation id="8486024683491936104">要取代密碼嗎?</translation>
 <translation id="8503813439785031346">用戶名稱</translation>
 <translation id="8518521100965196752">如要使用密碼,您必須先在裝置上設定密碼。</translation>
 <translation id="8877181643142698531">網址</translation>
diff --git a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_zh-TW.xtb b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_zh-TW.xtb
index 645eba4..cdd4171 100644
--- a/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_zh-TW.xtb
+++ b/ios/chrome/credential_provider_extension/strings/resources/ios_credential_provider_extension_strings_zh-TW.xtb
@@ -1,12 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-TW">
+<translation id="1196785757634502276">你已儲存「<ph name="USERNAME" />」在 <ph name="WEBSITE" /> 使用的密碼。要取代這組密碼嗎?</translation>
 <translation id="1276428923064733819">複製</translation>
 <translation id="1614914292771557551">下次你使用 Chrome 時,系統會將你的密碼儲存在 Google 帳戶 (<ph name="EMAIL" />) 中</translation>
 <translation id="1706288056912586527">顯示密碼</translation>
 <translation id="1977167321677356409">密碼</translation>
 <translation id="2712586044587587728">你將可在其他應用程式中使用 Chrome 密碼。你隨時可以在「設定」應用程式中停用這項功能。</translation>
 <translation id="3580107423202590938">沒有任何 Chrome 密碼</translation>
+<translation id="368844171100841558">取代</translation>
 <translation id="3753678329684433031">自動填入 Chrome 密碼</translation>
 <translation id="3789385946721385622">使用者名稱</translation>
 <translation id="4064278913989596727">說明</translation>
@@ -36,6 +38,7 @@
 <translation id="8219905600827687498">建議的密碼</translation>
 <translation id="8300526662653766176">請設定螢幕解鎖密碼</translation>
 <translation id="8332511935157148552">找不到密碼</translation>
+<translation id="8486024683491936104">要取代密碼嗎?</translation>
 <translation id="8503813439785031346">使用者名稱</translation>
 <translation id="8518521100965196752">你必須先在裝置上設定螢幕解鎖密碼才能使用密碼。</translation>
 <translation id="8877181643142698531">網址</translation>
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
index da17cd8d..ec27574 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-401e428b8323b5d7afbadbec770e3a11640e6de0
\ No newline at end of file
+d387f99f3a3a2356faf608d3c6dc193aaeabcb25
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
index 600198b6..808b48b6 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-6349b175b6419775727373c4cf0e51d49025a029
\ No newline at end of file
+34b924f701ffbd9b20eda9b8240d57033df044b2
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
index 8b1aaac..466edd1 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-468c2e2d38eaeab2f57c1b2827fd3b086802fef8
\ No newline at end of file
+d2e2f93241e64687d37cae23dfc07bc10ec81112
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
index 62dfdcf..5fd1d9ad 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-1e04de0b7a64df175db782020fe743e48224cb63
\ No newline at end of file
+9421c19f5012a94ff3a1ed965b3a2f49ec8bf5a4
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
index f0578847..b0093596 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-ee047d2f3f3556bc73034121ab8ec8acd7b9d87d
\ No newline at end of file
+c3091a6ef0e1374080bd76c5e834a91b1087dc18
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
index 9373d77..05299e97 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-93ea02f17458cef8f9402615a660b1033b3bc912
\ No newline at end of file
+996d7d1995c648ee772e075dc8ac283150433ba8
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
index 7b2b07e4..5b4183e 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-f26c4666f649903f1fd96340f627ec0e14f7e114
\ No newline at end of file
+762c5da9f81c87e5c494d29eaf1d423da2b7fe04
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
index c1f058f6..942e2a9 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-3a8d31f6efc3f4059fdb34be783c7c34ea229619
\ No newline at end of file
+5f35d74d2855c90ed66821f59a19346318b441b5
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
index 0281f51..4fdc92b0 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-b897f50665b69432380bd5a571abc055b6a9e1f1
\ No newline at end of file
+2bf353b82eb5d3a905c44113f2ffcf841e42262b
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
index 709ae0d..73e6729c 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-162f0171638a9647d5a2b288ff4a1efca86d263e
\ No newline at end of file
+f3aa9722c89048e898e082e50ce926ac519576cd
\ No newline at end of file
diff --git a/net/BUILD.gn b/net/BUILD.gn
index d5d72fbb..24c8157 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1535,10 +1535,6 @@
       "ftp/ftp_transaction_factory.h",
       "ftp/ftp_util.cc",
       "ftp/ftp_util.h",
-      "url_request/ftp_protocol_handler.cc",
-      "url_request/ftp_protocol_handler.h",
-      "url_request/url_request_ftp_job.cc",
-      "url_request/url_request_ftp_job.h",
     ]
   }
 
@@ -4695,7 +4691,6 @@
       "ftp/ftp_directory_listing_parser_windows_unittest.cc",
       "ftp/ftp_network_transaction_unittest.cc",
       "ftp/ftp_util_unittest.cc",
-      "url_request/url_request_ftp_job_unittest.cc",
     ]
   }
 
@@ -5264,22 +5259,6 @@
     # understood (probably just needs to restrict maximum input size).
     additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ]
   }
-
-  fuzzer_test("net_url_request_ftp_fuzzer") {
-    sources = [ "url_request/url_request_ftp_fuzzer.cc" ]
-    deps = [
-      ":net_fuzzer_test_support",
-      ":test_support",
-      "//base",
-      "//net",
-    ]
-    dict = "data/fuzzer_dictionaries/net_url_request_ftp_fuzzer.dict"
-    seed_corpus = "data/fuzzer_data/net_url_request_ftp_fuzzer/"
-
-    # TODO(https://crbug.com/962087): Re-enable once source of timeout is
-    # understood (probably just needs to restrict maximum input size).
-    additional_configs = [ "//testing/libfuzzer:no_clusterfuzz" ]
-  }
 }
 
 fuzzer_test("net_unescape_url_component_fuzzer") {
diff --git a/net/data/fuzzer_data/net_url_request_ftp_fuzzer/epsv-mode.txt b/net/data/fuzzer_data/net_url_request_ftp_fuzzer/epsv-mode.txt
deleted file mode 100644
index 00f77e94..0000000
--- a/net/data/fuzzer_data/net_url_request_ftp_fuzzer/epsv-mode.txt
+++ /dev/null
Binary files differ
diff --git a/net/data/fuzzer_data/net_url_request_ftp_fuzzer/pasv-mode.txt b/net/data/fuzzer_data/net_url_request_ftp_fuzzer/pasv-mode.txt
deleted file mode 100644
index e8ed414..0000000
--- a/net/data/fuzzer_data/net_url_request_ftp_fuzzer/pasv-mode.txt
+++ /dev/null
Binary files differ
diff --git a/net/url_request/ftp_protocol_handler.cc b/net/url_request/ftp_protocol_handler.cc
deleted file mode 100644
index 03783e50..0000000
--- a/net/url_request/ftp_protocol_handler.cc
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright (c) 2012 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/url_request/ftp_protocol_handler.h"
-
-#include "base/check_op.h"
-#include "base/memory/ptr_util.h"
-#include "net/base/net_errors.h"
-#include "net/base/port_util.h"
-#include "net/ftp/ftp_auth_cache.h"
-#include "net/ftp/ftp_network_layer.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_error_job.h"
-#include "net/url_request/url_request_ftp_job.h"
-#include "url/gurl.h"
-
-namespace net {
-
-std::unique_ptr<FtpProtocolHandler> FtpProtocolHandler::Create(
-    HostResolver* host_resolver,
-    FtpAuthCache* auth_cache) {
-  DCHECK(auth_cache);
-  return base::WrapUnique(new FtpProtocolHandler(
-      base::WrapUnique(new FtpNetworkLayer(host_resolver)), auth_cache));
-}
-
-std::unique_ptr<FtpProtocolHandler> FtpProtocolHandler::CreateForTesting(
-    std::unique_ptr<FtpTransactionFactory> ftp_transaction_factory,
-    FtpAuthCache* auth_cache) {
-  return base::WrapUnique(
-      new FtpProtocolHandler(std::move(ftp_transaction_factory), auth_cache));
-}
-
-FtpProtocolHandler::~FtpProtocolHandler() = default;
-
-std::unique_ptr<URLRequestJob> FtpProtocolHandler::CreateJob(
-    URLRequest* request) const {
-  DCHECK_EQ("ftp", request->url().scheme());
-
-  if (!IsPortAllowedForScheme(request->url().EffectiveIntPort(),
-                              request->url().scheme_piece())) {
-    return std::make_unique<URLRequestErrorJob>(request, ERR_UNSAFE_PORT);
-  }
-
-  return std::make_unique<URLRequestFtpJob>(
-      request, ftp_transaction_factory_.get(), ftp_auth_cache_);
-}
-
-FtpProtocolHandler::FtpProtocolHandler(
-    std::unique_ptr<FtpTransactionFactory> ftp_transaction_factory,
-    FtpAuthCache* auth_cache)
-    : ftp_transaction_factory_(std::move(ftp_transaction_factory)),
-      ftp_auth_cache_(auth_cache) {
-  DCHECK(ftp_transaction_factory_);
-}
-
-}  // namespace net
diff --git a/net/url_request/ftp_protocol_handler.h b/net/url_request/ftp_protocol_handler.h
deleted file mode 100644
index 114a051..0000000
--- a/net/url_request/ftp_protocol_handler.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (c) 2012 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_URL_REQUEST_FTP_PROTOCOL_HANDLER_H_
-#define NET_URL_REQUEST_FTP_PROTOCOL_HANDLER_H_
-
-#include <memory>
-
-#include "base/compiler_specific.h"
-#include "base/macros.h"
-#include "net/base/net_export.h"
-#include "net/url_request/url_request_job_factory.h"
-
-namespace net {
-
-class FtpAuthCache;
-class FtpTransactionFactory;
-class HostResolver;
-class URLRequestJob;
-
-// Implements a ProtocolHandler for FTP.
-class NET_EXPORT FtpProtocolHandler :
-    public URLRequestJobFactory::ProtocolHandler {
- public:
-  ~FtpProtocolHandler() override;
-
-  // Creates an FtpProtocolHandler using the specified HostResolver and
-  // FtpAuthCache. |auth_cache| cannot be null.
-  static std::unique_ptr<FtpProtocolHandler> Create(HostResolver* host_resolver,
-                                                    FtpAuthCache* auth_cache);
-
-  // Creates an FtpProtocolHandler using the specified FtpTransactionFactory, to
-  // allow a mock to be used for testing.
-  static std::unique_ptr<FtpProtocolHandler> CreateForTesting(
-      std::unique_ptr<FtpTransactionFactory> ftp_transaction_factory,
-      FtpAuthCache* auth_cache);
-
-  std::unique_ptr<URLRequestJob> CreateJob(URLRequest* request) const override;
-
- private:
-  friend class FtpTestURLRequestContext;
-
-  explicit FtpProtocolHandler(
-      std::unique_ptr<FtpTransactionFactory> ftp_transaction_factory,
-      FtpAuthCache* auth_cache);
-
-  std::unique_ptr<FtpTransactionFactory> ftp_transaction_factory_;
-  FtpAuthCache* ftp_auth_cache_;
-
-  DISALLOW_COPY_AND_ASSIGN(FtpProtocolHandler);
-};
-
-}  // namespace net
-
-#endif  // NET_URL_REQUEST_FTP_PROTOCOL_HANDLER_H_
diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h
index 5cba7892..3fc4bc0 100644
--- a/net/url_request/url_request.h
+++ b/net/url_request/url_request.h
@@ -683,8 +683,7 @@
   }
 
   // The number of bytes in the raw response body (before any decompression,
-  // etc.). This is only available after the final Read completes. Not available
-  // for FTP responses.
+  // etc.). This is only available after the final Read completes.
   int64_t received_response_content_length() const {
     return received_response_content_length_;
   }
diff --git a/net/url_request/url_request_context.h b/net/url_request/url_request_context.h
index 9e14a66..8a45ed43 100644
--- a/net/url_request/url_request_context.h
+++ b/net/url_request/url_request_context.h
@@ -55,10 +55,6 @@
 class URLRequestJobFactory;
 class URLRequestThrottlerManager;
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-class FtpAuthCache;
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
 #if BUILDFLAG(ENABLE_REPORTING)
 class NetworkErrorLoggingService;
 class ReportingService;
@@ -295,13 +291,6 @@
     return require_network_isolation_key_;
   }
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  void set_ftp_auth_cache(FtpAuthCache* auth_cache) {
-    ftp_auth_cache_ = auth_cache;
-  }
-  FtpAuthCache* ftp_auth_cache() { return ftp_auth_cache_; }
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
   // Sets a name for this URLRequestContext. Currently the name is used in
   // MemoryDumpProvier to annotate memory usage. The name does not need to be
   // unique.
@@ -344,9 +333,6 @@
   ReportingService* reporting_service_;
   NetworkErrorLoggingService* network_error_logging_service_;
 #endif  // BUILDFLAG(ENABLE_REPORTING)
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  FtpAuthCache* ftp_auth_cache_;
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
 
   std::unique_ptr<std::set<const URLRequest*>> url_requests_;
 
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
index 07886a7..616e007 100644
--- a/net/url_request/url_request_context_builder.cc
+++ b/net/url_request/url_request_context_builder.cc
@@ -52,12 +52,6 @@
 #include "net/url_request/url_request_throttler_manager.h"
 #include "url/url_constants.h"
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-#include "net/ftp/ftp_auth_cache.h"                // nogncheck
-#include "net/ftp/ftp_network_layer.h"             // nogncheck
-#include "net/url_request/ftp_protocol_handler.h"  // nogncheck
-#endif
-
 #if BUILDFLAG(ENABLE_REPORTING)
 #include "net/network_error_logging/network_error_logging_service.h"
 #include "net/network_error_logging/persistent_reporting_and_nel_store.h"
@@ -546,23 +540,12 @@
 
   std::unique_ptr<URLRequestJobFactory> job_factory =
       std::make_unique<URLRequestJobFactory>();
-  // Adds caller-provided protocol handlers first so that these handlers are
-  // used over the ftp handler below.
   for (auto& scheme_handler : protocol_handlers_) {
     job_factory->SetProtocolHandler(scheme_handler.first,
                                     std::move(scheme_handler.second));
   }
   protocol_handlers_.clear();
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  if (ftp_enabled_) {
-    storage->set_ftp_auth_cache(std::make_unique<FtpAuthCache>());
-    job_factory->SetProtocolHandler(
-        url::kFtpScheme, FtpProtocolHandler::Create(context->host_resolver(),
-                                                    context->ftp_auth_cache()));
-  }
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
   storage->set_job_factory(std::move(job_factory));
 
   return std::move(context);
diff --git a/net/url_request/url_request_context_builder.h b/net/url_request/url_request_context_builder.h
index d0508dd..094722c 100644
--- a/net/url_request/url_request_context_builder.h
+++ b/net/url_request/url_request_context_builder.h
@@ -192,11 +192,6 @@
   void set_http_user_agent_settings(
       std::unique_ptr<HttpUserAgentSettings> http_user_agent_settings);
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  // Control support for ftp:// requests. By default it's disabled.
-  void set_ftp_enabled(bool enable) { ftp_enabled_ = enable; }
-#endif
-
   // Sets a valid ProtocolHandler for a scheme.
   // A ProtocolHandler already exists for |scheme| will be overwritten.
   void SetProtocolHandler(
@@ -346,10 +341,6 @@
   std::string user_agent_;
   std::unique_ptr<HttpUserAgentSettings> http_user_agent_settings_;
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  // Include support for ftp:// requests.
-  bool ftp_enabled_ = false;
-#endif
   bool http_cache_enabled_ = true;
   bool throttling_enabled_ = false;
   bool cookie_store_set_by_client_ = false;
diff --git a/net/url_request/url_request_context_storage.cc b/net/url_request/url_request_context_storage.cc
index 193d247..e24f69b5 100644
--- a/net/url_request/url_request_context_storage.cc
+++ b/net/url_request/url_request_context_storage.cc
@@ -26,10 +26,6 @@
 #include "net/url_request/url_request_job_factory.h"
 #include "net/url_request/url_request_throttler_manager.h"
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-#include "net/ftp/ftp_auth_cache.h"
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
 #if BUILDFLAG(ENABLE_REPORTING)
 #include "net/network_error_logging/network_error_logging_service.h"
 #include "net/network_error_logging/persistent_reporting_and_nel_store.h"
@@ -152,14 +148,6 @@
   http_user_agent_settings_ = std::move(http_user_agent_settings);
 }
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-void URLRequestContextStorage::set_ftp_auth_cache(
-    std::unique_ptr<FtpAuthCache> ftp_auth_cache) {
-  context_->set_ftp_auth_cache(ftp_auth_cache.get());
-  ftp_auth_cache_ = std::move(ftp_auth_cache);
-}
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
 #if BUILDFLAG(ENABLE_REPORTING)
 void URLRequestContextStorage::set_persistent_reporting_and_nel_store(
     std::unique_ptr<PersistentReportingAndNelStore>
diff --git a/net/url_request/url_request_context_storage.h b/net/url_request/url_request_context_storage.h
index d78511a..07db9e0 100644
--- a/net/url_request/url_request_context_storage.h
+++ b/net/url_request/url_request_context_storage.h
@@ -18,7 +18,6 @@
 class CertVerifier;
 class CookieStore;
 class CTPolicyEnforcer;
-class FtpAuthCache;
 class HostResolver;
 class HttpAuthHandlerFactory;
 class HttpNetworkSession;
@@ -84,9 +83,6 @@
   void set_quic_context(std::unique_ptr<QuicContext> quic_context);
   void set_http_user_agent_settings(
       std::unique_ptr<HttpUserAgentSettings> http_user_agent_settings);
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  void set_ftp_auth_cache(std::unique_ptr<FtpAuthCache> ftp_auth_cache);
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
 
 #if BUILDFLAG(ENABLE_REPORTING)
   void set_persistent_reporting_and_nel_store(
@@ -124,9 +120,6 @@
   std::unique_ptr<CTPolicyEnforcer> ct_policy_enforcer_;
   std::unique_ptr<SCTAuditingDelegate> sct_auditing_delegate_;
   std::unique_ptr<QuicContext> quic_context_;
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  std::unique_ptr<FtpAuthCache> ftp_auth_cache_;
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
 
   // Not actually pointed at by the URLRequestContext, but may be used (but not
   // owned) by the HttpTransactionFactory.
diff --git a/net/url_request/url_request_ftp_fuzzer.cc b/net/url_request/url_request_ftp_fuzzer.cc
deleted file mode 100644
index e589091fb..0000000
--- a/net/url_request/url_request_ftp_fuzzer.cc
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <fuzzer/FuzzedDataProvider.h>
-
-#include "base/macros.h"
-#include "base/run_loop.h"
-#include "net/base/request_priority.h"
-#include "net/dns/context_host_resolver.h"
-#include "net/dns/fuzzed_host_resolver_util.h"
-#include "net/ftp/ftp_auth_cache.h"
-#include "net/ftp/ftp_network_transaction.h"
-#include "net/ftp/ftp_transaction_factory.h"
-#include "net/socket/client_socket_factory.h"
-#include "net/socket/fuzzed_socket_factory.h"
-#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
-#include "net/url_request/ftp_protocol_handler.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_job_factory.h"
-#include "net/url_request/url_request_test_util.h"
-#include "url/gurl.h"
-
-namespace {
-
-// Returns FtpNetworkTransactions using the specified HostResolver
-// and ClientSocketFactory.
-class FuzzedFtpTransactionFactory : public net::FtpTransactionFactory {
- public:
-  FuzzedFtpTransactionFactory(net::HostResolver* host_resolver,
-                              net::ClientSocketFactory* client_socket_factory)
-      : host_resolver_(host_resolver),
-        client_socket_factory_(client_socket_factory) {}
-
-  // FtpTransactionFactory:
-  std::unique_ptr<net::FtpTransaction> CreateTransaction() override {
-    return std::make_unique<net::FtpNetworkTransaction>(host_resolver_,
-                                                        client_socket_factory_);
-  }
-
-  void Suspend(bool suspend) override { NOTREACHED(); }
-
- private:
-  net::HostResolver* host_resolver_;
-  net::ClientSocketFactory* client_socket_factory_;
-
-  DISALLOW_COPY_AND_ASSIGN(FuzzedFtpTransactionFactory);
-};
-
-}  // namespace
-
-// Integration fuzzer for URLRequestFtpJob.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  FuzzedDataProvider data_provider(data, size);
-  net::TestURLRequestContext url_request_context(true);
-  net::FuzzedSocketFactory fuzzed_socket_factory(&data_provider);
-  url_request_context.set_client_socket_factory(&fuzzed_socket_factory);
-
-  // Need to fuzz the HostResolver to select between IPv4 and IPv6.
-  std::unique_ptr<net::ContextHostResolver> host_resolver =
-      net::CreateFuzzedContextHostResolver(net::HostResolver::ManagerOptions(),
-                                           nullptr, &data_provider,
-                                           true /* enable_caching */);
-  url_request_context.set_host_resolver(host_resolver.get());
-
-  net::URLRequestJobFactory job_factory;
-  net::FtpAuthCache auth_cache;
-  job_factory.SetProtocolHandler(
-      "ftp", net::FtpProtocolHandler::CreateForTesting(
-                 std::make_unique<FuzzedFtpTransactionFactory>(
-                     host_resolver.get(), &fuzzed_socket_factory),
-                 &auth_cache));
-  url_request_context.set_job_factory(&job_factory);
-
-  url_request_context.Init();
-
-  net::TestDelegate delegate;
-
-  std::unique_ptr<net::URLRequest> url_request(
-      url_request_context.CreateRequest(
-          GURL("ftp://foo/" + data_provider.ConsumeRandomLengthString(1000)),
-          net::DEFAULT_PRIORITY, &delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
-  url_request->Start();
-  // TestDelegate quits the message loop on completion.
-  base::RunLoop().Run();
-
-  return 0;
-}
diff --git a/net/url_request/url_request_ftp_job.cc b/net/url_request/url_request_ftp_job.cc
deleted file mode 100644
index 8ce8e65..0000000
--- a/net/url_request/url_request_ftp_job.cc
+++ /dev/null
@@ -1,327 +0,0 @@
-// Copyright (c) 2012 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/url_request/url_request_ftp_job.h"
-
-#include "base/bind.h"
-#include "base/compiler_specific.h"
-#include "base/location.h"
-#include "base/metrics/histogram_macros.h"
-#include "base/single_thread_task_runner.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "net/base/auth.h"
-#include "net/base/host_port_pair.h"
-#include "net/base/load_flags.h"
-#include "net/base/net_errors.h"
-#include "net/ftp/ftp_auth_cache.h"
-#include "net/ftp/ftp_network_transaction.h"
-#include "net/ftp/ftp_response_info.h"
-#include "net/ftp/ftp_transaction_factory.h"
-#include "net/http/http_response_headers.h"
-#include "net/http/http_transaction_factory.h"
-#include "net/proxy_resolution/proxy_resolution_request.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_error_job.h"
-
-namespace net {
-
-class URLRequestFtpJob::AuthData {
- public:
-  AuthState state;  // Whether we need, have, or gave up on authentication.
-  AuthCredentials credentials;  // The credentials to use for auth.
-
-  AuthData();
-  ~AuthData();
-};
-
-URLRequestFtpJob::AuthData::AuthData() : state(AUTH_STATE_NEED_AUTH) {}
-
-URLRequestFtpJob::AuthData::~AuthData() = default;
-
-URLRequestFtpJob::URLRequestFtpJob(
-    URLRequest* request,
-    FtpTransactionFactory* ftp_transaction_factory,
-    FtpAuthCache* ftp_auth_cache)
-    : URLRequestJob(request),
-      proxy_resolution_service_(
-          request_->context()->proxy_resolution_service()),
-      read_in_progress_(false),
-      ftp_transaction_factory_(ftp_transaction_factory),
-      ftp_auth_cache_(ftp_auth_cache) {
-  DCHECK(proxy_resolution_service_);
-  DCHECK(ftp_transaction_factory);
-  DCHECK(ftp_auth_cache);
-}
-
-URLRequestFtpJob::~URLRequestFtpJob() {
-  Kill();
-}
-
-bool URLRequestFtpJob::IsSafeRedirect(const GURL& location) {
-  // Disallow all redirects.
-  return false;
-}
-
-bool URLRequestFtpJob::GetMimeType(std::string* mime_type) const {
-  // When auth has been cancelled, return a blank text/plain page instead of
-  // triggering a download.
-  if (auth_data_ && auth_data_->state == AUTH_STATE_CANCELED) {
-    *mime_type = "text/plain";
-    return true;
-  }
-
-  if (ftp_transaction_->GetResponseInfo()->is_directory_listing) {
-    *mime_type = "text/vnd.chromium.ftp-dir";
-    return true;
-  }
-
-  // FTP resources other than directory listings ought to be handled as raw
-  // binary data, not sniffed into HTML or etc.
-  *mime_type = "application/octet-stream";
-  return true;
-}
-
-IPEndPoint URLRequestFtpJob::GetResponseRemoteEndpoint() const {
-  if (!ftp_transaction_)
-    return IPEndPoint();
-  return ftp_transaction_->GetResponseInfo()->remote_endpoint;
-}
-
-void URLRequestFtpJob::Start() {
-  DCHECK(!proxy_resolve_request_);
-  DCHECK(!ftp_transaction_);
-
-  int rv = OK;
-  if (request_->load_flags() & LOAD_BYPASS_PROXY) {
-    proxy_info_.UseDirect();
-  } else {
-    DCHECK_EQ(request_->context()->proxy_resolution_service(),
-              proxy_resolution_service_);
-    // "Fine" to use an empty NetworkIsolationKey() because FTP is slated for
-    // removal.
-    rv = proxy_resolution_service_->ResolveProxy(
-        request_->url(), "GET", NetworkIsolationKey(), &proxy_info_,
-        base::BindOnce(&URLRequestFtpJob::OnResolveProxyComplete,
-                       base::Unretained(this)),
-        &proxy_resolve_request_, request_->net_log());
-
-    if (rv == ERR_IO_PENDING)
-      return;
-  }
-  OnResolveProxyComplete(rv);
-}
-
-void URLRequestFtpJob::Kill() {
-  if (proxy_resolve_request_) {
-    proxy_resolve_request_.reset();
-  }
-  if (ftp_transaction_)
-    ftp_transaction_.reset();
-  URLRequestJob::Kill();
-  weak_factory_.InvalidateWeakPtrs();
-}
-
-void URLRequestFtpJob::GetResponseInfo(HttpResponseInfo* info) {
-  // Don't expose the challenge if it has already been successfully
-  // authenticated.
-  if (!auth_data_ || auth_data_->state == AUTH_STATE_HAVE_AUTH)
-    return;
-
-  std::unique_ptr<AuthChallengeInfo> challenge = GetAuthChallengeInfo();
-  if (challenge)
-    info->auth_challenge = *challenge;
-}
-
-void URLRequestFtpJob::OnResolveProxyComplete(int result) {
-  proxy_resolve_request_ = nullptr;
-
-  if (result != OK) {
-    OnStartCompletedAsync(result);
-    return;
-  }
-
-  // Remove unsupported proxies from the list.
-  proxy_info_.RemoveProxiesWithoutScheme(ProxyServer::SCHEME_DIRECT);
-
-  if (proxy_info_.is_direct()) {
-    StartFtpTransaction();
-  } else {
-    OnStartCompletedAsync(ERR_NO_SUPPORTED_PROXIES);
-  }
-}
-
-void URLRequestFtpJob::StartFtpTransaction() {
-  // Create a transaction.
-  DCHECK(!ftp_transaction_);
-
-  ftp_request_info_.url = request_->url();
-  ftp_transaction_ = ftp_transaction_factory_->CreateTransaction();
-
-  int rv;
-  if (ftp_transaction_) {
-    rv = ftp_transaction_->Start(
-        &ftp_request_info_,
-        base::BindOnce(&URLRequestFtpJob::OnStartCompleted,
-                       base::Unretained(this)),
-        request_->net_log(), request_->traffic_annotation());
-    if (rv == ERR_IO_PENDING)
-      return;
-  } else {
-    rv = ERR_FAILED;
-  }
-  // The transaction started synchronously, but we need to notify the
-  // URLRequest delegate via the message loop.
-  OnStartCompletedAsync(rv);
-}
-
-void URLRequestFtpJob::OnStartCompleted(int result) {
-  if (result == OK) {
-    DCHECK(ftp_transaction_);
-
-    // FTP obviously doesn't have HTTP Content-Length header. We have to pass
-    // the content size information manually.
-    set_expected_content_size(
-        ftp_transaction_->GetResponseInfo()->expected_content_size);
-
-    if (auth_data_ && auth_data_->state == AUTH_STATE_HAVE_AUTH) {
-      LogFtpStartResult(FTPStartResult::kSuccessAuth);
-    } else {
-      LogFtpStartResult(FTPStartResult::kSuccessNoAuth);
-    }
-
-    NotifyHeadersComplete();
-  } else if (ftp_transaction_ /* May be null if creation fails. */ &&
-             ftp_transaction_->GetResponseInfo()->needs_auth) {
-    HandleAuthNeededResponse();
-  } else {
-    LogFtpStartResult(FTPStartResult::kFailed);
-    NotifyStartError(result);
-  }
-}
-
-void URLRequestFtpJob::OnStartCompletedAsync(int result) {
-  base::ThreadTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindOnce(&URLRequestFtpJob::OnStartCompleted,
-                                weak_factory_.GetWeakPtr(), result));
-}
-
-void URLRequestFtpJob::OnReadCompleted(int result) {
-  read_in_progress_ = false;
-  ReadRawDataComplete(result);
-}
-
-void URLRequestFtpJob::RestartTransactionWithAuth() {
-  DCHECK(auth_data_.get() && auth_data_->state == AUTH_STATE_HAVE_AUTH);
-
-  int rv = ftp_transaction_->RestartWithAuth(
-      auth_data_->credentials,
-      base::BindOnce(&URLRequestFtpJob::OnStartCompleted,
-                     base::Unretained(this)));
-  if (rv == ERR_IO_PENDING)
-    return;
-
-  OnStartCompletedAsync(rv);
-}
-
-LoadState URLRequestFtpJob::GetLoadState() const {
-  if (proxy_resolve_request_)
-    return proxy_resolve_request_->GetLoadState();
-  return ftp_transaction_ ? ftp_transaction_->GetLoadState() : LOAD_STATE_IDLE;
-}
-
-bool URLRequestFtpJob::NeedsAuth() {
-  return auth_data_.get() && auth_data_->state == AUTH_STATE_NEED_AUTH;
-}
-
-std::unique_ptr<AuthChallengeInfo> URLRequestFtpJob::GetAuthChallengeInfo() {
-  std::unique_ptr<AuthChallengeInfo> result =
-      std::make_unique<AuthChallengeInfo>();
-  result->is_proxy = false;
-  result->challenger = url::Origin::Create(request_->url());
-  // scheme, realm, path, and challenge are kept empty.
-  DCHECK(result->scheme.empty());
-  DCHECK(result->realm.empty());
-  DCHECK(result->challenge.empty());
-  DCHECK(result->path.empty());
-  return result;
-}
-
-void URLRequestFtpJob::SetAuth(const AuthCredentials& credentials) {
-  DCHECK(ftp_transaction_);
-  DCHECK(NeedsAuth());
-
-  auth_data_->state = AUTH_STATE_HAVE_AUTH;
-  auth_data_->credentials = credentials;
-
-  ftp_auth_cache_->Add(request_->url().GetOrigin(), auth_data_->credentials);
-
-  RestartTransactionWithAuth();
-}
-
-void URLRequestFtpJob::CancelAuth() {
-  DCHECK(ftp_transaction_);
-  DCHECK(NeedsAuth());
-
-  auth_data_->state = AUTH_STATE_CANCELED;
-
-  ftp_transaction_.reset();
-  NotifyHeadersComplete();
-}
-
-int URLRequestFtpJob::ReadRawData(IOBuffer* buf, int buf_size) {
-  DCHECK_NE(buf_size, 0);
-  DCHECK(!read_in_progress_);
-
-  if (!ftp_transaction_)
-    return 0;
-
-  int rv =
-      ftp_transaction_->Read(buf, buf_size,
-                             base::BindOnce(&URLRequestFtpJob::OnReadCompleted,
-                                            base::Unretained(this)));
-
-  if (rv == ERR_IO_PENDING)
-    read_in_progress_ = true;
-  return rv;
-}
-
-void URLRequestFtpJob::HandleAuthNeededResponse() {
-  GURL origin = request_->url().GetOrigin();
-
-  if (auth_data_.get()) {
-    if (auth_data_->state == AUTH_STATE_CANCELED) {
-      NotifyHeadersComplete();
-      return;
-    }
-
-    if (ftp_transaction_ && auth_data_->state == AUTH_STATE_HAVE_AUTH) {
-      ftp_auth_cache_->Remove(origin, auth_data_->credentials);
-
-      // The user entered invalid auth
-      LogFtpStartResult(FTPStartResult::kFailed);
-    }
-  } else {
-    auth_data_ = std::make_unique<AuthData>();
-  }
-  auth_data_->state = AUTH_STATE_NEED_AUTH;
-
-  FtpAuthCache::Entry* cached_auth = nullptr;
-  if (ftp_transaction_ && ftp_transaction_->GetResponseInfo()->needs_auth)
-    cached_auth = ftp_auth_cache_->Lookup(origin);
-  if (cached_auth) {
-    // Retry using cached auth data.
-    SetAuth(cached_auth->credentials);
-  } else {
-    // Prompt for a username/password.
-    NotifyHeadersComplete();
-  }
-}
-
-void URLRequestFtpJob::LogFtpStartResult(FTPStartResult result) {
-  UMA_HISTOGRAM_ENUMERATION("Net.FTP.StartResult", result);
-}
-
-}  // namespace net
diff --git a/net/url_request/url_request_ftp_job.h b/net/url_request/url_request_ftp_job.h
deleted file mode 100644
index 6a0b17d..0000000
--- a/net/url_request/url_request_ftp_job.h
+++ /dev/null
@@ -1,102 +0,0 @@
-// Copyright (c) 2012 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_URL_REQUEST_URL_REQUEST_FTP_JOB_H_
-#define NET_URL_REQUEST_URL_REQUEST_FTP_JOB_H_
-
-#include <memory>
-#include <string>
-
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "net/base/auth.h"
-#include "net/base/ip_endpoint.h"
-#include "net/base/net_export.h"
-#include "net/ftp/ftp_request_info.h"
-#include "net/ftp/ftp_transaction.h"
-#include "net/proxy_resolution/proxy_info.h"
-#include "net/proxy_resolution/proxy_resolution_service.h"
-#include "net/url_request/url_request_job.h"
-
-namespace net {
-
-// These values are persisted to logs. Entries should not be renumbered and
-// numeric values should never be reused.
-enum class FTPStartResult : int {
-  kSuccessNoAuth = 0,
-  kSuccessAuth = 1,
-  kFailed = 2,
-  kMaxValue = kFailed
-};
-
-class FtpAuthCache;
-class FtpTransactionFactory;
-class ProxyResolutionRequest;
-
-// A URLRequestJob subclass that is built on top of FtpTransaction. It
-// provides an implementation for FTP.
-class NET_EXPORT_PRIVATE URLRequestFtpJob : public URLRequestJob {
- public:
-  URLRequestFtpJob(URLRequest* request,
-                   FtpTransactionFactory* ftp_transaction_factory,
-                   FtpAuthCache* ftp_auth_cache);
-  ~URLRequestFtpJob() override;
-  void Start() override;
-
- protected:
-  // Overridden from URLRequestJob:
-  bool IsSafeRedirect(const GURL& location) override;
-  bool GetMimeType(std::string* mime_type) const override;
-  IPEndPoint GetResponseRemoteEndpoint() const override;
-  void Kill() override;
-  void GetResponseInfo(HttpResponseInfo* info) override;
-
- private:
-  class AuthData;
-
-  void OnResolveProxyComplete(int result);
-
-  void StartFtpTransaction();
-
-  void OnStartCompleted(int result);
-  void OnStartCompletedAsync(int result);
-  void OnReadCompleted(int result);
-
-  void RestartTransactionWithAuth();
-
-  // Overridden from URLRequestJob:
-  LoadState GetLoadState() const override;
-  bool NeedsAuth() override;
-  std::unique_ptr<AuthChallengeInfo> GetAuthChallengeInfo() override;
-  void SetAuth(const AuthCredentials& credentials) override;
-  void CancelAuth() override;
-
-  int ReadRawData(IOBuffer* buf, int buf_size) override;
-
-  void HandleAuthNeededResponse();
-
-  void LogFtpStartResult(FTPStartResult result);
-
-  ProxyResolutionService* proxy_resolution_service_;
-  ProxyInfo proxy_info_;
-  std::unique_ptr<ProxyResolutionRequest> proxy_resolve_request_;
-
-  FtpRequestInfo ftp_request_info_;
-  std::unique_ptr<FtpTransaction> ftp_transaction_;
-
-  bool read_in_progress_;
-
-  std::unique_ptr<AuthData> auth_data_;
-
-  FtpTransactionFactory* ftp_transaction_factory_;
-  FtpAuthCache* ftp_auth_cache_;
-
-  base::WeakPtrFactory<URLRequestFtpJob> weak_factory_{this};
-
-  DISALLOW_COPY_AND_ASSIGN(URLRequestFtpJob);
-};
-
-}  // namespace net
-
-#endif  // NET_URL_REQUEST_URL_REQUEST_FTP_JOB_H_
diff --git a/net/url_request/url_request_ftp_job_unittest.cc b/net/url_request/url_request_ftp_job_unittest.cc
deleted file mode 100644
index 62e4719a..0000000
--- a/net/url_request/url_request_ftp_job_unittest.cc
+++ /dev/null
@@ -1,245 +0,0 @@
-// 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.
-
-#include "net/url_request/url_request_ftp_job.h"
-
-#include <memory>
-
-#include "base/test/metrics/histogram_tester.h"
-#include "net/base/auth.h"
-#include "net/base/load_states.h"
-#include "net/base/net_errors.h"
-#include "net/base/request_priority.h"
-#include "net/ftp/ftp_auth_cache.h"
-#include "net/ftp/ftp_response_info.h"
-#include "net/ftp/ftp_transaction.h"
-#include "net/ftp/ftp_transaction_factory.h"
-#include "net/test/test_with_task_environment.h"
-#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
-#include "net/url_request/url_request_job_factory.h"
-#include "net/url_request/url_request_test_util.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace net {
-namespace {
-
-class MockFtpTransaction : public FtpTransaction {
- public:
-  MockFtpTransaction(int start_return_value,
-                     int read_return_value,
-                     bool needs_auth,
-                     std::vector<int> restart_return_values)
-      : start_return_value_(start_return_value),
-        read_return_value_(read_return_value),
-        restart_return_values_(restart_return_values),
-        restart_index_(0) {
-    response_.needs_auth = needs_auth;
-  }
-  ~MockFtpTransaction() override {}
-
-  int Start(const FtpRequestInfo* request_info,
-            CompletionOnceCallback callback,
-            const NetLogWithSource& net_log,
-            const NetworkTrafficAnnotationTag& traffic_annotation) override {
-    return start_return_value_;
-  }
-
-  int RestartWithAuth(const AuthCredentials& credentials,
-                      CompletionOnceCallback callback) override {
-    CHECK(restart_index_ < restart_return_values_.size());
-    return restart_return_values_[restart_index_++];
-  }
-
-  int Read(IOBuffer* buf,
-           int buf_len,
-           CompletionOnceCallback callback) override {
-    return read_return_value_;
-  }
-
-  const FtpResponseInfo* GetResponseInfo() const override { return &response_; }
-
-  LoadState GetLoadState() const override { return LOAD_STATE_IDLE; }
-
-  uint64_t GetUploadProgress() const override { return 0; }
-
- private:
-  FtpResponseInfo response_;
-  int start_return_value_;
-  int read_return_value_;
-  std::vector<int> restart_return_values_;
-  unsigned int restart_index_;
-
-  DISALLOW_COPY_AND_ASSIGN(MockFtpTransaction);
-};
-
-class MockFtpTransactionFactory : public FtpTransactionFactory {
- public:
-  MockFtpTransactionFactory(int start_return_value,
-                            int read_return_value,
-                            bool needs_auth,
-                            std::vector<int> restart_return_values)
-      : start_return_value_(start_return_value),
-        read_return_value_(read_return_value),
-        needs_auth_(needs_auth),
-        restart_return_values_(restart_return_values) {}
-
-  ~MockFtpTransactionFactory() override {}
-
-  std::unique_ptr<FtpTransaction> CreateTransaction() override {
-    return std::make_unique<MockFtpTransaction>(start_return_value_,
-                                                read_return_value_, needs_auth_,
-                                                restart_return_values_);
-  }
-
-  void Suspend(bool suspend) override {}
-
- private:
-  int start_return_value_;
-  int read_return_value_;
-  bool needs_auth_;
-  std::vector<int> restart_return_values_;
-
-  DISALLOW_COPY_AND_ASSIGN(MockFtpTransactionFactory);
-};
-
-class MockURLRequestFtpJobFactory : public URLRequestJobFactory {
- public:
-  MockURLRequestFtpJobFactory(int start_return_value,
-                              int read_return_value,
-                              bool needs_auth,
-                              std::vector<int> restart_return_values)
-      : auth_cache(new FtpAuthCache()),
-        factory(new MockFtpTransactionFactory(start_return_value,
-                                              read_return_value,
-                                              needs_auth,
-                                              restart_return_values)) {}
-
-  ~MockURLRequestFtpJobFactory() override {
-    delete auth_cache;
-    delete factory;
-  }
-
-  std::unique_ptr<URLRequestJob> CreateJob(URLRequest* request) const override {
-    return std::make_unique<URLRequestFtpJob>(request, factory, auth_cache);
-  }
-
-  bool IsSafeRedirectTarget(const GURL& location) const override {
-    return true;
-  }
-
- private:
-  FtpAuthCache* auth_cache;
-  MockFtpTransactionFactory* factory;
-
-  DISALLOW_COPY_AND_ASSIGN(MockURLRequestFtpJobFactory);
-};
-
-using UrlRequestFtpJobTest = TestWithTaskEnvironment;
-
-TEST_F(UrlRequestFtpJobTest, HistogramLogSuccessNoAuth) {
-  base::HistogramTester histograms;
-  MockURLRequestFtpJobFactory url_request_ftp_job_factory(OK, OK, false, {OK});
-  TestNetworkDelegate network_delegate;
-  TestURLRequestContext context(true);
-  context.set_network_delegate(&network_delegate);
-  context.set_job_factory(&url_request_ftp_job_factory);
-  context.Init();
-
-  TestDelegate test_delegate;
-  std::unique_ptr<URLRequest> r(context.CreateRequest(
-      GURL("ftp://example.test/"), RequestPriority::DEFAULT_PRIORITY,
-      &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
-
-  r->Start();
-  test_delegate.RunUntilComplete();
-
-  histograms.ExpectBucketCount("Net.FTP.StartResult",
-                               FTPStartResult::kSuccessNoAuth, 1);
-  histograms.ExpectBucketCount("Net.FTP.StartResult",
-                               FTPStartResult::kSuccessAuth, 0);
-  histograms.ExpectBucketCount("Net.FTP.StartResult", FTPStartResult::kFailed,
-                               0);
-}
-
-TEST_F(UrlRequestFtpJobTest, HistogramLogSuccessAuth) {
-  base::HistogramTester histograms;
-  MockURLRequestFtpJobFactory url_request_ftp_job_factory(
-      ERR_FAILED, ERR_FAILED, true, {OK});
-  TestNetworkDelegate network_delegate;
-  TestURLRequestContext context(true);
-  context.set_network_delegate(&network_delegate);
-  context.set_job_factory(&url_request_ftp_job_factory);
-  context.Init();
-
-  TestDelegate test_delegate;
-  test_delegate.set_credentials(AuthCredentials(u"user", u"pass"));
-  std::unique_ptr<URLRequest> r(context.CreateRequest(
-      GURL("ftp://example.test/"), RequestPriority::DEFAULT_PRIORITY,
-      &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
-
-  r->Start();
-  test_delegate.RunUntilComplete();
-
-  histograms.ExpectBucketCount("Net.FTP.StartResult",
-                               FTPStartResult::kSuccessNoAuth, 0);
-  histograms.ExpectBucketCount("Net.FTP.StartResult",
-                               FTPStartResult::kSuccessAuth, 1);
-  histograms.ExpectBucketCount("Net.FTP.StartResult", FTPStartResult::kFailed,
-                               0);
-}
-
-TEST_F(UrlRequestFtpJobTest, HistogramLogFailed) {
-  base::HistogramTester histograms;
-  MockURLRequestFtpJobFactory url_request_ftp_job_factory(
-      ERR_FAILED, ERR_FAILED, false, {ERR_FAILED});
-  TestNetworkDelegate network_delegate;
-  TestURLRequestContext context(true);
-  context.set_network_delegate(&network_delegate);
-  context.set_job_factory(&url_request_ftp_job_factory);
-  context.Init();
-
-  TestDelegate test_delegate;
-  std::unique_ptr<URLRequest> r(context.CreateRequest(
-      GURL("ftp://example.test/"), RequestPriority::DEFAULT_PRIORITY,
-      &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
-
-  r->Start();
-  test_delegate.RunUntilComplete();
-
-  histograms.ExpectBucketCount("Net.FTP.StartResult",
-                               FTPStartResult::kSuccessNoAuth, 0);
-  histograms.ExpectBucketCount("Net.FTP.StartResult",
-                               FTPStartResult::kSuccessAuth, 0);
-  histograms.ExpectBucketCount("Net.FTP.StartResult", FTPStartResult::kFailed,
-                               1);
-}
-
-TEST_F(UrlRequestFtpJobTest, HistogramLogFailedInvalidAuthThenSucceed) {
-  base::HistogramTester histograms;
-  MockURLRequestFtpJobFactory url_request_ftp_job_factory(
-      ERR_FAILED, ERR_FAILED, true, {ERR_ACCESS_DENIED, OK});
-  TestNetworkDelegate network_delegate;
-  TestURLRequestContext context(true);
-  context.set_network_delegate(&network_delegate);
-  context.set_job_factory(&url_request_ftp_job_factory);
-  context.Init();
-
-  TestDelegate test_delegate;
-  test_delegate.set_credentials(AuthCredentials(u"user", u"pass"));
-  std::unique_ptr<URLRequest> r(context.CreateRequest(
-      GURL("ftp://example.test/"), RequestPriority::DEFAULT_PRIORITY,
-      &test_delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
-
-  r->Start();
-  test_delegate.RunUntilComplete();
-
-  histograms.ExpectBucketCount("Net.FTP.StartResult",
-                               FTPStartResult::kSuccessNoAuth, 0);
-  histograms.ExpectBucketCount("Net.FTP.StartResult",
-                               FTPStartResult::kSuccessAuth, 1);
-  histograms.ExpectBucketCount("Net.FTP.StartResult", FTPStartResult::kFailed,
-                               1);
-}
-}  // namespace
-}  // namespace net
diff --git a/net/url_request/url_request_job_factory.cc b/net/url_request/url_request_job_factory.cc
index 8ff76c5..2e4d3505 100644
--- a/net/url_request/url_request_job_factory.cc
+++ b/net/url_request/url_request_job_factory.cc
@@ -20,9 +20,9 @@
 
 URLRequestInterceptor* g_interceptor_for_testing = nullptr;
 
-// TODO(mmenke): Once FTP support is removed, look into removing this class, and
-// URLRequestJobFactory::ProtocolHandlers completely. The only other subclass is
-// iOS-only.
+// TODO(mmenke): Look into removing this class and
+// URLRequestJobFactory::ProtocolHandlers completely. The only other subclass
+// is iOS-only.
 class HttpProtocolHandler : public URLRequestJobFactory::ProtocolHandler {
  public:
   HttpProtocolHandler() = default;
diff --git a/net/url_request/url_request_test_util.h b/net/url_request/url_request_test_util.h
index d96034a..06185d6 100644
--- a/net/url_request/url_request_test_util.h
+++ b/net/url_request/url_request_test_util.h
@@ -31,7 +31,6 @@
 #include "net/cookies/cookie_monster.h"
 #include "net/cookies/same_party_context.h"
 #include "net/disk_cache/disk_cache.h"
-#include "net/ftp/ftp_network_layer.h"
 #include "net/http/http_auth_handler_factory.h"
 #include "net/http/http_cache.h"
 #include "net/http/http_network_layer.h"
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index 786fb06..1917fb7 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -149,12 +149,6 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "url/url_util.h"
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT) && !defined(OS_ANDROID)
-#include "net/ftp/ftp_auth_cache.h"
-#include "net/ftp/ftp_network_layer.h"
-#include "net/url_request/ftp_protocol_handler.h"
-#endif
-
 #if defined(OS_WIN)
 #include "base/win/scoped_com_initializer.h"
 #endif
@@ -197,12 +191,6 @@
 const base::FilePath::CharType kTestFilePath[] =
     FILE_PATH_LITERAL("net/data/url_request_unittest");
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT) && !defined(OS_ANDROID) && \
-    !defined(OS_FUCHSIA)
-// Test file used in most FTP tests.
-const char kFtpTestFile[] = "BullRunSpeech.txt";
-#endif
-
 // Tests load timing information in the case a fresh connection was used, with
 // no proxy.
 void TestLoadTimingNotReused(const LoadTimingInfo& load_timing_info,
@@ -304,29 +292,6 @@
   EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null());
 }
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT) && !defined(OS_ANDROID) && \
-    !defined(OS_FUCHSIA)
-// Tests load timing in the case that there is no HTTP response.  This can be
-// used to test in the case of errors or non-HTTP requests.
-void TestLoadTimingNoHttpResponse(const LoadTimingInfo& load_timing_info) {
-  EXPECT_FALSE(load_timing_info.socket_reused);
-  EXPECT_EQ(NetLogSource::kInvalidId, load_timing_info.socket_log_id);
-
-  // Only the request times should be non-null.
-  EXPECT_FALSE(load_timing_info.request_start_time.is_null());
-  EXPECT_FALSE(load_timing_info.request_start.is_null());
-
-  ExpectConnectTimingHasNoTimes(load_timing_info.connect_timing);
-
-  EXPECT_TRUE(load_timing_info.proxy_resolve_start.is_null());
-  EXPECT_TRUE(load_timing_info.proxy_resolve_end.is_null());
-  EXPECT_TRUE(load_timing_info.send_start.is_null());
-  EXPECT_TRUE(load_timing_info.send_end.is_null());
-  EXPECT_TRUE(load_timing_info.receive_headers_start.is_null());
-  EXPECT_TRUE(load_timing_info.receive_headers_end.is_null());
-}
-#endif
-
 // Job that allows monitoring of its priority.
 class PriorityMonitoringURLRequestJob : public URLRequestTestJob {
  public:
@@ -11672,404 +11637,6 @@
 }
 #endif  // !defined(OS_IOS)
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT) && !defined(OS_ANDROID) && \
-    !defined(OS_FUCHSIA)
-// FTP uses a second TCP connection with the port number allocated dynamically
-// on the server side, so it would be hard to make RemoteTestServer proxy FTP
-// connections reliably. FTP tests are disabled on platforms that use
-// RemoteTestServer. See http://crbug.com/495220
-class URLRequestTestFTP : public URLRequestTest {
- public:
-  URLRequestTestFTP()
-      : ftp_test_server_(SpawnedTestServer::TYPE_FTP,
-                         base::FilePath(kTestFilePath)) {
-    // Can't use |default_context_|'s HostResolver to set up the
-    // FTPTransactionFactory because it hasn't been created yet.
-    default_context().set_host_resolver(&host_resolver_);
-  }
-
-  // URLRequestTest interface:
-  void SetUpFactory() override {
-    // Add FTP support to the default URLRequestContext.
-    job_factory_->SetProtocolHandler(
-        "ftp", FtpProtocolHandler::Create(&host_resolver_, &ftp_auth_cache_));
-  }
-
-  std::string GetTestFileContents() {
-    base::FilePath path;
-    EXPECT_TRUE(base::PathService::Get(base::DIR_SOURCE_ROOT, &path));
-    path = path.Append(kTestFilePath);
-    path = path.AppendASCII(kFtpTestFile);
-    std::string contents;
-    EXPECT_TRUE(base::ReadFileToString(path, &contents));
-    return contents;
-  }
-
- protected:
-  MockHostResolver host_resolver_;
-  FtpAuthCache ftp_auth_cache_;
-
-  SpawnedTestServer ftp_test_server_;
-};
-
-// Make sure an FTP request using an unsafe ports fails.
-TEST_F(URLRequestTestFTP, UnsafePort) {
-  GURL url("ftp://127.0.0.1:7");
-
-  TestDelegate d;
-  {
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        url, DEFAULT_PRIORITY, &d, TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d.RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(ERR_UNSAFE_PORT, d.request_status());
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPDirectoryListing) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  TestDelegate d;
-  {
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURL("/"), DEFAULT_PRIORITY, &d,
-        TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d.RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d.response_started_count());
-    EXPECT_FALSE(d.received_data_before_response());
-    EXPECT_LT(0, d.bytes_received());
-    EXPECT_EQ(ftp_test_server_.host_port_pair().host(),
-              r->GetResponseRemoteEndpoint().ToStringWithoutPort());
-    EXPECT_EQ(ftp_test_server_.host_port_pair().port(),
-              r->GetResponseRemoteEndpoint().port());
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPGetTestAnonymous) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  TestDelegate d;
-  {
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURL(kFtpTestFile), DEFAULT_PRIORITY, &d,
-        TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d.RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d.response_started_count());
-    EXPECT_FALSE(d.received_data_before_response());
-    EXPECT_EQ(GetTestFileContents(), d.data_received());
-    EXPECT_EQ(ftp_test_server_.host_port_pair().host(),
-              r->GetResponseRemoteEndpoint().ToStringWithoutPort());
-    EXPECT_EQ(ftp_test_server_.host_port_pair().port(),
-              r->GetResponseRemoteEndpoint().port());
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPMimeType) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  struct {
-    const char* path;
-    const char* mime;
-  } test_cases[] = {
-      {"/", "text/vnd.chromium.ftp-dir"},
-      {kFtpTestFile, "application/octet-stream"},
-  };
-
-  for (const auto test : test_cases) {
-    TestDelegate d;
-
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURL(test.path), DEFAULT_PRIORITY, &d,
-        TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d.RunUntilComplete();
-
-    std::string mime;
-    r->GetMimeType(&mime);
-    EXPECT_EQ(test.mime, mime);
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPGetTest) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  TestDelegate d;
-  {
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURLWithUserAndPassword(kFtpTestFile, "chrome",
-                                                   "chrome"),
-        DEFAULT_PRIORITY, &d, TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d.RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d.response_started_count());
-    EXPECT_FALSE(d.received_data_before_response());
-    EXPECT_EQ(GetTestFileContents(), d.data_received());
-    EXPECT_EQ(ftp_test_server_.host_port_pair().host(),
-              r->GetResponseRemoteEndpoint().ToStringWithoutPort());
-    EXPECT_EQ(ftp_test_server_.host_port_pair().port(),
-              r->GetResponseRemoteEndpoint().port());
-
-    LoadTimingInfo load_timing_info;
-    r->GetLoadTimingInfo(&load_timing_info);
-    TestLoadTimingNoHttpResponse(load_timing_info);
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPCheckWrongPassword) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  TestDelegate d;
-  {
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURLWithUserAndPassword(kFtpTestFile, "chrome",
-                                                   "wrong_password"),
-        DEFAULT_PRIORITY, &d, TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d.RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d.response_started_count());
-    EXPECT_FALSE(d.received_data_before_response());
-    EXPECT_EQ(d.bytes_received(), 0);
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPCheckWrongPasswordRestart) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  TestDelegate d;
-  // Set correct login credentials. The delegate will be asked for them when
-  // the initial login with wrong credentials will fail.
-  d.set_credentials(AuthCredentials(kChrome, kChrome));
-  {
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURLWithUserAndPassword(kFtpTestFile, "chrome",
-                                                   "wrong_password"),
-        DEFAULT_PRIORITY, &d, TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d.RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d.response_started_count());
-    EXPECT_FALSE(d.received_data_before_response());
-    EXPECT_EQ(GetTestFileContents(), d.data_received());
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPCheckWrongUser) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  TestDelegate d;
-  {
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURLWithUserAndPassword(kFtpTestFile, "wrong_user",
-                                                   "chrome"),
-        DEFAULT_PRIORITY, &d, TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d.RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d.response_started_count());
-    EXPECT_FALSE(d.received_data_before_response());
-    EXPECT_EQ(0, d.bytes_received());
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPCheckWrongUserRestart) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  TestDelegate d;
-  // Set correct login credentials. The delegate will be asked for them when
-  // the initial login with wrong credentials will fail.
-  d.set_credentials(AuthCredentials(kChrome, kChrome));
-  {
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURLWithUserAndPassword(kFtpTestFile, "wrong_user",
-                                                   "chrome"),
-        DEFAULT_PRIORITY, &d, TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d.RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d.response_started_count());
-    EXPECT_FALSE(d.received_data_before_response());
-    EXPECT_EQ(GetTestFileContents(), d.data_received());
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPCacheURLCredentials) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  std::unique_ptr<TestDelegate> d(new TestDelegate);
-  {
-    // Pass correct login identity in the URL.
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURLWithUserAndPassword(kFtpTestFile, "chrome",
-                                                   "chrome"),
-        DEFAULT_PRIORITY, d.get(), TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d->RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d->response_started_count());
-    EXPECT_FALSE(d->received_data_before_response());
-    EXPECT_EQ(GetTestFileContents(), d->data_received());
-  }
-
-  d = std::make_unique<TestDelegate>();
-  {
-    // This request should use cached identity from previous request.
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURL(kFtpTestFile), DEFAULT_PRIORITY, d.get(),
-        TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d->RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d->response_started_count());
-    EXPECT_FALSE(d->received_data_before_response());
-    EXPECT_EQ(GetTestFileContents(), d->data_received());
-  }
-}
-
-TEST_F(URLRequestTestFTP, FTPCacheLoginBoxCredentials) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  std::unique_ptr<TestDelegate> d(new TestDelegate);
-  // Set correct login credentials. The delegate will be asked for them when
-  // the initial login with wrong credentials will fail.
-  d->set_credentials(AuthCredentials(kChrome, kChrome));
-  {
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURLWithUserAndPassword(kFtpTestFile, "chrome",
-                                                   "wrong_password"),
-        DEFAULT_PRIORITY, d.get(), TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d->RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d->response_started_count());
-    EXPECT_FALSE(d->received_data_before_response());
-    EXPECT_EQ(GetTestFileContents(), d->data_received());
-  }
-
-  // Use a new delegate without explicit credentials. The cached ones should be
-  // used.
-  d = std::make_unique<TestDelegate>();
-  {
-    // Don't pass wrong credentials in the URL, they would override valid cached
-    // ones.
-    std::unique_ptr<URLRequest> r(default_context().CreateRequest(
-        ftp_test_server_.GetURL(kFtpTestFile), DEFAULT_PRIORITY, d.get(),
-        TRAFFIC_ANNOTATION_FOR_TESTS));
-    r->Start();
-    EXPECT_TRUE(r->is_pending());
-
-    d->RunUntilComplete();
-
-    EXPECT_FALSE(r->is_pending());
-    EXPECT_EQ(1, d->response_started_count());
-    EXPECT_FALSE(d->received_data_before_response());
-    EXPECT_EQ(GetTestFileContents(), d->data_received());
-  }
-}
-
-TEST_F(URLRequestTestFTP, RawBodyBytes) {
-  ASSERT_TRUE(ftp_test_server_.Start());
-
-  TestDelegate d;
-  std::unique_ptr<URLRequest> req(default_context().CreateRequest(
-      ftp_test_server_.GetURL("simple.html"), DEFAULT_PRIORITY, &d,
-      TRAFFIC_ANNOTATION_FOR_TESTS));
-  req->Start();
-  d.RunUntilComplete();
-
-  EXPECT_EQ(6, req->GetRawBodyBytes());
-}
-
-TEST_F(URLRequestTestFTP, FtpAuthCancellation) {
-  ftp_test_server_.set_no_anonymous_ftp_user(true);
-  ASSERT_TRUE(ftp_test_server_.Start());
-  TestDelegate d;
-  std::unique_ptr<URLRequest> req(default_context().CreateRequest(
-      ftp_test_server_.GetURL("simple.html"), DEFAULT_PRIORITY, &d,
-      TRAFFIC_ANNOTATION_FOR_TESTS));
-  req->Start();
-  d.RunUntilComplete();
-
-  ASSERT_TRUE(d.auth_required_called());
-  EXPECT_EQ(OK, d.request_status());
-  EXPECT_TRUE(req->auth_challenge_info());
-  std::string mime_type;
-  req->GetMimeType(&mime_type);
-  EXPECT_EQ("text/plain", mime_type);
-  EXPECT_EQ("", d.data_received());
-  EXPECT_EQ(-1, req->GetExpectedContentSize());
-}
-
-class URLRequestTestFTPOverHttpProxy : public URLRequestTestFTP {
- public:
-  // Test interface:
-  void SetUp() override {
-    proxy_resolution_service_ = ConfiguredProxyResolutionService::CreateFixed(
-        "localhost", TRAFFIC_ANNOTATION_FOR_TESTS);
-    default_context_->set_proxy_resolution_service(
-        proxy_resolution_service_.get());
-    URLRequestTestFTP::SetUp();
-  }
-
- private:
-  std::unique_ptr<ProxyResolutionService> proxy_resolution_service_;
-};
-
-// Check that FTP is not supported over an HTTP proxy.
-TEST_F(URLRequestTestFTPOverHttpProxy, Fails) {
-  TestDelegate delegate;
-  std::unique_ptr<URLRequest> request(
-      default_context_->CreateRequest(GURL("ftp://foo.test/"), DEFAULT_PRIORITY,
-                                      &delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
-  request->Start();
-  delegate.RunUntilComplete();
-
-  EXPECT_THAT(delegate.request_status(), IsError(ERR_NO_SUPPORTED_PROXIES));
-}
-
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
 TEST_F(URLRequestTest, NetworkAccessedSetOnHostResolutionFailure) {
   MockHostResolver host_resolver;
   TestNetworkDelegate network_delegate;  // Must outlive URLRequest.
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
index 7c64f63..5e67f3c 100644
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -129,10 +129,6 @@
 #include "services/network/sct_auditing/sct_auditing_cache.h"
 #endif  // BUILDFLAG(IS_CT_SUPPORTED)
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-#include "net/ftp/ftp_auth_cache.h"
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 #include "services/network/cert_verifier_with_trust_anchors.h"
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -1819,26 +1815,16 @@
     const net::NetworkIsolationKey& network_isolation_key,
     const net::AuthCredentials& credentials,
     AddAuthCacheEntryCallback callback) {
-  if (challenge.challenger.scheme() == url::kFtpScheme) {
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-    net::FtpAuthCache* auth_cache = url_request_context_->ftp_auth_cache();
-    auth_cache->Add(challenge.challenger.GetURL(), credentials);
-#else
-    NOTREACHED();
-#endif  // BUILDFLAG(DISABLE_FTP_SUPPORT)
-  } else {
-    net::HttpAuthCache* http_auth_cache =
-        url_request_context_->http_transaction_factory()
-            ->GetSession()
-            ->http_auth_cache();
-    http_auth_cache->Add(challenge.challenger.GetURL(),
-                         challenge.is_proxy ? net::HttpAuth::AUTH_PROXY
-                                            : net::HttpAuth::AUTH_SERVER,
-                         challenge.realm,
-                         net::HttpAuth::StringToScheme(challenge.scheme),
-                         network_isolation_key, challenge.challenge,
-                         credentials, challenge.path);
-  }
+  net::HttpAuthCache* http_auth_cache =
+      url_request_context_->http_transaction_factory()
+          ->GetSession()
+          ->http_auth_cache();
+  http_auth_cache->Add(
+      challenge.challenger.GetURL(),
+      challenge.is_proxy ? net::HttpAuth::AUTH_PROXY
+                         : net::HttpAuth::AUTH_SERVER,
+      challenge.realm, net::HttpAuth::StringToScheme(challenge.scheme),
+      network_isolation_key, challenge.challenge, credentials, challenge.path);
   std::move(callback).Run();
 }
 
@@ -2174,12 +2160,6 @@
   }
   builder.set_hsts_policy_bypass_list(params_->hsts_policy_bypass_list);
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  builder.set_ftp_enabled(params_->enable_ftp_url_support);
-#else  // BUILDFLAG(DISABLE_FTP_SUPPORT)
-  DCHECK(!params_->enable_ftp_url_support);
-#endif
-
 #if BUILDFLAG(ENABLE_REPORTING)
   bool reporting_enabled = base::FeatureList::IsEnabled(features::kReporting);
   if (reporting_enabled) {
diff --git a/services/network/network_context_unittest.cc b/services/network/network_context_unittest.cc
index 32b90b7..5d6734dc 100644
--- a/services/network/network_context_unittest.cc
+++ b/services/network/network_context_unittest.cc
@@ -140,10 +140,6 @@
 #include "url/scheme_host_port.h"
 #include "url/url_constants.h"
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-#include "net/ftp/ftp_auth_cache.h"
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
 #if BUILDFLAG(IS_CT_SUPPORTED)
 #include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
 #include "services/network/public/mojom/ct_log_info.mojom.h"
@@ -671,8 +667,7 @@
       GURL("file:///not/a/path/that/leads/anywhere/but/it/should/not/matter/"
            "anyways"),
 
-      // FTP is handled by the network service on some platforms, but support
-      // for it is not enabled by default.
+      // FTP is not supported natively by Chrome.
       GURL("ftp://foo.test/"),
   };
 
@@ -6069,37 +6064,6 @@
   EXPECT_EQ("None", response_body);
 }
 
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-TEST_F(NetworkContextTest, AddFtpAuthCacheEntry) {
-  GURL url("ftp://example.test/");
-  const char16_t kUsername[] = u"test_user";
-  const char16_t kPassword[] = u"test_pass";
-  mojom::NetworkContextParamsPtr params =
-      CreateNetworkContextParamsForTesting();
-  params->enable_ftp_url_support = true;
-  std::unique_ptr<NetworkContext> network_context =
-      CreateContextWithParams(std::move(params));
-  net::AuthChallengeInfo challenge;
-  challenge.is_proxy = false;
-  challenge.challenger = url::Origin::Create(url);
-
-  ASSERT_TRUE(network_context->url_request_context()->ftp_auth_cache());
-  ASSERT_FALSE(
-      network_context->url_request_context()->ftp_auth_cache()->Lookup(url));
-  base::RunLoop run_loop;
-  network_context->AddAuthCacheEntry(challenge, net::NetworkIsolationKey(),
-                                     net::AuthCredentials(kUsername, kPassword),
-                                     run_loop.QuitClosure());
-  run_loop.Run();
-  net::FtpAuthCache::Entry* entry =
-      network_context->url_request_context()->ftp_auth_cache()->Lookup(url);
-  ASSERT_TRUE(entry);
-  EXPECT_EQ(url, entry->origin);
-  EXPECT_EQ(kUsername, entry->credentials.username());
-  EXPECT_EQ(kPassword, entry->credentials.password());
-}
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
 #if BUILDFLAG(IS_CT_SUPPORTED)
 TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
   // Configure CT logs in network service.
diff --git a/services/network/public/cpp/cross_origin_opener_policy.cc b/services/network/public/cpp/cross_origin_opener_policy.cc
index bc45fe5..753266ba 100644
--- a/services/network/public/cpp/cross_origin_opener_policy.cc
+++ b/services/network/public/cpp/cross_origin_opener_policy.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "services/network/public/cpp/cross_origin_opener_policy.h"
+#include "services/network/public/cpp/cross_origin_embedder_policy.h"
 
 namespace network {
 
@@ -55,4 +56,22 @@
   }
 }
 
+void AugmentCoopWithCoep(CrossOriginOpenerPolicy* coop,
+                         const CrossOriginEmbedderPolicy& coep) {
+  // COOP:
+  if (coop->value == mojom::CrossOriginOpenerPolicyValue::kSameOrigin &&
+      CompatibleWithCrossOriginIsolated(coep.value)) {
+    coop->value = mojom::CrossOriginOpenerPolicyValue::kSameOriginPlusCoep;
+  }
+
+  // COOP-Report-Only:
+  if (coop->report_only_value ==
+          mojom::CrossOriginOpenerPolicyValue::kSameOrigin &&
+      (CompatibleWithCrossOriginIsolated(coep.value) ||
+       CompatibleWithCrossOriginIsolated(coep.report_only_value))) {
+    coop->report_only_value =
+        mojom::CrossOriginOpenerPolicyValue::kSameOriginPlusCoep;
+  }
+}
+
 }  // namespace network
diff --git a/services/network/public/cpp/cross_origin_opener_policy.h b/services/network/public/cpp/cross_origin_opener_policy.h
index 22c02de..31be1f6 100644
--- a/services/network/public/cpp/cross_origin_opener_policy.h
+++ b/services/network/public/cpp/cross_origin_opener_policy.h
@@ -12,6 +12,7 @@
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace network {
+struct CrossOriginEmbedderPolicy;
 
 // This corresponds to network::mojom::CrossOriginOpenerPolicy.
 // See the comments there.
@@ -38,6 +39,10 @@
 COMPONENT_EXPORT(NETWORK_CPP_BASE)
 const char* CoopAccessReportTypeToString(mojom::CoopAccessReportType type);
 
+COMPONENT_EXPORT(NETWORK_CPP_BASE)
+void AugmentCoopWithCoep(CrossOriginOpenerPolicy* coop,
+                         const CrossOriginEmbedderPolicy& coep);
+
 }  // namespace network
 
 #endif  // SERVICES_NETWORK_PUBLIC_CPP_CROSS_ORIGIN_OPENER_POLICY_H_
diff --git a/services/network/public/cpp/cross_origin_opener_policy_parser.cc b/services/network/public/cpp/cross_origin_opener_policy_parser.cc
index 4f9e9c79..81b20b10 100644
--- a/services/network/public/cpp/cross_origin_opener_policy_parser.cc
+++ b/services/network/public/cpp/cross_origin_opener_policy_parser.cc
@@ -8,7 +8,6 @@
 #include "base/strings/string_util.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/structured_headers.h"
-#include "services/network/public/cpp/cross_origin_embedder_policy.h"
 #include "services/network/public/cpp/cross_origin_opener_policy.h"
 #include "services/network/public/cpp/features.h"
 
@@ -52,8 +51,7 @@
 }  // namespace
 
 CrossOriginOpenerPolicy ParseCrossOriginOpenerPolicy(
-    const net::HttpResponseHeaders& headers,
-    const CrossOriginEmbedderPolicy& coep) {
+    const net::HttpResponseHeaders& headers) {
   CrossOriginOpenerPolicy coop;
 
   // This is the single line of code disabling COOP globally.
@@ -66,10 +64,6 @@
   if (headers.GetNormalizedHeader(kCrossOriginOpenerPolicyHeader,
                                   &header_value)) {
     std::tie(coop.value, coop.reporting_endpoint) = ParseHeader(header_value);
-    if (coop.value == mojom::CrossOriginOpenerPolicyValue::kSameOrigin &&
-        CompatibleWithCrossOriginIsolated(coep.value)) {
-      coop.value = mojom::CrossOriginOpenerPolicyValue::kSameOriginPlusCoep;
-    }
   } else if (base::FeatureList::IsEnabled(
                  features::kCrossOriginOpenerPolicyByDefault)) {
     coop.value = mojom::CrossOriginOpenerPolicyValue::kSameOriginAllowPopups;
@@ -80,13 +74,6 @@
                                   &header_value)) {
     std::tie(coop.report_only_value, coop.report_only_reporting_endpoint) =
         ParseHeader(header_value);
-    if (coop.report_only_value ==
-            mojom::CrossOriginOpenerPolicyValue::kSameOrigin &&
-        (CompatibleWithCrossOriginIsolated(coep.value) ||
-         CompatibleWithCrossOriginIsolated(coep.report_only_value))) {
-      coop.report_only_value =
-          mojom::CrossOriginOpenerPolicyValue::kSameOriginPlusCoep;
-    }
   }
 
   return coop;
diff --git a/services/network/public/cpp/cross_origin_opener_policy_parser.h b/services/network/public/cpp/cross_origin_opener_policy_parser.h
index d8553c0..e9a62d8 100644
--- a/services/network/public/cpp/cross_origin_opener_policy_parser.h
+++ b/services/network/public/cpp/cross_origin_opener_policy_parser.h
@@ -13,7 +13,6 @@
 
 namespace network {
 
-struct CrossOriginEmbedderPolicy;
 struct CrossOriginOpenerPolicy;
 
 // Parsing is done following the COOP spec draft:
@@ -22,8 +21,7 @@
 // services/network/content_security_policy_fuzzer.cc for an example.
 COMPONENT_EXPORT(NETWORK_CPP)
 CrossOriginOpenerPolicy ParseCrossOriginOpenerPolicy(
-    const net::HttpResponseHeaders& headers,
-    const CrossOriginEmbedderPolicy& coep);
+    const net::HttpResponseHeaders& headers);
 
 }  // namespace network
 
diff --git a/services/network/public/cpp/cross_origin_opener_policy_parser_unittest.cc b/services/network/public/cpp/cross_origin_opener_policy_parser_unittest.cc
index b2d8fa1..587ac0b 100644
--- a/services/network/public/cpp/cross_origin_opener_policy_parser_unittest.cc
+++ b/services/network/public/cpp/cross_origin_opener_policy_parser_unittest.cc
@@ -12,7 +12,6 @@
 #include "services/network/public/cpp/cross_origin_embedder_policy.h"
 #include "services/network/public/cpp/cross_origin_opener_policy.h"
 #include "services/network/public/cpp/features.h"
-#include "services/network/public/mojom/cross_origin_embedder_policy.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace network {
@@ -194,24 +193,25 @@
       headers->AddHeader("cross-origin-opener-policy-report-only",
                          *test_case.raw_coop_report_only_string);
     }
+
+    auto coop = ParseCrossOriginOpenerPolicy(*headers);
+
     network::CrossOriginEmbedderPolicy coep;
     coep.value = test_case.coep_value;
     coep.report_only_value = test_case.coep_report_only_value;
+    AugmentCoopWithCoep(&coop, coep);
 
-    auto parsed_policy = ParseCrossOriginOpenerPolicy(*headers, coep);
-    EXPECT_EQ(test_case.expected_endpoint, parsed_policy.reporting_endpoint);
-    EXPECT_EQ(test_case.expected_policy, parsed_policy.value);
+    EXPECT_EQ(test_case.expected_endpoint, coop.reporting_endpoint);
+    EXPECT_EQ(test_case.expected_policy, coop.value);
     EXPECT_EQ(test_case.expected_endpoit_report_only,
-              parsed_policy.report_only_reporting_endpoint);
-    EXPECT_EQ(test_case.expected_policy_report_only,
-              parsed_policy.report_only_value);
+              coop.report_only_reporting_endpoint);
+    EXPECT_EQ(test_case.expected_policy_report_only, coop.report_only_value);
   }
 }
 
 TEST(CrossOriginOpenerPolicyTest, Default) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndEnableFeature(features::kCrossOriginOpenerPolicy);
-  network::CrossOriginEmbedderPolicy coep;
 
   // If no COOP header is specified:
   scoped_refptr<net::HttpResponseHeaders> headers(
@@ -219,7 +219,7 @@
 
   // Then we have no policy enforced by default:
   network::CrossOriginOpenerPolicy parsed_policy =
-      ParseCrossOriginOpenerPolicy(*headers, coep);
+      ParseCrossOriginOpenerPolicy(*headers);
   EXPECT_EQ(absl::nullopt, parsed_policy.reporting_endpoint);
   EXPECT_EQ(mojom::CrossOriginOpenerPolicyValue::kUnsafeNone,
             parsed_policy.value);
@@ -234,7 +234,6 @@
       {features::kCrossOriginOpenerPolicy,
        features::kCrossOriginOpenerPolicyByDefault},
       {});
-  network::CrossOriginEmbedderPolicy coep;
 
   // If no COOP header is specified:
   scoped_refptr<net::HttpResponseHeaders> headers(
@@ -243,7 +242,7 @@
   // Then we have `same-origin-allow-popups` as enforced by default, but no
   // policy reported on by default:
   network::CrossOriginOpenerPolicy parsed_policy =
-      ParseCrossOriginOpenerPolicy(*headers, coep);
+      ParseCrossOriginOpenerPolicy(*headers);
   EXPECT_EQ(absl::nullopt, parsed_policy.reporting_endpoint);
   EXPECT_EQ(mojom::CrossOriginOpenerPolicyValue::kSameOriginAllowPopups,
             parsed_policy.value);
diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc
index ff86040..9ff7a48 100644
--- a/services/network/public/cpp/parsed_headers.cc
+++ b/services/network/public/cpp/parsed_headers.cc
@@ -35,8 +35,8 @@
 
   parsed_headers->cross_origin_embedder_policy =
       ParseCrossOriginEmbedderPolicy(*headers);
-  parsed_headers->cross_origin_opener_policy = ParseCrossOriginOpenerPolicy(
-      *headers, parsed_headers->cross_origin_embedder_policy);
+  parsed_headers->cross_origin_opener_policy =
+      ParseCrossOriginOpenerPolicy(*headers);
 
   std::string origin_agent_cluster;
   if (headers->GetNormalizedHeader("Origin-Agent-Cluster",
diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network/public/cpp/simple_url_loader.cc
index 4d2f1c6f..6464a865 100644
--- a/services/network/public/cpp/simple_url_loader.cc
+++ b/services/network/public/cpp/simple_url_loader.cc
@@ -1615,7 +1615,7 @@
 
   // Assume a 200 response unless headers were received indicating otherwise.
   // No headers indicates this was not a real HTTP response (Could be a file
-  // URL, FTP, response could have been provided by something else, etc).
+  // URL, chrome URL, response could have been provided by something else, etc).
   int response_code = 200;
   if (response_head->headers)
     response_code = response_head->headers->response_code();
diff --git a/services/network/public/cpp/url_util.cc b/services/network/public/cpp/url_util.cc
index 5e279ae..f41b8934 100644
--- a/services/network/public/cpp/url_util.cc
+++ b/services/network/public/cpp/url_util.cc
@@ -4,25 +4,12 @@
 
 #include "services/network/public/cpp/url_util.h"
 
-#include "base/feature_list.h"
-#include "build/build_config.h"
-#include "net/net_buildflags.h"
-#include "services/network/public/cpp/features.h"
-#include "services/network/public/cpp/is_potentially_trustworthy.h"
 #include "url/gurl.h"
-#include "url/url_constants.h"
 
 namespace network {
 
 bool IsURLHandledByNetworkService(const GURL& url) {
-  if (url.SchemeIsHTTPOrHTTPS() || url.SchemeIsWSOrWSS())
-    return true;
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  if (url.SchemeIs(url::kFtpScheme) &&
-      base::FeatureList::IsEnabled(features::kFtpProtocol))
-    return true;
-#endif
-  return false;
+  return (url.SchemeIsHTTPOrHTTPS() || url.SchemeIsWSOrWSS());
 }
 
 }  // namespace network
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
index 409b43c..7bfe3696 100644
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -272,10 +272,6 @@
   // used to fetch PAC scripts. Note that currently data URLs are always enabled
   // and file URLs are always disabled.
 
-  // True if ftp URLs should be supported.
-  // Must be false if built without FTP support.
-  bool enable_ftp_url_support = false;
-
   // Whether or not to check the Android platform's cleartext policy for
   // requests. Under some conditions, Android may advise us to block cleartext
   // traffic.
@@ -1263,14 +1259,12 @@
   LoadHttpAuthCacheProxyEntries(mojo_base.mojom.UnguessableToken cache_key)
       => ();
 
-  // Adds an entry to the HttpAuthCache or FtpAuthCache (determined by whether
-  // the |challenger| field within |challenge| is an ftp:// URL).
-  // |network_isolation_key| is the NetworkIsolationKey to restrict the
-  // credentials to, and is only respected for server (not proxy) HTTP auth
-  // and only when the NetworkService was configured to split the auth cache by
-  // NetworkIsolationKey. |challenge| may not necessarily contain a stateful
-  // challenge that requires a persistent connection, allowing the cache to be
-  // pre-populated.
+  // Adds an entry to the HttpAuthCache. |network_isolation_key| is the
+  // NetworkIsolationKey to restrict the credentials to, and is only respected
+  // for server (not proxy) HTTP auth and only when the NetworkService was
+  // configured to split the auth cache by NetworkIsolationKey. |challenge|
+  // may not necessarily contain a stateful challenge that requires a persistent
+  // connection, allowing the cache to be pre-populated.
   AddAuthCacheEntry(AuthChallengeInfo challenge,
                     NetworkIsolationKey network_isolation_key,
                     AuthCredentials credentials) => ();
diff --git a/services/tracing/perfetto/privacy_filtered_fields-inl.h b/services/tracing/perfetto/privacy_filtered_fields-inl.h
index f6bd127..1b331a6 100644
--- a/services/tracing/perfetto/privacy_filtered_fields-inl.h
+++ b/services/tracing/perfetto/privacy_filtered_fields-inl.h
@@ -162,7 +162,8 @@
                                             kChromeLatencyInfoComplexMessages};
 
 // Proto Message: ChromeFrameReporter
-constexpr int kChromeFrameReporterIndices[] = {1, 2, 3, 4, 5, -1};
+constexpr int kChromeFrameReporterIndices[] = {1, 2, 3, 4,  5,  6,
+                                               7, 8, 9, 10, 11, -1};
 constexpr MessageInfo kChromeFrameReporter = {kChromeFrameReporterIndices,
                                               nullptr};
 
@@ -206,7 +207,7 @@
                                               nullptr};
 
 // Proto Message: ChromeBrowserContext
-constexpr int kChromeBrowserContextIndices[] = {1, -1};
+constexpr int kChromeBrowserContextIndices[] = {1, 2, -1};
 constexpr MessageInfo kChromeBrowserContext = {kChromeBrowserContextIndices,
                                                nullptr};
 
@@ -249,16 +250,43 @@
 constexpr MessageInfo kChromeHashedPerformanceMark = {
     kChromeHashedPerformanceMarkIndices, nullptr};
 
+// Proto Message: RenderProcessHost
+constexpr int kRenderProcessHostIndices[] = {1, 3, 4, -1};
+constexpr MessageInfo const* kRenderProcessHostComplexMessages[] = {
+    nullptr, nullptr, &kChromeBrowserContext};
+constexpr MessageInfo kRenderProcessHost = {kRenderProcessHostIndices,
+                                            kRenderProcessHostComplexMessages};
+
+// Proto Message: RenderProcessHostCleanup
+constexpr int kRenderProcessHostCleanupIndices[] = {1, 2, -1};
+constexpr MessageInfo kRenderProcessHostCleanup = {
+    kRenderProcessHostCleanupIndices, nullptr};
+
+// Proto Message: RenderProcessHostListener
+constexpr int kRenderProcessHostListenerIndices[] = {1, -1};
+constexpr MessageInfo kRenderProcessHostListener = {
+    kRenderProcessHostListenerIndices, nullptr};
+
+// Proto Message: ChildProcessLauncherPriority
+constexpr int kChildProcessLauncherPriorityIndices[] = {1, 2, 3, -1};
+constexpr MessageInfo kChildProcessLauncherPriority = {
+    kChildProcessLauncherPriorityIndices, nullptr};
+
 // Proto Message: ResourceBundle
 constexpr int kResourceBundleIndices[] = {1, -1};
 constexpr MessageInfo kResourceBundle = {kResourceBundleIndices, nullptr};
 
+// Proto Message: ChromeWebAppBadNavigate
+constexpr int kChromeWebAppBadNavigateIndices[] = {1, 2, 4, 5, 6, -1};
+constexpr MessageInfo kChromeWebAppBadNavigate = {
+    kChromeWebAppBadNavigateIndices, nullptr};
+
 // Proto Message: TrackEvent
 constexpr int kTrackEventIndices[] = {
-    1,    2,    3,    5,    6,    9,    10,   11,   12,   16,   17,
-    24,   25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
-    35,   36,   38,   39,   40,   41,   42,   43,   1001, 1002, 1003,
-    1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1016, -1};
+    1,    2,    3,    5,    6,    9,    10,   11,   12,   16,   17,   24,
+    25,   26,   27,   28,   29,   30,   31,   32,   33,   34,   35,   36,
+    38,   39,   40,   41,   42,   43,   1001, 1002, 1003, 1004, 1005, 1006,
+    1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, -1};
 constexpr MessageInfo const* kTrackEventComplexMessages[] = {
     nullptr,
     nullptr,
@@ -301,7 +329,12 @@
     &kShouldSwapBrowsingInstancesResult,
     &kFrameTreeNodeInfo,
     &kChromeHashedPerformanceMark,
-    &kResourceBundle};
+    &kRenderProcessHost,
+    &kRenderProcessHostCleanup,
+    &kRenderProcessHostListener,
+    &kChildProcessLauncherPriority,
+    &kResourceBundle,
+    &kChromeWebAppBadNavigate};
 constexpr MessageInfo kTrackEvent = {kTrackEventIndices,
                                      kTrackEventComplexMessages};
 
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 20c17bf..376f947 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -972,21 +972,21 @@
             ],
             "experiments": [
                 {
-                    "name": "AutofillUseAlternativeStateNameMap",
+                    "name": "AutofillUseAlternativeStateNameMap_2021-08-10",
                     "enable_features": [
                         "AutofillUseAlternativeStateNameMap"
-                    ],
-                    "disable_features": [
+                    ]
+                },
+                {
+                    "name": "AutofillEnableImportWhenMultiplePhoneNumbers_2021-08-10",
+                    "enable_features": [
                         "AutofillEnableImportWhenMultiplePhoneNumbers"
                     ]
                 },
                 {
-                    "name": "AutofillEnableImportWhenMultiplePhoneNumbers",
+                    "name": "StableFeatures_2021-08-10",
                     "enable_features": [
-                        "AutofillEnableImportWhenMultiplePhoneNumbers"
-                    ],
-                    "disable_features": [
-                        "AutofillUseAlternativeStateNameMap"
+                        "AutofillUseAlternativeStateNameMap_2021-08-10"
                     ]
                 }
             ]
@@ -5718,120 +5718,30 @@
             ],
             "experiments": [
                 {
-                    "name": "Segmentation_AutoNoWait_20210811",
-                    "params": {
-                        "default_segment": "new-tab",
-                        "disable_ui": "false",
-                        "ignore_segmentation_results": "false",
-                        "min_version_adaptive": "1",
-                        "segment_selection_ttl_days": "14",
-                        "show_ui_only_after_ready": "false"
-                    },
-                    "enable_features": [
-                        "AdaptiveButtonInTopToolbarCustomizationV2",
-                        "SegmentationPlatform"
-                    ],
-                    "disable_features": [
-                        "AdaptiveButtonInTopToolbar"
-                    ]
-                },
-                {
-                    "name": "Segmentation_Auto_20210811",
-                    "params": {
-                        "default_segment": "new-tab",
-                        "disable_ui": "false",
-                        "ignore_segmentation_results": "false",
-                        "min_version_adaptive": "1",
-                        "segment_selection_ttl_days": "14",
-                        "show_ui_only_after_ready": "true"
-                    },
-                    "enable_features": [
-                        "AdaptiveButtonInTopToolbarCustomizationV2",
-                        "SegmentationPlatform"
-                    ],
-                    "disable_features": [
-                        "AdaptiveButtonInTopToolbar"
-                    ]
-                },
-                {
-                    "name": "Segmentation_Default_Segment_20210811",
-                    "params": {
-                        "default_segment": "new-tab",
-                        "disable_ui": "false",
-                        "ignore_segmentation_results": "true",
-                        "min_version_adaptive": "1",
-                        "segment_selection_ttl_days": "14",
-                        "show_ui_only_after_ready": "true"
-                    },
-                    "enable_features": [
-                        "AdaptiveButtonInTopToolbarCustomizationV2",
-                        "SegmentationPlatform"
-                    ],
-                    "disable_features": [
-                        "AdaptiveButtonInTopToolbar"
-                    ]
-                },
-                {
-                    "name": "Segmentation_Control_20210811",
-                    "params": {
-                        "default_segment": "new-tab",
-                        "disable_ui": "false",
-                        "ignore_segmentation_results": "false",
-                        "segment_selection_ttl_days": "14",
-                        "show_ui_only_after_ready": "true"
-                    },
-                    "disable_features": [
-                        "AdaptiveButtonInTopToolbar",
-                        "AdaptiveButtonInTopToolbarCustomizationV2",
-                        "SegmentationPlatform"
-                    ]
-                },
-                {
-                    "name": "Adaptive_AlwaysNewTab_20210730",
+                    "name": "Adaptive_AlwaysNewTab_20210428",
                     "params": {
                         "mode": "always-new-tab"
                     },
                     "enable_features": [
                         "AdaptiveButtonInTopToolbar"
-                    ],
-                    "disable_features": [
-                        "AdaptiveButtonInTopToolbarCustomizationV2"
                     ]
                 },
                 {
-                    "name": "Adaptive_AlwaysShare_20210730",
+                    "name": "Adaptive_AlwaysShare_20210428",
                     "params": {
                         "mode": "always-share"
                     },
                     "enable_features": [
                         "AdaptiveButtonInTopToolbar"
-                    ],
-                    "disable_features": [
-                        "AdaptiveButtonInTopToolbarCustomizationV2"
                     ]
                 },
                 {
-                    "name": "Adaptive_AlwaysVoice_20210730",
+                    "name": "Adaptive_AlwaysVoice_20210428",
                     "params": {
                         "mode": "always-voice"
                     },
                     "enable_features": [
                         "AdaptiveButtonInTopToolbar"
-                    ],
-                    "disable_features": [
-                        "AdaptiveButtonInTopToolbarCustomizationV2"
-                    ]
-                },
-                {
-                    "name": "Adaptive_Control_20210730",
-                    "params": {
-                        "mode": "always-none"
-                    },
-                    "enable_features": [
-                        "AdaptiveButtonInTopToolbar"
-                    ],
-                    "disable_features": [
-                        "AdaptiveButtonInTopToolbarCustomizationV2"
                     ]
                 },
                 {
@@ -7843,27 +7753,15 @@
             ]
         }
     ],
-    "SharedHighlightingClank": [
+    "SharedHighlightingClankV2": [
         {
             "platforms": [
                 "android"
             ],
             "experiments": [
                 {
-                    "name": "EnabledV2",
+                    "name": "Enabled",
                     "enable_features": [
-                        "CopyLinkToText",
-                        "PreemptiveLinkToTextGeneration",
-                        "SharedHighlightingV2"
-                    ]
-                },
-                {
-                    "name": "Enabled_preemptive",
-                    "enable_features": [
-                        "CopyLinkToText",
-                        "PreemptiveLinkToTextGeneration"
-                    ],
-                    "disable_features": [
                         "SharedHighlightingV2"
                     ]
                 }
diff --git a/third_party/blink/common/mediastream/OWNERS b/third_party/blink/common/mediastream/OWNERS
index b3bb856f..7653ee49 100644
--- a/third_party/blink/common/mediastream/OWNERS
+++ b/third_party/blink/common/mediastream/OWNERS
@@ -1,4 +1,5 @@
 guidou@chromium.org
+hbos@chromium.org
 
 per-file *_mojom_traits*.*=set noparent
 per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS
diff --git a/third_party/blink/public/strings/translations/blink_strings_ta.xtb b/third_party/blink/public/strings/translations/blink_strings_ta.xtb
index 239ff2d..a27d56b 100644
--- a/third_party/blink/public/strings/translations/blink_strings_ta.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_ta.xtb
@@ -284,7 +284,7 @@
 <translation id="8403857369060869934">முடிவடைந்த நேரம்: <ph name="ELAPSED_TIME" /></translation>
 <translation id="8415319359811155763">பகுதி</translation>
 <translation id="8433900881053900389">கருவிப்பட்டி</translation>
-<translation id="8444882422881193423"><ph name="NUMBER_OF_FILES" /> கோப்புகள்</translation>
+<translation id="8444882422881193423"><ph name="NUMBER_OF_FILES" /> ஃபைல்கள் </translation>
 <translation id="8451268428117625855">ஒரு ஃபைலை தேர்ந்தெடுக்கவும்.</translation>
 <translation id="8461852803063341183">ரேடியோ பட்டன்</translation>
 <translation id="8474886197722836894">அர்ப்பணம்</translation>
diff --git a/third_party/blink/public/web/web_document_loader.h b/third_party/blink/public/web/web_document_loader.h
index 273fc965..daf3844e 100644
--- a/third_party/blink/public/web/web_document_loader.h
+++ b/third_party/blink/public/web/web_document_loader.h
@@ -144,9 +144,6 @@
   // committed in this WebDocumentLoader had transient activation.
   virtual bool LastNavigationHadTransientUserActivation() const = 0;
 
-  // Returns true when the document is a FTP directory.
-  virtual bool IsListingFtpDirectory() const = 0;
-
   // Sets the CodeCacheHost for this loader.
   virtual void SetCodeCacheHost(
       mojo::PendingRemote<mojom::CodeCacheHost> code_cache_host) = 0;
diff --git a/third_party/blink/renderer/core/exported/web_document_loader_impl.cc b/third_party/blink/renderer/core/exported/web_document_loader_impl.cc
index 0c4f6284..7814e165 100644
--- a/third_party/blink/renderer/core/exported/web_document_loader_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_document_loader_impl.cc
@@ -197,10 +197,6 @@
   return DocumentLoader::LastNavigationHadTransientUserActivation();
 }
 
-bool WebDocumentLoaderImpl::IsListingFtpDirectory() const {
-  return DocumentLoader::IsListingFtpDirectory();
-}
-
 void WebDocumentLoaderImpl::SetCodeCacheHost(
     mojo::PendingRemote<mojom::CodeCacheHost> code_cache_host) {
   DocumentLoader::SetCodeCacheHost(std::move(code_cache_host));
diff --git a/third_party/blink/renderer/core/exported/web_document_loader_impl.h b/third_party/blink/renderer/core/exported/web_document_loader_impl.h
index 1aa3027..11c734f 100644
--- a/third_party/blink/renderer/core/exported/web_document_loader_impl.h
+++ b/third_party/blink/renderer/core/exported/web_document_loader_impl.h
@@ -87,7 +87,6 @@
   PreviewsState GetPreviewsState() const override;
   WebArchiveInfo GetArchiveInfo() const override;
   bool LastNavigationHadTransientUserActivation() const override;
-  bool IsListingFtpDirectory() const override;
   void SetCodeCacheHost(
       mojo::PendingRemote<mojom::CodeCacheHost> code_cache_host) override;
 
diff --git a/third_party/blink/renderer/core/layout/layout_text.cc b/third_party/blink/renderer/core/layout/layout_text.cc
index 2d3bb34..8babc115 100644
--- a/third_party/blink/renderer/core/layout/layout_text.cc
+++ b/third_party/blink/renderer/core/layout/layout_text.cc
@@ -176,6 +176,11 @@
 
   if (node)
     GetFrameView()->IncrementVisuallyNonEmptyCharacterCount(text_.length());
+
+  // Call GetSecureTextTimers() to ensure map exists. It is called in
+  // pre-finalizer where allocation is not allowed.
+  // TODO(yukiy): Remove this once converting SecureTextTimer to GCed.
+  GetSecureTextTimers();
 }
 
 LayoutText* LayoutText::CreateEmptyAnonymous(
diff --git a/third_party/blink/renderer/core/layout/ng/inline/inline_containing_block_utils.h b/third_party/blink/renderer/core/layout/ng/inline/inline_containing_block_utils.h
index 5df1ea3..9682f8c 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/inline_containing_block_utils.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/inline_containing_block_utils.h
@@ -33,10 +33,10 @@
     LogicalOffset relative_offset;
   };
 
-  // It is safe to use Persistent here because this is used only on stack and
-  // stores references to LayoutObject owned by other objects.
+  // It is safe to use UntracedMember here because this is used only on stack
+  // and stores references to LayoutObject owned by other objects.
   using InlineContainingBlockMap =
-      HashMap<Persistent<const LayoutObject>,
+      HashMap<UntracedMember<const LayoutObject>,
               absl::optional<InlineContainingBlockGeometry>>;
 
   // Computes the geometry required for any inline containing blocks.
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_logical_line_item.h b/third_party/blink/renderer/core/layout/ng/inline/ng_logical_line_item.h
index 9790ae8..0d4b2554 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_logical_line_item.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_logical_line_item.h
@@ -212,12 +212,12 @@
 
   // Ellipsis does not have |NGInlineItem|, but built from |LayoutObject| and
   // |NGStyleVariant|.
-  Persistent<const LayoutObject> layout_object;
+  UntracedMember<const LayoutObject> layout_object;
   // Used only when |layout_object_| is not null.
   NGStyleVariant style_variant = NGStyleVariant::kStandard;
 
-  Persistent<LayoutObject> out_of_flow_positioned_box;
-  Persistent<LayoutObject> unpositioned_float;
+  UntracedMember<LayoutObject> out_of_flow_positioned_box;
+  UntracedMember<LayoutObject> unpositioned_float;
 
   // The offset of the border box, initially in this child coordinate system.
   // |ComputeInlinePositions()| converts it to the offset within the line box.
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
index 7a04ba66..e9f5b46 100644
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -109,7 +109,6 @@
 #include "third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h"
 #include "third_party/blink/renderer/platform/loader/fetch/source_keyed_cached_metadata_handler.h"
 #include "third_party/blink/renderer/platform/loader/fetch/unique_identifier.h"
-#include "third_party/blink/renderer/platform/loader/ftp_directory_listing.h"
 #include "third_party/blink/renderer/platform/loader/static_data_navigation_body_loader.h"
 #include "third_party/blink/renderer/platform/mhtml/archive_resource.h"
 #include "third_party/blink/renderer/platform/mhtml/mhtml_archive.h"
@@ -927,7 +926,7 @@
   DCHECK(!frame_->GetPage()->Paused());
   time_of_last_data_received_ = clock_->NowTicks();
 
-  if (listing_ftp_directory_ || loading_main_document_from_mhtml_archive_) {
+  if (loading_main_document_from_mhtml_archive_) {
     // 1) Ftp directory listings accumulate data buffer and transform it later
     //    to the actual document content.
     // 2) Mhtml archives accumulate data buffer and parse it as mhtml later
@@ -1035,12 +1034,6 @@
          !frame_->GetPage()->Paused() ||
          MainThreadDebugger::Instance()->IsPaused());
 
-  if (listing_ftp_directory_) {
-    data_buffer_ = GenerateFtpDirectoryListingHtml(
-        response_.CurrentRequestUrl(), data_buffer_.get());
-    ProcessDataBuffer();
-  }
-
   if (loading_main_document_from_mhtml_archive_ && state_ < kCommitted) {
     // The browser process should block any navigation to an MHTML archive
     // inside iframes. See NavigationRequest::OnResponseStarted().
@@ -1223,18 +1216,6 @@
   DCHECK(frame_);
   application_cache_host_->DidReceiveResponseForMainResource(response_);
 
-  if (response_.CurrentRequestUrl().ProtocolIs("ftp") &&
-      response_.MimeType() == "text/vnd.chromium.ftp-dir") {
-    if (response_.CurrentRequestUrl().Query() == "raw") {
-      // Interpret the FTP LIST command result as text.
-      response_.SetMimeType("text/plain");
-    } else {
-      // FTP directory listing: Make up an HTML for the entries.
-      listing_ftp_directory_ = true;
-      response_.SetMimeType("text/html");
-    }
-  }
-
   if (response_.IsHTTP() && !cors::IsOkStatus(response_.HttpStatusCode())) {
     DCHECK(!IsA<HTMLObjectElement>(frame_->Owner()));
   }
diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h
index d12a375..cd2f9b4d 100644
--- a/third_party/blink/renderer/core/loader/document_loader.h
+++ b/third_party/blink/renderer/core/loader/document_loader.h
@@ -298,8 +298,6 @@
   void BlockParser();
   void ResumeParser();
 
-  bool IsListingFtpDirectory() const { return listing_ftp_directory_; }
-
   UseCounterImpl& GetUseCounter() { return use_counter_; }
   Dactyloscoper& GetDactyloscoper() { return dactyloscoper_; }
 
diff --git a/third_party/blink/renderer/core/paint/image_element_timing.cc b/third_party/blink/renderer/core/paint/image_element_timing.cc
index 04abdbb..7b18abd5 100644
--- a/third_party/blink/renderer/core/paint/image_element_timing.cc
+++ b/third_party/blink/renderer/core/paint/image_element_timing.cc
@@ -81,7 +81,7 @@
 
 base::TimeTicks ImageElementTiming::GetBackgroundImageLoadTime(
     const StyleFetchedImage* style_image) {
-  return background_image_timestamps_.at(style_image);
+  return background_image_timestamps_.DeprecatedAtOrEmptyValue(style_image);
 }
 
 void ImageElementTiming::NotifyImagePainted(
diff --git a/third_party/blink/renderer/core/script/script_runner.cc b/third_party/blink/renderer/core/script/script_runner.cc
index 6888dc1..98cd99e6 100644
--- a/third_party/blink/renderer/core/script/script_runner.cc
+++ b/third_party/blink/renderer/core/script/script_runner.cc
@@ -207,11 +207,6 @@
 void ScriptRunner::ExecuteTask() {
   DCHECK(!document_->domWindow() || !document_->domWindow()->IsContextPaused());
 
-  // This method is triggered by ScriptRunner::PostTask, and runs directly from
-  // the scheduler. So, the call stack is safe to reenter.
-  scheduler::CooperativeSchedulingManager::AllowedStackScope
-      allowed_stack_scope(scheduler::CooperativeSchedulingManager::Instance());
-
   if (ExecuteAsyncTask())
     return;
 
diff --git a/third_party/blink/renderer/core/trustedtypes/trusted_type_policy_factory.cc b/third_party/blink/renderer/core/trustedtypes/trusted_type_policy_factory.cc
index ad23721..6f2bcc175 100644
--- a/third_party/blink/renderer/core/trustedtypes/trusted_type_policy_factory.cc
+++ b/third_party/blink/renderer/core/trustedtypes/trusted_type_policy_factory.cc
@@ -104,7 +104,8 @@
 }
 
 TrustedTypePolicy* TrustedTypePolicyFactory::defaultPolicy() const {
-  return policy_map_.DeprecatedAtOrEmptyValue("default");
+  const auto iter = policy_map_.find("default");
+  return iter != policy_map_.end() ? iter->value : nullptr;
 }
 
 TrustedTypePolicyFactory::TrustedTypePolicyFactory(ExecutionContext* context)
diff --git a/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc b/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
index 9306dff1..06be117 100644
--- a/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
+++ b/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc
@@ -91,8 +91,9 @@
     result = ArrayBufferContents(Content()->BackingStore());
   } else {
     Content()->Transfer(result);
-    Detach();
   }
+  // For consistency, the source is detached even if it was empty.
+  Detach();
 
   Vector<v8::Local<v8::ArrayBuffer>, 4> buffer_handles;
   v8::HandleScope handle_scope(isolate);
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc
index 4d41089a..a57ae3d 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -2922,6 +2922,21 @@
   return ui::IsSetLike(RoleValue()) || ui::IsItemLike(RoleValue());
 }
 
+bool AXObject::IsProhibited(ax::mojom::blink::StringAttribute attribute) const {
+  // ARIA 1.2 prohibits aria-roledescription on the "generic" role.
+  if (attribute == ax::mojom::blink::StringAttribute::kRoleDescription)
+    return RoleValue() == ax::mojom::blink::Role::kGenericContainer;
+  return false;
+}
+
+bool AXObject::IsProhibited(ax::mojom::blink::IntAttribute attribute) const {
+  // ARIA 1.2 prohibits exposure of aria-errormessage when aria-invalid is
+  // false.
+  if (attribute == ax::mojom::blink::IntAttribute::kErrormessageId)
+    return GetInvalidState() == ax::mojom::blink::InvalidState::kFalse;
+  return false;
+}
+
 // Simplify whitespace, but preserve a single leading and trailing whitespace
 // character if it's present.
 // static
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h
index f4eb4050..6a32fe6c4 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.h
@@ -794,6 +794,12 @@
   virtual int SetSize() const { return 0; }
   bool SupportsARIASetSizeAndPosInSet() const;
 
+  // Returns true if the attribute is prohibited (e.g. by ARIA), and we plan
+  // to enforce that prohibition. An example of something prohibited that we
+  // do not enforce is aria-label/aria-labelledby on certain text containers.
+  bool IsProhibited(ax::mojom::blink::StringAttribute attribute) const;
+  bool IsProhibited(ax::mojom::blink::IntAttribute attribute) const;
+
   // ARIA live-region features.
   bool IsLiveRegionRoot() const;  // Any live region, including polite="off".
   bool IsActiveLiveRegionRoot() const;  // Live region that is not polite="off".
diff --git a/third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.cc b/third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.cc
index f1616cc0..f6b1916 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.cc
@@ -48,6 +48,8 @@
                         AXObject* object,
                         ui::AXNodeData* node_data,
                         const AtomicString& value) {
+  if (object->IsProhibited(attribute))
+    return;
   node_data->AddStringAttribute(attribute, value.Utf8());
 }
 
@@ -56,6 +58,9 @@
                         AXObject* object,
                         ui::AXNodeData* node_data,
                         const AtomicString& value) {
+  if (object->IsProhibited(attribute))
+    return;
+
   Element* element = object->GetElement();
   if (!element)
     return;
@@ -72,10 +77,6 @@
       !ax_target->IsVisible()) {
     return;
   }
-  if (attribute == ax::mojom::blink::IntAttribute::kErrormessageId &&
-      object->GetInvalidState() == ax::mojom::blink::InvalidState::kFalse) {
-    return;
-  }
 
   node_data->AddIntAttribute(attribute, ax_target->AXObjectID());
 }
diff --git a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc
index 9d404637..8f9b05c2 100644
--- a/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc
+++ b/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc
@@ -708,10 +708,10 @@
     PostCrossThreadTask(
         *main_task_runner_, FROM_HERE,
         CrossThreadBindOnce(&WebMediaPlayerMS::TriggerResize, player_));
+    PostCrossThreadTask(
+        *main_task_runner_, FROM_HERE,
+        CrossThreadBindOnce(&WebMediaPlayerMS::ResetCanvasCache, player_));
   }
-  PostCrossThreadTask(
-      *main_task_runner_, FROM_HERE,
-      CrossThreadBindOnce(&WebMediaPlayerMS::ResetCanvasCache, player_));
 }
 
 void WebMediaPlayerMSCompositor::StartRenderingInternal() {
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_legacy_stats_report.cc b/third_party/blink/renderer/modules/peerconnection/rtc_legacy_stats_report.cc
index 9976837..5fa8014a 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_legacy_stats_report.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_legacy_stats_report.cc
@@ -40,6 +40,11 @@
                      ToV8(base::Time::FromJsTime(timestamp_), script_state));
 }
 
+String RTCLegacyStatsReport::stat(const String& name) {
+  auto field = stats_.find(name);
+  return field != stats_.end() ? field->value : String();
+}
+
 Vector<String> RTCLegacyStatsReport::names() const {
   Vector<String> result;
   for (HashMap<String, String>::const_iterator it = stats_.begin();
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_legacy_stats_report.h b/third_party/blink/renderer/modules/peerconnection/rtc_legacy_stats_report.h
index 2923f8e7..d31a3ab 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_legacy_stats_report.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_legacy_stats_report.h
@@ -45,7 +45,7 @@
   ScriptValue timestamp(ScriptState* script_state) const;
   String id() { return id_; }
   String type() { return type_; }
-  String stat(const String& name) { return stats_.at(name); }
+  String stat(const String& name);
   Vector<String> names() const;
 
   void AddStatistic(const String& name, const String& value);
diff --git a/third_party/blink/renderer/modules/xr/xr_input_source_array.cc b/third_party/blink/renderer/modules/xr/xr_input_source_array.cc
index 17b3304..a9d3b1a 100644
--- a/third_party/blink/renderer/modules/xr/xr_input_source_array.cc
+++ b/third_party/blink/renderer/modules/xr/xr_input_source_array.cc
@@ -29,7 +29,10 @@
 }
 
 XRInputSource* XRInputSourceArray::GetWithSourceId(uint32_t source_id) {
-  return input_sources_.DeprecatedAtOrEmptyValue(source_id);
+  auto it = input_sources_.find(source_id);
+  if (it != input_sources_.end())
+    return it->value;
+  return nullptr;
 }
 
 void XRInputSourceArray::RemoveWithSourceId(uint32_t source_id) {
diff --git a/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h b/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h
index df0465a..640cb332 100644
--- a/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h
+++ b/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_CUSTOM_SPACES_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_CUSTOM_SPACES_H_
 
+#include <memory>
 #include <vector>
 
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/loader/BUILD.gn b/third_party/blink/renderer/platform/loader/BUILD.gn
index dcae46c..34bab90 100644
--- a/third_party/blink/renderer/platform/loader/BUILD.gn
+++ b/third_party/blink/renderer/platform/loader/BUILD.gn
@@ -139,8 +139,6 @@
     "fetch/worker_resource_timing_notifier.h",
     "frame_request_blocker.cc",
     "frame_request_blocker.h",
-    "ftp_directory_listing.cc",
-    "ftp_directory_listing.h",
     "internet_disconnected_web_url_loader.cc",
     "link_header.cc",
     "link_header.h",
@@ -220,7 +218,6 @@
     "fetch/url_loader/web_resource_request_sender_unittest.cc",
     "fetch/url_loader/web_url_loader_unittest.cc",
     "fetch/url_loader/worker_main_script_loader_unittest.cc",
-    "ftp_directory_listing_test.cc",
     "link_header_test.cc",
     "static_data_navigation_body_loader_test.cc",
     "subresource_integrity_test.cc",
diff --git a/third_party/blink/renderer/platform/loader/ftp_directory_listing.cc b/third_party/blink/renderer/platform/loader/ftp_directory_listing.cc
deleted file mode 100644
index 62af5529b..0000000
--- a/third_party/blink/renderer/platform/loader/ftp_directory_listing.cc
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright 2018 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 "third_party/blink/renderer/platform/loader/ftp_directory_listing.h"
-
-#include <string>
-#include <vector>
-
-#include "base/i18n/encoding_detection.h"
-#include "base/i18n/icu_string_conversions.h"
-#include "base/strings/string_util.h"
-#include "base/strings/sys_string_conversions.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/time/time.h"
-#include "net/base/directory_listing.h"
-#include "net/base/escape.h"
-#include "net/base/net_errors.h"
-#include "net/ftp/ftp_directory_listing_parser.h"
-#include "net/net_buildflags.h"
-#include "third_party/blink/renderer/platform/loader/fetch/resource_error.h"
-#include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
-#include "url/gurl.h"
-
-namespace blink {
-
-namespace {
-
-std::u16string ConvertPathToUTF16(const std::string& path) {
-  // Per RFC 2640, FTP servers should use UTF-8 or its proper subset ASCII,
-  // but many old FTP servers use legacy encodings. Try UTF-8 first.
-  if (base::IsStringUTF8(path))
-    return base::UTF8ToUTF16(path);
-
-  // Try detecting the encoding. The sample is rather small though, so it may
-  // fail.
-  std::string encoding;
-  if (base::DetectEncoding(path, &encoding) && encoding != "US-ASCII") {
-    std::u16string path_utf16;
-    if (base::CodepageToUTF16(path, encoding.c_str(),
-                              base::OnStringConversionError::SUBSTITUTE,
-                              &path_utf16)) {
-      return path_utf16;
-    }
-  }
-
-  // Use system native encoding as the last resort.
-  return base::WideToUTF16(base::SysNativeMBToWide(path));
-}
-
-}  // namespace
-
-scoped_refptr<SharedBuffer> GenerateFtpDirectoryListingHtml(
-    const KURL& url,
-    const SharedBuffer* input) {
-  const GURL gurl = url;
-  scoped_refptr<SharedBuffer> output = SharedBuffer::Create();
-  net::UnescapeRule::Type unescape_rules =
-      net::UnescapeRule::SPACES |
-      net::UnescapeRule::URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS;
-  std::string unescaped_path =
-      net::UnescapeURLComponent(gurl.path(), unescape_rules);
-  const std::string header =
-      net::GetDirectoryListingHeader(ConvertPathToUTF16(unescaped_path));
-  output->Append(header.c_str(), header.size());
-
-  // If this isn't top level directory (i.e. the path isn't "/",)
-  // add a link to the parent directory.
-  if (gurl.path().length() > 1) {
-    const std::string link = net::GetParentDirectoryLink();
-    output->Append(link.c_str(), link.size());
-  }
-
-  std::string flatten;
-  for (const auto& span : *input) {
-    flatten.append(span.data(), span.size());
-  }
-
-  std::vector<net::FtpDirectoryListingEntry> entries;
-  int rv = net::ERR_NOT_IMPLEMENTED;
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-  rv = net::ParseFtpDirectoryListing(flatten, base::Time::Now(), &entries);
-#endif
-  if (rv != net::OK) {
-    const std::string script = "<script>onListingParsingError();</script>\n";
-    output->Append(script.c_str(), script.size());
-    return output;
-  }
-  for (const net::FtpDirectoryListingEntry& entry : entries) {
-    // Skip the current and parent directory entries in the listing.
-    // net::GetParentDirectoryLink() takes care of them.
-    if (base::EqualsASCII(entry.name, ".") ||
-        base::EqualsASCII(entry.name, ".."))
-      continue;
-
-    bool is_directory =
-        (entry.type == net::FtpDirectoryListingEntry::DIRECTORY);
-    int64_t size =
-        entry.type == net::FtpDirectoryListingEntry::FILE ? entry.size : 0;
-    std::string entry_string = net::GetDirectoryListingEntry(
-        entry.name, entry.raw_name, is_directory, size, entry.last_modified);
-    output->Append(entry_string.c_str(), entry_string.size());
-  }
-
-  return output;
-}
-
-}  // namespace blink
diff --git a/third_party/blink/renderer/platform/loader/ftp_directory_listing.h b/third_party/blink/renderer/platform/loader/ftp_directory_listing.h
deleted file mode 100644
index c5f9bda..0000000
--- a/third_party/blink/renderer/platform/loader/ftp_directory_listing.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2018 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 THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FTP_DIRECTORY_LISTING_H_
-#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FTP_DIRECTORY_LISTING_H_
-
-#include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/forward.h"
-
-namespace blink {
-
-class KURL;
-
-// Translates |input|, an FTP LISTING result, to an HTML and returns it. When
-// an error happens that is written in the result HTML.
-PLATFORM_EXPORT scoped_refptr<SharedBuffer> GenerateFtpDirectoryListingHtml(
-    const KURL& url,
-    const SharedBuffer* input);
-
-}  // namespace blink
-
-#endif  // THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FTP_DIRECTORY_LISTING_H_
diff --git a/third_party/blink/renderer/platform/loader/ftp_directory_listing_test.cc b/third_party/blink/renderer/platform/loader/ftp_directory_listing_test.cc
deleted file mode 100644
index 9f52cba..0000000
--- a/third_party/blink/renderer/platform/loader/ftp_directory_listing_test.cc
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright 2018 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 "third_party/blink/renderer/platform/loader/ftp_directory_listing.h"
-
-#include <string>
-
-#include "base/test/icu_test_util.h"
-#include "net/net_buildflags.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/loader/fetch/resource_error.h"
-#include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
-#include "third_party/blink/renderer/platform/wtf/shared_buffer.h"
-#include "third_party/icu/source/i18n/unicode/timezone.h"
-
-namespace blink {
-namespace {
-
-class ScopedRestoreDefaultTimezone {
-  STACK_ALLOCATED();
-
- public:
-  explicit ScopedRestoreDefaultTimezone(const char* zoneid) {
-    original_zone_.reset(icu::TimeZone::createDefault());
-    icu::TimeZone::adoptDefault(icu::TimeZone::createTimeZone(zoneid));
-  }
-  ~ScopedRestoreDefaultTimezone() {
-    icu::TimeZone::adoptDefault(original_zone_.release());
-  }
-
-  ScopedRestoreDefaultTimezone(const ScopedRestoreDefaultTimezone&) = delete;
-  ScopedRestoreDefaultTimezone& operator=(const ScopedRestoreDefaultTimezone&) =
-      delete;
-
- private:
-  std::unique_ptr<icu::TimeZone> original_zone_;
-};
-
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-TEST(FtpDirectoryListingTest, Top) {
-  base::test::ScopedRestoreICUDefaultLocale locale("en_US");
-  ScopedRestoreDefaultTimezone timezone("Asia/Tokyo");
-
-  const KURL url("ftp://ftp.example.com/");
-
-  const std::string input = "drwxr-xr-x  1 ftp ftp 17 Feb 15 2016 top\r\n";
-  // Referring to code in net/base/dir_header.html, but the code itself
-  // is not included in the expectation due to unittest configuration.
-  std::string expected = R"JS(<script>start("/");</script>
-<script>addRow("top","top",1,0,"0 B",1455494400,"2/15/16, 9:00:00 AM");</script>
-)JS";
-  auto input_buffer = SharedBuffer::Create();
-  input_buffer->Append(input.data(), input.size());
-
-  auto output = GenerateFtpDirectoryListingHtml(url, input_buffer.get());
-  std::string flatten_output;
-  for (const auto span : *output) {
-    flatten_output.append(span.data(), span.size());
-  }
-
-  EXPECT_EQ(expected, flatten_output);
-}
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
-#if !BUILDFLAG(DISABLE_FTP_SUPPORT)
-TEST(FtpDirectoryListingTest, NonTop) {
-  base::test::ScopedRestoreICUDefaultLocale locale("en_US");
-  ScopedRestoreDefaultTimezone timezone("Asia/Tokyo");
-  const KURL url("ftp://ftp.example.com/foo/");
-
-  const std::string input = "drwxr-xr-x  1 ftp ftp 17 Feb 15 2016 dir\r\n";
-  // Referring to code in net/base/dir_header.html, but the code itself
-  // is not included in the expectation due to unittest configuration.
-  std::string expected = R"JS(<script>start("/foo/");</script>
-<script>onHasParentDirectory();</script>
-<script>addRow("dir","dir",1,0,"0 B",1455494400,"2/15/16, 9:00:00 AM");</script>
-)JS";
-
-  auto input_buffer = SharedBuffer::Create();
-  input_buffer->Append(input.data(), input.size());
-
-  auto output = GenerateFtpDirectoryListingHtml(url, input_buffer.get());
-  std::string flatten_output;
-  for (const auto span : *output) {
-    flatten_output.append(span.data(), span.size());
-  }
-
-  EXPECT_EQ(expected, flatten_output);
-}
-#endif  // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-
-TEST(FtpDirectoryListingTest, Fail) {
-  base::test::ScopedRestoreICUDefaultLocale locale("en_US");
-  ScopedRestoreDefaultTimezone timezone("Asia/Tokyo");
-  const KURL url("ftp://ftp.example.com/");
-  auto input = SharedBuffer::Create();
-  input->Append("bogus", 5u);
-  std::string expected = R"JS(<script>start("/");</script>
-<script>onListingParsingError();</script>
-)JS";
-  auto output = GenerateFtpDirectoryListingHtml(url, input.get());
-  std::string flatten_output;
-  for (const auto span : *output) {
-    flatten_output.append(span.data(), span.size());
-  }
-
-  EXPECT_EQ(expected, flatten_output);
-}
-
-}  // namespace
-
-}  // namespace blink
diff --git a/third_party/blink/renderer/platform/wtf/hash_map.h b/third_party/blink/renderer/platform/wtf/hash_map.h
index 8c6f0bf..6e28420 100644
--- a/third_party/blink/renderer/platform/wtf/hash_map.h
+++ b/third_party/blink/renderer/platform/wtf/hash_map.h
@@ -156,6 +156,7 @@
   iterator find(KeyPeekInType);
   const_iterator find(KeyPeekInType) const;
   bool Contains(KeyPeekInType) const;
+  // Returns a reference to the mapped value. Crashes if no mapped value exists.
   MappedPeekType at(KeyPeekInType) const;
   // Deprecated variant of at(). Created for refactor described in
   // https://crbug.com/1058527. Returns a reference to the mapped value or the
@@ -590,7 +591,10 @@
           typename Y>
 typename HashMap<T, U, V, W, X, Y>::MappedPeekType
 HashMap<T, U, V, W, X, Y>::at(KeyPeekInType key) const {
-  return DeprecatedAtOrEmptyValue(key);
+  const ValueType* entry = impl_.Lookup(key);
+  CHECK(entry) << "HashMap::at found no value for the given key. See "
+                  "https://crbug.com/1058527.";
+  return MappedTraits::Peek(entry->value);
 }
 
 template <typename T,
diff --git a/third_party/blink/tools/blinkpy/web_tests/port/win.py b/third_party/blink/tools/blinkpy/web_tests/port/win.py
index f9dfb23..d511ecf 100644
--- a/third_party/blink/tools/blinkpy/web_tests/port/win.py
+++ b/third_party/blink/tools/blinkpy/web_tests/port/win.py
@@ -35,7 +35,7 @@
 # The _winreg library is only available on Windows.
 # https://docs.python.org/2/library/_winreg.html
 try:
-    import _winreg  # pylint: disable=import-error
+    import six.moves.winreg as _winreg  # pylint: disable=import-error
 except ImportError:
     _winreg = None  # pylint: disable=invalid-name
 
@@ -185,7 +185,9 @@
         # program name to find the working one.
         _log.debug('Searching for Python 3 command name')
 
-        exts = filter(len, os.getenv('PATHEXT', '').split(';'))
+        exts = [
+            path for path in os.getenv('PATHEXT', '').split(';') if len(path)
+        ]
         for ext in [''] + exts:
             python = 'python3%s' % ext
             _log.debug('Trying "%s"' % python)
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 95c6c1a..2c25223 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -4409,7 +4409,6 @@
 crbug.com/757165 [ Win ] fast/spatial-navigation/snav-two-elements-one-line.html [ Crash Failure Pass Timeout ]
 crbug.com/757165 [ Win ] fast/spatial-navigation/snav-unit-overflow-and-scroll-in-direction.html [ Crash Failure Pass Timeout ]
 crbug.com/757165 [ Win ] fast/spatial-navigation/snav-z-index.html [ Crash Failure Pass Timeout ]
-crbug.com/757165 [ Win ] http/tests/devtools/console/console-filter-test.js [ Skip ]
 crbug.com/757165 [ Win ] http/tests/misc/client-hints-accept-meta-preloader.html [ Skip ]
 crbug.com/757165 [ Win ] paint/invalidation/filters/filter-repaint-accelerated-child-with-filter-child.html [ Skip ]
 crbug.com/757165 [ Win ] paint/invalidation/filters/filter-repaint-on-accelerated-layer.html [ Skip ]
@@ -5357,7 +5356,7 @@
 crbug.com/1207342 http/tests/devtools/elements/styles-1/add-new-rule-inline-style-csp.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/elements/styles-1/add-new-rule-invalid-selector.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/elements/styles-1/add-new-rule-keyboard.js [ Failure Pass ]
-crbug.com/1207342 http/tests/devtools/elements/styles-1/add-new-rule-with-style-after-body.js [ Failure Pass ]
+crbug.com/1207342 http/tests/devtools/elements/styles-1/add-new-rule-with-style-after-body.js [ Failure Pass Timeout ]
 crbug.com/1207342 http/tests/devtools/elements/styles-1/case-sensitive-suggestions.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/elements/styles-1/color-aware-property-value-edit.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/elements/styles-1/commit-selector-mark-matching.js [ Failure Pass ]
@@ -5497,7 +5496,7 @@
 crbug.com/1207342 http/tests/devtools/console/console-last-result.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/console/console-linkify-relative-links.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/console/console-links-in-errors-with-trace.js [ Skip ]
-crbug.com/1207342 http/tests/devtools/console/console-links-on-messages-before-inspection.js [ Failure Pass ]
+crbug.com/1207342 http/tests/devtools/console/console-links-on-messages-before-inspection.js [ Failure Pass Timeout ]
 crbug.com/1207342 http/tests/devtools/console/console-log-before-inspector-open.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/console/console-log-custom-elements.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/console/console-log-document-proto.js [ Failure Pass ]
@@ -5592,7 +5591,13 @@
 crbug.com/1207342 http/tests/devtools/indexeddb/resources-panel.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/indexeddb/track-valid-origin.js [ Failure Pass ]
 crbug.com/1207342 http/tests/devtools/indexeddb/upgrade-events.js [ Failure Pass ]
-
+crbug.com/1207342 http/tests/devtools/editor/text-editor-toggle-tab-moves-focus.js [ Failure Pass ]
+crbug.com/1207342 http/tests/devtools/unit/binary-resource-view.js [ Failure Pass ]
+crbug.com/1207342 http/tests/devtools/unit/source-frame-pretty-print.js [ Failure Pass ]
+crbug.com/1207342 http/tests/devtools/portals/portals-sources-activate.js [ Failure Pass Timeout ]
+crbug.com/1207342 http/tests/devtools/webaudio/audio-context-selector-test.js [ Failure Pass ]
+crbug.com/1207342 http/tests/devtools/isolated-code-cache/cross-origin-test.js [ Failure Pass ]
+crbug.com/1207342 http/tests/devtools/console/console-filter-test.js [ Failure Pass ]
 
 # First party DevTools issues only work in the first-party-sets virtual suite
 crbug.com/1179186 http/tests/inspector-protocol/network/blocked-cookie-same-party-issue.js [ Skip ]
@@ -7839,7 +7844,6 @@
 # Sheriff 2021-07-29
 crbug.com/626703 http/tests/security/cross-frame-access-put.html [ Failure Pass ]
 crbug.com/626703 virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/overdraw.https.html [ Failure Pass ]
-crbug.com/626703 virtual/synchronous_html_parser/http/tests/inspector-protocol/network/cross-origin-isolation/coop-coep-get-security-isolation-info.js [ Failure Pass ]
 crbug.com/626703 virtual/threaded/external/wpt/animation-worklet/worklet-animation-start-delay.https.html [ Failure Pass ]
 crbug.com/626703 virtual/threaded/external/wpt/animation-worklet/worklet-animation-with-non-ascii-name.https.html [ Failure Pass ]
 crbug.com/626703 virtual/oopr-canvas2d/fast/canvas/canvas-composite-canvas.html [ Failure Pass ]
@@ -7861,6 +7865,15 @@
 crbug.com/1237132 [ Mac ] virtual/oopr-canvas2d/fast/canvas/canvas-blending-pattern-over-gradient.html [ Pass Timeout ]
 crbug.com/1178292 [ Mac ] fast/mediacapturefromelement/CanvasCaptureMediaStream-set-size-too-large.html [ Pass Timeout ]
 
+crbug.com/1236774 external/wpt/css/css-contain/content-visibility/slot-content-visibility-1-crash.html [ Crash ]
+crbug.com/1236774 external/wpt/css/css-contain/content-visibility/slot-content-visibility-2-crash.html [ Crash ]
+crbug.com/1236774 external/wpt/css/css-contain/content-visibility/slot-content-visibility-3-crash.html [ Crash ]
+crbug.com/1236774 external/wpt/css/css-contain/content-visibility/slot-content-visibility-4-crash.html [ Crash ]
+crbug.com/1236774 external/wpt/css/css-contain/content-visibility/slot-content-visibility-5-crash.html [ Crash ]
+crbug.com/1236774 external/wpt/css/css-contain/content-visibility/slot-content-visibility-6-crash.html [ Crash ]
+crbug.com/1236774 external/wpt/css/css-contain/content-visibility/slot-content-visibility-7-crash.html [ Crash ]
+crbug.com/1236774 external/wpt/css/css-contain/content-visibility/slot-content-visibility-8-crash.html [ Crash ]
+
 # Sheriff 2021-08-10
 crbug.com/1233840 external/wpt/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html [ Pass Timeout ]
 crbug.com/1230534 external/wpt/webrtc/simulcast/basic.https.html [ Pass Timeout ]
@@ -7870,7 +7883,6 @@
 crbug.com/1237640 http/tests/inspector-protocol/network/disabled-cache-navigation.js [ Pass Timeout ]
 crbug.com/1239175 http/tests/navigation/same-and-different-back.html [ Failure Pass ]
 crbug.com/1239164 http/tests/inspector-protocol/network/navigate-iframe-in2in.js [ Failure Pass ]
-crbug.com/1192932 http/tests/inspector-protocol/network/xhr-interception.js [ Failure Pass ]
 crbug.com/1192215 external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-weird.html [ Failure Pass ]
 crbug.com/1237909 external/wpt/webrtc-svc/RTCRtpParameters-scalability.html [ Crash Failure Pass Timeout ]
 crbug.com/1239161 external/wpt/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-1-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-1-crash.html
new file mode 100644
index 0000000..7fd4ba7
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-1-crash.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1221036">
+
+>
+<div>
+  <template shadowroot=open>
+    <slot style="content-visibility: hidden; display: block"></slot>
+  </template>
+  a
+<script type="text/javascript">
+document.execCommand("selectall");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-2-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-2-crash.html
new file mode 100644
index 0000000..47b7962
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-2-crash.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1221821">
+
+<div>
+  <template shadowroot=open>
+    <slot style="content-visibility: hidden; display: block"></slot>
+  </template>
+<link rel=stylesheet href="/fonts/ahem.css">
+<span style="columns: 1 46px">
+<style>
+* {}
+</style>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-3-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-3-crash.html
new file mode 100644
index 0000000..a849239
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-3-crash.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1221821">
+
+<div>
+  <template shadowroot=open>
+    <slot style="content-visibility: hidden; display: block"></slot>
+  </template>
+<span autofocus>
+<link rel=stylesheet href="/fonts/ahem.css">
+<body hidden>
+<span style="columns: 4294967236 46px; ">
+<style>
+* {}
+</style>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-4-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-4-crash.html
new file mode 100644
index 0000000..83e85a1
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-4-crash.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1221767">
+
+<div>
+  <template shadowroot=open>
+    <slot style="content-visibility: hidden; display: block"></slot>
+  </template>
+a
+<meter>a
+<script>
+document.execCommand("selectall");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-5-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-5-crash.html
new file mode 100644
index 0000000..01f0633
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-5-crash.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1221121">
+
+<style>
+</style>
+<style>
+</style>
+<style>
+</style>
+<div>
+  <template shadowroot=open>
+    <slot style="content-visibility: hidden; display: block"></slot>
+  </template>
+<embed id="I7" class= accesskey="h">
+<meter class="C8">a
+<script>
+  document.head.appendChild(document.createElement("style"));
+  const styleSheet = document.styleSheets[document.styleSheets.length - 1];
+  styleSheet.insertRule(":root{}");
+  const styleSheet0 = document.styleSheets[0];
+  const test2 = document.getElementById("I7");
+  test2.className += "fuzzClass5";
+  styleSheet0.insertRule('.C8 {}');
+  try {
+    test2.style.setProperty();
+  } catch(e) {}
+  document.styleSheets[3].disabled = true;
+  test2.style['border-right-color-value'] = '';
+  styleSheet0.insertRule('.foo { color: blue }', styleSheet0.cssRules.length);
+  document.execCommand("false");
+  document.designMode = "on";
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-6-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-6-crash.html
new file mode 100644
index 0000000..3055b04
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-6-crash.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1221890">
+
+<a autofocus="autofocus">
+<div>
+  <template shadowroot=open>
+    <slot style="content-visibility: hidden; display: block"></slot>
+  </template>
+</a>
+<svg>
+<clipPath id="svgvar00002">
+</div>
+<svg clip-path="url(#svgvar00002)">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-7-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-7-crash.html
new file mode 100644
index 0000000..896ebf7
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-7-crash.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1221508">
+
+<script>
+function showmodal() {
+ dialog.showModal();
+}
+</script>
+
+<body onload=showmodal()>
+  <div>
+    <template shadowroot=open>
+      <slot style="content-visibility: hidden; display:block"></slot>
+    </template>
+    <dialog id=dialog></dialog>
+  </div>
+</body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-8-crash.html b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-8-crash.html
new file mode 100644
index 0000000..208e2c72
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-contain/content-visibility/slot-content-visibility-8-crash.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1222408">
+
+<div id=details>
+  <template shadowroot=open>
+    <slot style="content-visibility: hidden; display: block"></slot>
+  </template>
+</div>
+
+<div id="clear-left">
+<div>X</div>
+<script>
+document.head.appendChild(document.createElement("style"));
+var styleSheet = document.styleSheets[document.styleSheets.length-1];
+styleSheet.insertRule(":root{}"); styleSheet.disabled=false;
+var styleSheet0 = document.styleSheets[0];
+var test0=document.getElementById("clear-left");
+var test5=test0.appendChild(details);
+var test6=test5.appendChild(document.createElement("figure"));
+var test7=test5.appendChild(document.createElement("cite"));
+requestAnimationFrame(function() {
+  styleSheet0.insertRule('p:checked, #clear-left:before {-ms-transform:perspective(45in) rotateX(90deg); -ms-flex-wrap:wrap; }',styleSheet0.cssRules.length);
+  document.execCommand(null);
+  styleSheet0.insertRule('hgroup:link, #clear-left:link {-webkit-animation-name:test; padding-bottom:$grid-padding; }',styleSheet0.cssRules.length);
+  test6.style.setProperty('font-Weight','bold');
+});
+window.scrollTo();
+test7.style.transform = 'scale(1)';
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/native-io/read_write_async_bufferlength.tentative.https.any.js b/third_party/blink/web_tests/external/wpt/native-io/read_write_async_bufferlength.tentative.https.any.js
new file mode 100644
index 0000000..7424d24e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-io/read_write_async_bufferlength.tentative.https.any.js
@@ -0,0 +1,34 @@
+// META: title=NativeIO API: Read/Write correctly handle small buffer lengths.
+// META: global=window,worker
+// META: script=resources/support.js
+
+'use strict';
+
+
+promise_test(async testCase => {
+  await reserveAndCleanupCapacity(testCase);
+  const file = await createFile(testCase, 'test_file');
+
+  for (let bufferLength = 0; bufferLength < 4; bufferLength++) {
+    let writeBuffer = new Uint8Array(bufferLength);
+    let writeResult = await file.write(writeBuffer, 0);
+    assert_equals(
+        writeResult.writtenBytes, bufferLength,
+        'NativeIOFile.write() should return success if the buffer size is ' +
+            `${bufferLength}.`);
+  }
+}, 'NativeIOFile.write succeeds when writing a small number of bytes');
+
+promise_test(async testCase => {
+  await reserveAndCleanupCapacity(testCase);
+  const file = await createFile(testCase, 'test_file');
+
+  for (let bufferLength = 0; bufferLength < 4; bufferLength++) {
+    const readBuffer = new Uint8Array(bufferLength);
+    const readResult = await file.read(readBuffer, 0);
+    assert_equals(
+        readResult.readBytes, bufferLength,
+        'NativeIOFile.read() should return success if the buffer size is ' +
+            `${bufferLength}.`);
+  }
+}, 'NativeIOFile.read succeeds when reading a small number of bytes');
diff --git a/third_party/blink/web_tests/external/wpt/native-io/read_write_sync_bufferlength.tentative.https.any.js b/third_party/blink/web_tests/external/wpt/native-io/read_write_sync_bufferlength.tentative.https.any.js
new file mode 100644
index 0000000..3f45f27
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-io/read_write_sync_bufferlength.tentative.https.any.js
@@ -0,0 +1,34 @@
+// META: title=Synchronous NativeIO API: Read/Write correctly handle small buffer lengths.
+// META: global=dedicatedworker
+// META: script=resources/support.js
+
+'use strict';
+
+
+test(testCase => {
+  reserveAndCleanupCapacitySync(testCase);
+  const file = createFileSync(testCase, 'test_file');
+
+  for (let bufferLength = 0; bufferLength < 4; bufferLength++) {
+    let writeBuffer = new Uint8Array(bufferLength);
+    let writeResult = file.write(writeBuffer, 0);
+    assert_equals(
+        writeResult.writtenBytes, bufferLength,
+        'NativeIOFileSync.write() should return success if the buffer size' +
+            ` is ${bufferLength}.`);
+  }
+}, 'NativeIOFileSync.write succeeds when writing small number of bytes');
+
+test(testCase => {
+  reserveAndCleanupCapacitySync(testCase);
+  const file = createFileSync(testCase, 'test_file');
+
+  for (let bufferLength = 0; bufferLength < 4; bufferLength++) {
+    let readBuffer = new Uint8Array(bufferLength);
+    let readResult = file.read(readBuffer, 0);
+    assert_equals(
+        readResult.readBytes, bufferLength,
+        'NativeIOFileSync.read() should return success if the buffer size' +
+            ` is ${bufferLength}.`);
+  }
+}, 'NativeIOFileSync.read succeeds when reading small number of bytes');
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/network/xhr-interception-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/network/xhr-interception-expected.txt
index a7e40bd2..c3acad2 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/network/xhr-interception-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/network/xhr-interception-expected.txt
@@ -10,6 +10,5 @@
 Network.requestIntercepted ID 2 GET example.txt type: XHR
 mockResponse ID 2
 Network.responseReceived example.txt 200 text/plain
-Page.frameStoppedLoading
 xhr.responseText = Payload for the Mock XHR response;
 
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/network/xhr-interception.js b/third_party/blink/web_tests/http/tests/inspector-protocol/network/xhr-interception.js
index 7673b2e..846ec2a1 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/network/xhr-interception.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/network/xhr-interception.js
@@ -10,6 +10,9 @@
     'example.txt': event => helper.mockResponse(event, 'HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nPayload for the Mock XHR response;'),
   };
 
+  // The XHR triggered in the onload handler of the iframe races with the frameStoppedLoading event
+  // for the frame, so don't record it in the trace.
+  helper.setSilentFrameStoppedLoading(true);
   await helper.startInterceptionTest(requestInterceptedDict, 1);
   session.evaluate(`
     var iframe = document.createElement('iframe');
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/resources/interception-test.js b/third_party/blink/web_tests/http/tests/inspector-protocol/resources/interception-test.js
index 9190380..0a5a85f 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/resources/interception-test.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/resources/interception-test.js
@@ -48,6 +48,10 @@
     this._testRunner.completeTest();
   }
 
+  setSilentFrameStoppedLoading(silent = true) {
+    this.silentFrameStoppedLoading = silent;
+  }
+
   async startInterceptionTest(requestInterceptedDict, numConsoleLogsToWaitFor, interceptionStage = 'Request') {
     if (typeof numConsoleLogsToWaitFor === 'undefined')
       numConsoleLogsToWaitFor = 0;
@@ -130,7 +134,9 @@
       // completion a bit.
       setTimeout(() => {
         frameStoppedLoading = true;
-        this._log(this._getNextId(), 'Page.frameStoppedLoading');
+        if (!this.silentFrameStoppedLoading) {
+          this._log(this._getNextId(), 'Page.frameStoppedLoading');
+        }
         maybeCompleteTest();
       }, 0);
     });
diff --git a/third_party/eigen3/README.chromium b/third_party/eigen3/README.chromium
index 62b3b28..0bec3ca 100644
--- a/third_party/eigen3/README.chromium
+++ b/third_party/eigen3/README.chromium
@@ -1,8 +1,8 @@
 Name: Eigen
 Short Name: eigen3
 URL: http://eigen.tuxfamily.org/
-Version: 12e8d57108c50d8a63605c6eb0144c838c128337
-Date: 2021/06/20
+Version: 011e0db31d1bed8b7f73662be6d57d9f30fa457a
+Date: 2021/02/13
 License: MPL 2
 License File: LICENSE
 Security Critical: Yes
diff --git a/third_party/fp16/README.chromium b/third_party/fp16/README.chromium
index 84a940b4..065e16e7 100644
--- a/third_party/fp16/README.chromium
+++ b/third_party/fp16/README.chromium
@@ -1,8 +1,8 @@
 Name: FP16
 Short Name: fp16
 URL: https://github.com/Maratyszcza/FP16
-Version: 4dfe081cf6bcd15db339cf2680b9281b8451eeb3
-Date: 2020/05/14
+Version: febbb1c163726b5db24bed55cc9dc42529068997
+Date: 2018/11/28
 License: MIT
 License File: LICENSE
 Security Critical: Yes
diff --git a/third_party/neon_2_sse/README.chromium b/third_party/neon_2_sse/README.chromium
index 9a025aa..55b19cbe 100644
--- a/third_party/neon_2_sse/README.chromium
+++ b/third_party/neon_2_sse/README.chromium
@@ -1,8 +1,8 @@
 Name: ARM_NEON_2_x86_SSE
 Short Name: neon_2_sse
 URL: https://github.com/intel/ARM_NEON_2_x86_SSE
-Version: 1200fe90bb174a6224a525ee60148671a786a71f
-Date: 2018/04/04
+Version: 42b2bebacee25452e150095ef4480b3fa26e30f5
+Date: 2020/06/22
 License: Custom
 License File: LICENSE
 Security Critical: Yes
diff --git a/third_party/ruy/BUILD.gn b/third_party/ruy/BUILD.gn
index 54a0e61..53d2914 100644
--- a/third_party/ruy/BUILD.gn
+++ b/third_party/ruy/BUILD.gn
@@ -6,24 +6,18 @@
   include_dirs = [ "src" ]
 }
 
-config("ruy_flags") {
-  if (target_cpu == "arm" || target_cpu == "arm64") {
-    cflags = [ "-Wno-inline-asm" ]
-  }
-}
-
 source_set("ruy") {
   sources = [
     "src/ruy/allocator.cc",
     "src/ruy/allocator.h",
     "src/ruy/apply_multiplier.cc",
     "src/ruy/apply_multiplier.h",
-    "src/ruy/asm_helpers.h",
     "src/ruy/block_map.cc",
     "src/ruy/block_map.h",
     "src/ruy/blocking_counter.cc",
     "src/ruy/blocking_counter.h",
     "src/ruy/check_macros.h",
+    "src/ruy/common.h",
     "src/ruy/context.cc",
     "src/ruy/context.h",
     "src/ruy/context_get_ctx.cc",
@@ -31,25 +25,26 @@
     "src/ruy/cpu_cache_params.h",
     "src/ruy/cpuinfo.cc",
     "src/ruy/cpuinfo.h",
+    "src/ruy/create_trmul_params.cc",
     "src/ruy/create_trmul_params.h",
     "src/ruy/ctx.cc",
     "src/ruy/ctx.h",
     "src/ruy/ctx_impl.h",
-    "src/ruy/denormal.cc",
-    "src/ruy/frontend.cc",
-    "src/ruy/frontend.h",
+    "src/ruy/dispatch.h",
     "src/ruy/have_built_path_for.h",
-    "src/ruy/have_built_path_for_avx.cc",
-    "src/ruy/have_built_path_for_avx2_fma.cc",
+    "src/ruy/have_built_path_for_avx2.cc",
     "src/ruy/have_built_path_for_avx512.cc",
+    "src/ruy/have_built_path_for_avxvnni.cc",
+    "src/ruy/have_built_path_for_sse42.cc",
     "src/ruy/kernel.h",
     "src/ruy/kernel_arm.h",
     "src/ruy/kernel_arm32.cc",
     "src/ruy/kernel_arm64.cc",
-    "src/ruy/kernel_avx.cc",
-    "src/ruy/kernel_avx2_fma.cc",
+    "src/ruy/kernel_avx2.cc",
     "src/ruy/kernel_avx512.cc",
+    "src/ruy/kernel_avxvnni.cc",
     "src/ruy/kernel_common.h",
+    "src/ruy/kernel_sse42.cc",
     "src/ruy/kernel_x86.h",
     "src/ruy/mat.h",
     "src/ruy/matrix.h",
@@ -58,20 +53,18 @@
     "src/ruy/pack.h",
     "src/ruy/pack_arm.cc",
     "src/ruy/pack_arm.h",
-    "src/ruy/pack_avx.cc",
-    "src/ruy/pack_avx2_fma.cc",
+    "src/ruy/pack_avx2.cc",
     "src/ruy/pack_avx512.cc",
+    "src/ruy/pack_avxvnni.cc",
     "src/ruy/pack_common.h",
+    "src/ruy/pack_sse42.cc",
     "src/ruy/pack_x86.h",
     "src/ruy/path.h",
-    "src/ruy/performance_advisory.h",
     "src/ruy/platform.h",
     "src/ruy/pmu.cc",
     "src/ruy/pmu.h",
     "src/ruy/prepacked_cache.cc",
     "src/ruy/prepacked_cache.h",
-    "src/ruy/prepare_packed_matrices.cc",
-    "src/ruy/prepare_packed_matrices.h",
     "src/ruy/profiler/instrumentation.cc",
     "src/ruy/profiler/instrumentation.h",
     "src/ruy/profiler/profiler.cc",
@@ -92,16 +85,12 @@
     "src/ruy/trmul_params.h",
     "src/ruy/tune.cc",
     "src/ruy/tune.h",
-    "src/ruy/validate.h",
     "src/ruy/wait.cc",
     "src/ruy/wait.h",
   ]
 
   configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [
-    ":ruy_flags",
-    "//build/config/compiler:no_chromium_code",
-  ]
+  configs += [ "//build/config/compiler:no_chromium_code" ]
 
   public_configs = [ ":ruy_includes" ]
 }
diff --git a/third_party/ruy/README.chromium b/third_party/ruy/README.chromium
index c917802..96f7eb1 100644
--- a/third_party/ruy/README.chromium
+++ b/third_party/ruy/README.chromium
@@ -1,8 +1,8 @@
 Name: The ruy matrix multiplication library
 Short Name: ruy
 URL: https://github.com/google/ruy
-Version: e6c1b8dc8a8b00ee74e7268aac8b18d7260ab1ce
-Date: 2020/06/18
+Version: 34ea9f4993955fa1ff4eb58e504421806b7f2e8f
+Date: 2020/06/11
 License: Apache 2
 License File: LICENSE
 Security Critical: Yes
diff --git a/third_party/tflite/BUILD.gn b/third_party/tflite/BUILD.gn
index 90de1e6..df1f488a 100644
--- a/third_party/tflite/BUILD.gn
+++ b/third_party/tflite/BUILD.gn
@@ -77,7 +77,6 @@
     "src/tensorflow/lite/op_resolver.h",
     "src/tensorflow/lite/optional_debug_tools.h",
     "src/tensorflow/lite/schema/schema_generated.h",
-    "src/tensorflow/lite/schema/schema_utils.h",
     "src/tensorflow/lite/stderr_reporter.h",
     "src/tensorflow/lite/string_type.h",
     "src/tensorflow/lite/string_util.h",
@@ -133,6 +132,7 @@
     "src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_uint8.h",
     "src/tensorflow/lite/kernels/internal/optimized/depthwiseconv_uint8_3x3_filter.h",
     "src/tensorflow/lite/kernels/internal/optimized/eigen_spatial_convolutions.h",
+    "src/tensorflow/lite/kernels/internal/optimized/eigen_tensor_reduced_instantiations_oss.h",
     "src/tensorflow/lite/kernels/internal/optimized/im2col_utils.h",
     "src/tensorflow/lite/kernels/internal/optimized/integer_ops/add.h",
     "src/tensorflow/lite/kernels/internal/optimized/integer_ops/conv.h",
@@ -394,6 +394,7 @@
     "src/tensorflow/lite/core/subgraph.cc",
     "src/tensorflow/lite/delegates/nnapi/nnapi_delegate.h",
     "src/tensorflow/lite/delegates/nnapi/nnapi_delegate_disabled.cc",
+    "src/tensorflow/lite/delegates/status.h",
     "src/tensorflow/lite/experimental/resource/lookup_interfaces.h",
     "src/tensorflow/lite/experimental/resource/lookup_util.h",
     "src/tensorflow/lite/experimental/resource/resource_base.h",
@@ -404,7 +405,6 @@
     "src/tensorflow/lite/graph_info.cc",
     "src/tensorflow/lite/interpreter.cc",
     "src/tensorflow/lite/interpreter_builder.cc",
-    "src/tensorflow/lite/interpreter_experimental.cc",
     "src/tensorflow/lite/memory_planner.h",
     "src/tensorflow/lite/minimal_logging.cc",
     "src/tensorflow/lite/minimal_logging.h",
@@ -418,11 +418,8 @@
     "src/tensorflow/lite/optional_debug_tools.cc",
     "src/tensorflow/lite/profiling/memory_info.cc",
     "src/tensorflow/lite/profiling/memory_info.h",
-    "src/tensorflow/lite/profiling/platform_profiler.cc",
-    "src/tensorflow/lite/profiling/platform_profiler.h",
     "src/tensorflow/lite/profiling/time.cc",
     "src/tensorflow/lite/profiling/time.h",
-    "src/tensorflow/lite/schema/schema_utils.cc",
     "src/tensorflow/lite/simple_memory_arena.cc",
     "src/tensorflow/lite/simple_memory_arena.h",
     "src/tensorflow/lite/stderr_reporter.cc",
@@ -451,11 +448,7 @@
   if (is_ios) {
     sources += [ "src/tensorflow/lite/minimal_logging_ios.cc" ]
   } else if (is_android) {
-    sources += [
-      "src/tensorflow/lite/minimal_logging_android.cc",
-      "src/tensorflow/lite/profiling/atrace_profiler.cc",
-      "src/tensorflow/lite/profiling/atrace_profiler.h",
-    ]
+    sources += [ "src/tensorflow/lite/minimal_logging_android.cc" ]
   } else {
     sources += [ "src/tensorflow/lite/minimal_logging_default.cc" ]
   }
diff --git a/third_party/tflite/README.chromium b/third_party/tflite/README.chromium
index d061177..9d10dec 100644
--- a/third_party/tflite/README.chromium
+++ b/third_party/tflite/README.chromium
@@ -1,8 +1,8 @@
 Name: TensorFlow Lite
 Short Name: tflite
 URL: https://github.com/tensorflow/tensorflow
-Version: e6c1b8dc8a8b00ee74e7268aac8b18d7260ab1ce
-Date: 2020/06/24
+Version: 2.3.0
+Date: 2020/07/27
 License: Apache 2.0
 License File: LICENSE
 Security Critical: Yes
diff --git a/tools/flags/list_flags.py b/tools/flags/list_flags.py
index e43cdf8..5509932 100755
--- a/tools/flags/list_flags.py
+++ b/tools/flags/list_flags.py
@@ -27,7 +27,7 @@
 def load_metadata():
   flags_path = os.path.join(ROOT_PATH, 'chrome', 'browser',
                             'flag-metadata.json')
-  return json5.load(open(flags_path, encoding='utf-8'))
+  return json5.load(open(flags_path))
 
 
 def keep_expired_by(flags, mstone):
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 3261891..1a20868 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -46966,6 +46966,7 @@
   <int value="-1932609987" label="CSSBackdropFilter:disabled"/>
   <int value="-1932379839"
       label="OmniboxUIExperimentHideSteadyStateUrlTrivialSubdomains:enabled"/>
+  <int value="-1931712004" label="ConsolidatedSiteStorageControls:disabled"/>
   <int value="-1930720286" label="nacl-debug-mask"/>
   <int value="-1928198763" label="enable-async-dns"/>
   <int value="-1927080237" label="Vulkan:enabled"/>
@@ -47155,6 +47156,7 @@
   <int value="-1784788154" label="NewRemotePlaybackPipeline:disabled"/>
   <int value="-1783790234"
       label="AutofillEnableOfferNotificationCrossTabTracking:enabled"/>
+  <int value="-1783605860" label="GmsCoreEmoji:disabled"/>
   <int value="-1782684481"
       label="AutofillAutoTriggerManualFallbackForCards:disabled"/>
   <int value="-1780306716"
@@ -48821,6 +48823,7 @@
   <int value="-462205750" label="enable-service-worker-sync"/>
   <int value="-461292699" label="ContentSuggestionsCategoryOrder:enabled"/>
   <int value="-460702745" label="ExportTaggedPDF:disabled"/>
+  <int value="-460486807" label="ConsolidatedSiteStorageControls:enabled"/>
   <int value="-460313418" label="ProgressBarThrottle:enabled"/>
   <int value="-460081932" label="CustomFeedbackUi:disabled"/>
   <int value="-459318667" label="AccessiblePDFForm:enabled"/>
@@ -48902,6 +48905,7 @@
   <int value="-389664522"
       label="OmniboxUIExperimentHideSteadyStateUrlPathQueryAndRefOnInteraction:enabled"/>
   <int value="-389283574" label="IPH_PasswordsAccountStorage:disabled"/>
+  <int value="-388244530" label="GmsCoreEmoji:enabled"/>
   <int value="-387606010" label="ArcBootCompletedBroadcast:enabled"/>
   <int value="-385337473" label="enable-fast-unload"/>
   <int value="-384589459" label="disable-supervised-user-safesites"/>
@@ -81977,6 +81981,387 @@
   <int value="32" label="kMediaCdmOriginData"/>
 </enum>
 
+<enum name="TrafficAnnotationUniqueIdHash">
+<!-- Generated from tools/traffic_annotation/summary/annotations.xml. The traffic annotation audiotor doesn't check if the following entries are in sync with annotations.xml. TODO(crbug.com/1232623): Remove this enum once the field investigation is concluded. -->
+
+  <int value="485305" label="data_reduction_proxy_config"/>
+  <int value="516551" label="socket_bio_adapter"/>
+  <int value="727478" label="metrics_report_ukm"/>
+  <int value="727528" label="metrics_report_uma"/>
+  <int value="1112842" label="oauth2_mint_token_flow"/>
+  <int value="1313982" label="safe_browsing_client_side_phishing_detector"/>
+  <int value="3464399" label="cablev2_websocket_from_client"/>
+  <int value="3556498" label="test"/>
+  <int value="3646641" label="ocsp_start_url_loader"/>
+  <int value="3989826" label="dom_distiller"/>
+  <int value="4300475" label="gaia_cookie_manager_external_cc_result"/>
+  <int value="4306022" label="safe_browsing_binary_upload_app"/>
+  <int value="4598626" label="gaia_auth_check_connection_info"/>
+  <int value="4883150" label="heartbeat_sender"/>
+  <int value="4986170" label="ui_devtools_server"/>
+  <int value="5021348" label="sync_stop_reporter"/>
+  <int value="5151071" label="extension_manifest_fetcher"/>
+  <int value="5154306" label="blob_reader"/>
+  <int value="5492492" label="google_url_tracker"/>
+  <int value="5576536" label="cast_udp_transport"/>
+  <int value="5637379" label="gaia_oauth_client_get_tokens"/>
+  <int value="6019475" label="safe_browsing_module_loader"/>
+  <int value="6055066" label="omnibox_documentsuggest"/>
+  <int value="6483617" label="origin_policy_loader"/>
+  <int value="7433837" label="refresh_token_annotation_request"/>
+  <int value="7687691" label="omnibox_zerosuggest"/>
+  <int value="7754485" label="backdrop_next_image_download"/>
+  <int value="8250451" label="data_reduction_proxy_warmup"/>
+  <int value="8561691" label="safe_browsing_v4_get_hash"/>
+  <int value="8591273" label="chrome_apps_socket_api"/>
+  <int value="9229948" label="prefetch_proxy_canary_check"/>
+  <int value="9459438" label="external_policy_fetcher"/>
+  <int value="10243490" label="query_tiles_fetcher"/>
+  <int value="10498172" label="per_user_topic_registration_request"/>
+  <int value="11258689" label="proxy_config_system"/>
+  <int value="13211343" label="suggestions_image_manager"/>
+  <int value="13694792" label="desktop_ios_promotion"/>
+  <int value="13704791" label="floc_remote_permission_service"/>
+  <int value="13924805" label="proxy_config_windows_resolver"/>
+  <int value="14257952" label="supervised_user_url_filter"/>
+  <int value="15418154" label="ntp_snippets_fetch"/>
+  <int value="15952025" label="dial_get_app_info"/>
+  <int value="16469669" label="background_fetch_context"/>
+  <int value="16653985" label="content_suggestion_get_favicon"/>
+  <int value="16927377" label="lookup_single_password_leak"/>
+  <int value="17188928" label="websocket_stream"/>
+  <int value="17400350" label="web_history_query"/>
+  <int value="17562717" label="history_ui_favicon_request_handler_get_favicon"/>
+  <int value="18300705" label="gcm_channel_status_request"/>
+  <int value="18764319" label="webstore_installer"/>
+  <int value="18870110" label="desktop_screenshot_save"/>
+  <int value="19185953" label="offline_prefetch"/>
+  <int value="20053290" label="cryptauth_find_eligible_for_promotion"/>
+  <int value="20153177" label="quic_chromium_packet_writer"/>
+  <int value="21145003" label="extension_crx_fetcher"/>
+  <int value="21498113" label="service_worker_script_load"/>
+  <int value="21785164" label="intranet_redirect_detector"/>
+  <int value="22096011" label="test_partial"/>
+  <int value="22262963" label="enterprise_safe_browsing_realtime_url_lookup"/>
+  <int value="22265491" label="user_info_fetcher"/>
+  <int value="22573197" label="cast_udp_socket"/>
+  <int value="22774132" label="devtools_free_data_source"/>
+  <int value="23036184" label="openscreen_message"/>
+  <int value="23472048" label="network_location_provider"/>
+  <int value="23527666" label="send_message_express"/>
+  <int value="23537266" label="expect_ct_reporter"/>
+  <int value="24058523" label="CRD_relay_session_request"/>
+  <int value="24186190" label="webrtc_event_log_uploader"/>
+  <int value="25204343" label="cryptauth_toggle_easyunlock"/>
+  <int value="25790702" label="appcache_update_job"/>
+  <int value="25844439" label="render_view_context_menu"/>
+  <int value="25921771" label="webstore_install_helper"/>
+  <int value="26096088" label="speech_recognition_downstream"/>
+  <int value="26216847" label="gaia_auth_merge_sessions"/>
+  <int value="26302604" label="webstore_data_fetcher"/>
+  <int value="26372521" label="sync_attachment_downloader"/>
+  <int value="27071967" label="chrome_cleaner"/>
+  <int value="27833508" label="auction_downloader"/>
+  <int value="27915688" label="oauth2_access_token_fetcher"/>
+  <int value="28613769" label="cablev2_websocket_from_authenticator"/>
+  <int value="29057242" label="gcm_connection_factory"/>
+  <int value="29061438" label="file_system_connector_to_box"/>
+  <int value="29188932" label="oauth2_api_call_flow"/>
+  <int value="29506140" label="receive_messages_express"/>
+  <int value="29865866" label="headless_url_request"/>
+  <int value="30516662" label="trusted_vault_request"/>
+  <int value="30656793" label="nearby_share_update_device"/>
+  <int value="30913825" label="family_info"/>
+  <int value="31074955" label="security_key_socket"/>
+  <int value="31445884" label="gaia_auth_multilogin"/>
+  <int value="32030464" label="persist_blob_to_indexed_db"/>
+  <int value="32197336" label="http_server_error_response"/>
+  <int value="32472991" label="direct_sockets"/>
+  <int value="32585152" label="gaia_oauth_client_get_token_info"/>
+  <int value="33703614" label="previews_litepage_origin_prober"/>
+  <int value="33813109" label="previews_litepage_prober"/>
+  <int value="34459548" label="puch_client_channel"/>
+  <int value="34557599" label="hintsfetcher_gethintsrequest"/>
+  <int value="34767164" label="backdrop_collection_images_download"/>
+  <int value="35266994" label="early_hints_preload"/>
+  <int value="35370363" label="suggestions_service"/>
+  <int value="35380758" label="download_manager_resume"/>
+  <int value="35473769" label="logo_service"/>
+  <int value="35565745" label="gaia_auth_list_accounts"/>
+  <int value="35725390" label="https_server_previews_navigation"/>
+  <int value="36859107" label="logo_tracker"/>
+  <int value="36915753" label="spdy_push_stream"/>
+  <int value="36944304" label="sanitized_image_source"/>
+  <int value="37249086" label="android_device_manager_socket"/>
+  <int value="37531401" label="proxy_script_fetcher"/>
+  <int value="37994740" label="nearby_webrtc_connection"/>
+  <int value="38197513" label="stream_packet_socket"/>
+  <int value="38256901" label="ftl_registration_manager"/>
+  <int value="38670228" label="download_internals_webui_source"/>
+  <int value="39356976" label="android_web_socket"/>
+  <int value="39877119" label="gaia_auth_exchange_device_id"/>
+  <int value="39886742" label="web_push_message"/>
+  <int value="40127335" label="openscreen_tls_message"/>
+  <int value="41010697" label="previews_prober"/>
+  <int value="41154842" label="doodle_service"/>
+  <int value="41424546" label="dial_url_fetcher"/>
+  <int value="41749213" label="web_history_delete_url"/>
+  <int value="41799176" label="memories_remote_model_request"/>
+  <int value="42848942" label="safe_browsing_extended_reporting"/>
+  <int value="43206794" label="permission_request_creator"/>
+  <int value="43759504" label="unwanted_software_report"/>
+  <int value="44494884" label="icon_catcher_get_large_icon"/>
+  <int value="44551896" label="chrome_cart_discounts_lookup"/>
+  <int value="44583172" label="prefetch_download"/>
+  <int value="44583821" label="safe_browsing_feedback"/>
+  <int value="45578882" label="undefined"/>
+  <int value="46188932" label="network_time_component"/>
+  <int value="47152935" label="sdch_dictionary_fetch"/>
+  <int value="47815025" label="omnibox_suggest"/>
+  <int value="48603483" label="sct_auditing"/>
+  <int value="48673144" label="new_tab_page_handler"/>
+  <int value="48924790" label="ftl_messaging_client_send_messages"/>
+  <int value="49160454" label="devtools_http_handler"/>
+  <int value="49246286" label="backdrop_collection_names_download"/>
+  <int value="49544361" label="remote_suggestions_provider"/>
+  <int value="49601082" label="plugins_resource_service"/>
+  <int value="50422598" label="dial_get_device_description"/>
+  <int value="50464499" label="extension_install_signer"/>
+  <int value="50755044" label="popular_sites_fetch"/>
+  <int value="50808258" label="task_module_service"/>
+  <int value="50816767" label="lib_address_input"/>
+  <int value="50859288" label="cloud_print_proxy"/>
+  <int value="50910588" label="litepages_robots_rules"/>
+  <int value="51164680" label="profile_avatar"/>
+  <int value="51586722" label="websocket_basic_stream"/>
+  <int value="52821843" label="geo_language_provider"/>
+  <int value="53512439" label="pepper_udp_socket"/>
+  <int value="53695122" label="credenential_avatar"/>
+  <int value="54836939" label="cryptauth_enrollment_flow_finish"/>
+  <int value="54845618" label="update_client"/>
+  <int value="55663676" label="ftl_messaging_client_ack_messages"/>
+  <int value="56074781" label="drive_service"/>
+  <int value="56275203" label="save_file_manager"/>
+  <int value="56351037" label="download_web_contents_frame"/>
+  <int value="56434025" label="gcm_subscription"/>
+  <int value="56866367" label="pdf_plugin_placeholder"/>
+  <int value="57114284" label="sigined_exchange_validity_pinger"/>
+  <int value="57143548" label="spdy_session_control"/>
+  <int value="57144960" label="sync_http_bridge"/>
+  <int value="57748571" label="affiliation_lookup_by_hash"/>
+  <int value="57773453" label="navigation_predictor_srp_prefetch"/>
+  <int value="57785193" label="search_suggest_service"/>
+  <int value="58596544" label="chrome_cart_get_discounted_link"/>
+  <int value="59302801" label="services_http_server_error_response"/>
+  <int value="59568147" label="safe_browsing_binary_upload_connector"/>
+  <int value="59592717" label="extension_blacklist"/>
+  <int value="60071001" label="net_error_helper"/>
+  <int value="60744935" label="devtools_cdp_network_resource"/>
+  <int value="60921996" label="ocsp_start_url_request"/>
+  <int value="60946824" label="web_history_expire"/>
+  <int value="61001455" label="cloud_speech_recognition"/>
+  <int value="61656965" label="gcm_registration"/>
+  <int value="61684939" label="omnibox_navigation_observer"/>
+  <int value="61695471" label="open_screen_tls_message"/>
+  <int value="62443804" label="webrtc_log_upload"/>
+  <int value="63171670" label="navigation_url_loader"/>
+  <int value="63497370" label="webrtc_peer_connection"/>
+  <int value="64733114" label="content_hash_verification_job"/>
+  <int value="65957842" label="gcm_checkin"/>
+  <int value="66322287" label="password_protection_request"/>
+  <int value="66590631" label="safe_browsing_certificate_error_reporting"/>
+  <int value="66846958" label="speech_recognition_upstream"/>
+  <int value="67052219" label="promo_service"/>
+  <int value="67117364" label="remoting_register_support_host_request"/>
+  <int value="67638271" label="printer_job_handler"/>
+  <int value="67750043" label="gaia_create_reauth_proof_token_for_parent"/>
+  <int value="68561428" label="data_reduction_proxy_pingback"/>
+  <int value="68745894" label="safe_browsing_get_full_hash"/>
+  <int value="69585116" label="password_requirements_spec_fetch"/>
+  <int value="69879956" label="video_tutorial_fetcher"/>
+  <int value="70796791" label="content_resource_fetcher"/>
+  <int value="71102679" label="chrome_cleanup_report"/>
+  <int value="71578042" label="cloud_print_backend"/>
+  <int value="71663319" label="safe_browsing_binary_upload"/>
+  <int value="71837756" label="stream_message_pipe_adapter"/>
+  <int value="72087791" label="worker_script_load"/>
+  <int value="72157052" label="predictive_prefetch"/>
+  <int value="72354423" label="invalidation_service"/>
+  <int value="73107389" label="omnibox_result_change"/>
+  <int value="73309970" label="payment_instrument_icon_fetcher"/>
+  <int value="77012883" label="missing"/>
+  <int value="77597059" label="domain_security_policy"/>
+  <int value="77673751" label="device_geolocation_request"/>
+  <int value="77734467" label="managed_configuration_loader"/>
+  <int value="78408551" label="ntp_custom_link_checker_request"/>
+  <int value="78447809" label="mirroring_get_setup_info"/>
+  <int value="78479125" label="notification_client"/>
+  <int value="78544924" label="supervised_users_blacklist"/>
+  <int value="78917933" label="one_google_bar_service"/>
+  <int value="79227717" label="dns_transaction"/>
+  <int value="79442849" label="sigined_exchange_cert_fetcher"/>
+  <int value="79895226" label="dns_over_https"/>
+  <int value="79904729" label="devtools_proxy_config"/>
+  <int value="79957943" label="safe_browsing_chunk_backup_request"/>
+  <int value="80134684" label="certificate_verifier_url_loader"/>
+  <int value="80255301" label="remote_copy_message_handler"/>
+  <int value="80832574" label="history_notice_utils_popup"/>
+  <int value="81157007" label="resource_dispatcher_host"/>
+  <int value="82167736" label="gaia_auth_get_user_info"/>
+  <int value="82462683" label="gaia_oauth_client_refresh_token"/>
+  <int value="82509217" label="safe_browsing_v4_update"/>
+  <int value="83476155" label="gaia_oauth_client_get_user_info"/>
+  <int value="84045030" label="payment_manifest_downloader"/>
+  <int value="84165821" label="blink_extension_resource_loader"/>
+  <int value="84212388" label="omnibox_suggest_deletion"/>
+  <int value="84575287" label="background_performance_tracer"/>
+  <int value="84889397" label="cryptauth_enrollment_flow_setup"/>
+  <int value="85742023" label="interest_feedv2_send"/>
+  <int value="85988208" label="certificate_verifier_url_request"/>
+  <int value="86015226" label="floc_event_logger"/>
+  <int value="87437888" label="gaia_oauth_client_get_account_capabilities"/>
+  <int value="87439531" label="feed_image_fetcher"/>
+  <int value="87558948" label="cast_message_handler"/>
+  <int value="87635401" label="quic_chromium_incoming_session"/>
+  <int value="87775794" label="adb_client_socket"/>
+  <int value="87963126" label="qr_code_save"/>
+  <int value="88754904" label="captive_portal_service"/>
+  <int value="88863520" label="autofill_query"/>
+  <int value="88906454" label="xmpp_signal_strategy"/>
+  <int value="88945310" label="remoting_ice_config_request"/>
+  <int value="89093734" label="remoting_directory_delete_host"/>
+  <int value="89492280" label="permission_predictions"/>
+  <int value="90263263" label="box_access_token_fetcher"/>
+  <int value="90561372" label="autofill_image_fetcher_card_art_image"/>
+  <int value="91068704" label="prefetch_visuals"/>
+  <int value="91597383" label="gaia_auth_login"/>
+  <int value="91999155" label="nearby_share_contacts"/>
+  <int value="92125886" label="ntp_custom_background"/>
+  <int value="92245202" label="interest_feedv2_image_send"/>
+  <int value="93232258" label="mojo_context_state"/>
+  <int value="93434368" label="remoting_directory_get_host_list"/>
+  <int value="94099818" label="bluetooth_socket"/>
+  <int value="95075845" label="port_forwarding_controller_socket"/>
+  <int value="95103115" label="query_tiles_image_loader"/>
+  <int value="95250780" label="open_screen_message"/>
+  <int value="95588446" label="payments_sync_cards"/>
+  <int value="95682324" label="ranker_url_fetcher"/>
+  <int value="95711309" label="ntp_contextual_suggestions_fetch"/>
+  <int value="95910019" label="drag_download_file"/>
+  <int value="95951029" label="downloads_dom_handler"/>
+  <int value="95983790" label="media_router_global_media_controls_image"/>
+  <int value="96136865" label="auction_report_sender"/>
+  <int value="96565489" label="cryptauth_device_sync_tickle"/>
+  <int value="96590038" label="network_location_request"/>
+  <int value="97159948" label="browser_switcher_ieem_sitelist"/>
+  <int value="97199008" label="doodle_fetcher"/>
+  <int value="97978464" label="gaia_auth_fetch_for_uber"/>
+  <int value="98123737" label="devtools_interceptor"/>
+  <int value="98658519" label="accounts_image_fetcher"/>
+  <int value="99279418" label="rlz_ping"/>
+  <int value="99742369" label="remoting_log_to_server"/>
+  <int value="100143055" label="optimization_guide_model_download"/>
+  <int value="100545943" label="webui_content_scripts_download"/>
+  <int value="100936478" label="photos_service"/>
+  <int value="101725581" label="cros_recovery_image_download"/>
+  <int value="101845102" label="blink_resource_loader"/>
+  <int value="102595701" label="history_notice_utils_notice"/>
+  <int value="102819690" label="sync_file_system"/>
+  <int value="102935425" label="safe_browsing_client_side_malware_detector"/>
+  <int value="103052331" label="floc_id_provider_impl"/>
+  <int value="103133150" label="icon_cacher"/>
+  <int value="103172229" label="cast_channel_send"/>
+  <int value="104798869" label="autofill_upload"/>
+  <int value="105330607" label="profile_resetter_upload"/>
+  <int value="105985951" label="gcd_rest_client"/>
+  <int value="106124561" label="ssl_hmac_channel_authenticator"/>
+  <int value="106373593" label="optimization_guide_model"/>
+  <int value="106980485" label="safe_browsing_backup_request"/>
+  <int value="107267424" label="open_search"/>
+  <int value="107268760" label="remoting_telemetry_log_writer"/>
+  <int value="107881858" label="image_annotation"/>
+  <int value="108665132" label="bidirectional_stream"/>
+  <int value="108804096" label="domain_reliability_report_upload"/>
+  <int value="108903331" label="signed_in_profile_avatar"/>
+  <int value="108986091" label="search_prefetch_service"/>
+  <int value="109607776" label="javascript_report_error"/>
+  <int value="109679553" label="brandcode_config"/>
+  <int value="109891200" label="reporting"/>
+  <int value="109987793" label="kids_chrome_management_client_classify_url"/>
+  <int value="110307337" label="web_history_service"/>
+  <int value="110815970" label="resource_prefetch"/>
+  <int value="110915076" label="interest_group_update_fetcher"/>
+  <int value="111565057" label="devtools_hard_coded_data_source"/>
+  <int value="111712433" label="cloud_print"/>
+  <int value="111904019" label="affiliation_lookup"/>
+  <int value="112189210" label="favicon_loader"/>
+  <int value="112303907" label="blob_read"/>
+  <int value="113005423" label="webid"/>
+  <int value="113065062" label="tethering_handler_socket"/>
+  <int value="113231892" label="url_fetcher_downloader"/>
+  <int value="113422320" label="conversion_measurement_report"/>
+  <int value="114468207" label="ssl_name_mismatch_lookup"/>
+  <int value="114615359" label="web_bundle_loader"/>
+  <int value="115188287" label="chrome_variations_service"/>
+  <int value="115192205" label="cast_socket"/>
+  <int value="115907811" label="safe_browsing_cache_collector"/>
+  <int value="116426676" label="gaia_auth_log_out"/>
+  <int value="116443055" label="renderer_initiated_download"/>
+  <int value="117649486" label="spellcheck_hunspell_dictionary"/>
+  <int value="117688925" label="remoting_directory_register_host"/>
+  <int value="117782019" label="device_management_service"/>
+  <int value="118389509" label="url_prevision_fetcher"/>
+  <int value="119015679" label="proxy_config_direct"/>
+  <int value="119210936" label="prefetch_proxy_loader"/>
+  <int value="119324658" label="safe_browsing_realtime_url_lookup"/>
+  <int value="119416099" label="load_autofill_gstatic_data"/>
+  <int value="119542033" label="gcm_unregistration"/>
+  <int value="120000562" label="cryptauth_find_eligible_unlock_devices"/>
+  <int value="120623198" label="pepper_tcp_socket"/>
+  <int value="120830730" label="quic_chromium_incoming_pending_session"/>
+  <int value="121068967" label="downloads_api_run_async"/>
+  <int value="123387409" label="prefetch_proxy_probe"/>
+  <int value="123714070" label="nearby_share_list_public_certificates"/>
+  <int value="124847649" label="nux_ntp_background_preview"/>
+  <int value="124950347" label="safe_browsing_incident"/>
+  <int value="125522256" label="client_download_request"/>
+  <int value="126122632" label="web_history_expire_between_dates"/>
+  <int value="127739401" label="whats_new_handler"/>
+  <int value="128608592" label="web_app_origin_association_download"/>
+  <int value="129652775" label="devtools_network_resource"/>
+  <int value="129872904" label="service_worker_navigation_preload"/>
+  <int value="130931413" label="service_worker_update_checker"/>
+  <int value="131180348" label="indexed_db_internals_handler"/>
+  <int value="131236802" label="data_reduction_proxy_secure_proxy_check"/>
+  <int value="131711536" label="download_recovery_component"/>
+  <int value="131741641" label="permission_reporting"/>
+  <int value="132553989" label="spellcheck_lookup"/>
+  <int value="132657055" label="sync_attachment_uploader"/>
+  <int value="133221587" label="proxy_config_headless"/>
+  <int value="133982351" label="gaia_auth_revoke_token"/>
+  <int value="134272131" label="digital_asset_links"/>
+  <int value="134289752" label="gaia_auth_exchange_cookies"/>
+  <int value="134618785" label="well_known_path_that_should_not_exist"/>
+  <int value="134729048" label="chrome_feedback_report_app"/>
+  <int value="134755844" label="cast_keep_alive_delegate"/>
+  <int value="135118587" label="parallel_download_job"/>
+  <int value="135251783" label="thumbnail_source"/>
+  <int value="135636011" label="devtools_handle_front_end_messages"/>
+  <int value="135799714" label="gstatic_change_password_override_urls"/>
+  <int value="135967426" label="ppapi_download_request"/>
+  <int value="136028241" label="chrome_HaTS_service"/>
+  <int value="136117054" label="supervised_user_refresh_token_fetcher"/>
+  <int value="136248372" label="ftl_messaging_client_receive_messages"/>
+  <int value="136386805" label="safe_search_service"/>
+  <int value="136468456" label="proxy_config_settings"/>
+  <int value="136498680" label="cryptauth_get_my_devices"/>
+  <int value="137093034" label="ice_config_fetcher"/>
+  <int value="137116619" label="translate_url_fetcher"/>
+  <int value="137420486" label="cloud_print_credential_update"/>
+  <int value="137457845" label="web_history_counter"/>
+  <int value="137724067" label="safety_check_update_connectivity"/>
+</enum>
+
 <enum name="TranslateAssistContentResult">
   <int value="0" label="The feature was disabled"/>
   <int value="1" label="The tab was null"/>
diff --git a/tools/metrics/histograms/metadata/blink/histograms.xml b/tools/metrics/histograms/metadata/blink/histograms.xml
index 55bb60f..34a4aa4 100644
--- a/tools/metrics/histograms/metadata/blink/histograms.xml
+++ b/tools/metrics/histograms/metadata/blink/histograms.xml
@@ -1129,7 +1129,7 @@
 </histogram>
 
 <histogram name="Blink.Fonts.EmojiClusterBrokenness" units="%"
-    expires_after="2021-09-20">
+    expires_after="2022-01-10">
   <owner>drott@chromium.org</owner>
   <owner>layout-dev@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index d97e0af..2f396d1 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -11915,7 +11915,18 @@
   <token key="UsageScenario" variants="UsageScenario"/>
 </histogram>
 
-<histogram name="PerformanceMonitor.ResourceCoalition.BytesReadPerSecond"
+<histogram name="PerformanceMonitor.ResourceCoalition.Availability"
+    enum="CoalitionIDAvailability" expires_after="2021-11-30">
+  <owner>sebmarchand@chromium.org</owner>
+  <owner>catan-team@chromium.org</owner>
+  <summary>
+    Details about whether or not it's possible to get coalition resource usage
+    data on the system. Only on macOS, recorded once at startup.
+  </summary>
+</histogram>
+
+<histogram
+    name="PerformanceMonitor.ResourceCoalition.BytesReadPerSecond{UsageScenario}"
     units="milliBytesPerSecond" expires_after="2021-11-30">
   <owner>sebmarchand@chromium.org</owner>
   <owner>catan-team@chromium.org</owner>
@@ -11924,9 +11935,13 @@
     every 2 minutes. The data is reported as the rate per second during this
     interval with a millibyte granularity.
   </summary>
+<!-- Usage scenario variant defined in tools/metrics/histograms/metadata/power/histograms.xml  -->
+
+  <token key="UsageScenario" variants="UsageScenario"/>
 </histogram>
 
-<histogram name="PerformanceMonitor.ResourceCoalition.BytesWrittenPerSecond"
+<histogram
+    name="PerformanceMonitor.ResourceCoalition.BytesWrittenPerSecond{UsageScenario}"
     units="milliBytesPerSecond" expires_after="2021-11-30">
   <owner>sebmarchand@chromium.org</owner>
   <owner>catan-team@chromium.org</owner>
@@ -11935,6 +11950,9 @@
     Reported every 2 minutes. The data is reported as the rate per second during
     this interval with a millibyte granularity.
   </summary>
+<!-- Usage scenario variant defined in tools/metrics/histograms/metadata/power/histograms.xml  -->
+
+  <token key="UsageScenario" variants="UsageScenario"/>
 </histogram>
 
 <histogram name="PerformanceMonitor.ResourceCoalition.CPUTime"
@@ -11954,7 +11972,7 @@
   </summary>
 </histogram>
 
-<histogram name="PerformanceMonitor.ResourceCoalition.CPUTime2"
+<histogram name="PerformanceMonitor.ResourceCoalition.CPUTime2{UsageScenario}"
     units="hundredth of percent" expires_after="2021-11-30">
   <owner>sebmarchand@chromium.org</owner>
   <owner>catan-team@chromium.org</owner>
@@ -11965,6 +11983,9 @@
     histogram is capped at 20000 (equivalent to 2 cores fully loaded). I.e. 4
     cores busy at 25% each will read as 25 * 4 * 100 = 10000.
   </summary>
+<!-- Usage scenario variant defined in tools/metrics/histograms/metadata/power/histograms.xml  -->
+
+  <token key="UsageScenario" variants="UsageScenario"/>
 </histogram>
 
 <histogram name="PerformanceMonitor.ResourceCoalition.Energy"
@@ -11997,7 +12018,7 @@
   </summary>
 </histogram>
 
-<histogram name="PerformanceMonitor.ResourceCoalition.GPUTime2"
+<histogram name="PerformanceMonitor.ResourceCoalition.GPUTime2{UsageScenario}"
     units="hundredth of percent" expires_after="2021-11-30">
   <owner>sebmarchand@chromium.org</owner>
   <owner>catan-team@chromium.org</owner>
@@ -12007,10 +12028,13 @@
     0-100% range and is multiplied by 100. The histogram is capped at 10000
     (equivalent to the GPU being used 100% of the time).
   </summary>
+<!-- Usage scenario variant defined in tools/metrics/histograms/metadata/power/histograms.xml  -->
+
+  <token key="UsageScenario" variants="UsageScenario"/>
 </histogram>
 
 <histogram
-    name="PerformanceMonitor.ResourceCoalition.InterruptWakeupsPerSecond"
+    name="PerformanceMonitor.ResourceCoalition.InterruptWakeupsPerSecond{UsageScenario}"
     units="milliWakeupsPerSecond" expires_after="2021-11-30">
   <owner>sebmarchand@chromium.org</owner>
   <owner>catan-team@chromium.org</owner>
@@ -12019,10 +12043,13 @@
     macOS. Reported every 2 minutes. The data is reported as the rate per second
     during this interval with a milliwakeup granularity.
   </summary>
+<!-- Usage scenario variant defined in tools/metrics/histograms/metadata/power/histograms.xml  -->
+
+  <token key="UsageScenario" variants="UsageScenario"/>
 </histogram>
 
 <histogram
-    name="PerformanceMonitor.ResourceCoalition.PlatformIdleWakeupsPerSecond"
+    name="PerformanceMonitor.ResourceCoalition.PlatformIdleWakeupsPerSecond{UsageScenario}"
     units="milliWakeupsPerSecond" expires_after="2021-11-30">
   <owner>sebmarchand@chromium.org</owner>
   <owner>catan-team@chromium.org</owner>
@@ -12031,16 +12058,47 @@
     on macOS. Reported every 2 minutes. The data is reported as the rate per
     second during this interval with a milliwakeup granularity.
   </summary>
+<!-- Usage scenario variant defined in tools/metrics/histograms/metadata/power/histograms.xml  -->
+
+  <token key="UsageScenario" variants="UsageScenario"/>
 </histogram>
 
-<histogram name="PerformanceMonitor.ResourceCoalition.Power" units="milliwatts"
-    expires_after="2021-11-30">
+<histogram name="PerformanceMonitor.ResourceCoalition.Power{UsageScenario}"
+    units="milliwatts" expires_after="2021-11-30">
   <owner>sebmarchand@chromium.org</owner>
   <owner>catan-team@chromium.org</owner>
   <summary>
     The power usage reported by the resource coalition mechanism on macOS.
     Reported every 2 minutes. Only available on devices with an ARM CPU.
   </summary>
+<!-- Usage scenario variant defined in tools/metrics/histograms/metadata/power/histograms.xml  -->
+
+  <token key="UsageScenario" variants="UsageScenario"/>
+</histogram>
+
+<histogram
+    name="PerformanceMonitor.ResourceCoalition.QoSLevel.{QoSLevel}{UsageScenario}"
+    units="hundredth of percent" expires_after="2021-11-30">
+  <owner>sebmarchand@chromium.org</owner>
+  <owner>catan-team@chromium.org</owner>
+  <summary>
+    Average CPU time spent in a given QoS level, as reported by the resource
+    coalition mechanism on macOS. Read out at each two-minute interval. The
+    utilization is in the 0-100% range and is multiplied by 100. The histogram
+    is capped at 10000 (equivalent to the GPU being used 100% of the time).
+  </summary>
+  <token key="QoSLevel">
+    <variant name="Background"/>
+    <variant name="Default"/>
+    <variant name="Legacy"/>
+    <variant name="Maintenance"/>
+    <variant name="UserInitiated"/>
+    <variant name="UserInteractive"/>
+    <variant name="Utility"/>
+  </token>
+<!-- Usage scenario variant defined in tools/metrics/histograms/metadata/power/histograms.xml  -->
+
+  <token key="UsageScenario" variants="UsageScenario"/>
 </histogram>
 
 <histogram name="PeriodicBackgroundSync.Event.BatchSize" units="events"
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 8abe01e..fa8598d 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -17,8 +17,8 @@
             "remote_path": "perfetto_binaries/trace_processor_shell/linux_arm64/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell"
         },
         "linux": {
-            "hash": "0bdcb784edd807a695bcbd1cc42ba569161f917a",
-            "remote_path": "perfetto_binaries/trace_processor_shell/linux/e0c4d9b9566c52974287aa1a6678e16f1949c6c4/trace_processor_shell"
+            "hash": "3b94d2268e0dac70a4b667d9b84368493ff88c91",
+            "remote_path": "perfetto_binaries/trace_processor_shell/linux/76f7830d7f2b74640a2304db5c75588cb0da5ff4/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/ui/base/x/x11_util.cc b/ui/base/x/x11_util.cc
index 04aca77b..b06070f 100644
--- a/ui/base/x/x11_util.cc
+++ b/ui/base/x/x11_util.cc
@@ -1131,6 +1131,10 @@
     colormap_ = connection->GenerateId<x11::ColorMap>();
     connection->CreateColormap({x11::ColormapAlloc::None, colormap_,
                                 connection->default_root(), info->visual_id});
+    // In single-process mode, XVisualManager may be used on multiple threads,
+    // so we need to flush colormap creation early so that other threads are
+    // able to use it.
+    connection->Flush();
   }
   return colormap_;
 }
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
index 50af788..ccebb092 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -5,7 +5,7 @@
 <translation id="1047956942837015229"><ph name="COUNT" /> உருப்படிகளை நீக்குகிறது...</translation>
 <translation id="1049926623896334335">Word document</translation>
 <translation id="1056775291175587022">நெட்வொர்க்குகள் இல்லை</translation>
-<translation id="1060368002126861100">கோப்புகளை <ph name="APP_NAME" /> ஆப்ஸில் திறக்க, முதலில் அவற்றை Windows கோப்புகள் கோப்புறைக்கு நகர்த்தவும்.</translation>
+<translation id="1060368002126861100">கோப்புகளை <ph name="APP_NAME" /> ஆப்ஸில் திறக்க, முதலில் அவற்றை Windows ஃபைல்கள்  கோப்புறைக்கு நகர்த்தவும்.</translation>
 <translation id="1062407476771304334">மாற்றியமை</translation>
 <translation id="1119069657431255176">Bzip2 compressed tar archive</translation>
 <translation id="1119447706177454957">அகப் பிழை</translation>
@@ -50,7 +50,7 @@
 <translation id="1395262318152388157">தேடுவதற்கான ஸ்லைடர்</translation>
 <translation id="1399511500114202393">பயனர் சான்றிதழ் இல்லை</translation>
 <translation id="1404323374378969387">நார்வேஜியன்</translation>
-<translation id="1433628812591023318">Parallels Desktopபிற்குள் கோப்புகளை இழுத்து விட, அவற்றை ’Windows கோப்புகள்’ கோப்புறைக்கு நகர்த்த வேண்டும்.</translation>
+<translation id="1433628812591023318">Parallels Desktopபிற்குள் கோப்புகளை இழுத்து விட, அவற்றை ’Windows ஃபைல்கள் ’ கோப்புறைக்கு நகர்த்த வேண்டும்.</translation>
 <translation id="1435838927755162558">Parallels Desktop மூலம் கோப்புறையைப் பகிருங்கள்</translation>
 <translation id="1471718551822868769">ஸ்லோவாக்</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" ஏற்றப்படவில்லை. உங்கள் Google இயக்ககத்தில் போதுமான காலியிடம் இல்லை.</translation>
@@ -83,7 +83,7 @@
 <translation id="1726100011689679555">பெயர் சேவையகங்கள்</translation>
 <translation id="1729953886957086472">ஜெர்மன் (ஜெர்மனி)</translation>
 <translation id="1730235522912993863">சீனம் (கான்ஜி)</translation>
-<translation id="1731889557567069540"><ph name="NUMBER_OF_ITEMS" /> கோப்புகள்/கோப்பகங்கள் நகலெடுக்கப்பட்டன.</translation>
+<translation id="1731889557567069540"><ph name="NUMBER_OF_ITEMS" /> ஃபைல்கள் /கோப்பகங்கள் நகலெடுக்கப்பட்டன.</translation>
 <translation id="174173592514158117">எல்லா Play கோப்புறைகளையும் காட்டு</translation>
 <translation id="1742316578210444689">ஹீப்ரு ஒலிபெயர்ப்பு</translation>
 <translation id="1747761757048858544">டச்சு (நெதர்லாந்து)</translation>
@@ -110,7 +110,7 @@
 <translation id="1933345018156373194">நகர்த்த முடியவில்லை, எதிர்பாராத பிழை: <ph name="ERROR_MESSAGE" /></translation>
 <translation id="1936717151811561466">ஃபின்னிஷ்</translation>
 <translation id="1942765061641586207">படத் தெளிவுத்திறன்</translation>
-<translation id="1972984168337863910">கோப்புகள் காட்டப்படும் பேனல்களை விரிக்கும்</translation>
+<translation id="1972984168337863910">ஃபைல்கள்  காட்டப்படும் பேனல்களை விரிக்கும்</translation>
 <translation id="1984456723671657197">இந்த ஃபைல் வகை ஆதரிக்கப்படவில்லை. Chrome OSஸில் ஃபைல்களைத் திறப்பது குறித்து <ph name="BEGIN_LINK_HELP" />மேலும் அறிக<ph name="END_LINK_HELP" />.</translation>
 <translation id="1995337122023280937">ஃபைலின் இடத்திற்குச் செல்</translation>
 <translation id="2001796770603320721">இயக்ககத்தில் நிர்வகி</translation>
@@ -153,13 +153,13 @@
 <translation id="23721837607121582">இந்த மொபைல் சுயவிவரத்தைப் பதிவிறக்கும்: நெட்வொர்க் <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" /></translation>
 <translation id="2377319039870049694">பட்டியல் காட்சிக்கு மாறு</translation>
 <translation id="2377590462528165447"><ph name="NUMBER_OF_ITEMS" /> கோப்புறைகள் Linuxஸுடன் பகிரப்பட்டன</translation>
-<translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> கோப்புகள் தேர்ந்தெடுக்கப்பட்டன</translation>
+<translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> ஃபைல்கள்  தேர்ந்தெடுக்கப்பட்டன</translation>
 <translation id="2387458720915042159">ப்ராக்ஸி இணைப்பு வகை</translation>
 <translation id="2389832672041313158">பர்மீஸ்/மியான்மர்</translation>
 <translation id="2392369802118427583">செயல்படுத்து</translation>
 <translation id="240770291734945588"><ph name="SPACE_AVAILABLE" /> உள்ளது</translation>
 <translation id="2425665904502185219">மொத்த ஃபைலின் அளவு</translation>
-<translation id="2428749644083375155"><ph name="NUMBER_OF_ITEMS" /> கோப்புகள்/கோப்புறைகளை <ph name="FOLDER_NAME" />க்கு நகலெடுக்கிறது</translation>
+<translation id="2428749644083375155"><ph name="NUMBER_OF_ITEMS" /> ஃபைல்கள் /கோப்புறைகளை <ph name="FOLDER_NAME" />க்கு நகலெடுக்கிறது</translation>
 <translation id="2448312741937722512">வகை</translation>
 <translation id="2464079411014186876">ஐஸ்கிரீம்</translation>
 <translation id="2464089476039395325">HTTP ப்ராக்ஸி</translation>
@@ -228,16 +228,16 @@
 <translation id="303198083543495566">புவியியல்</translation>
 <translation id="3047197340186497470">சீனம் (தூயே)</translation>
 <translation id="3057861065630527966">உங்கள் படங்கள் மற்றும் வீடியோக்களைக் காப்புப் பிரதியெடுக்கவும்</translation>
-<translation id="3067790092342515856">Windows கோப்புகள்</translation>
+<translation id="3067790092342515856">Windows ஃபைல்கள் </translation>
 <translation id="3078461028045006476"><ph name="EXTENSION_NAME" /> மூலம் பகிர்</translation>
 <translation id="3083975830683400843">Chromebits</translation>
 <translation id="3085752524577180175">SOCKS ஹோஸ்ட்</translation>
-<translation id="3113153474486991170">"<ph name="PATH" />" காப்பகத்தை இந்தத் தடத்தில் திறக்க முடியவில்லை. அதைத் திறக்க "எனது கோப்புகள்" என்பதற்கு நகலெடுக்கவும்.</translation>
+<translation id="3113153474486991170">"<ph name="PATH" />" காப்பகத்தை இந்தத் தடத்தில் திறக்க முடியவில்லை. அதைத் திறக்க "எனது ஃபைல்கள் " என்பதற்கு நகலெடுக்கவும்.</translation>
 <translation id="3113592018909187986">ஒரு முயற்சி மீதமுள்ளது. புதிய பின்னை (PIN) அமைக்காத வரை இந்த நெட்வொர்க்கைப் பயன்படுத்த முடியாது.</translation>
 <translation id="3126026824346185272">Ctrl</translation>
 <translation id="3138624403379688522">தவறான பின். <ph name="RETRIES" /> முயற்சிகள் மீதமுள்ளன.</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (வன்பொருளில் சேமிக்கப்பட்டிருக்கும்)</translation>
-<translation id="3188257591659621405">எனது கோப்புகள்</translation>
+<translation id="3188257591659621405">எனது ஃபைல்கள் </translation>
 <translation id="3197563288998582412">யு.கே. டிவாரக்</translation>
 <translation id="3202131003361292969">தடம்</translation>
 <translation id="3205852408225871810">போர்ச்சுகீஸ் (பிரேசில்)</translation>
@@ -284,7 +284,7 @@
 <translation id="3524311639100184459">எச்சரிக்கை: இந்த ஃபைல்கள் தற்காலிகமானவை, டிஸ்க்கில் இடத்தைக் காலியாக்கும் வகையில் இவை தானாகவே நீக்கப்படலாம்.  <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation>
 <translation id="3527085408025491307">கோப்புறை</translation>
 <translation id="3549797760399244642">drive.google.com க்குச் செல்...</translation>
-<translation id="3553048479571901246">கோப்புகளை <ph name="APP_NAME" /> ஆப்ஸில் திறக்க, முதலில் அவற்றை Windows கோப்புகள் கோப்புறைக்கு நகலெடுக்கவும்.</translation>
+<translation id="3553048479571901246">கோப்புகளை <ph name="APP_NAME" /> ஆப்ஸில் திறக்க, முதலில் அவற்றை Windows ஃபைல்கள்  கோப்புறைக்கு நகலெடுக்கவும்.</translation>
 <translation id="3556731189587832921">ஆங்கிலம் (யூஎஸ்) - சர்வதேச PC கீபோர்டு</translation>
 <translation id="357479282490346887">லிதுவேனியன்</translation>
 <translation id="3592251141500063301">ஆஃப்லைனில் அணுகும் வகையில் <ph name="FILE_NAME" /> ஃபைலை அமைக்க முடியவில்லை</translation>
@@ -295,7 +295,7 @@
 <translation id="3619115746895587757">காப்பச்சினோ</translation>
 <translation id="3620292326130836921">எல்லாம் காப்புப் பிரதி எடுக்கப்பட்டன!</translation>
 <translation id="3634507049637220048">நெட்வொர்க்: <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, உங்கள் நிர்வாகி நிர்வகிக்கிறார், விவரங்கள்</translation>
-<translation id="3645233063072417428"><ph name="NUMBER_OF_ITEMS" /> கோப்புகள்/கோப்பகங்கள் நகர்த்தப்பட்டன.</translation>
+<translation id="3645233063072417428"><ph name="NUMBER_OF_ITEMS" /> ஃபைல்கள் /கோப்பகங்கள் நகர்த்தப்பட்டன.</translation>
 <translation id="3645531960514756307">கோப்புறையைப் பிரித்தெடு</translation>
 <translation id="3685122418104378273">மொபைல் டேட்டாவைப் பயன்படுத்தும்போது, இயல்புநிலையாகவே Google இயக்கக ஒத்திசைவு முடக்கப்பட்டுள்ளது.</translation>
 <translation id="3689865792480713551"><ph name="ACTIVITY_DESCRIPTION" /> ரத்துசெய்யப்படும்.</translation>
@@ -453,8 +453,8 @@
 <translation id="5045550434625856497">தவறான கடவுச்சொல்</translation>
 <translation id="5059127710849015030">நேபாளி ஒலிபெயர்ப்பு</translation>
 <translation id="5068919226082848014">பீட்சா</translation>
-<translation id="5081517858322016911"><ph name="TOTAL_FILE_SIZE" /> அளவுள்ள கோப்புகள் நீக்கப்படும்</translation>
-<translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> கோப்புகள்/கோப்புறைகளை <ph name="FOLDER_NAME" />க்கு நகர்த்துகிறது</translation>
+<translation id="5081517858322016911"><ph name="TOTAL_FILE_SIZE" /> அளவுள்ள ஃபைல்கள்  நீக்கப்படும்</translation>
+<translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> ஃபைல்கள் /கோப்புறைகளை <ph name="FOLDER_NAME" />க்கு நகர்த்துகிறது</translation>
 <translation id="509429900233858213">பிழை ஏற்பட்டது.</translation>
 <translation id="5098629044894065541">ஹீப்ரு</translation>
 <translation id="5109254780565519649">பிழை ஏற்பட்டது. இதில் சில மீட்டெடுக்கப்படாமல் இருக்கக்கூடும்.</translation>
@@ -467,7 +467,7 @@
 <translation id="5158983316805876233">எல்லா நெறிமுறைகளுக்கும் ஒரே ப்ராக்ஸியைப் பயன்படுத்து</translation>
 <translation id="5159383109919732130"><ph name="BEGIN_BOLD" />உங்கள் சாதனத்தை உடனே அகற்ற வேண்டாம்!<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
-   பயன்பாட்டில் இருக்கும்போது உங்கள் சாதனத்தை அகற்றுவது தரவு இழப்பை ஏற்படுத்தலாம்.  செயல்முறை முடியும்வரை காத்திருந்து, பின்பு கோப்புகள் பயன்பாட்டைப் பயன்படுத்தி சாதனத்தை வெளியேற்றலாம்.</translation>
+   பயன்பாட்டில் இருக்கும்போது உங்கள் சாதனத்தை அகற்றுவது தரவு இழப்பை ஏற்படுத்தலாம்.  செயல்முறை முடியும்வரை காத்திருந்து, பின்பு ஃபைல்கள்  பயன்பாட்டைப் பயன்படுத்தி சாதனத்தை வெளியேற்றலாம்.</translation>
 <translation id="5159560892333415631">‘நீக்கியவையில்’ உள்ளவற்றை நீக்கு</translation>
 <translation id="5163869187418756376">பகிர்வு தோல்வியடைந்தது. உங்கள் இணைப்பைச் சரிபார்த்து, பிறகு மீண்டும் முயற்சிக்கவும்.</translation>
 <translation id="516592729076796170">US புரோகிராமர் டிவோரக்</translation>
@@ -480,12 +480,12 @@
 <translation id="5253070652067921974">உருவாக்கியவர்</translation>
 <translation id="5257456363153333584">தட்டாம்பூச்சி</translation>
 <translation id="5262311848634918433"><ph name="MARKUP_1" />எங்கிருந்தும் கோப்புகளை அணுகலாம் (ஆஃப்லைனில் இருந்தாலும்).<ph name="MARKUP_2" />
-    Google இயக்ககத்தில் உள்ள கோப்புகள் சமீபத்திய மாற்றங்களுடன் இருக்கும், அவற்றை எந்தச் சாதனத்திலிருந்தும் அணுகலாம்.<ph name="MARKUP_3" />
-    <ph name="MARKUP_4" />உங்கள் கோப்புகள் பாதுகாப்பாக இருக்கும்.<ph name="MARKUP_5" />
-    சாதனத்திற்கு எந்தவிதப் பாதிப்பு ஏற்பட்டாலும், உங்கள் கோப்புகள் Google இயக்ககத்தில் பாதுகாப்பாகச் சேமிக்கப்பட்டிருக்கும்.<ph name="MARKUP_6" />
+    Google இயக்ககத்தில் உள்ள ஃபைல்கள்  சமீபத்திய மாற்றங்களுடன் இருக்கும், அவற்றை எந்தச் சாதனத்திலிருந்தும் அணுகலாம்.<ph name="MARKUP_3" />
+    <ph name="MARKUP_4" />உங்கள் ஃபைல்கள்  பாதுகாப்பாக இருக்கும்.<ph name="MARKUP_5" />
+    சாதனத்திற்கு எந்தவிதப் பாதிப்பு ஏற்பட்டாலும், உங்கள் ஃபைல்கள்  Google இயக்ககத்தில் பாதுகாப்பாகச் சேமிக்கப்பட்டிருக்கும்.<ph name="MARKUP_6" />
     <ph name="MARKUP_7" />ஒரே இடத்தில் ஃபைல்களைப் பகிரலாம், உருவாக்கலாம்,<ph name="MARKUP_8" />
      மேலும் பிறருடன் இணைந்து திருத்தலாம்.<ph name="MARKUP_9" /></translation>
-<translation id="5275973617553375938">Google இயக்கத்திலிருந்து மீட்கப்பட்ட கோப்புகள்</translation>
+<translation id="5275973617553375938">Google இயக்கத்திலிருந்து மீட்கப்பட்ட ஃபைல்கள் </translation>
 <translation id="5288441970121584418">பர்கர்</translation>
 <translation id="5288481194217812690"><ph name="FILENAME" /></translation>
 <translation id="5299998344490869684">'நீக்கியவையில்' உள்ளவற்றை நீக்க வேண்டுமா?</translation>
@@ -540,7 +540,7 @@
 <translation id="5775750595919327203">உருது</translation>
 <translation id="5776325638577448643">அழித்து ஃபார்மேட் செய்</translation>
 <translation id="57838592816432529">ஒலியடக்கு</translation>
-<translation id="5788127256798019331">Play கோப்புகள்</translation>
+<translation id="5788127256798019331">Play ஃபைல்கள் </translation>
 <translation id="5790193330357274855">கஸக்</translation>
 <translation id="5804245609861364054">கன்னட ஒலிபெயர்ப்பு</translation>
 <translation id="5814126672212206791">இணைப்பு வகை</translation>
@@ -558,7 +558,7 @@
 <translation id="5913638992615760742">நகலெடுக்க முடியவில்லை, எதிர்பாராத பிழை: <ph name="ERROR_MESSAGE" /></translation>
 <translation id="5926082595146149752">டச்சு (நெதர்லாந்து) - யூஎஸ் சர்வதேச PC கீபோர்டு</translation>
 <translation id="5932901536148835538">Chromebit</translation>
-<translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> கோப்புகள்</translation>
+<translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> ஃபைல்கள் </translation>
 <translation id="5957366693331451795">Chromeboxes</translation>
 <translation id="5982621672636444458">வரிசைப்படுத்தல் விருப்பங்கள்</translation>
 <translation id="6007237601604674381">நகர்வு தோல்வி. <ph name="ERROR_MESSAGE" /></translation>
@@ -606,7 +606,7 @@
 <translation id="6367976544441405720">வேன்</translation>
 <translation id="637062427944097960">இந்தக் கோப்பு மற்றொரு டெஸ்க்டாப்பில் திறக்கப்பட்டது. இதைப் பார்க்க, <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) க்கு நகர்த்தவும்.</translation>
 <translation id="6394388407447716302">படிக்க மட்டும்</translation>
-<translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> கோப்புகள்</translation>
+<translation id="6395575651121294044"><ph name="NUMBER_OF_FILES" /> ஃபைல்கள் </translation>
 <translation id="6398765197997659313">முழுத்திரையிலிருந்து வெளியேறு</translation>
 <translation id="642282551015776456">கோப்புறைப் பெயரின் கோப்பாக இந்தப் பெயரைப் பயன்பட முடியாமல் போகக்கூடும்</translation>
 <translation id="6423031066725912715">வியட்நாமிஸ் - TCVN கீபோர்டு</translation>
@@ -714,7 +714,7 @@
 <translation id="7417705661718309329">Google Maps</translation>
 <translation id="7460898608667578234">உக்ரைனியன்</translation>
 <translation id="7469894403370665791">இந்த நெட்வொர்க்குடன் தானாகவே இணைக்கவும்</translation>
-<translation id="7486315294984620427">Parallels Desktopபிற்குள் கோப்புகளை இழுத்து விட, அவற்றை ’Windows கோப்புகள்’ கோப்புறைக்கு நகலெடுக்க வேண்டும்.</translation>
+<translation id="7486315294984620427">Parallels Desktopபிற்குள் கோப்புகளை இழுத்து விட, அவற்றை ’Windows ஃபைல்கள் ’ கோப்புறைக்கு நகலெடுக்க வேண்டும்.</translation>
 <translation id="7489215562877293245"><ph name="FILE_COUNT" /> உள்ளது
     <ph name="LINE_BREAK1" />
     <ph name="BEGIN_LINK" />Google இயக்ககத்திற்குக்<ph name="END_LINK" /> காப்புப் பிரதி எடுக்கத் தயாராக உள்ளது</translation>
@@ -816,7 +816,7 @@
 <translation id="8249296373107784235">கைவிடு</translation>
 <translation id="8261506727792406068">நீக்கு</translation>
 <translation id="8261561378965667560">சீனம் (அரே)</translation>
-<translation id="8269755669432358899">கோப்புகள் காட்டப்படும் பேனல்களைச் சுருக்கும்</translation>
+<translation id="8269755669432358899">ஃபைல்கள்  காட்டப்படும் பேனல்களைச் சுருக்கும்</translation>
 <translation id="8280151743281770066">ஆர்மேனியன் ஒலிப்புமுறை</translation>
 <translation id="8294431847097064396">மூலம்</translation>
 <translation id="8297012244086013755">ஹாங்குல் 3 செட் (ஷிஃப்ட் இல்லை)</translation>
@@ -896,7 +896,7 @@
 <translation id="8997962250644902079">சீனம் (பாரம்பரியம்) பின்யின்</translation>
 <translation id="9003940392834790328">நெட்வொர்க்: <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" />%, உங்கள் நிர்வாகி நிர்வகிக்கிறார், விவரங்கள்</translation>
 <translation id="9017798300203431059">ரஷ்யன் ஒலிப்புமுறை</translation>
-<translation id="9034924485347205037">Linux கோப்புகள்</translation>
+<translation id="9034924485347205037">Linux ஃபைல்கள் </translation>
 <translation id="9035012421917565900">கோப்புகளை '<ph name="DESTINATION_NAME" />'க்கு மீண்டும் நகர்த்த முடியாது என்பதால், இதைச் செயல்தவிர்க்க முடியாது.</translation>
 <translation id="9035689366572880647">தற்போதைய பின்னை (PIN) உள்ளிடவும்</translation>
 <translation id="9038620279323455325">"<ph name="FILE_NAME" />" என்ற பெயருள்ள கோப்பு ஏற்கனவே உள்ளது. வேறொரு பெயரைத் தேர்வுசெய்யவும்.</translation>
diff --git a/ui/ozone/platform/wayland/host/shell_popup_wrapper.cc b/ui/ozone/platform/wayland/host/shell_popup_wrapper.cc
index bc811be0d..0d71871 100644
--- a/ui/ozone/platform/wayland/host/shell_popup_wrapper.cc
+++ b/ui/ozone/platform/wayland/host/shell_popup_wrapper.cc
@@ -13,144 +13,11 @@
 
 namespace ui {
 
-constexpr uint32_t kAnchorDefaultWidth = 1;
-constexpr uint32_t kAnchorDefaultHeight = 1;
-constexpr uint32_t kAnchorHeightParentMenu = 30;
-
-gfx::Rect GetAnchorRect(MenuType menu_type,
-                        const gfx::Rect& menu_bounds,
-                        const gfx::Rect& parent_window_bounds) {
-  gfx::Rect anchor_rect;
-  switch (menu_type) {
-    case MenuType::kRootContextMenu:
-      // Place anchor for context menus normally.
-      anchor_rect = gfx::Rect(menu_bounds.x(), menu_bounds.y(),
-                              kAnchorDefaultWidth, kAnchorDefaultHeight);
-      break;
-    case MenuType::kRootMenu:
-      // The anchor for parent menu windows is positioned slightly above the
-      // specified bounds to ensure flipped window along y-axis won't hide 3-dot
-      // menu button.
-      anchor_rect = gfx::Rect(menu_bounds.x() - kAnchorDefaultWidth,
-                              menu_bounds.y() - kAnchorHeightParentMenu,
-                              kAnchorDefaultWidth, kAnchorHeightParentMenu);
-      break;
-    case MenuType::kChildMenu:
-      // The child menu's anchor must meet the following requirements: at some
-      // point, the Wayland compositor can flip it along x-axis. To make sure
-      // it's positioned correctly, place it closer to the beginning of the
-      // parent menu shifted by the same value along x-axis. The width of anchor
-      // must correspond the width between two points - specified origin by the
-      // Chromium and calculated point shifted by the same value along x-axis
-      // from the beginning of the parent menu width.
-      //
-      // We also have to bear in mind that Chromium may decide to flip the
-      // position of the menu window along the x-axis and show it on the other
-      // side of the parent menu window (normally, the Wayland compositor does
-      // it). Thus, check which side the child menu window is going to be
-      // presented on and create right anchor.
-      if (menu_bounds.x() >= 0) {
-        auto anchor_width =
-            parent_window_bounds.width() -
-            (parent_window_bounds.width() - menu_bounds.x()) * 2;
-        if (anchor_width <= 0) {
-          anchor_rect = gfx::Rect(menu_bounds.x(), menu_bounds.y(),
-                                  kAnchorDefaultWidth, kAnchorDefaultHeight);
-        } else {
-          anchor_rect =
-              gfx::Rect(parent_window_bounds.width() - menu_bounds.x(),
-                        menu_bounds.y(), anchor_width, kAnchorDefaultHeight);
-        }
-      } else {
-        DCHECK_LE(menu_bounds.x(), 0);
-        auto position = menu_bounds.width() + menu_bounds.x();
-        DCHECK(position > 0 && position < parent_window_bounds.width());
-        auto anchor_width = parent_window_bounds.width() - position * 2;
-        if (anchor_width <= 0) {
-          anchor_rect = gfx::Rect(position, menu_bounds.y(),
-                                  kAnchorDefaultWidth, kAnchorDefaultHeight);
-        } else {
-          anchor_rect = gfx::Rect(position, menu_bounds.y(), anchor_width,
-                                  kAnchorDefaultHeight);
-        }
-      }
-      break;
-  }
-
-  return anchor_rect;
-}
-
-WlAnchor GetAnchor(MenuType menu_type, const gfx::Rect& bounds) {
-  WlAnchor anchor = WlAnchor::None;
-  switch (menu_type) {
-    case MenuType::kRootContextMenu:
-      anchor = WlAnchor::TopLeft;
-      break;
-    case MenuType::kRootMenu:
-      anchor = WlAnchor::BottomRight;
-      break;
-    case MenuType::kChildMenu:
-      // Chromium may want to manually position a child menu on the left side of
-      // its parent menu. Thus, react accordingly. Positive x means the child is
-      // located on the right side of the parent and negative - on the left
-      // side.
-      if (bounds.x() >= 0)
-        anchor = WlAnchor::TopRight;
-      else
-        anchor = WlAnchor::TopLeft;
-      break;
-  }
-
-  return anchor;
-}
-
-WlGravity GetGravity(MenuType menu_type, const gfx::Rect& bounds) {
-  WlGravity gravity = WlGravity::None;
-  switch (menu_type) {
-    case MenuType::kRootContextMenu:
-      gravity = WlGravity::BottomRight;
-      break;
-    case MenuType::kRootMenu:
-      gravity = WlGravity::BottomRight;
-      break;
-    case MenuType::kChildMenu:
-      // Chromium may want to manually position a child menu on the left side of
-      // its parent menu. Thus, react accordingly. Positive x means the child is
-      // located on the right side of the parent and negative - on the left
-      // side.
-      if (bounds.x() >= 0)
-        gravity = WlGravity::BottomRight;
-      else
-        gravity = WlGravity::BottomLeft;
-      break;
-  }
-
-  return gravity;
-}
-
-WlConstraintAdjustment GetConstraintAdjustment(MenuType menu_type) {
-  WlConstraintAdjustment constraint = WlConstraintAdjustment::None;
-
-  switch (menu_type) {
-    case MenuType::kRootContextMenu:
-      constraint =
-          WlConstraintAdjustment::SlideX | WlConstraintAdjustment::SlideY |
-          WlConstraintAdjustment::FlipY | WlConstraintAdjustment::ResizeY;
-      break;
-    case MenuType::kRootMenu:
-      constraint = WlConstraintAdjustment::SlideX |
-                   WlConstraintAdjustment::FlipY |
-                   WlConstraintAdjustment::ResizeY;
-      break;
-    case MenuType::kChildMenu:
-      constraint = WlConstraintAdjustment::SlideY |
-                   WlConstraintAdjustment::FlipX |
-                   WlConstraintAdjustment::ResizeY;
-      break;
-  }
-
-  return constraint;
-}
+ShellPopupParams::ShellPopupParams() = default;
+ShellPopupParams::ShellPopupParams(const ShellPopupParams&) = default;
+ShellPopupParams& ShellPopupParams::operator=(const ShellPopupParams&) =
+    default;
+ShellPopupParams::~ShellPopupParams() = default;
 
 bool ShellPopupWrapper::CanGrabPopup(WaylandConnection* connection) const {
   // When drag process starts, as described the protocol -
@@ -169,4 +36,27 @@
          last_event_type == ET_MOUSE_PRESSED;
 }
 
+void ShellPopupWrapper::FillAnchorData(
+    const ShellPopupParams& params,
+    gfx::Rect* anchor_rect,
+    OwnedWindowAnchorPosition* anchor_position,
+    OwnedWindowAnchorGravity* anchor_gravity,
+    OwnedWindowConstraintAdjustment* constraints) const {
+  DCHECK(anchor_rect && anchor_position && anchor_gravity && constraints);
+  if (params.anchor.has_value()) {
+    *anchor_rect = params.anchor->anchor_rect;
+    *anchor_position = params.anchor->anchor_position;
+    *anchor_gravity = params.anchor->anchor_gravity;
+    *constraints = params.anchor->constraint_adjustment;
+    return;
+  }
+
+  // Use default parameters if params.anchor doesn't have any data.
+  *anchor_rect = params.bounds;
+  anchor_rect->set_size({1, 1});
+  *anchor_position = OwnedWindowAnchorPosition::kTopLeft;
+  *anchor_gravity = OwnedWindowAnchorGravity::kBottomRight;
+  *constraints = OwnedWindowConstraintAdjustment::kAdjustmentFlipY;
+}
+
 }  // namespace ui
diff --git a/ui/ozone/platform/wayland/host/shell_popup_wrapper.h b/ui/ozone/platform/wayland/host/shell_popup_wrapper.h
index 69ae01d..9f00939 100644
--- a/ui/ozone/platform/wayland/host/shell_popup_wrapper.h
+++ b/ui/ozone/platform/wayland/host/shell_popup_wrapper.h
@@ -14,57 +14,20 @@
 
 class WaylandConnection;
 
-enum class WlAnchor {
-  None,
-  Top,
-  Bottom,
-  Left,
-  Right,
-  TopLeft,
-  BottomLeft,
-  TopRight,
-  BottomRight,
-};
-
-enum class WlGravity {
-  None,
-  Top,
-  Bottom,
-  Left,
-  Right,
-  TopLeft,
-  BottomLeft,
-  TopRight,
-  BottomRight,
-};
-
-enum class WlConstraintAdjustment : uint32_t {
-  None = 0,
-  SlideX = 1,
-  SlideY = 2,
-  FlipX = 4,
-  FlipY = 8,
-  ResizeX = 16,
-  ResizeY = 32,
-};
-
 struct ShellPopupParams {
+  ShellPopupParams();
+  ShellPopupParams(const ShellPopupParams&);
+  ShellPopupParams& operator=(const ShellPopupParams&);
+  ~ShellPopupParams();
+
   gfx::Rect bounds;
   MenuType menu_type = MenuType::kRootContextMenu;
+
+  // This parameter is temporarily optional. Later, when all the clients
+  // start to pass these parameters, absl::optional type will be removed.
+  absl::optional<ui::OwnedWindowAnchor> anchor;
 };
 
-inline WlConstraintAdjustment operator|(WlConstraintAdjustment a,
-                                        WlConstraintAdjustment b) {
-  return static_cast<WlConstraintAdjustment>(static_cast<uint32_t>(a) |
-                                             static_cast<uint32_t>(b));
-}
-
-inline WlConstraintAdjustment operator&(WlConstraintAdjustment a,
-                                        WlConstraintAdjustment b) {
-  return static_cast<WlConstraintAdjustment>(static_cast<uint32_t>(a) &
-                                             static_cast<uint32_t>(b));
-}
-
 // A wrapper around different versions of xdg popups.
 class ShellPopupWrapper {
  public:
@@ -85,14 +48,15 @@
   virtual bool SetBounds(const gfx::Rect& new_bounds) = 0;
 
   bool CanGrabPopup(WaylandConnection* connection) const;
-};
 
-gfx::Rect GetAnchorRect(MenuType menu_type,
-                        const gfx::Rect& menu_bounds,
-                        const gfx::Rect& parent_window_bounds);
-WlAnchor GetAnchor(MenuType menu_type, const gfx::Rect& bounds);
-WlGravity GetGravity(MenuType menu_type, const gfx::Rect& bounds);
-WlConstraintAdjustment GetConstraintAdjustment(MenuType menu_type);
+  // Fills anchor data either from params.anchor or with default anchor
+  // parameters if params.anchor is empty.
+  void FillAnchorData(const ShellPopupParams& params,
+                      gfx::Rect* anchor_rect,
+                      OwnedWindowAnchorPosition* anchor_position,
+                      OwnedWindowAnchorGravity* anchor_gravity,
+                      OwnedWindowConstraintAdjustment* constraints) const;
+};
 
 }  // namespace ui
 
diff --git a/ui/ozone/platform/wayland/host/wayland_output_manager.cc b/ui/ozone/platform/wayland/host/wayland_output_manager.cc
index 828f64a..c5516a88 100644
--- a/ui/ozone/platform/wayland/host/wayland_output_manager.cc
+++ b/ui/ozone/platform/wayland/host/wayland_output_manager.cc
@@ -53,6 +53,14 @@
   if (output_it == output_list_.end())
     return;
 
+  // Remove WaylandOutput in following order :
+  // 1. from `WaylandSurface::entered_outputs_`
+  // 2. from `WaylandScreen::display_list_`
+  // 3. from `WaylandOutputManager::output_list_`
+  auto* wayland_window_manager = connection_->wayland_window_manager();
+  for (auto* window : wayland_window_manager->GetAllWindows())
+    window->RemoveEnteredOutput(output_id);
+
   if (wayland_screen_)
     wayland_screen_->OnOutputRemoved(output_id);
   output_list_.erase(output_it);
diff --git a/ui/ozone/platform/wayland/host/wayland_popup.cc b/ui/ozone/platform/wayland/host/wayland_popup.cc
index 4e79c56..cb06879c 100644
--- a/ui/ozone/platform/wayland/host/wayland_popup.cc
+++ b/ui/ozone/platform/wayland/host/wayland_popup.cc
@@ -8,6 +8,7 @@
 
 #include "base/auto_reset.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
+#include "ui/base/ui_base_types.h"
 #include "ui/display/display.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/transform.h"
@@ -52,6 +53,16 @@
   params.bounds = bounds_dip;
   params.menu_type =
       delegate()->GetMenuType().value_or(MenuType::kRootContextMenu);
+  params.anchor = delegate()->GetOwnedWindowAnchorAndRectInPx();
+  if (params.anchor.has_value()) {
+    params.anchor->anchor_rect = gfx::ScaleToRoundedRect(
+        wl::TranslateBoundsToParentCoordinates(params.anchor->anchor_rect,
+                                               parent_window()->GetBounds()),
+        1.0 / window_scale());
+    // If size is empty, set 1x1.
+    if (params.anchor->anchor_rect.size().IsEmpty())
+      params.anchor->anchor_rect.set_size({1, 1});
+  }
 
   ShellObjectFactory factory;
   shell_popup_ = factory.CreateShellPopupWrapper(connection(), this, params);
@@ -154,49 +165,12 @@
   DCHECK(shell_popup());
   DCHECK(parent_window());
 
-  gfx::Rect new_bounds_dip = bounds_dip;
-
-  // It's not enough to just set new bounds. If it is a menu window, whose
-  // parent is a top level window a.k.a browser window, it can be flipped
-  // vertically along y-axis and have negative values set. Chromium cannot
-  // understand that and starts to position nested menu windows incorrectly. To
-  // fix that, we have to bear in mind that Wayland compositor does not share
-  // global coordinates for any surfaces, and Chromium assumes the top level
-  // window is always located at 0,0 origin. What is more, child windows must
-  // always be positioned relative to parent window local surface coordinates.
-  // Thus, if the menu window is flipped along y-axis by Wayland and its origin
-  // is above the top level parent window, the origin of the top level window
-  // has to be shifted by that value on y-axis so that the origin of the menu
-  // becomes x,0, and events can be handled normally.
-  if (!parent_window()->AsWaylandPopup()) {
-    gfx::Rect parent_bounds = parent_window()->GetBounds();
-    // The menu window is flipped along y-axis and have x,-y origin. Shift the
-    // parent top level window instead.
-    if (new_bounds_dip.y() < 0) {
-      // Move parent bounds along y-axis.
-      parent_bounds.set_y(-(new_bounds_dip.y() * window_scale()));
-      new_bounds_dip.set_y(0);
-    } else {
-      // If the menu window is located at correct origin from the browser point
-      // of view, return the top level window back to 0,0.
-      parent_bounds.set_y(0);
-    }
-    parent_window()->SetBounds(parent_bounds);
-  } else {
-    // The nested menu windows are located relative to the parent menu windows.
-    // Thus, the location must be translated to be relative to the top level
-    // window, which automatically becomes the same as relative to an origin of
-    // a display.
-    new_bounds_dip = gfx::ScaleToRoundedRect(
-        wl::TranslateBoundsToTopLevelCoordinates(
-            gfx::ScaleToRoundedRect(new_bounds_dip, window_scale()),
-            parent_window()->GetBounds()),
-        1.0 / window_scale());
-    DCHECK(new_bounds_dip.y() >= 0);
-  }
-
   base::AutoReset<bool> auto_reset(&wayland_sets_bounds_, true);
-  SetBoundsDip(new_bounds_dip);
+  SetBoundsDip(gfx::ScaleToRoundedRect(
+      wl::TranslateBoundsToTopLevelCoordinates(
+          gfx::ScaleToRoundedRect(bounds_dip, window_scale()),
+          parent_window()->GetBounds()),
+      1.0 / window_scale()));
 }
 
 void WaylandPopup::HandleSurfaceConfigure(uint32_t serial) {
diff --git a/ui/ozone/platform/wayland/host/wayland_screen_unittest.cc b/ui/ozone/platform/wayland/host/wayland_screen_unittest.cc
index 016e8274..4b2502d4 100644
--- a/ui/ozone/platform/wayland/host/wayland_screen_unittest.cc
+++ b/ui/ozone/platform/wayland/host/wayland_screen_unittest.cc
@@ -141,6 +141,77 @@
             gfx::Rect(0, 0, kOutputWidth, kOutputHeight));
 }
 
+// In multi-monitor setup, the `entered_outputs_` list should be updated when
+// the display is unplugged or switched off.
+TEST_P(WaylandScreenTest, EnteredOutputListAfterDisplayRemoval) {
+  wl::TestOutput* output1 = server_.output();
+  gfx::Rect output1_rect = server_.output()->GetRect();
+
+  // Add a second display.
+  wl::TestOutput* output2 = server_.CreateAndInitializeOutput();
+  Sync();
+  // The second display is located to the right of first display
+  gfx::Rect output2_rect(output1_rect.right(), 0, 800, 600);
+  output2->SetRect(output2_rect);
+  output2->Flush();
+  Sync();
+
+  // Add a third display.
+  wl::TestOutput* output3 = server_.CreateAndInitializeOutput();
+  Sync();
+  // The third display is located to the right of second display
+  gfx::Rect output3_rect(output2_rect.right(), 0, 800, 600);
+  output3->SetRect(output3_rect);
+  output3->Flush();
+  Sync();
+
+  EXPECT_EQ(3u, platform_screen_->GetAllDisplays().size());
+
+  wl::MockSurface* surface = server_.GetObject<wl::MockSurface>(
+      window_->root_surface()->GetSurfaceId());
+  ASSERT_TRUE(surface);
+
+  wl_surface_send_enter(surface->resource(), output1->resource());
+  wl_surface_send_enter(surface->resource(), output2->resource());
+  Sync();
+  // The window entered two outputs
+  auto entered_outputs = window_->root_surface()->entered_outputs();
+  EXPECT_EQ(2u, entered_outputs.size());
+
+  wl_surface_send_enter(surface->resource(), output3->resource());
+  Sync();
+  // The window entered three outputs
+  entered_outputs = window_->root_surface()->entered_outputs();
+  EXPECT_EQ(3u, entered_outputs.size());
+
+  // Destroy third display
+  output3->DestroyGlobal();
+  Sync();
+  entered_outputs = window_->root_surface()->entered_outputs();
+  EXPECT_EQ(2u, entered_outputs.size());
+
+  // Destroy second display
+  output2->DestroyGlobal();
+  Sync();
+  entered_outputs = window_->root_surface()->entered_outputs();
+  EXPECT_EQ(1u, entered_outputs.size());
+
+  // Add a second display.
+  output2 = server_.CreateAndInitializeOutput();
+  Sync();
+  // The second display is located to the right of first display
+  output2->SetRect(output2_rect);
+  output2->Flush();
+  Sync();
+
+  wl_surface_send_enter(surface->resource(), output2->resource());
+  Sync();
+
+  // The window entered two outputs
+  entered_outputs = window_->root_surface()->entered_outputs();
+  EXPECT_EQ(2u, entered_outputs.size());
+}
+
 TEST_P(WaylandScreenTest, MultipleOutputsAddedAndRemoved) {
   TestDisplayObserver observer;
   platform_screen_->AddObserver(&observer);
diff --git a/ui/ozone/platform/wayland/host/wayland_surface.cc b/ui/ozone/platform/wayland/host/wayland_surface.cc
index 0b2dd20b..9077f8c 100644
--- a/ui/ozone/platform/wayland/host/wayland_surface.cc
+++ b/ui/ozone/platform/wayland/host/wayland_surface.cc
@@ -352,8 +352,9 @@
   auto* const surface = static_cast<WaylandSurface*>(data);
   DCHECK(surface);
 
-  surface->entered_outputs_.emplace_back(
-      static_cast<WaylandOutput*>(wl_output_get_user_data(output)));
+  auto* wayland_output =
+      static_cast<WaylandOutput*>(wl_output_get_user_data(output));
+  surface->entered_outputs_.emplace_back(wayland_output);
 
   if (surface->root_window_)
     surface->root_window_->OnEnteredOutputIdAdded();
@@ -366,20 +367,33 @@
   auto* const surface = static_cast<WaylandSurface*>(data);
   DCHECK(surface);
 
-  auto entered_outputs_it_ = std::find(
-      surface->entered_outputs_.begin(), surface->entered_outputs_.end(),
-      static_cast<WaylandOutput*>(wl_output_get_user_data(output)));
-  // Workaround: when a user switches physical output between two displays,
-  // a surface does not necessarily receive enter events immediately or until
-  // a user resizes/moves it.  This means that switching output between
+  auto* wayland_output =
+      static_cast<WaylandOutput*>(wl_output_get_user_data(output));
+  surface->RemoveEnteredOutput(wayland_output->output_id());
+}
+
+void WaylandSurface::RemoveEnteredOutput(uint32_t output_id) {
+  if (entered_outputs().empty())
+    return;
+
+  auto entered_outputs_it_ = std::find_if(
+      entered_outputs_.begin(), entered_outputs_.end(),
+      [&output_id](auto* it) { return it->output_id() == output_id; });
+
+  // The `entered_outputs_` list should be updated,
+  // 1. for wl_surface::leave, when a user switches physical output between two
+  // displays, a surface does not necessarily receive enter events immediately
+  // or until a user resizes/moves it.  This means that switching output between
   // displays in a single output mode results in leave events, but the surface
   // might not have received enter event before.  Thus, remove the id of the
   // output that the surface leaves only if it was stored before.
-  if (entered_outputs_it_ != surface->entered_outputs_.end())
-    surface->entered_outputs_.erase(entered_outputs_it_);
+  // 2. for wl_registry::global_remove, when wl_output is removed by a server
+  // after the display is unplugged or switched off.
+  if (entered_outputs_it_ != entered_outputs_.end())
+    entered_outputs_.erase(entered_outputs_it_);
 
-  if (surface->root_window_)
-    surface->root_window_->OnEnteredOutputIdRemoved();
+  if (root_window_)
+    root_window_->OnEnteredOutputIdRemoved();
 }
 
 // static
diff --git a/ui/ozone/platform/wayland/host/wayland_surface.h b/ui/ozone/platform/wayland/host/wayland_surface.h
index ef3efefa..e025bfd8 100644
--- a/ui/ozone/platform/wayland/host/wayland_surface.h
+++ b/ui/ozone/platform/wayland/host/wayland_surface.h
@@ -122,6 +122,10 @@
   // |parent|. Callers take ownership of the wl_subsurface.
   wl::Object<wl_subsurface> CreateSubsurface(WaylandSurface* parent);
 
+  // When display is removed, the WaylandOutput from `entered_outputs_` should
+  // be removed.
+  void RemoveEnteredOutput(uint32_t id);
+
  private:
   // Holds information about each explicit synchronization buffer release.
   struct ExplicitReleaseInfo {
diff --git a/ui/ozone/platform/wayland/host/wayland_window.cc b/ui/ozone/platform/wayland/host/wayland_window.cc
index f7a4583..45a130dd 100644
--- a/ui/ozone/platform/wayland/host/wayland_window.cc
+++ b/ui/ozone/platform/wayland/host/wayland_window.cc
@@ -181,6 +181,10 @@
     UpdateCursorShape(cursor_);
 }
 
+void WaylandWindow::RemoveEnteredOutput(uint32_t output_id) {
+  root_surface_->RemoveEnteredOutput(output_id);
+}
+
 bool WaylandWindow::StartDrag(const ui::OSExchangeData& data,
                               int operation,
                               gfx::NativeCursor cursor,
diff --git a/ui/ozone/platform/wayland/host/wayland_window.h b/ui/ozone/platform/wayland/host/wayland_window.h
index 600a15c..7eedd38 100644
--- a/ui/ozone/platform/wayland/host/wayland_window.h
+++ b/ui/ozone/platform/wayland/host/wayland_window.h
@@ -127,6 +127,9 @@
     update_visual_size_immediately_ = update_immediately;
   }
 
+  // Remove WaylandOutput associated with WaylandSurface of this window.
+  void RemoveEnteredOutput(uint32_t output_id);
+
   // WmDragHandler
   bool StartDrag(const ui::OSExchangeData& data,
                  int operation,
diff --git a/ui/ozone/platform/wayland/host/wayland_window_unittest.cc b/ui/ozone/platform/wayland/host/wayland_window_unittest.cc
index 68121c6..e566962 100644
--- a/ui/ozone/platform/wayland/host/wayland_window_unittest.cc
+++ b/ui/ozone/platform/wayland/host/wayland_window_unittest.cc
@@ -22,6 +22,7 @@
 #include "ui/base/cursor/mojom/cursor_type.mojom-shared.h"
 #include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h"
 #include "ui/base/hit_test.h"
+#include "ui/base/ui_base_types.h"
 #include "ui/display/display.h"
 #include "ui/events/base_event_utils.h"
 #include "ui/events/event.h"
@@ -2051,50 +2052,47 @@
             menu_window->GetPreferredEnteredOutputId());
 }
 
-// Tests WaylandWindow repositions menu windows to be relative to parent window
-// in a right way.
-TEST_P(WaylandWindowTest, AdjustPopupBounds) {
+// Tests that xdg_popup is configured with default anchor properties and bounds
+// if delegate doesn't have anchor properties set.
+TEST_P(WaylandWindowTest, PopupPassesDefaultAnchorInformation) {
   PopupPosition menu_window_positioner, nested_menu_window_positioner;
 
   if (GetParam().shell_version == wl::ShellVersion::kV6) {
-    menu_window_positioner = {
-        gfx::Rect(439, 46, 1, 30), gfx::Size(287, 409),
-        ZXDG_POSITIONER_V6_ANCHOR_BOTTOM | ZXDG_POSITIONER_V6_ANCHOR_RIGHT,
-        ZXDG_POSITIONER_V6_GRAVITY_BOTTOM | ZXDG_POSITIONER_V6_GRAVITY_RIGHT,
-        ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_X |
-            ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y |
-            ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_Y};
+    menu_window_positioner = {gfx::Rect(439, 46, 1, 1), gfx::Size(287, 409),
+                              ZXDG_POSITIONER_V6_ANCHOR_TOP |
+                                  ZXDG_POSITIONER_V6_ANCHOR_LEFT,
+                              ZXDG_POSITIONER_V6_GRAVITY_BOTTOM |
+                                  ZXDG_POSITIONER_V6_GRAVITY_RIGHT,
+                              ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y},
 
     nested_menu_window_positioner = {
-        gfx::Rect(4, 80, 279, 1), gfx::Size(305, 99),
-        ZXDG_POSITIONER_V6_ANCHOR_TOP | ZXDG_POSITIONER_V6_ANCHOR_RIGHT,
+        gfx::Rect(285, 1, 1, 1), gfx::Size(305, 99),
+        ZXDG_POSITIONER_V6_ANCHOR_TOP | ZXDG_POSITIONER_V6_ANCHOR_LEFT,
         ZXDG_POSITIONER_V6_GRAVITY_BOTTOM | ZXDG_POSITIONER_V6_GRAVITY_RIGHT,
-        ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_X |
-            ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_Y |
-            ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_Y};
+        ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y};
   } else {
-    menu_window_positioner = {
-        gfx::Rect(439, 46, 1, 30), gfx::Size(287, 409),
-        XDG_POSITIONER_ANCHOR_BOTTOM_RIGHT, XDG_POSITIONER_GRAVITY_BOTTOM_RIGHT,
-        XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_SLIDE_X |
-            XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_Y |
-            XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_RESIZE_Y};
+    menu_window_positioner = {gfx::Rect(439, 46, 1, 1), gfx::Size(287, 409),
+                              XDG_POSITIONER_ANCHOR_TOP_LEFT,
+                              XDG_POSITIONER_GRAVITY_BOTTOM_RIGHT,
+                              XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_Y};
     nested_menu_window_positioner = {
-        gfx::Rect(4, 80, 279, 1), gfx::Size(305, 99),
-        XDG_POSITIONER_ANCHOR_TOP_RIGHT, XDG_POSITIONER_GRAVITY_BOTTOM_RIGHT,
-        XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_X |
-            XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_SLIDE_Y |
-            XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_RESIZE_Y};
+        gfx::Rect(285, 1, 1, 1), gfx::Size(305, 99),
+        XDG_POSITIONER_ANCHOR_TOP_LEFT, XDG_POSITIONER_GRAVITY_BOTTOM_RIGHT,
+        XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_Y};
   }
 
   auto* toplevel_window = window_.get();
   toplevel_window->SetBounds(gfx::Rect(0, 0, 739, 574));
 
-  // Case 1: the top menu window is positioned normally.
+  // Case 1: properties are not provided. In this case, bounds' origin must
+  // be used as anchor rect and anchor position, gravity and constraints should
+  // be normal.
   MockPlatformWindowDelegate menu_window_delegate;
   EXPECT_CALL(menu_window_delegate, GetMenuType())
       .WillOnce(Return(MenuType::kRootMenu));
-  gfx::Rect menu_window_bounds(gfx::Point(440, 76),
+  EXPECT_CALL(menu_window_delegate, GetOwnedWindowAnchorAndRectInPx())
+      .WillOnce(Return(absl::nullopt));
+  gfx::Rect menu_window_bounds(gfx::Point(439, 46),
                                menu_window_positioner.size);
   std::unique_ptr<WaylandWindow> menu_window = CreateWaylandWindowWithParams(
       PlatformWindowType::kMenu, toplevel_window->GetWidget(),
@@ -2116,7 +2114,7 @@
   MockPlatformWindowDelegate nested_menu_window_delegate;
   EXPECT_CALL(nested_menu_window_delegate, GetMenuType())
       .WillRepeatedly(Return(MenuType::kChildMenu));
-  gfx::Rect nested_menu_window_bounds(gfx::Point(723, 156),
+  gfx::Rect nested_menu_window_bounds(gfx::Point(724, 47),
                                       nested_menu_window_positioner.size);
   std::unique_ptr<WaylandWindow> nested_menu_window =
       CreateWaylandWindowWithParams(
@@ -2128,110 +2126,87 @@
 
   VerifyXdgPopupPosition(nested_menu_window.get(),
                          nested_menu_window_positioner);
+}
 
-  EXPECT_CALL(nested_menu_window_delegate, OnBoundsChanged(_)).Times(0);
-  const gfx::Point origin(nested_menu_window_positioner.anchor_rect.x() +
-                              nested_menu_window_positioner.anchor_rect.width(),
-                          nested_menu_window_positioner.anchor_rect.y());
-  gfx::Rect calculated_nested_bounds = nested_menu_window_bounds;
-  calculated_nested_bounds.set_origin(origin);
-  SendConfigureEventPopup(nested_menu_window.get(), calculated_nested_bounds);
+// Tests that xdg_popup is configured with anchor properties received from
+// delegate.
+TEST_P(WaylandWindowTest, PopupPassesSetAnchorInformation) {
+  PopupPosition menu_window_positioner, nested_menu_window_positioner;
+
+  if (GetParam().shell_version == wl::ShellVersion::kV6) {
+    menu_window_positioner = {gfx::Rect(468, 46, 28, 28), gfx::Size(320, 404),
+                              ZXDG_POSITIONER_V6_ANCHOR_BOTTOM |
+                                  ZXDG_POSITIONER_V6_ANCHOR_RIGHT,
+                              ZXDG_POSITIONER_V6_GRAVITY_BOTTOM |
+                                  ZXDG_POSITIONER_V6_GRAVITY_LEFT,
+                              ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y},
+
+    nested_menu_window_positioner = {
+        gfx::Rect(4, 83, 312, 1), gfx::Size(480, 294),
+        ZXDG_POSITIONER_V6_ANCHOR_TOP | ZXDG_POSITIONER_V6_ANCHOR_RIGHT,
+        ZXDG_POSITIONER_V6_GRAVITY_BOTTOM | ZXDG_POSITIONER_V6_GRAVITY_RIGHT,
+        ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y |
+            ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_X};
+  } else {
+    menu_window_positioner = {gfx::Rect(468, 46, 28, 28), gfx::Size(320, 404),
+                              XDG_POSITIONER_ANCHOR_BOTTOM_RIGHT,
+                              XDG_POSITIONER_GRAVITY_BOTTOM_LEFT,
+                              XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_Y};
+    nested_menu_window_positioner = {
+        gfx::Rect(4, 83, 312, 1), gfx::Size(480, 294),
+        XDG_POSITIONER_ANCHOR_TOP_RIGHT, XDG_POSITIONER_GRAVITY_BOTTOM_RIGHT,
+        XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_Y |
+            XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_X};
+  }
+
+  auto* toplevel_window = window_.get();
+  toplevel_window->SetBounds(gfx::Rect(0, 0, 508, 212));
+
+  MockPlatformWindowDelegate menu_window_delegate;
+  EXPECT_CALL(menu_window_delegate, GetMenuType())
+      .WillOnce(Return(MenuType::kRootMenu));
+  ui::OwnedWindowAnchor anchor = {
+      gfx::Rect(menu_window_positioner.anchor_rect),
+      OwnedWindowAnchorPosition::kBottomRight,
+      OwnedWindowAnchorGravity::kBottomLeft,
+      OwnedWindowConstraintAdjustment::kAdjustmentFlipY};
+  EXPECT_CALL(menu_window_delegate, GetOwnedWindowAnchorAndRectInPx())
+      .WillOnce(Return(anchor));
+  gfx::Rect menu_window_bounds(gfx::Point(176, 74),
+                               menu_window_positioner.size);
+  std::unique_ptr<WaylandWindow> menu_window = CreateWaylandWindowWithParams(
+      PlatformWindowType::kMenu, toplevel_window->GetWidget(),
+      menu_window_bounds, &menu_window_delegate);
+  EXPECT_TRUE(menu_window);
 
   Sync();
 
-  EXPECT_EQ(nested_menu_window->GetBounds(), nested_menu_window_bounds);
-
-  // Case 3: imagine the menu window was positioned near to the right edge of a
-  // display. Nothing changes in the way how WaylandWindow calculates bounds,
-  // because the Wayland compositor does not provide global location of windows.
-  // Though, the compositor can reposition the window (flip along x or y axis or
-  // slide along those axis). WaylandWindow just needs to correctly translate
-  // bounds from relative to parent to be relative to screen. The Wayland
-  // compositor does not reposition the menu, because it fits the screen, but
-  // the nested menu window is repositioned to the left.
-  EXPECT_CALL(nested_menu_window_delegate,
-              OnBoundsChanged(
-                  Eq(gfx::Rect({139, 156}, nested_menu_window_bounds.size()))));
-  calculated_nested_bounds.set_origin({-301, 80});
-  SendConfigureEventPopup(nested_menu_window.get(), calculated_nested_bounds);
+  VerifyXdgPopupPosition(menu_window.get(), menu_window_positioner);
 
   Sync();
 
-  // Case 4: imagine the top level window was moved down to the bottom edge of a
-  // display and only tab strip with 3-dot menu buttons left visible. In this
-  // case, Chromium also does not know about that and positions the window
-  // normally (normal bounds are sent), but the Wayland compositor flips the top
-  // menu window along y-axis and fixes bounds of a top level window so that it
-  // is located (from the Chromium point of view) below origin of the menu
-  // window.
-  EXPECT_CALL(
-      delegate_,
-      OnBoundsChanged(Eq(gfx::Rect({0, 363}, window_->GetBounds().size()))));
-  EXPECT_CALL(
-      menu_window_delegate,
-      OnBoundsChanged(Eq(gfx::Rect({440, 0}, menu_window_bounds.size()))));
-  SendConfigureEventPopup(menu_window.get(),
-                          gfx::Rect({440, -363}, menu_window_bounds.size()));
-
-  Sync();
-
-  // The nested menu window is also repositioned accordingly, but it's not
-  // Wayland compositor reposition, but rather reposition from the Chromium
-  // side. Thus, we have to check that anchor rect is correct.
-  nested_menu_window.reset();
-  nested_menu_window_bounds.set_origin({723, 258});
-  nested_menu_window = CreateWaylandWindowWithParams(
-      PlatformWindowType::kMenu, menu_window->GetWidget(),
-      nested_menu_window_bounds, &nested_menu_window_delegate);
+  MockPlatformWindowDelegate nested_menu_window_delegate;
+  EXPECT_CALL(nested_menu_window_delegate, GetMenuType())
+      .WillRepeatedly(Return(MenuType::kChildMenu));
+  anchor = {{180, 157, 312, 1},
+            OwnedWindowAnchorPosition::kTopRight,
+            OwnedWindowAnchorGravity::kBottomRight,
+            OwnedWindowConstraintAdjustment::kAdjustmentFlipY |
+                OwnedWindowConstraintAdjustment::kAdjustmentFlipX};
+  EXPECT_CALL(nested_menu_window_delegate, GetOwnedWindowAnchorAndRectInPx())
+      .WillOnce(Return(anchor));
+  gfx::Rect nested_menu_window_bounds(gfx::Point(492, 157),
+                                      nested_menu_window_positioner.size);
+  std::unique_ptr<WaylandWindow> nested_menu_window =
+      CreateWaylandWindowWithParams(
+          PlatformWindowType::kMenu, menu_window->GetWidget(),
+          nested_menu_window_bounds, &nested_menu_window_delegate);
   EXPECT_TRUE(nested_menu_window);
 
   Sync();
 
-  // We must get the anchor on gfx::Point(4, 258).
-  nested_menu_window_positioner.anchor_rect.set_origin({4, 258});
   VerifyXdgPopupPosition(nested_menu_window.get(),
                          nested_menu_window_positioner);
-
-  Sync();
-
-  EXPECT_CALL(nested_menu_window_delegate, OnBoundsChanged(_)).Times(0);
-  calculated_nested_bounds.set_origin({283, 258});
-  SendConfigureEventPopup(nested_menu_window.get(), calculated_nested_bounds);
-
-  Sync();
-
-  // Case 5: this case involves case 4. Thus, it concerns only the nested menu
-  // window. imagine that the top menu window is flipped along y-axis and
-  // positioned near to the right side of a display. The nested menu window is
-  // flipped along x-axis by the compositor and WaylandWindow must calculate
-  // bounds back to be relative to display correctly. If the window is near to
-  // the left edge of a display, nothing is going to change, and the origin will
-  // be the same as in the previous case.
-  EXPECT_CALL(nested_menu_window_delegate,
-              OnBoundsChanged(
-                  Eq(gfx::Rect({149, 258}, nested_menu_window_bounds.size()))));
-  calculated_nested_bounds.set_origin({-291, 258});
-  SendConfigureEventPopup(nested_menu_window.get(), calculated_nested_bounds);
-
-  Sync();
-
-  // Case 6: imagine the top level window was moved back to normal position. In
-  // this case, the Wayland compositor positions the menu window normally and
-  // the WaylandWindow repositions the top level window back to 0,0 (which had
-  // an offset to compensate the position of the menu window fliped along
-  // y-axis. It just has had negative y value, which is wrong for Chromium.
-  EXPECT_CALL(
-      delegate_,
-      OnBoundsChanged(Eq(gfx::Rect({0, 0}, window_->GetBounds().size()))));
-  EXPECT_CALL(
-      menu_window_delegate,
-      OnBoundsChanged(Eq(gfx::Rect({440, 76}, menu_window_bounds.size()))));
-  SendConfigureEventPopup(menu_window.get(),
-                          gfx::Rect({440, 76}, menu_window_bounds.size()));
-
-  Sync();
-
-  VerifyAndClearExpectations();
 }
 
 ACTION_P(VerifyRegion, ptr) {
@@ -2312,163 +2287,6 @@
   window_->SetPointerFocus(false);
 }
 
-// Case 1: When the menu bounds are positive and there is a positive,
-// non-zero anchor width
-TEST_P(WaylandWindowTest, NestedMenuWindows) {
-  VerifyAndClearExpectations();
-
-  EXPECT_CALL(delegate_, GetMenuType()).WillOnce(Return(MenuType::kRootMenu));
-  gfx::Rect menu_window_bounds(gfx::Rect(4, 20, 8, 20));
-  std::unique_ptr<WaylandWindow> menu_window = CreateWaylandWindowWithParams(
-      PlatformWindowType::kMenu, window_->GetWidget(), menu_window_bounds,
-      &delegate_);
-  EXPECT_TRUE(menu_window);
-
-  VerifyAndClearExpectations();
-
-  EXPECT_CALL(delegate_, GetMenuType()).WillOnce(Return(MenuType::kChildMenu));
-  gfx::Rect nested_menu_bounds(gfx::Rect(10, 30, 40, 20));
-  std::unique_ptr<WaylandWindow> nested_menu_window =
-      CreateWaylandWindowWithParams(PlatformWindowType::kMenu,
-                                    menu_window->GetWidget(),
-                                    nested_menu_bounds, &delegate_);
-  EXPECT_TRUE(nested_menu_window);
-
-  VerifyAndClearExpectations();
-
-  nested_menu_window->SetPointerFocus(true);
-
-  Sync();
-
-  auto* mock_surface_nested_menu =
-      GetTextXdgPopupByWindow(nested_menu_window.get());
-
-  ASSERT_TRUE(mock_surface_nested_menu);
-
-  auto anchor_width = (mock_surface_nested_menu->anchor_rect()).width();
-  EXPECT_EQ(4, anchor_width);
-
-  nested_menu_window->SetPointerFocus(false);
-}
-
-// Case 2: When the menu bounds are positive and there is a negative or
-// zero anchor width
-TEST_P(WaylandWindowTest, NestedMenuWindows1) {
-  VerifyAndClearExpectations();
-
-  EXPECT_CALL(delegate_, GetMenuType())
-      .WillRepeatedly(Return(MenuType::kRootContextMenu));
-  gfx::Rect menu_window_bounds(gfx::Rect(6, 20, 8, 20));
-  std::unique_ptr<WaylandWindow> menu_window = CreateWaylandWindowWithParams(
-      PlatformWindowType::kMenu, window_->GetWidget(), menu_window_bounds,
-      &delegate_);
-  EXPECT_TRUE(menu_window);
-
-  VerifyAndClearExpectations();
-
-  gfx::Rect nested_menu_bounds(gfx::Rect(10, 30, 10, 20));
-  std::unique_ptr<WaylandWindow> nested_menu_window =
-      CreateWaylandWindowWithParams(PlatformWindowType::kMenu,
-                                    menu_window->GetWidget(),
-                                    nested_menu_bounds, &delegate_);
-  EXPECT_TRUE(nested_menu_window);
-
-  VerifyAndClearExpectations();
-
-  nested_menu_window->SetPointerFocus(true);
-
-  Sync();
-
-  auto* mock_surface_nested_menu =
-      GetTextXdgPopupByWindow(nested_menu_window.get());
-
-  ASSERT_TRUE(mock_surface_nested_menu);
-
-  auto anchor_width = (mock_surface_nested_menu->anchor_rect()).width();
-  EXPECT_EQ(1, anchor_width);
-
-  nested_menu_window->SetPointerFocus(false);
-}
-
-// Case 3: When the menu bounds are negative and there is a positive,
-// non-zero anchor width
-TEST_P(WaylandWindowTest, NestedMenuWindows2) {
-  VerifyAndClearExpectations();
-
-  EXPECT_CALL(delegate_, GetMenuType()).WillOnce(Return(MenuType::kRootMenu));
-  gfx::Rect menu_window_bounds(gfx::Rect(10, 20, 40, 20));
-  std::unique_ptr<WaylandWindow> menu_window = CreateWaylandWindowWithParams(
-      PlatformWindowType::kMenu, window_->GetWidget(), menu_window_bounds,
-      &delegate_);
-  EXPECT_TRUE(menu_window);
-
-  VerifyAndClearExpectations();
-
-  EXPECT_CALL(delegate_, GetMenuType()).WillOnce(Return(MenuType::kChildMenu));
-  gfx::Rect nested_menu_bounds(gfx::Rect(5, 30, 21, 20));
-  std::unique_ptr<WaylandWindow> nested_menu_window =
-      CreateWaylandWindowWithParams(PlatformWindowType::kMenu,
-                                    menu_window->GetWidget(),
-                                    nested_menu_bounds, &delegate_);
-  EXPECT_TRUE(nested_menu_window);
-
-  VerifyAndClearExpectations();
-
-  nested_menu_window->SetPointerFocus(true);
-
-  Sync();
-
-  auto* mock_surface_nested_menu =
-      GetTextXdgPopupByWindow(nested_menu_window.get());
-
-  ASSERT_TRUE(mock_surface_nested_menu);
-
-  auto anchor_width = (mock_surface_nested_menu->anchor_rect()).width();
-  EXPECT_EQ(8, anchor_width);
-
-  nested_menu_window->SetPointerFocus(false);
-}
-
-// Case 4: When the menu bounds are negative and there is a negative,
-// zero anchor width
-TEST_P(WaylandWindowTest, NestedMenuWindows3) {
-  VerifyAndClearExpectations();
-
-  EXPECT_CALL(delegate_, GetMenuType())
-      .WillRepeatedly(Return(MenuType::kRootContextMenu));
-  gfx::Rect menu_window_bounds(gfx::Rect(10, 20, 20, 20));
-  std::unique_ptr<WaylandWindow> menu_window = CreateWaylandWindowWithParams(
-      PlatformWindowType::kMenu, window_->GetWidget(), menu_window_bounds,
-      &delegate_);
-  EXPECT_TRUE(menu_window);
-
-  VerifyAndClearExpectations();
-
-  gfx::Rect nested_menu_bounds(gfx::Rect(5, 30, 21, 20));
-  std::unique_ptr<WaylandWindow> nested_menu_window =
-      CreateWaylandWindowWithParams(PlatformWindowType::kMenu,
-                                    menu_window->GetWidget(),
-                                    nested_menu_bounds, &delegate_);
-  EXPECT_TRUE(nested_menu_window);
-
-  VerifyAndClearExpectations();
-
-  nested_menu_window->SetPointerFocus(true);
-
-  Sync();
-
-  auto* mock_surface_nested_menu =
-      GetTextXdgPopupByWindow(nested_menu_window.get());
-
-  ASSERT_TRUE(mock_surface_nested_menu);
-
-  auto anchor_width = (mock_surface_nested_menu->anchor_rect()).width();
-
-  EXPECT_EQ(1, anchor_width);
-
-  nested_menu_window->SetPointerFocus(false);
-}
-
 TEST_P(WaylandWindowTest, WaylandPopupNestedParent) {
   VerifyAndClearExpectations();
 
diff --git a/ui/ozone/platform/wayland/host/xdg_popup_wrapper_impl.cc b/ui/ozone/platform/wayland/host/xdg_popup_wrapper_impl.cc
index a5fc12d..1bbcc82f 100644
--- a/ui/ozone/platform/wayland/host/xdg_popup_wrapper_impl.cc
+++ b/ui/ozone/platform/wayland/host/xdg_popup_wrapper_impl.cc
@@ -12,6 +12,7 @@
 #include "base/environment.h"
 #include "base/logging.h"
 #include "base/nix/xdg_util.h"
+#include "ui/base/ui_base_types.h"
 #include "ui/events/event.h"
 #include "ui/events/event_constants.h"
 #include "ui/events/types/event_type.h"
@@ -29,72 +30,78 @@
 
 namespace {
 
-uint32_t TranslateAnchor(WlAnchor anchor) {
+uint32_t TranslateAnchor(OwnedWindowAnchorPosition anchor) {
   switch (anchor) {
-    case WlAnchor::None:
+    case OwnedWindowAnchorPosition::kNone:
       return XDG_POSITIONER_ANCHOR_NONE;
-    case WlAnchor::Top:
+    case OwnedWindowAnchorPosition::kTop:
       return XDG_POSITIONER_ANCHOR_TOP;
-    case WlAnchor::Bottom:
+    case OwnedWindowAnchorPosition::kBottom:
       return XDG_POSITIONER_ANCHOR_BOTTOM;
-    case WlAnchor::Left:
+    case OwnedWindowAnchorPosition::kLeft:
       return XDG_POSITIONER_ANCHOR_LEFT;
-    case WlAnchor::Right:
+    case OwnedWindowAnchorPosition::kRight:
       return XDG_POSITIONER_ANCHOR_RIGHT;
-    case WlAnchor::TopLeft:
+    case OwnedWindowAnchorPosition::kTopLeft:
       return XDG_POSITIONER_ANCHOR_TOP_LEFT;
-    case WlAnchor::BottomLeft:
+    case OwnedWindowAnchorPosition::kBottomLeft:
       return XDG_POSITIONER_ANCHOR_BOTTOM_LEFT;
-    case WlAnchor::TopRight:
+    case OwnedWindowAnchorPosition::kTopRight:
       return XDG_POSITIONER_ANCHOR_TOP_RIGHT;
-    case WlAnchor::BottomRight:
+    case OwnedWindowAnchorPosition::kBottomRight:
       return XDG_POSITIONER_ANCHOR_BOTTOM_RIGHT;
   }
 }
 
-uint32_t TranslateGravity(WlGravity gravity) {
+uint32_t TranslateGravity(OwnedWindowAnchorGravity gravity) {
   switch (gravity) {
-    case WlGravity::None:
+    case OwnedWindowAnchorGravity::kNone:
       return XDG_POSITIONER_GRAVITY_NONE;
-    case WlGravity::Top:
+    case OwnedWindowAnchorGravity::kTop:
       return XDG_POSITIONER_GRAVITY_TOP;
-    case WlGravity::Bottom:
+    case OwnedWindowAnchorGravity::kBottom:
       return XDG_POSITIONER_GRAVITY_BOTTOM;
-    case WlGravity::Left:
+    case OwnedWindowAnchorGravity::kLeft:
       return XDG_POSITIONER_GRAVITY_LEFT;
-    case WlGravity::Right:
+    case OwnedWindowAnchorGravity::kRight:
       return XDG_POSITIONER_GRAVITY_RIGHT;
-    case WlGravity::TopLeft:
+    case OwnedWindowAnchorGravity::kTopLeft:
       return XDG_POSITIONER_GRAVITY_TOP_LEFT;
-    case WlGravity::BottomLeft:
+    case OwnedWindowAnchorGravity::kBottomLeft:
       return XDG_POSITIONER_GRAVITY_BOTTOM_LEFT;
-    case WlGravity::TopRight:
+    case OwnedWindowAnchorGravity::kTopRight:
       return XDG_POSITIONER_GRAVITY_TOP_RIGHT;
-    case WlGravity::BottomRight:
+    case OwnedWindowAnchorGravity::kBottomRight:
       return XDG_POSITIONER_GRAVITY_BOTTOM_RIGHT;
   }
 }
 
-uint32_t TranslateContraintAdjustment(
-    WlConstraintAdjustment constraint_adjustment) {
+uint32_t TranslateConstraintAdjustment(
+    OwnedWindowConstraintAdjustment constraint_adjustment) {
   uint32_t res = 0;
-  if ((constraint_adjustment & WlConstraintAdjustment::SlideX) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentSlideX) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_SLIDE_X;
-  if ((constraint_adjustment & WlConstraintAdjustment::SlideY) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentSlideY) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_SLIDE_Y;
-  if ((constraint_adjustment & WlConstraintAdjustment::FlipX) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentFlipX) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_X;
-  if ((constraint_adjustment & WlConstraintAdjustment::FlipY) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentFlipY) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_Y;
-  if ((constraint_adjustment & WlConstraintAdjustment::ResizeX) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentResizeX) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_RESIZE_X;
-  if ((constraint_adjustment & WlConstraintAdjustment::ResizeY) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentRezizeY) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_RESIZE_Y;
   return res;
 }
@@ -219,25 +226,21 @@
   DCHECK(parent_window == parent_window->GetTopMostChildWindow() ||
          topmost_child == wayland_window_);
 
-  // Place anchor to the end of the possible position.
-  gfx::Rect anchor_rect = GetAnchorRect(
-      params_.menu_type, params_.bounds,
-      gfx::ScaleToRoundedRect(parent_window->GetBounds(),
-                              1.0 / parent_window->window_scale()));
+  gfx::Rect anchor_rect;
+  OwnedWindowAnchorPosition anchor_position;
+  OwnedWindowAnchorGravity anchor_gravity;
+  OwnedWindowConstraintAdjustment constraint_adjustment;
+  FillAnchorData(params_, &anchor_rect, &anchor_position, &anchor_gravity,
+                 &constraint_adjustment);
 
   xdg_positioner_set_anchor_rect(positioner, anchor_rect.x(), anchor_rect.y(),
                                  anchor_rect.width(), anchor_rect.height());
   xdg_positioner_set_size(positioner, params_.bounds.width(),
                           params_.bounds.height());
-  xdg_positioner_set_anchor(
-      positioner,
-      TranslateAnchor(GetAnchor(params_.menu_type, params_.bounds)));
-  xdg_positioner_set_gravity(
-      positioner,
-      TranslateGravity(GetGravity(params_.menu_type, params_.bounds)));
+  xdg_positioner_set_anchor(positioner, TranslateAnchor(anchor_position));
+  xdg_positioner_set_gravity(positioner, TranslateGravity(anchor_gravity));
   xdg_positioner_set_constraint_adjustment(
-      positioner,
-      TranslateContraintAdjustment(GetConstraintAdjustment(params_.menu_type)));
+      positioner, TranslateConstraintAdjustment(constraint_adjustment));
   return positioner;
 }
 
diff --git a/ui/ozone/platform/wayland/host/zxdg_popup_v6_wrapper_impl.cc b/ui/ozone/platform/wayland/host/zxdg_popup_v6_wrapper_impl.cc
index 16c379a..3a9149b 100644
--- a/ui/ozone/platform/wayland/host/zxdg_popup_v6_wrapper_impl.cc
+++ b/ui/ozone/platform/wayland/host/zxdg_popup_v6_wrapper_impl.cc
@@ -10,11 +10,13 @@
 
 #include "base/environment.h"
 #include "base/nix/xdg_util.h"
+#include "ui/base/ui_base_types.h"
 #include "ui/events/event.h"
 #include "ui/events/event_constants.h"
 #include "ui/events/types/event_type.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/ozone/platform/wayland/common/wayland_util.h"
+#include "ui/ozone/platform/wayland/host/shell_popup_wrapper.h"
 #include "ui/ozone/platform/wayland/host/wayland_connection.h"
 #include "ui/ozone/platform/wayland/host/wayland_event_source.h"
 #include "ui/ozone/platform/wayland/host/wayland_pointer.h"
@@ -27,74 +29,80 @@
 
 namespace {
 
-uint32_t TranslateAnchor(WlAnchor anchor) {
+uint32_t TranslateAnchor(OwnedWindowAnchorPosition anchor) {
   switch (anchor) {
-    case WlAnchor::None:
+    case OwnedWindowAnchorPosition::kNone:
       return ZXDG_POSITIONER_V6_ANCHOR_NONE;
-    case WlAnchor::Top:
+    case OwnedWindowAnchorPosition::kTop:
       return ZXDG_POSITIONER_V6_ANCHOR_TOP;
-    case WlAnchor::Bottom:
+    case OwnedWindowAnchorPosition::kBottom:
       return ZXDG_POSITIONER_V6_ANCHOR_BOTTOM;
-    case WlAnchor::Left:
+    case OwnedWindowAnchorPosition::kLeft:
       return ZXDG_POSITIONER_V6_ANCHOR_LEFT;
-    case WlAnchor::Right:
+    case OwnedWindowAnchorPosition::kRight:
       return ZXDG_POSITIONER_V6_ANCHOR_RIGHT;
-    case WlAnchor::TopLeft:
+    case OwnedWindowAnchorPosition::kTopLeft:
       return ZXDG_POSITIONER_V6_ANCHOR_TOP | ZXDG_POSITIONER_V6_ANCHOR_LEFT;
-    case WlAnchor::BottomLeft:
+    case OwnedWindowAnchorPosition::kBottomLeft:
       return ZXDG_POSITIONER_V6_ANCHOR_BOTTOM | ZXDG_POSITIONER_V6_ANCHOR_LEFT;
-    case WlAnchor::TopRight:
+    case OwnedWindowAnchorPosition::kTopRight:
       return ZXDG_POSITIONER_V6_ANCHOR_TOP | ZXDG_POSITIONER_V6_ANCHOR_RIGHT;
-    case WlAnchor::BottomRight:
+    case OwnedWindowAnchorPosition::kBottomRight:
       return ZXDG_POSITIONER_V6_ANCHOR_BOTTOM | ZXDG_POSITIONER_V6_ANCHOR_RIGHT;
   }
 }
 
-uint32_t TranslateGravity(WlGravity gravity) {
+uint32_t TranslateGravity(OwnedWindowAnchorGravity gravity) {
   switch (gravity) {
-    case WlGravity::None:
+    case OwnedWindowAnchorGravity::kNone:
       return ZXDG_POSITIONER_V6_GRAVITY_NONE;
-    case WlGravity::Top:
+    case OwnedWindowAnchorGravity::kTop:
       return ZXDG_POSITIONER_V6_GRAVITY_TOP;
-    case WlGravity::Bottom:
+    case OwnedWindowAnchorGravity::kBottom:
       return ZXDG_POSITIONER_V6_GRAVITY_BOTTOM;
-    case WlGravity::Left:
+    case OwnedWindowAnchorGravity::kLeft:
       return ZXDG_POSITIONER_V6_GRAVITY_LEFT;
-    case WlGravity::Right:
+    case OwnedWindowAnchorGravity::kRight:
       return ZXDG_POSITIONER_V6_GRAVITY_RIGHT;
-    case WlGravity::TopLeft:
+    case OwnedWindowAnchorGravity::kTopLeft:
       return ZXDG_POSITIONER_V6_GRAVITY_TOP | ZXDG_POSITIONER_V6_GRAVITY_LEFT;
-    case WlGravity::BottomLeft:
+    case OwnedWindowAnchorGravity::kBottomLeft:
       return ZXDG_POSITIONER_V6_GRAVITY_BOTTOM |
              ZXDG_POSITIONER_V6_GRAVITY_LEFT;
-    case WlGravity::TopRight:
+    case OwnedWindowAnchorGravity::kTopRight:
       return ZXDG_POSITIONER_V6_GRAVITY_TOP | ZXDG_POSITIONER_V6_GRAVITY_RIGHT;
-    case WlGravity::BottomRight:
+    case OwnedWindowAnchorGravity::kBottomRight:
       return ZXDG_POSITIONER_V6_GRAVITY_BOTTOM |
              ZXDG_POSITIONER_V6_GRAVITY_RIGHT;
   }
 }
 
 uint32_t TranslateConstraintAdjustment(
-    WlConstraintAdjustment constraint_adjustment) {
+    OwnedWindowConstraintAdjustment constraint_adjustment) {
   uint32_t res = 0;
-  if ((constraint_adjustment & WlConstraintAdjustment::SlideX) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentSlideX) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_X;
-  if ((constraint_adjustment & WlConstraintAdjustment::SlideY) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentSlideY) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_Y;
-  if ((constraint_adjustment & WlConstraintAdjustment::FlipX) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentFlipX) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_X;
-  if ((constraint_adjustment & WlConstraintAdjustment::FlipY) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentFlipY) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y;
-  if ((constraint_adjustment & WlConstraintAdjustment::ResizeX) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentResizeX) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_X;
-  if ((constraint_adjustment & WlConstraintAdjustment::ResizeY) !=
-      WlConstraintAdjustment::None)
+  if ((constraint_adjustment &
+       OwnedWindowConstraintAdjustment::kAdjustmentRezizeY) !=
+      OwnedWindowConstraintAdjustment::kAdjustmentNone)
     res |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_Y;
   return res;
 }
@@ -201,26 +209,22 @@
   // windows.
   DCHECK_EQ(parent_window->GetTopMostChildWindow(), parent_window);
 
-  // Place anchor to the end of the possible position.
-  gfx::Rect anchor_rect = GetAnchorRect(
-      params_.menu_type, params_.bounds,
-      gfx::ScaleToRoundedRect(parent_window->GetBounds(),
-                              1.0 / parent_window->window_scale()));
+  gfx::Rect anchor_rect;
+  OwnedWindowAnchorPosition anchor_position;
+  OwnedWindowAnchorGravity anchor_gravity;
+  OwnedWindowConstraintAdjustment constraint_adjustment;
+  FillAnchorData(params_, &anchor_rect, &anchor_position, &anchor_gravity,
+                 &constraint_adjustment);
 
   zxdg_positioner_v6_set_anchor_rect(positioner, anchor_rect.x(),
                                      anchor_rect.y(), anchor_rect.width(),
                                      anchor_rect.height());
   zxdg_positioner_v6_set_size(positioner, params_.bounds.width(),
                               params_.bounds.height());
-  zxdg_positioner_v6_set_anchor(
-      positioner,
-      TranslateAnchor(GetAnchor(params_.menu_type, params_.bounds)));
-  zxdg_positioner_v6_set_gravity(
-      positioner,
-      TranslateGravity(GetGravity(params_.menu_type, params_.bounds)));
+  zxdg_positioner_v6_set_anchor(positioner, TranslateAnchor(anchor_position));
+  zxdg_positioner_v6_set_gravity(positioner, TranslateGravity(anchor_gravity));
   zxdg_positioner_v6_set_constraint_adjustment(
-      positioner, TranslateConstraintAdjustment(
-                      GetConstraintAdjustment(params_.menu_type)));
+      positioner, TranslateConstraintAdjustment(constraint_adjustment));
   return positioner;
 }
 
diff --git a/ui/views/animation/ink_drop.cc b/ui/views/animation/ink_drop.cc
index df292d4..ad60832 100644
--- a/ui/views/animation/ink_drop.cc
+++ b/ui/views/animation/ink_drop.cc
@@ -5,6 +5,7 @@
 #include "ui/views/animation/ink_drop.h"
 
 #include <memory>
+#include <utility>
 
 #include "base/bind.h"
 #include "base/callback.h"
@@ -41,7 +42,7 @@
 InkDrop::~InkDrop() = default;
 
 void InkDrop::Install(View* host, std::unique_ptr<InkDropHost> ink_drop) {
-  host->SetProperty(kInkDropKey, ink_drop.release());
+  host->SetProperty(kInkDropKey, std::move(ink_drop));
 }
 
 void InkDrop::Remove(View* host) {
diff --git a/ui/views/controls/highlight_path_generator.cc b/ui/views/controls/highlight_path_generator.cc
index fd7ebce..cc627576 100644
--- a/ui/views/controls/highlight_path_generator.cc
+++ b/ui/views/controls/highlight_path_generator.cc
@@ -5,6 +5,7 @@
 #include "ui/views/controls/highlight_path_generator.h"
 
 #include <algorithm>
+#include <utility>
 
 #include "third_party/skia/include/core/SkRect.h"
 #include "ui/gfx/rrect_f.h"
@@ -26,7 +27,7 @@
 void HighlightPathGenerator::Install(
     View* host,
     std::unique_ptr<HighlightPathGenerator> generator) {
-  host->SetProperty(kHighlightPathGeneratorKey, generator.release());
+  host->SetProperty(kHighlightPathGeneratorKey, std::move(generator));
 }
 
 // static
diff --git a/ui/views/controls/scroll_view.cc b/ui/views/controls/scroll_view.cc
index 98551483..d2f3f21 100644
--- a/ui/views/controls/scroll_view.cc
+++ b/ui/views/controls/scroll_view.cc
@@ -347,6 +347,13 @@
   SetVerticalScrollBarMode(ScrollBarMode::kDisabled);
 }
 
+void ScrollView::SetAllowKeyboardScrolling(bool allow_keyboard_scrolling) {
+  if (allow_keyboard_scrolling_ == allow_keyboard_scrolling)
+    return;
+  allow_keyboard_scrolling_ = allow_keyboard_scrolling;
+  OnPropertyChanged(&allow_keyboard_scrolling_, kPropertyEffectsNone);
+}
+
 void ScrollView::SetDrawOverflowIndicator(bool draw_overflow_indicator) {
   if (draw_overflow_indicator_ == draw_overflow_indicator)
     return;
@@ -666,6 +673,9 @@
 bool ScrollView::OnKeyPressed(const ui::KeyEvent& event) {
   bool processed = false;
 
+  if (!allow_keyboard_scrolling_)
+    return false;
+
   // Give vertical scrollbar priority
   if (IsVerticalScrollEnabled())
     processed = vert_sb_->OnKeyPressed(event);
@@ -1179,6 +1189,7 @@
 BEGIN_METADATA(ScrollView, View)
 ADD_READONLY_PROPERTY_METADATA(int, MinHeight)
 ADD_READONLY_PROPERTY_METADATA(int, MaxHeight)
+ADD_PROPERTY_METADATA(bool, AllowKeyboardScrolling)
 ADD_PROPERTY_METADATA(absl::optional<SkColor>, BackgroundColor)
 ADD_PROPERTY_METADATA(absl::optional<ui::NativeTheme::ColorId>,
                       BackgroundThemeColorId)
diff --git a/ui/views/controls/scroll_view.h b/ui/views/controls/scroll_view.h
index 5534b79..6a97e8e 100644
--- a/ui/views/controls/scroll_view.h
+++ b/ui/views/controls/scroll_view.h
@@ -163,6 +163,10 @@
   void SetTreatAllScrollEventsAsHorizontal(
       bool treat_all_scroll_events_as_horizontal);
 
+  // Gets/Sets whether the keyboard arrow keys attempt to scroll the view.
+  bool GetAllowKeyboardScrolling() const { return allow_keyboard_scrolling_; }
+  void SetAllowKeyboardScrolling(bool allow_keyboard_scrolling);
+
   bool GetDrawOverflowIndicator() const { return draw_overflow_indicator_; }
   void SetDrawOverflowIndicator(bool draw_overflow_indicator);
 
@@ -365,6 +369,9 @@
   // Set to true if the scroll with layers feature is enabled.
   const bool scroll_with_layers_enabled_;
 
+  // Whether the left/right/up/down arrow keys attempt to scroll the view.
+  bool allow_keyboard_scrolling_ = true;
+
   base::ObserverList<Observer>::Unchecked observers_;
 
   DISALLOW_COPY_AND_ASSIGN(ScrollView);
@@ -373,6 +380,7 @@
 BEGIN_VIEW_BUILDER(VIEWS_EXPORT, ScrollView, View)
 VIEW_BUILDER_VIEW_TYPE_PROPERTY(View, Contents)
 VIEW_BUILDER_VIEW_TYPE_PROPERTY(View, Header)
+VIEW_BUILDER_PROPERTY(bool, AllowKeyboardScrolling)
 VIEW_BUILDER_PROPERTY(absl::optional<ui::NativeTheme::ColorId>,
                       BackgroundThemeColorId)
 VIEW_BUILDER_PROPERTY(ScrollView::ScrollBarMode, HorizontalScrollBarMode)
diff --git a/ui/views/controls/scroll_view_unittest.cc b/ui/views/controls/scroll_view_unittest.cc
index 0226672d..8dfa7f2214 100644
--- a/ui/views/controls/scroll_view_unittest.cc
+++ b/ui/views/controls/scroll_view_unittest.cc
@@ -23,7 +23,10 @@
 #include "ui/base/ui_base_features.h"
 #include "ui/compositor/layer.h"
 #include "ui/compositor/scoped_animation_duration_scale_mode.h"
+#include "ui/events/keycodes/keyboard_codes.h"
 #include "ui/events/test/event_generator.h"
+#include "ui/events/types/event_type.h"
+#include "ui/gfx/geometry/scroll_offset.h"
 #include "ui/views/border.h"
 #include "ui/views/controls/scrollbar/base_scroll_bar_thumb.h"
 #include "ui/views/controls/scrollbar/overlay_scroll_bar.h"
@@ -1459,6 +1462,52 @@
   EXPECT_EQ(0, test_api.CurrentOffset().y());
 }
 
+TEST_F(ScrollViewTest, ArrowKeyScrolling) {
+  // Set up with vertical scrollbar.
+  auto contents = std::make_unique<FixedView>();
+  contents->SetPreferredSize(gfx::Size(kWidth, kMaxHeight * 5));
+  scroll_view_->SetContents(std::move(contents));
+  scroll_view_->ClipHeightTo(0, kMaxHeight);
+  scroll_view_->SetSize(gfx::Size(kWidth, kMaxHeight));
+  CheckScrollbarVisibility(scroll_view_.get(), VERTICAL, true);
+
+  // The vertical position starts at 0.
+  ScrollViewTestApi test_api(scroll_view_.get());
+  EXPECT_EQ(0, test_api.IntegralViewOffset().y());
+
+  // Pressing the down arrow key scrolls down. The amount isn't important.
+  ui::KeyEvent down_arrow(ui::ET_KEY_PRESSED, ui::VKEY_DOWN, ui::EF_NONE);
+  EXPECT_TRUE(scroll_view_->OnKeyPressed(down_arrow));
+  EXPECT_GT(0, test_api.IntegralViewOffset().y());
+
+  // Pressing the up arrow key scrolls back to the origin.
+  ui::KeyEvent up_arrow(ui::ET_KEY_PRESSED, ui::VKEY_UP, ui::EF_NONE);
+  EXPECT_TRUE(scroll_view_->OnKeyPressed(up_arrow));
+  EXPECT_EQ(0, test_api.IntegralViewOffset().y());
+}
+
+TEST_F(ScrollViewTest, ArrowKeyScrollingDisabled) {
+  // Set up with vertical scrollbar.
+  auto contents = std::make_unique<FixedView>();
+  contents->SetPreferredSize(gfx::Size(kWidth, kMaxHeight * 5));
+  scroll_view_->SetContents(std::move(contents));
+  scroll_view_->ClipHeightTo(0, kMaxHeight);
+  scroll_view_->SetSize(gfx::Size(kWidth, kMaxHeight));
+  CheckScrollbarVisibility(scroll_view_.get(), VERTICAL, true);
+
+  // Disable keyboard scrolling.
+  scroll_view_->SetAllowKeyboardScrolling(false);
+
+  // The vertical position starts at 0.
+  ScrollViewTestApi test_api(scroll_view_.get());
+  EXPECT_EQ(0, test_api.IntegralViewOffset().y());
+
+  // Pressing the down arrow key does not consume the event, nor scroll.
+  ui::KeyEvent down(ui::ET_KEY_PRESSED, ui::VKEY_DOWN, ui::EF_NONE);
+  EXPECT_FALSE(scroll_view_->OnKeyPressed(down));
+  EXPECT_EQ(0, test_api.IntegralViewOffset().y());
+}
+
 // Test that overflow indicators turn on appropriately.
 TEST_F(ScrollViewTest, VerticalOverflowIndicators) {
   const int kWidth = 100;
diff --git a/weblayer/browser/android/javatests/BUILD.gn b/weblayer/browser/android/javatests/BUILD.gn
index 37b22bd..81a33e7 100644
--- a/weblayer/browser/android/javatests/BUILD.gn
+++ b/weblayer/browser/android/javatests/BUILD.gn
@@ -52,6 +52,7 @@
     "//base:base_java_test_support",
     "//components/browser_ui/share/android:java",
     "//components/safe_browsing/android:safe_browsing_java",
+    "//content/public/android:content_java",
     "//content/public/test/android:content_java_test_support",
     "//net/android:net_java_test_support",
     "//third_party/android_deps:android_support_v4_java",
diff --git a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/NewTabCallbackTest.java b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/NewTabCallbackTest.java
index 599300b..eb20beeb 100644
--- a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/NewTabCallbackTest.java
+++ b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/NewTabCallbackTest.java
@@ -12,9 +12,11 @@
 import org.junit.runner.RunWith;
 
 import org.chromium.base.test.util.CallbackHelper;
+import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.DisabledTest;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
+import org.chromium.content_public.common.ContentSwitches;
 import org.chromium.weblayer.NewTabCallback;
 import org.chromium.weblayer.Tab;
 import org.chromium.weblayer.shell.InstrumentationActivity;
@@ -32,7 +34,7 @@
 
     @Test
     @SmallTest
-    @DisabledTest(message = "crbug.com/1239032")
+    @CommandLineFlags.Add(ContentSwitches.DISABLE_POPUP_BLOCKING)
     public void testNewBrowser() {
         String url = mActivityTestRule.getTestDataURL("new_browser.html");
         mActivity = mActivityTestRule.launchShellWithUrl(url);