diff --git a/AUTHORS b/AUTHORS
index 3e2087a..cb1dd20 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1422,6 +1422,7 @@
 Yizhou Jiang <yizhou.jiang@intel.com>
 Yoav Weiss <yoav@yoav.ws>
 Yoav Zilberberg <yoav.zilberberg@gmail.com>
+Yogesh <yogesh.dabas@samsung.com>
 Yoichiro Hibara <hibarayoichiro871@gmail.com>
 Yong Ling <yongling@tencent.com>
 Yong Shin <sy3620@gmail.com>
diff --git a/DEPS b/DEPS
index 04e8592..b35bf84 100644
--- a/DEPS
+++ b/DEPS
@@ -242,7 +242,7 @@
   #
   # CQ_INCLUDE_TRYBOTS=luci.chrome.try:lacros-amd64-generic-chrome-skylab
   # CQ_INCLUDE_TRYBOTS=luci.chrome.try:lacros-arm-generic-chrome-skylab
-  'lacros_sdk_version': '15564.0.0',
+  'lacros_sdk_version': '15575.0.0',
 
   # Generate location tag metadata to include in tests result data uploaded
   # to ResultDB. This isn't needed on some configs and the tool that generates
@@ -314,15 +314,15 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '723df2275d7bc70edb6f7176e476e46f0167be11',
+  'skia_revision': 'cfb9844091facf6f0574444a52896f9b7dca9261',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'ca7fb1773b405b8c45c7f69b8b2776222fb9206a',
+  'v8_revision': '2412bd4a9e376739ac1b9321d3790f4f0055f6a3',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '7b1777e6a007054a92a537f48d5d899fd5927e03',
+  'angle_revision': '4a195ce0ff7590eb253e7cd15ea1f72f70d283c1',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -341,7 +341,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Fuchsia sdk
   # and whatever else without interference from each other.
-  'fuchsia_version': 'version:14.20230804.1.1',
+  'fuchsia_version': 'version:14.20230811.1.1',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling google-toolbox-for-mac
   # and whatever else without interference from each other.
@@ -405,7 +405,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': '9e748461df3973fcf7c1b7951517122706eeb74c',
+  'devtools_frontend_revision': '62d81dec725588cee7dd0fbbc5b6dde9e61a7f2c',
   # 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.
@@ -445,7 +445,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': 'c8144f2ab97c25c9b215a530ba59a8ae0678e882',
+  'dawn_revision': '423a1a0b2b0d8c58114cb56809dfb61f36e706c8',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -837,7 +837,7 @@
 
   'src/clank': {
     'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' +
-    '5e6486e7dd40a3f10c429e6698f6015bd0a8e29b',
+    '893d511e3b2739f75329c157604dc732ca5eed9f',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -1032,7 +1032,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': '86kTZYjTlSuqFy1h1q3jlp7fbNNBnXGfXfN3MNj7Zw8C',
+          'version': '4wCy8XSvFxkpCWEnr_nTfYLER2pqB8ZC1mHzilXgBH0C',
       },
     ],
     'condition': 'checkout_android',
@@ -1282,7 +1282,7 @@
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
 
   'src/third_party/devtools-frontend-internal': {
-      'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'b6075fd39d2468034955355a271c83a8e3a2bddb',
+      'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'f88b302691af48eb8a2f5f61161f6ffe8d90ce39',
     'condition': 'checkout_src_internal',
   },
 
@@ -1740,7 +1740,7 @@
     Var('chromium_git') + '/external/github.com/cisco/openh264' + '@' + '09a4f3ec842a8932341b195c5b01e141c8a16eb7',
 
   'src/third_party/openscreen/src':
-    Var('chromium_git') + '/openscreen' + '@' + '0e76089dcd11a07ad8a4b9d9ae13d0729314de1f',
+    Var('chromium_git') + '/openscreen' + '@' + '32b0184c448a20a9759e84c0af5b05ec66f6fdec',
 
   'src/third_party/openxr/src': {
     'url': Var('chromium_git') + '/external/github.com/KhronosGroup/OpenXR-SDK' + '@' + '58a00cf85c39ad5ec4dc43a769624e420c06179a',
@@ -1751,7 +1751,7 @@
     Var('pdfium_git') + '/pdfium.git' + '@' +  Var('pdfium_revision'),
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'fcc0512ebf832b84c88bcbf4e7693cb1e19a4242',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '6eda20974cae1776fb65cfe166ef39c3f4250dcb',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1785,13 +1785,13 @@
   },
 
   'src/third_party/re2/src':
-    Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + '9dc7ae7b52a17b75e3f9249ea85ba578bf42f255',
+    Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + '714c8fcdfddde95d0a95503ebd7e7e450965e4fa',
 
   'src/third_party/r8': {
       'packages': [
           {
               'package': 'chromium/third_party/r8',
-              'version': 'c5gwBJlApOcrNvnktaZlEXQ168Ig5dECf1tJyt5fcjwC',
+              'version': 'gAkFIrXkgbLOsddL5MkR5JZs0IR02MvXqPL9v075pm8C',
           },
       ],
       'condition': 'checkout_android',
@@ -2059,7 +2059,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': '8LblzubBG6U6PlwEP1kHHaqsRB97EUqZ0RYE1kCyJLcC',
+        'version': 'b6cOVme1Mp1KupOQ-aA1dbFxYOMA13zRKiMoHsi5IT4C',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -4186,7 +4186,7 @@
 
   'src/components/optimization_guide/internal': {
       'url': Var('chrome_git') + '/chrome/components/optimization_guide.git' + '@' +
-        '0eedd5cebce58541856d91eafbee298387cb556f',
+        '4059c8dcf015a2b9f67a07e6319629ef13509a62',
       'condition': 'checkout_src_internal',
   },
 
@@ -4234,7 +4234,7 @@
 
   'src/ios_internal':  {
       'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' +
-        'f187edd51932af31895941ce4f1a41dd6b15c2e6',
+        '2f4ac57d189eb988c9a1e756ba4eea00f58418d3',
       'condition': 'checkout_ios and checkout_src_internal',
   },
 
diff --git a/ash/app_list/views/app_list_item_view_pixeltest.cc b/ash/app_list/views/app_list_item_view_pixeltest.cc
index 84501c1..eb935324 100644
--- a/ash/app_list/views/app_list_item_view_pixeltest.cc
+++ b/ash/app_list/views/app_list_item_view_pixeltest.cc
@@ -150,10 +150,10 @@
   size_t GetRevisionNumber() {
     if (jelly_enabled()) {
       // Revision numbers reset with Jelly.
-      return 2;
+      return 3;
     }
 
-    size_t base_revision_number = 4;
+    size_t base_revision_number = 5;
     if (use_folder_icon_refresh()) {
       ++base_revision_number;
     }
@@ -229,19 +229,19 @@
       // In production, use_folder_icon_refresh() is always enabled when jelly
       // is enabled.
       EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
-          GenerateScreenshotName(), /*revision_number=*/1, GetItemViewAt(0),
+          GenerateScreenshotName(), /*revision_number=*/2, GetItemViewAt(0),
           GetItemViewAt(1), GetItemViewAt(2), GetItemViewAt(3),
           GetItemViewAt(4)));
     }
     // jelly_enabled && !use_folder_icon_refresh is deliberately skipped.
   } else if (use_folder_icon_refresh()) {
     EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
-        GenerateScreenshotName(), /*revision_number=*/2, GetItemViewAt(0),
+        GenerateScreenshotName(), /*revision_number=*/3, GetItemViewAt(0),
         GetItemViewAt(1), GetItemViewAt(2), GetItemViewAt(3),
         GetItemViewAt(4)));
   } else {
     EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
-        GenerateScreenshotName(), /*revision_number=*/1, GetItemViewAt(0),
+        GenerateScreenshotName(), /*revision_number=*/2, GetItemViewAt(0),
         GetItemViewAt(1), GetItemViewAt(2), GetItemViewAt(3)));
   }
 }
@@ -282,7 +282,7 @@
   if (jelly_enabled()) {
     if (use_folder_icon_refresh()) {
       EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
-          GenerateScreenshotName(), /*revision_number=*/1, GetItemViewAt(0),
+          GenerateScreenshotName(), /*revision_number=*/2, GetItemViewAt(0),
           GetItemViewAt(1), GetItemViewAt(2), GetItemViewAt(3),
           GetItemViewAt(4)));
     }
@@ -290,12 +290,12 @@
     // occur in production.
   } else if (use_folder_icon_refresh()) {
     EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
-        GenerateScreenshotName(), /*revision_number=*/2, GetItemViewAt(0),
+        GenerateScreenshotName(), /*revision_number=*/3, GetItemViewAt(0),
         GetItemViewAt(1), GetItemViewAt(2), GetItemViewAt(3),
         GetItemViewAt(4)));
   } else {
     EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
-        GenerateScreenshotName(), /*revision_number=*/1, GetItemViewAt(0),
+        GenerateScreenshotName(), /*revision_number=*/2, GetItemViewAt(0),
         GetItemViewAt(1), GetItemViewAt(2), GetItemViewAt(3)));
   }
 
diff --git a/ash/app_list/views/app_list_view_pixeltest.cc b/ash/app_list/views/app_list_view_pixeltest.cc
index b8f8498..01e7861 100644
--- a/ash/app_list/views/app_list_view_pixeltest.cc
+++ b/ash/app_list/views/app_list_view_pixeltest.cc
@@ -188,7 +188,7 @@
   UseFixedPlaceholderTextAndHideCursor(test_helper->GetSearchBoxView());
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "bubble_launcher_answer_card_search_results",
-      /*revision_number=*/JellyEnabled() ? 4 : 2,
+      /*revision_number=*/JellyEnabled() ? 5 : 3,
       GetAppListTestHelper()->GetBubbleView(),
       GetPrimaryShelf()->navigation_widget()));
 }
@@ -211,7 +211,7 @@
   UseFixedPlaceholderTextAndHideCursor(test_helper->GetSearchBoxView());
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "bubble_launcher_url_search_results",
-      /*revision_number=*/JellyEnabled() ? 4 : 2,
+      /*revision_number=*/JellyEnabled() ? 5 : 3,
       GetAppListTestHelper()->GetBubbleView(),
       GetPrimaryShelf()->navigation_widget()));
 }
@@ -226,7 +226,7 @@
       GetAppListTestHelper()->GetSearchBoxView());
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "bubble_launcher_basics",
-      /*revision_number=*/JellyEnabled() ? 4 : 2,
+      /*revision_number=*/JellyEnabled() ? 5 : 3,
       GetAppListTestHelper()->GetBubbleView(),
       GetPrimaryShelf()->navigation_widget()));
 }
@@ -249,7 +249,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "bubble_launcher_gradient_zone",
-      /*revision_number=*/JellyEnabled() ? 4 : 2,
+      /*revision_number=*/JellyEnabled() ? 5 : 3,
       GetAppListTestHelper()->GetBubbleView(),
       GetPrimaryShelf()->navigation_widget()));
 }
@@ -362,7 +362,7 @@
 TEST_P(AppListViewTabletPixelTest, Basic) {
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "tablet_launcher_basics",
-      /*revision_number=*/IsJellyEnabled() ? 2 : 1,
+      /*revision_number=*/IsJellyEnabled() ? 3 : 2,
       GetAppListTestHelper()->GetAppsContainerView()));
 }
 
@@ -384,7 +384,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "tablet_launcher_top_gradient_zone",
-      /*revision_number=*/IsJellyEnabled() ? 2 : 1,
+      /*revision_number=*/IsJellyEnabled() ? 3 : 2,
       GetAppListTestHelper()->GetAppsContainerView()));
 }
 
@@ -406,7 +406,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "tablet_launcher_bottom_gradient_zone",
-      /*revision_number=*/IsJellyEnabled() ? 2 : 1,
+      /*revision_number=*/IsJellyEnabled() ? 3 : 2,
       GetAppListTestHelper()->GetAppsContainerView()));
 }
 
@@ -417,7 +417,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "search_box_view_active",
-      /*revision_number=*/IsJellyEnabled() ? 1 : 0, search_box_view));
+      /*revision_number=*/IsJellyEnabled() ? 2 : 1, search_box_view));
 }
 
 class AppListViewAssistantZeroStateTest
@@ -464,7 +464,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "app_list_view_assistant_zero_state",
-      /*revision_number=*/JellyEnabled(GetParam()) ? 2 : 1,
+      /*revision_number=*/JellyEnabled(GetParam()) ? 3 : 2,
       page_view()->GetViewByID(AssistantViewID::kZeroStateView)));
 }
 
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index fabc531..4cdc7de5 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -6871,6 +6871,24 @@
       <message name="IDS_GLANCEABLES_TASKS_SEE_ALL_BUTTON_ACCESSIBLE_NAME" desc="The glanceable displays tasks items fetched from Google Tasks API. Glanceables UI renders only limited number of items, the rest of them can be seen by clicking this button, which will open a corresponding website. This is the text announced by ChromeVox for this button.">
         See all tasks on Google tasks on web
       </message>
+      <message name="IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DUE_DATE_ACCESSIBLE_DESCRIPTION" desc="The glanceable displays tasks items fetched from Google Tasks API. This text is the part of a11y description to announce that a task has attached due date as part of its metadata.">
+        due date <ph name="DUE_DATE">$1<ex>Wed, Aug 23</ex></ph>
+      </message>
+      <message name="IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_SUBTASK_ACCESSIBLE_DESCRIPTION" desc="The glanceable displays tasks items fetched from Google Tasks API. This text is the part of a11y description to announce that a task contains any number of subtasks.">
+        subtask
+      </message>
+      <message name="IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DETAILS_ACCESSIBLE_DESCRIPTION" desc="The glanceable displays tasks items fetched from Google Tasks API. This text is the part of a11y description to announce that a task contains additional details.">
+        details
+      </message>
+      <message name="IDS_GLANCEABLES_TASKS_TASK_ITEM_METADATA_WRAPPER_ACCESSIBLE_DESCRIPTION" desc="The glanceable displays tasks items fetched from Google Tasks API. This is the wrapper text for the a11y description to announce that a task has additional metadata (due date, subtasks, details, etc.).">
+        This item has: <ph name="GLANCEABLES_TASK_ITEM_METADATA">$1<ex>due date Wed, Aug 23, subtask, details</ex></ph>.
+      </message>
+      <message name="IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_COMPLETED_ACCESSIBLE_NAME" desc="The glanceable displays tasks items fetched from Google Tasks API. This is the a11y name announced by ChromeVox for the checkbox button to mark a task as completed.">
+        Mark completed
+      </message>
+      <message name="IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_NOT_COMPLETED_ACCESSIBLE_NAME" desc="The glanceable displays tasks items fetched from Google Tasks API. This is the a11y name announced by ChromeVox for the checkbox button to mark a task as not completed.">
+        Mark as not completed
+      </message>
 
       <!-- Do Not Disturb notification -->
       <message name="IDS_ASH_DO_NOT_DISTURB_NOTIFICATION_TITLE" desc="Label used for the notification that shows up when the 'Do Not Disturb' feature is enabled.">
diff --git a/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DETAILS_ACCESSIBLE_DESCRIPTION.png.sha1 b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DETAILS_ACCESSIBLE_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..5c57aab
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DETAILS_ACCESSIBLE_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+f5ec262d7ab1bd292b493761e861909430b4d428
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DUE_DATE_ACCESSIBLE_DESCRIPTION.png.sha1 b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DUE_DATE_ACCESSIBLE_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..451ec47d
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DUE_DATE_ACCESSIBLE_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+8020d194d5365ff108de6a860046f8c7945a7def
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_SUBTASK_ACCESSIBLE_DESCRIPTION.png.sha1 b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_SUBTASK_ACCESSIBLE_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..e000b1d
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_SUBTASK_ACCESSIBLE_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+5dd4ae9b52c5ba7c87084b54d1373d96326fbcbc
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_COMPLETED_ACCESSIBLE_NAME.png.sha1 b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_COMPLETED_ACCESSIBLE_NAME.png.sha1
new file mode 100644
index 0000000..3a5fbc4
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_COMPLETED_ACCESSIBLE_NAME.png.sha1
@@ -0,0 +1 @@
+f7569786fb92d9dece25d80632152744f7a68c69
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_NOT_COMPLETED_ACCESSIBLE_NAME.png.sha1 b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_NOT_COMPLETED_ACCESSIBLE_NAME.png.sha1
new file mode 100644
index 0000000..0824183
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_NOT_COMPLETED_ACCESSIBLE_NAME.png.sha1
@@ -0,0 +1 @@
+e207c579ee95fc397489a0ddbae3b143270809ef
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_METADATA_WRAPPER_ACCESSIBLE_DESCRIPTION.png.sha1 b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_METADATA_WRAPPER_ACCESSIBLE_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..66f392d
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_GLANCEABLES_TASKS_TASK_ITEM_METADATA_WRAPPER_ACCESSIBLE_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+e88e8c53894e58643b6dd22cde6296c9ff1e4491
\ No newline at end of file
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc
index 53ace91..2f4c1bd 100644
--- a/ash/constants/ash_features.cc
+++ b/ash/constants/ash_features.cc
@@ -592,7 +592,7 @@
 // cryptohome backend.
 BASE_FEATURE(kCryptohomeRecovery,
              "CryptohomeRecovery",
-             base::FEATURE_ENABLED_BY_DEFAULT);
+             base::FEATURE_DISABLED_BY_DEFAULT);
 
 // Deprecates Ctrl+Alt+/ as shortcut to open Keyboard shortcuts app, shows
 // a notification if that shortcut is pressed, and replaces that shortcut with
@@ -768,7 +768,7 @@
 // early in the sign-in flow, before loading Profile.
 BASE_FEATURE(kEnableEarlyPrefs,
              "EnableEarlyPrefs",
-             base::FEATURE_ENABLED_BY_DEFAULT);
+             base::FEATURE_DISABLED_BY_DEFAULT);
 
 // Enables external keyboard testers in the diagnostics app.
 BASE_FEATURE(kEnableExternalKeyboardsInDiagnostics,
diff --git a/ash/glanceables/tasks/glanceables_task_view.cc b/ash/glanceables/tasks/glanceables_task_view.cc
index b4638cf6..9b7d580 100644
--- a/ash/glanceables/tasks/glanceables_task_view.cc
+++ b/ash/glanceables/tasks/glanceables_task_view.cc
@@ -6,6 +6,7 @@
 
 #include <memory>
 #include <string>
+#include <utility>
 
 #include "ash/glanceables/glanceables_v2_controller.h"
 #include "ash/glanceables/tasks/glanceables_tasks_client.h"
@@ -85,17 +86,20 @@
 
 class GlanceablesTaskView::CheckButton : public views::ImageButton {
  public:
-  CheckButton(PressedCallback pressed_callback)
-      : views::ImageButton(pressed_callback) {
+  explicit CheckButton(PressedCallback pressed_callback)
+      : views::ImageButton(std::move(pressed_callback)) {
     SetAccessibleRole(ax::mojom::Role::kCheckBox);
-    // TODO(b/294681832): Finalize, and then localize strings.
-    SetAccessibleName(u"Mark completed");
     UpdateImage();
   }
 
   void GetAccessibleNodeData(ui::AXNodeData* node_data) override {
     views::ImageButton::GetAccessibleNodeData(node_data);
 
+    node_data->SetName(l10n_util::GetStringUTF16(
+        checked_
+            ? IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_NOT_COMPLETED_ACCESSIBLE_NAME
+            : IDS_GLANCEABLES_TASKS_TASK_ITEM_MARK_COMPLETED_ACCESSIBLE_NAME));
+
     const ax::mojom::CheckedState checked_state =
         checked_ ? ax::mojom::CheckedState::kTrue
                  : ax::mojom::CheckedState::kFalse;
@@ -163,11 +167,14 @@
     tasks_details_view_->AddChildView(
         CreateSecondRowIcon(kGlanceablesTasksDueDateIcon));
 
+    const auto formatted_due_date = GetFormattedDueDate(task->due.value());
+    details.push_back(l10n_util::GetStringFUTF16(
+        IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DUE_DATE_ACCESSIBLE_DESCRIPTION,
+        formatted_due_date));
+
     views::Label* due_date_label = SetupLabel(tasks_details_view_);
-    due_date_label->SetText(GetFormattedDueDate(task->due.value()));
+    due_date_label->SetText(formatted_due_date);
     due_date_label->SetProperty(views::kMarginsKey, kSecondRowItemsMargin);
-    // TODO(b/294681832): Finalize, and then localize strings.
-    details.push_back(u"Due " + GetFormattedDueDate(task->due.value()));
     due_date_label->SetFontList(
         TypographyProvider::Get()->ResolveTypographyToken(
             TypographyToken::kCrosAnnotation1));
@@ -182,15 +189,15 @@
   }
 
   if (task->has_subtasks) {
-    // TODO(b/294681832): Finalize, and then localize strings.
-    details.push_back(u"Has subtasks");
+    details.push_back(l10n_util::GetStringUTF16(
+        IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_SUBTASK_ACCESSIBLE_DESCRIPTION));
     tasks_details_view_->AddChildView(
         CreateSecondRowIcon(kGlanceablesSubtaskIcon));
   }
 
   if (task->has_notes) {
-    // TODO(b/294681832): Finalize, and then localize strings.
-    details.push_back(u"Has notes");
+    details.push_back(l10n_util::GetStringUTF16(
+        IDS_GLANCEABLES_TASKS_TASK_ITEM_HAS_DETAILS_ACCESSIBLE_DESCRIPTION));
     tasks_details_view_->AddChildView(
         CreateSecondRowIcon(kGlanceablesTasksNotesIcon));
   }
@@ -204,8 +211,14 @@
   button_->SetProperty(views::kMarginsKey, double_row ? kDoubleRowButtonMargin
                                                       : kSingleRowButtonMargin);
 
-  button_->SetAccessibleDescription(base::UTF8ToUTF16(task->title) + u", " +
-                                    base::JoinString(details, u", "));
+  auto a11y_description = base::UTF8ToUTF16(task->title);
+  if (!details.empty()) {
+    a11y_description += u". ";
+    a11y_description += l10n_util::GetStringFUTF16(
+        IDS_GLANCEABLES_TASKS_TASK_ITEM_METADATA_WRAPPER_ACCESSIBLE_DESCRIPTION,
+        base::JoinString(details, u", "));
+  }
+  button_->SetAccessibleDescription(a11y_description);
   button_->NotifyAccessibilityEvent(ax::mojom::Event::kTextChanged, true);
 }
 
diff --git a/ash/login/ui/lock_contents_view_unittest.cc b/ash/login/ui/lock_contents_view_unittest.cc
index b21c6fb..aedec16 100644
--- a/ash/login/ui/lock_contents_view_unittest.cc
+++ b/ash/login/ui/lock_contents_view_unittest.cc
@@ -1199,11 +1199,6 @@
 
 // Gaia is shown in login on the 4th bad password attempt.
 TEST_F(LockContentsViewUnitTest, ShowGaiaAuthAfterManyFailedLoginAttempts) {
-  base::test::ScopedFeatureList feature_list;
-  // With recovery feature enabled, the online login is not forced after bad
-  // password attempts.
-  feature_list.InitAndDisableFeature(features::kCryptohomeRecovery);
-
   // Build lock screen with a single user.
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLogin,
diff --git a/ash/shelf/scrollable_shelf_view_pixeltest.cc b/ash/shelf/scrollable_shelf_view_pixeltest.cc
index 4be8783a..a22683e 100644
--- a/ash/shelf/scrollable_shelf_view_pixeltest.cc
+++ b/ash/shelf/scrollable_shelf_view_pixeltest.cc
@@ -113,7 +113,7 @@
   // Verify the shelf context menu and the shelf.
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "shelf_context_menu",
-      /*revision_number=*/6,
+      /*revision_number=*/7,
       GetPrimaryShelf()
           ->shelf_widget()
           ->shelf_view_for_testing()
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index f317ee0f..a1bbf80 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">Laai nie</translation>
 <translation id="6309219492973062892">Klik of tik op rakikone 1-8</translation>
 <translation id="6315170314923504164">Stem</translation>
+<translation id="6324916366299863871">Wysig kortpad</translation>
 <translation id="6330012934079202188">Vensters van alle lessenaars word tans gewys; druk die oppylsleutel om vensters van die huidige lessenaar te wys</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> is 'n bestuurde sessie wat deur <ph name="MANAGER" /> bestuur word</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> is gekoppel</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index 20874c5a..62275aa 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">ባትሪ እየሞላ አይደለም</translation>
 <translation id="6309219492973062892">ከ1-8 ያሉ የመደርደሪያ አዶዎችን ጠቅ ወይም መታ ያድርጉ</translation>
 <translation id="6315170314923504164">ድምፅ</translation>
+<translation id="6324916366299863871">አቋራጭን ያርትዑ</translation>
 <translation id="6330012934079202188">ከሁሉም ዴስኮች ላይ መስኮቶችን በማሳየት ላይ፣ አሁን ካለው ዴስክ ላይ መስኮቶችን ለማሳየት የላይ ቀስት ቁልፍን ይጫኑ</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> በ<ph name="MANAGER" /> የሚተዳደር ክፍለ-ጊዜ ነው</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> ተገናኝቷል</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 12f34dd8..ad7502c 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -1234,6 +1234,7 @@
 <translation id="6291221004442998378">لا يتم الشحن.</translation>
 <translation id="6309219492973062892">النقر على الرموز من 1 إلى 8 على الرف</translation>
 <translation id="6315170314923504164">الصوت</translation>
+<translation id="6324916366299863871">تعديل الاختصار</translation>
 <translation id="6330012934079202188">يتم الآن عرض النوافذ المفتوحة في جميع أسطح المكتب، ويمكنك الضغط على مفتاح السهم المتّجه للأعلى لعرض النوافذ المفتوحة في سطح المكتب الحالي.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> هي جلسة تتم إدارتها من خلال <ph name="MANAGER" />.</translation>
 <translation id="6344138931392227467">تم توصيل <ph name="DEVICE_NAME" />.</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb
index 92275692..edc2e69 100644
--- a/ash/strings/ash_strings_as.xtb
+++ b/ash/strings/ash_strings_as.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">চাৰ্জ হৈ থকা নাই</translation>
 <translation id="6309219492973062892">শ্বেল্ফৰ ১ৰ পৰা ৮ নম্বৰ চিহ্নত ক্লিক কৰক অথবা টিপক</translation>
 <translation id="6315170314923504164">Voice</translation>
+<translation id="6324916366299863871">শ্বৰ্টকাট সম্পাদনা কৰক</translation>
 <translation id="6330012934079202188">আটাইবোৰ ডেস্কৰ পৰা ৱিণ্ড’সমূহ দেখুৱাই থকা হৈছে, বর্তমানৰ ডেস্কখনৰ পৰা ৱিণ্ড'সমূহ দেখুৱাবলৈ আপ এৰ' কীটো টিপক</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> হৈছে <ph name="MANAGER" />এ পৰিচালনা কৰা এটা পৰিচালিত ছেশ্বন</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> সংযোগ কৰা হৈছে</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb
index 260fed0..5986bc3 100644
--- a/ash/strings/ash_strings_az.xtb
+++ b/ash/strings/ash_strings_az.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Şarj edilmir</translation>
 <translation id="6309219492973062892">1-8-ci rəf ikonalarına klikləyin və ya toxunun</translation>
 <translation id="6315170314923504164">Səs</translation>
+<translation id="6324916366299863871">Qısayola düzəliş edin</translation>
 <translation id="6330012934079202188">Bütün masaların pəncərələri göstərilir, cari masanın pəncərələrini göstərmək üçün Yuxarı ox düyməsini basın</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> sessiyası <ph name="MANAGER" /> tərəfindən idarə olunur</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> qoşulub</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb
index a7f72d4..ae10d61 100644
--- a/ash/strings/ash_strings_be.xtb
+++ b/ash/strings/ash_strings_be.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Не зараджаецца</translation>
 <translation id="6309219492973062892">Націснуць на значкі 1-8 на панэлі доступу</translation>
 <translation id="6315170314923504164">Галасавы ўвод</translation>
+<translation id="6324916366299863871">Рэдагаваць ярлык</translation>
 <translation id="6330012934079202188">Паказаны вокны ўсіх працоўных сталоў. Каб пераключыцца на рэжым паказу вокнаў бягучага працоўнага стала, націсніце стрэлку ўверх</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> – сеанс, якім кіруе <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Прылада "<ph name="DEVICE_NAME" />" падключана</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index e01163b..10ec03f5 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Не се зарежда</translation>
 <translation id="6309219492973062892">Докосване или кликване върху икони от 1 до 8 в лентата</translation>
 <translation id="6315170314923504164">Глас</translation>
+<translation id="6324916366299863871">Редактиране на прекия път</translation>
 <translation id="6330012934079202188">Показани са прозорци от всички работни кътове. Натиснете клавиша със стрелка за нагоре, за да се покажат прозорците от текущия работен кът</translation>
 <translation id="6338485349199627913">„<ph name="DISPLAY_NAME" />“ е сесия, управлявана от <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Установена е връзка с(ъс) <ph name="DEVICE_NAME" /></translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index f603e83..beb814d 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">চার্জ হচ্ছে না</translation>
 <translation id="6309219492973062892">শেল্ফ আইকন ১-৮ এ ক্লিক বা ট্যাপ করুন</translation>
 <translation id="6315170314923504164">ভয়েস</translation>
+<translation id="6324916366299863871">শর্টকার্ট এডিট করুন</translation>
 <translation id="6330012934079202188">সব ডেস্ক থেকে উইন্ডো দেখানো হচ্ছে, বর্তমান ডেস্ক থেকে উইন্ডো দেখাতে 'উর্ধমুখী তীরচিহ্ন' কী প্রেস করুন</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> এমন একটি ম্যানেজ করা সেশন যা <ph name="MANAGER" />-এর মাধ্যমে ম্যানেজ করা হয়</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> কানেক্ট করা হয়েছে</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb
index ba27b408..8bf63f7 100644
--- a/ash/strings/ash_strings_bs.xtb
+++ b/ash/strings/ash_strings_bs.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">Mobilna mreža: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">Dobar dan <ph name="GIVEN_NAME" />,</translation>
 <translation id="1088231044944504242">Pretraživanje kategorije <ph name="CATEGORY" />, fajlova, aplikacija i drugog. Korištenje tipki strelicama za kretanje kroz aplikacije.</translation>
+<translation id="1093645050124056515">Ctrl + Alt + strelica prema dolje</translation>
 <translation id="109942774857561566">Dosadno mi je</translation>
 <translation id="1104084341931202936">Prikaži postavke pristupačnosti</translation>
 <translation id="1104621072296271835">Uređaji još bolje rade zajedno</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">Pauziraj</translation>
 <translation id="1181037720776840403">Ukloni</translation>
 <translation id="1182225749592316782">Ovo dozvoljava pristup kameri i mikrofonu za sve aplikacije i web lokacije s odobrenjima za njih</translation>
+<translation id="1182876754474670069">početna</translation>
 <translation id="1183863904939664422">Ne zanima me ovaj prijedlog</translation>
 <translation id="1184126796192815024">Ova mreža ne podržava prijenos aplikacija s telefona. Pokušajte s korištenjem pristupne tačke telefona. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">Unesite lozinku ili PIN radi veće sigurnosti</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">Idite na 1. radnu površinu od 8</translation>
 <translation id="1589090746204042747">Pristupiti svim aktivnostima u ovoj sesiji</translation>
 <translation id="1592682369233288537">Sljedeća radna površina: <ph name="NEXT_DESK_NAME" />, koristite tipku za pretraživanje i razmak da aktivirate.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + strelica prema dolje</translation>
 <translation id="1604857178818051494">Pauziranje medija</translation>
 <translation id="1610778689852195798">"Opozovite"</translation>
 <translation id="1611993646327628135">Uključeno</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">Kliknite da otključate</translation>
 <translation id="2023558322300866873">Možete bilo kada zaustaviti snimanje paketa</translation>
 <translation id="2034971124472263449">Ipak sačuvaj</translation>
+<translation id="204259843076055848">Prečac <ph name="SIX_PACK_KEY_NAME" /> trenutačno je isključen</translation>
 <translation id="2049240716062114887">Naziv radne površine je promijenjen u <ph name="DESK_NAME" /></translation>
 <translation id="206377500836174974">Puno</translation>
 <translation id="2064048859448024834">Pregled kamere je uključen</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" /> i <ph name="UNAVAILABLE_APPS_TWO" /> nisu na ovom uređaju.</translation>
 <translation id="2673968385134502798">Igre</translation>
 <translation id="2678852583403169292">Meni Odaberite za govor</translation>
+<translation id="2687510499067466116">Promijenjen je tipkovni prečac</translation>
 <translation id="2689613560355655046">Radna površina 8</translation>
 <translation id="2695305337569143674">web</translation>
 <translation id="2697697418792422688">Pogledajte postavke tastature. Izabrana je tastatura <ph name="KEYBOARD_NAME" />.</translation>
@@ -637,12 +642,14 @@
 <translation id="3738664582935948253">Sada možete prikazati klikove i prečice tastature na snimcima ekrana</translation>
 <translation id="3742055079367172538">Snimak ekrana je napravljen</translation>
 <translation id="3756485814916578707">Emitiranje ekrana</translation>
+<translation id="3765841382945324995">Prečac <ph name="SIX_PACK_KEY_NAME" /> ažuriran je na <ph name="NEW_SHORTCUT" /> (stari prečac: <ph name="OLD_SHORTCUT" />)</translation>
 <translation id="3765841986579723851">Uređeno danas</translation>
 <translation id="3773700760453577392">Administrator nije dozvolio višestruku prijavu za korisnika <ph name="USER_EMAIL" />. Svi korisnici se moraju odjaviti kako bi se nastavilo.</translation>
 <translation id="3779139509281456663">Povezivanje s uređajem <ph name="NAME" /></translation>
 <translation id="3781910048497807059">Prebacite fokus na prethodno okno</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">Zaključano</translation>
+<translation id="3796215473395753611">Alt + strelica prema gore</translation>
 <translation id="3796746699333205839">Aplikacija koristi vašu kameru i mikrofon</translation>
 <translation id="3798670284305777884">Zvučnik (interni)</translation>
 <translation id="3799080171973636491">Pritisnite prečicu na tastaturi za povećalo preko cijelog ekrana. Želite li ga uključiti?</translation>
@@ -698,6 +705,7 @@
 <translation id="4026843240379844265">Premjesti aktivni prozor između ekrana</translation>
 <translation id="4028481283645788203">Potrebna je lozinka za dodatnu sigurnost</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + strelica lijevo</translation>
 <translation id="4042660782729322247">Trenutno dijelite ekran</translation>
 <translation id="404437169852192935">Ažuriranja su okončana</translation>
 <translation id="4049230407053723315">Brze postavke</translation>
@@ -719,6 +727,7 @@
 <translation id="4129129681837227511">Za prikaz obavještenja na zaključanom ekranu, otključajte ga da izmijenite postavke</translation>
 <translation id="4131973331381812765">Temperatura: <ph name="TEMPERATURE" /> °C – trenutna brzina: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" /> GHz</translation>
 <translation id="4136724716305260864">Uključeno do izlaska sunca</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + strelica desno</translation>
 <translation id="4146671046252289537">Premjesti na kraj sljedeće riječi</translation>
 <translation id="4146833061457621061">Pokreni muziku</translation>
 <translation id="4150201353443180367">Ekran</translation>
@@ -865,6 +874,7 @@
 <translation id="4747410141429390146">Otključajte da pregledate obavještenja</translation>
 <translation id="4752784485658729358">Dozvoljeno je samo 6 radnih površina. Uklonite jednu radnu površinu da sačuvate novu.</translation>
 <translation id="4759238208242260848">Preuzimanja</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + strelica prema gore</translation>
 <translation id="4762573482154983647">Sakrijte aplikacije</translation>
 <translation id="4763885921995354846">Ovo dozvoljava pristup kameri za sve aplikacije i web lokacije s odobrenjem za nju. Možda ćete morati osvježiti web stranicu ili ponovo pokrenuti aplikaciju.</translation>
 <translation id="4774338217796918551">Vratite se sutra u <ph name="COME_BACK_TIME" />.</translation>
@@ -946,6 +956,7 @@
 <translation id="5062496344832867502">ram</translation>
 <translation id="5068762093486106012">Dobit ćete obavještenje ako govorite dok je zvuk isključen. Zvuk ne napušta vaš uređaj.</translation>
 <translation id="5078796286268621944">Pogrešan PIN</translation>
+<translation id="5083035541015925118">Ctrl + Alt + strelica prema gore</translation>
 <translation id="5083553833479578423">Otključajte više funkcija Asistenta.</translation>
 <translation id="5092436659250499817">Uključivane/isključivanje pozadinskog svjetla tastature</translation>
 <translation id="5094577350232361255">informacije</translation>
@@ -1067,6 +1078,7 @@
 <translation id="5590609058453685222">Uključeno je podsjećanje bez zvuka. Dobit ćete obavještenje ako govorite dok je zvuk isključen.</translation>
 <translation id="5596627076506792578">Više opcija</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">Isključen je tipkovni prečac</translation>
 <translation id="5600837773213129531">Pritisnite Ctrl + Alt + Z da onemogućite izgovaranje povratnih informacija.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5618148318840095371">Prebacili smo vas na bolju mrežu</translation>
@@ -1086,6 +1098,7 @@
 <translation id="5678564054339031017">Prikaži sljedeću sedmicu</translation>
 <translation id="5679050765726761783">Povezan je adapter za napajanje male snage</translation>
 <translation id="5682642926269496722">Google Asistent nije dostupan za račun trenutnog korisnika.</translation>
+<translation id="5689233503102158537">Alt + Backspace</translation>
 <translation id="5689633613396158040">Noćno svjetlo olakšava gledanje u ekran ili čitanje pod prigušenim svjetlom. Dodirnite da promijenite vrijeme uključivanja Noćnog svjetla ili ga isključite u potpunosti.</translation>
 <translation id="5691772641933328258">Otisak prsta nije prepoznat</translation>
 <translation id="5693255400847650006">Mikrofon je u upotrebi</translation>
@@ -1232,6 +1245,7 @@
 <translation id="6291221004442998378">Ne puni se</translation>
 <translation id="6309219492973062892">Kliknite ili dodirnite ikone police od 1 do 8</translation>
 <translation id="6315170314923504164">Govor</translation>
+<translation id="6324916366299863871">Uredite prečicu</translation>
 <translation id="6330012934079202188">Prikazani su prozori sa svih radnih površina. Pritisnite tipku sa strelicom nagore da se prikažu prozori s trenutne radne površine</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je upravljana sesija kojom upravlja <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Uređaj <ph name="DEVICE_NAME" /> je povezan</translation>
@@ -1246,6 +1260,7 @@
 <translation id="639644700271529076">Tipka CAPS LOCK je isključena</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Asistent</translation>
+<translation id="641817663353603351">Stranica prema gore</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">Obrišite sva obavještenja</translation>
 <translation id="643147933154517414">Završeno</translation>
@@ -1255,6 +1270,7 @@
 <translation id="6445915701151710649">cpu</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> događaj(a)</translation>
 <translation id="6449483711453944360">Linux aplikacije i anonimni prozori trenutno nisu podržani</translation>
+<translation id="6450245544201845082">Prečac desnom tipkom miša trenutačno je isključen</translation>
 <translation id="6452181791372256707">Odbij</translation>
 <translation id="6453179446719226835">Promijenjen je jezik</translation>
 <translation id="6459472438155181876">Proširivanje ekrana na <ph name="DISPLAY_NAME" /></translation>
@@ -1379,6 +1395,7 @@
 <translation id="6965382102122355670">Uredu</translation>
 <translation id="6972754398087986839">Započnite</translation>
 <translation id="6979158407327259162">Google Disk</translation>
+<translation id="6980402667292348590">umetni</translation>
 <translation id="6981291220124935078">Uključi pristup</translation>
 <translation id="6981982820502123353">Pristupačnost</translation>
 <translation id="698231206551913481">Nakon što se ukloni ovaj korisnik, trajno će se izbrisati svi fajlovi i lokalni podaci povezani s njim.</translation>
@@ -1430,6 +1447,7 @@
 <translation id="7258828758145722155">Uređeno jučer</translation>
 <translation id="726276584504105859">Povucite ovdje za korištenje podijeljenog ekrana</translation>
 <translation id="7262906531272962081">Napravite podsjetnik</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + backspace</translation>
 <translation id="7297440678881127227">Od <ph name="START_TIME" /> do
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1440,6 +1458,7 @@
 <translation id="7312210124139670355">Vaš administrator vraća vaš eSIM na zadano. To može potrajati nekoliko minuta.</translation>
 <translation id="7313193732017069507">Proširite kameru</translation>
 <translation id="7316261577130609484">Dodaj novi zadatak</translation>
+<translation id="7331646370422660166">Alt + strelica prema dolje</translation>
 <translation id="7340731148882810149">Meni automatskih klikova</translation>
 <translation id="7346909386216857016">Uredu, razumijem</translation>
 <translation id="7348093485538360975">Tastatura na ekranu</translation>
@@ -1485,6 +1504,7 @@
 <translation id="7513922695575567867">Kalendar, sedmica <ph name="DATE" />, trenutno je odabran datum <ph name="SELECTED_DATE" />.</translation>
 <translation id="7514365320538308">Preuzmi</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">stranica prema dolje</translation>
 <translation id="7519206258459640379">Kadriranje kamere je uključeno.</translation>
 <translation id="7519649142417630956">Nakon isključivanja administrator će se odjaviti i neće moći kontrolirati vaš uređaj.
 
@@ -1856,6 +1876,7 @@
 <translation id="9126339866969410112">Opoziv posljednje radnje</translation>
 <translation id="9133335900048457298">Nije moguće snimiti zaštićeni sadržaj</translation>
 <translation id="9139720510312328767">Brisanje sljedećeg slova</translation>
+<translation id="9151906066336345901">kraj</translation>
 <translation id="9161053988251441839">PREDLOŽENE APLIKACIJE</translation>
 <translation id="9168436347345867845">Ostavi za kasnije</translation>
 <translation id="9178475906033259337">Prikaz 1 rezultata za upit <ph name="QUERY" /></translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index e296df6..e10560d3 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">No s'està carregant</translation>
 <translation id="6309219492973062892">Toca les icones 1-8 del prestatge o fes-hi clic</translation>
 <translation id="6315170314923504164">Veu</translation>
+<translation id="6324916366299863871">Edita la drecera</translation>
 <translation id="6330012934079202188">S'estan mostrant les finestres de tots els escriptoris. Prem la tecla de fletxa amunt per mostrar les finestres de l'escriptori actual.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> és una sessió gestionada per <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Dispositiu <ph name="DEVICE_NAME" /> connectat</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index b3aef79..958f8a7 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Nenabíjí se</translation>
 <translation id="6309219492973062892">Kliknout nebo klepnout na ikony 1–8 na poličce</translation>
 <translation id="6315170314923504164">Hlas</translation>
+<translation id="6324916366299863871">Upravit zkratku</translation>
 <translation id="6330012934079202188">Zobrazují se okna ze všech ploch, stisknutím šipky nahoru zobrazíte okna z aktuální plochy</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je spravovaná relace, kterou spravuje doména <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Zařízení <ph name="DEVICE_NAME" /> je připojeno</translation>
diff --git a/ash/strings/ash_strings_cy.xtb b/ash/strings/ash_strings_cy.xtb
index a3485f3..06d6b5c 100644
--- a/ash/strings/ash_strings_cy.xtb
+++ b/ash/strings/ash_strings_cy.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Ddim yn gwefru</translation>
 <translation id="6309219492973062892">Clicio neu dapio eiconau silff 1-8</translation>
 <translation id="6315170314923504164">Llais</translation>
+<translation id="6324916366299863871">Golygu'r llwybr byr</translation>
 <translation id="6330012934079202188">Wrthi'n dangos ffenestri o bob desg, pwyswch y fysell Saeth i fyny i ddangos ffenestri o'r ddesg bresennol</translation>
 <translation id="6338485349199627913">Mae <ph name="DISPLAY_NAME" /> yn sesiwn a reolir gan <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Mae <ph name="DEVICE_NAME" /> wedi'i chysylltu</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index 1ecaa16..8140e4d 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -352,7 +352,7 @@
 <translation id="2531025035050312891">langsom enhed</translation>
 <translation id="2531107890083353124">Tryk på <ph name="KEY_ONE" />, mens du trækker fanen</translation>
 <translation id="254900897760075745">Kopiér valgt indhold til udklipsholderen</translation>
-<translation id="2549711466868162843">Fremhæv lys</translation>
+<translation id="2549711466868162843">Gør belysningen bedre</translation>
 <translation id="2549985041256363841">Start optagelse</translation>
 <translation id="255671100581129685">Google Assistent er ikke tilgængelig i en offentlig session.</translation>
 <translation id="256712445991462162">den fastgjorte lup</translation>
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Oplader ikke</translation>
 <translation id="6309219492973062892">Klik eller tryk på hyldeikonerne 1-8</translation>
 <translation id="6315170314923504164">Stemme</translation>
+<translation id="6324916366299863871">Rediger genvej</translation>
 <translation id="6330012934079202188">Når du får vist vinduer fra alle skriveborde, kan du trykke på pil op for at få vist vinduer fra det aktuelle skrivebord</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> er en session, der administreres af <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> er forbundet</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index 35adf4af..b7ed341 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -1231,6 +1231,7 @@
 <translation id="6291221004442998378">Wird nicht geladen</translation>
 <translation id="6309219492973062892">Auf die Symbole 1 bis 8 in der Ablage klicken oder tippen</translation>
 <translation id="6315170314923504164">Sprache</translation>
+<translation id="6324916366299863871">Verknüpfung bearbeiten</translation>
 <translation id="6330012934079202188">Fenster von allen Desktops werden angezeigt – drücke den Aufwärtspfeil, um die Fenster vom aktuellen Desktop anzuzeigen</translation>
 <translation id="6338485349199627913">„<ph name="DISPLAY_NAME" />“ ist eine verwaltete Sitzung, die von <ph name="MANAGER" /> verwaltet wird</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> verbunden</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index 88f4254..67f42c8 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Δεν φορτίζει</translation>
 <translation id="6309219492973062892">Κλικ ή πάτημα των εικονιδίων ραφιού 1 έως 8</translation>
 <translation id="6315170314923504164">Φωνή</translation>
+<translation id="6324916366299863871">Επεξεργασία συντόμευσης</translation>
 <translation id="6330012934079202188">Εμφανίζονται παράθυρα από όλα τα γραφεία. Πατήστε το πάνω βέλος για την εμφάνιση παραθύρων από το τρέχον γραφείο</translation>
 <translation id="6338485349199627913">Το <ph name="DISPLAY_NAME" /> είναι μια διαχειριζόμενη περίοδος σύνδεσης την οποία διαχειρίζεται ο τομέας <ph name="MANAGER" />.</translation>
 <translation id="6344138931392227467">Η συσκευή <ph name="DEVICE_NAME" /> συνδέθηκε</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb
index f48c194d..a297414 100644
--- a/ash/strings/ash_strings_en-GB.xtb
+++ b/ash/strings/ash_strings_en-GB.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Not charging</translation>
 <translation id="6309219492973062892">Click or tap shelf icons 1–8</translation>
 <translation id="6315170314923504164">Voice</translation>
+<translation id="6324916366299863871">Edit shortcut</translation>
 <translation id="6330012934079202188">Showing windows from all desks; press the Up arrow key to show windows from the current desk</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> is a managed session managed by <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> connected</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index a47fab50..a30edc1 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">No se está cargando</translation>
 <translation id="6309219492973062892">Hacer clic o presionar los íconos de la barra del 1 al 8</translation>
 <translation id="6315170314923504164">Voz</translation>
+<translation id="6324916366299863871">Editar acceso directo</translation>
 <translation id="6330012934079202188">Se muestran las ventanas de todos los escritorios. Para ver solo las del escritorio actual, presiona la flecha hacia arriba.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> es una sesión administrada por <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">El dispositivo <ph name="DEVICE_NAME" /> está conectado</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index b327e859..fff9350 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">No se está cargando</translation>
 <translation id="6309219492973062892">Tocar o hacer clic en iconos 1-8 de la estantería</translation>
 <translation id="6315170314923504164">Voz</translation>
+<translation id="6324916366299863871">Editar acceso directo</translation>
 <translation id="6330012934079202188">Se muestran las ventanas de todos los escritorios. Pulsa la tecla de la flecha hacia arriba para ver las ventanas del escritorio actual.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> es una sesión administrada por <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> conectado</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb
index ec8c4ba..055cd383 100644
--- a/ash/strings/ash_strings_et.xtb
+++ b/ash/strings/ash_strings_et.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">Ei lae</translation>
 <translation id="6309219492973062892">Klõps või puudutus riiuli ikoonil 1–8</translation>
 <translation id="6315170314923504164">Hääl</translation>
+<translation id="6324916366299863871">Otsetee muutmine</translation>
 <translation id="6330012934079202188">Kuvatud on kõigi töölaudade aknad. Praeguse töölaua akende kuvamiseks vajutage ülesnooleklahvi.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> on hallatud seanss, mida haldab <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> on ühendatud</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb
index 8027829..9f09f0c5 100644
--- a/ash/strings/ash_strings_eu.xtb
+++ b/ash/strings/ash_strings_eu.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">Ez da ari kargatzen</translation>
 <translation id="6309219492973062892">Sakatu apaleko 1-8 ikonoak</translation>
 <translation id="6315170314923504164">Ahotsa</translation>
+<translation id="6324916366299863871">Editatu lasterbidea</translation>
 <translation id="6330012934079202188">Lan-eremu guztietako leihoak daude ikusgai. Une honetako lan-eremuko leihoak egon daitezen ikusgai, sakatu gora egiteko gezi-tekla.</translation>
 <translation id="6338485349199627913"><ph name="MANAGER" /> domeinuak kudeatutako saio kudeatua da <ph name="DISPLAY_NAME" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> gailua konektatu da</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index d816a797..9912115c 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -1231,6 +1231,7 @@
 <translation id="6291221004442998378">شارژ نمی‌شود</translation>
 <translation id="6309219492973062892">کلیک کردن یا ضربه زدن روی نماد قفسه‌های ۱ تا ۸</translation>
 <translation id="6315170314923504164">صدا</translation>
+<translation id="6324916366299863871">ویرایش میان‌بر</translation>
 <translation id="6330012934079202188">درحال نمایش پنجره‌های همه میزکارها، برای نمایش پنجره‌های میزکار کنونی، کلید «جهت‌نمای بالا» را فشار دهید</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> جلسه مدیریت‌شده‌ای است که توسط <ph name="MANAGER" /> مدیریت می‌شود</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> متصل شد</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 7783d733..7fff024a 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Ei ladata</translation>
 <translation id="6309219492973062892">Klikkaa tai napauta hyllyn kuvakkeita 1–8</translation>
 <translation id="6315170314923504164">Ääni</translation>
+<translation id="6324916366299863871">Muokkaa pikanäppäintä</translation>
 <translation id="6330012934079202188">Näytetään kaikkien työpöytien ikkunat, näytä nykyisen työpöydän ikkunat painamalla ylänuolta</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> on ylläpidetty käyttökerta, jota ylläpitää <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> yhdistetty</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index af825288..c66332a 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">Cellular: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">Magandang hapon <ph name="GIVEN_NAME" />,</translation>
 <translation id="1088231044944504242">Hanapin ang iyong mga <ph name="CATEGORY" />, file, app, at higit pa. Gamitin ang mga arrow key para i-navigate ang iyong mga app.</translation>
+<translation id="1093645050124056515">ctrl + alt + pababang arrow</translation>
 <translation id="109942774857561566">Naiinip ako</translation>
 <translation id="1104084341931202936">Ipakita ang mga setting ng pagiging naa-access</translation>
 <translation id="1104621072296271835">Gagana nang mas maayos ang iyong mga device kung magkakasama</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">I-pause</translation>
 <translation id="1181037720776840403">Alisin</translation>
 <translation id="1182225749592316782">Pinapayagan nito ang access para sa lahat ng app at website na may mga pahintulot sa camera at mikropono</translation>
+<translation id="1182876754474670069">home</translation>
 <translation id="1183863904939664422">Hindi interesado sa suhestyong ito</translation>
 <translation id="1184126796192815024">Hindi sinusuportahan ng network na ito ang mga streaming app mula sa iyong telepono. Subukang gamitin ang hotspot ng iyong telepono. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">Ilagay ang password o PIN para sa higit pang seguridad</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">Pumunta sa desk 1 hanggang 8</translation>
 <translation id="1589090746204042747">I-access ang lahat ng iyong aktibidad sa session na ito</translation>
 <translation id="1592682369233288537">Susunod na Desk: <ph name="NEXT_DESK_NAME" />, gamitin ang Search+Space para i-activate.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + pababang arrow</translation>
 <translation id="1604857178818051494">Mag-pause ng media</translation>
 <translation id="1610778689852195798">"I-undo"</translation>
 <translation id="1611993646327628135">Naka-on</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">I-click para i-unlock</translation>
 <translation id="2023558322300866873">Puwede mong ihinto ang packet capture anumang oras</translation>
 <translation id="2034971124472263449">I-save pa rin</translation>
+<translation id="204259843076055848">Kasalukuyang naka-off ang shortcut para sa <ph name="SIX_PACK_KEY_NAME" /></translation>
 <translation id="2049240716062114887">Ginawang <ph name="DESK_NAME" /> ang pangalan ng desk</translation>
 <translation id="206377500836174974">Buo</translation>
 <translation id="2064048859448024834">Naka-on ang preview ng camera</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163">Wala ang <ph name="UNAVAILABLE_APPS_ONE" /> at <ph name="UNAVAILABLE_APPS_TWO" /> sa device na ito.</translation>
 <translation id="2673968385134502798">Mga Laro</translation>
 <translation id="2678852583403169292">Menu ng Select-to-speak</translation>
+<translation id="2687510499067466116">Nagbago ang keyboard shortcut</translation>
 <translation id="2689613560355655046">Desk 8</translation>
 <translation id="2695305337569143674">web</translation>
 <translation id="2697697418792422688">Ipakita ang mga setting ng keyboard. Pinili ang <ph name="KEYBOARD_NAME" />.</translation>
@@ -637,12 +642,14 @@
 <translation id="3738664582935948253">Puwede ka na nayong magpakita ng mga pag-click at keyboard shortcut sa mga recording ng screen</translation>
 <translation id="3742055079367172538">Nakakuha na ng screenshot</translation>
 <translation id="3756485814916578707">Kina-cast ang screen</translation>
+<translation id="3765841382945324995">Na-update ang shortcut para sa <ph name="SIX_PACK_KEY_NAME" /> sa <ph name="NEW_SHORTCUT" /> mula sa dating <ph name="OLD_SHORTCUT" /></translation>
 <translation id="3765841986579723851">Na-edit ngayon</translation>
 <translation id="3773700760453577392">Hindi pinayagan ng isang administrator ang maraming pag-sign in para sa <ph name="USER_EMAIL" />. Dapat mag-sign out ang lahat ng user para makapagpatuloy.</translation>
 <translation id="3779139509281456663">Ikinokonekta ang <ph name="NAME" /></translation>
 <translation id="3781910048497807059">Ilipat ang focus sa nakaraang pane</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">I-lock</translation>
+<translation id="3796215473395753611">alt + pataas na arrow</translation>
 <translation id="3796746699333205839">May application na gumagamit ng iyong camera at mikropono</translation>
 <translation id="3798670284305777884">Speaker (internal)</translation>
 <translation id="3799080171973636491">Napindot mo ang keyboard shortcut para sa full-screen magnifier. Gusto mo ba itong i-on?</translation>
@@ -698,6 +705,7 @@
 <translation id="4026843240379844265">Ilipat ang aktibong window sa pagitan ng mga display</translation>
 <translation id="4028481283645788203">Kinakailangan ang password para sa higit pang seguridad</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + pakaliwang arrow</translation>
 <translation id="4042660782729322247">Ibinabahagi mo ang iyong screen</translation>
 <translation id="404437169852192935">Natapos na ang mga update</translation>
 <translation id="4049230407053723315">Mga Mabilisang Setting</translation>
@@ -719,6 +727,7 @@
 <translation id="4129129681837227511">Para makakita ng mga notification sa iyong screen ng lock, i-unlock para baguhin ang setting</translation>
 <translation id="4131973331381812765">Temperatura: <ph name="TEMPERATURE" />°C - Kasalukuyang bilis: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" />GHz</translation>
 <translation id="4136724716305260864">Naka-on hanggang pagsikat ng araw</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + pakanang arrow</translation>
 <translation id="4146671046252289537">Pumunta sa dulo ng susunod na salita</translation>
 <translation id="4146833061457621061">Mag-play ng musika</translation>
 <translation id="4150201353443180367">Display</translation>
@@ -865,6 +874,7 @@
 <translation id="4747410141429390146">Paki-unlock para tingnan ang mga notification</translation>
 <translation id="4752784485658729358">6 na naka-save na desk lang ang pinapayagan. Mag-alis ng desk para mag-save ng bago.</translation>
 <translation id="4759238208242260848">Mga Download </translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + pataas na arrow</translation>
 <translation id="4762573482154983647">Itago ang mga app</translation>
 <translation id="4763885921995354846">Pinapayagan nito ang access sa camera para sa lahat ng app at website na may pahintulot sa camera. Posibleng kailanganin mong i-refresh ang web page o i-restart ang app.</translation>
 <translation id="4774338217796918551">Bumalik nang <ph name="COME_BACK_TIME" />.</translation>
@@ -946,6 +956,7 @@
 <translation id="5062496344832867502">ram</translation>
 <translation id="5068762093486106012">Aabisuhan ka kung nagsasalita ka habang naka-mute. Hindi naipapadala ang audio mula sa iyong device.</translation>
 <translation id="5078796286268621944">Maling PIN</translation>
+<translation id="5083035541015925118">ctrl + alt + pataas na arrow</translation>
 <translation id="5083553833479578423">Mag-unlock ng higit pang feature ng Assistant.</translation>
 <translation id="5092436659250499817">I-on/i-off ang backlight ng keyboard</translation>
 <translation id="5094577350232361255">tungkol sa</translation>
@@ -1067,6 +1078,7 @@
 <translation id="5590609058453685222">Naka-on ang nudge kapag naka-mute. Aabisuhan ka kung nagsasalita ka habang naka-mute.</translation>
 <translation id="5596627076506792578">Higit pang opsyon</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">Naka-off ang keyboard shortcut</translation>
 <translation id="5600837773213129531">Pindutin ang Ctrl + Alt + Z upang i-disable ang pasalitang feedback.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5618148318840095371">Inilipat ka namin sa mas mahusay na network</translation>
@@ -1086,6 +1098,7 @@
 <translation id="5678564054339031017">Ipakita ang susunod na linggo</translation>
 <translation id="5679050765726761783">Nakakonekta ang low-power adapter</translation>
 <translation id="5682642926269496722">Hindi available ang Google Assistant para sa kasalukuyang user account.</translation>
+<translation id="5689233503102158537">alt + backspace</translation>
 <translation id="5689633613396158040">Mas pinapadali ng Night Light na tumingin sa iyong screen o magbasa sa dilim. I-tap para baguhin kung anong oras mao-on ang Night Light o tuluyan itong i-off.</translation>
 <translation id="5691772641933328258">Hindi nakilala ang fingerprint</translation>
 <translation id="5693255400847650006">Ginagamit ang mikropono</translation>
@@ -1232,6 +1245,7 @@
 <translation id="6291221004442998378">Hindi nagcha-charge</translation>
 <translation id="6309219492973062892">I-click o i-tap ang mga icon na shelf 1-8</translation>
 <translation id="6315170314923504164">Voice</translation>
+<translation id="6324916366299863871">I-edit ang shortcut</translation>
 <translation id="6330012934079202188">Ipinapakita ang mga window mula sa lahat ng desk, pindutin ang key na Pataas na arrow para ipakita ang mga window mula sa kasalukuyang desk</translation>
 <translation id="6338485349199627913">Ang <ph name="DISPLAY_NAME" /> ay isang session na pinapamahalaan ng <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Nakonekta ang <ph name="DEVICE_NAME" /></translation>
@@ -1246,6 +1260,7 @@
 <translation id="639644700271529076">Naka-off ang CAPS LOCK</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistant</translation>
+<translation id="641817663353603351">page up</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Lakas ng Signal <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">I-clear ang lahat ng notification</translation>
 <translation id="643147933154517414">Tapos na ang lahat</translation>
@@ -1255,6 +1270,7 @@
 <translation id="6445915701151710649">cpu</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> event</translation>
 <translation id="6449483711453944360">Kasalukuyang hindi sinusuportahan ang mga Linux app at Incognito window</translation>
+<translation id="6450245544201845082">Kasalukuyang naka-off ang shortcut para sa pag-right click</translation>
 <translation id="6452181791372256707">Tanggihan</translation>
 <translation id="6453179446719226835">Napalitan na ang wika</translation>
 <translation id="6459472438155181876">Pinapalawak ang screen sa <ph name="DISPLAY_NAME" /></translation>
@@ -1379,6 +1395,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6972754398087986839">Magsimula</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6980402667292348590">insert</translation>
 <translation id="6981291220124935078">I-on ang access</translation>
 <translation id="6981982820502123353">Accessibility</translation>
 <translation id="698231206551913481">Permanenteng made-delete ang lahat ng file at lokal na data na nauugnay sa user na ito kapag inalis na ang user na ito.</translation>
@@ -1430,6 +1447,7 @@
 <translation id="7258828758145722155">Na-edit kahapon</translation>
 <translation id="726276584504105859">I-drag dito upang magamit ang split screen</translation>
 <translation id="7262906531272962081">Gumawa ng paalala</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + backspace</translation>
 <translation id="7297440678881127227"><ph name="START_TIME" /> hanggang
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1440,6 +1458,7 @@
 <translation id="7312210124139670355">Nire-reset ng iyong administrator ang eSIM mo. Puwede itong tumagal nang ilang minuto.</translation>
 <translation id="7313193732017069507">Palawakin ang camera</translation>
 <translation id="7316261577130609484">Magdagdag ng bagong gawain</translation>
+<translation id="7331646370422660166">alt + pababang arrow</translation>
 <translation id="7340731148882810149">Menu ng mga awtomatikong pag-click</translation>
 <translation id="7346909386216857016">Ok, nakuha ko</translation>
 <translation id="7348093485538360975">Nasa screen na keyboard</translation>
@@ -1485,6 +1504,7 @@
 <translation id="7513922695575567867">Kalendaryo, linggo ng <ph name="DATE" />, kasalukuyang pinili ang <ph name="SELECTED_DATE" />.</translation>
 <translation id="7514365320538308">I-download</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">page down</translation>
 <translation id="7519206258459640379">Naka-on ang camera framing.</translation>
 <translation id="7519649142417630956">Kapag na-shut down, mala-log out ang administrator at hindi niya makokontrol ang iyong device.
 
@@ -1855,6 +1875,7 @@
 <translation id="9126339866969410112">I-undo ang huling pagkilos</translation>
 <translation id="9133335900048457298">Hindi puwedeng mag-record ng protektadong content</translation>
 <translation id="9139720510312328767">I-delete ang susunod na titik</translation>
+<translation id="9151906066336345901">end</translation>
 <translation id="9161053988251441839">MGA IMINUMUNGKAHING APP</translation>
 <translation id="9168436347345867845">Gawin ito sa ibang pagkakataon</translation>
 <translation id="9178475906033259337">Ipinapakita ang 1 resulta para sa <ph name="QUERY" /></translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb
index bec06e61..636221c7 100644
--- a/ash/strings/ash_strings_fr-CA.xtb
+++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">La pile n'est pas en train d'être rechargée</translation>
 <translation id="6309219492973062892">Cliquer sur les icônes d'étagère 1 à 8 ou les toucher</translation>
 <translation id="6315170314923504164">Voix</translation>
+<translation id="6324916366299863871">Modifier un raccourci</translation>
 <translation id="6330012934079202188">Affichage des fenêtres de tous les bureaux. Appuyez sur la flèche vers le haut pour afficher les fenêtres du bureau actuel.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> est une session gérée par <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> connecté</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index 79a2235..cdcbcf66 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -1231,6 +1231,7 @@
 <translation id="6291221004442998378">N'est pas en charge</translation>
 <translation id="6309219492973062892">Cliquer ou appuyer sur les icônes d'étagère 1 à 8</translation>
 <translation id="6315170314923504164">Voix</translation>
+<translation id="6324916366299863871">Modifier le raccourci</translation>
 <translation id="6330012934079202188">Affichage des fenêtres de tous les bureaux. Appuyez sur la flèche vers le haut pour afficher les fenêtres du bureau actuel.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> est une session gérée par <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> connecté(s)</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb
index af1d279..ea9bae9 100644
--- a/ash/strings/ash_strings_gl.xtb
+++ b/ash/strings/ash_strings_gl.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">Non está cargando</translation>
 <translation id="6309219492973062892">Fai clic nas iconas do 1 ao 8 do andel ou tócaas</translation>
 <translation id="6315170314923504164">Voz</translation>
+<translation id="6324916366299863871">Editar atallo</translation>
 <translation id="6330012934079202188">Estanse mostrando as ventás de todos os escritorios. Para que se mostren só as do actual, preme a tecla Frecha arriba</translation>
 <translation id="6338485349199627913"><ph name="MANAGER" /> xestiona esta sesión (<ph name="DISPLAY_NAME" />)</translation>
 <translation id="6344138931392227467">Conectouse o dispositivo (<ph name="DEVICE_NAME" />)</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index e259e17..c4ce651 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">ચાર્જ થઈ રહ્યું નથી</translation>
 <translation id="6309219492973062892">શેલ્ફ આઇકન 1-8 પર ક્લિક અથવા ટૅપ કરો</translation>
 <translation id="6315170314923504164">અવાજ</translation>
+<translation id="6324916366299863871">શૉર્ટકટમાંમાં ફેરફાર કરો</translation>
 <translation id="6330012934079202188">બધી ડેસ્ક પરથી વિન્ડો બતાવી રહ્યાં છીએ, વર્તમાન ડેસ્ક પરની વિન્ડો બતાવવા માટે ઉપરની ઍરો કી દબાવો</translation>
 <translation id="6338485349199627913">મેનેજ કરાયેલું સત્ર <ph name="DISPLAY_NAME" />ને <ph name="MANAGER" /> દ્વારા મેનેજ કરવામાં આવે છે</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> કનેક્ટ થયું</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index 2b0e4c98..1dec442 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">चार्ज नहीं हो रहा है</translation>
 <translation id="6309219492973062892">शेल्फ़ आइकॉन 1-8 पर क्लिक या टैप करने के लिए</translation>
 <translation id="6315170314923504164">Voice</translation>
+<translation id="6324916366299863871">शॉर्टकट में बदलाव करें</translation>
 <translation id="6330012934079202188">सभी डेस्क की विंडो दिखाई जा रही हैं, मौजूदा डेस्क की विंडो दिखाने के लिए, अप ऐरो बटन को दबाएं</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> एक प्रबंधित सत्र है. इसे <ph name="MANAGER" /> प्रबंधित करता है</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> कनेक्ट किया गया</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index fd589708..189c367 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">Mobitel: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">Dobar dan, <ph name="GIVEN_NAME" /></translation>
 <translation id="1088231044944504242">Pretražujte svoje <ph name="CATEGORY" />, datoteke, aplikacije i ostalo. Kroz aplikacije se krećite pomoću tipki sa strelicama.</translation>
+<translation id="1093645050124056515">Ctrl + Alt + strelica prema dolje</translation>
 <translation id="109942774857561566">Dosadno mi je</translation>
 <translation id="1104084341931202936">Prikaz postavki pristupačnosti</translation>
 <translation id="1104621072296271835">Vaši uređaji funkcioniraju još bolje zajedno</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">Pauziraj</translation>
 <translation id="1181037720776840403">Ukloni</translation>
 <translation id="1182225749592316782">To omogućuje pristup svim aplikacijama i web-lokacijama s dopuštenjem za kameru i mikrofon</translation>
+<translation id="1182876754474670069">početna</translation>
 <translation id="1183863904939664422">Ne zanima me taj prijedlog</translation>
 <translation id="1184126796192815024">Ova mreža ne podržava aplikacije za streaming na vašem telefonu. Pokušajte upotrijebiti žarišnu točku telefona. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">Unesite zaporku ili PIN radi dodatne sigurnosti</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">Otvaranje radne površine od 1 do 8</translation>
 <translation id="1589090746204042747">Pristup svim vašim aktivnostima u ovoj sesiji</translation>
 <translation id="1592682369233288537">Sljedeća radna površina: <ph name="NEXT_DESK_NAME" />, upotrijebite tipku za pretraživanje i razmaknicu da biste aktivirali.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + strelica prema dolje</translation>
 <translation id="1604857178818051494">Pauziranje medijskog sadržaja</translation>
 <translation id="1610778689852195798">"Poništi"</translation>
 <translation id="1611993646327628135">Uključeno</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">Kliknite da biste otključali</translation>
 <translation id="2023558322300866873">Snimanje paketa uvijek možete zaustaviti</translation>
 <translation id="2034971124472263449">Svejedno spremi</translation>
+<translation id="204259843076055848">Prečac <ph name="SIX_PACK_KEY_NAME" /> trenutačno je isključen</translation>
 <translation id="2049240716062114887">Naziv radne površine promijenjen je u <ph name="DESK_NAME" /></translation>
 <translation id="206377500836174974">Potpuno</translation>
 <translation id="2064048859448024834">Pregled kamere uključen</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163">Aplikacije <ph name="UNAVAILABLE_APPS_ONE" /> i <ph name="UNAVAILABLE_APPS_TWO" /> nisu instalirane na ovom uređaju.</translation>
 <translation id="2673968385134502798">Igre</translation>
 <translation id="2678852583403169292">Izbornik Odabir za govor</translation>
+<translation id="2687510499067466116">Promijenjen je tipkovni prečac</translation>
 <translation id="2689613560355655046">Radna površina 8</translation>
 <translation id="2695305337569143674">web</translation>
 <translation id="2697697418792422688">Prikažite postavke tipkovnice. Odabrana je <ph name="KEYBOARD_NAME" />.</translation>
@@ -636,12 +641,14 @@
 <translation id="3738664582935948253">Sada možete prikazivati klikove i tipkovne prečace na snimkama zaslona</translation>
 <translation id="3742055079367172538">Izrađena je snimka zaslona</translation>
 <translation id="3756485814916578707">Emitiranje zaslona</translation>
+<translation id="3765841382945324995">Prečac <ph name="SIX_PACK_KEY_NAME" /> ažuriran je na <ph name="NEW_SHORTCUT" /> (stari prečac: <ph name="OLD_SHORTCUT" />)</translation>
 <translation id="3765841986579723851">Uređeno danas</translation>
 <translation id="3773700760453577392">Administrator je onemogućio višestruku prijavu za <ph name="USER_EMAIL" />. Svi se korisnici moraju odjaviti da bi nastavili.</translation>
 <translation id="3779139509281456663">Povezivanje s uređajem <ph name="NAME" /></translation>
 <translation id="3781910048497807059">Premještanje fokusa na prethodno okno</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">Zaključaj</translation>
+<translation id="3796215473395753611">Alt + strelica prema gore</translation>
 <translation id="3796746699333205839">Aplikacija upotrebljava vašu kameru i mikrofon</translation>
 <translation id="3798670284305777884">Zvučnik (ugrađeni)</translation>
 <translation id="3799080171973636491">Pritisnuli ste tipkovni prečac za povećalo za cijeli zaslon. Želite li ga uključiti?</translation>
@@ -697,6 +704,7 @@
 <translation id="4026843240379844265">Premještanje aktivnog prozora s jednog zaslona na drugi</translation>
 <translation id="4028481283645788203">Radi dodatne sigurnosti potrebna je zaporka</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + strelica lijevo</translation>
 <translation id="4042660782729322247">Dijelite zaslon</translation>
 <translation id="404437169852192935">Ažuriranja su završila</translation>
 <translation id="4049230407053723315">Brze postavke</translation>
@@ -718,6 +726,7 @@
 <translation id="4129129681837227511">Za prikaz obavijesti na zaključanom zaslonu otključajte zaslon da biste promijenili postavku</translation>
 <translation id="4131973331381812765">Temperatura: <ph name="TEMPERATURE" />°C – trenutačna brzina: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" /> GHz</translation>
 <translation id="4136724716305260864">Uključeno do izlaska sunca</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + strelica desno</translation>
 <translation id="4146671046252289537">Premjesti na kraj sljedeće riječi</translation>
 <translation id="4146833061457621061">Pusti glazbu</translation>
 <translation id="4150201353443180367">Zaslon</translation>
@@ -864,6 +873,7 @@
 <translation id="4747410141429390146">Otključajte da biste pregledali obavijesti</translation>
 <translation id="4752784485658729358">Dopušteno je samo 6 spremljenih radnih površina. Uklonite jednu radnu površinu da biste spremili novu.</translation>
 <translation id="4759238208242260848">Preuzimanje</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + strelica prema gore</translation>
 <translation id="4762573482154983647">Sakrijte aplikacije</translation>
 <translation id="4763885921995354846">To omogućuje pristup kameri za sve aplikacije i web-lokacije s dopuštenjem za kameru. Možda ćete morati osvježiti web-stranicu ili ponovo pokrenuti aplikaciju.</translation>
 <translation id="4774338217796918551">Vrati se sutra u <ph name="COME_BACK_TIME" />.</translation>
@@ -945,6 +955,7 @@
 <translation id="5062496344832867502">ram</translation>
 <translation id="5068762093486106012">Primit ćete obavijest ako govorite, a zvuk je isključen. Zvuk se nikad ne šalje s uređaja.</translation>
 <translation id="5078796286268621944">Netočan PIN</translation>
+<translation id="5083035541015925118">Ctrl + Alt + strelica prema gore</translation>
 <translation id="5083553833479578423">Otključajte više značajki Asistenta.</translation>
 <translation id="5092436659250499817">Uključivanje/isključivanje pozadinskog osvjetljenja tipkovnice</translation>
 <translation id="5094577350232361255">informacije</translation>
@@ -1066,6 +1077,7 @@
 <translation id="5590609058453685222">Uključen je podsjetnik na isključeni mikrofon. Primit ćete obavijest ako govorite, a zvuk je isključen.</translation>
 <translation id="5596627076506792578">Više opcija</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">Isključen je tipkovni prečac</translation>
 <translation id="5600837773213129531">Pritisnite Ctrl + Alt + Z da biste onemogućili govorne povratne informacije.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5618148318840095371">Prebacili smo vas na bolju mrežu</translation>
@@ -1085,6 +1097,7 @@
 <translation id="5678564054339031017">Prikaz sljedećeg tjedna</translation>
 <translation id="5679050765726761783">Povezan je pretvarač male snage</translation>
 <translation id="5682642926269496722">Google asistent nije dostupan za trenutačni korisnički račun.</translation>
+<translation id="5689233503102158537">Alt + Backspace</translation>
 <translation id="5689633613396158040">Noćno svjetlo olakšava gledanje zaslona ili čitanje pri slabom svjetlu. Dodirnite da biste promijenili vrijeme uključivanja noćnog svjetla ili ga potpuno isključili.</translation>
 <translation id="5691772641933328258">Otisak prsta nije prepoznat</translation>
 <translation id="5693255400847650006">Upotrebljava se mikrofon</translation>
@@ -1231,6 +1244,7 @@
 <translation id="6291221004442998378">Ne puni se</translation>
 <translation id="6309219492973062892">Klikanje ili dodirivanje ikona 1 – 8 na traci</translation>
 <translation id="6315170314923504164">Glasovno</translation>
+<translation id="6324916366299863871">Uređivanje prečaca</translation>
 <translation id="6330012934079202188">Prikazuju se prozori sa svih radnih površina, pritisnite tipku strelice prema gore da bi se prikazali prozori s trenutačne radne površine</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je upravljana sesija kojom upravlja <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Povezano: <ph name="DEVICE_NAME" /></translation>
@@ -1245,6 +1259,7 @@
 <translation id="639644700271529076">Tipka CAPS LOCK isključena</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google asistent</translation>
+<translation id="641817663353603351">Stranica prema gore</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">Brisanje svih obavijesti</translation>
 <translation id="643147933154517414">Dovršeno</translation>
@@ -1254,6 +1269,7 @@
 <translation id="6445915701151710649">procesor</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> događaj/događaja</translation>
 <translation id="6449483711453944360">Linux aplikacije i anonimni prozori trenutačno nisu podržani</translation>
+<translation id="6450245544201845082">Prečac desnom tipkom miša trenutačno je isključen</translation>
 <translation id="6452181791372256707">Odbaci</translation>
 <translation id="6453179446719226835">Jezik je promijenjen</translation>
 <translation id="6459472438155181876">Proširivanje zaslona na zaslon <ph name="DISPLAY_NAME" /></translation>
@@ -1378,6 +1394,7 @@
 <translation id="6965382102122355670">U redu</translation>
 <translation id="6972754398087986839">Početak upotrebe</translation>
 <translation id="6979158407327259162">Google disk</translation>
+<translation id="6980402667292348590">umetni</translation>
 <translation id="6981291220124935078">Uključi pristup</translation>
 <translation id="6981982820502123353">Pristupačnost</translation>
 <translation id="698231206551913481">Sve datoteke i lokalni podaci povezani s ovim korisnikom trajno će se izbrisati nakon uklanjanja korisnika.</translation>
@@ -1429,6 +1446,7 @@
 <translation id="7258828758145722155">Uređeno jučer</translation>
 <translation id="726276584504105859">Povucite ovdje da biste upotrebljavali podijeljeni zaslon</translation>
 <translation id="7262906531272962081">Izrada podsjetnika</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + backspace</translation>
 <translation id="7297440678881127227"><ph name="START_TIME" /> prima
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1439,6 +1457,7 @@
 <translation id="7312210124139670355">Vaš administrator vraća vaš eSIM na zadano. To može potrajati nekoliko minuta.</translation>
 <translation id="7313193732017069507">Proširi fotoaparat</translation>
 <translation id="7316261577130609484">Dodaj novi zadatak</translation>
+<translation id="7331646370422660166">Alt + strelica prema dolje</translation>
 <translation id="7340731148882810149">Izbornik automatskih klikova</translation>
 <translation id="7346909386216857016">Dobro, shvaćam</translation>
 <translation id="7348093485538360975">Zaslonska tipkovnica</translation>
@@ -1484,6 +1503,7 @@
 <translation id="7513922695575567867">Kalendar, tjedan od <ph name="DATE" />, trenutačno je odabran datum <ph name="SELECTED_DATE" />.</translation>
 <translation id="7514365320538308">Preuzmi</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">stranica prema dolje</translation>
 <translation id="7519206258459640379">Okvir kamere je uključen.</translation>
 <translation id="7519649142417630956">Nakon isključivanja administrator će se odjaviti i neće moći upravljati vašim uređajem.
 
@@ -1855,6 +1875,7 @@
 <translation id="9126339866969410112">Poništavanje zadnje radnje</translation>
 <translation id="9133335900048457298">Snimanje zaštićenog sadržaja nije moguće</translation>
 <translation id="9139720510312328767">Brisanje sljedećeg slova</translation>
+<translation id="9151906066336345901">kraj</translation>
 <translation id="9161053988251441839">PREDLOŽENE APLIKACIJE</translation>
 <translation id="9168436347345867845">Učinite to kasnije</translation>
 <translation id="9178475906033259337">Prikazuje se jedan rezultat za upit <ph name="QUERY" /></translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index 354952b..55b07b9f 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">Mobil: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">Jó napot, <ph name="GIVEN_NAME" />!</translation>
 <translation id="1088231044944504242">Keresés a következők között: <ph name="CATEGORY" />, fájlok, alkalmazások és egyebek. A nyílbillentyűkkel navigálhat az alkalmazások között.</translation>
+<translation id="1093645050124056515">ctrl + alt + lefelé nyíl</translation>
 <translation id="109942774857561566">Unatkozom</translation>
 <translation id="1104084341931202936">A kisegítő lehetőségekhez tartozó beállítások megjelenítése</translation>
 <translation id="1104621072296271835">Eszközei együtt még jobban működnek</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">Szünet</translation>
 <translation id="1181037720776840403">Eltávolítás</translation>
 <translation id="1182225749592316782">Ezzel engedélyezi a hozzáférést a kamera- és mikrofonengedéllyel rendelkező összes alkalmazás és webhely számára.</translation>
+<translation id="1182876754474670069">home</translation>
 <translation id="1183863904939664422">Nem érdekel ez a javaslat</translation>
 <translation id="1184126796192815024">Ez a hálózat nem támogatja alkalmazások streamelését a telefonjáról. Próbálja meg a telefon hotspotját használni. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">A nagyobb biztonság érdekében adja meg a jelszót vagy a PIN-kódot</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">Lépjen az 1–8. asztal valamelyikéhez.</translation>
 <translation id="1589090746204042747">Hozzáférés az Ön jelen munkamenetben végzett összes tevékenységéhez</translation>
 <translation id="1592682369233288537">Következő asztal: <ph name="NEXT_DESK_NAME" />. Az aktiváláshoz használja a Keresőgomb + Szóköz billentyűparancsot.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + lefelé nyíl</translation>
 <translation id="1604857178818051494">Médiatartalom szüneteltetése</translation>
 <translation id="1610778689852195798">„Undo” (Visszavonás)</translation>
 <translation id="1611993646327628135">Be</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">Kattintson a feloldáshoz</translation>
 <translation id="2023558322300866873">A csomagok elfogását bármikor leállíthatja</translation>
 <translation id="2034971124472263449">Mentés mindenképp</translation>
+<translation id="204259843076055848">A(z) <ph name="SIX_PACK_KEY_NAME" /> billentyűparancsa jelenleg ki van kapcsolva</translation>
 <translation id="2049240716062114887">Az asztal neve a következőre változott: <ph name="DESK_NAME" /></translation>
 <translation id="206377500836174974">Tele</translation>
 <translation id="2064048859448024834">Kamera-előnézet bekapcsolva</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163">A(z) <ph name="UNAVAILABLE_APPS_ONE" /> és a(z) <ph name="UNAVAILABLE_APPS_TWO" /> alkalmazás nincs telepítve erre az eszközre.</translation>
 <translation id="2673968385134502798">Játékok</translation>
 <translation id="2678852583403169292">Felolvasás menü</translation>
+<translation id="2687510499067466116">A billentyűparancs módosult</translation>
 <translation id="2689613560355655046">8. asztal</translation>
 <translation id="2695305337569143674">böngésző</translation>
 <translation id="2697697418792422688">Billentyűzetbeállítások megjelenítése. <ph name="KEYBOARD_NAME" /> kiválasztva.</translation>
@@ -637,6 +642,7 @@
 <translation id="3738664582935948253">Mostantól megjelenítheti a kattintásokat és a billentyűparancsokat a képernyőfelvételeken</translation>
 <translation id="3742055079367172538">Képernyőkép elkészítve</translation>
 <translation id="3756485814916578707">Képernyőtartalom átküldése</translation>
+<translation id="3765841382945324995">A(z) <ph name="SIX_PACK_KEY_NAME" /> billentyűparancsa a(z) <ph name="NEW_SHORTCUT" /> billentyűparancsra módosult a következőről: <ph name="OLD_SHORTCUT" />.</translation>
 <translation id="3765841986579723851">Ma szerkesztette</translation>
 <translation id="3773700760453577392">Egy rendszergazda letiltotta a többfiókos bejelentkezést <ph name="USER_EMAIL" /> számára.
 Az összes felhasználónak ki kell jelentkeznie a folytatáshoz.</translation>
@@ -644,6 +650,7 @@
 <translation id="3781910048497807059">Fókusz áthelyezése az előző panelre</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">Zárolás</translation>
+<translation id="3796215473395753611">alt + felfelé mutató nyíl</translation>
 <translation id="3796746699333205839">Egy alkalmazás használja az Ön kameráját és mikrofonját</translation>
 <translation id="3798670284305777884">Hangszóró (belső)</translation>
 <translation id="3799080171973636491">Lenyomta a teljes képernyős nagyító billentyűparancsát. Bekapcsolja a funkciót?</translation>
@@ -699,6 +706,7 @@
 <translation id="4026843240379844265">Aktív ablak áthelyezése egyik kijelzőről a másikra</translation>
 <translation id="4028481283645788203">A nagyobb biztonság érdekében jelszó szükséges</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + balra nyíl</translation>
 <translation id="4042660782729322247">Jelenleg megosztja a képernyőt</translation>
 <translation id="404437169852192935">Többé nem kap frissítést</translation>
 <translation id="4049230407053723315">Gyorsbeállítások</translation>
@@ -720,6 +728,7 @@
 <translation id="4129129681837227511">Ha szeretné látni az értesítéseket a lezárási képernyőn, oldja fel a képernyő zárolását a beállítás módosításához</translation>
 <translation id="4131973331381812765">Hőmérséklet: <ph name="TEMPERATURE" /> °C – Aktuális sebesség: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" /> GHz</translation>
 <translation id="4136724716305260864">Bekapcsolva napkeltéig</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + jobbra nyíl</translation>
 <translation id="4146671046252289537">Ugrás a következő szó végére</translation>
 <translation id="4146833061457621061">Zenelejátszás</translation>
 <translation id="4150201353443180367">Megjelenítés</translation>
@@ -866,6 +875,7 @@
 <translation id="4747410141429390146">Oldja fel a zárolást az értesítések megtekintéséhez</translation>
 <translation id="4752784485658729358">Csak hat mentett asztal engedélyezett. Távolítsa el valamelyiket, ha új asztalt szeretne menteni.</translation>
 <translation id="4759238208242260848">Letöltések</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + felfelé nyíl</translation>
 <translation id="4762573482154983647">Alkalmazások elrejtése</translation>
 <translation id="4763885921995354846">Ezzel engedélyezi a kamerához való hozzáférést a kamerahasználati engedéllyel rendelkező összes alkalmazás és webhely számára. Előfordulhat, hogy frissítenie kell a weboldalt, vagy újra kell indítania az alkalmazást.</translation>
 <translation id="4774338217796918551">Térjen vissza holnap, ekkor: <ph name="COME_BACK_TIME" />.</translation>
@@ -947,6 +957,7 @@
 <translation id="5062496344832867502">ram</translation>
 <translation id="5068762093486106012">Értesítést kap, ha némított állapotban beszél. A hanganyag sosem kerül ki az eszközről.</translation>
 <translation id="5078796286268621944">Helytelen PIN-kód</translation>
+<translation id="5083035541015925118">ctrl + alt + felfelé nyíl</translation>
 <translation id="5083553833479578423">Hozzáférés a Segéd további funkcióihoz</translation>
 <translation id="5092436659250499817">A billentyűzet háttérvilágításának be- vagy kikapcsolása</translation>
 <translation id="5094577350232361255">névjegy</translation>
@@ -1068,6 +1079,7 @@
 <translation id="5590609058453685222">A némításra emlékeztetés funkció be van kapcsolva. Értesítést kap, ha némított állapotban beszél.</translation>
 <translation id="5596627076506792578">További lehetőségek</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">A billentyűparancs ki van kapcsolva</translation>
 <translation id="5600837773213129531">A hangos visszajelzés kikapcsolásához nyomja meg a Ctrl+Alt+Z billentyűkombinációt.</translation>
 <translation id="5601503069213153581">PIN-kód</translation>
 <translation id="5618148318840095371">Átcsatlakoztattuk egy jobb hálózatra</translation>
@@ -1087,6 +1099,7 @@
 <translation id="5678564054339031017">A következő hét megjelenítése</translation>
 <translation id="5679050765726761783">Alacsony energiafogyasztású csatlakozó csatlakoztatva</translation>
 <translation id="5682642926269496722">A Google Segéd nem áll rendelkezésre ennél a felhasználói fióknál.</translation>
+<translation id="5689233503102158537">alt + backspace</translation>
 <translation id="5689633613396158040">Az Éjszakai fény funkció kellemesebbé teszi a képernyő nézését és az olvasást gyenge fény mellett. Koppintson, ha módosítani szeretné, hogy mikor kapcsoljon be az Éjszakai mód, vagy ha teljesen ki szeretné kapcsolni.</translation>
 <translation id="5691772641933328258">Ujjlenyomat felismerése sikertelen</translation>
 <translation id="5693255400847650006">A mikrofon használatban van</translation>
@@ -1233,6 +1246,7 @@
 <translation id="6291221004442998378">Nem tölt</translation>
 <translation id="6309219492973062892">Kattintson vagy koppintson a polcon lévő ikonokra (1–8)</translation>
 <translation id="6315170314923504164">Hang</translation>
+<translation id="6324916366299863871">Billentyűparancs szerkesztése</translation>
 <translation id="6330012934079202188">Most az összes asztal ablakait mutatja; az aktuális asztal ablakainak megjelenítéséhez nyomja meg a felfelé nyilat</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> – <ph name="MANAGER" /> által kezelt munkamenet</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> csatlakoztatva</translation>
@@ -1247,6 +1261,7 @@
 <translation id="639644700271529076">A CAPS LOCK ki van kapcsolva</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Segéd</translation>
+<translation id="641817663353603351">page up</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, jelerősség: <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">Az összes értesítés törlése</translation>
 <translation id="643147933154517414">Elkészült</translation>
@@ -1256,6 +1271,7 @@
 <translation id="6445915701151710649">cpu</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> esemény</translation>
 <translation id="6449483711453944360">A Linux-alkalmazások és az inkognitó ablakok jelenleg nem támogatottak.</translation>
+<translation id="6450245544201845082">A jobb egérgombos kattintás billentyűparancsa jelenleg ki van kapcsolva</translation>
 <translation id="6452181791372256707">Elutasítás</translation>
 <translation id="6453179446719226835">A nyelv módosult</translation>
 <translation id="6459472438155181876">Képernyő kiterjesztése erre: <ph name="DISPLAY_NAME" /></translation>
@@ -1380,6 +1396,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6972754398087986839">Első lépések</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6980402667292348590">insert</translation>
 <translation id="6981291220124935078">Hozzáférés engedélyezése</translation>
 <translation id="6981982820502123353">Kisegítő lehetőségek</translation>
 <translation id="698231206551913481">A felhasználó eltávolításakor az összes hozzá tartozó fájl és helyi adat is véglegesen törlődik.</translation>
@@ -1431,6 +1448,7 @@
 <translation id="7258828758145722155">Tegnap szerkesztette</translation>
 <translation id="726276584504105859">Húzza ide az osztott képernyő használatához</translation>
 <translation id="7262906531272962081">Emlékeztető létrehozása</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + backspace</translation>
 <translation id="7297440678881127227"><ph name="START_TIME" /> –
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1441,6 +1459,7 @@
 <translation id="7312210124139670355">A rendszergazda visszaállítja az Ön eSIM-jét. Ez eltarthat néhány percig.</translation>
 <translation id="7313193732017069507">Kamera kibontása</translation>
 <translation id="7316261577130609484">Új feladat felvétele</translation>
+<translation id="7331646370422660166">alt + lefelé mutató nyíl</translation>
 <translation id="7340731148882810149">Automatikus kattintások menü</translation>
 <translation id="7346909386216857016">Rendben, értem</translation>
 <translation id="7348093485538360975">Képernyő-billentyűzet</translation>
@@ -1486,6 +1505,7 @@
 <translation id="7513922695575567867">Naptár, <ph name="DATE" />-i hét, jelenleg kijelölt dátum: <ph name="SELECTED_DATE" />.</translation>
 <translation id="7514365320538308">Letöltés</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">page down</translation>
 <translation id="7519206258459640379">A keretezés be van kapcsolva.</translation>
 <translation id="7519649142417630956">A kikapcsolást követően az eszköz kijelentkezteti a rendszergazdát, aki a továbbiakban nem fogja tudni vezérelni az eszközét.
 
@@ -1857,6 +1877,7 @@
 <translation id="9126339866969410112">Utolsó művelet visszavonása</translation>
 <translation id="9133335900048457298">Nem lehet rögzíteni védett tartalmakat</translation>
 <translation id="9139720510312328767">Következő betű törlése</translation>
+<translation id="9151906066336345901">end</translation>
 <translation id="9161053988251441839">JAVASOLT ALKALMAZÁSOK</translation>
 <translation id="9168436347345867845">Később</translation>
 <translation id="9178475906033259337">1 találat megjelenítése a következő lekérdezésre: <ph name="QUERY" /></translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb
index da20f87..a867787b 100644
--- a/ash/strings/ash_strings_hy.xtb
+++ b/ash/strings/ash_strings_hy.xtb
@@ -1231,6 +1231,7 @@
 <translation id="6291221004442998378">Չի լիցքավորվում</translation>
 <translation id="6309219492973062892">Ընտրել դարակի 1–8 պատկերակները</translation>
 <translation id="6315170314923504164">Ձայնային</translation>
+<translation id="6324916366299863871">Փոփոխել դյուրանցումը</translation>
 <translation id="6330012934079202188">Ցուցադրվում են բոլոր աշխատասեղանների պատուհանները։ Սեղմեք վեր սլաքի ստեղնը՝ ընթացիկ աշխատասեղանից պատուհաններ ցուցադրելու համար։</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> աշխատաշրջանը կառավարվում է <ph name="MANAGER" />-ի կողմից</translation>
 <translation id="6344138931392227467">Զուգակցվեց <ph name="DEVICE_NAME" /> սարքը</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index ca380f8..b0e14b89 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -860,7 +860,7 @@
 <translation id="4733161265940833579"><ph name="BATTERY_PERCENTAGE" />% (Kiri)</translation>
 <translation id="4734965478015604180">Horizontal</translation>
 <translation id="4735944890391795473">Desktop 12</translation>
-<translation id="473775607612524610">Perbarui</translation>
+<translation id="473775607612524610">Update</translation>
 <translation id="4740516757091333363">Hapus desktop tersimpan?</translation>
 <translation id="4747410141429390146">Buka kunci untuk melihat notifikasi</translation>
 <translation id="4752784485658729358">Hanya diizinkan menyimpan 6 desktop. Hapus satu desktop untuk menambahkan yang baru.</translation>
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Tidak mengisi daya</translation>
 <translation id="6309219492973062892">Klik atau ketuk ikon rak 1-8</translation>
 <translation id="6315170314923504164">Suara</translation>
+<translation id="6324916366299863871">Edit pintasan</translation>
 <translation id="6330012934079202188">Menampilkan jendela dari semua desktop, tekan tombol Panah atas untuk menampilkan jendela dari desktop saat ini</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> adalah sesi terkelola yang dikelola oleh <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> terhubung</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb
index 0f7243b1..6c6cffc0 100644
--- a/ash/strings/ash_strings_is.xtb
+++ b/ash/strings/ash_strings_is.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Ekki í hleðslu</translation>
 <translation id="6309219492973062892">Smella eða ýta á hillutákn 1–8</translation>
 <translation id="6315170314923504164">Tal</translation>
+<translation id="6324916366299863871">Breyta flýtileið</translation>
 <translation id="6330012934079202188">Sýnir glugga allra skrifborða, ýttu á ör upp til að sýna glugga núverandi skrifborðs</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> er stýrð lota sem <ph name="MANAGER" /> hefur umsjón með</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> tengd</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index ae44730..2611c56e 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -1229,6 +1229,7 @@
 <translation id="6291221004442998378">Non in carica</translation>
 <translation id="6309219492973062892">Tocca o fai clic sulle icone 1-8 nella barra delle app</translation>
 <translation id="6315170314923504164">Voce</translation>
+<translation id="6324916366299863871">Modifica scorciatoia</translation>
 <translation id="6330012934079202188">Dalla visualizzazione delle finestre di tutte le scrivanie, premi il tasto Freccia su per mostrare le finestre della scrivania corrente</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> è una sessione gestita da <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> connesso</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index 4ece6a2..a1fb7e9 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">לא בטעינה</translation>
 <translation id="6309219492973062892">לחיצה או הקשה על הסמלים 1-8 במדף</translation>
 <translation id="6315170314923504164">קול</translation>
+<translation id="6324916366299863871">עריכת קיצור דרך</translation>
 <translation id="6330012934079202188">מוצגים החלונות מכל שולחנות העבודה הווירטואליים. ניתן להקיש על מקש החץ למעלה כדי להציג את החלונות משולחן העבודה הווירטואלי הנוכחי</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> הוא סשן מנוהל שמנוהל על ידי <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> מחובר</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 970f7df..a78bf84 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">充電していません</translation>
 <translation id="6309219492973062892">シェルフ アイコン 1~8 をクリックまたはタップします</translation>
 <translation id="6315170314923504164">音声</translation>
+<translation id="6324916366299863871">ショートカットの編集</translation>
 <translation id="6330012934079202188">すべてのデスクのウィンドウを表示しています、現在のデスクのウィンドウを表示するには上矢印キーを押してください</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> は <ph name="MANAGER" /> が管理する管理対象セッションです</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> を接続しました</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index 52a5b2b..bf35423 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">ფიჭური: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">შუადღე მშვიდობის, <ph name="GIVEN_NAME" />!</translation>
 <translation id="1088231044944504242">მოიძიეთ თქვენი <ph name="CATEGORY" />, ფაილები, აპები და სხვა კონტენტი. თქვენს აპებში ნავიგაციისთვის გამოიყენეთ ისრებიანი კლავიშები.</translation>
+<translation id="1093645050124056515">ctrl + alt + ქვემოთ მიმართული ისარი</translation>
 <translation id="109942774857561566">მოვიწყინე</translation>
 <translation id="1104084341931202936">მარტივი წვდომის პარამეტრების ჩვენება</translation>
 <translation id="1104621072296271835">თქვენი მოწყობილობები ერთად უკეთესად იმუშავებს</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">პაუზა</translation>
 <translation id="1181037720776840403">ამოშლა</translation>
 <translation id="1182225749592316782">წვდომა მიენიჭება ყველა აპსა და ვებსაიტს, რომლებსაც კამერისა და მიკროფონის გამოყენების ნებართვა აქვს</translation>
+<translation id="1182876754474670069">მთავარი</translation>
 <translation id="1183863904939664422">ეს შემოთავაზება არ მაინტერესებს</translation>
 <translation id="1184126796192815024">თქვენი ტელეფონიდან აპების სტრიმინგი მხარდაუჭერელია ამ ქსელის მიერ. ცადეთ თქვენი ტელეფონის უსადენო ქსელის გამოყენება. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">დამატებითი უსაფრთხოებისთვის შეიყვანეთ პაროლი ან PIN-კოდი</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">1-ლიდან მე-8 სამუშაო მაგიდებს შორის გადასვლა</translation>
 <translation id="1589090746204042747">ამ სესიის დროს თქვენს მთელ აქტივობაზე წვდომა</translation>
 <translation id="1592682369233288537">მომდევნო სამუშაო მაგიდა: <ph name="NEXT_DESK_NAME" />, გასააქტიურებლად გამოიყენეთ კლავიშთა კომბინაცია Search+შორისი.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + ქვემოთ მიმართული ისარი</translation>
 <translation id="1604857178818051494">მედიის დაპაუზება</translation>
 <translation id="1610778689852195798">"მოქმედების გაუქმება"</translation>
 <translation id="1611993646327628135">ჩართული</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">განსაბლოკად დააწკაპუნეთ</translation>
 <translation id="2023558322300866873">პაკეტების აღბეჭდვის შეწყვეტა ნებისმიერ დროს შეგიძლიათ</translation>
 <translation id="2034971124472263449">მაინც შენახვა</translation>
+<translation id="204259843076055848">მალსახმობი <ph name="SIX_PACK_KEY_NAME" /> ამჟამად გამორთულია</translation>
 <translation id="2049240716062114887">სამუშაო მაგიდის სახელი შეცვალა „<ph name="DESK_NAME" />“-ით</translation>
 <translation id="206377500836174974">სავსე</translation>
 <translation id="2064048859448024834">კამერის გადახედვა ჩართულია</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" /> და <ph name="UNAVAILABLE_APPS_TWO" /> არ არის ამ მოწყობილობაზე.</translation>
 <translation id="2673968385134502798">თამაშები</translation>
 <translation id="2678852583403169292">წარმოსათქმელად მონიშვნის მენიუ</translation>
+<translation id="2687510499067466116">კლავიატურის მალსახმობი შეიცვალა</translation>
 <translation id="2689613560355655046">სამუშაო მაგიდა 8</translation>
 <translation id="2695305337569143674">ვები</translation>
 <translation id="2697697418792422688">კლავიატურის პარამეტრების ჩვენება. არჩეულია <ph name="KEYBOARD_NAME" />.</translation>
@@ -637,12 +642,14 @@
 <translation id="3738664582935948253">ეკრანის ჩანაწერებში ამიერიდან შეგიძლიათ დაწკაპუნებებისა და კლავიატურის მალსახმობების ჩვენება</translation>
 <translation id="3742055079367172538">ეკრანის ანაბეჭდი გადაღებულია</translation>
 <translation id="3756485814916578707">მიმდინარეობს ეკრანის ტრანსლირება</translation>
+<translation id="3765841382945324995">მალსახმობი <ph name="SIX_PACK_KEY_NAME" /> განახლდა (იყო <ph name="OLD_SHORTCUT" />, გახდა <ph name="NEW_SHORTCUT" />)</translation>
 <translation id="3765841986579723851">დღეს რედაქტირებული</translation>
 <translation id="3773700760453577392">ადმინისტრატორმა აკრძალა მრავალჯერადი შესვლა <ph name="USER_EMAIL" />-ისთვის. გასაგრძელებლად საჭიროა ყველა მომხმარებლის გამოსვლა სისტემიდან.</translation>
 <translation id="3779139509281456663">მიმდინარეობს <ph name="NAME" />-ის დაკავშირება</translation>
 <translation id="3781910048497807059">წინა არის მოქცევა ფოკუსში</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">დაბლოკვა</translation>
+<translation id="3796215473395753611">alt + ზემოთ მიმართული ისარი</translation>
 <translation id="3796746699333205839">აპლიკაცია იყენებს თქვენს კამერასა და მიკროფონს</translation>
 <translation id="3798670284305777884">დინამიკი (შიდა)</translation>
 <translation id="3799080171973636491">თქვენ დააჭირეთ სრულეკრანიანი ლუპის კლავიატურის მალსახმობს. გსურთ მისი ჩართვა?</translation>
@@ -698,6 +705,7 @@
 <translation id="4026843240379844265">აქტიური ფანჯრის გადატანა ეკრანებს შორის</translation>
 <translation id="4028481283645788203">დამატებითი უსაფრთხოებისთვის საჭიროა პაროლის შეყვანა</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + მარცხნივ მიმართული ისარი</translation>
 <translation id="4042660782729322247">თქვენ აზიარებთ ეკრანს</translation>
 <translation id="404437169852192935">განახლებები დასრულდა</translation>
 <translation id="4049230407053723315">სწრაფი პარამეტრები</translation>
@@ -719,6 +727,7 @@
 <translation id="4129129681837227511">ჩაკეტილ ეკრანზე შეტყობინებების სანახავად საჭიროა განბლოკვა და პარამეტრის შეცვლა</translation>
 <translation id="4131973331381812765">ტემპერატურა: <ph name="TEMPERATURE" />°C — მიმდინარე სიჩქარე: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" /> გჰც</translation>
 <translation id="4136724716305260864">ჩართულია მზის ამოსვლამდე</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + მარჯვნივ მიმართული ისარი</translation>
 <translation id="4146671046252289537">მომდევნო სიტყვის ბოლოში გადასვლა</translation>
 <translation id="4146833061457621061">მუსიკის დაკვრა</translation>
 <translation id="4150201353443180367">ჩვენება</translation>
@@ -865,6 +874,7 @@
 <translation id="4747410141429390146">შეტყობინებების სანახავად განბლოკეთ</translation>
 <translation id="4752784485658729358">დაშვებულია მხოლოდ 6 შენახული სამუშაო მაგიდა. ახლის შესანახად წაშალეთ ერთ-ერთი არსებული.</translation>
 <translation id="4759238208242260848">ჩამოტვირთვები</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + ზემოთ მიმართული ისარი</translation>
 <translation id="4762573482154983647">აპების დამალვა</translation>
 <translation id="4763885921995354846">ყველა აპსა და ვებსაიტს, რომლებსაც აქვს კამერის გამოყენების ნებართვა, მიენიჭება კამერაზე წვდომა. შესაძლოა, დაგჭირდეთ ვებგვერდის განახლება ან აპის გადატვირთვა.</translation>
 <translation id="4774338217796918551">დაბრუნდით ხვალ, <ph name="COME_BACK_TIME" />-ზე.</translation>
@@ -946,6 +956,7 @@
 <translation id="5062496344832867502">ram</translation>
 <translation id="5068762093486106012">თუ საუბრისას თქვენი ხმა არ ისმის, შეტყობინებას მიიღებთ. აუდიო მუდამ თქვენს მოწყობილობაზე ინახება.</translation>
 <translation id="5078796286268621944">არასწორი პინი</translation>
+<translation id="5083035541015925118">ctrl + alt + ზემოთ მიმართული ისარი</translation>
 <translation id="5083553833479578423">განბლოკეთ ასისტენტის დამატებითი ფუნქციები.</translation>
 <translation id="5092436659250499817">კლავიატურის შენათების ჩართვა/გამორთვა</translation>
 <translation id="5094577350232361255">შესახებ</translation>
@@ -1067,6 +1078,7 @@
 <translation id="5590609058453685222">დადუმების შეხსენება ჩართულია. თუ საუბრისას თქვენი ხმა არ ისმის, შეტყობინებას მიიღებთ.</translation>
 <translation id="5596627076506792578">დამატებითი ვარიანტები</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">კლავიატურის მალსახმობი გამორთულია</translation>
 <translation id="5600837773213129531">გახმოვანებული უკუკავშირის გასათიშად დააჭირეთ კლავიშთა კომბინაციას: Ctrl + Alt + Z.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5618148318840095371">უკეთეს ქსელზე გადაგრთეთ</translation>
@@ -1086,6 +1098,7 @@
 <translation id="5678564054339031017">შემდეგი კვირის ჩვენება</translation>
 <translation id="5679050765726761783">დაკავშირებულია დაბალი სიმძლავრის ელკვების ადაპტერი</translation>
 <translation id="5682642926269496722">Google ასისტენტი მიუწვდომელია მომხმარებლის ამჟამინდელი ანგარიშისთვის.</translation>
+<translation id="5689233503102158537">alt + backspace</translation>
 <translation id="5689633613396158040">ღამის განათება გაგიმარტივებთ ეკრანზე კითხვას ან მის ყურებას მკრთალი განათების პირობებში. შეეხეთ ღამის განათების ჩართვის დროის შესაცვლელად ან მის მთლიანად გამოსართავად.</translation>
 <translation id="5691772641933328258">თითის ანაბეჭდის ამოცნობა ვერ მოხერხდა</translation>
 <translation id="5693255400847650006">მიკროფონი გამოიყენება</translation>
@@ -1232,6 +1245,7 @@
 <translation id="6291221004442998378">არ იტენება</translation>
 <translation id="6309219492973062892">თაროს ხატულებზე 1-8 დაწკაპუნება ან შეხება</translation>
 <translation id="6315170314923504164">ხმა</translation>
+<translation id="6324916366299863871">მალსახმობის რედაქტირება</translation>
 <translation id="6330012934079202188">ნაჩვენებია ყველა სამუშაო მაგიდის ფანჯრები, ამჟამინდელი სამუშაო მაგიდის ფანჯრების გამოსაჩენად დააჭირეთ კლავიშს ზემოთ მიმართული ისრით</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> არის მართული სესია, რომელსაც მართავს <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> დაკავშირებულია</translation>
@@ -1246,6 +1260,7 @@
 <translation id="639644700271529076">CAPS LOCK გამორთულია</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google ასისტენტი</translation>
+<translation id="641817663353603351">page up</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">ყველა შეტყობინების გასუფთავება</translation>
 <translation id="643147933154517414">ყველაფერი მზად არის</translation>
@@ -1255,6 +1270,7 @@
 <translation id="6445915701151710649">cpu</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> მოვლენა</translation>
 <translation id="6449483711453944360">Linux აპები და ინკოგნიტო ფანჯრები ამჟამად მხარდაუჭერელია</translation>
+<translation id="6450245544201845082">მარჯვენა დაწკაპუნების მალსახმობი ამჟამად გამორთულია</translation>
 <translation id="6452181791372256707">უარყოფა</translation>
 <translation id="6453179446719226835">ენა შეიცვალა</translation>
 <translation id="6459472438155181876">ეკრანის გაგრძელება <ph name="DISPLAY_NAME" />-მდე</translation>
@@ -1379,6 +1395,7 @@
 <translation id="6965382102122355670">კარგი</translation>
 <translation id="6972754398087986839">დაწყება</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6980402667292348590">insert</translation>
 <translation id="6981291220124935078">წვდომის ჩართვა</translation>
 <translation id="6981982820502123353">სპეციალური შესაძლებლობები</translation>
 <translation id="698231206551913481">ამ მომხმარებლის ამოშლის შემდეგ, მასთან დაკავშირებული ყველა ფაილი და ადგილობრივი მონაცემი სამუდამოდ წაიშლება.</translation>
@@ -1430,6 +1447,7 @@
 <translation id="7258828758145722155">გუშინ რედაქტირებული</translation>
 <translation id="726276584504105859">ეკრანის გასაყოფად ჩავლებით გადმოიტანეთ ფანჯარა აქ</translation>
 <translation id="7262906531272962081">შეხსენების შექმნა</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + backspace</translation>
 <translation id="7297440678881127227"><ph name="START_TIME" /> —
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1440,6 +1458,7 @@
 <translation id="7312210124139670355">ადმინისტრატორი ახორციელებს თქვენი eSIM-ის გადაყენებას. ამას შეიძლება რამდენიმე წუთი დასჭირდეს.</translation>
 <translation id="7313193732017069507">კამერის გაფართოება</translation>
 <translation id="7316261577130609484">ახალი ამოცანის დამატება</translation>
+<translation id="7331646370422660166">alt + ქვემოთ მიმართული ისარი</translation>
 <translation id="7340731148882810149">ავტომატური დაწკაპუნებების მენიუ</translation>
 <translation id="7346909386216857016">კარგი, გასაგებია</translation>
 <translation id="7348093485538360975">ეკრანული კლავიატურა</translation>
@@ -1485,6 +1504,7 @@
 <translation id="7513922695575567867">კალენდარი, <ph name="DATE" />-ის კვირა, ამჟამად არჩეულია <ph name="SELECTED_DATE" />.</translation>
 <translation id="7514365320538308">ჩამოტვირთვა</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">page down</translation>
 <translation id="7519206258459640379">კამერის კადრირება ჩართულია.</translation>
 <translation id="7519649142417630956">გამორთვის შემდეგ ადმინისტრატორი სისტემიდან გასული იქნება და თქვენი მოწყობილობის კონტროლს ვერ შეძლებს.
 
@@ -1856,6 +1876,7 @@
 <translation id="9126339866969410112">ბოლო მოქმედების გაუქმება</translation>
 <translation id="9133335900048457298">დაცული კონტენტის ჩაწერა ვერ მოხერხდება</translation>
 <translation id="9139720510312328767">მომდევნო ასოს წაშლა</translation>
+<translation id="9151906066336345901">end</translation>
 <translation id="9161053988251441839">შემოთავაზებული აპები</translation>
 <translation id="9168436347345867845">მოგვიანებით გაკეთება</translation>
 <translation id="9178475906033259337">ნაჩვენებია 1 შედეგი მოთხოვნაზე <ph name="QUERY" /></translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb
index 6137a176..40451fc3 100644
--- a/ash/strings/ash_strings_kk.xtb
+++ b/ash/strings/ash_strings_kk.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Зарядталып жатқан жоқ.</translation>
 <translation id="6309219492973062892">1–8 сөре белгішелерін басу немесе түрту</translation>
 <translation id="6315170314923504164">Микрофон</translation>
+<translation id="6324916366299863871">Таңбашаны өзгерту</translation>
 <translation id="6330012934079202188">Терезелер барлық жұмыс үстелінен көрсетіліп тұр. Терезелерді қазіргі жұмыс үстелінен көрсету үшін жоғарыға бағыттауыш пернені басыңыз.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> – <ph name="MANAGER" /> басқаратын сеанс.</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> қосылды</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb
index 19043c2d8..631fcc4 100644
--- a/ash/strings/ash_strings_km.xtb
+++ b/ash/strings/ash_strings_km.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">បណ្ដាញទូរសព្ទចល័ត៖ <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">ទិវា​សួស្ដី <ph name="GIVEN_NAME" /></translation>
 <translation id="1088231044944504242">ស្វែងរក <ph name="CATEGORY" /> ឯកសារ កម្មវិធី និងអ្វីៗជាច្រើនទៀត។ សូមប្រើគ្រាប់ចុចព្រួញ ដើម្បីរុករកកម្មវិធីរបស់អ្នក។</translation>
+<translation id="1093645050124056515">ctrl + alt + ព្រួញចុះក្រោម</translation>
 <translation id="109942774857561566">ខ្ញុំ​ធុញ</translation>
 <translation id="1104084341931202936">បង្ហាញ​ការកំណត់​ភាពងាយស្រួល</translation>
 <translation id="1104621072296271835">ឧបករណ៍​របស់អ្នក​ដំណើរការ​កាន់តែល្អ​ពេលប្រើ​រួមគ្នា</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">ផ្អាក</translation>
 <translation id="1181037720776840403">ដកចេញ</translation>
 <translation id="1182225749592316782">ការ​ធ្វើបែបនេះ​​ផ្ដល់​សិទ្ធិ​ចូលប្រើប្រាស់ដល់​គ្រប់​កម្មវិធី និង​គេហទំព័រ​​​ដែលមាន​ការ​អនុញ្ញាត​ឱ្យ​ប្រើ​កាមេរ៉ា និង​មីក្រូហ្វូន</translation>
+<translation id="1182876754474670069">home</translation>
 <translation id="1183863904939664422">មិនចាប់អារម្មណ៍លើការ​ណែនាំនេះទេ</translation>
 <translation id="1184126796192815024">បណ្ដាញ​នេះ​មិន​ស្គាល់កម្មវិធី​ចាក់ផ្សាយ​ពី​ទូរសព្ទ​របស់​អ្នក​ទេ។ សូមសាកល្បងប្រើហតស្ប៉តទូរសព្ទរបស់អ្នក។ <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">បញ្ចូល​ពាក្យសម្ងាត់ ឬកូដ PIN ដើម្បីឱ្យកាន់តែមានសុវត្ថិភាព</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">ចូល​ទៅកាន់​តុទី 1 នៃ 8</translation>
 <translation id="1589090746204042747">ចូលប្រើសកម្មភាព​ទាំងអស់របស់អ្នកនៅក្នុង​រយៈពេលចូលប្រើនេះ</translation>
 <translation id="1592682369233288537">តុបន្ទាប់៖ <ph name="NEXT_DESK_NAME" />, ប្រើ Search+Space ដើម្បី​បើកដំណើរការ។</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + ព្រួញចុះក្រោម</translation>
 <translation id="1604857178818051494">ផ្អាក​មេឌៀ</translation>
 <translation id="1610778689852195798">"ត្រឡប់វិញ"</translation>
 <translation id="1611993646327628135">បើក</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">ចុចដើម្បីដោះសោ</translation>
 <translation id="2023558322300866873">អ្នកអាចបញ្ឈប់​ការថតកញ្ចប់​បានគ្រប់ពេល</translation>
 <translation id="2034971124472263449">មិនអីទេ រក្សាទុក​ចុះ</translation>
+<translation id="204259843076055848">បច្ចុប្បន្ន ផ្លូវ​កាត់ <ph name="SIX_PACK_KEY_NAME" /> ត្រូវបានបិទ</translation>
 <translation id="2049240716062114887">ឈ្មោះតុត្រូវ​បានប្ដូរទៅ <ph name="DESK_NAME" /></translation>
 <translation id="206377500836174974">ពេញ</translation>
 <translation id="2064048859448024834">ការមើលកាមេរ៉ា​សាកល្បង​ត្រូវបានបើក</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" /> និង <ph name="UNAVAILABLE_APPS_TWO" /> មិនមាន​នៅលើ​ឧបករណ៍នេះ​ទេ។</translation>
 <translation id="2673968385134502798">ហ្គេម</translation>
 <translation id="2678852583403169292">ម៉ឺនុយជ្រើសរើសដើម្បីអាន</translation>
+<translation id="2687510499067466116">ផ្លូវកាត់​ក្ដារ​ចុចបានផ្លាស់ប្ដូរ</translation>
 <translation id="2689613560355655046">តុទី 8</translation>
 <translation id="2695305337569143674">បណ្ដាញ</translation>
 <translation id="2697697418792422688">បង្ហាញ​ការកំណត់​ក្ដារ​ចុច។ <ph name="KEYBOARD_NAME" /> ត្រូវបាន​ជ្រើសរើស។</translation>
@@ -637,12 +642,14 @@
 <translation id="3738664582935948253">ឥឡូវ​នេះ អ្នក​អាច​បង្ហាញ​ការ​ចុច និង​ផ្លូវកាត់​ក្ដារចុច​នៅ​ក្នុង​ការ​ថត​វីដេអូ​អេក្រង់​​បាន</translation>
 <translation id="3742055079367172538">រូបថតអេក្រង់ត្រូវបានថតយក</translation>
 <translation id="3756485814916578707">កំពុងភ្ជាប់អេក្រង់</translation>
+<translation id="3765841382945324995">ផ្លូវ​កាត់ <ph name="SIX_PACK_KEY_NAME" /> ត្រូវបានប្ដូរពី <ph name="OLD_SHORTCUT" /> ទៅ <ph name="NEW_SHORTCUT" /></translation>
 <translation id="3765841986579723851">បានកែ​នៅថ្ងៃនេះ</translation>
 <translation id="3773700760453577392">អ្នកគ្រប់គ្រង​បានដក​ការអនុញ្ញាត​មិនឱ្យមាន​ការចូលគណនី​ច្រើនសម្រាប់ <ph name="USER_EMAIL" /> ទេ។ អ្នកប្រើ​ប្រាស់ទាំងអស់​ត្រូវចាកចេញ​ដើម្បីបន្ត។</translation>
 <translation id="3779139509281456663">កំពុងភ្ជាប់ <ph name="NAME" /></translation>
 <translation id="3781910048497807059">ផ្លាស់ទី​ការ​ផ្ដោត​ទៅផ្ទាំង​មុន</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">ចាក់សោរ</translation>
+<translation id="3796215473395753611">alt + ព្រួញឡើងលើ</translation>
 <translation id="3796746699333205839">កម្មវិធីកំពុងប្រើកាមេរ៉ា និងមីក្រូហ្វូនរបស់អ្នក</translation>
 <translation id="3798670284305777884">ឧបករណ៍បំពងសំឡេង (ខាងក្នុង)</translation>
 <translation id="3799080171973636491">អ្នក​បានចុច​ផ្លូវកាត់ក្ដារចុច​សម្រាប់​កែវ​ពង្រីកពេញ​អេក្រង់។ តើអ្នក​ចង់បើកវា​ដែរទេ?</translation>
@@ -698,6 +705,7 @@
 <translation id="4026843240379844265">ផ្លាស់ទី​វិនដូ​សកម្ម​ពី​ផ្ទាំង​អេក្រង់​មួយ​ទៅ​ផ្ទាំង​អេក្រង់​មួយ​ទៀត</translation>
 <translation id="4028481283645788203">តម្រូវឱ្យបញ្ចូលពាក្យសម្ងាត់​សម្រាប់សុវត្ថិភាពបន្ថែម</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + ព្រួញ​ទៅឆ្វេង</translation>
 <translation id="4042660782729322247">អ្នក​កំពុង​ចែករំលែក​អេក្រង់​របស់អ្នក</translation>
 <translation id="404437169852192935">ការដំឡើងកំណែបានដល់ទីបញ្ចប់ហើយ</translation>
 <translation id="4049230407053723315">ការកំណត់រហ័ស</translation>
@@ -719,6 +727,7 @@
 <translation id="4129129681837227511">ដើម្បីមើលការជូនដំណឹង​នៅលើអេក្រង់ចាក់​សោរបស់អ្នក សូមដោះសោ ដើម្បីប្ដូរការកំណត់</translation>
 <translation id="4131973331381812765">សីតុណ្ហភាព៖ <ph name="TEMPERATURE" />°C - ល្បឿន​បច្ចុប្បន្ន៖ <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" />GHz</translation>
 <translation id="4136724716305260864">បើក​រហូតដល់​ពេលថ្ងៃរះ</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + ព្រួញទៅស្ដាំ</translation>
 <translation id="4146671046252289537">ផ្លាស់​ទី​ទៅ​ខាងចុងនៃ​ពាក្យ​បន្ទាប់</translation>
 <translation id="4146833061457621061">ចាក់​តន្ត្រី</translation>
 <translation id="4150201353443180367">ការបង្ហាញ</translation>
@@ -865,6 +874,7 @@
 <translation id="4747410141429390146">សូមដោះ​សោ ដើម្បីមើលការជូនដំណឹង</translation>
 <translation id="4752784485658729358">អាចឱ្យរក្សាទុកតែ 6 តុប៉ុណ្ណោះ។ សូមដកតុមួយចេញសិន ទើបអាចរក្សាទុកតុថ្មីបាន។</translation>
 <translation id="4759238208242260848">ទាញយក</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + ព្រួញឡើងលើ</translation>
 <translation id="4762573482154983647">លាក់​កម្មវិធី</translation>
 <translation id="4763885921995354846">ការធ្វើ​បែបនេះ​ផ្ដល់​សិទ្ធិ​ចូលប្រើ​កាមេរ៉ា​ដល់​គ្រប់កម្មវិធី និង​គេហទំព័រ​ដែលមាន​ការ​អនុញ្ញាត​ឱ្យ​ប្រើកាមេរ៉ា។ អ្នកអាចនឹង​ត្រូវផ្ទុក​ទំព័របណ្ដាញ​ឡើងវិញ ឬ​ចាប់ផ្ដើម​កម្មវិធីនេះ​ឡើងវិញ។</translation>
 <translation id="4774338217796918551">ត្រឡប់​មកវិញ​នៅថ្ងៃស្អែកនៅម៉ោង <ph name="COME_BACK_TIME" />។</translation>
@@ -946,6 +956,7 @@
 <translation id="5062496344832867502">ram</translation>
 <translation id="5068762093486106012">អ្នកនឹង​ទទួលបាន​ការជូនដំណឹង ប្រសិនបើ​អ្នកនិយាយ នៅពេល​បិទសំឡេង។ សំឡេង​មិនចាកចេញ​ពីឧបករណ៍​របស់អ្នកឡើយ។</translation>
 <translation id="5078796286268621944">លេខសម្គាល់មិនត្រឹមត្រូវ</translation>
+<translation id="5083035541015925118">ctrl + alt + ព្រួញឡើងលើ</translation>
 <translation id="5083553833479578423">ដោះសោ​មុខងារ​ជំនួយការ​ជាច្រើនទៀត។</translation>
 <translation id="5092436659250499817">បិទ/បើក​ពន្លឺ​​ផ្នែក​ខាងក្រោយ​ក្ដារចុច</translation>
 <translation id="5094577350232361255">អំពី</translation>
@@ -1067,6 +1078,7 @@
 <translation id="5590609058453685222">ការរំលឹកប្រាប់ថាបិទសំឡេង​ត្រូវ​បានបើក។ អ្នកនឹង​ទទួលបាន​ការជូនដំណឹង ប្រសិនបើ​អ្នកនិយាយ នៅពេល​បិទសំឡេង។</translation>
 <translation id="5596627076506792578">ជម្រើសច្រើនទៀត</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">ផ្លូវកាត់​ក្ដារ​ចុចត្រូវបានបិទ</translation>
 <translation id="5600837773213129531">ចុច Ctrl + Alt + Z ដើម្បីបិទការអានអេក្រង់។</translation>
 <translation id="5601503069213153581">លេខសម្គាល់</translation>
 <translation id="5618148318840095371">យើង​បានប្ដូរអ្នក​ទៅកាន់​បណ្ដាញដែលប្រសើរជាងមុន</translation>
@@ -1086,6 +1098,7 @@
 <translation id="5678564054339031017">បង្ហាញ​សប្ដាហ៍​បន្ទាប់</translation>
 <translation id="5679050765726761783">បានភ្ជាប់ឆ្នាំងសាកដែលមានថាមពលទាប</translation>
 <translation id="5682642926269496722">មិន​អាចប្រើ Google ជំនួយការ​​សម្រាប់​គណនី​អ្នកប្រើប្រាស់​បច្ចុប្បន្ន​បានទេ។</translation>
+<translation id="5689233503102158537">alt + backspace</translation>
 <translation id="5689633613396158040">ពន្លឺពេលយប់​ធ្វើឱ្យមាន​ភាពងាយស្រួល​ជាងមុន​ក្នុងការ​មើលអេក្រង់​របស់អ្នក ឬ​អាននៅពេល​មានពន្លឺតិច។ ចុចដើម្បីផ្លាស់ប្ដូរ​ពេលបើក "ពន្លឺពេលយប់" ឬបិទវាទាំងស្រុង។</translation>
 <translation id="5691772641933328258">មិន​ស្គាល់​ស្នាម​ម្រាមដៃ​ទេ</translation>
 <translation id="5693255400847650006">កំពុងប្រើ​មីក្រូហ្វូន</translation>
@@ -1232,6 +1245,7 @@
 <translation id="6291221004442998378">មិន​កំពុង​សាក​ថ្មទេ</translation>
 <translation id="6309219492973062892">ចុចរូបធ្នើរ 1-8</translation>
 <translation id="6315170314923504164">សម្លេង</translation>
+<translation id="6324916366299863871">កែសម្រួលផ្លូវកាត់</translation>
 <translation id="6330012934079202188">កំពុងបង្ហាញ​វិនដូពីតុ​ទាំងអស់ សូមចុច​គ្រាប់ចុច​ព្រួញឡើងលើ ដើម្បីបង្ហាញ​វិនដូពី​តុបច្ចុប្បន្ន</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> គឺជា​រយៈពេល​ចូលប្រើ​ដែល​ស្ថិតក្រោមការគ្រប់គ្រងរបស់ <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">បានភ្ជាប់ <ph name="DEVICE_NAME" /></translation>
@@ -1246,6 +1260,7 @@
 <translation id="639644700271529076">CAPS LOCK ត្រូវបានបិទ</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google ជំនួយការ</translation>
+<translation id="641817663353603351">page up</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, កម្លាំងរលកសញ្ញា <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">សម្អាត​ការ​ជូន​ដំណឹង​ទាំងអស់</translation>
 <translation id="643147933154517414">រួចរាល់​ទាំងអស់</translation>
@@ -1255,6 +1270,7 @@
 <translation id="6445915701151710649">cpu</translation>
 <translation id="6447111710783417522">ថ្ងៃទី <ph name="DATE" />, ព្រឹត្តិការណ៍ <ph name="NUMBER" /></translation>
 <translation id="6449483711453944360">បច្ចុប្បន្ន មិនអាចប្រើ​ផ្ទាំងឯកជន និងកម្មវិធី Linux បានទេ</translation>
+<translation id="6450245544201845082">បច្ចុប្បន្ន ផ្លូវ​កាត់សម្រាប់ចុចកណ្ដុរខាងស្ដាំត្រូវបានបិទ</translation>
 <translation id="6452181791372256707">បដិសេធ</translation>
 <translation id="6453179446719226835">ភាសា​ត្រូវ​បាន​ផ្លាស់ប្តូរ</translation>
 <translation id="6459472438155181876">កំពុងពង្រីកអេក្រង់ទៅ <ph name="DISPLAY_NAME" /></translation>
@@ -1379,6 +1395,7 @@
 <translation id="6965382102122355670">យល់ព្រម</translation>
 <translation id="6972754398087986839">ចាប់ផ្ដើម</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6980402667292348590">insert</translation>
 <translation id="6981291220124935078">បើកការចូលប្រើប្រាស់</translation>
 <translation id="6981982820502123353">លទ្ធភាពប្រើប្រាស់</translation>
 <translation id="698231206551913481">ឯកសារ និងទិន្នន័យមូលដ្ឋានទាំងអស់ដែលប្រើជាមួយអ្នកប្រើនេះនឹងត្រូវបានលុបជាអចិន្ត្រៃយ៍ បន្ទាប់ពីអ្នកប្រើនេះត្រូវបានលុប។</translation>
@@ -1430,6 +1447,7 @@
 <translation id="7258828758145722155">បានកែ​កាលពីម្សិលមិញ</translation>
 <translation id="726276584504105859">អូសនៅទីនេះដើម្បីប្រើអេក្រង់បំបែក</translation>
 <translation id="7262906531272962081">បង្កើត​ការ​រំលឹក</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + backspace</translation>
 <translation id="7297440678881127227"><ph name="START_TIME" /> ដល់
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1440,6 +1458,7 @@
 <translation id="7312210124139670355">អ្នកគ្រប់គ្រងរបស់អ្នកកំពុងកំណត់ eSIM របស់អ្នកឡើងវិញ។ ការកំណត់ឡើងវិញនេះ​អាចចំណាយមួយភ្លែត។</translation>
 <translation id="7313193732017069507">ពង្រីកកាមេរ៉ា</translation>
 <translation id="7316261577130609484">បញ្ចូល​កិច្ចការ​ថ្មី</translation>
+<translation id="7331646370422660166">alt + ព្រួញចុះក្រោម</translation>
 <translation id="7340731148882810149">ម៉ឺនុយចុចដោយស្វ័យប្រវត្តិ</translation>
 <translation id="7346909386216857016">យល់ព្រម ខ្ញុំយល់ហើយ</translation>
 <translation id="7348093485538360975">ក្តារចុចលើអេក្រង់</translation>
@@ -1485,6 +1504,7 @@
 <translation id="7513922695575567867">ប្រតិទិន, សប្ដាហ៍នៃថ្ងៃទី <ph name="DATE" />, បច្ចុប្បន្នបានជ្រើសរើសថ្ងៃទី <ph name="SELECTED_DATE" />។</translation>
 <translation id="7514365320538308">ទាញយក</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">page down</translation>
 <translation id="7519206258459640379">ការរក្សាឱ្យនៅក្នុងកាមេរ៉ា​ត្រូវបាន​បើក។</translation>
 <translation id="7519649142417630956">នៅ​ពេល​បិទរួច អ្នក​គ្រប់គ្រង​នឹង​ត្រូវ​ចេញ​ពី​គណនី ហើយ​នឹង​មិន​អាច​គ្រប់គ្រង​ឧបករណ៍​របស់​អ្នក​បាន​ទេ។
 
@@ -1856,6 +1876,7 @@
 <translation id="9126339866969410112">ត្រឡប់​សកម្មភាព​ចុង​ក្រោយវិញ</translation>
 <translation id="9133335900048457298">មិនអាចថតខ្លឹមសារដែលមានការការពារបានទេ</translation>
 <translation id="9139720510312328767">លុប​អក្សរ​បន្ទាប់</translation>
+<translation id="9151906066336345901">end</translation>
 <translation id="9161053988251441839">កម្មវិធី​ដែលបាន​ណែនាំ</translation>
 <translation id="9168436347345867845">ធ្វើនៅ​ពេលក្រោយ</translation>
 <translation id="9178475906033259337">កំពុង​បង្ហាញ​លទ្ធផល 1 សម្រាប់ <ph name="QUERY" /></translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index 68cfe82..b34478e 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">ಚಾರ್ಜ್‌ ಆಗುತ್ತಿಲ್ಲ</translation>
 <translation id="6309219492973062892">ಶೆಲ್ಫ್ ಐಕಾನ್‌ಗಳು 1-8 ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ಅಥವಾ ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
 <translation id="6315170314923504164">ಧ್ವನಿ</translation>
+<translation id="6324916366299863871">ಶಾರ್ಟ್‌ಕಟ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="6330012934079202188">ಎಲ್ಲಾ ಡೆಸ್ಕ್‌ಗಳಿಂದ ವಿಂಡೋಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ, ಪ್ರಸ್ತುತ ಡೆಸ್ಕ್‌ನಿಂದ ವಿಂಡೋಗಳನ್ನು ತೋರಿಸಲು ಅಪ್ ಆ್ಯರೋ ಕೀ ಅನ್ನು ಒತ್ತಿ</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> ಎಂಬುದು <ph name="MANAGER" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾದ ಒಂದು ನಿರ್ವಹಿಸಿದ ಸೆಶನ್ ಆಗಿದೆ</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> ಅನ್ನು ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index e4e9961a..7db6bb8 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">충전 안함</translation>
 <translation id="6309219492973062892">앱 표시줄 아이콘 1-8 클릭 또는 탭</translation>
 <translation id="6315170314923504164">음성</translation>
+<translation id="6324916366299863871">바로가기 수정</translation>
 <translation id="6330012934079202188">모든 데스크의 창을 표시합니다. 현재 데스크의 창을 표시하려면 위쪽 화살표 키를 누르세요</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> 세션은 <ph name="MANAGER" />에서 관리합니다.</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> 기기가 연결됨</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
index dc3749e9..e8ccc15 100644
--- a/ash/strings/ash_strings_ky.xtb
+++ b/ash/strings/ash_strings_ky.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Кубатталган жок</translation>
 <translation id="6309219492973062892">Текчедеги 1-8 сүрөтчөлөрүн чыкылдатуу же таптап коюу</translation>
 <translation id="6315170314923504164">Үн</translation>
+<translation id="6324916366299863871">Кыска жолду түзөтүү</translation>
 <translation id="6330012934079202188">Бардык иш такталардагы терезелер көрсөтүлүп жатат. Учурдагы иш тактадагы терезелерди көрүү үчүн өйдө жебени басыңыз</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> – <ph name="MANAGER" /> тарабынан башкарылган сеанс</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> туташты</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index c270b9b..01e3440 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">ບໍ່ໄດ້ສາກໄຟ</translation>
 <translation id="6309219492973062892">ຄລິກ ຫຼື ແຕະໄອຄອນຖ້ານ 1-8</translation>
 <translation id="6315170314923504164">ສຽງ</translation>
+<translation id="6324916366299863871">ແກ້ໄຂທາງລັດ</translation>
 <translation id="6330012934079202188">ກຳລັງສະແດງໜ້າຈໍຈາກໂຕະທັງໝົດ, ກົດປຸ່ມລູກສອນຂຶ້ນເພື່ອສະແດງໜ້າຈໍຈາກໂຕະປັດຈຸບັນ</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> ແມ່ນເຊດຊັນແບບມີການຈັດການທີ່ຖືກຈັດການໂດຍ <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">ເຊື່ອມຕໍ່ <ph name="DEVICE_NAME" /> ແລ້ວ</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 8772e980..3399f70 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">Mobilusis: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">Laba diena, <ph name="GIVEN_NAME" />,</translation>
 <translation id="1088231044944504242">Ieškokite <ph name="CATEGORY" />, failų, programų ir kt. Naršykite programas rodyklių klavišais.</translation>
+<translation id="1093645050124056515">„Ctrl“ + „Alt“ + rodyklė žemyn</translation>
 <translation id="109942774857561566">„I’m bored“ (Man nuobodu)</translation>
 <translation id="1104084341931202936">Rodyti pritaikymo neįgaliesiems nustatymus</translation>
 <translation id="1104621072296271835">Jūsų įrenginiai kartu veikia dar geriau</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">Pristabdyti</translation>
 <translation id="1181037720776840403">Pašalinti</translation>
 <translation id="1182225749592316782">Suteikiama prieiga visoms programoms ir svetainėms, turinčioms fotoaparato ir mikrofono leidimus</translation>
+<translation id="1182876754474670069">klavišas „Home“</translation>
 <translation id="1183863904939664422">Šis pasiūlymas nedomina</translation>
 <translation id="1184126796192815024">Šis tinklas nepalaiko srautinio perdavimo programų iš telefono. Pabandykite naudoti telefono viešosios interneto prieigos tašką. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">Norėdami užtikrinti patikimesnę apsaugą, įveskite slaptažodį arba PIN kodą</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">Eiti į 1–8 darbalaukį</translation>
 <translation id="1589090746204042747">Pasiekti visą šios sesijos veiklą</translation>
 <translation id="1592682369233288537">Kitas darbalaukis: „<ph name="NEXT_DESK_NAME" />“, suaktyvinkite naudodami paieškos ir tarpo klavišus.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + rodyklė žemyn</translation>
 <translation id="1604857178818051494">Pristabdyti mediją</translation>
 <translation id="1610778689852195798">„Anuliuoti“</translation>
 <translation id="1611993646327628135">Įjungta</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">Atrakinti spustelėjus</translation>
 <translation id="2023558322300866873">Galite bet kuriuo metu sustabdyti paketo fiksavimą</translation>
 <translation id="2034971124472263449">Vis tiek išsaugoti</translation>
+<translation id="204259843076055848"><ph name="SIX_PACK_KEY_NAME" /> spartusis klavišas šiuo metu išjungtas</translation>
 <translation id="2049240716062114887">Darbalaukio pavadinimas pakeistas į „<ph name="DESK_NAME" />“</translation>
 <translation id="206377500836174974">Visas</translation>
 <translation id="2064048859448024834">Fotoaparato peržiūra įjungta</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163">Šiame įrenginyje nėra „<ph name="UNAVAILABLE_APPS_ONE" />“ ir „<ph name="UNAVAILABLE_APPS_TWO" />“.</translation>
 <translation id="2673968385134502798">Žaidimai</translation>
 <translation id="2678852583403169292">Teksto ištarimo meniu</translation>
+<translation id="2687510499067466116">Pakeistas spartusis klavišas</translation>
 <translation id="2689613560355655046">8 darbalaukis</translation>
 <translation id="2695305337569143674">žiniatinklis</translation>
 <translation id="2697697418792422688">Rodyti klaviatūros nustatymus. Pasirinkta: <ph name="KEYBOARD_NAME" />.</translation>
@@ -637,12 +642,14 @@
 <translation id="3738664582935948253">Dabar ekrano vaizdo įrašuose galite rodyti paspaudimus ir sparčiuosius klavišus</translation>
 <translation id="3742055079367172538">Ekrano kopija padaryta</translation>
 <translation id="3756485814916578707">Perduodamas ekranas</translation>
+<translation id="3765841382945324995">Spartusis klavišas „<ph name="SIX_PACK_KEY_NAME" />“ atnaujintas į <ph name="NEW_SHORTCUT" /> iš <ph name="OLD_SHORTCUT" /></translation>
 <translation id="3765841986579723851">Redaguota šiandien</translation>
 <translation id="3773700760453577392">Administratorius neleido <ph name="USER_EMAIL" /> prisijungti prie kelių paskyrų. Norėdami tęsti, visi naudotojai turi atsijungti.</translation>
 <translation id="3779139509281456663">Susiejamas įrenginys „<ph name="NAME" />“</translation>
 <translation id="3781910048497807059">Perkelti paryškinimą į ankstesnę sritį</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">Užrakinti</translation>
+<translation id="3796215473395753611">„Alt“ + rodyklė aukštyn</translation>
 <translation id="3796746699333205839">Programa naudoja fotoaparatą ir mikrofoną</translation>
 <translation id="3798670284305777884">Garsiakalbis (vidinis)</translation>
 <translation id="3799080171973636491">Paspaudėte viso ekrano didintuvo spartųjį klavišą. Ar norite jį įjungti?</translation>
@@ -698,6 +705,7 @@
 <translation id="4026843240379844265">Aktyvaus lango perkėlimas iš vieno ekrano į kitą</translation>
 <translation id="4028481283645788203">Norint užtikrinti patikimesnę apsaugą reikalingas slaptažodis</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + rodyklė kairėn</translation>
 <translation id="4042660782729322247">Bendrinate ekraną</translation>
 <translation id="404437169852192935">Naujinių nebėra</translation>
 <translation id="4049230407053723315">Spartieji nustatymai</translation>
@@ -719,6 +727,7 @@
 <translation id="4129129681837227511">Jei norite matyti pranešimus užrakinimo ekrane, atrakinkite ir pakeiskite nustatymą</translation>
 <translation id="4131973331381812765">Temperatūra: <ph name="TEMPERATURE" /> °C – dabartinė sparta: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" /> GHz</translation>
 <translation id="4136724716305260864">Įjungta iki saulėtekio</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + rodyklė dešinėn</translation>
 <translation id="4146671046252289537">Perkelti žymeklį į kito žodžio pabaigą</translation>
 <translation id="4146833061457621061">„Play music“ (Leisk muziką)</translation>
 <translation id="4150201353443180367">Pateiktis</translation>
@@ -865,6 +874,7 @@
 <translation id="4747410141429390146">Atrakinkite, kad galėtumėte peržiūrėti pranešimus</translation>
 <translation id="4752784485658729358">Leidžiami tik šeši išsaugoti darbalaukiai. Pašalinkite darbalaukį, kad išsaugotumėte naują.</translation>
 <translation id="4759238208242260848">Atsisiuntimai</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + rodyklė aukštyn</translation>
 <translation id="4762573482154983647">Slėpti programas</translation>
 <translation id="4763885921995354846">Tai leis pasiekti fotoaparatą visoms programoms ir svetainėms, turinčioms fotoaparato leidimą. Gali reikėti atnaujinti tinklalapį arba paleisti programą iš naujo.</translation>
 <translation id="4774338217796918551">Grįžkite rytoj <ph name="COME_BACK_TIME" />.</translation>
@@ -946,6 +956,7 @@
 <translation id="5062496344832867502">ram</translation>
 <translation id="5068762093486106012">Gausite pranešimą, jei kalbėsite nutildę. Garso įrašas visada lieka jūsų įrenginyje.</translation>
 <translation id="5078796286268621944">Neteisingas PIN kodas</translation>
+<translation id="5083035541015925118">„Ctrl“ + „Alt“ + rodyklė aukštyn</translation>
 <translation id="5083553833479578423">Atrakinkite daugiau Padėjėjo funkcijų.</translation>
 <translation id="5092436659250499817">Įjungti ir (arba) išjungti klaviatūros foninį apšvietimą</translation>
 <translation id="5094577350232361255">apie</translation>
@@ -1067,6 +1078,7 @@
 <translation id="5590609058453685222">Priminimas įjungti mikrofoną įjungtas. Gausite pranešimą, jei kalbėsite nutildę mikrofoną.</translation>
 <translation id="5596627076506792578">Daugiau parinkčių</translation>
 <translation id="5597451508971090205"><ph name="DATE" />, <ph name="SHORT_WEEKDAY" /></translation>
+<translation id="5599242528220103262">Spartusis klavišas išjungtas</translation>
 <translation id="5600837773213129531">Paspauskite „Ctrl“ + „Alt“ + Z, kad išjungtumėte ekrano skaitymą balsu.</translation>
 <translation id="5601503069213153581">PIN kodas</translation>
 <translation id="5618148318840095371">Prijungėme jus prie geresnio tinklo</translation>
@@ -1086,6 +1098,7 @@
 <translation id="5678564054339031017">Rodyti kitą savaitę</translation>
 <translation id="5679050765726761783">Prijungtas mažos galios adapteris</translation>
 <translation id="5682642926269496722">„Google Assistant“ nepasiekiamas dabartinėje naudotojo paskyroje.</translation>
+<translation id="5689233503102158537">„Alt“ + naikinimo klavišas</translation>
 <translation id="5689633613396158040">Naudojant „Nakties šviesos“ funkciją bus patogiau žiūrėti į ekraną ar skaityti prietemoje. Palieskite, kad pakeistumėte, kokiu metu įjungiama funkcija „Nakties šviesa“, arba ją visiškai išjungtumėte.</translation>
 <translation id="5691772641933328258">Piršto atspaudas neatpažintas</translation>
 <translation id="5693255400847650006">Naudojamas mikrofonas</translation>
@@ -1232,6 +1245,7 @@
 <translation id="6291221004442998378">Nekraunama</translation>
 <translation id="6309219492973062892">Spustelėti arba paliesti 1–8 lentynos piktogramas</translation>
 <translation id="6315170314923504164">Balsas</translation>
+<translation id="6324916366299863871">Redaguoti spartųjį klavišą</translation>
 <translation id="6330012934079202188">Rodomi visų darbastalių langai. Paspauskite rodyklės aukštyn klavišą, kad būtų rodomi dabartinio darbastalio langai</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> yra valdomas seansas, kurį valdo <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Prijungta: <ph name="DEVICE_NAME" /></translation>
@@ -1246,6 +1260,7 @@
 <translation id="639644700271529076">DIDŽIŲJŲ RAIDŽIŲ RAŠYMAS išjungtas</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">„Google“ padėjėjas</translation>
+<translation id="641817663353603351">ankstesnis puslapis</translation>
 <translation id="6424520630891723617">„<ph name="SECURITY_STATUS" />“, signalo stiprumas <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">Visų pranešimų išvalymas</translation>
 <translation id="643147933154517414">Viskas atlikta</translation>
@@ -1255,6 +1270,7 @@
 <translation id="6445915701151710649">centrinis procesorius</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, įvykių: <ph name="NUMBER" /></translation>
 <translation id="6449483711453944360">„Linux“ programos ir inkognito langai šiuo metu nepalaikomi</translation>
+<translation id="6450245544201845082">Dešiniuoju klavišu spustelėjamas spartusis klavišas šiuo metu išjungtas</translation>
 <translation id="6452181791372256707">Atmesti</translation>
 <translation id="6453179446719226835">Kalba pakeista</translation>
 <translation id="6459472438155181876">Ekranas išplečiamas į <ph name="DISPLAY_NAME" /></translation>
@@ -1379,6 +1395,7 @@
 <translation id="6965382102122355670">Gerai</translation>
 <translation id="6972754398087986839">Darbo pradžia</translation>
 <translation id="6979158407327259162">„Google“ diskas</translation>
+<translation id="6980402667292348590">įterpti</translation>
 <translation id="6981291220124935078">Įjungti prieigą</translation>
 <translation id="6981982820502123353">Pritaikymas neįgaliesiems</translation>
 <translation id="698231206551913481">Visi failai ir su šiuo naudotoju susiję duomenys bus ištrinti visam laikui, kai šis naudotojas bus pašalintas.</translation>
@@ -1430,6 +1447,7 @@
 <translation id="7258828758145722155">Redaguota vakar</translation>
 <translation id="726276584504105859">Vilkite čia, kad naudotumėte skaidytą ekraną</translation>
 <translation id="7262906531272962081">Sukurti priminimą</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + naikinimo klavišas</translation>
 <translation id="7297440678881127227">Nuo <ph name="START_TIME" /> iki
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1440,6 +1458,7 @@
 <translation id="7312210124139670355">Administratorius iš naujo nustato jūsų „eSIM“ kortelę. Tai gali užtrukti kelias minutes.</translation>
 <translation id="7313193732017069507">Išskleisti fotoaparatą</translation>
 <translation id="7316261577130609484">Pridėti naują užduotį</translation>
+<translation id="7331646370422660166">„Alt“ + rodyklė žemyn</translation>
 <translation id="7340731148882810149">Automatinių paspaudimų meniu</translation>
 <translation id="7346909386216857016">Gerai, supratau</translation>
 <translation id="7348093485538360975">Ekraninė klaviatūra</translation>
@@ -1485,6 +1504,7 @@
 <translation id="7513922695575567867">Kalendorius, <ph name="DATE" /> savaitė, šiuo metu pasirinkta <ph name="SELECTED_DATE" />.</translation>
 <translation id="7514365320538308">Atsisiųsti</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">kitas puslapis</translation>
 <translation id="7519206258459640379">Fotoaparato kadravimo funkcija įjungta.</translation>
 <translation id="7519649142417630956">Kai išjungsite, administratorius bus atjungtas ir negalės valdyti jūsų įrenginio.
 
@@ -1856,6 +1876,7 @@
 <translation id="9126339866969410112">Anuliuoti paskutinį veiksmą</translation>
 <translation id="9133335900048457298">Negalima įrašyti apsaugoto turinio</translation>
 <translation id="9139720510312328767">Ištrinti kitą raidę</translation>
+<translation id="9151906066336345901">klavišas „End“</translation>
 <translation id="9161053988251441839">SIŪLOMOS PROGRAMOS</translation>
 <translation id="9168436347345867845">Atlikti vėliau</translation>
 <translation id="9178475906033259337">Pagal užklausą „<ph name="QUERY" />“ pateikiama rezultatų: 1</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index 39a5aabe..d0a24350 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Nenotiek uzlāde</translation>
 <translation id="6309219492973062892">Noklikšķināt uz 1.–8. plaukta ikonas vai pieskarties tai</translation>
 <translation id="6315170314923504164">Balss</translation>
+<translation id="6324916366299863871">Saīsnes rediģēšana</translation>
 <translation id="6330012934079202188">Tiek rādīti visu darbvietu logi. Nospiediet augšupvērsto bulttaustiņu, lai tiktu rādīti pašreizējās darbvietas logi.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> ir pārvaldīta sesija, ko pārvalda <ph name="MANAGER" />.</translation>
 <translation id="6344138931392227467">Izveidots savienojums ar ierīci <ph name="DEVICE_NAME" /></translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb
index b45a9b7..fdf1b269 100644
--- a/ash/strings/ash_strings_mk.xtb
+++ b/ash/strings/ash_strings_mk.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">Не се полни</translation>
 <translation id="6309219492973062892">Кликнете или допрете ги иконите за полици 1 - 8</translation>
 <translation id="6315170314923504164">Глас</translation>
+<translation id="6324916366299863871">Изменете ја кратенката</translation>
 <translation id="6330012934079202188">Се прикажуваат прозорци од сите работни површина, притиснете го копчето со стрелка за нагоре за да се прикажат прозорци од тековната работна површина</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> е управувана сесија со којашто управува <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> е поврзан</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 5d7277a42..544b336 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">സെല്ലുലാര്‍‌: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">ഗുഡ് ആഫ്‌റ്റർനൂൺ <ph name="GIVEN_NAME" />,</translation>
 <translation id="1088231044944504242">നിങ്ങളുടെ <ph name="CATEGORY" />, ഫയലുകൾ, ആപ്പുകൾ എന്നിവയും മറ്റും തിരയൂ. നിങ്ങളുടെ ആപ്പുകളിലേക്ക് പോകാൻ അമ്പടയാള കീകൾ ഉപയോഗിക്കുക.</translation>
+<translation id="1093645050124056515">ctrl + alt + താഴേക്കുള്ള അമ്പടയാളം</translation>
 <translation id="109942774857561566">എനിക്ക് ബോറടിക്കുന്നു</translation>
 <translation id="1104084341931202936">പ്രവേശനക്ഷമത ക്രമീകരണം കാണിക്കുക</translation>
 <translation id="1104621072296271835">നിങ്ങളുടെ ഉപകരണങ്ങൾ 'ഒരുമിച്ചും' നന്നായി പ്രവർത്തിക്കും</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">താൽക്കാലികമായി നിർത്തുക</translation>
 <translation id="1181037720776840403">നീക്കംചെയ്യൂ</translation>
 <translation id="1182225749592316782">ക്യാമറ, മൈക്രോഫോൺ എന്നിവ ആക്‌സസ് ചെയ്യാൻ അനുമതിയുള്ള എല്ലാ ആപ്പുകൾക്കും വെബ്സൈറ്റുകൾക്കും ഇത് ആക്‌സസ് അനുവദിക്കുന്നു</translation>
+<translation id="1182876754474670069">വീട്</translation>
 <translation id="1183863904939664422">ഈ നിർദ്ദേശത്തിൽ താൽപ്പര്യമില്ല</translation>
 <translation id="1184126796192815024">നിങ്ങളുടെ ഫോണിൽ നിന്നുള്ള സ്ട്രീമിംഗ് ആപ്പുകളെ ഈ നെറ്റ്‌വർക്ക് പിന്തുണയ്ക്കുന്നില്ല. നിങ്ങളുടെ ഫോണിന്റെ ഹോട്ട്‌സ്‌പോട്ട് ഉപയോഗിച്ച് നോക്കൂ. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">കൂടുതൽ സുരക്ഷയ്ക്ക് പാസ്‌വേഡ് അല്ലെങ്കിൽ പിൻ നൽകുക</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">1 മുതൽ 8 വരെയുള്ള ഡെസ്ക്കുകളിലേക്ക് പോകുക</translation>
 <translation id="1589090746204042747">ഈ സെഷനിൽ നിങ്ങളുടെ എല്ലാ ആക്‌റ്റിവിറ്റികളും ആക്‌സസ് ചെയ്യുക</translation>
 <translation id="1592682369233288537">അടുത്ത ഡെസ്‌ക്: <ph name="NEXT_DESK_NAME" />, സജീവമാക്കാൻ Search+Space ഉപയോഗിക്കുക.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + താഴേക്കുള്ള അമ്പടയാളം</translation>
 <translation id="1604857178818051494">മീഡിയ തൽക്കാലികമായി നിർത്തുക</translation>
 <translation id="1610778689852195798">"പഴയപടിയാക്കുക"</translation>
 <translation id="1611993646327628135">ഓണാണ്</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">അൺലോക്കുചെയ്യാൻ ക്ലിക്കുചെയ്യൂ</translation>
 <translation id="2023558322300866873">നിങ്ങൾക്ക് ഏതുസമയത്തും പാക്കറ്റ് ക്യാപ്ചർ അവസാനിപ്പിക്കാം</translation>
 <translation id="2034971124472263449">എന്തായാലും സംരക്ഷിക്കുക</translation>
+<translation id="204259843076055848"><ph name="SIX_PACK_KEY_NAME" /> കുറുക്കുവഴി നിലവിൽ ഓഫാണ്</translation>
 <translation id="2049240716062114887">ഡെസ്‌കിന്റെ പേര് <ph name="DESK_NAME" /> എന്നാക്കി മാറ്റി</translation>
 <translation id="206377500836174974">പരമാവധി</translation>
 <translation id="2064048859448024834">ക്യാമറാ പ്രിവ്യു ഓണാണ്</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" />, <ph name="UNAVAILABLE_APPS_TWO" /> എന്നിവ ഈ ഉപകരണത്തിൽ ലഭ്യമല്ല.</translation>
 <translation id="2673968385134502798">ഗെയിമുകൾ</translation>
 <translation id="2678852583403169292">വായിച്ചുകേൾക്കാൻ തിരഞ്ഞെടുക്കുക മെനു</translation>
+<translation id="2687510499067466116">കീബോഡ് കുറുക്കുവഴികള്‍ മാറ്റി</translation>
 <translation id="2689613560355655046">ഡെസ്ക് 8</translation>
 <translation id="2695305337569143674">വെബ്</translation>
 <translation id="2697697418792422688">കീബോർഡ് ക്രമീകരണം കാണിക്കുക. <ph name="KEYBOARD_NAME" /> തിരഞ്ഞെടുത്തു.</translation>
@@ -637,12 +642,14 @@
 <translation id="3738664582935948253">ഇപ്പോൾ നിങ്ങൾക്ക് സ്‌ക്രീൻ റെക്കോർഡിംഗുകളിൽ ക്ലിക്ക്, കീബോർഡ് കുറുക്കുവഴികൾ കാണിക്കാനാകും</translation>
 <translation id="3742055079367172538">സ്‌ക്രീൻഷോട്ട് എടുത്തു</translation>
 <translation id="3756485814916578707">സ്‌ക്രീൻ കാസ്റ്റ് ചെയ്യുന്നു</translation>
+<translation id="3765841382945324995"><ph name="SIX_PACK_KEY_NAME" /> കുറുക്കുവഴി, <ph name="OLD_SHORTCUT" /> എന്നതിൽ നിന്ന് <ph name="NEW_SHORTCUT" /> എന്നതാക്കി അപ്ഡേറ്റ് ചെയ്തു</translation>
 <translation id="3765841986579723851">ഇന്ന് എഡിറ്റ് ചെയ്തത്</translation>
 <translation id="3773700760453577392"><ph name="USER_EMAIL" /> എന്ന ഇമെയിലിലേക്ക് ഒന്നിലധികം പേർ സൈൻ ഇൻ ചെയ്യുന്നത് ഒരു അഡ്‌മിനിസ്‌ട്രേറ്റർ വിലക്കിയിരിക്കുന്നു. തുടരാൻ, എല്ലാ ഉപയോക്താക്കളും സൈൻ ഔട്ട് ചെയ്യണം.</translation>
 <translation id="3779139509281456663"><ph name="NAME" /> കണക്റ്റ് ചെയ്യുന്നു</translation>
 <translation id="3781910048497807059">മുമ്പത്തെ പെയിനിലേക്ക് ഫോക്കസ് നീക്കുക</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">ലോക്കുചെയ്യുക</translation>
+<translation id="3796215473395753611">alt + മുകളിലേയ്ക്കുള്ള അമ്പടയാളം</translation>
 <translation id="3796746699333205839">ഒരു ആപ്പ് നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ഉപയോഗിക്കുന്നു</translation>
 <translation id="3798670284305777884">സ്‌പീക്കർ (ഇന്റേണൽ)</translation>
 <translation id="3799080171973636491">നിങ്ങൾ പൂർണ്ണ സ്‌ക്രീൻ മാഗ്നിഫയറിനുള്ള കീബോഡ് കുറുക്കുവഴി അമർത്തി. അത് ഓണാക്കണോ?</translation>
@@ -698,6 +705,7 @@
 <translation id="4026843240379844265">ഡിസ്‌പ്ലേകൾക്ക് ഇടയിൽ സജീവ വിൻഡോകൾ നീക്കുക</translation>
 <translation id="4028481283645788203">കൂടുതൽ സുരക്ഷയ്ക്ക് പാസ്‍വേഡ് ആവശ്യമാണ്</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + ഇടത്തേയ്ക്കുള്ള അമ്പടയാളം</translation>
 <translation id="4042660782729322247">നിങ്ങൾ സ്‌ക്രീൻ പങ്കിടുന്നു</translation>
 <translation id="404437169852192935">അപ്‌ഡേറ്റുകൾ അവസാനിച്ചു</translation>
 <translation id="4049230407053723315">ദ്രുത ക്രമീകരണം</translation>
@@ -719,6 +727,7 @@
 <translation id="4129129681837227511">നിങ്ങളുടെ ലോക്ക് സ്‌ക്രീനിൽ അറിയിപ്പുകൾ കാണാൻ, ക്രമീകരണം മാറ്റാനായി അൺലോക്ക് ചെയ്യുക</translation>
 <translation id="4131973331381812765">താപനില: <ph name="TEMPERATURE" />°C - നിലവിലെ വേഗത: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" />GHz</translation>
 <translation id="4136724716305260864">സൂര്യോദയം വരെ ഓണാണ്</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + വലത്തേയ്ക്കുള്ള അമ്പടയാളം</translation>
 <translation id="4146671046252289537">അടുത്ത വാക്കിന്റെ അവസാനത്തിലേക്ക് നീങ്ങുക</translation>
 <translation id="4146833061457621061">സംഗീതം പ്ലേ ചെയ്യുക</translation>
 <translation id="4150201353443180367">ഡിസ്‌പ്ലേ</translation>
@@ -865,6 +874,7 @@
 <translation id="4747410141429390146">അറിയിപ്പുകൾ കാണാൻ അൺലോക്ക് ചെയ്യുക</translation>
 <translation id="4752784485658729358">സംരക്ഷിച്ച 6 ഡെസ്ക്കുകൾ മാത്രമേ അനുവദിക്കൂ. പുതിയൊരെണ്ണം സംരക്ഷിക്കാൻ ഒരു ഡെസ്‌ക് നീക്കം ചെയ്യുക.</translation>
 <translation id="4759238208242260848">ഡൌണ്‍ലോഡുകള്‍</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + മുകളിലേയ്ക്കുള്ള അമ്പടയാളം</translation>
 <translation id="4762573482154983647">ആപ്പുകൾ മറയ്ക്കുക</translation>
 <translation id="4763885921995354846">ക്യാമറ ആക്‌സസ് ചെയ്യാൻ അനുമതിയുള്ള മുഴുവൻ ആപ്പുകൾക്കും വെബ്സൈറ്റുകൾക്കും ഇത് ക്യാമറയിലേക്ക് ആക്‌സസ് അനുവദിക്കുന്നു. നിങ്ങൾക്ക് വെബ് പേജ് റീഫ്രഷ് ചെയ്യേണ്ടതായോ ആപ്പ് റീസ്റ്റാർട്ട് ചെയ്യേണ്ടതായോ വന്നേക്കാം.</translation>
 <translation id="4774338217796918551">നാളെ <ph name="COME_BACK_TIME" />-ന് തിരികെ വരിക.</translation>
@@ -946,6 +956,7 @@
 <translation id="5062496344832867502">RAM</translation>
 <translation id="5068762093486106012">മ്യൂട്ട് ചെയ്തിരിക്കുമ്പോൾ സംസാരിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് അറിയിപ്പ് ലഭിക്കും. ഓഡിയോ നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് ഒരിക്കലും പുറത്തുപോകില്ല.</translation>
 <translation id="5078796286268621944">തെറ്റായ PIN</translation>
+<translation id="5083035541015925118">ctrl + alt + മുകളിലേയ്ക്കുള്ള അമ്പടയാളം</translation>
 <translation id="5083553833479578423">കൂടുതൽ അസിസ്റ്റന്റ് ഫീച്ചറുകൾ അൺലോക്ക് ചെയ്യുക.</translation>
 <translation id="5092436659250499817">കീബോർഡ് ബാക്ക്‌ലൈറ്റ് ഓണാക്കുക/ഓഫാക്കുക</translation>
 <translation id="5094577350232361255">വിവരം</translation>
@@ -1067,6 +1078,7 @@
 <translation id="5590609058453685222">മ്യൂട്ട് നഡ്‌ജ് ഓണാണ്. മ്യൂട്ട് ചെയ്തിരിക്കുമ്പോൾ സംസാരിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് അറിയിപ്പ് ലഭിക്കും.</translation>
 <translation id="5596627076506792578">കൂടുതൽ‍ ഓപ്‌ഷനുകൾ</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">കീബോഡ് കുറുക്കുവഴികൾ ഓഫാണ്</translation>
 <translation id="5600837773213129531">സംഭാഷണ ഫീഡ്‌ബാക്ക് പ്രവർത്തനരഹിതമാക്കാൻ Ctrl + Alt + Z അമർത്തുക.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5618148318840095371">ഞങ്ങൾ നിങ്ങളെ മികച്ച നെറ്റ്‌വർക്കിലേക്ക് മാറ്റി</translation>
@@ -1086,6 +1098,7 @@
 <translation id="5678564054339031017">അടുത്ത ആഴ്‌ചത്തെ കാണിക്കുക</translation>
 <translation id="5679050765726761783">കുറഞ്ഞ പവറുള്ള അഡാപ്‌റ്റർ കണക്റ്റ് ചെയ്‌തു</translation>
 <translation id="5682642926269496722">നിലവിലെ ഉപയോക്തൃ അക്കൗണ്ടിന് Google അസിസ്‌റ്റന്റ് ലഭ്യമല്ല.</translation>
+<translation id="5689233503102158537">alt + backspace</translation>
 <translation id="5689633613396158040">മങ്ങിയ വെളിച്ചത്തിൽ സ്‌ക്രീനിൽ നോക്കുന്നതോ വായിക്കുന്നതോ നൈറ്റ് ലൈറ്റ് എളുപ്പമാക്കുന്നു. നൈറ്റ് ലൈറ്റ് പൂർണ്ണമായി ഓഫാകുകയോ ഓണാകുകയോ ചെയ്യേണ്ട സമയം മാറ്റാൻ ടാപ്പ് ചെയ്യുക.</translation>
 <translation id="5691772641933328258">വിരലടയാളം തിരിച്ചറിഞ്ഞില്ല</translation>
 <translation id="5693255400847650006">മൈക്രോഫോൺ ഉപയോഗിക്കുന്നു</translation>
@@ -1232,6 +1245,7 @@
 <translation id="6291221004442998378">ചാർജ് ചെയ്യുന്നില്ല</translation>
 <translation id="6309219492973062892">ഷെൽഫിലെ 1 മുതൽ 8 വരെയുള്ള ഐക്കണുകൾ ക്ലിക്ക് ചെയ്യുക അല്ലെങ്കിൽ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="6315170314923504164">വോയ്സ്</translation>
+<translation id="6324916366299863871">കുറുക്കുവഴി എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="6330012934079202188">എല്ലാ ഡെസ്‌ക്കിലും നിന്നുള്ള വിൻഡോകൾ കാണിക്കുന്നു, നിലവിലെ ഡെസ്ക്കിൽ നിന്നുള്ള വിൻഡോകൾ കാണിക്കാൻ മുകളിലേയ്ക്കുള്ള അമ്പടയാള കീ അമർത്തുക</translation>
 <translation id="6338485349199627913"><ph name="MANAGER" /> മാനേജ് ചെയ്യുന്ന ഒരു മാനേജ് ചെയ്യപ്പെടുന്ന സെഷനാണ് <ph name="DISPLAY_NAME" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> കണക്‌റ്റ് ചെയ്‌തു</translation>
@@ -1246,6 +1260,7 @@
 <translation id="639644700271529076">CAPS LOCK ഓഫാണ്</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistant</translation>
+<translation id="641817663353603351">page up</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, സിഗ്‌നൽ ശക്തി <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">എല്ലാ അറിയിപ്പുകളും മായ്ക്കുക</translation>
 <translation id="643147933154517414">എല്ലാം ചെയ്‌തു</translation>
@@ -1255,6 +1270,7 @@
 <translation id="6445915701151710649">CPU</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> ഇവന്റ്</translation>
 <translation id="6449483711453944360">Linux ആപ്പുകൾക്കും അദൃശ്യ വിൻഡോകൾക്കും നിലവിൽ പിന്തുണയില്ല</translation>
+<translation id="6450245544201845082">വലത്-ക്ലിക്ക് കുറുക്കുവഴി നിലവിൽ ഓഫാണ്</translation>
 <translation id="6452181791372256707">നിരസിക്കുക</translation>
 <translation id="6453179446719226835">ഭാഷ മാറ്റിയിരിക്കുന്നു</translation>
 <translation id="6459472438155181876">സ്‌ക്രീൻ <ph name="DISPLAY_NAME" /> എന്നതിലേക്ക് വികസിപ്പിക്കുന്നു</translation>
@@ -1379,6 +1395,7 @@
 <translation id="6965382102122355670">ശരി</translation>
 <translation id="6972754398087986839">ആരംഭിക്കാം</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6980402667292348590">insert</translation>
 <translation id="6981291220124935078">ആക്സസ് ഓണാക്കുക</translation>
 <translation id="6981982820502123353">ഉപയോഗസഹായി</translation>
 <translation id="698231206551913481">ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യുമ്പോൾ അതോടൊപ്പം അയാളുമായി ബന്ധപ്പെട്ട എല്ലാ ഫയലുകളും പ്രാദേശിക വിവരങ്ങളും ശാശ്വതമായി ഇല്ലാതാക്കപ്പെടും.</translation>
@@ -1430,6 +1447,7 @@
 <translation id="7258828758145722155">ഇന്നലെ എഡിറ്റ് ചെയ്‌തത്</translation>
 <translation id="726276584504105859">സ്പ്ലിറ്റ് സ്ക്രീൻ ഉപയോഗിക്കുന്നതിന് ഇവിടെ വലിച്ചിടുക</translation>
 <translation id="7262906531272962081">റിമൈൻഡർ സൃഷ്‌ടിക്കുക</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + backspace</translation>
 <translation id="7297440678881127227"><ph name="START_TIME" /> മുതൽ
         <ph name="END_TIME" /> വരെ,
         <ph name="TIME_ZONE" />,
@@ -1440,6 +1458,7 @@
 <translation id="7312210124139670355">നിങ്ങളുടെ അഡ്‌മിൻ eSIM റീസെറ്റ് ചെയ്യുകയാണ്. ഇതിന് കുറച്ച് സമയമെടുത്തേക്കാം.</translation>
 <translation id="7313193732017069507">ക്യാമറ വികസിപ്പിക്കുക</translation>
 <translation id="7316261577130609484">പുതിയ ടാസ്‌ക് ചേർക്കുക</translation>
+<translation id="7331646370422660166">alt + താഴേക്കുള്ള അമ്പടയാളം</translation>
 <translation id="7340731148882810149">സ്വയമേവയുള്ള ക്ലിക്കുകളുടെ മെനു</translation>
 <translation id="7346909386216857016">മനസ്സിലായി</translation>
 <translation id="7348093485538360975">ഓൺ-സ്‌ക്രീൻ കീബോർഡ്</translation>
@@ -1485,6 +1504,7 @@
 <translation id="7513922695575567867">കലണ്ടർ, <ph name="DATE" />-ലെ ആഴ്‌ച, നിലവിൽ <ph name="SELECTED_DATE" /> തിരഞ്ഞെടുത്തിരിക്കുന്നു.</translation>
 <translation id="7514365320538308">ഡൗൺലോഡ് ചെയ്യുക</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">page down</translation>
 <translation id="7519206258459640379">ക്യാമറാ ഫ്രെയിമിംഗ് ഓണാണ്.</translation>
 <translation id="7519649142417630956">ഷട്ട് ഡൗൺ ചെയ്തുകഴിഞ്ഞാൽ അഡ്‌മിൻ ലോഗൗട്ട് ആകും, അവർക്ക് നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കാനാകില്ല.
 
@@ -1856,6 +1876,7 @@
 <translation id="9126339866969410112">അവസാന പ്രവർത്തനം പഴയപടിയാക്കുക</translation>
 <translation id="9133335900048457298">പരിരക്ഷിത ഉള്ളടക്കം റെക്കോർഡ് ചെയ്യാനാകില്ല</translation>
 <translation id="9139720510312328767">അടുത്ത അക്ഷരം ഇല്ലാതാക്കുക</translation>
+<translation id="9151906066336345901">end</translation>
 <translation id="9161053988251441839">നിർദ്ദേശിച്ചിരിക്കുന്ന ആപ്പുകൾ</translation>
 <translation id="9168436347345867845">ഇത് പിന്നീട് ചെയ്യുക</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> എന്നതിനുള്ള ഒരു ഫലം കാണിക്കുന്നു</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 402ebd3..af4eec48 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">Цэнэглэхгүй байна</translation>
 <translation id="6309219492973062892">Тавиурын 1-8-р дүрс тэмдгийг дарах эсвэл товших</translation>
 <translation id="6315170314923504164">Дуу хоолой</translation>
+<translation id="6324916366299863871">Товчлолыг засах</translation>
 <translation id="6330012934079202188">Бүх дэлгэцээс цонхнуудыг харуулж байна. Одоогийн дэлгэцээс цонхнуудыг харуулахын тулд Дээш сум товчийг дарна уу</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> нь <ph name="MANAGER" />-н удирддаг хяналттай харилцан үйлдэл юм</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> холбогдсон</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index e06fef2..49cc5032 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -352,7 +352,7 @@
 <translation id="2531025035050312891">डिव्हाइसचा वेग कमी</translation>
 <translation id="2531107890083353124">टॅब ड्रॅग करताना <ph name="KEY_ONE" /> प्रेस करा</translation>
 <translation id="254900897760075745">निवडलेला आशय क्लिपबोर्डवर कॉपी करा</translation>
-<translation id="2549711466868162843">प्रकाशामध्ये सुधारणा करा</translation>
+<translation id="2549711466868162843">लायटिंगमध्ये सुधारणा करा</translation>
 <translation id="2549985041256363841">रेकॉर्डिंग सुरू करा</translation>
 <translation id="255671100581129685">सार्वजनिक सेशनमध्ये Google असिस्टंट उपलब्ध नाही.</translation>
 <translation id="256712445991462162">डॉक केलेले मॅग्निफायर</translation>
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">चार्ज होत नाही</translation>
 <translation id="6309219492973062892">शेल्फ आयकन १-८ वर क्लिक किंवा टॅप करा</translation>
 <translation id="6315170314923504164">व्हॉइस</translation>
+<translation id="6324916366299863871">शॉर्टकट संपादित करा</translation>
 <translation id="6330012934079202188">सर्व डेस्कवरील विंडो दाखवत आहे, सध्याच्या डेस्कवरील विंडो दाखवण्यासाठी अप अ‍ॅरो की प्रेस करा</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> हे सेशन <ph name="MANAGER" /> द्वारे व्यवस्थापित केले आहे</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> कनेक्‍ट केले</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index 82741389..6785008b 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">Selular: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">Selamat tengah hari <ph name="GIVEN_NAME" />,</translation>
 <translation id="1088231044944504242">Cari <ph name="CATEGORY" />, fail, apl anda dan pelbagai lagi. Gunakan kekunci anak panah untuk menavigasi apl anda.</translation>
+<translation id="1093645050124056515">ctrl + alt + anak panah ke bawah</translation>
 <translation id="109942774857561566">Saya bosan</translation>
 <translation id="1104084341931202936">Tunjukkan tetapan kebolehaksesan</translation>
 <translation id="1104621072296271835">Peranti anda akan berfungsi lebih baik bersama-sama</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">Jeda</translation>
 <translation id="1181037720776840403">Alih keluar</translation>
 <translation id="1182225749592316782">Tindakan ini akan membenarkan akses kepada semua apl dan laman web dengan kebenaran kamera dan mikrofon</translation>
+<translation id="1182876754474670069">home</translation>
 <translation id="1183863904939664422">Tidak berminat dengan cadangan ini</translation>
 <translation id="1184126796192815024">Rangkaian ini tidak menyokong apl penstriman daripada telefon anda. Cuba gunakan tempat liputan telefon anda. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">Masukkan kata laluan atau PIN untuk meningkatkan keselamatan</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">Pergi ke meja 1 hingga 8</translation>
 <translation id="1589090746204042747">Akses semua aktiviti anda dalam sesi ini</translation>
 <translation id="1592682369233288537">Meja Seterusnya: <ph name="NEXT_DESK_NAME" />, gunakan Search+Space untuk pengaktifan.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + anak panah ke bawah</translation>
 <translation id="1604857178818051494">Jeda media</translation>
 <translation id="1610778689852195798">"Buat asal"</translation>
 <translation id="1611993646327628135">Hidup</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">Klik untuk membuka kunci</translation>
 <translation id="2023558322300866873">Anda boleh menghentikan tangkapan paket pada bila-bila masa</translation>
 <translation id="2034971124472263449">Simpan juga</translation>
+<translation id="204259843076055848">Pintasan <ph name="SIX_PACK_KEY_NAME" /> dimatikan pada masa ini</translation>
 <translation id="2049240716062114887">Nama meja telah ditukar kepada <ph name="DESK_NAME" /></translation>
 <translation id="206377500836174974">Penuh</translation>
 <translation id="2064048859448024834">Pratonton kamera dihidupkan</translation>
@@ -352,7 +356,7 @@
 <translation id="2531025035050312891">peranti perlahan</translation>
 <translation id="2531107890083353124">Tekan <ph name="KEY_ONE" /> sambil menyeret tab</translation>
 <translation id="254900897760075745">Salin kandungan yang dipilih kepada papan keratan</translation>
-<translation id="2549711466868162843">Tingkatkan pencahayaan</translation>
+<translation id="2549711466868162843">Betulkan pencahayaan</translation>
 <translation id="2549985041256363841">Mulakan rakaman</translation>
 <translation id="255671100581129685">Google Assistant tidak tersedia dalam sesi awam.</translation>
 <translation id="256712445991462162">penggadang yang didokkan</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" /> dan <ph name="UNAVAILABLE_APPS_TWO" /> tidak tersedia pada peranti ini.</translation>
 <translation id="2673968385134502798">Permainan</translation>
 <translation id="2678852583403169292">Menu Pilih untuk bercakap</translation>
+<translation id="2687510499067466116">Pintasan papan kekunci telah diubah</translation>
 <translation id="2689613560355655046">Meja 8</translation>
 <translation id="2695305337569143674">web</translation>
 <translation id="2697697418792422688">Tunjukkan tetapan papan kekunci. <ph name="KEYBOARD_NAME" /> dipilih.</translation>
@@ -637,6 +642,7 @@
 <translation id="3738664582935948253">Kini anda boleh menunjukkan klik dan pintasan papan kekunci dalam rakaman skrin</translation>
 <translation id="3742055079367172538">Tangkapan skrin diambil</translation>
 <translation id="3756485814916578707">Menghantar skrin</translation>
+<translation id="3765841382945324995">Pintasan <ph name="SIX_PACK_KEY_NAME" /> dikemaskinikan kepada <ph name="NEW_SHORTCUT" /> daripada <ph name="OLD_SHORTCUT" /></translation>
 <translation id="3765841986579723851">Diedit hari ini</translation>
 <translation id="3773700760453577392">Pentadbir tidak membenarkan log masuk berbilang untuk <ph name="USER_EMAIL" />.
 Semua pengguna mesti log keluar untuk meneruskan.</translation>
@@ -644,6 +650,7 @@
 <translation id="3781910048497807059">Alihkan fokus kepada anak tetingkap terdahulu</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">Kunci</translation>
+<translation id="3796215473395753611">alt + anak panah ke atas</translation>
 <translation id="3796746699333205839">Satu aplikasi sedang menggunakan kamera dan mikrofon anda</translation>
 <translation id="3798670284305777884">Pembesar suara (dalaman)</translation>
 <translation id="3799080171973636491">Anda menekan pintasan papan kekunci untuk penggadang skrin penuh. Adakah anda ingin menghidupkannya?</translation>
@@ -699,6 +706,7 @@
 <translation id="4026843240379844265">Alihkan tetingkap aktif antara paparan</translation>
 <translation id="4028481283645788203">Kata laluan diperlukan untuk meningkatkan keselamatan</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + anak panah ke kiri</translation>
 <translation id="4042660782729322247">Anda berkongsi skrin anda</translation>
 <translation id="404437169852192935">Kemaskinian tamat</translation>
 <translation id="4049230407053723315">Tetapan Pantas</translation>
@@ -720,6 +728,7 @@
 <translation id="4129129681837227511">Untuk melihat pemberitahuan pada skrin kunci anda, buka kunci untuk menukar tetapan</translation>
 <translation id="4131973331381812765">Suhu: <ph name="TEMPERATURE" />°C - Kelajuan semasa: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" />GHz</translation>
 <translation id="4136724716305260864">Dihidupkan sehingga matahari terbit</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + anak panah ke kanan</translation>
 <translation id="4146671046252289537">Beralih kepada penghujung perkataan seterusnya</translation>
 <translation id="4146833061457621061">Mainkan muzik</translation>
 <translation id="4150201353443180367">Paparan</translation>
@@ -866,6 +875,7 @@
 <translation id="4747410141429390146">Sila buka kunci untuk melihat pemberitahuan</translation>
 <translation id="4752784485658729358">6 meja sahaja dibenarkan. Alih keluar satu meja untuk menyimpan meja baharu.</translation>
 <translation id="4759238208242260848">Muat turun</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + anak panah ke atas</translation>
 <translation id="4762573482154983647">Sembunyikan apl</translation>
 <translation id="4763885921995354846">Tindakan ini akan membenarkan akses kamera untuk semua apl dan laman web dengan kebenaran kamera. Anda mungkin perlu menyegarkan semula halaman web atau memulakan semula apl.</translation>
 <translation id="4774338217796918551">Datang semula esok pada <ph name="COME_BACK_TIME" />.</translation>
@@ -947,6 +957,7 @@
 <translation id="5062496344832867502">ram</translation>
 <translation id="5068762093486106012">Anda akan diberitahu jika anda bercakap semasa diredam. Peranti anda tidak menghasilkan audio.</translation>
 <translation id="5078796286268621944">PIN salah</translation>
+<translation id="5083035541015925118">ctrl + alt + anak panah ke atas</translation>
 <translation id="5083553833479578423">Buka kunci pelbagai lagi ciri Assistant.</translation>
 <translation id="5092436659250499817">Hidupkan/matikan lampu latar papan kekunci</translation>
 <translation id="5094577350232361255">perihal</translation>
@@ -1068,6 +1079,7 @@
 <translation id="5590609058453685222">Sigung redam dihidupkan. Anda akan diberitahu jika anda bercakap semasa diredam.</translation>
 <translation id="5596627076506792578">Lagi pilihan</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">Pintasan papan kekunci dimatikan</translation>
 <translation id="5600837773213129531">Tekan Ctrl + Alt + Z untuk melumpuhkan maklum balas yang dituturkan.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5618148318840095371">Kami telah menukar anda kepada rangkaian yang lebih baik</translation>
@@ -1087,6 +1099,7 @@
 <translation id="5678564054339031017">Tunjukkan minggu depan</translation>
 <translation id="5679050765726761783">Penyesuai kuasa rendah disambungkan</translation>
 <translation id="5682642926269496722">Google Assistant tidak tersedia untuk akaun pengguna semasa.</translation>
+<translation id="5689233503102158537">alt + backspace</translation>
 <translation id="5689633613396158040">Cahaya Malam memudahkan anda melihat skrin atau membaca dalam cahaya malap. Ketik untuk menukar masa Malam Cahaya dihidupkan atau mematikan ciri ini sepenuhnya.</translation>
 <translation id="5691772641933328258">Cap jari tidak dikenali</translation>
 <translation id="5693255400847650006">Mikrofon sedang digunakan</translation>
@@ -1233,6 +1246,7 @@
 <translation id="6291221004442998378">Tidak mengecas</translation>
 <translation id="6309219492973062892">Klik atau ketik ikon rak 1-8</translation>
 <translation id="6315170314923504164">Suara</translation>
+<translation id="6324916366299863871">Edit pintasan</translation>
 <translation id="6330012934079202188">Memaparkan tetingkap daripada semua meja, tekan kekunci Anak panah ke atas untuk memaparkan tetingkap daripada meja semasa</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> ialah sesi terurus yang diurus oleh <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> disambungkan</translation>
@@ -1247,6 +1261,7 @@
 <translation id="639644700271529076">Kekunci CAPS LOCK dimatikan</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistant</translation>
+<translation id="641817663353603351">page up</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">Kosongkan semua pemberitahuan</translation>
 <translation id="643147933154517414">Selesai</translation>
@@ -1256,6 +1271,7 @@
 <translation id="6445915701151710649">cpu</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> acara</translation>
 <translation id="6449483711453944360">Apl Linux dan tetingkap inkognito tidak disokong pada masa ini</translation>
+<translation id="6450245544201845082">Pintasan klik kanan dimatikan pada masa ini</translation>
 <translation id="6452181791372256707">Tolak</translation>
 <translation id="6453179446719226835">Bahasa telah ditukar</translation>
 <translation id="6459472438155181876">Melanjutkan skrin ke <ph name="DISPLAY_NAME" /></translation>
@@ -1380,6 +1396,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6972754398087986839">Bermula</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6980402667292348590">insert</translation>
 <translation id="6981291220124935078">Hidupkan akses</translation>
 <translation id="6981982820502123353">Kebolehcapaian</translation>
 <translation id="698231206551913481">Semua fail dan data yang berkaitan dengan pengguna ini akan dipadamkan secara kekal selepas pengguna ini dialih keluar.</translation>
@@ -1431,6 +1448,7 @@
 <translation id="7258828758145722155">Diedit semalam</translation>
 <translation id="726276584504105859">Seret ke sini untuk menggunakan skrin pisah</translation>
 <translation id="7262906531272962081">Buat peringatan</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + undur ruang</translation>
 <translation id="7297440678881127227"><ph name="START_TIME" /> hingga
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1441,6 +1459,7 @@
 <translation id="7312210124139670355">Pentadbir sedang menetapkan semula eSIM anda. Proses ini mungkin mengambil masa beberapa minit.</translation>
 <translation id="7313193732017069507">Kembangkan kamera</translation>
 <translation id="7316261577130609484">Tambahkan tugasan baharu</translation>
+<translation id="7331646370422660166">alt + anak panah ke bawah</translation>
 <translation id="7340731148882810149">Menu klik automatik</translation>
 <translation id="7346909386216857016">Ok, faham</translation>
 <translation id="7348093485538360975">Papan kekunci pada skrin</translation>
@@ -1486,6 +1505,7 @@
 <translation id="7513922695575567867">Kalendar, minggu <ph name="DATE" />, <ph name="SELECTED_DATE" /> dipilih pada masa ini.</translation>
 <translation id="7514365320538308">Muat Turun</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">page down</translation>
 <translation id="7519206258459640379">Pembingkaian kamera dihidupkan.</translation>
 <translation id="7519649142417630956">Setelah peranti dimatikan, pentadbir akan log keluar dan tidak akan dapat mengawal peranti anda.
 
@@ -1857,6 +1877,7 @@
 <translation id="9126339866969410112">Buat asal tindakan terakhir</translation>
 <translation id="9133335900048457298">Tidak dapat merakam kandungan yang dilindungi</translation>
 <translation id="9139720510312328767">Padamkan huruf seterusnya</translation>
+<translation id="9151906066336345901">end</translation>
 <translation id="9161053988251441839">APL DISYORKAN</translation>
 <translation id="9168436347345867845">Lakukan kemudian</translation>
 <translation id="9178475906033259337">Memaparkan 1 hasil carian untuk <ph name="QUERY" /></translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb
index 4d8d44b6..bb92d26 100644
--- a/ash/strings/ash_strings_my.xtb
+++ b/ash/strings/ash_strings_my.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">အားသွင်းမနေပါ</translation>
 <translation id="6309219492973062892">စင်ပေါ်ရှိ သင်္ကေတ ၁-၈ ကို နှိပ်ရန် (သို့) တို့ရန်</translation>
 <translation id="6315170314923504164">အသံ</translation>
+<translation id="6324916366299863871">ဖြတ်လမ်းလင့်ခ်ကို တည်းဖြတ်ခြင်း</translation>
 <translation id="6330012934079202188">မျက်နှာပြင်နေရာ အားလုံးမှ ဝင်းဒိုးများကို ပြနေသည်၊ လက်ရှိမျက်နှာပြင်နေရာမှ ဝင်းဒိုးများကို ပြရန် ‘အပေါ်ညွှန်မြား’ ကီးကို နှိပ်ပါ</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> သည် <ph name="MANAGER" /> က စီမံခန့်ခွဲထားသည့် စက်ရှင်ဖြစ်သည်</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> ချိတ်ဆက်ပြီးပြီ</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb
index 5263a37..5a17c9a 100644
--- a/ash/strings/ash_strings_ne.xtb
+++ b/ash/strings/ash_strings_ne.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">चार्ज भइरहेको छैन</translation>
 <translation id="6309219492973062892">सेल्फमा भएका १ देखि ८ सम्मका आइकनहरूमा क्लिक वा ट्याप गर्नुहोस्</translation>
 <translation id="6315170314923504164">भ्वाइस</translation>
+<translation id="6324916366299863871">सर्टकट सम्पादन गर्नुहोस्</translation>
 <translation id="6330012934079202188">सबै डेस्कमा रहेका विन्डोहरू देखाइँदै छन्, हालको डेस्कमा रहेका विन्डोहरू देखाउन अप एरो की थिच्नुहोस्</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> <ph name="MANAGER" /> ले व्यवस्थापन गर्ने सत्र हो</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> कनेक्ट गरियो</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index 0747c52..51e77821 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Wordt niet opgeladen</translation>
 <translation id="6309219492973062892">Klik of tik op icoon 1-8 op de plank</translation>
 <translation id="6315170314923504164">Spraak</translation>
+<translation id="6324916366299863871">Snelkoppeling bewerken</translation>
 <translation id="6330012934079202188">Er worden vensters van alle bureaus getoond, druk op de pijl-omhoog om vensters van het huidige bureau te bekijken</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> is een beheerde sessie die wordt beheerd door <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> gekoppeld</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index b504e80..0b784dd 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -352,7 +352,7 @@
 <translation id="2531025035050312891">enhet treg</translation>
 <translation id="2531107890083353124">Trykk på <ph name="KEY_ONE" /> mens du drar fanen</translation>
 <translation id="254900897760075745">Kopier det merkede innholdet til utklippstavlen</translation>
-<translation id="2549711466868162843">Forbedre belysningen</translation>
+<translation id="2549711466868162843">Bedre lys</translation>
 <translation id="2549985041256363841">Start opptak</translation>
 <translation id="255671100581129685">Google-assistenten er ikke tilgjengelig i offentlige økter.</translation>
 <translation id="256712445991462162">den dokkede lupen</translation>
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Lader ikke</translation>
 <translation id="6309219492973062892">Klikk eller trykk på hylleikonene 1–8</translation>
 <translation id="6315170314923504164">Tale</translation>
+<translation id="6324916366299863871">Endre snarvei</translation>
 <translation id="6330012934079202188">Viser vinduer fra alle skrivebord. Trykk på oppoverpiltasten for å vise vinduer fra det nåværende skrivebordet</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> er en administrert økt som administreres av <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> er tilkoblet</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb
index 84823987..b63d424 100644
--- a/ash/strings/ash_strings_or.xtb
+++ b/ash/strings/ash_strings_or.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">ଚାର୍ଜ ହେଉନାହିଁ</translation>
 <translation id="6309219492973062892">1-8 ସେଲ୍ପ ଆଇକନରେ କ୍ଲିକ କିମ୍ବା ଟାପ କରନ୍ତୁ</translation>
 <translation id="6315170314923504164">Voice</translation>
+<translation id="6324916366299863871">ସର୍ଟକଟ୍‌କୁ ଏଡିଟ୍ କରନ୍ତୁ</translation>
 <translation id="6330012934079202188">ସମସ୍ତ ଡେସ୍କରୁ ୱିଣ୍ଡୋଗୁଡ଼ିକ ଦେଖାଯାଉଛି, ବର୍ତ୍ତମାନର ଡେସ୍କରୁ ୱିଣ୍ଡୋଗୁଡ଼ିକୁ ଦେଖାଇବା ପାଇଁ ଅପ୍ ତୀର କୀ ଦବାନ୍ତୁ</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> ହେଉଛି <ph name="MANAGER" /> ଦ୍ୱାରା ପରିଚାଳିତ ହେଉଥିବା ଏକ ପରିଚାଳିତ ସେସନ୍</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> ସଂଯୋଗ କରାଯାଇଛି</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb
index 3c510cc..5227e01f 100644
--- a/ash/strings/ash_strings_pa.xtb
+++ b/ash/strings/ash_strings_pa.xtb
@@ -352,7 +352,7 @@
 <translation id="2531025035050312891">ਡੀਵਾਈਸ ਹੌਲੀ ਚੱਲ ਰਿਹਾ ਹੈ</translation>
 <translation id="2531107890083353124">ਟੈਬ ਨੂੰ ਘਸੀਟਦੇ ਸਮੇਂ, <ph name="KEY_ONE" /> ਦਬਾਓ</translation>
 <translation id="254900897760075745">ਚੁਣੀ ਗਈ ਸਮੱਗਰੀ ਨੂੰ ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰੋ</translation>
-<translation id="2549711466868162843">ਰੋਸ਼ਨੀ ਨੂੰ ਬਿਹਤਰ ਬਣਾਓ</translation>
+<translation id="2549711466868162843">ਬਿਹਤਰ ਲਾਈਟਿੰਗ</translation>
 <translation id="2549985041256363841">ਰਿਕਾਰਡਿੰਗ ਸ਼ੁੁਰੂ ਕਰੋ</translation>
 <translation id="255671100581129685">Google Assistant ਕਿਸੇ ਜਨਤਕ ਸੈਸ਼ਨ ਵਿੱਚ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।</translation>
 <translation id="256712445991462162">ਡੌਕ ਕੀਤਾ ਵਿਸਤਾਰਕ</translation>
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">ਚਾਰਜ ਨਹੀਂ ਹੋ ਰਿਹਾ</translation>
 <translation id="6309219492973062892">ਸ਼ੈਲਫ ਪ੍ਰਤੀਕ 1-8 'ਤੇ ਕਲਿੱਕ ਜਾਂ ਟੈਪ ਕਰੋ</translation>
 <translation id="6315170314923504164">ਅਵਾਜ਼</translation>
+<translation id="6324916366299863871">ਸ਼ਾਰਟਕੱਟ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation>
 <translation id="6330012934079202188">ਸਾਰੇ ਡੈਸਕਾਂ ਤੋਂ ਵਿੰਡੋਆਂ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ ਹਨ, ਮੌਜੂਦਾ ਡੈਸਕ ਤੋਂ ਵਿੰਡੋਆਂ ਦਿਖਾਉਣ ਲਈ ਉੱਪਰ ਤੀਰ ਵਾਲੀ ਕੁੰਜੀ ਦਬਾਓ</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> <ph name="MANAGER" /> ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਇੱਕ ਪ੍ਰਬੰਧਿਤ ਸੈਸ਼ਨ ਹੈ</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> ਕਨੈਕਟ ਹੈ</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index 2e794b7d..e4702ee 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">Sieć komórkowa: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">Dzień dobry <ph name="GIVEN_NAME" />,</translation>
 <translation id="1088231044944504242">Szukaj elementów takich jak np. <ph name="CATEGORY" />, pliki lub aplikacje. Aby poruszać się po aplikacjach, użyj klawiszy strzałek.</translation>
+<translation id="1093645050124056515">Ctrl + Alt + strzałka w dół</translation>
 <translation id="109942774857561566">Nudzi mi się</translation>
 <translation id="1104084341931202936">Pokaż ustawienia ułatwień dostępu</translation>
 <translation id="1104621072296271835">Razem Twoje urządzenia mogą jeszcze więcej</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">Wstrzymaj</translation>
 <translation id="1181037720776840403">Usuń</translation>
 <translation id="1182225749592316782">Zezwala na dostęp wszystkim aplikacjom i stronom internetowym, które mają uprawnienia do korzystania z kamery i mikrofonu.</translation>
+<translation id="1182876754474670069">Home</translation>
 <translation id="1183863904939664422">Ta sugestia mnie nie interesuje</translation>
 <translation id="1184126796192815024">Ta sieć nie obsługuje strumieniowego przesyłania aplikacji z telefonu. Spróbuj użyć hotspota w telefonie. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">Dla większego bezpieczeństwa podaj kod PIN lub hasło</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">Przejdź do biurka z zakresu od 1 do 8</translation>
 <translation id="1589090746204042747">uzyskiwać dostęp do całej Twojej aktywności w tej sesji;</translation>
 <translation id="1592682369233288537">Następne biurko: <ph name="NEXT_DESK_NAME" />. Aby je aktywować, naciśnij klawisz wyszukiwania i spację.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + strzałka w dół</translation>
 <translation id="1604857178818051494">Wstrzymaj multimedia</translation>
 <translation id="1610778689852195798">„Cofnij”</translation>
 <translation id="1611993646327628135">Włączono</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">Kliknij, aby odblokować</translation>
 <translation id="2023558322300866873">Przechwytywanie pakietów możesz zatrzymać w dowolnym momencie</translation>
 <translation id="2034971124472263449">Zapisz mimo to</translation>
+<translation id="204259843076055848">Skrót symulujący działanie klawisza <ph name="SIX_PACK_KEY_NAME" /> jest obecnie wyłączony</translation>
 <translation id="2049240716062114887">Nazwa biurka została zmieniona na <ph name="DESK_NAME" /></translation>
 <translation id="206377500836174974">Pełne</translation>
 <translation id="2064048859448024834">Podgląd z aparatu jest włączony</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163">Aplikacji <ph name="UNAVAILABLE_APPS_ONE" /> ani <ph name="UNAVAILABLE_APPS_TWO" /> nie ma na tym urządzeniu.</translation>
 <translation id="2673968385134502798">Gry</translation>
 <translation id="2678852583403169292">Menu Przeczytaj na głos</translation>
+<translation id="2687510499067466116">Skrót klawiszowy został zmieniony</translation>
 <translation id="2689613560355655046">Biurko 8</translation>
 <translation id="2695305337569143674">internet</translation>
 <translation id="2697697418792422688">Pokaż ustawienia klawiatury. Wybrano: <ph name="KEYBOARD_NAME" />.</translation>
@@ -637,12 +642,14 @@
 <translation id="3738664582935948253">W nagraniach ekranu możesz teraz pokazywać kliknięcia i skróty klawiszowe</translation>
 <translation id="3742055079367172538">Wykonano zrzut ekranu</translation>
 <translation id="3756485814916578707">Przesyłam ekran</translation>
+<translation id="3765841382945324995">Skrót symulujący działanie klawisza <ph name="SIX_PACK_KEY_NAME" /> został zmieniony z <ph name="OLD_SHORTCUT" /> na <ph name="NEW_SHORTCUT" /></translation>
 <translation id="3765841986579723851">Edytowane dzisiaj</translation>
 <translation id="3773700760453577392">Administrator nie zezwolił na wielokrotne logowanie użytkownika <ph name="USER_EMAIL" />. Aby kontynuować, wszyscy użytkownicy muszą się wylogować.</translation>
 <translation id="3779139509281456663">Łączę z urządzeniem <ph name="NAME" /></translation>
 <translation id="3781910048497807059">Przenieś zaznaczenie na poprzedni panel</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">Zablokuj</translation>
+<translation id="3796215473395753611">Alt + strzałka w górę</translation>
 <translation id="3796746699333205839">Aplikacja używa kamery i mikrofonu</translation>
 <translation id="3798670284305777884">Głośnik (wewnętrzny)</translation>
 <translation id="3799080171973636491">Naciśnięto skrót klawiszowy lupy pełnoekranowej. Czy chcesz ją włączyć?</translation>
@@ -698,6 +705,7 @@
 <translation id="4026843240379844265">Przenieś aktywne okno na inny ekran</translation>
 <translation id="4028481283645788203">Dla większego bezpieczeństwa musisz podać hasło</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + strzałka w lewo</translation>
 <translation id="4042660782729322247">Udostępniasz ekran</translation>
 <translation id="404437169852192935">Zakończono aktualizacje</translation>
 <translation id="4049230407053723315">Szybkie ustawienia</translation>
@@ -719,6 +727,7 @@
 <translation id="4129129681837227511">Aby wyświetlać powiadomienia na ekranie blokady, odblokuj ekran i zmień ustawienie</translation>
 <translation id="4131973331381812765">Temperatura: <ph name="TEMPERATURE" />°C – aktualna szybkość: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" /> GHz</translation>
 <translation id="4136724716305260864">Włączone do wschodu słońca</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + strzałka w prawo</translation>
 <translation id="4146671046252289537">Przejdź na koniec następnego słowa</translation>
 <translation id="4146833061457621061">Włącz muzykę</translation>
 <translation id="4150201353443180367">Wyświetlacz</translation>
@@ -865,6 +874,7 @@
 <translation id="4747410141429390146">Odblokuj, aby wyświetlić powiadomienia</translation>
 <translation id="4752784485658729358">Zapisać można tylko 6 biurek. Usuń biurko, aby zapisać nowe.</translation>
 <translation id="4759238208242260848">Pobrane pliki</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + strzałka w górę</translation>
 <translation id="4762573482154983647">Ukrywaj aplikacje</translation>
 <translation id="4763885921995354846">Zezwala na dostęp do kamery wszystkim aplikacjom i stronom internetowym, które mają uprawnienia do korzystania z kamery. Konieczne może być odświeżenie strony lub ponowne uruchomienie aplikacji.</translation>
 <translation id="4774338217796918551">Możesz wrócić jutro o <ph name="COME_BACK_TIME" />.</translation>
@@ -946,6 +956,7 @@
 <translation id="5062496344832867502">RAM</translation>
 <translation id="5068762093486106012">Powiadomimy Cię, gdy będziesz mówić, a mikrofon będzie wyciszony. Dźwięk nigdy nie jest wysyłany poza Twoje urządzenie.</translation>
 <translation id="5078796286268621944">Błędny kod PIN</translation>
+<translation id="5083035541015925118">Ctrl + Alt + strzałka w górę</translation>
 <translation id="5083553833479578423">Poznaj więcej funkcji Asystenta.</translation>
 <translation id="5092436659250499817">Włącz/wyłącz podświetlenie klawiatury</translation>
 <translation id="5094577350232361255">informacje</translation>
@@ -1067,6 +1078,7 @@
 <translation id="5590609058453685222">Powiadomienie o wyciszeniu jest włączone. Powiadomimy Cię, gdy będziesz mówić, a mikrofon będzie wyciszony.</translation>
 <translation id="5596627076506792578">Więcej opcji</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">Skrót klawiszowy jest wyłączony</translation>
 <translation id="5600837773213129531">Naciśnij Ctrl + Alt + Z, by wyłączyć komunikaty głosowe.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5618148318840095371">Przełączyliśmy Cię do lepszej sieci</translation>
@@ -1086,6 +1098,7 @@
 <translation id="5678564054339031017">Pokaż następny tydzień</translation>
 <translation id="5679050765726761783">Podłączono zasilacz o małej mocy</translation>
 <translation id="5682642926269496722">Asystent Google jest niedostępny na tym koncie użytkownika.</translation>
+<translation id="5689233503102158537">Alt + Backspace</translation>
 <translation id="5689633613396158040">Dzięki Podświetleniu nocnemu oczy mniej się męczą podczas patrzenia na ekran lub czytania przy słabym oświetleniu. Kliknij, by zmienić godzinę włączania Podświetlenia nocnego lub całkowicie je wyłączyć.</translation>
 <translation id="5691772641933328258">Nie rozpoznano odcisku palca</translation>
 <translation id="5693255400847650006">Mikrofon w użyciu</translation>
@@ -1232,6 +1245,7 @@
 <translation id="6291221004442998378">Nie ładuje się</translation>
 <translation id="6309219492973062892">Kliknij ikony 1–8 na półce</translation>
 <translation id="6315170314923504164">Głos</translation>
+<translation id="6324916366299863871">Edytuj skrót</translation>
 <translation id="6330012934079202188">Pokazuję okna ze wszystkich biurek, naciśnij klawisz strzałki w górę, aby wyświetlić okna z aktualnego biurka</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> jest sesją zarządzaną, którą zarządza <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Urządzenie <ph name="DEVICE_NAME" /> zostało połączone</translation>
@@ -1246,6 +1260,7 @@
 <translation id="639644700271529076">CAPS LOCK jest wyłączony</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Asystent Google</translation>
+<translation id="641817663353603351">Page Up</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, siła sygnału: <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">Wyczyść wszystkie powiadomienia</translation>
 <translation id="643147933154517414">Wszystko gotowe</translation>
@@ -1255,6 +1270,7 @@
 <translation id="6445915701151710649">cpu</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> zdarzenie</translation>
 <translation id="6449483711453944360">Aplikacje na Linuksa ani okna incognito nie są obecnie obsługiwane</translation>
+<translation id="6450245544201845082">Skrót symulujący kliknięcie prawym przyciskiem myszy jest obecnie wyłączony</translation>
 <translation id="6452181791372256707">Odrzuć</translation>
 <translation id="6453179446719226835">Język został zmieniony</translation>
 <translation id="6459472438155181876">Rozszerzanie ekranu na <ph name="DISPLAY_NAME" /></translation>
@@ -1378,6 +1394,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6972754398087986839">Rozpocznij</translation>
 <translation id="6979158407327259162">Dysk Google</translation>
+<translation id="6980402667292348590">Insert</translation>
 <translation id="6981291220124935078">Włącz dostęp</translation>
 <translation id="6981982820502123353">Ułatwienia dostępu</translation>
 <translation id="698231206551913481">Usunięcie tego użytkownika spowoduje trwałe usunięcie wszystkich związanych z nim plików i danych lokalnych.</translation>
@@ -1429,6 +1446,7 @@
 <translation id="7258828758145722155">Edytowane wczoraj</translation>
 <translation id="726276584504105859">Przeciągnij tutaj, by podzielić ekran</translation>
 <translation id="7262906531272962081">Utwórz przypomnienie</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + Backspace</translation>
 <translation id="7297440678881127227">Od <ph name="START_TIME" /> do
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1439,6 +1457,7 @@
 <translation id="7312210124139670355">Administrator resetuje Twoją kartę eSIM. Może to potrwać kilka minut.</translation>
 <translation id="7313193732017069507">Otwórz aparat</translation>
 <translation id="7316261577130609484">Dodaj nowe zadanie</translation>
+<translation id="7331646370422660166">Alt + strzałka w dół</translation>
 <translation id="7340731148882810149">Menu automatycznego klikania</translation>
 <translation id="7346909386216857016">Rozumiem</translation>
 <translation id="7348093485538360975">Klawiatura ekranowa</translation>
@@ -1484,6 +1503,7 @@
 <translation id="7513922695575567867">Kalendarz, tydzień do <ph name="DATE" />, obecnie wybrana jest data <ph name="SELECTED_DATE" />.</translation>
 <translation id="7514365320538308">Pobierz</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">Page Down</translation>
 <translation id="7519206258459640379">Kadrowanie jest włączone.</translation>
 <translation id="7519649142417630956">Po wyłączeniu urządzenia administrator zostanie wylogowany i nie będzie mógł nim sterować.
 
@@ -1855,6 +1875,7 @@
 <translation id="9126339866969410112">Cofnij ostatnią czynność</translation>
 <translation id="9133335900048457298">Nie można nagrać treści chronionej</translation>
 <translation id="9139720510312328767">Usuń następną literę</translation>
+<translation id="9151906066336345901">End</translation>
 <translation id="9161053988251441839">SUGEROWANE APLIKACJE</translation>
 <translation id="9168436347345867845">Później</translation>
 <translation id="9178475906033259337">Wyświetlam 1 wynik dla zapytania <ph name="QUERY" /></translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 8f735a0a..5cee0f87 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Não está carregando</translation>
 <translation id="6309219492973062892">Clicar ou tocar nos ícones de estante 1 a 8</translation>
 <translation id="6315170314923504164">Voz</translation>
+<translation id="6324916366299863871">Editar atalho</translation>
 <translation id="6330012934079202188">Mostrando janelas de todos os espaços de trabalho. Pressione a tecla de seta para cima para mostrar as do espaço de trabalho atual</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> é uma sessão gerenciada por <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> conectado</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index d564bf9..97c6fa3 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">Telemóvel: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">Boa tarde, <ph name="GIVEN_NAME" />,</translation>
 <translation id="1088231044944504242">Pesquise na categoria <ph name="CATEGORY" />, ficheiros, apps e muito mais. Use as teclas de seta para navegar nas suas apps.</translation>
+<translation id="1093645050124056515">ctrl + alt + seta para baixo</translation>
 <translation id="109942774857561566">Estou aborrecido</translation>
 <translation id="1104084341931202936">Mostrar definições de acessibilidade</translation>
 <translation id="1104621072296271835">Os seus dispositivos funcionam ainda melhor juntos</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">Pausa</translation>
 <translation id="1181037720776840403">Remover</translation>
 <translation id="1182225749592316782">Isto permite o acesso para todas as apps e Websites com as autorizações da câmara e do microfone</translation>
+<translation id="1182876754474670069">início</translation>
 <translation id="1183863904939664422">Não tenho interesse nesta sugestão</translation>
 <translation id="1184126796192815024">Esta rede não suporta apps de streaming do seu telemóvel. Experimente usar a zona Wi-Fi do telemóvel. <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">Introduzir palavra-passe ou PIN para uma maior segurança</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">Aceda ao espaço de trabalho de 1 a 8</translation>
 <translation id="1589090746204042747">Aceda a toda a sua atividade nesta sessão.</translation>
 <translation id="1592682369233288537">Espaço de trabalho seguinte: <ph name="NEXT_DESK_NAME" />, use Pesquisar + Espaço para ativar.</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + seta para baixo</translation>
 <translation id="1604857178818051494">Pausar o conteúdo multimédia</translation>
 <translation id="1610778689852195798">"Anular"</translation>
 <translation id="1611993646327628135">Ativado</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">Clicar para desbloquear</translation>
 <translation id="2023558322300866873">Pode parar a captura de pacotes em qualquer altura</translation>
 <translation id="2034971124472263449">Guardar mesmo assim</translation>
+<translation id="204259843076055848">O atalho para <ph name="SIX_PACK_KEY_NAME" /> está atualmente desativado</translation>
 <translation id="2049240716062114887">O nome do espaço de trabalho foi alterado para <ph name="DESK_NAME" />.</translation>
 <translation id="206377500836174974">Total</translation>
 <translation id="2064048859448024834">Pré-visualização da câmara ativada</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163">A app <ph name="UNAVAILABLE_APPS_ONE" /> e a app <ph name="UNAVAILABLE_APPS_TWO" /> não se encontram neste dispositivo.</translation>
 <translation id="2673968385134502798">Jogos</translation>
 <translation id="2678852583403169292">Menu da funcionalidade Selecionar para falar</translation>
+<translation id="2687510499067466116">O atalho de teclado foi alterado</translation>
 <translation id="2689613560355655046">Espaço de trabalho 8</translation>
 <translation id="2695305337569143674">Web</translation>
 <translation id="2697697418792422688">Veja as definições do teclado. Seleção: <ph name="KEYBOARD_NAME" />.</translation>
@@ -637,12 +642,14 @@
 <translation id="3738664582935948253">Já pode apresentar cliques e atalhos de teclado nas gravações de ecrã</translation>
 <translation id="3742055079367172538">Captura de ecrã efetuada</translation>
 <translation id="3756485814916578707">A transmitir o ecrã</translation>
+<translation id="3765841382945324995">O atalho para <ph name="SIX_PACK_KEY_NAME" /> foi atualizado de <ph name="NEW_SHORTCUT" /> para <ph name="OLD_SHORTCUT" /></translation>
 <translation id="3765841986579723851">Editado hoje</translation>
 <translation id="3773700760453577392">Um administrador não permitiu o início de sessão integrado para <ph name="USER_EMAIL" />. Todos os utilizadores têm de terminar sessão para continuar.</translation>
 <translation id="3779139509281456663">A ligar ao dispositivo <ph name="NAME" /></translation>
 <translation id="3781910048497807059">Mover o foco para o painel anterior</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">Bloquear</translation>
+<translation id="3796215473395753611">alt + seta para cima</translation>
 <translation id="3796746699333205839">Uma aplicação está a utilizar a sua câmara e microfone.</translation>
 <translation id="3798670284305777884">Altifalante (interno)</translation>
 <translation id="3799080171973636491">Premiu o atalho de teclado da lupa de ecrã inteiro. Quer ativá-la?</translation>
@@ -698,6 +705,7 @@
 <translation id="4026843240379844265">Mova a janela ativa entre ecrãs.</translation>
 <translation id="4028481283645788203">É necessária uma palavra-passe para uma maior segurança.</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + seta para a esquerda</translation>
 <translation id="4042660782729322247">Está a partilhar o seu ecrã</translation>
 <translation id="404437169852192935">As atualizações terminaram</translation>
 <translation id="4049230407053723315">Definições rápidas</translation>
@@ -719,6 +727,7 @@
 <translation id="4129129681837227511">Para ver notificações no ecrã de bloqueio, desbloqueie o mesmo para alterar a definição</translation>
 <translation id="4131973331381812765">Temperatura: <ph name="TEMPERATURE" /> °C – Velocidade atual: <ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" /> GHz</translation>
 <translation id="4136724716305260864">Ativada até ao nascer do sol</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + seta para a direita</translation>
 <translation id="4146671046252289537">Mover para o fim da próxima palavra</translation>
 <translation id="4146833061457621061">Tocar música</translation>
 <translation id="4150201353443180367">Visualização</translation>
@@ -865,6 +874,7 @@
 <translation id="4747410141429390146">Desbloqueie para ver as notificações</translation>
 <translation id="4752784485658729358">Só é permitido guardar 6 espaços de trabalho. Remova um espaço de trabalho para guardar um novo.</translation>
 <translation id="4759238208242260848">Transferências</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + seta para cima</translation>
 <translation id="4762573482154983647">Oculte as apps</translation>
 <translation id="4763885921995354846">Isto permite o acesso à câmara para todas as apps e Websites com a autorização da câmara. Pode ter de atualizar a página Web ou reiniciar a app.</translation>
 <translation id="4774338217796918551">Volte amanhã à(s) <ph name="COME_BACK_TIME" />.</translation>
@@ -946,6 +956,7 @@
 <translation id="5062496344832867502">ram</translation>
 <translation id="5068762093486106012">Vai receber uma notificação se falar enquanto estiver com o som desativado. O áudio nunca sai do seu dispositivo.</translation>
 <translation id="5078796286268621944">PIN incorreto</translation>
+<translation id="5083035541015925118">ctrl + alt + seta para cima</translation>
 <translation id="5083553833479578423">Desbloqueie mais funcionalidades do Assistente.</translation>
 <translation id="5092436659250499817">Ativar/desativar a retroiluminação do teclado</translation>
 <translation id="5094577350232361255">sobre</translation>
@@ -1067,6 +1078,7 @@
 <translation id="5590609058453685222">A chamada de atenção sobre a desativação do som está ativada. Vai receber uma notificação se falar enquanto estiver com o som desativado.</translation>
 <translation id="5596627076506792578">Mais opções</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">O atalho de teclado está desativado</translation>
 <translation id="5600837773213129531">Prima Ctrl + Alt + Z para desativar os feedback de voz.</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5618148318840095371">Mudámos a sua ligação para uma rede melhor</translation>
@@ -1086,6 +1098,7 @@
 <translation id="5678564054339031017">Mostrar semana seguinte</translation>
 <translation id="5679050765726761783">Transformador de baixo consumo ligado</translation>
 <translation id="5682642926269496722">O Assistente Google não está disponível para a conta do utilizador atual.</translation>
+<translation id="5689233503102158537">alt + retrocesso</translation>
 <translation id="5689633613396158040">A Luz noturna torna mais fácil olhar para o ecrã ou ler com pouca luz. Toque para alterar a hora em que a Luz noturna é ativada ou desativada totalmente.</translation>
 <translation id="5691772641933328258">Impressão digital não reconhecida</translation>
 <translation id="5693255400847650006">O microfone está a ser usado</translation>
@@ -1232,6 +1245,7 @@
 <translation id="6291221004442998378">Não está a carregar.</translation>
 <translation id="6309219492973062892">Clicar ou tocar nos ícones de 1 a 8 na prateleira</translation>
 <translation id="6315170314923504164">Voz</translation>
+<translation id="6324916366299863871">Editar atalho</translation>
 <translation id="6330012934079202188">Ao mostrar as janelas de todos os espaços de trabalho, prima a tecla da seta para cima para mostrar janelas do espaço de trabalho atual</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> é uma sessão gerida por <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Dispositivo <ph name="DEVICE_NAME" /> ligado</translation>
@@ -1246,6 +1260,7 @@
 <translation id="639644700271529076">CAPS LOCK está desativado</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Assistente Google</translation>
+<translation id="641817663353603351">página para cima</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />, intensidade do sinal: <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">Limpar todas as notificações</translation>
 <translation id="643147933154517414">Tudo concluído</translation>
@@ -1255,6 +1270,7 @@
 <translation id="6445915701151710649">cpu</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> evento</translation>
 <translation id="6449483711453944360">De momento, as apps para Linux e as janelas de navegação anónima não são suportadas</translation>
+<translation id="6450245544201845082">O atalho do clique com o botão direito do rato está atualmente desativado</translation>
 <translation id="6452181791372256707">Rejeitar</translation>
 <translation id="6453179446719226835">O idioma foi alterado</translation>
 <translation id="6459472438155181876">A prolongar ecrã para <ph name="DISPLAY_NAME" /></translation>
@@ -1379,6 +1395,7 @@
 <translation id="6965382102122355670">OK</translation>
 <translation id="6972754398087986839">Começar</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6980402667292348590">inserir</translation>
 <translation id="6981291220124935078">Ativar acesso</translation>
 <translation id="6981982820502123353">Acessibilidade</translation>
 <translation id="698231206551913481">Todos os ficheiros e dados locais associados a este utilizador são permanentemente eliminados assim que este utilizador é removido.</translation>
@@ -1430,6 +1447,7 @@
 <translation id="7258828758145722155">Editado ontem</translation>
 <translation id="726276584504105859">Arraste para aqui para utilizar o ecrã dividido</translation>
 <translation id="7262906531272962081">Criar lembrete</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + retrocesso</translation>
 <translation id="7297440678881127227">Da(s) <ph name="START_TIME" /> à(s)
         <ph name="END_TIME" />,
         <ph name="TIME_ZONE" />,
@@ -1440,6 +1458,7 @@
 <translation id="7312210124139670355">O seu administrador está a repor o eSIM. Esta ação pode demorar alguns minutos.</translation>
 <translation id="7313193732017069507">Expanda a câmara</translation>
 <translation id="7316261577130609484">Adicionar nova tarefa</translation>
+<translation id="7331646370422660166">alt + seta para baixo</translation>
 <translation id="7340731148882810149">Menu de cliques automáticos</translation>
 <translation id="7346909386216857016">OK</translation>
 <translation id="7348093485538360975">Teclado no ecrã</translation>
@@ -1485,6 +1504,7 @@
 <translation id="7513922695575567867">Atualmente, está selecionada a semana de <ph name="DATE" />, <ph name="SELECTED_DATE" />, do calendário.</translation>
 <translation id="7514365320538308">Transferir</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">página para baixo</translation>
 <translation id="7519206258459640379">O enquadramento da câmara está ativado.</translation>
 <translation id="7519649142417630956">Após o encerramento, a sessão do administrador vai ser terminada e esta não vai poder controlar o seu dispositivo.
 
@@ -1856,6 +1876,7 @@
 <translation id="9126339866969410112">Anular a última ação</translation>
 <translation id="9133335900048457298">Não é possível gravar conteúdo protegido</translation>
 <translation id="9139720510312328767">Eliminar a letra seguinte</translation>
+<translation id="9151906066336345901">fim</translation>
 <translation id="9161053988251441839">APLICAÇÕES SUGERIDAS</translation>
 <translation id="9168436347345867845">Fazer isto mais tarde</translation>
 <translation id="9178475906033259337">A apresentar 1 resultado para <ph name="QUERY" /></translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index fd9850df..da598011 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Nu se încarcă</translation>
 <translation id="6309219492973062892">Dă clic sau atinge pictogramele raftului 1 – 8</translation>
 <translation id="6315170314923504164">Voce</translation>
+<translation id="6324916366299863871">Editează o comandă rapidă</translation>
 <translation id="6330012934079202188">Se afișează ferestrele de pe toate desktopurile. Apasă tasta săgeată în sus pentru a afișa ferestrele de pe desktopul actual.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> este o sesiune gestionată de <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> s-a conectat</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index 40d6ab9..bd02915 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Не заряжается</translation>
 <translation id="6309219492973062892">Выбрать значок 1–8 на панели запуска</translation>
 <translation id="6315170314923504164">Микрофон</translation>
+<translation id="6324916366299863871">Изменить ярлык</translation>
 <translation id="6330012934079202188">Показаны окна со всех рабочих столов. Чтобы показать окна текущего рабочего стола, нажмите на стрелку вверх.</translation>
 <translation id="6338485349199627913">Сеансом "<ph name="DISPLAY_NAME" />" управляет <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Подключено устройство "<ph name="DEVICE_NAME" />".</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb
index b217bff..5395aea 100644
--- a/ash/strings/ash_strings_si.xtb
+++ b/ash/strings/ash_strings_si.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">ආරෝපණය නොවේ</translation>
 <translation id="6309219492973062892">1-8 දක්වා රාක්ක නිරූපක ක්ලික් කරන්න හෝ තට්ටු කරන්න</translation>
 <translation id="6315170314923504164">හඬ</translation>
+<translation id="6324916366299863871">කෙටිමඟ සංස්කරණය</translation>
 <translation id="6330012934079202188">සියලු මේසවලින් කවුළු පෙන්වමින්, වත්මන් මේසයෙන් කවුළු පෙන්වීමට ඉහළට ඊතලය යතුර ඔබන්න</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> යනු <ph name="MANAGER" /> විසින් කළමනාකරණය කරනු ලබන කළමනාකරණය කළ සැසියකි</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> සම්බන්ධිතයි</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index e4fc6e36..1d4ce25 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Nenabíja sa</translation>
 <translation id="6309219492973062892">Kliknutie alebo klepnutie na prvú až ôsmu ikonu poličky</translation>
 <translation id="6315170314923504164">Hlas</translation>
+<translation id="6324916366299863871">Upraviť skratku</translation>
 <translation id="6330012934079202188">Keď sa zobrazujú okná všetkých plôch, stlačením šípky nahor zobrazíte okná aktuálnej plochy</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je spravovaná relácia, ktorú riadi <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Bolo pripojené zariadenie <ph name="DEVICE_NAME" /></translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index a5a238a..dde25731 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Se ne polni</translation>
 <translation id="6309219492973062892">Klik ali dotik ikone polic od 1 do 8</translation>
 <translation id="6315170314923504164">Glasovne nastavitve</translation>
+<translation id="6324916366299863871">Urejanje bližnjice</translation>
 <translation id="6330012934079202188">Prikaz oken z vseh namizij, pritisnite tipko s puščico gor, če želite prikazati okna s trenutnega namizja</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je upravljana seja, ki jo upravlja domena <ph name="MANAGER" />.</translation>
 <translation id="6344138931392227467">Naprava <ph name="DEVICE_NAME" /> je povezana</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb
index 54faddd..8da4a177 100644
--- a/ash/strings/ash_strings_sq.xtb
+++ b/ash/strings/ash_strings_sq.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Nuk po karikohet</translation>
 <translation id="6309219492973062892">Kliko ose trokit tek ikonat e raftit 1-8</translation>
 <translation id="6315170314923504164">Voice</translation>
+<translation id="6324916366299863871">Modifiko shkurtoren</translation>
 <translation id="6330012934079202188">Po shfaqen dritaret nga të gjitha tavolinat e punës. Shtyp tastin "Shigjeta lart" për të shfaqur dritaret nga tavolina aktuale e punës</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> është sesion i menaxhuar që menaxhohet nga <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> u lidh</translation>
diff --git a/ash/strings/ash_strings_sr-Latn.xtb b/ash/strings/ash_strings_sr-Latn.xtb
index 7a301ce..33476790 100644
--- a/ash/strings/ash_strings_sr-Latn.xtb
+++ b/ash/strings/ash_strings_sr-Latn.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">Ne puni se</translation>
 <translation id="6309219492973062892">Kliknite na ikone police od 1 do 8 ili ih dodirnite</translation>
 <translation id="6315170314923504164">Glas</translation>
+<translation id="6324916366299863871">Izmeni prečicu</translation>
 <translation id="6330012934079202188">Prikazuju se prozori sa svih radnih površina. Pritisnite taster sa strelicom nagore da bi se prikazivali prozori sa aktuelne radne površine.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> je sesija kojom upravlja <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> – povezano</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index 6754b50..128da044 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">Не пуни се</translation>
 <translation id="6309219492973062892">Кликните на иконе полице од 1 до 8 или их додирните</translation>
 <translation id="6315170314923504164">Глас</translation>
+<translation id="6324916366299863871">Измени пречицу</translation>
 <translation id="6330012934079202188">Приказују се прозори са свих радних површина. Притисните тастер са стрелицом нагоре да би се приказивали прозори са актуелне радне површине.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> је сесија којом управља <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> – повезанo</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index a76723c..b52b4ed 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Laddar inte</translation>
 <translation id="6309219492973062892">Klicka eller tryck på hyllikon 1–8</translation>
 <translation id="6315170314923504164">Mikrofon</translation>
+<translation id="6324916366299863871">Redigera genväg</translation>
 <translation id="6330012934079202188">Visar fönster från alla skrivbord, tryck på uppåtpilen för att visa fönster från det aktuella skrivbordet</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> är en hanterad session som hanteras av <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> har anslutits</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index 552027a..1b28377 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Haichaji</translation>
 <translation id="6309219492973062892">Bofya au gusa aikoni ya rafu ya 1 hadi 8</translation>
 <translation id="6315170314923504164">Sauti</translation>
+<translation id="6324916366299863871">Badilisha njia ya mkato</translation>
 <translation id="6330012934079202188">Inaonyesha madirisha yaliyo kwenye maeneokazi yote, bonyeza kishale cha Juu ili uonyeshe madirisha yaliyo kwenye eneokazi la sasa</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> ni kipindi kinachodhibitiwa ambacho kinadhibitiwa na <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> imeunganishwa</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index f749af59..5ad81a3 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -352,7 +352,7 @@
 <translation id="2531025035050312891">சாதனம் மெதுவாகச் செயல்படுகிறது</translation>
 <translation id="2531107890083353124">பக்கத்தை இழுக்கும்போது <ph name="KEY_ONE" /> அழுத்தவும்</translation>
 <translation id="254900897760075745">தேர்ந்தெடுத்துள்ள உள்ளடக்கத்தைக் கிளிப்போர்டுக்கு நகலெடுக்கும்</translation>
-<translation id="2549711466868162843">லைட்டிங்கை மேம்படுத்து</translation>
+<translation id="2549711466868162843">வெளிச்சம் சரிசெய்தல்</translation>
 <translation id="2549985041256363841">பதிவுசெய்யத் தொடங்கு</translation>
 <translation id="255671100581129685">பொது அமர்வில் Google அசிஸ்டண்ட்டைப் பயன்படுத்த முடியாது.</translation>
 <translation id="256712445991462162">டாக் செய்யப்பட்ட பெரிதாக்கி</translation>
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">சார்ஜ் ஏறவில்லை</translation>
 <translation id="6309219492973062892">1-8 வரையிலான ஷெல்ஃப் ஐகான்களைக் கிளிக் செய் அல்லது தட்டு</translation>
 <translation id="6315170314923504164">Voice</translation>
+<translation id="6324916366299863871">ஷார்ட்கட்டைத் திருத்து</translation>
 <translation id="6330012934079202188">எல்லா டெஸ்க்குகளிலும் உள்ள சாளரங்களைக் காட்டுகிறது, தற்போதைய டெஸ்க்கில் உள்ள சாளரங்களைக் காட்ட, மேல்நோக்கிய அம்புக்குறி விசையை அழுத்தவும்</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> என்பது நிர்வகிக்கப்பட்ட ஓர் அமர்வாகும், <ph name="MANAGER" /> இதை நிர்வகிக்கிறது</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> இணைக்கப்பட்டது</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index 76b1d88..45b4695 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -1233,6 +1233,7 @@
 <translation id="6291221004442998378">ఛార్జ్ కావడం లేదు</translation>
 <translation id="6309219492973062892">1-8 షెల్ఫ్ చిహ్నాలను క్లిక్ లేదా ట్యాప్ చేయండి</translation>
 <translation id="6315170314923504164">Voice</translation>
+<translation id="6324916366299863871">షార్ట్‌కట్‌ను ఎడిట్ చేయండి</translation>
 <translation id="6330012934079202188">అన్ని డెస్క్‌ల నుండి విండోలను చూపుతోంది, ప్రస్తుత డెస్క్ నుండి విండోలను చూపడానికి పై వైపు బాణం కీని నొక్కండి</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> అనేది ఒక మేనేజ్ చేయబడిన సెషన్, దీనిని <ph name="MANAGER" /> మేనేజ్ చేస్తోంది</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> కనెక్ట్ చేయబడింది</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index 58eca2a..f29b316f74 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -1228,6 +1228,7 @@
 <translation id="6291221004442998378">ไม่ได้เสียบชาร์จ</translation>
 <translation id="6309219492973062892">คลิกหรือแตะไอคอนแถบ 1-8</translation>
 <translation id="6315170314923504164">เสียง</translation>
+<translation id="6324916366299863871">แก้ไขทางลัด</translation>
 <translation id="6330012934079202188">กำลังแสดงหน้าต่างจากเดสก์ทั้งหมด กดปุ่มลูกศรขึ้นเพื่อแสดงหน้าต่างจากเดสก์ปัจจุบัน</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> เป็นเซสชันที่มีการจัดการซึ่งจัดการโดย <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">เชื่อมต่อ <ph name="DEVICE_NAME" /> แล้ว</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index 3128924..52e2cc1e 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Şarj olmuyor</translation>
 <translation id="6309219492973062892">Raf simgelerine (1-8) dokunun veya tıklayın</translation>
 <translation id="6315170314923504164">Ses</translation>
+<translation id="6324916366299863871">Kısayolu düzenleyin</translation>
 <translation id="6330012934079202188">Tüm masalardaki pencereler gösteriliyor, mevcut masadaki pencerelerin gösterilmesi için Yukarı ok tuşuna basın</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" />, <ph name="MANAGER" /> tarafından yönetilen bir oturumdur</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> bağlandı</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 33a9910..dbb67a3 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Не заряджається</translation>
 <translation id="6309219492973062892">Натиснути значки 1–8 на панелі запуску</translation>
 <translation id="6315170314923504164">Голос</translation>
+<translation id="6324916366299863871">Змінити ярлик</translation>
 <translation id="6330012934079202188">Показано вікна всіх робочих столів. Щоб показати вікна поточного робочого столу, натисніть клавішу зі стрілкою вгору.</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> – сеанс, яким керує <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Пристрій <ph name="DEVICE_NAME" /> під’єднано</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb
index e6d04b5..f0d4e053 100644
--- a/ash/strings/ash_strings_ur.xtb
+++ b/ash/strings/ash_strings_ur.xtb
@@ -25,6 +25,7 @@
 <translation id="108486256082349153">سیلولر: <ph name="ADDRESS" /></translation>
 <translation id="1087110696012418426">سہ پہر بخیر <ph name="GIVEN_NAME" />،</translation>
 <translation id="1088231044944504242">اپنی <ph name="CATEGORY" />، فائلز، ایپس اور بہت کچھ تلاش کریں۔ اپنی ایپس کو نیویگیٹ کرنے کے لیے تیر کے نشان والی کلیدیں استعمال کریں۔</translation>
+<translation id="1093645050124056515">‏ctrl + alt + نیچے تیر کا نشان</translation>
 <translation id="109942774857561566">مجھے بوریت ہو رہی ہے</translation>
 <translation id="1104084341931202936">ایکسیسبیلٹی کی ترتیبات دکھائیں</translation>
 <translation id="1104621072296271835">آپ کے آلات مل کر اور بہتر کام کرتے ہیں</translation>
@@ -43,6 +44,7 @@
 <translation id="1178581264944972037">موقوف کریں</translation>
 <translation id="1181037720776840403">ہٹائیں</translation>
 <translation id="1182225749592316782">اس سے کیمرے اور مائیکروفون کی اجازتوں کے ساتھ تمام ایپس اور ویب سائٹس تک رسائی کی اجازت ملتی ہے</translation>
+<translation id="1182876754474670069">گھر</translation>
 <translation id="1183863904939664422">اس تجویز میں کوئی دلچسپی نہیں</translation>
 <translation id="1184126796192815024">یہ نیٹ ورک آپ کے فون سے اسٹریمنگ ایپس کا تعاون نہیں کرتا ہے۔ اپنے فون کا ہاٹ اسپاٹ استعمال کر کے دیکھیں۔ <ph name="LEARN_MORE" /></translation>
 <translation id="118437560755358292">‏مزید سیکیورٹی کے لیے پاس ورڈ یا PIN درج کریں</translation>
@@ -147,6 +149,7 @@
 <translation id="1586324912145647027">ڈیسک 1 سے 8 پر جائیں</translation>
 <translation id="1589090746204042747">اس سیشن کی اپنی ہر سرگرمی تک رسائی حاصل کریں</translation>
 <translation id="1592682369233288537">‏اگلا ڈیسک: <ph name="NEXT_DESK_NAME" />، فعال کرنے کے لیے Search+Space استعمال کریں۔</translation>
+<translation id="1602874809115667351"><ph name="LAUNCHER_KEY_NAME" /> + نیچے تیر کا نشان</translation>
 <translation id="1604857178818051494">میڈیا موقوف کریں</translation>
 <translation id="1610778689852195798">"کالعدم کریں"</translation>
 <translation id="1611993646327628135">آن</translation>
@@ -249,6 +252,7 @@
 <translation id="2021864487439853900">غیر مقفل کرنے کے لیے کلک کریں</translation>
 <translation id="2023558322300866873">آپ کسی بھی وقت پیکٹ کیپچر کو روک سکتے ہیں</translation>
 <translation id="2034971124472263449">بہرحال محفوظ کریں</translation>
+<translation id="204259843076055848"><ph name="SIX_PACK_KEY_NAME" /> کا شارٹ کٹ فی الحال آف ہے</translation>
 <translation id="2049240716062114887">ڈیسک کا نام تبدیل کر کے <ph name="DESK_NAME" /> کر دیا گیا۔</translation>
 <translation id="206377500836174974">فُل</translation>
 <translation id="2064048859448024834">کیمرا کا پیش منظر آن ہے</translation>
@@ -381,6 +385,7 @@
 <translation id="2665788051462227163"><ph name="UNAVAILABLE_APPS_ONE" />، اور <ph name="UNAVAILABLE_APPS_TWO" /> اس آلہ پر موجود نہیں ہیں۔</translation>
 <translation id="2673968385134502798">گیمز</translation>
 <translation id="2678852583403169292">سننے کیلئے منتخب کریں کا مینیو</translation>
+<translation id="2687510499067466116">کی بورڈ شارٹ کٹ تبدیل ہو گیا ہے</translation>
 <translation id="2689613560355655046">ڈیسک 8</translation>
 <translation id="2695305337569143674">ویب</translation>
 <translation id="2697697418792422688">کی بورڈ کی ترتیبات دکھائیں۔ <ph name="KEYBOARD_NAME" /> کو منتخب کیا گیا ہے۔</translation>
@@ -637,12 +642,14 @@
 <translation id="3738664582935948253">اب آپ اسکرین ریکارڈنگز میں کلکس اور کی بورڈ شارٹ کٹس دکھا سکتے ہیں</translation>
 <translation id="3742055079367172538">اسکرین شاٹ لی گئی</translation>
 <translation id="3756485814916578707">اسکرین کاسٹ ہو رہی ہے</translation>
+<translation id="3765841382945324995"><ph name="SIX_PACK_KEY_NAME" /> شارٹ کٹ کو <ph name="OLD_SHORTCUT" /> سے <ph name="NEW_SHORTCUT" /> میں اپ ڈیٹ کیا گیا ہے</translation>
 <translation id="3765841986579723851">آج ترمیم کیا گیا</translation>
 <translation id="3773700760453577392">منتظم نے <ph name="USER_EMAIL" /> کیلئے متعدد سائن ان کی اجازت نہیں دی ہے۔ جاری رکھنے کیلئے تمام صارفین کا سائن آؤٹ کرنا لازمی ہے۔</translation>
 <translation id="3779139509281456663"><ph name="NAME" /> کو منسلک کیا جا رہا ہے</translation>
 <translation id="3781910048497807059">فوکس کو گزشتہ پین پر منتقل کریں</translation>
 <translation id="3783640748446814672">alt</translation>
 <translation id="3784455785234192852">مقفل کریں</translation>
+<translation id="3796215473395753611">‏alt + اوپر تیر کا نشان</translation>
 <translation id="3796746699333205839">ایک ایپلیکیشن آپ کا کیمرا اور مائیکروفون استعمال کر رہی ہے</translation>
 <translation id="3798670284305777884">اسپیکر (داخلی)</translation>
 <translation id="3799080171973636491">آپ نے پوری اسکرین کے مکبّر کیلئے کی بورڈ شارٹ کٹ دبایا ہے۔ کیا آپ اسے آن کرنا چاہتے ہیں؟</translation>
@@ -698,6 +705,7 @@
 <translation id="4026843240379844265">فعال ونڈو کو ڈسپلیز کے درمیان منتقل کریں</translation>
 <translation id="4028481283645788203">مزید سیکیورٹی کیلئے پاس ورڈ درکار ہے</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="4032988577476260673"><ph name="LAUNCHER_KEY_NAME" /> + بائیں تیر کا نشان</translation>
 <translation id="4042660782729322247">آپ اپنی اسکرین کا اشتراک کر رہے ہیں</translation>
 <translation id="404437169852192935">اپ ڈیٹس ختم ہو گئیں</translation>
 <translation id="4049230407053723315">فوری ترتیبات</translation>
@@ -719,6 +727,7 @@
 <translation id="4129129681837227511">اپنی مقفل اسکرین پر اطلاعات دیکھنے کیلئے، ترتیب تبدیل کرنے کیلئے غیر مقفل کریں</translation>
 <translation id="4131973331381812765">‏درجہ حرارت: ‎°C<ph name="TEMPERATURE" /> - موجودہ رفتار: GHz<ph name="CPU_AVERAGE_CURRENT_FREQUENCY_GHZ" /></translation>
 <translation id="4136724716305260864">طلوع آفتاب تک آن کریں</translation>
+<translation id="4141710407113804517"><ph name="LAUNCHER_KEY_NAME" /> + دائیں تیر کا نشان</translation>
 <translation id="4146671046252289537">اگلے لفظ کے آخر میں جائیں</translation>
 <translation id="4146833061457621061">موسیقی چلائیں</translation>
 <translation id="4150201353443180367">ڈسپلے</translation>
@@ -865,6 +874,7 @@
 <translation id="4747410141429390146">اطلاعات دیکھنے کے لیے براہ کرم غیر مقفل کریں</translation>
 <translation id="4752784485658729358">صرف 6 محفوظ کردہ ڈیسکس کی اجازت ہے۔ نئی محفوظ کرنے کے لیے ڈیسک کو ہٹا دیں۔</translation>
 <translation id="4759238208242260848">ڈاؤن لوڈز</translation>
+<translation id="4762160261012420470"><ph name="LAUNCHER_KEY_NAME" /> + اوپر تیر کا نشان</translation>
 <translation id="4762573482154983647">ایپس چھپائیں</translation>
 <translation id="4763885921995354846">اس سے کیمرے کی اجازت کے ساتھ تمام ایپس اور ویب سائٹس کے لیے کیمرے تک رسائی کی اجازت ملتی ہے۔ آپ کو ویب صفحہ کو ریفریش کرنے یا ایپ کو دوبارہ شروع کرنے کی ضرورت پڑ سکتی ہے۔</translation>
 <translation id="4774338217796918551">کل <ph name="COME_BACK_TIME" /> پر پھر استعمال کریں۔</translation>
@@ -946,6 +956,7 @@
 <translation id="5062496344832867502">RAM</translation>
 <translation id="5068762093486106012">اگر آپ خاموش وضع میں رہتے ہوئے بات کرتے ہیں تو آپ کو مطلع کر دیا جائے گا۔ آڈیو آپ کے آلے سے باہر نہیں جاتی ہے۔</translation>
 <translation id="5078796286268621944">‏غلط PIN</translation>
+<translation id="5083035541015925118">‏ctrl + alt + اوپر تیر کا نشان</translation>
 <translation id="5083553833479578423">اسسٹنٹ کی مزید خصوصیات کو غیر مقفل کریں۔</translation>
 <translation id="5092436659250499817">کی بورڈ کی بیک لائٹ آن/آف کریں</translation>
 <translation id="5094577350232361255">تقریباً</translation>
@@ -1067,6 +1078,7 @@
 <translation id="5590609058453685222">'یاد دہانی خاموش کریں' آن ہے۔ اگر آپ خاموش وضع میں رہتے ہوئے بات کرتے ہیں تو آپ کو مطلع کر دیا جائے گا۔</translation>
 <translation id="5596627076506792578">مزید اختیارات</translation>
 <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation>
+<translation id="5599242528220103262">کی بورڈ شارٹ کٹ آف ہے</translation>
 <translation id="5600837773213129531">‏صوتی تاثرات کو غیر فعال کرنے کے لیے Ctrl + Alt + Z دبائیں۔</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5618148318840095371">ہم نے آپ کو بہتر نیٹ ورک پر سوئچ کر دیا ہے</translation>
@@ -1086,6 +1098,7 @@
 <translation id="5678564054339031017">اگلا ہفتہ دکھائیں</translation>
 <translation id="5679050765726761783">کم پاور ایڈاپٹر منسلک ہوگیا</translation>
 <translation id="5682642926269496722">‏Google اسسٹنٹ موجودہ صارف اکاؤنٹ کے لیے دستیاب نہیں ہے۔</translation>
+<translation id="5689233503102158537">alt + backspace</translation>
 <translation id="5689633613396158040">نائٹ لائٹ سے مدھم روشنی میں اپنی اسکرین کو دیکھنا یا پڑھنا آسان ہو جاتا ہے۔ نائٹ لائٹ کے آن ہونے کے وقت کو تبدیل کرنے کے لئے تھپتھپائیں یا اسے مکمل طور پر آف کر دیں۔</translation>
 <translation id="5691772641933328258">فنگر پرنٹ کی شناخت نہیں ہو سکی</translation>
 <translation id="5693255400847650006">مائیکروفون استعمال میں ہے</translation>
@@ -1232,6 +1245,7 @@
 <translation id="6291221004442998378">چارج نہیں ہو رہا ہے</translation>
 <translation id="6309219492973062892">شیلف آئیکنز ‏1-8 پر کلک کریں یا تھپتھپائیں</translation>
 <translation id="6315170314923504164">آواز</translation>
+<translation id="6324916366299863871">شارٹ کٹ میں ترمیم کریں</translation>
 <translation id="6330012934079202188">تمام ڈیسکس سے ونڈوز دکھائی جا رہی ہیں موجودہ ڈیسک سے ونڈوز کو دکھانے کے لیے اوپر تیر کے نشان والی کلید دبائیں</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> <ph name="MANAGER" /> کے زیر انتظام ایک نظم کردہ سیشن ہے</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> منسلک ہے</translation>
@@ -1246,6 +1260,7 @@
 <translation id="639644700271529076">‏CAPS LOCK آف ہے</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">‏Google اسسٹنٹ</translation>
+<translation id="641817663353603351">page up</translation>
 <translation id="6424520630891723617"><ph name="SECURITY_STATUS" />، سگنل کی مضبوطی <ph name="SIGNAL_STRENGTH" /></translation>
 <translation id="642644398083277086">تمام اطلاعات صاف کریں</translation>
 <translation id="643147933154517414">سب ہو گیا</translation>
@@ -1255,6 +1270,7 @@
 <translation id="6445915701151710649">CPU</translation>
 <translation id="6447111710783417522"><ph name="DATE" />، <ph name="NUMBER" /> ایونٹ</translation>
 <translation id="6449483711453944360">‏Linux ایپس اور پوشیدگی ونڈوز فی الحال تعاون یافتہ نہیں ہیں</translation>
+<translation id="6450245544201845082">دائیں کلک کا شارٹ کٹ فی الحال آف ہے</translation>
 <translation id="6452181791372256707">مسترد کریں</translation>
 <translation id="6453179446719226835">زبان تبدیل ہو گئی ہے</translation>
 <translation id="6459472438155181876">اسکرین کو <ph name="DISPLAY_NAME" /> میں پھیلایا جا رہا ہے</translation>
@@ -1378,6 +1394,7 @@
 <translation id="6965382102122355670">ٹھیک ہے</translation>
 <translation id="6972754398087986839">شروع کریں</translation>
 <translation id="6979158407327259162">Google Drive</translation>
+<translation id="6980402667292348590">insert</translation>
 <translation id="6981291220124935078">رسائی آن کریں</translation>
 <translation id="6981982820502123353">ایکسیسبیلٹی</translation>
 <translation id="698231206551913481">اس صارف کو ہٹانے کے بعد اس صارف کے ساتھ وابستہ سبھی فائلیں اور مقامی ڈیٹا کو مستقل طور پر حذف کر دیا جائے گا۔</translation>
@@ -1429,6 +1446,7 @@
 <translation id="7258828758145722155">کل ترمیم کیا گیا</translation>
 <translation id="726276584504105859">اسپلٹ اسکرین استعمال کرنے کیلئے یہاں گھسیٹیں</translation>
 <translation id="7262906531272962081">یاد دہانی تخلیق کریں</translation>
+<translation id="7278787617901301220"><ph name="LAUNCHER_KEY_NAME" /> + backspace</translation>
 <translation id="7297440678881127227">‏<ph name="START_TIME" /> سے
         <ph name="END_TIME" />،
         <ph name="TIME_ZONE" />،
@@ -1439,6 +1457,7 @@
 <translation id="7312210124139670355">‏آپ کا منتظم آپ کی eSIM کو ری سیٹ کر رہا ہے۔ اس میں چند منٹ لگ سکتے ہیں۔</translation>
 <translation id="7313193732017069507">کیمرا پھیلائیں</translation>
 <translation id="7316261577130609484">نیا ٹاسک شامل کریں</translation>
+<translation id="7331646370422660166">‏alt + نیچے تیر کا نشان</translation>
 <translation id="7340731148882810149">خودکار کلکس مینیو</translation>
 <translation id="7346909386216857016">ٹھیک ہے، سمجھ آ گئی</translation>
 <translation id="7348093485538360975">آن اسکرین کی بورڈ</translation>
@@ -1484,6 +1503,7 @@
 <translation id="7513922695575567867">کیلنڈر، <ph name="DATE" /> والا ہفتہ، فی الحال <ph name="SELECTED_DATE" /> کو منتخب کیا گیا ہے۔</translation>
 <translation id="7514365320538308">ڈاؤن لوڈ کریں</translation>
 <translation id="7515998400212163428">Android</translation>
+<translation id="7516641972665276706">page down</translation>
 <translation id="7519206258459640379">کیمرا فریمنگ آن ہے۔</translation>
 <translation id="7519649142417630956">شٹ ڈاؤن ہونے کے بعد منتظم کو لاگ آؤٹ کر دیا جائے گا اور آپ کے آلہ کو کنٹرول نہیں کر پائیں گے۔
 
@@ -1855,6 +1875,7 @@
 <translation id="9126339866969410112">پچھلی کارروائی کالعدم کریں</translation>
 <translation id="9133335900048457298">تحفظ یافتہ مواد کو ریکارڈ نہیں کیا جا سکتا</translation>
 <translation id="9139720510312328767">اگلا حرف حذف کریں</translation>
+<translation id="9151906066336345901">end</translation>
 <translation id="9161053988251441839">تجویز کردہ ایپس</translation>
 <translation id="9168436347345867845">اسے بعد میں کریں</translation>
 <translation id="9178475906033259337"><ph name="QUERY" /> کا 1 نتیجہ دکھایا جا رہا ہے</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index edeaf35..7d9ef33 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Quvvat olmayapti</translation>
 <translation id="6309219492973062892">Ishga tushirish panelida 1–8 gacha belgilarni tanlang</translation>
 <translation id="6315170314923504164">Ovoz</translation>
+<translation id="6324916366299863871">Yorliqni tahrirlash</translation>
 <translation id="6330012934079202188">Barcha ish stollar oynalari chiqarilgan, joriy ish stoli oynalarini chiqarish uchun yuqoriga strelkani bosing</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> seansi <ph name="MANAGER" /> domenida boshqariladi</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> ulandi</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index 7846103..53b8bf6 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Hiện không sạc</translation>
 <translation id="6309219492973062892">Nhấp hoặc nhấn vào các biểu tượng từ 1 – 8 trên kệ</translation>
 <translation id="6315170314923504164">Thoại</translation>
+<translation id="6324916366299863871">Chỉnh sửa phím tắt</translation>
 <translation id="6330012934079202188">Đang hiển thị các cửa sổ của mọi không gian làm việc, hãy nhấn phím Mũi tên lên để hiển thị các cửa sổ của không gian làm việc hiện tại</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> là phiên do <ph name="MANAGER" /> quản lý</translation>
 <translation id="6344138931392227467">Đã kết nối <ph name="DEVICE_NAME" /></translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index 8d46093..a995156 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">未在充电</translation>
 <translation id="6309219492973062892">点击或点按任务栏图标 1-8</translation>
 <translation id="6315170314923504164">语音</translation>
+<translation id="6324916366299863871">修改快捷方式</translation>
 <translation id="6330012934079202188">正在显示所有桌面中的窗口,按向上键即可显示当前桌面中的窗口</translation>
 <translation id="6338485349199627913">“<ph name="DISPLAY_NAME" />”是一个由 <ph name="MANAGER" /> 管理的受管理自助服务终端</translation>
 <translation id="6344138931392227467">已连接到“<ph name="DEVICE_NAME" />”</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index f7de86f..28faad10 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -1231,6 +1231,7 @@
 <translation id="6291221004442998378">非充電中</translation>
 <translation id="6309219492973062892">點擊或輕按捷徑列圖示 1-8</translation>
 <translation id="6315170314923504164">語音</translation>
+<translation id="6324916366299863871">編輯捷徑</translation>
 <translation id="6330012934079202188">顯示緊來自所有桌面嘅視窗,㩒向上箭咀掣就可以顯示來自目前桌面嘅視窗</translation>
 <translation id="6338485349199627913">「<ph name="DISPLAY_NAME" />」是由 <ph name="MANAGER" /> 管理的工作階段</translation>
 <translation id="6344138931392227467">已連結 <ph name="DEVICE_NAME" /></translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 27e34bee..b45faf6 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -1229,6 +1229,7 @@
 <translation id="6291221004442998378">非充電中</translation>
 <translation id="6309219492973062892">點選或輕觸檔案櫃圖示 1-8</translation>
 <translation id="6315170314923504164">語音</translation>
+<translation id="6324916366299863871">編輯捷徑</translation>
 <translation id="6330012934079202188">現在是以所有桌面模式查看視窗,按下向上鍵即可改以目前的桌面模式查看視窗</translation>
 <translation id="6338485349199627913">「<ph name="DISPLAY_NAME" />」是由 <ph name="MANAGER" /> 管理的工作階段</translation>
 <translation id="6344138931392227467">已連結「<ph name="DEVICE_NAME" />」</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb
index f18ed4a..adc98ea 100644
--- a/ash/strings/ash_strings_zu.xtb
+++ b/ash/strings/ash_strings_zu.xtb
@@ -1232,6 +1232,7 @@
 <translation id="6291221004442998378">Ayishaji</translation>
 <translation id="6309219492973062892">Chofoza noma thepha izithonjana zeshelufu elingu-1-8</translation>
 <translation id="6315170314923504164">Izwi</translation>
+<translation id="6324916366299863871">Hlela isinqamuleli</translation>
 <translation id="6330012934079202188">Ukuze ubonise amawindi kusuka kuwo wonke amatafula, cindezela ukhiye Womcibisholo waphezulu ukuze ubonise amawindi kusuka etafuleni lamanje</translation>
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> iseshini ephethwe ngu-<ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">I-<ph name="DEVICE_NAME" /> ixhunyiwe</translation>
diff --git a/ash/system/accessibility/accessibility_detailed_view_pixeltest.cc b/ash/system/accessibility/accessibility_detailed_view_pixeltest.cc
index d2c7f5f..8b34ff4 100644
--- a/ash/system/accessibility/accessibility_detailed_view_pixeltest.cc
+++ b/ash/system/accessibility/accessibility_detailed_view_pixeltest.cc
@@ -61,7 +61,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "check_view",
-      /*revision_number=*/2, detailed_view_container));
+      /*revision_number=*/3, detailed_view_container));
 }
 
 }  // namespace ash
diff --git a/ash/system/audio/audio_detailed_view_pixeltest.cc b/ash/system/audio/audio_detailed_view_pixeltest.cc
index b4a4700..08bd494 100644
--- a/ash/system/audio/audio_detailed_view_pixeltest.cc
+++ b/ash/system/audio/audio_detailed_view_pixeltest.cc
@@ -49,7 +49,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "qs_audio_detailed_view",
-      /*revision_number=*/4, detailed_view));
+      /*revision_number=*/5, detailed_view));
 }
 
 }  // namespace ash
diff --git a/ash/system/bluetooth/bluetooth_detailed_view_impl_pixeltest.cc b/ash/system/bluetooth/bluetooth_detailed_view_impl_pixeltest.cc
index 93c9072..3fd9b92 100644
--- a/ash/system/bluetooth/bluetooth_detailed_view_impl_pixeltest.cc
+++ b/ash/system/bluetooth/bluetooth_detailed_view_impl_pixeltest.cc
@@ -93,7 +93,7 @@
   // Compare pixels.
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "check_view",
-      /*revision_number=*/2, detailed_view));
+      /*revision_number=*/3, detailed_view));
 }
 
 }  // namespace
diff --git a/ash/system/bluetooth/bluetooth_detailed_view_legacy_pixeltest.cc b/ash/system/bluetooth/bluetooth_detailed_view_legacy_pixeltest.cc
index 16e05751..2c4c397 100644
--- a/ash/system/bluetooth/bluetooth_detailed_view_legacy_pixeltest.cc
+++ b/ash/system/bluetooth/bluetooth_detailed_view_legacy_pixeltest.cc
@@ -95,7 +95,7 @@
   // Compare pixels.
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "bluetooth_detailed_view_legacy",
-      /*revision_number=*/1, detailed_view_container));
+      /*revision_number=*/2, detailed_view_container));
 }
 
 }  // namespace ash
diff --git a/ash/system/brightness/display_detailed_view_pixeltest.cc b/ash/system/brightness/display_detailed_view_pixeltest.cc
index 00e17f7..a2940ca 100644
--- a/ash/system/brightness/display_detailed_view_pixeltest.cc
+++ b/ash/system/brightness/display_detailed_view_pixeltest.cc
@@ -49,7 +49,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "qs_display_detailed_view",
-      /*revision_number=*/4, detailed_view));
+      /*revision_number=*/5, detailed_view));
 }
 
 }  // namespace ash
diff --git a/ash/system/cast/cast_detailed_view_pixeltest.cc b/ash/system/cast/cast_detailed_view_pixeltest.cc
index 1a6f63e0..1d06eea8 100644
--- a/ash/system/cast/cast_detailed_view_pixeltest.cc
+++ b/ash/system/cast/cast_detailed_view_pixeltest.cc
@@ -66,7 +66,7 @@
   ASSERT_TRUE(detailed_view);
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "check_view",
-      /*revision_number=*/3, detailed_view));
+      /*revision_number=*/4, detailed_view));
 }
 
 }  // namespace
diff --git a/ash/system/cast/cast_zero_state_view_pixeltest.cc b/ash/system/cast/cast_zero_state_view_pixeltest.cc
index 4f04841..d7bdd9220 100644
--- a/ash/system/cast/cast_zero_state_view_pixeltest.cc
+++ b/ash/system/cast/cast_zero_state_view_pixeltest.cc
@@ -51,7 +51,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "cast_zero_state_view",
-      /*revision_number=*/5, detailed_view));
+      /*revision_number=*/6, detailed_view));
 }
 
 }  // namespace ash
diff --git a/ash/system/ime/ime_detailed_view_pixeltest.cc b/ash/system/ime/ime_detailed_view_pixeltest.cc
index dac922c..1f9efe8 100644
--- a/ash/system/ime/ime_detailed_view_pixeltest.cc
+++ b/ash/system/ime/ime_detailed_view_pixeltest.cc
@@ -69,7 +69,7 @@
   ASSERT_TRUE(detailed_view);
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "check_view",
-      /*revision_number=*/3, detailed_view));
+      /*revision_number=*/4, detailed_view));
 }
 
 }  // namespace
diff --git a/ash/system/locale/locale_detailed_view_pixeltest.cc b/ash/system/locale/locale_detailed_view_pixeltest.cc
index 5a17e4e..a01960ba 100644
--- a/ash/system/locale/locale_detailed_view_pixeltest.cc
+++ b/ash/system/locale/locale_detailed_view_pixeltest.cc
@@ -60,7 +60,7 @@
   ASSERT_TRUE(detailed_view);
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "check_view",
-      /*revision_number=*/3, detailed_view));
+      /*revision_number=*/4, detailed_view));
 }
 
 }  // namespace
diff --git a/ash/system/message_center/ash_notification_view_pixeltest.cc b/ash/system/message_center/ash_notification_view_pixeltest.cc
index 9c54d80..97c8bca9 100644
--- a/ash/system/message_center/ash_notification_view_pixeltest.cc
+++ b/ash/system/message_center/ash_notification_view_pixeltest.cc
@@ -150,7 +150,7 @@
   EXPECT_TRUE(close_button->HasFocus());
   EXPECT_EQ(control_buttons_layer->opacity(), 1);
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
-      "close_button_focused", /*revision_number=*/1, notification_view));
+      "close_button_focused", /*revision_number=*/2, notification_view));
 }
 
 TEST_P(AshNotificationViewPixelTest, ExpandButtonDisabledState) {
@@ -242,7 +242,7 @@
   // Compare pixels.
   const std::string screenshot_name = GetScreenshotName();
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
-      screenshot_name, /*revision_number=*/1, notification_view));
+      screenshot_name, /*revision_number=*/2, notification_view));
 }
 
 class ScreenCaptureNotificationPixelTest
@@ -319,7 +319,7 @@
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       base::StrCat({"screen_capture_popup_notification_",
                     GetDisplayTypeName(GetDisplayType())}),
-      /*revision_number=*/4,
+      /*revision_number=*/5,
       test_api()->GetPopupViewForId(kScreenCaptureNotificationId)));
 }
 
diff --git a/ash/system/network/network_detailed_network_view_pixeltest.cc b/ash/system/network/network_detailed_network_view_pixeltest.cc
index 93425a8..f8698a78 100644
--- a/ash/system/network/network_detailed_network_view_pixeltest.cc
+++ b/ash/system/network/network_detailed_network_view_pixeltest.cc
@@ -133,7 +133,7 @@
   // Compare pixels.
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "check_view",
-      /*revision_number=*/3, detailed_view));
+      /*revision_number=*/4, detailed_view));
 }
 
 }  // namespace
diff --git a/ash/system/network/vpn_detailed_view_pixeltest.cc b/ash/system/network/vpn_detailed_view_pixeltest.cc
index bfefbff..037ba5e82 100644
--- a/ash/system/network/vpn_detailed_view_pixeltest.cc
+++ b/ash/system/network/vpn_detailed_view_pixeltest.cc
@@ -126,7 +126,7 @@
   // Compare pixels.
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "check_view",
-      /*revision_number=*/3, vpn_detailed_view_));
+      /*revision_number=*/4, vpn_detailed_view_));
 }
 
 TEST_F(VpnDetailedViewPixelTest, MultipleVpns) {
@@ -135,7 +135,7 @@
   // Compare pixels.
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "check_view",
-      /*revision_number=*/3, vpn_detailed_view_));
+      /*revision_number=*/4, vpn_detailed_view_));
 }
 
 }  // namespace ash
diff --git a/ash/system/time/calendar_view_pixeltest.cc b/ash/system/time/calendar_view_pixeltest.cc
index 83e8e8f8..79785a8 100644
--- a/ash/system/time/calendar_view_pixeltest.cc
+++ b/ash/system/time/calendar_view_pixeltest.cc
@@ -110,7 +110,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "calendar_view",
-      /*revision_number=*/0, GetCalendarView()));
+      /*revision_number=*/1, GetCalendarView()));
 }
 
 TEST_F(CalendarViewPixelTest, EventList) {
@@ -140,7 +140,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "event_list_view",
-      /*revision_number=*/2, GetEventListView()));
+      /*revision_number=*/3, GetEventListView()));
 }
 
 }  // namespace ash
diff --git a/ash/system/unified/quick_settings_footer_pixeltest.cc b/ash/system/unified/quick_settings_footer_pixeltest.cc
index 3281a304..90260d6 100644
--- a/ash/system/unified/quick_settings_footer_pixeltest.cc
+++ b/ash/system/unified/quick_settings_footer_pixeltest.cc
@@ -70,7 +70,7 @@
   InitPowerStatusAndOpenBubble();
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "with_no_extra_button",
-      /*revision_number=*/0, GetFooter()));
+      /*revision_number=*/1, GetFooter()));
   CloseBubble();
 
   // Regression test for b/293484037: The settings button is missing when
@@ -79,7 +79,7 @@
   InitPowerStatusAndOpenBubble();
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "with_exit_button",
-      /*revision_number=*/0, GetFooter()));
+      /*revision_number=*/1, GetFooter()));
   CloseBubble();
 }
 
diff --git a/ash/system/unified/unified_slider_view_pixeltest.cc b/ash/system/unified/unified_slider_view_pixeltest.cc
index 4ec14241..25a32d9b 100644
--- a/ash/system/unified/unified_slider_view_pixeltest.cc
+++ b/ash/system/unified/unified_slider_view_pixeltest.cc
@@ -96,7 +96,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "default_slider_muted",
-      /*revision_number=*/1, widget_.get()));
+      /*revision_number=*/2, widget_.get()));
 
   default_slider->RequestFocus();
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
@@ -134,7 +134,7 @@
   // `QuickSettingsSlider::Style::kRadioActiveMuted`.
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "radio_active_slider_muted",
-      /*revision_number=*/1, widget_.get()));
+      /*revision_number=*/2, widget_.get()));
 
   radio_active_slider->RequestFocus();
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
diff --git a/ash/system/video_conference/bubble/bubble_view_pixeltest.cc b/ash/system/video_conference/bubble/bubble_view_pixeltest.cc
index bdac4ef..ee9ea36 100644
--- a/ash/system/video_conference/bubble/bubble_view_pixeltest.cc
+++ b/ash/system/video_conference/bubble/bubble_view_pixeltest.cc
@@ -184,14 +184,14 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "video_conference_bubble_view_no_focus_not_toggled",
-      /*revision_number=*/2, toggle_effect_button_container));
+      /*revision_number=*/3, toggle_effect_button_container));
 
   // Toggle the first button, the UI should change.
   LeftClickOn(first_toggle_effect_button);
   ASSERT_EQ(1, office_bunny()->num_activations_for_testing());
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "video_conference_bubble_view_no_focus_toggled",
-      /*revision_number=*/2, toggle_effect_button_container));
+      /*revision_number=*/3, toggle_effect_button_container));
 
   // Un-toggle the button, then keyboard focus it.
   LeftClickOn(first_toggle_effect_button);
@@ -203,7 +203,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "video_conference_bubble_view_with_focus_not_toggled",
-      /*revision_number=*/2, toggle_effect_button_container));
+      /*revision_number=*/3, toggle_effect_button_container));
 
   // Re-toggle the button.
   event_generator->PressAndReleaseKey(ui::KeyboardCode::VKEY_RETURN);
@@ -212,7 +212,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "video_conference_bubble_view_with_focus_toggled",
-      /*revision_number=*/2, toggle_effect_button_container));
+      /*revision_number=*/3, toggle_effect_button_container));
 }
 
 // Pixel test that tests the expanded/collapsed state of the return to app panel
@@ -279,7 +279,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "video_conference_tray_linux_bubble_one_app",
-      /*revision_number=*/2, video_conference_tray()->GetBubbleView()));
+      /*revision_number=*/3, video_conference_tray()->GetBubbleView()));
 
   controller()->AddMediaApp(CreateFakeMediaApp(
       /*is_capturing_camera=*/true, /*is_capturing_microphone=*/true,
@@ -294,7 +294,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "video_conference_tray_linux_bubble_two_app",
-      /*revision_number=*/2, video_conference_tray()->GetBubbleView()));
+      /*revision_number=*/3, video_conference_tray()->GetBubbleView()));
 }
 
 TEST_F(BubbleViewPixelTest, OneToggleEffects) {
@@ -308,7 +308,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "video_conference_bubble_view_one_toggle_effect",
-      /*revision_number=*/0, GetToggleEffectsView()));
+      /*revision_number=*/1, GetToggleEffectsView()));
 }
 
 TEST_F(BubbleViewPixelTest, TwoToggleEffects) {
@@ -323,7 +323,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "video_conference_bubble_view_two_toggle_effects",
-      /*revision_number=*/0, GetToggleEffectsView()));
+      /*revision_number=*/1, GetToggleEffectsView()));
 }
 
 TEST_F(BubbleViewPixelTest, ThreeToggleEffects) {
@@ -343,7 +343,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "video_conference_bubble_view_three_toggle_effects",
-      /*revision_number=*/0, GetToggleEffectsView()));
+      /*revision_number=*/1, GetToggleEffectsView()));
 }
 
 }  // namespace ash::video_conference
diff --git a/ash/wm/wm_pixel_diff_test.cc b/ash/wm/wm_pixel_diff_test.cc
index 3678c5c6..b92dc58 100644
--- a/ash/wm/wm_pixel_diff_test.cc
+++ b/ash/wm/wm_pixel_diff_test.cc
@@ -116,7 +116,7 @@
 
   EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen(
       "window_cycle_basic",
-      /*revision_number=*/5, widget));
+      /*revision_number=*/6, widget));
 }
 
 }  // namespace ash
diff --git a/base/android/jni_generator/README.md b/base/android/jni_generator/README.md
new file mode 100644
index 0000000..ead2b77
--- /dev/null
+++ b/base/android/jni_generator/README.md
@@ -0,0 +1 @@
+Moved to [//third_party/jni_zero](/third_party/jni_zero/README.md).
diff --git a/base/feature_list.cc b/base/feature_list.cc
index 84a90d1..9698a298 100644
--- a/base/feature_list.cc
+++ b/base/feature_list.cc
@@ -566,6 +566,15 @@
 
   EarlyFeatureAccessTracker::GetInstance()->AssertNoAccess();
 
+#if !BUILDFLAG(IS_NACL)
+  // Configured first because it takes precedence over the getrandom() trial.
+  internal::ConfigureBoringSSLBackedRandBytesFieldTrial();
+#endif
+
+#if BUILDFLAG(IS_ANDROID)
+  internal::ConfigureRandBytesFieldTrial();
+#endif
+
 #if BUILDFLAG(DCHECK_IS_CONFIGURABLE)
   // Update the behaviour of LOGGING_DCHECK to match the Feature configuration.
   // DCHECK is also forced to be FATAL if we are running a death-test.
diff --git a/base/mac/BUILD.gn b/base/mac/BUILD.gn
index 4db313f..1f919da 100644
--- a/base/mac/BUILD.gn
+++ b/base/mac/BUILD.gn
@@ -6,7 +6,12 @@
 
 executable("launch_application_test_helper") {
   configs += [ "//build/config/compiler:wexit_time_destructors" ]
-  sources = [ "test/launch_application_test_helper_main.mm" ]
+  sources = [ "test/launch_application_test_helper_main.m" ]
+
+  # This executable gets moved around at runtime; linking against default deps
+  # could result in libraries not being found in component builds. Fortunately
+  # this executable doesn't actually need anything from default deps.
+  no_default_deps = true
 
   frameworks = [
     "AppKit.framework",
diff --git a/base/mac/launch_application_unittest.mm b/base/mac/launch_application_unittest.mm
index deab024c..b11f02ed 100644
--- a/base/mac/launch_application_unittest.mm
+++ b/base/mac/launch_application_unittest.mm
@@ -185,21 +185,23 @@
   }
 
   void TearDown() override {
-    // Make sure fifo reading task stops reading/waiting.
-    WriteFile(helper_app_fifo_path_, "<!FINISHED>");
+    if (temp_dir_.IsValid()) {
+      // Make sure fifo reading task stops reading/waiting.
+      WriteFile(helper_app_fifo_path_, "<!FINISHED>");
 
-    // Make sure all apps that were launched by this test are terminated.
-    NSArray<NSRunningApplication*>* apps =
-        NSWorkspace.sharedWorkspace.runningApplications;
-    for (NSRunningApplication* app in apps) {
-      if (temp_dir_.GetPath().IsParent(NSURLToFilePath(app.bundleURL)) ||
-          [app.bundleIdentifier isEqualToString:helper_bundle_id_]) {
-        [app forceTerminate];
+      // Make sure all apps that were launched by this test are terminated.
+      NSArray<NSRunningApplication*>* apps =
+          NSWorkspace.sharedWorkspace.runningApplications;
+      for (NSRunningApplication* app in apps) {
+        if (temp_dir_.GetPath().IsParent(NSURLToFilePath(app.bundleURL)) ||
+            [app.bundleIdentifier isEqualToString:helper_bundle_id_]) {
+          [app forceTerminate];
+        }
       }
-    }
 
-    // And make sure the temp dir was successfully deleted.
-    EXPECT_TRUE(temp_dir_.Delete());
+      // And make sure the temp dir was successfully deleted.
+      EXPECT_TRUE(temp_dir_.Delete());
+    }
   }
 
   // Calls `LaunchApplication` with the given parameters, expecting the launch
diff --git a/base/mac/test/launch_application_test_helper_main.mm b/base/mac/test/launch_application_test_helper_main.m
similarity index 95%
rename from base/mac/test/launch_application_test_helper_main.mm
rename to base/mac/test/launch_application_test_helper_main.m
index 2b03efa..a85020f 100644
--- a/base/mac/test/launch_application_test_helper_main.mm
+++ b/base/mac/test/launch_application_test_helper_main.m
@@ -34,15 +34,13 @@
     [_running_app addObserver:self
                    forKeyPath:@"activationPolicy"
                       options:NSKeyValueObservingOptionNew
-                      context:nullptr];
+                      context:nil];
   }
   return self;
 }
 
 - (void)dealloc {
-  [_running_app removeObserver:self
-                    forKeyPath:@"activationPolicy"
-                       context:nullptr];
+  [_running_app removeObserver:self forKeyPath:@"activationPolicy" context:nil];
 }
 
 - (void)observeValueForKeyPath:(NSString*)keyPath
diff --git a/base/rand_util.h b/base/rand_util.h
index 55637753..c9dd124 100644
--- a/base/rand_util.h
+++ b/base/rand_util.h
@@ -28,9 +28,18 @@
 
 namespace internal {
 
+#if BUILDFLAG(IS_ANDROID)
+// Sets the implementation of RandBytes according to the corresponding
+// base::Feature. Thread safe: allows to switch while RandBytes() is in use.
+void ConfigureRandBytesFieldTrial();
+#endif
+
+#if !BUILDFLAG(IS_NACL)
+void ConfigureBoringSSLBackedRandBytesFieldTrial();
+#endif
+
 // Returns a random double in range [0, 1). For use in allocator shim to avoid
-// infinite recursion. Thread-safe. This call is generally a lot slower than
-// performing a memory allocation, it must be heavily throttled in the field.
+// infinite recursion. Thread-safe.
 BASE_EXPORT double RandDoubleAvoidAllocation();
 
 }  // namespace internal
diff --git a/base/rand_util_fuchsia.cc b/base/rand_util_fuchsia.cc
index 8f5fae7..b9e5eaa9 100644
--- a/base/rand_util_fuchsia.cc
+++ b/base/rand_util_fuchsia.cc
@@ -6,16 +6,49 @@
 
 #include <zircon/syscalls.h>
 
+#include <atomic>
+
+#include "base/feature_list.h"
 #include "third_party/boringssl/src/include/openssl/crypto.h"
 #include "third_party/boringssl/src/include/openssl/rand.h"
 
 namespace base {
 
+namespace internal {
+
+namespace {
+
+// The BoringSSl helpers are duplicated in rand_util_posix.cc and
+// rand_util_win.cc.
+std::atomic<bool> g_use_boringssl;
+
+BASE_FEATURE(kUseBoringSSLForRandBytes,
+             "UseBoringSSLForRandBytes",
+             FEATURE_DISABLED_BY_DEFAULT);
+
+}  // namespace
+
+void ConfigureBoringSSLBackedRandBytesFieldTrial() {
+  g_use_boringssl.store(FeatureList::IsEnabled(kUseBoringSSLForRandBytes),
+                        std::memory_order_relaxed);
+}
+
+bool UseBoringSSLForRandBytes() {
+  return g_use_boringssl.load(std::memory_order_relaxed);
+}
+
+}  // namespace internal
+
 void RandBytes(void* output, size_t output_length) {
-  // Ensure BoringSSL is initialized so it can use things like RDRAND.
-  CRYPTO_library_init();
-  // BoringSSL's RAND_bytes always returns 1. Any error aborts the program.
-  (void)RAND_bytes(static_cast<uint8_t*>(output), output_length);
+  if (internal::UseBoringSSLForRandBytes()) {
+    // Ensure BoringSSL is initialized so it can use things like RDRAND.
+    CRYPTO_library_init();
+    // BoringSSL's RAND_bytes always returns 1. Any error aborts the program.
+    (void)RAND_bytes(static_cast<uint8_t*>(output), output_length);
+    return;
+  }
+
+  zx_cprng_draw(output, output_length);
 }
 
 namespace internal {
diff --git a/base/rand_util_posix.cc b/base/rand_util_posix.cc
index 24a11a1..4982a455 100644
--- a/base/rand_util_posix.cc
+++ b/base/rand_util_posix.cc
@@ -4,13 +4,32 @@
 
 #include "base/rand_util.h"
 
+#include <errno.h>
 #include <fcntl.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <sys/syscall.h>
+#include <sys/utsname.h>
+#include <unistd.h>
 
 #include "base/check.h"
+#include "base/compiler_specific.h"
+#include "base/feature_list.h"
 #include "base/files/file_util.h"
+#include "base/metrics/histogram_macros.h"
+#include "base/no_destructor.h"
 #include "base/posix/eintr_wrapper.h"
+#include "base/time/time.h"
 #include "build/build_config.h"
 
+#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL)
+#include "third_party/lss/linux_syscall_support.h"
+#elif BUILDFLAG(IS_MAC)
+// TODO(crbug.com/995996): Waiting for this header to appear in the iOS SDK.
+// (See below.)
+#include <sys/random.h>
+#endif
+
 #if !BUILDFLAG(IS_NACL)
 #include "third_party/boringssl/src/include/openssl/crypto.h"
 #include "third_party/boringssl/src/include/openssl/rand.h"
@@ -27,10 +46,174 @@
 static constexpr int kOpenFlags = O_RDONLY | O_CLOEXEC;
 #endif
 
-int OpenUrandomFd() {
-  int ret = HANDLE_EINTR(open("/dev/urandom", kOpenFlags));
-  CHECK(ret >= 0) << "Cannot open /dev/urandom";
-  return ret;
+// We keep the file descriptor for /dev/urandom around so we don't need to
+// reopen it (which is expensive), and since we may not even be able to reopen
+// it if we are later put in a sandbox. This class wraps the file descriptor so
+// we can use a static-local variable to handle opening it on the first access.
+class URandomFd {
+ public:
+  URandomFd() : fd_(HANDLE_EINTR(open("/dev/urandom", kOpenFlags))) {
+    CHECK(fd_ >= 0) << "Cannot open /dev/urandom";
+  }
+
+  ~URandomFd() { close(fd_); }
+
+  int fd() const { return fd_; }
+
+ private:
+  const int fd_;
+};
+
+#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+     BUILDFLAG(IS_ANDROID)) &&                        \
+    !BUILDFLAG(IS_NACL)
+// TODO(pasko): Unify reading kernel version numbers in:
+// mojo/core/channel_linux.cc
+// chrome/browser/android/seccomp_support_detector.cc
+void KernelVersionNumbers(int32_t* major_version,
+                          int32_t* minor_version,
+                          int32_t* bugfix_version) {
+  struct utsname info;
+  if (uname(&info) < 0) {
+    NOTREACHED();
+    *major_version = 0;
+    *minor_version = 0;
+    *bugfix_version = 0;
+    return;
+  }
+  int num_read = sscanf(info.release, "%d.%d.%d", major_version, minor_version,
+                        bugfix_version);
+  if (num_read < 1)
+    *major_version = 0;
+  if (num_read < 2)
+    *minor_version = 0;
+  if (num_read < 3)
+    *bugfix_version = 0;
+}
+
+bool KernelSupportsGetRandom() {
+  int32_t major = 0;
+  int32_t minor = 0;
+  int32_t bugfix = 0;
+  KernelVersionNumbers(&major, &minor, &bugfix);
+  if (major > 3 || (major == 3 && minor >= 17))
+    return true;
+  return false;
+}
+
+bool GetRandomSyscall(void* output, size_t output_length) {
+  // We have to call `getrandom` via Linux Syscall Support, rather than through
+  // the libc wrapper, because we might not have an up-to-date libc (e.g. on
+  // some bots).
+  const ssize_t r =
+      HANDLE_EINTR(syscall(__NR_getrandom, output, output_length, 0));
+
+  // Return success only on total success. In case errno == ENOSYS (or any other
+  // error), we'll fall through to reading from urandom below.
+  if (output_length == static_cast<size_t>(r)) {
+    MSAN_UNPOISON(output, output_length);
+    return true;
+  }
+  return false;
+}
+#endif  // (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
+        // BUILDFLAG(IS_ANDROID)) && !BUILDFLAG(IS_NACL)
+
+#if BUILDFLAG(IS_ANDROID)
+std::atomic<bool> g_use_getrandom;
+
+// Note: the BoringSSL feature takes precedence over the getrandom() trial if
+// both are enabled.
+BASE_FEATURE(kUseGetrandomForRandBytes,
+             "UseGetrandomForRandBytes",
+             FEATURE_ENABLED_BY_DEFAULT);
+
+bool UseGetrandom() {
+  return g_use_getrandom.load(std::memory_order_relaxed);
+}
+#elif (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_NACL)
+bool UseGetrandom() {
+  return true;
+}
+#endif
+
+}  // namespace
+
+namespace internal {
+
+#if BUILDFLAG(IS_ANDROID)
+void ConfigureRandBytesFieldTrial() {
+  g_use_getrandom.store(FeatureList::IsEnabled(kUseGetrandomForRandBytes),
+                        std::memory_order_relaxed);
+}
+#endif
+
+namespace {
+
+#if !BUILDFLAG(IS_NACL)
+// The BoringSSl helpers are duplicated in rand_util_fuchsia.cc and
+// rand_util_win.cc.
+std::atomic<bool> g_use_boringssl;
+
+BASE_FEATURE(kUseBoringSSLForRandBytes,
+             "UseBoringSSLForRandBytes",
+             FEATURE_DISABLED_BY_DEFAULT);
+
+}  // namespace
+
+void ConfigureBoringSSLBackedRandBytesFieldTrial() {
+  g_use_boringssl.store(FeatureList::IsEnabled(kUseBoringSSLForRandBytes),
+                        std::memory_order_relaxed);
+}
+
+bool UseBoringSSLForRandBytes() {
+  return g_use_boringssl.load(std::memory_order_relaxed);
+}
+#endif
+
+}  // namespace internal
+
+namespace {
+
+void RandBytes(void* output, size_t output_length, bool avoid_allocation) {
+#if !BUILDFLAG(IS_NACL)
+  // The BoringSSL experiment takes priority over everything else.
+  if (!avoid_allocation && internal::UseBoringSSLForRandBytes()) {
+    // Ensure BoringSSL is initialized so it can use things like RDRAND.
+    CRYPTO_library_init();
+    // BoringSSL's RAND_bytes always returns 1. Any error aborts the program.
+    (void)RAND_bytes(static_cast<uint8_t*>(output), output_length);
+    return;
+  }
+#endif
+#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
+     BUILDFLAG(IS_ANDROID)) &&                        \
+    !BUILDFLAG(IS_NACL)
+  if (avoid_allocation || UseGetrandom()) {
+    // On Android it is mandatory to check that the kernel _version_ has the
+    // support for a syscall before calling. The same check is made on Linux and
+    // ChromeOS to avoid making a syscall that predictably returns ENOSYS.
+    static const bool kernel_has_support = KernelSupportsGetRandom();
+    if (kernel_has_support && GetRandomSyscall(output, output_length))
+      return;
+  }
+#elif BUILDFLAG(IS_MAC)
+  // TODO(crbug.com/995996): Enable this on iOS too, when sys/random.h arrives
+  // in its SDK.
+  if (getentropy(output, output_length) == 0) {
+    return;
+  }
+#endif
+
+  // If the OS-specific mechanisms didn't work, fall through to reading from
+  // urandom.
+  //
+  // TODO(crbug.com/995996): When we no longer need to support old Linux
+  // kernels, we can get rid of this /dev/urandom branch altogether.
+  const int urandom_fd = GetUrandomFD();
+  const bool success =
+      ReadFromFD(urandom_fd, static_cast<char*>(output), output_length);
+  CHECK(success);
 }
 
 }  // namespace
@@ -39,9 +222,7 @@
 
 double RandDoubleAvoidAllocation() {
   uint64_t number;
-  // Reading from /dev/urandom is the most portable way to avoid allocation.
-  CHECK(ReadFromFD(GetUrandomFD(), reinterpret_cast<char*>(&number),
-                   sizeof(number)));
+  RandBytes(&number, sizeof(number), /*avoid_allocation=*/true);
   // This transformation is explained in rand_util.cc.
   return (number >> 11) * 0x1.0p-53;
 }
@@ -49,17 +230,12 @@
 }  // namespace internal
 
 void RandBytes(void* output, size_t output_length) {
-#if !BUILDFLAG(IS_NACL)
-  // Ensure BoringSSL is initialized so it can use things like RDRAND.
-  CRYPTO_library_init();
-  // BoringSSL's RAND_bytes always returns 1. Any error aborts the program.
-  (void)RAND_bytes(static_cast<uint8_t*>(output), output_length);
-#endif
+  RandBytes(output, output_length, /*avoid_allocation=*/false);
 }
 
 int GetUrandomFD() {
-  static const int fd = OpenUrandomFd();
-  return fd;
+  static NoDestructor<URandomFd> urandom_fd;
+  return urandom_fd->fd();
 }
 
 }  // namespace base
diff --git a/base/rand_util_win.cc b/base/rand_util_win.cc
index de11b0d..549f4362 100644
--- a/base/rand_util_win.cc
+++ b/base/rand_util_win.cc
@@ -26,6 +26,31 @@
 
 namespace base {
 
+namespace internal {
+
+namespace {
+
+// The BoringSSl helpers are duplicated in rand_util_fuchsia.cc and
+// rand_util_posix.cc.
+std::atomic<bool> g_use_boringssl;
+
+BASE_FEATURE(kUseBoringSSLForRandBytes,
+             "UseBoringSSLForRandBytes",
+             FEATURE_DISABLED_BY_DEFAULT);
+
+}  // namespace
+
+void ConfigureBoringSSLBackedRandBytesFieldTrial() {
+  g_use_boringssl.store(FeatureList::IsEnabled(kUseBoringSSLForRandBytes),
+                        std::memory_order_relaxed);
+}
+
+bool UseBoringSSLForRandBytes() {
+  return g_use_boringssl.load(std::memory_order_relaxed);
+}
+
+}  // namespace internal
+
 namespace {
 
 // Import bcryptprimitives!ProcessPrng rather than cryptbase!RtlGenRandom to
@@ -41,7 +66,7 @@
 }
 
 void RandBytes(void* output, size_t output_length, bool avoid_allocation) {
-  if (!avoid_allocation) {
+  if (!avoid_allocation && internal::UseBoringSSLForRandBytes()) {
     // Ensure BoringSSL is initialized so it can use things like RDRAND.
     CRYPTO_library_init();
     // BoringSSL's RAND_bytes always returns 1. Any error aborts the program.
diff --git a/build/android/docs/java_toolchain.md b/build/android/docs/java_toolchain.md
index a9d229d2..cbac7de 100644
--- a/build/android/docs/java_toolchain.md
+++ b/build/android/docs/java_toolchain.md
@@ -111,7 +111,7 @@
   * E.g.: `AppHooksImpl.class` - how `chrome_java` wires up different
     implementations for [non-public builds][apphooks].
 
-[JNI]: /base/android/jni_generator/README.md
+[JNI]: /third_party/jni_zero/README.md
 [Android Resources]: life_of_a_resource.md
 [apphooks]: /chrome/android/java/src/org/chromium/chrome/browser/AppHooksImpl.java
 
@@ -140,7 +140,7 @@
   * Final `GEN_JNI.java` for [JNI glue].
   * `BuildConfig.java` and `NativeLibraries.java` (//base dependencies).
 
-[JNI glue]: /base/android/jni_generator/README.md
+[JNI glue]: /third_party/jni_zero/README.md
 
 ### Step 8: Final Dexing
 
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
index fe3ecfa..cfdc325 100644
--- a/build_overrides/build.gni
+++ b/build_overrides/build.gni
@@ -37,7 +37,7 @@
   # Switches the TRACE_EVENT instrumentation from base's TraceLog implementation
   # to //third_party/perfetto's client library.
   # TODO(crbug/1006541): Switch to perfetto's client library on all platforms.
-  use_perfetto_client_library = is_linux && !is_castos
+  use_perfetto_client_library = (is_linux || is_android) && !is_castos
 
   # Limits the defined //third_party/android_deps targets to only "buildCompile"
   # and "buildCompileNoDeps" targets. This is useful for third-party
diff --git a/chrome/VERSION b/chrome/VERSION
index f1e371619..882a821e 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=118
 MINOR=0
-BUILD=5942
+BUILD=5943
 PATCH=0
diff --git a/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_id.xtb b/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_id.xtb
index 1088b5ce..7ca96be 100644
--- a/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_id.xtb
+++ b/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_id.xtb
@@ -4,6 +4,6 @@
 <translation id="3789841737615482174">Instal</translation>
 <translation id="4088809042407767679">Perbarui Layanan Google VR?</translation>
 <translation id="4648883053543509795">Instal Layanan Google VR?</translation>
-<translation id="473775607612524610">Perbarui</translation>
+<translation id="473775607612524610">Update</translation>
 <translation id="5010116926836661047">Lihat konten virtual reality</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderPickerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderPickerMediator.java
index 68af0f97..427ca4d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderPickerMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderPickerMediator.java
@@ -122,11 +122,9 @@
             }
 
             boolean excludeForFolder = mMovingAtLeastOneFolder
-                    && !BookmarkUtils.canAddFolderWhileViewingParent(
-                            mBookmarkModel, childItem.getId());
+                    && !BookmarkUtils.canAddFolderToParent(mBookmarkModel, childItem.getId());
             boolean excludeForBookmark = mMovingAtLeastOneBookmark
-                    && !BookmarkUtils.canAddBookmarkWhileViewingParent(
-                            mBookmarkModel, childItem.getId());
+                    && !BookmarkUtils.canAddBookmarkToParent(mBookmarkModel, childItem.getId());
             // Remove any folders which can't have children added to them.
             if (excludeForFolder || excludeForBookmark) {
                 continue;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
index 62dba24..8cbcad2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
@@ -285,7 +285,7 @@
         if (BookmarkFeatures.isAndroidImprovedBookmarksEnabled()) {
             mModel.set(BookmarkToolbarProperties.NEW_FOLDER_BUTTON_VISIBLE, true);
             mModel.set(BookmarkToolbarProperties.NEW_FOLDER_BUTTON_ENABLED,
-                    BookmarkUtils.canAddFolderWhileViewingParent(mBookmarkModel, mCurrentFolder));
+                    BookmarkUtils.canAddFolderToParent(mBookmarkModel, mCurrentFolder));
         }
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
index 7a720a8..9119a94 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
@@ -753,8 +753,7 @@
      * Returns whether the given folder being viewed can have a new folder added to it. While in
      * improved bookmarks, this includes the root folder.
      */
-    public static boolean canAddFolderWhileViewingParent(
-            BookmarkModel bookmarkModel, BookmarkId parent) {
+    public static boolean canAddFolderToParent(BookmarkModel bookmarkModel, BookmarkId parent) {
         return !Objects.equals(parent, bookmarkModel.getReadingListFolder())
                 && !Objects.equals(parent, bookmarkModel.getPartnerFolderId())
                 && !Objects.equals(parent, bookmarkModel.getRootFolderId());
@@ -764,8 +763,7 @@
      * Returns whether the given folder being viewed can have a new folder added to it. While in
      * improved bookmarks, this includes the root folder.
      */
-    public static boolean canAddBookmarkWhileViewingParent(
-            BookmarkModel bookmarkModel, BookmarkId parent) {
+    public static boolean canAddBookmarkToParent(BookmarkModel bookmarkModel, BookmarkId parent) {
         return !Objects.equals(parent, bookmarkModel.getPartnerFolderId())
                 && !Objects.equals(parent, bookmarkModel.getRootFolderId());
     }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java
index 97355a2a3..eb15176 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java
@@ -26,6 +26,7 @@
 import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.EnormousTest;
 import org.chromium.base.test.util.Feature;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.omnibox.status.StatusCoordinator;
 import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.OnSuggestionsReceivedListener;
@@ -209,7 +210,11 @@
         Assert.assertEquals("location_bar_status_icon with wrong resource-id",
                 R.id.location_bar_status_icon, securityView.getId());
         Assert.assertTrue(securityView.isShown());
-        Assert.assertEquals(R.drawable.omnibox_https_valid,
+        Assert.assertEquals(
+                ChromeFeatureList.isEnabled(
+                        ChromeFeatureList.OMNIBOX_UPDATED_CONNECTION_SECURITY_INDICATORS)
+                        ? R.drawable.omnibox_https_valid_refresh
+                        : R.drawable.omnibox_https_valid,
                 statusCoordinator.getSecurityIconResourceIdForTesting());
     }
 
@@ -270,7 +275,11 @@
             Assert.assertEquals("location_bar_status_icon with wrong resource-id",
                     R.id.location_bar_status_icon, securityView.getId());
             Assert.assertTrue(securityView.isShown());
-            Assert.assertEquals(R.drawable.omnibox_https_valid,
+            Assert.assertEquals(
+                    ChromeFeatureList.isEnabled(
+                            ChromeFeatureList.OMNIBOX_UPDATED_CONNECTION_SECURITY_INDICATORS)
+                            ? R.drawable.omnibox_https_valid_refresh
+                            : R.drawable.omnibox_https_valid,
                     statusCoordinator.getSecurityIconResourceIdForTesting());
         } finally {
             restoreDefaultSearchEngine();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java
index be2bfcc..2229c245 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java
@@ -46,7 +46,6 @@
 import org.chromium.base.test.util.Criteria;
 import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.CriteriaNotSatisfiedException;
-import org.chromium.base.test.util.DisableIf;
 import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.DoNotBatch;
 import org.chromium.base.test.util.JniMocker;
@@ -89,7 +88,7 @@
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
 import org.chromium.content_public.common.ContentUrlConstants;
 import org.chromium.ui.test.util.DeviceRestriction;
-import org.chromium.ui.test.util.UiDisableIf;
+import org.chromium.ui.test.util.UiRestriction;
 import org.chromium.url.GURL;
 
 import java.util.List;
@@ -635,7 +634,7 @@
 
     @Test
     @SmallTest
-    @DisableIf.Device(type = {UiDisableIf.TABLET}) // The active color is only apply to the phone.
+    @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE})
     @EnableFeatures({ChromeFeatureList.OMNIBOX_MODERNIZE_VISUAL_UPDATE})
     @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
             "enable-features=" + ChromeFeatureList.OMNIBOX_MODERNIZE_VISUAL_UPDATE + "<Study",
@@ -660,7 +659,7 @@
 
     @Test
     @SmallTest
-    @DisableIf.Device(type = {UiDisableIf.TABLET}) // The active color is only apply to the phone.
+    @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE})
     @EnableFeatures({ChromeFeatureList.OMNIBOX_MODERNIZE_VISUAL_UPDATE})
     @CommandLineFlags.
     Add({"enable-features=" + ChromeFeatureList.OMNIBOX_MODERNIZE_VISUAL_UPDATE + "<Study",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/PersistedTabDataTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/PersistedTabDataTest.java
index a05bd24..199ee90 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/PersistedTabDataTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/state/PersistedTabDataTest.java
@@ -11,6 +11,7 @@
 
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -22,6 +23,7 @@
 import org.chromium.base.test.UiThreadTest;
 import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CallbackHelper;
+import org.chromium.base.test.util.JniMocker;
 import org.chromium.chrome.browser.tab.MockTab;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabImpl;
@@ -42,6 +44,12 @@
     @Mock
     ShoppingPersistedTabData mShoppingPersistedTabDataMock;
 
+    @Mock
+    private PersistedTabData.Natives mPersistedTabDataJni;
+
+    @Rule
+    public JniMocker jniMocker = new JniMocker();
+
     @Before
     public void setUp() throws Exception {
         // TODO(crbug.com/1337102): Remove runOnUiThreadBlocking call after code refactoring/cleanup
@@ -49,6 +57,7 @@
         // fail. An ObserverList is created when creating the mock. The same ObserverList is used
         // later in the test.
         ThreadUtils.runOnUiThreadBlocking(() -> { MockitoAnnotations.initMocks(this); });
+        jniMocker.mock(PersistedTabDataJni.TEST_HOOKS, mPersistedTabDataJni);
     }
 
     @SmallTest
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/app/tabmodel/TabPersistentStoreIntegrationTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/app/tabmodel/TabPersistentStoreIntegrationTest.java
index 6b4254cd..1576d3f0 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/app/tabmodel/TabPersistentStoreIntegrationTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/app/tabmodel/TabPersistentStoreIntegrationTest.java
@@ -51,6 +51,8 @@
 import org.chromium.chrome.browser.tab.TabState;
 import org.chromium.chrome.browser.tab.TabStateExtractor;
 import org.chromium.chrome.browser.tab.WebContentsState;
+import org.chromium.chrome.browser.tab.state.PersistedTabData;
+import org.chromium.chrome.browser.tab.state.PersistedTabDataJni;
 import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
 import org.chromium.chrome.browser.tabmodel.NextTabPolicy.NextTabPolicySupplier;
 import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
@@ -112,6 +114,8 @@
     private Resources mResources;
     @Mock
     private TabImpl.Natives mTabImplJni;
+    @Mock
+    private PersistedTabData.Natives mPersistedTabDataJni;
 
     private PausedExecutorService mExecutor = new PausedExecutorService();
 
@@ -138,6 +142,7 @@
         jniMocker.mock(TabModelJniBridgeJni.TEST_HOOKS, mTabModelJniBridgeJni);
         jniMocker.mock(RecentlyClosedBridgeJni.TEST_HOOKS, mRecentlyClosedBridgeJni);
         jniMocker.mock(TabImplJni.TEST_HOOKS, mTabImplJni);
+        jniMocker.mock(PersistedTabDataJni.TEST_HOOKS, mPersistedTabDataJni);
         mOrchestrator.onNativeLibraryReady(mTabContentManager);
     }
 
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkUtilsTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkUtilsTest.java
index 6469b529..f4223fe 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkUtilsTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkUtilsTest.java
@@ -49,30 +49,21 @@
     }
 
     @Test
-    public void testCanAddFolderWhileViewingParent() {
-        assertFalse(BookmarkUtils.canAddFolderWhileViewingParent(mBookmarkModel, ROOT_BOOKMARK_ID));
-        assertTrue(
-                BookmarkUtils.canAddFolderWhileViewingParent(mBookmarkModel, DESKTOP_BOOKMARK_ID));
-        assertTrue(
-                BookmarkUtils.canAddFolderWhileViewingParent(mBookmarkModel, FOLDER_BOOKMARK_ID_A));
-        assertFalse(BookmarkUtils.canAddFolderWhileViewingParent(
-                mBookmarkModel, READING_LIST_BOOKMARK_ID));
-        assertFalse(
-                BookmarkUtils.canAddFolderWhileViewingParent(mBookmarkModel, PARTNER_BOOKMARK_ID));
+    public void testCanAddFolderToParent() {
+        assertFalse(BookmarkUtils.canAddFolderToParent(mBookmarkModel, ROOT_BOOKMARK_ID));
+        assertTrue(BookmarkUtils.canAddFolderToParent(mBookmarkModel, DESKTOP_BOOKMARK_ID));
+        assertTrue(BookmarkUtils.canAddFolderToParent(mBookmarkModel, FOLDER_BOOKMARK_ID_A));
+        assertFalse(BookmarkUtils.canAddFolderToParent(mBookmarkModel, READING_LIST_BOOKMARK_ID));
+        assertFalse(BookmarkUtils.canAddFolderToParent(mBookmarkModel, PARTNER_BOOKMARK_ID));
     }
 
     @Test
-    public void testCanAddBookmarkWhileViewingParent() {
-        assertFalse(
-                BookmarkUtils.canAddBookmarkWhileViewingParent(mBookmarkModel, ROOT_BOOKMARK_ID));
-        assertTrue(BookmarkUtils.canAddBookmarkWhileViewingParent(
-                mBookmarkModel, DESKTOP_BOOKMARK_ID));
-        assertTrue(BookmarkUtils.canAddBookmarkWhileViewingParent(
-                mBookmarkModel, FOLDER_BOOKMARK_ID_A));
-        assertTrue(BookmarkUtils.canAddBookmarkWhileViewingParent(
-                mBookmarkModel, READING_LIST_BOOKMARK_ID));
-        assertFalse(BookmarkUtils.canAddBookmarkWhileViewingParent(
-                mBookmarkModel, PARTNER_BOOKMARK_ID));
+    public void testCanAddBookmarkToParent() {
+        assertFalse(BookmarkUtils.canAddBookmarkToParent(mBookmarkModel, ROOT_BOOKMARK_ID));
+        assertTrue(BookmarkUtils.canAddBookmarkToParent(mBookmarkModel, DESKTOP_BOOKMARK_ID));
+        assertTrue(BookmarkUtils.canAddBookmarkToParent(mBookmarkModel, FOLDER_BOOKMARK_ID_A));
+        assertTrue(BookmarkUtils.canAddBookmarkToParent(mBookmarkModel, READING_LIST_BOOKMARK_ID));
+        assertFalse(BookmarkUtils.canAddBookmarkToParent(mBookmarkModel, PARTNER_BOOKMARK_ID));
     }
 
     @Test
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index a2727cd..d51964c 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -1181,6 +1181,7 @@
 <translation id="1925124445985510535">Sigurnosna provjera je izvršena u <ph name="TIME" /></translation>
 <translation id="192564025059434655">Stare verzije Chromeovih aplikacija se neće moći otvarati na Windows uređajima nakon decembra 2022. Možete provjeriti je li dostupna nova verzija.</translation>
 <translation id="1926339101652878330">Ove postavke kontrolira pravilo preduzeća. Obratite se administratoru za više informacija.</translation>
+<translation id="1926887872692564784">Pokazivač</translation>
 <translation id="1927632033341042996">Prst <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="192817607445937251">PIN za zaključavanje ekrana</translation>
 <translation id="192858925209436740">Povežite OneDrive s aplikacijom Fajlovi da upravljate pohranjenim dokumentima sa svog Chromebooka. Morate se prijaviti na Microsoft račun.</translation>
@@ -3285,6 +3286,7 @@
 <translation id="3653887973853407813">Ne možeš koristiti ekstenziju. Roditelj ili staratelj je isključio "Odobrenja za web lokacije, aplikacije i ekstenzije" za Chrome.</translation>
 <translation id="3653999333232393305">Nastavi dozvoljavati da <ph name="HOST" /> pristupa vašem mikrofonu</translation>
 <translation id="3654045516529121250">Čitanje vaših postavki pristupačnosti</translation>
+<translation id="3656328935986149999">Brzina pokazivača</translation>
 <translation id="3658871634334445293">Ubrzanje TrackPointa</translation>
 <translation id="3659550105763988702">Koristite pristupni ključ za aplikaciju <ph name="APP_NAME" /></translation>
 <translation id="3659929705630080526">Unijeli ste netačan pristupni kôd previše puta. Pokušajte ponovo kasnije</translation>
@@ -3998,6 +4000,7 @@
 <translation id="4232375817808480934">Konfiguriranje Kerberosa</translation>
 <translation id="4233739489690259993">Chromebook više ne prima sigurnosna i softverska ažuriranja. Nadogradite uređaj za najnoviju sigurnosnu funkciju i nove funkcije. Primjenjuju se uslovi ponude.</translation>
 <translation id="4235965441080806197">Otkaži prijavu</translation>
+<translation id="4235976607074422892">Brzina pomicanja</translation>
 <translation id="4237282663517880406">Prikaži prijedloge Google Diska</translation>
 <translation id="4241182343707213132">Ponovo pokrenite da ažurirate aplikacije organizacije</translation>
 <translation id="4242145785130247982">Višestruke potvrde klijenta nisu podržane</translation>
@@ -5321,6 +5324,7 @@
 <translation id="5365881113273618889">Folder koji ste odabrali sadrži osjetljive fajlove. Jeste li sigurni da aplikaciji "<ph name="APP_NAME" />" želite dodijeliti trajni pristup za pisanje u ovom folderu?</translation>
 <translation id="536638840841140142">Nema</translation>
 <translation id="5368246151595623328">Mreža '<ph name="NETWORK_NAME" />' je sačuvana s uređaja <ph name="DEVICE_NAME" /></translation>
+<translation id="5368255566854433132">Izrada zaporke za uređaj <ph name="DEVICE_TYPE" /></translation>
 <translation id="5368720394188453070">Vaš telefon je zaključan. Otključajte ga za ulazak.</translation>
 <translation id="5368779022775404937">Prijava na domenu <ph name="REALM" /></translation>
 <translation id="536882527576164740">{0,plural, =1{Anonimno}one{Anonimno (#)}few{Anonimno (#)}other{Anonimno (#)}}</translation>
@@ -8653,6 +8657,7 @@
 <translation id="8137559199583651773">Upravljanje ekstenzijama</translation>
 <translation id="8138217203226449454">Jeste li htjeli promijeniti pružaoca usluga pretraživanja?</translation>
 <translation id="8138997515734480534">Status: <ph name="VM_NAME" /></translation>
+<translation id="8139440916039659819">Ubrzanje pokazivača</translation>
 <translation id="8139447493436036221">Fajlovi Google Diska</translation>
 <translation id="8139643636835015859">Ovo će ukloniti <ph name="OFFLINE_STORAGE_SIZE" /> prostora koji koriste offline fajlovi. Određeni fajlovi će i dalje biti dostupni offline. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8989,6 +8994,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Dozvoljeno: <ph name="PERMISSION" /> i još <ph name="COUNT" /></translation>
 <translation id="8413956290606243087">Želite li aktivirati ChromeVox, ugrađeni čitač ekrana za ChromeOS?</translation>
+<translation id="8414065061814811918">Ubrzanje pomicanja. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">Uspomene su skrivene na dva dana</translation>
 <translation id="8414396119627470038">Prijavite se na <ph name="SITE_ETLD_PLUS_ONE" /> pomoću <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation>
 <translation id="8414685983518053656">Bilješke</translation>
@@ -9115,6 +9121,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">Zvučnici</translation>
 <translation id="8527257351549797148">Vaša organizacija može zahtijevati registriranje da možete pristupati aplikacijama, ekstenzijama i drugom. Ovo također omogućava organizaciji upravljanje stvarima kao što su sigurnost i postavke uređaja.</translation>
+<translation id="8527869672961320915"><ph name="VM_NAME" /> aplikacije</translation>
 <translation id="8528074251912154910">Dodaj jezike</translation>
 <translation id="8528479410903501741">Sačuvajte IBAN</translation>
 <translation id="8528962588711550376">Prijavljivanje.</translation>
@@ -9371,6 +9378,7 @@
 <translation id="8736288397686080465">Ova web lokacija je ažurirana u pozadini.</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Odaberite jezik na koji želite prevesti stranicu</translation>
+<translation id="8740086188450289493">Upotrijebite zaporku Google računa</translation>
 <translation id="8740247629089392745">Ovaj Chromebook možete predati korisniku <ph name="SUPERVISED_USER_NAME" />. Postavljanje je skoro gotovo, nakon čega možete početi istraživati.</translation>
 <translation id="8740672167979365981">Potrebno je ažuriranje ChromeOS Flexa</translation>
 <translation id="8741944563400125534">Vodič za postavljanje prekidača za pristup</translation>
@@ -9755,6 +9763,7 @@
 <translation id="9045160989383249058">Lista za čitanje je premještena na novu bočnu ploču. Isprobajte je ovdje.</translation>
 <translation id="9045430190527754450">Šalje Googleu web adresu stranice koju pokušavate dosegnuti</translation>
 <translation id="9048745018038487540">Odaberi sve fontove</translation>
+<translation id="9050135202879860719">Prijavite se na <ph name="DEVICE_TYPE" /> pomoću zaporke</translation>
 <translation id="9050666287014529139">Pristupni izraz</translation>
 <translation id="9052404922357793350">Nastavi blokirati</translation>
 <translation id="90528604757378587">Aktivnost u pozadini i neki vizuelni efekti poput glatkog klizanja mogu biti ograničeni.</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index d5d70e6..36edcab 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -1183,6 +1183,7 @@
 <translation id="1925124445985510535">Nagpatakbo ng pag-check sa kaligtasan nang <ph name="TIME" /></translation>
 <translation id="192564025059434655">Hindi na bubukas ang mga lumang bersyon ng mga Chrome app sa mga Windows device pagkatapos ng Disyembre 2022. Puwede mong tingnan kung may available na bagong bersyon.</translation>
 <translation id="1926339101652878330">Kinokontrol ng patakaran sa enterprise ang mga setting na ito. Mangyaring makipag-ugnayan sa iyong administrator para sa higit pang impormasyon.</translation>
+<translation id="1926887872692564784">Cursor</translation>
 <translation id="1927632033341042996">Daliri <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="192817607445937251">PIN ng lock ng screen</translation>
 <translation id="192858925209436740">Ikonekta ang OneDrive sa Files app para mapamahalaan ang iyong mga naka-store na dokumento mula sa Chromebook mo. Kakailanganin mong mag-sign in gamit ang iyong Microsoft account.</translation>
@@ -3287,6 +3288,7 @@
 <translation id="3653887973853407813">Hindi mo puwedeng gamitin ang extension na ito. In-off ng iyong magulang o tagapag-alaga ang “Mga pahintulot sa mga site, app at extension” para sa Chrome.</translation>
 <translation id="3653999333232393305">Ipagpatuloy ang pagpapahintulot sa <ph name="HOST" /> na i-access ang iyong mikropono</translation>
 <translation id="3654045516529121250">Basahin ang iyong mga setting ng pagiging naa-access</translation>
+<translation id="3656328935986149999">Bilis ng cursor</translation>
 <translation id="3658871634334445293">Pag-accelerate ng TrackPoint</translation>
 <translation id="3659550105763988702">Gamitin ang iyong passkey para sa <ph name="APP_NAME" /></translation>
 <translation id="3659929705630080526">Masyadong maraming beses ka nang naglagay ng maling access code. Subukan ulit sa ibang pagkakataon</translation>
@@ -4000,6 +4002,7 @@
 <translation id="4232375817808480934">I-configure ang Kerberos</translation>
 <translation id="4233739489690259993">Hindi na nakakatanggap ang iyong Chromebook ng mga update sa seguridad at software. I-upgrade ang iyong device para sa pinakabagong seguridad at mga bagong feature. May mga nalalapat na tuntunin ng alok.</translation>
 <translation id="4235965441080806197">Kanselahin ang pag-sign in</translation>
+<translation id="4235976607074422892">Bilis ng pag-scroll</translation>
 <translation id="4237282663517880406">Ipakita ang mga suhestyon ng Google Drive</translation>
 <translation id="4241182343707213132">I-restart para i-update ang mga app ng organisasyon</translation>
 <translation id="4242145785130247982">Hindi sinusuportahan ang maraming certificate ng client</translation>
@@ -5323,6 +5326,7 @@
 <translation id="5365881113273618889">Naglalaman ng mga sensitibong file ang pinili mong folder. Sigurado ka bang gusto mong bigyan ang "<ph name="APP_NAME" />" ng permanenteng access sa pag-write sa folder na ito?</translation>
 <translation id="536638840841140142">Wala</translation>
 <translation id="5368246151595623328">Na-save ang '<ph name="NETWORK_NAME" />' mula sa <ph name="DEVICE_NAME" /></translation>
+<translation id="5368255566854433132">Gumawa ng password ng <ph name="DEVICE_TYPE" /></translation>
 <translation id="5368720394188453070">Naka-lock ang iyong telepono. I-unlock ito upang makapasok.</translation>
 <translation id="5368779022775404937">Mag-sign in sa <ph name="REALM" /></translation>
 <translation id="536882527576164740">{0,plural, =1{Incognito}one{Incognito (#)}other{Incognito (#)}}</translation>
@@ -8653,6 +8657,7 @@
 <translation id="8137559199583651773">Pamahalaan ang mga extension</translation>
 <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="8139440916039659819">Pag-accelerate ng cursor</translation>
 <translation id="8139447493436036221">Mga file sa Google Drive</translation>
 <translation id="8139643636835015859">Aalisin nito ang <ph name="OFFLINE_STORAGE_SIZE" /> ng space na ginagamit ng iyong mga offline na file. Magiging available pa rin offline ang ilang file. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8989,6 +8994,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Pinayagan ang <ph name="PERMISSION" /> at <ph name="COUNT" /> pa</translation>
 <translation id="8413956290606243087">Gusto mo bang i-activate ang ChromeVox, ang built-in na screen reader para sa ChromeOS?</translation>
+<translation id="8414065061814811918">Pag-accelerate ng pag-scroll. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">Nakatago ang mga alaala nang dalawang araw</translation>
 <translation id="8414396119627470038">Mag-sign in sa <ph name="SITE_ETLD_PLUS_ONE" /> gamit ang <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation>
 <translation id="8414685983518053656">Mga Tala</translation>
@@ -9116,6 +9122,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">Mga Speaker</translation>
 <translation id="8527257351549797148">Posibleng mag-require ang iyong organisasyon ng pag-enroll para ma-access mo ang mga app, extension, at higit pa. Bibigyang-daan din nito ang iyong organisasyon na pamahalaan ang mga bagay tulad ng seguridad at mga setting ng device.</translation>
+<translation id="8527869672961320915">Mga <ph name="VM_NAME" /> app</translation>
 <translation id="8528074251912154910">Magdagdag ng mga wika</translation>
 <translation id="8528479410903501741">I-save ang IBAN</translation>
 <translation id="8528962588711550376">Nagsa-sign in.</translation>
@@ -9372,6 +9379,7 @@
 <translation id="8736288397686080465">Na-update ang site na ito sa background.</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Piliin ang wika kung saan ita-translate ang page</translation>
+<translation id="8740086188450289493">Gamitin ang password ng Google Account</translation>
 <translation id="8740247629089392745">Puwede mong ibigay ang Chromebook na ito kay <ph name="SUPERVISED_USER_NAME" />. Malapit nang matapos ang pag-set up, puwede nang mag-explore pagkatapos nito.</translation>
 <translation id="8740672167979365981">Kinakailangang i-update ang ChromeOS Flex</translation>
 <translation id="8741944563400125534">Gabay sa pag-set up ng Switch Access</translation>
@@ -9756,6 +9764,7 @@
 <translation id="9045160989383249058">Inilipat ang iyong listahan ng babasahin sa bagong panel sa gilid. Subukan ito rito.</translation>
 <translation id="9045430190527754450">Ipinapadala sa Google ang address ng web ng page na sinusubukan mong puntahan</translation>
 <translation id="9048745018038487540">Piliin ang lahat ng font</translation>
+<translation id="9050135202879860719">Gumamit ng password para mag-sign in sa iyong <ph name="DEVICE_TYPE" /></translation>
 <translation id="9050666287014529139">Passphrase</translation>
 <translation id="9052404922357793350">Patuloy na i-block</translation>
 <translation id="90528604757378587">Posibleng maging limitado ang aktibidad sa background at ilang visual effect, tulad ng maayos na pag-scroll.</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index d6e21367..333e013 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -1172,6 +1172,7 @@
 <translation id="1925124445985510535">Sigurnosna provjera izvršena je u <ph name="TIME" /></translation>
 <translation id="192564025059434655">Stare verzije Chromeovih aplikacija neće se otvoriti na Windows uređajima nakon prosinca 2022. Možete provjeriti je li dostupna nova verzija.</translation>
 <translation id="1926339101652878330">Tim postavkama upravljaju pravila tvrtke. Više informacija zatražite od administratora.</translation>
+<translation id="1926887872692564784">Pokazivač</translation>
 <translation id="1927632033341042996">Prst <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="192817607445937251">PIN za zaključavanje zaslona</translation>
 <translation id="192858925209436740">Povežite OneDrive s aplikacijom Datoteke da biste pohranjenim dokumentima upravljali s Chromebooka. Morat ćete se prijaviti Microsoft računom.</translation>
@@ -3274,6 +3275,7 @@
 <translation id="3653887973853407813">Ne možeš upotrebljavati to proširenje. Tvoj roditelj ili skrbnik isključio je opciju Dopuštenja za web-lokacije, aplikacije i proširenja za Chrome.</translation>
 <translation id="3653999333232393305">Nastavi dopuštati hostu <ph name="HOST" /> pristup mikrofonu</translation>
 <translation id="3654045516529121250">čitati postavke pristupačnosti</translation>
+<translation id="3656328935986149999">Brzina pokazivača</translation>
 <translation id="3658871634334445293">TrackPoint ubrzanje</translation>
 <translation id="3659550105763988702">Upotrijebite pristupni ključ za aplikaciju <ph name="APP_NAME" /></translation>
 <translation id="3659929705630080526">Unijeli ste netočnu pristupnu šifru previše puta. Pokušajte ponovo kasnije</translation>
@@ -3987,6 +3989,7 @@
 <translation id="4232375817808480934">Konfigurirajte Kerberos</translation>
 <translation id="4233739489690259993">Chromebook više ne prima sigurnosna i softverska ažuriranja. Nadogradite uređaj kako biste dobili najnovije sigurnosne zaštite i nove značajke. Primjenjuju se uvjeti ponude.</translation>
 <translation id="4235965441080806197">Otkaži prijavu</translation>
+<translation id="4235976607074422892">Brzina pomicanja</translation>
 <translation id="4237282663517880406">Prikaz prijedloga Google diska</translation>
 <translation id="4241182343707213132">Ponovno pokrenite da biste ažurirali aplikacije organizacije</translation>
 <translation id="4242145785130247982">Nije podržano više certifikata klijenta</translation>
@@ -5309,6 +5312,7 @@
 <translation id="5365881113273618889">Mapa koju ste odabrali sadrži osjetljive datoteke. Jeste li sigurni da želite dodijeliti aplikaciji "<ph name="APP_NAME" />" trajni pristup za zapisivanje za tu mapu?</translation>
 <translation id="536638840841140142">Nema</translation>
 <translation id="5368246151595623328"><ph name="NETWORK_NAME" /> – spremljeno s uređaja <ph name="DEVICE_NAME" /></translation>
+<translation id="5368255566854433132">Izrada zaporke za uređaj <ph name="DEVICE_TYPE" /></translation>
 <translation id="5368720394188453070">Vaš je telefon zaključan. Otključajte ga da biste mu pristupili.</translation>
 <translation id="5368779022775404937">Prijavite se na <ph name="REALM" /></translation>
 <translation id="536882527576164740">{0,plural, =1{Anonimno}one{Anonimno (#)}few{Anonimno (#)}other{Anonimno (#)}}</translation>
@@ -8638,6 +8642,7 @@
 <translation id="8137559199583651773">Upravljanje proširenjima</translation>
 <translation id="8138217203226449454">Jeste li htjeli promijeniti davatelja usluga pretraživanja?</translation>
 <translation id="8138997515734480534">Status VM-a <ph name="VM_NAME" /></translation>
+<translation id="8139440916039659819">Ubrzanje pokazivača</translation>
 <translation id="8139447493436036221">Datoteke Google diska</translation>
 <translation id="8139643636835015859">Time će se ukloniti <ph name="OFFLINE_STORAGE_SIZE" /> prostora koji upotrebljavaju offline datoteke. Neke će datoteke i dalje biti dostupne offline. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8974,6 +8979,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Dopustili ste sljedeće: <ph name="PERMISSION" /> i još <ph name="COUNT" /></translation>
 <translation id="8413956290606243087">Želite li aktivirati ChromeVox, ugrađeni čitač zaslona za Chrome OS?</translation>
+<translation id="8414065061814811918">Ubrzanje pomicanja. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">Uspomene su skrivene na dva dana</translation>
 <translation id="8414396119627470038">Prijavite se na web-lokaciju <ph name="SITE_ETLD_PLUS_ONE" /> s <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation>
 <translation id="8414685983518053656">Napomene</translation>
@@ -9100,6 +9106,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">Zvučnici</translation>
 <translation id="8527257351549797148">Vaša organizacija može zahtijevati prijavu kako biste mogli pristupiti aplikacijama, proširenjima i drugim značajkama. To vašoj organizaciji omogućuje i da upravlja stvarima kao što su sigurnost i postavke uređaja.</translation>
+<translation id="8527869672961320915"><ph name="VM_NAME" /> aplikacije</translation>
 <translation id="8528074251912154910">Dodaj jezike</translation>
 <translation id="8528479410903501741">Spremi IBAN</translation>
 <translation id="8528962588711550376">Prijava.</translation>
@@ -9356,6 +9363,7 @@
 <translation id="8736288397686080465">Web-lokacija se ažurirala u pozadini.</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Odaberite jezik na koji će se stranica prevesti</translation>
+<translation id="8740086188450289493">Upotrijebite zaporku Google računa</translation>
 <translation id="8740247629089392745">Ovaj Chromebook možete predati korisniku <ph name="SUPERVISED_USER_NAME" />. Postavljanje je skoro gotovo, a zatim ćete moći istraživati</translation>
 <translation id="8740672167979365981">Potrebno je ažurirati ChromeOS Flex</translation>
 <translation id="8741944563400125534">Vodič za postavljanje navigacije prekidačima</translation>
@@ -9740,6 +9748,7 @@
 <translation id="9045160989383249058">Vaš popis za čitanje premješten je na novu bočnu ploču. Isprobajte ga ovdje.</translation>
 <translation id="9045430190527754450">Googleu se šalje web-adresa stranice koju pokušavate otvoriti.</translation>
 <translation id="9048745018038487540">Odaberi sve fontove</translation>
+<translation id="9050135202879860719">Prijavite se na <ph name="DEVICE_TYPE" /> pomoću zaporke</translation>
 <translation id="9050666287014529139">Zaporka</translation>
 <translation id="9052404922357793350">Nastavi blokirati</translation>
 <translation id="90528604757378587">Aktivnost u pozadini i neki vizualni efekti, kao što je glatko pomicanje, mogu biti ograničeni.</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 8028448..8319c67 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -1181,6 +1181,7 @@
 <translation id="1925124445985510535">A biztonsági ellenőrzés utolsó lefutásának ideje: <ph name="TIME" /></translation>
 <translation id="192564025059434655">A Chrome-alkalmazások régi verziói 2022 decembere után nem nyílnak majd meg Windows rendszerű eszközökön. Ellenőrizheti, hogy rendelkezésre áll-e újabb verzió.</translation>
 <translation id="1926339101652878330">Ezeket a beállításokat vállalati irányelv szabályozza. Kérjük, további információért lépjen kapcsolatba a rendszergazdájával.</translation>
+<translation id="1926887872692564784">Kurzor</translation>
 <translation id="1927632033341042996"><ph name="NEW_FINGER_NUMBER" />. ujjlenyomat</translation>
 <translation id="192817607445937251">Képernyőzár PIN-kódja</translation>
 <translation id="192858925209436740">A OneDrive és a Fájlok alkalmazás összekapcsolásával kezelheti a Chromebookon tárolt dokumentumokat. Ehhez be kell jelentkeznie Microsoft-fiókjával.</translation>
@@ -3285,6 +3286,7 @@
 <translation id="3653887973853407813">Nem használhatod ezt a bővítményt. A szülőd vagy a gyámod kikapcsolta az „Engedélyek webhelyek, alkalmazások és bővítmények számára” beállítást a Chrome-ra vonatkozóan.</translation>
 <translation id="3653999333232393305">A(z) <ph name="HOST" /> továbbra is hozzáférhet az Ön mikrofonjához</translation>
 <translation id="3654045516529121250">A kisegítő lehetőségek beállításainak áttekintése</translation>
+<translation id="3656328935986149999">Kurzor sebessége</translation>
 <translation id="3658871634334445293">TrackPoint gyorsítása</translation>
 <translation id="3659550105763988702">Azonosítókulcs használata a következőhöz: <ph name="APP_NAME" /></translation>
 <translation id="3659929705630080526">Túl sokszor adott meg helytelen hozzáférési kódot. Próbálkozzon később.</translation>
@@ -3997,6 +3999,7 @@
 <translation id="4232375817808480934">A Kerberos konfigurálása</translation>
 <translation id="4233739489690259993">Chromebookja a továbbiakban nem kap biztonsági és szoftverfrissítéseket. Frissítse eszközét, hogy megkapja a legújabb biztonsági és egyéb új funkciókat. Az ajánlatra feltételek vonatkoznak.</translation>
 <translation id="4235965441080806197">Bejelentkezés megszakítása</translation>
+<translation id="4235976607074422892">Görgetési sebesség</translation>
 <translation id="4237282663517880406">Google Drive-javaslatok megjelenítése</translation>
 <translation id="4241182343707213132">Indítsa újra az eszközt a szervezet alkalmazásainak frissítéséhez</translation>
 <translation id="4242145785130247982">Több ügyféltanúsítvány sem támogatott</translation>
@@ -5321,6 +5324,7 @@
 <translation id="5365881113273618889">A kiválasztott mappa bizalmas fájlokat tartalmaz. Biztosan állandó írási hozzáférést szeretne adni a(z) „<ph name="APP_NAME" />” alkalmazásnak a mappához?</translation>
 <translation id="536638840841140142">Nincs</translation>
 <translation id="5368246151595623328">„<ph name="NETWORK_NAME" />” innen mentve: <ph name="DEVICE_NAME" /></translation>
+<translation id="5368255566854433132"><ph name="DEVICE_TYPE" />-jelszó létrehozása</translation>
 <translation id="5368720394188453070">A telefon zárolva van. Oldja fel a belépéshez.</translation>
 <translation id="5368779022775404937">Bejelentkezés itt: <ph name="REALM" /></translation>
 <translation id="536882527576164740">{0,plural, =1{Inkognitó}other{Inkognitó (#)}}</translation>
@@ -8649,6 +8653,7 @@
 <translation id="8137559199583651773">Bővítmények kezelése</translation>
 <translation id="8138217203226449454">Szándékosan változtatta meg a keresési szolgáltatóját?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> állapota</translation>
+<translation id="8139440916039659819">Kurzor gyorsulása</translation>
 <translation id="8139447493436036221">Google Drive-fájlok</translation>
 <translation id="8139643636835015859">Ezzel felszabadít <ph name="OFFLINE_STORAGE_SIZE" />, offline fájlok által használt tárhelyet. Egyes fájlok továbbra is rendelkezésre állnak offline állapotban. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8985,6 +8990,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Engedélyezve: <ph name="PERMISSION" /> és további <ph name="COUNT" /></translation>
 <translation id="8413956290606243087">Szeretné aktiválni a ChromeVoxot, a ChromeOS beépített képernyőolvasóját?</translation>
+<translation id="8414065061814811918">Görgetés gyorsítása. <ph name="LINK_BEGIN" />További információ<ph name="LINK_END" />.</translation>
 <translation id="8414249071344507766">Emlékek elrejtve két napig</translation>
 <translation id="8414396119627470038">Jelentkezzen be a(z) <ph name="SITE_ETLD_PLUS_ONE" /> webhelyre a következővel: <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation>
 <translation id="8414685983518053656">Megjegyzések</translation>
@@ -9111,6 +9117,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">Hangfalak</translation>
 <translation id="8527257351549797148">Előfordulhat, hogy szervezete regisztrációhoz köti az Ön alkalmazásokhoz, bővítményekhez és egyebekhez való hozzáférését. Ez lehetővé teszi a szervezet számára többek között a biztonság és az eszközbeállítások kezelését.</translation>
+<translation id="8527869672961320915"><ph name="VM_NAME" /> alkalmazás</translation>
 <translation id="8528074251912154910">Nyelvek hozzáadása</translation>
 <translation id="8528479410903501741">IBAN-kód mentése</translation>
 <translation id="8528962588711550376">Bejelentkezés.</translation>
@@ -9367,6 +9374,7 @@
 <translation id="8736288397686080465">Ez a webhely frissült a háttérben.</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Válassza ki a nyelvet, amelyre le szeretné fordítani az oldalt</translation>
+<translation id="8740086188450289493">A Google-fiók jelszavának használata</translation>
 <translation id="8740247629089392745">Átadhatja a Chromebookot <ph name="SUPERVISED_USER_NAME" /> számára. A beállítás majdnem kész, eljött a felfedezés ideje.</translation>
 <translation id="8740672167979365981">Szükség van a ChromeOS Flex frissítésére</translation>
 <translation id="8741944563400125534">Kapcsolóalapú hozzáférés – Beállítási útmutató</translation>
@@ -9749,6 +9757,7 @@
 <translation id="9045160989383249058">Az olvasólistája átkerült az új oldalsó panelre. Itt kipróbálhatja.</translation>
 <translation id="9045430190527754450">Elküldi az elérni kívánt oldal internetcímét a Google-nak</translation>
 <translation id="9048745018038487540">Az összes betűtípus kiválasztása</translation>
+<translation id="9050135202879860719">Használhat jelszót a(z) <ph name="DEVICE_TYPE" /> eszközre való bejelentkezéshez</translation>
 <translation id="9050666287014529139">Összetett jelszó</translation>
 <translation id="9052404922357793350">Letiltás fenntartása</translation>
 <translation id="90528604757378587">Lehetséges, hogy a háttértevékenységek és bizonyos vizuális effektek (például a finomgörgetés) korlátozottak.</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 51e4414..c30c0250 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -4597,7 +4597,7 @@
 <translation id="4735793370946506039">Pelajari lebih lanjut Safe Browsing yang Disempurnakan.</translation>
 <translation id="4735803855089279419">Sistem gagal menentukan ID perangkat untuk perangkat ini.</translation>
 <translation id="4735846817388402006">Klik untuk mengizinkan "<ph name="EXTENSIONS_REQUESTING_ACCESS" />" di <ph name="ORIGIN" /></translation>
-<translation id="473775607612524610">Perbarui</translation>
+<translation id="473775607612524610">Update</translation>
 <translation id="473936925429402449">Dipilih, konten tambahan <ph name="CURRENT_ELEMENT" /> dari <ph name="TOTAL_ELEMENTS" /></translation>
 <translation id="4739639199548674512">Tiket</translation>
 <translation id="4742334355511750246">Tidak diizinkan menampilkan gambar</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 9c27560..6719378 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -2531,7 +2531,7 @@
 <translation id="3001614333383288217">{COUNT,plural, =0{אין מקשים שהותאמו אישית}=1{מקש אחד שהותאם אישית}one{{COUNT} מקשים שהותאמו אישית}two{{COUNT} מקשים שהותאמו אישית}other{{COUNT} מקשים שהותאמו אישית}}</translation>
 <translation id="3001835006423291524">יש לגעת בחיישן טביעות האצבע שבפינה הימנית התחתונה של המקלדת. נתוני טביעות האצבע נשמרים באופן מאובטח ואף פעם לא נשלחים ממכשיר <ph name="DEVICE_TYPE" />.</translation>
 <translation id="3003144360685731741">רשתות מועדפות</translation>
-<translation id="3003253259757197230">‏כתובות URL שבהן ביקרת יישלחו אל Google כדי לחזות את האתרים הבאים שעשויים להיפתח ולהציג לך מידע נוסף על הדף הפתוח</translation>
+<translation id="3003253259757197230">‏במהלך הגלישה, כתובת ה-URL שמבקרים בהן יישלחו אל Google כדי לחזות את האתרים הבאים שעשויים להיפתח וכדי להציג לך מידע נוסף על הדף הנוכחי</translation>
 <translation id="3003623123441819449">‏מטמון של CSS</translation>
 <translation id="3003828226041301643">אי אפשר לצרף את המכשיר אל הדומיין. יש לבדוק את החשבון כדי לוודא שיש לך הרשאות להוסיף מכשירים.</translation>
 <translation id="3003967365858406397">‏ה-<ph name="PHONE_NAME" /> ייצור חיבור Wi-Fi פרטי.</translation>
@@ -7051,7 +7051,7 @@
 <translation id="6820079682647046800">‏האימות של Kerberos נכשל</translation>
 <translation id="6823174134746916417">שימוש בנגיעה קלה בלוח המגע</translation>
 <translation id="6823429960180594870">ניהול הקבצים בזמן ההורדה, ופתיחת הקבצים בסיום ההורדה</translation>
-<translation id="6823561724060793716">בסרגל הכתובות ניתן לפתוח את פרטי הדף בו מבקרים כדי לקבל עליו פרטים נוספים</translation>
+<translation id="6823561724060793716">בסרגל הכתובות ניתן לפתוח את פרטי הדף כדי לראות מידע נוסף על הדף הפתוח</translation>
 <translation id="6824564591481349393">העתקת כתובת &amp;אימייל</translation>
 <translation id="6824584962142919697">&amp;בדיקת רכיבים</translation>
 <translation id="6824725898506587159">נהל שפות</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 871ae382..0799faea 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -1170,6 +1170,7 @@
 <translation id="1925124445985510535">უსაფრთხოების შემოწმება შესრულდა <ph name="TIME" />-ზე</translation>
 <translation id="192564025059434655">Chrome-ის აპების ძველი ვერსიები 2022 წლის დეკემბრის შემდეგ აღარ გაიხსნება Windows‑მოწყობილობებზე. შეგიძლიათ შეამოწმოთ ახალი ვერსიის ხელმისაწვდომობა.</translation>
 <translation id="1926339101652878330">ეს პარამეტრები საწარმოს წესების მიერაა მართული. დამატებითი ინფორმაციისთვის, გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს.</translation>
+<translation id="1926887872692564784">კურსორი</translation>
 <translation id="1927632033341042996">თითი <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="192817607445937251">ეკრანის დაბლოკვის PIN-კოდი</translation>
 <translation id="192858925209436740">დააკავშირეთ OneDrive ფაილების აპს, შენახული დოკუმენტები თქვენი Chromebook-იდან რომ მართოთ. დაგჭირდებათ სისტემაში შესვლა თქვენი Microsoft ანგარიშით.</translation>
@@ -3271,6 +3272,7 @@
 <translation id="3653887973853407813">ამ გაფართოებას ვერ გამოიყენებთ. თქვენმა მშობელმა ან მეურვემ Chrome-ისთვის გამორთო „ნებართვები საიტებისთვის, აპებისა და გაფართოებებისთვის“.</translation>
 <translation id="3653999333232393305">გაგრძელება <ph name="HOST" />-ისთვის მიკროფონზე წვდომის დაშვებით</translation>
 <translation id="3654045516529121250">თქვენი სპეციალური შესაძლებლობების პარამეტრების წაკითხვა</translation>
+<translation id="3656328935986149999">კურსორის სიჩქარე</translation>
 <translation id="3658871634334445293">TrackPoint-ის აჩქარება</translation>
 <translation id="3659550105763988702">გამოიყენეთ თქვენი წვდომის გასაღები <ph name="APP_NAME" />-ისთვის</translation>
 <translation id="3659929705630080526">წვდომის არასწორი კოდი ზედმეტად ბევრჯერ შეიყვანეთ. ცადეთ მოგვიანებით</translation>
@@ -3984,6 +3986,7 @@
 <translation id="4232375817808480934">Kerberos-ის კონფიგურაცია</translation>
 <translation id="4233739489690259993">თქვენი Chromebook აღარ იღებს უსაფრთხოებისა და პროგრამული უზრუნველყოფის განახლებებს. უსაფრთხოებისა და სხვა ტიპის უახლესი ფუნქციებით რომ ისარგებლოთ, გამოცვალეთ თქვენი მოწყობილობა. მოქმედებს შემოთავაზების პირობები.</translation>
 <translation id="4235965441080806197">შესვლის გაუქმება</translation>
+<translation id="4235976607074422892">გადაადგილების სიჩქარე</translation>
 <translation id="4237282663517880406">Google Drive შემოთავაზებების ჩვენება</translation>
 <translation id="4241182343707213132">ორგანიზაციის აპების განახლებისთვის საჭიროა გადატვირთვა</translation>
 <translation id="4242145785130247982">კლიენტთა რამდენიმე სერტიფიკატის გამოყენება მხარდაუჭერელია</translation>
@@ -5306,6 +5309,7 @@
 <translation id="5365881113273618889">თქვენ მიერ არჩეული საქაღალდე შეიცავს კონფიდენციალურ ფაილებს. ნამდვილად გსურთ, მიანიჭოთ „<ph name="APP_NAME" />“-ს ამ საქაღალდეში ჩაწერის მუდმივი ნებართვა?</translation>
 <translation id="536638840841140142">არცერთი</translation>
 <translation id="5368246151595623328">„<ph name="NETWORK_NAME" />“ შენახულია <ph name="DEVICE_NAME" />-დან</translation>
+<translation id="5368255566854433132"><ph name="DEVICE_TYPE" /> პაროლის შექმნა</translation>
 <translation id="5368720394188453070">ტელეფონი დაბლოკილია. განბლოკვისათვის შეიყვანეთ.</translation>
 <translation id="5368779022775404937"><ph name="REALM" />-ში შესვლა</translation>
 <translation id="536882527576164740">{0,plural, =1{ინკოგნიტო}other{ინკოგნიტო (#)}}</translation>
@@ -8631,6 +8635,7 @@
 <translation id="8137559199583651773">პროგრამული გაფართოებები</translation>
 <translation id="8138217203226449454">ძიების პროვაიდერის შეცვლა გსურდათ?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" />-ის სტატუსი</translation>
+<translation id="8139440916039659819">კურსორის დაჩქარება</translation>
 <translation id="8139447493436036221">Google Drive ფაილები</translation>
 <translation id="8139643636835015859">ამ მოქმედებით წაიშლება საცავის <ph name="OFFLINE_STORAGE_SIZE" />, რომელიც ხაზგარეშე ფაილების მიერ გამოიყენება. ზოგიერთი ფაილი კვლავ ხელმისაწვდომი იქნება ხაზგარეშე რეჟიმში. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8967,6 +8972,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">დაშვებულია <ph name="PERMISSION" /> და <ph name="COUNT" /> სხვა</translation>
 <translation id="8413956290606243087">გსურთ, გაააქტიუროთ ChromeVox, ChromeOS-ში ჩაშენებული ეკრანის წამკითხველი?</translation>
+<translation id="8414065061814811918">გადაადგილების დაჩქარება. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">მოგონებები დამალულია ორი დღით</translation>
 <translation id="8414396119627470038">შედით <ph name="SITE_ETLD_PLUS_ONE" />-ში <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" />-ით</translation>
 <translation id="8414685983518053656">შენიშვნები</translation>
@@ -9093,6 +9099,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">დინამიკები</translation>
 <translation id="8527257351549797148">თქვენი ორგანიზაცია, შესაძლოა, საჭიროებდეს რეგისტრაციას, აპებზე, გაფართოებებსა და სხვა კონტენტზე წვდომა რომ შეძლოთ. აღნიშნული, ასევე, საშუალებას მისცემს თქვენს ორგანიზაციას, მართოს უსაფრთხოება და მოწყობილობის პარამეტრები.</translation>
+<translation id="8527869672961320915"><ph name="VM_NAME" /> აპები</translation>
 <translation id="8528074251912154910">ენების დამატება</translation>
 <translation id="8528479410903501741">IBAN-ის შენახვა</translation>
 <translation id="8528962588711550376">შესვლა.</translation>
@@ -9349,6 +9356,7 @@
 <translation id="8736288397686080465">ეს საიტი ფონში უკვე განახლებულია.</translation>
 <translation id="8737709691285775803">ცრუმაგიერი მომხმარებლები</translation>
 <translation id="8737914367566358838">აირჩიეთ, რა ენაზე ითარგმნოს გვერდი</translation>
+<translation id="8740086188450289493">Google ანგარიშის პაროლის გამოყენება</translation>
 <translation id="8740247629089392745">შეგიძლიათ გადასცეთ ეს Chromebook <ph name="SUPERVISED_USER_NAME" />-ს. დაყენება თითქმის დასრულდა, მომდევნო ეტაპი გაცნობაა.</translation>
 <translation id="8740672167979365981">საჭიროა ChromeOS Flex-ის განახლება</translation>
 <translation id="8741944563400125534">გადამრთველით წვდომის დაყენების სახელმძღვანელო</translation>
@@ -9731,6 +9739,7 @@
 <translation id="9045160989383249058">თქვენმა საკითხავმა სიამ გადაინაცვლა ახალ გვერდით პანელზე. ცადეთ ის აქ.</translation>
 <translation id="9045430190527754450">Google-ს უგზავნის იმ გვერდის ვებ-მისამართს, რომელთან დაკავშირებასაც ცდილობთ</translation>
 <translation id="9048745018038487540">ყველა შრიფტის არჩევა</translation>
+<translation id="9050135202879860719">თქვენს <ph name="DEVICE_TYPE" />-ში შესასვლელად გამოიყენეთ პაროლი</translation>
 <translation id="9050666287014529139">საიდუმლო ფრაზა</translation>
 <translation id="9052404922357793350">დაბლოკვის გაგრძელება</translation>
 <translation id="90528604757378587">ფონური აქტივობა და ზოგიერთი ვიზუალური ეფექტი, როგორიცაა ლივლივა გადაადგილება, შესაძლოა, შეზღუდული იყოს.</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index b4728c0..ac95b63 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -1182,6 +1182,7 @@
 <translation id="1925124445985510535">ការពិនិត្យ​សុវត្ថិភាពបានដំណើរការនៅម៉ោង <ph name="TIME" /></translation>
 <translation id="192564025059434655">បន្ទាប់ពី​ខែធ្នូ ឆ្នាំ 2022 កំណែ​ចាស់ៗ​នៃកម្មវិធី Chrome នឹង​មិន​បើក​បាន​នៅលើ​ឧបករណ៍ Windows ទេ។ អ្នក​អាចពិនិត្យ​មើល​ថាតើ​មានកំណែថ្មី​ឬអត់។</translation>
 <translation id="1926339101652878330">ការកំណត់ទាំងនេះត្រូវបានគ្រប់គ្រងដោយគោលការណ៍សហគ្រាស។ សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នកសម្រាប់ព័តមានបន្ថែម។</translation>
+<translation id="1926887872692564784">ទស្សន៍ទ្រនិច</translation>
 <translation id="1927632033341042996">ម្រាមដៃ <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="192817607445937251">កូដ PIN ចាក់សោអេក្រង់</translation>
 <translation id="192858925209436740">ភ្ជាប់ OneDrive ទៅកម្មវិធី Files ដើម្បីគ្រប់គ្រងឯកសារដែលបានរក្សាទុករបស់អ្នកពី Chromebook របស់អ្នក។ អ្នកនឹងត្រូវចូលដោយប្រើគណនី Microsoft របស់អ្នក។</translation>
@@ -3286,6 +3287,7 @@
 <translation id="3653887973853407813">អ្នក​មិន​អាច​ប្រើកម្មវិធី​បន្ថែម​នេះ​បាន​ទេ។ មាតាបិតា ឬអាណាព្យាបាល​របស់​អ្នក​បានបិទ “ការ​អនុញ្ញាត​សម្រាប់​គេហទំព័រ កម្មវិធី និង​កម្មវិធី​បន្ថែម” លើ Chrome។</translation>
 <translation id="3653999333232393305">បន្តអនុញ្ញាត <ph name="HOST" /> ឲ្យចូលប្រើម៉ៃក្រូហ្វូនរបស់អ្នក</translation>
 <translation id="3654045516529121250">អានការកំណត់លទ្ធភាពប្រើប្រាស់របស់អ្នក</translation>
+<translation id="3656328935986149999">ល្បឿនទស្សន៍ទ្រនិច</translation>
 <translation id="3658871634334445293">ការបង្កើនល្បឿន TrackPoint</translation>
 <translation id="3659550105763988702">ប្រើ​កូដសម្ងាត់​របស់​អ្នក​សម្រាប់ <ph name="APP_NAME" /></translation>
 <translation id="3659929705630080526">អ្នកបានបញ្ចូល​លេខកូដចូល​ប្រើប្រាស់មិនត្រឹមត្រូវ​ច្រើនដងពេក។ សូមព្យាយាម​ម្ដងទៀត​នៅពេលក្រោយ</translation>
@@ -3999,6 +4001,7 @@
 <translation id="4232375817808480934">កំណត់​រចនាសម្ព័ន្ធ Kerberos</translation>
 <translation id="4233739489690259993">Chromebook របស់អ្នកលែងទទួលបានការធ្វើបច្ចុប្បន្នភាព​ផ្នែក​សុវត្ថិភាព និងកំណែកម្មវិធីថ្មីៗទៀតហើយ។ ប្ដូរ​ឧបករណ៍​របស់​អ្នក ដើម្បី​ទទួល​បាន​មុខងារថ្មីៗ និងសុវត្ថិភាពចុងក្រោយបំផុត។ លក្ខខណ្ឌនៃការផ្ដល់ជូនត្រូវបានអនុវត្ត។</translation>
 <translation id="4235965441080806197">បោះបង់ការចូលគណនី</translation>
+<translation id="4235976607074422892">ល្បឿនរំកិល</translation>
 <translation id="4237282663517880406">បង្ហាញការណែនាំអំពី Google ថាស</translation>
 <translation id="4241182343707213132">ចាប់ផ្តើមឡើងវិញ​ ដើម្បីដំឡើងកំណែកម្មវិធីរបស់ស្ថាប័ន</translation>
 <translation id="4242145785130247982">មិនអាចប្រើ​វិញ្ញាបនបត្រ​កម្មវិធីភ្ញៀវ​ច្រើនបានទេ</translation>
@@ -5322,6 +5325,7 @@
 <translation id="5365881113273618889">ថតដែលអ្នក​បានជ្រើសរើស​មានឯកសាររសើប។ តើអ្នកប្រាកដថា​ចង់អនុញ្ញាតឱ្យ "<ph name="APP_NAME" />" ចូលសរសេរ​លើ​ថត​នេះជាអចិន្ត្រៃយ៍ដែរទេ?</translation>
 <translation id="536638840841140142">គ្មាន</translation>
 <translation id="5368246151595623328">បាន​រក្សាទុក​ '<ph name="NETWORK_NAME" />' ពី <ph name="DEVICE_NAME" /></translation>
+<translation id="5368255566854433132">បង្កើតពាក្យសម្ងាត់ <ph name="DEVICE_TYPE" /></translation>
 <translation id="5368720394188453070">ទូរស័ព្ទរបស់អ្នកបានចាក់សោ។ ដោះសោវាដើម្បីចូល។</translation>
 <translation id="5368779022775404937">ចូល​ទៅ​កាន់ <ph name="REALM" /></translation>
 <translation id="536882527576164740">{0,plural, =1{ឯកជន}other{ឯកជន (#)}}</translation>
@@ -8649,6 +8653,7 @@
 <translation id="8137559199583651773">គ្រប់គ្រងកម្មវិធីបន្ថែម</translation>
 <translation id="8138217203226449454">តើអ្នក​ពិតជាចង់​ប្ដូរ​ក្រុមហ៊ុនផ្ដល់សេវា​ស្វែងរក​របស់អ្នក​មែនឬ?</translation>
 <translation id="8138997515734480534">ស្ថានភាព <ph name="VM_NAME" /></translation>
+<translation id="8139440916039659819">ការបង្កើន​ល្បឿនទស្សន៍ទ្រនិច​</translation>
 <translation id="8139447493436036221">ឯកសារ Google ថាស</translation>
 <translation id="8139643636835015859">ការធ្វើបែបនេះ​នឹងលុប​ទំហំផ្ទុក <ph name="OFFLINE_STORAGE_SIZE" /> ដែលប្រើ​ដោយឯកសារ​គ្មានអ៊ីនធឺណិត​របស់អ្នក។ ឯកសារមួយចំនួននឹងនៅតែអាចប្រើបានពេលគ្មានអ៊ីនធឺណិត។ <ph name="LINK_BEGIN" />ស្វែងយល់​បន្ថែម<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8985,6 +8990,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">បានអនុញ្ញាត <ph name="PERMISSION" /> និង <ph name="COUNT" /> ទៀត</translation>
 <translation id="8413956290606243087">តើអ្នកចង់​បើកដំណើរការ ChromeVox ដែលជា​កម្មវិធី​អានអេក្រង់​ភ្ជាប់មកជាមួយស្រាប់​សម្រាប់ ChromeOS ដែរទេ?</translation>
+<translation id="8414065061814811918">ការបង្កើន​ល្បឿនរំកិល។ <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">បានលាក់អនុស្សាវរីយ៍​រយៈពេលពីរថ្ងៃ</translation>
 <translation id="8414396119627470038">ចូល <ph name="SITE_ETLD_PLUS_ONE" /> តាមរយៈ <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation>
 <translation id="8414685983518053656">កំណត់ចំណាំ</translation>
@@ -9111,6 +9117,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">ឧបករណ៍​បំពង​សំឡេង</translation>
 <translation id="8527257351549797148">ស្ថាប័ន​របស់អ្នក​អាចតម្រូវឱ្យ​ចុះឈ្មោះ ដើម្បីឱ្យអ្នក​អាចចូលប្រើ​កម្មវិធី កម្មវិធីបន្ថែម និង​អ្វីៗជាច្រើនទៀតបាន។ ការធ្វើបែបនេះ​ក៏អនុញ្ញាតឱ្យ​ស្ថាប័នរបស់អ្នក​គ្រប់គ្រង​អ្វីៗ ដូចជា​ការកំណត់​ឧបករណ៍ និង​សុវត្ថិភាពផងដែរ។</translation>
+<translation id="8527869672961320915">កម្មវិធី <ph name="VM_NAME" /></translation>
 <translation id="8528074251912154910">បន្ថែមភាសា</translation>
 <translation id="8528479410903501741">រក្សាទុក IBAN</translation>
 <translation id="8528962588711550376">កំពុងចូល។</translation>
@@ -9368,6 +9375,7 @@
 <translation id="8736288397686080465">គេហទំព័រនេះបានធ្វើបច្ចុប្បន្នភាពនៅផ្ទៃខាងក្រោយ។</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">ជ្រើសរើស​ភាសា​សម្រាប់​បកប្រែទំព័រ</translation>
+<translation id="8740086188450289493">ប្រើ​ពាក្យសម្ងាត់​គណនី Google</translation>
 <translation id="8740247629089392745">អ្នកអាចឱ្យ Chromebook នេះទៅ <ph name="SUPERVISED_USER_NAME" />។ ការរៀបចំជិតរួចរាល់ហើយ បន្ទាប់មកជាពេលដែលត្រូវរុករក។</translation>
 <translation id="8740672167979365981">តម្រូវឱ្យដំឡើងកំណែ ChromeOS Flex</translation>
 <translation id="8741944563400125534">ការណែនាំ​អំពី​ការរៀបចំ​មុខងារប្រើឧបករណ៍ចុចសម្រាប់ជនពិការ</translation>
@@ -9750,6 +9758,7 @@
 <translation id="9045160989383249058">បញ្ជីអានរបស់អ្នក​បានផ្លាស់ទីទៅ​ផ្ទាំងចំហៀងថ្មី។ សូមសាកល្បង​ប្រើវា​នៅទីនេះ។</translation>
 <translation id="9045430190527754450">ផ្ញើ​អាសយដ្ឋាន​ទំព័រនៃ​ទំព័រ​ដែល​កំពុង​ព្យាយាម​ចូល ទៅកាន់ Google</translation>
 <translation id="9048745018038487540">ជ្រើសរើសពុម្ព​អក្សរ​ទាំងអស់</translation>
+<translation id="9050135202879860719">ប្រើពាក្យសម្ងាត់ ដើម្បីចូលគណនីលើ <ph name="DEVICE_TYPE" /> របស់អ្នក</translation>
 <translation id="9050666287014529139">ឃ្លាសម្ងាត់</translation>
 <translation id="9052404922357793350">បន្ត​ទប់ស្កាត់</translation>
 <translation id="90528604757378587">សកម្មភាព​ផ្ទៃខាងក្រោយ និង​បែបផែន​ដែលមើលឃើញ​មួយចំនួន ដូចជា​ការរំកិល​រលូន អាចត្រូវបាន​ដាក់កំហិត។</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 91e8cca..08ab3bf1 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -1185,6 +1185,7 @@
 <translation id="1925124445985510535">Saugos patikra atlikta <ph name="TIME" /></translation>
 <translation id="192564025059434655">Senų versijų „Chrome“ programos nebus atidaromos „Windows“ įrenginiuose po 2022 m. gruodžio mėn. Galite patikrinti, ar pasiekiama nauja versija.</translation>
 <translation id="1926339101652878330">Šiems nustatymams taikoma įmonės politika. Daugiau informacijos galite gauti susisiekę su administratoriumi.</translation>
+<translation id="1926887872692564784">Žymeklis</translation>
 <translation id="1927632033341042996"><ph name="NEW_FINGER_NUMBER" /> piršto antspaudas</translation>
 <translation id="192817607445937251">Ekrano užrakto PIN kodas</translation>
 <translation id="192858925209436740">Prijunkite „OneDrive“ prie programos „Files“, kad galėtumėte tvarkyti saugomus dokumentus iš „Chromebook“. Turėsite prisijungti naudodami „Microsoft“ paskyrą.</translation>
@@ -3289,6 +3290,7 @@
 <translation id="3653887973853407813">Negalite naudoti šio plėtinio. Vienas iš tėvų ar globėjų išjungė „Chrome“ skirtus svetainių, programų ir plėtinių leidimus.</translation>
 <translation id="3653999333232393305">Toliau leisti <ph name="HOST" /> pasiekti mikrofoną</translation>
 <translation id="3654045516529121250">Skaitykite pasiekiamumo nustatymus</translation>
+<translation id="3656328935986149999">Žymeklio greitis</translation>
 <translation id="3658871634334445293">„TrackPoint“ spartinimas</translation>
 <translation id="3659550105763988702">Naudokite „passkey“, skirtą „<ph name="APP_NAME" />“</translation>
 <translation id="3659929705630080526">Per daug kartų įvedėte netinkamą prieigos kodą. Vėliau bandykite dar kartą</translation>
@@ -4002,6 +4004,7 @@
 <translation id="4232375817808480934">Konfigūruoti „Kerberos“</translation>
 <translation id="4233739489690259993">„Chromebook“ nebegauna saugos ir programinės įrangos naujinių. Naujovinkite įrenginį, kad galėtumėte naudotis naujausiomis saugos ir naujomis funkcijomis. Taikomos pasiūlymo sąlygos.</translation>
 <translation id="4235965441080806197">Atšaukti prisijungimą</translation>
+<translation id="4235976607074422892">Slinkimo greitis</translation>
 <translation id="4237282663517880406">Rodyti „Google“ disko pasiūlymus</translation>
 <translation id="4241182343707213132">Paleiskite iš naujo, kad būtų atnaujintos organizacijos programos</translation>
 <translation id="4242145785130247982">Nepalaikomi keli klientų sertifikatai</translation>
@@ -5325,6 +5328,7 @@
 <translation id="5365881113273618889">Pasirinktame aplanke yra neskelbtinų failų. Ar tikrai norite „<ph name="APP_NAME" />“ suteikti nuolatinę šio aplanko rašymo prieigą?</translation>
 <translation id="536638840841140142">Nėra</translation>
 <translation id="5368246151595623328">„<ph name="NETWORK_NAME" />“ išsaugota iš šio įrenginio: <ph name="DEVICE_NAME" /></translation>
+<translation id="5368255566854433132">Sukurti „<ph name="DEVICE_TYPE" />“ slaptažodį</translation>
 <translation id="5368720394188453070">Telefonas užrakintas. Norėdami įeiti, atrakinkite jį.</translation>
 <translation id="5368779022775404937">Prisijunkite prie <ph name="REALM" /></translation>
 <translation id="536882527576164740">{0,plural, =1{Inkognito režimas}one{Inkognito režimas (#)}few{Inkognito režimas (#)}many{Inkognito režimas (#)}other{Inkognito režimas (#)}}</translation>
@@ -8660,6 +8664,7 @@
 <translation id="8137559199583651773">Tvarkyti plėtinius</translation>
 <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="8139440916039659819">Žymeklio spartinimas</translation>
 <translation id="8139447493436036221">„Google“ disko failai</translation>
 <translation id="8139643636835015859">Bus pašalinta <ph name="OFFLINE_STORAGE_SIZE" /> vietos, naudojamos neprisijungus pasiekiamiems failams. Kai kurie failai vis tiek bus pasiekiami neprisijungus. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8996,6 +9001,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Leidžiama: <ph name="PERMISSION" /> ir dar <ph name="COUNT" /></translation>
 <translation id="8413956290606243087">Ar norite suaktyvinti „ChromeVox“ – integruotą „Chrome“ OS ekrano skaitytuvą?</translation>
+<translation id="8414065061814811918">Slinkimo spartinimas. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">Prisiminimai paslėpti dviem dienoms</translation>
 <translation id="8414396119627470038">Prisijungimas prie <ph name="SITE_ETLD_PLUS_ONE" /> naudojant <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation>
 <translation id="8414685983518053656">Užrašai</translation>
@@ -9122,6 +9128,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">Garsiakalbiai</translation>
 <translation id="8527257351549797148">Jūsų organizacija gali reikalauti užsiregistruoti, kad galėtumėte pasiekti programas, plėtinius ir kt. Tai taip pat suteikia organizacijai galimybę tvarkyti saugos ir įrenginio nustatymus ir kt.</translation>
+<translation id="8527869672961320915">„<ph name="VM_NAME" />“ programos</translation>
 <translation id="8528074251912154910">Pridėti kalbų</translation>
 <translation id="8528479410903501741">Išsaugoti IBAN</translation>
 <translation id="8528962588711550376">Prisijungiama.</translation>
@@ -9378,6 +9385,7 @@
 <translation id="8736288397686080465">Ši svetainė atnaujinta fone.</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Pasirinkite kalbą, į kurią norite versti puslapį</translation>
+<translation id="8740086188450289493">Naudoti „Google“ paskyros slaptažodį</translation>
 <translation id="8740247629089392745">Galite grąžinti šį „Chromebook“ <ph name="SUPERVISED_USER_NAME" />. Nustatymo procesas beveik baigtas, tada galėsite naršyti.</translation>
 <translation id="8740672167979365981">Reikia atnaujinti „ChromeOS Flex“</translation>
 <translation id="8741944563400125534">Prieigos jungikliu nustatymo vadovas</translation>
@@ -9763,6 +9771,7 @@
 <translation id="9045160989383249058">Skaitymo sąrašas perkeltas į naują šoninį skydelį. Išbandykite čia.</translation>
 <translation id="9045430190527754450">Siunčia puslapio, kurį bandote pasiekti, žiniatinklio adresą „Google“</translation>
 <translation id="9048745018038487540">Pasirinkti visus šriftus</translation>
+<translation id="9050135202879860719">Prisijunkite prie „<ph name="DEVICE_TYPE" />“ naudodami slaptažodį</translation>
 <translation id="9050666287014529139">Slaptafrazė</translation>
 <translation id="9052404922357793350">Toliau blokuoti</translation>
 <translation id="90528604757378587">Veikla fone ir kai kurie vaizdiniai efektai, pvz., sklandus slinkimas, gali būti apriboti.</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 5e351c2..fef28a3 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -1169,6 +1169,7 @@
 <translation id="1925124445985510535"><ph name="TIME" />-ന് സുരക്ഷാ പരിശോധന നടത്തി</translation>
 <translation id="192564025059434655">2022 ഡിസംബറിന് ശേഷം, Chrome ആപ്പുകളുടെ പഴയ പതിപ്പുകൾ Windows ഉപകരണങ്ങളിൽ തുറക്കാനാകില്ല. പുതിയ പതിപ്പ് ലഭ്യമാണോയെന്ന് നിങ്ങൾക്ക് പരിശോധിക്കാം.</translation>
 <translation id="1926339101652878330">ഈ ക്രമീകരണത്തെ നിയന്ത്രിക്കുന്നത് എന്റർപ്രൈസ് നയമാണ്. കൂടുതൽ വിവരങ്ങൾക്ക് നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്ററെ ബന്ധപ്പെടുക.</translation>
+<translation id="1926887872692564784">കഴ്‌സർ</translation>
 <translation id="1927632033341042996"><ph name="NEW_FINGER_NUMBER" />-മത്തെ വിരലടയാളം</translation>
 <translation id="192817607445937251">സ്‌ക്രീൻ ലോക്ക് പിൻ</translation>
 <translation id="192858925209436740">നിങ്ങളുടെ Chromebook-ൽ നിന്ന് സംഭരിച്ച ഡോക്യുമെന്റുകൾ മാനേജ് ചെയ്യാൻ Files ആപ്പിലേക്ക് OneDrive കണക്റ്റ് ചെയ്യുക. നിങ്ങളുടെ Microsoft അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യേണ്ടതുണ്ട്.</translation>
@@ -3270,6 +3271,7 @@
 <translation id="3653887973853407813">നിങ്ങൾക്ക് ഈ വിപുലീകരണം ഉപയോഗിക്കാനാകില്ല. നിങ്ങളുടെ രക്ഷിതാവ് Chrome-ൽ "സൈറ്റുകൾക്കും ആപ്പുകൾക്കും വിപുലീകരണങ്ങൾക്കുമുള്ള അനുമതികൾ" ഓഫാക്കിയിരിക്കുന്നു.</translation>
 <translation id="3653999333232393305">നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ് ചെയ്യാൻ <ph name="HOST" /> എന്നതിനെ അനുവദിക്കുന്നത് തുടരുക</translation>
 <translation id="3654045516529121250">നിങ്ങളുടെ ഉപയോഗസഹായി ക്രമീകരണങ്ങൾ റീഡ് ചെയ്യുക</translation>
+<translation id="3656328935986149999">കഴ്‌സർ വേഗത</translation>
 <translation id="3658871634334445293">TrackPoint ആക്സിലറേഷൻ</translation>
 <translation id="3659550105763988702"><ph name="APP_NAME" /> എന്നതിനുള്ള പാസ്‌കീ ഉപയോഗിക്കുക</translation>
 <translation id="3659929705630080526">നിങ്ങൾ നിരവധി തവണ തെറ്റായ ആക്‌സസ് കോഡ് നൽകി. പിന്നീട് വീണ്ടും ശ്രമിക്കുക</translation>
@@ -3982,6 +3984,7 @@
 <translation id="4232375817808480934">Kerberos കോൺഫിഗർ ചെയ്യുക</translation>
 <translation id="4233739489690259993">നിങ്ങളുടെ Chromebook-ന് ഇനി സുരക്ഷാ, സോഫ്‌റ്റ്‌വെയർ അപ്‌ഡേറ്റുകൾ ലഭിക്കില്ല. ഏറ്റവും പുതിയ സുരക്ഷയ്ക്കും പുതിയ ഫീച്ചറുകൾക്കും നിങ്ങളുടെ ഉപകരണം അപ്ഗ്രേഡ് ചെയ്യുക. ഓഫർ നിബന്ധനകൾ ബാധകം.</translation>
 <translation id="4235965441080806197">സൈൻ ഇൻ റദ്ദാക്കുക</translation>
+<translation id="4235976607074422892">സ്ക്രോളിംഗ് വേഗത</translation>
 <translation id="4237282663517880406">Google Drive നിർദ്ദേശങ്ങൾ കാണിക്കുക</translation>
 <translation id="4241182343707213132">സ്ഥാപനത്തിന്റെ ആപ്പുകൾ അപ്ഡേറ്റ് ചെയ്യാൻ റീസ്റ്റാർട്ട് ചെയ്യുക</translation>
 <translation id="4242145785130247982">ഒന്നിലധികം ക്ലയന്റ് സർട്ടിഫിക്കറ്റുകൾ പിന്തുണയ്‌ക്കുന്നില്ല</translation>
@@ -5304,6 +5307,7 @@
 <translation id="5365881113273618889">നിങ്ങൾ തിരഞ്ഞെടുത്ത ഫോൾഡറിൽ സൂക്ഷ്‌മമായി കൈകാര്യം ചെയ്യേണ്ട ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു. ഈ ഫോൾഡറിലേക്ക് "<ph name="APP_NAME" />" എന്നതിന് റൈറ്റ് ചെയ്യാനുള്ള ശാശ്വതമായ ആക്‌സസ് അനുവദിക്കണമെന്ന് ഉറപ്പാണോ?</translation>
 <translation id="536638840841140142">ഒന്നുമില്ല</translation>
 <translation id="5368246151595623328"><ph name="DEVICE_NAME" /> എന്നതിൽ നിന്ന് '<ph name="NETWORK_NAME" />' സംരക്ഷിച്ചു</translation>
+<translation id="5368255566854433132"><ph name="DEVICE_TYPE" /> പാസ്‌വേഡ് സൃഷ്‌ടിക്കുക</translation>
 <translation id="5368720394188453070">നിങ്ങളുടെ ഫോൺ ലോക്കായിരിക്കുമ്പോൾ. പ്രവേശിക്കുന്നതിന് അത് അൺലോക്ക് ചെയ്യുക.</translation>
 <translation id="5368779022775404937"><ph name="REALM" /> എന്നതിൽ സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="536882527576164740">{0,plural, =1{അദൃശ്യ മോഡ്}other{അദൃശ്യ മോഡ് (#)}}</translation>
@@ -8633,6 +8637,7 @@
 <translation id="8137559199583651773">വിപുലീകരണങ്ങള്‍ നിയന്ത്രിക്കുക</translation>
 <translation id="8138217203226449454">നിങ്ങളുടെ തിരയൽ ദാതാവിനെ മാറ്റാനാണോ നിങ്ങൾ ഉദ്ദേശിച്ചത്?</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> നില</translation>
+<translation id="8139440916039659819">കഴ്‌സർ ആക്സിലറേഷൻ</translation>
 <translation id="8139447493436036221">Google Drive ഫയലുകൾ</translation>
 <translation id="8139643636835015859">ഇത് നിങ്ങളുടെ ഓഫ്‌ലൈൻ ഫയലുകൾ ഉപയോഗിക്കുന്ന <ph name="OFFLINE_STORAGE_SIZE" /> ഇടം നീക്കം ചെയ്യും. ചില ഫയലുകൾ ഇപ്പോഴും ഓഫ്‌ലൈനിൽ ലഭ്യമാകും. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8969,6 +8974,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> എന്നതും മറ്റ് <ph name="COUNT" /> എണ്ണവും അനുവദിച്ചു</translation>
 <translation id="8413956290606243087">ChromeOS-നുള്ള ബിൽറ്റ് ഇൻ സ്ക്രീൻ റീഡർ ആയ ChromeVox സജീവമാക്കണോ?</translation>
+<translation id="8414065061814811918">സ്‌ക്രോൾ ചെയ്യൽ ആക്സിലറേഷൻ. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">മനോഹര ഓർമ്മകൾ രണ്ട് ദിവസത്തേക്ക് മറച്ചു</translation>
 <translation id="8414396119627470038"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ഉപയോഗിച്ച് <ph name="SITE_ETLD_PLUS_ONE" /> എന്നതിലേക്ക് സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="8414685983518053656">കുറിപ്പുകള്‍</translation>
@@ -9095,6 +9101,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">സ്‌പീക്കറുകൾ</translation>
 <translation id="8527257351549797148">നിങ്ങൾക്ക് ആപ്പുകളും വിപുലീകരണങ്ങളും മറ്റും ആക്‌സസ് ചെയ്യാൻ കഴിയുന്നതിന് നിങ്ങളുടെ സ്ഥാപനത്തിന് എൻറോൾമെന്റ് ആവശ്യമായി വന്നേക്കാം. സുരക്ഷാ, ഉപകരണ ക്രമീകരണം പോലുള്ള കാര്യങ്ങൾ മാനേജ് ചെയ്യാനും ഇത് നിങ്ങളുടെ സ്ഥാപനത്തെ അനുവദിക്കുന്നു.</translation>
+<translation id="8527869672961320915"><ph name="VM_NAME" /> ആപ്പുകൾ</translation>
 <translation id="8528074251912154910">ഭാഷകൾ ചേർക്കുക</translation>
 <translation id="8528479410903501741">IBAN സംരക്ഷിക്കുക</translation>
 <translation id="8528962588711550376">പ്രവേശിക്കുന്നു.</translation>
@@ -9351,6 +9358,7 @@
 <translation id="8736288397686080465">ഈ സൈറ്റ് പശ്‌ചാത്തലത്തിൽ അപ്‌ഡേറ്റ് ചെയ്‌തു.</translation>
 <translation id="8737709691285775803">ഷിൽ</translation>
 <translation id="8737914367566358838">പേജ് വിവർത്തനം ചെയ്യാൻ ഭാഷ തിരഞ്ഞെടുക്കുക</translation>
+<translation id="8740086188450289493">Google Account പാസ്‍വേഡ് ഉപയോഗിക്കുക</translation>
 <translation id="8740247629089392745">നിങ്ങൾക്ക് ഈ Chromebook <ph name="SUPERVISED_USER_NAME" /> എന്ന കുട്ടിക്ക് കൈമാറാം. സജ്ജീകരണം ഏതാണ്ട് പൂർത്തിയായി, ഇനി അടുത്തറിയാനുള്ള സമയമാണ്.</translation>
 <translation id="8740672167979365981">ChromeOS Flex അപ്ഡേറ്റ് ആവശ്യമാണ്</translation>
 <translation id="8741944563400125534">സ്വിച്ച് ആക്‌സസ് സജ്ജീകരണ ഗൈഡ്</translation>
@@ -9732,6 +9740,7 @@
 <translation id="9045160989383249058">നിങ്ങളുടെ വായിക്കാനുള്ളവയുടെ ലിസ്റ്റ് പുതിയ സൈഡ് പാനലിലേക്ക് നീക്കി. ഇത് ഇവിടെ പരീക്ഷിക്കൂ.</translation>
 <translation id="9045430190527754450">നിങ്ങൾ എത്തിച്ചേരാൻ ശ്രമിക്കുന്ന പേജിന്റെ വെബ് വിലാസം Google-ലേക്ക് അയയ്ക്കുന്നു</translation>
 <translation id="9048745018038487540">എല്ലാ ഫോണ്ടുകളും തിരഞ്ഞെടുക്കുക</translation>
+<translation id="9050135202879860719">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എന്നതിലേക്ക് സൈൻ ഇൻ ചെയ്യാൻ പാസ്‍വേഡ് ഉപയോഗിക്കുക</translation>
 <translation id="9050666287014529139">പാസ്ഫ്രെയ്‍സ്</translation>
 <translation id="9052404922357793350">ബ്ലോക്ക് ചെയ്യുന്നത് തുടരുക</translation>
 <translation id="90528604757378587">പശ്ചാത്തല ആക്റ്റിവിറ്റിയും സുഗമമായ സ്ക്രോളിംഗ് പോലുള്ള ചില വിഷ്വൽ ഇഫക്റ്റുകളും പരിമിതപ്പെടാം.</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 0a8eaed2..3914680 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -1182,6 +1182,7 @@
 <translation id="1925124445985510535">Semakan keselamatan dijalankan pada <ph name="TIME" /></translation>
 <translation id="192564025059434655">Versi lama Apl Chrome tidak akan dibuka pada peranti Windows selepas Disember 2022. Anda boleh menyemak jika terdapat versi baharu.</translation>
 <translation id="1926339101652878330">Tetapan ini dikawal oleh dasar perusahaan. Sila hubungi pentadbir anda untuk mendapatkan maklumat lanjut.</translation>
+<translation id="1926887872692564784">Kursor</translation>
 <translation id="1927632033341042996">Jari <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="192817607445937251">PIN kunci skrin</translation>
 <translation id="192858925209436740">Sambungkan OneDrive kepada apl Fail untuk mengurus dokumen disimpan anda daripada Chromebook anda. Anda perlu log masuk dengan akaun Microsoft anda.</translation>
@@ -3286,6 +3287,7 @@
 <translation id="3653887973853407813">Anda tidak boleh menggunakan sambungan ini. Ibu/bapa atau penjaga anda telah mematikan “Kebenaran untuk laman web, apl dan sambungan” untuk Chrome.</translation>
 <translation id="3653999333232393305">Terus benarkan <ph name="HOST" /> mengakses mikrofon anda</translation>
 <translation id="3654045516529121250">Baca tetapan kebolehaksesan anda</translation>
+<translation id="3656328935986149999">Kelajuan kursor</translation>
 <translation id="3658871634334445293">Pemecutan TrackPoint</translation>
 <translation id="3659550105763988702">Gunakan kunci laluan anda untuk <ph name="APP_NAME" /></translation>
 <translation id="3659929705630080526">Anda telah memasukkan kod akses yang salah terlalu banyak kali. Cuba sebentar lagi</translation>
@@ -3999,6 +4001,7 @@
 <translation id="4232375817808480934">Konfigurasikan Kerberos</translation>
 <translation id="4233739489690259993">Chromebook anda tidak menerima kemaskinian keselamatan dan perisian lagi. Tingkatkan peranti anda untuk mendapatkan kemaskinian keselamatan terkini dan ciri baharu. Syarat tawaran dikenakan.</translation>
 <translation id="4235965441080806197">Batalkan log masuk</translation>
+<translation id="4235976607074422892">Kelajuan penatalan</translation>
 <translation id="4237282663517880406">Tunjukkan cadangan Google Drive</translation>
 <translation id="4241182343707213132">Mulakan semula peranti untuk mengemas kini apl organisasi</translation>
 <translation id="4242145785130247982">Sijil pelanggan berbilang tidak disokong</translation>
@@ -5322,6 +5325,7 @@
 <translation id="5365881113273618889">Folder yang anda pilih mengandungi fail sensitif. Adakah anda pasti anda mahu memberi "<ph name="APP_NAME" />" akses tulis kekal kepada folder ini?</translation>
 <translation id="536638840841140142">Tiada</translation>
 <translation id="5368246151595623328">'<ph name="NETWORK_NAME" />' disimpan daripada <ph name="DEVICE_NAME" /></translation>
+<translation id="5368255566854433132">Buat kata laluan <ph name="DEVICE_TYPE" /></translation>
 <translation id="5368720394188453070">Telefon anda dikunci. Buka kuncinya untuk masuk.</translation>
 <translation id="5368779022775404937">Log masuk ke <ph name="REALM" /></translation>
 <translation id="536882527576164740">{0,plural, =1{Inkognito}other{Inkognito (#)}}</translation>
@@ -8650,6 +8654,7 @@
 <translation id="8137559199583651773">Uruskan sambungan...</translation>
 <translation id="8138217203226449454">Adakah anda bermaksud untuk menukar penyedia carian anda?</translation>
 <translation id="8138997515734480534">Status <ph name="VM_NAME" /></translation>
+<translation id="8139440916039659819">Pecutan kursor</translation>
 <translation id="8139447493436036221">Fail Google Drive</translation>
 <translation id="8139643636835015859">Tindakan ini akan mengalih keluar <ph name="OFFLINE_STORAGE_SIZE" /> ruang yang digunakan oleh fail luar talian anda. Sesetengah fail masih tersedia luar talian. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8987,6 +8992,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> dan <ph name="COUNT" /> lagi dibenarkan</translation>
 <translation id="8413956290606243087">Adakah anda mahu mengaktifkan ChromeVox, pembaca skrin terbina dalam untuk Chrome OS?</translation>
+<translation id="8414065061814811918">Pecutan penatalan. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">Memori disembunyikan selama dua hari</translation>
 <translation id="8414396119627470038">Log masuk ke <ph name="SITE_ETLD_PLUS_ONE" /> menggunakan <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation>
 <translation id="8414685983518053656">Nota</translation>
@@ -9113,6 +9119,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">Pembesar suara</translation>
 <translation id="8527257351549797148">Organisasi anda mungkin memerlukan pendaftaran supaya anda boleh mengakses apl, sambungan dan pelbagai lagi. Hal ini juga membolehkan organisasi anda mengurus perkara seperti tetapan keselamatan dan peranti.</translation>
+<translation id="8527869672961320915"><ph name="VM_NAME" /> apl</translation>
 <translation id="8528074251912154910">Tambah bahasa</translation>
 <translation id="8528479410903501741">Simpan IBAN</translation>
 <translation id="8528962588711550376">Melog masuk.</translation>
@@ -9369,6 +9376,7 @@
 <translation id="8736288397686080465">Tapak ini dikemas kini di latar belakang.</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Ketik bahasa sasaran untuk penterjemahan halaman tersebut</translation>
+<translation id="8740086188450289493">Gunakan kata laluan Google Account</translation>
 <translation id="8740247629089392745">Anda boleh menyerahkan Chromebook ini kepada <ph name="SUPERVISED_USER_NAME" />. Persediaan hampir selesai, kemudian tibalah masa untuk meneroka.</translation>
 <translation id="8740672167979365981">Kemaskinian Chrome OS Flex diperlukan</translation>
 <translation id="8741944563400125534">Panduan persediaan Akses Suis</translation>
@@ -9751,6 +9759,7 @@
 <translation id="9045160989383249058">Senarai bacaan anda telah dialihkan ke panel sisi baharu. Cuba di sini.</translation>
 <translation id="9045430190527754450">Menghantar alamat web halaman yang cuba anda capai kepada Google</translation>
 <translation id="9048745018038487540">Pilih semua fon</translation>
+<translation id="9050135202879860719">Gunakan kata laluan untuk log masuk ke <ph name="DEVICE_TYPE" /> anda</translation>
 <translation id="9050666287014529139">Frasa laluan</translation>
 <translation id="9052404922357793350">Teruskan menyekat</translation>
 <translation id="90528604757378587">Aktiviti latar belakang dan beberapa kesan visual, seperti penatalan lancar, mungkin terhad.</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 792981f5..51ba091 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -1168,6 +1168,7 @@
 <translation id="1925124445985510535">Kontrola zabezpieczeń została wykonana o <ph name="TIME" /></translation>
 <translation id="192564025059434655">Z końcem grudnia 2022 r. stare wersje aplikacji Chrome przestaną działać na urządzeniach z systemem Windows. Możesz sprawdzić, czy jest dostępna nowa wersja.</translation>
 <translation id="1926339101652878330">Te ustawienia są kontrolowane przez zasady obowiązujące w firmie. Skontaktuj się z administratorem, by uzyskać więcej informacji.</translation>
+<translation id="1926887872692564784">Kursor</translation>
 <translation id="1927632033341042996">Palec nr <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="192817607445937251">Kod PIN blokady ekranu</translation>
 <translation id="192858925209436740">Połącz OneDrive z aplikacją Pliki, aby zarządzać przechowywanymi dokumentami z Chromebooka. Musisz zalogować się na swoje konto Microsoft.</translation>
@@ -3258,6 +3259,7 @@
 <translation id="3653887973853407813">Nie możesz używać tego rozszerzenia. Rodzic lub opiekun wyłączył w Chrome „Uprawnienia stron, aplikacji i rozszerzeń”.</translation>
 <translation id="3653999333232393305">Nadal zezwalaj witrynie <ph name="HOST" /> na dostęp do mikrofonu</translation>
 <translation id="3654045516529121250">Odczyt ustawień ułatwień dostępu</translation>
+<translation id="3656328935986149999">Szybkość kursora</translation>
 <translation id="3658871634334445293">Przyspieszenie TrackPointa</translation>
 <translation id="3659550105763988702">Użyj klucza dla aplikacji <ph name="APP_NAME" /></translation>
 <translation id="3659929705630080526">Zbyt wiele razy podano nieprawidłowy kod dostępu. Spróbuj ponownie później.</translation>
@@ -3971,6 +3973,7 @@
 <translation id="4232375817808480934">Konfigurowanie Kerberos</translation>
 <translation id="4233739489690259993">Twój Chromebook nie otrzymuje już aktualizacji zabezpieczeń ani oprogramowania. Aby mieć dostęp do najnowszych zabezpieczeń i nowych funkcji, zmień go na nowszy model. Obowiązują warunki oferty.</translation>
 <translation id="4235965441080806197">Anuluj logowanie</translation>
+<translation id="4235976607074422892">Szybkość przewijania</translation>
 <translation id="4237282663517880406">Pokazuj sugestie z Dysku Google</translation>
 <translation id="4241182343707213132">Uruchom ponownie, aby zaktualizować aplikacje organizacji</translation>
 <translation id="4242145785130247982">Funkcja nie obsługuje wielu certyfikatów klienta</translation>
@@ -5293,6 +5296,7 @@
 <translation id="5365881113273618889">Wybrany folder zawiera poufne pliki. Czy na pewno chcesz, by aplikacja „<ph name="APP_NAME" />” miała do niego stały dostęp z uprawnieniami do zapisu?</translation>
 <translation id="536638840841140142">Brak</translation>
 <translation id="5368246151595623328">Sieć „<ph name="NETWORK_NAME" />” została zapisana z urządzenia <ph name="DEVICE_NAME" /></translation>
+<translation id="5368255566854433132">Utwórz hasło na urządzenie <ph name="DEVICE_TYPE" /></translation>
 <translation id="5368720394188453070">Twój telefon jest zablokowany. Aby uzyskać do niego dostęp, odblokuj go.</translation>
 <translation id="5368779022775404937">Zaloguj się na <ph name="REALM" /></translation>
 <translation id="536882527576164740">{0,plural, =1{Incognito}few{Incognito (#)}many{Incognito (#)}other{Incognito (#)}}</translation>
@@ -8621,6 +8625,7 @@
 <translation id="8137559199583651773">Zarządzaj rozszerzeniami</translation>
 <translation id="8138217203226449454">Czy chodziło o zmianę dostawcy wyszukiwania?</translation>
 <translation id="8138997515734480534">Stan maszyny wirtualnej <ph name="VM_NAME" /></translation>
+<translation id="8139440916039659819">Przyspieszenie kursora</translation>
 <translation id="8139447493436036221">Pliki na Dysku Google</translation>
 <translation id="8139643636835015859">Spowoduje to usunięcie <ph name="OFFLINE_STORAGE_SIZE" /> danych z miejsca zajętego przez pliki offline. Niektóre pliki będą nadal dostępne offline. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8957,6 +8962,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Przyznano uprawnienia: <ph name="PERMISSION" /> i jeszcze <ph name="COUNT" /></translation>
 <translation id="8413956290606243087">Czy chcesz włączyć ChromeVoksa, czyli wbudowany czytnik ekranu w Chrome OS?</translation>
+<translation id="8414065061814811918">Przyspieszenie przewijania. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">Wspomnienia zostały ukryte na 2 dni</translation>
 <translation id="8414396119627470038">Zaloguj się w <ph name="SITE_ETLD_PLUS_ONE" /> za pomocą <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation>
 <translation id="8414685983518053656">Notatki</translation>
@@ -9083,6 +9089,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">Głośniki</translation>
 <translation id="8527257351549797148">Twoja organizacja może wymagać zarejestrowania się, aby udostępniać Ci aplikacje, rozszerzenia i inne funkcje. Dzięki temu będzie też mogła zarządzać m.in. ustawieniami zabezpieczeń i urządzeń.</translation>
+<translation id="8527869672961320915">Aplikacje <ph name="VM_NAME" /></translation>
 <translation id="8528074251912154910">Dodaj języki</translation>
 <translation id="8528479410903501741">Zapisz numer IBAN</translation>
 <translation id="8528962588711550376">Loguję.</translation>
@@ -9337,6 +9344,7 @@
 <translation id="8736288397686080465">Ta witryna została zaktualizowana w tle.</translation>
 <translation id="8737709691285775803">Menedżer połączeń</translation>
 <translation id="8737914367566358838">Wybierz język, na który chcesz przetłumaczyć stronę</translation>
+<translation id="8740086188450289493">Użyj hasła do konta Google</translation>
 <translation id="8740247629089392745">Możesz przekazać tego Chromebooka użytkownikowi <ph name="SUPERVISED_USER_NAME" />. Prawie wszystko zostało skonfigurowane i można korzystać z urządzenia.</translation>
 <translation id="8740672167979365981">Wymagana aktualizacja ChromeOS Flex</translation>
 <translation id="8741944563400125534">Przewodnik po konfiguracji Switch Access</translation>
@@ -9721,6 +9729,7 @@
 <translation id="9045160989383249058">Twoja lista Do przeczytania została przeniesiona do nowego panelu bocznego. Aby ją zobaczyć, kliknij tutaj.</translation>
 <translation id="9045430190527754450">Wysyła do Google adres internetowy strony, którą próbujesz otworzyć</translation>
 <translation id="9048745018038487540">Zaznacz wszystkie czcionki</translation>
+<translation id="9050135202879860719">Aby zalogować się na urządzeniu <ph name="DEVICE_TYPE" />, podaj hasło</translation>
 <translation id="9050666287014529139">Hasło</translation>
 <translation id="9052404922357793350">Nadal blokuj</translation>
 <translation id="90528604757378587">Aktywność w tle i niektóre efekty wizualne (np. płynne przewijanie) mogą być ograniczone.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index debda1f..1c86a71 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -1170,6 +1170,7 @@
 <translation id="1925124445985510535">A verificação de segurança foi efetuada à(s) <ph name="TIME" />.</translation>
 <translation id="192564025059434655">As versões antigas das Apps do Chrome não vão abrir nos dispositivos Windows depois de dezembro de 2022. Pode verificar se está disponível uma nova versão.</translation>
 <translation id="1926339101652878330">Estas definições são controladas por uma política da empresa. Contacte o gestor para mais informações.</translation>
+<translation id="1926887872692564784">Cursor</translation>
 <translation id="1927632033341042996">Dedo <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="192817607445937251">PIN do bloqueio de ecrã</translation>
 <translation id="192858925209436740">Associe o OneDrive à app Files para gerir os seus documentos armazenados a partir do Chromebook. Vai ter de iniciar sessão com a sua conta Microsoft.</translation>
@@ -3272,6 +3273,7 @@
 <translation id="3653887973853407813">Não podes usar esta extensão. Um dos teus pais ou o teu tutor desativou as "Autorizações para sites, apps e extensões" do Chrome.</translation>
 <translation id="3653999333232393305">Continuar a permitir que <ph name="HOST" /> aceda ao seu microfone</translation>
 <translation id="3654045516529121250">Ler definições de acessibilidade</translation>
+<translation id="3656328935986149999">Velocidade do cursor</translation>
 <translation id="3658871634334445293">Aceleração do TrackPoint</translation>
 <translation id="3659550105763988702">Use a sua token de acesso para a app <ph name="APP_NAME" /></translation>
 <translation id="3659929705630080526">Introduziu um código de acesso incorreto demasiadas vezes. Tente mais tarde</translation>
@@ -3985,6 +3987,7 @@
 <translation id="4232375817808480934">Configure o Kerberos</translation>
 <translation id="4233739489690259993">O seu Chromebook já não está a receber atualizações de segurança e software. Atualize o seu dispositivo para obter novas funcionalidades e as funcionalidades de segurança mais recentes. Aplicam-se os termos da oferta.</translation>
 <translation id="4235965441080806197">Cancelar início de sessão</translation>
+<translation id="4235976607074422892">Velocidade de deslocamento</translation>
 <translation id="4237282663517880406">Mostrar sugestões do Google Drive</translation>
 <translation id="4241182343707213132">Reinicie para atualizar as apps da entidade</translation>
 <translation id="4242145785130247982">Não são suportados certificados de vários clientes.</translation>
@@ -5307,6 +5310,7 @@
 <translation id="5365881113273618889">A pasta que selecionou contém ficheiros confidenciais. Tem a certeza de que quer conceder à aplicação "<ph name="APP_NAME" />" acesso de escrita permanente a esta pasta?</translation>
 <translation id="536638840841140142">Nenhumas</translation>
 <translation id="5368246151595623328">Rede "<ph name="NETWORK_NAME" />" guardada do dispositivo <ph name="DEVICE_NAME" /></translation>
+<translation id="5368255566854433132">Criar palavra-passe do dispositivo <ph name="DEVICE_TYPE" /></translation>
 <translation id="5368720394188453070">O seu telemóvel está bloqueado. Desbloqueie-o para introduzir.</translation>
 <translation id="5368779022775404937">Iniciar sessão em <ph name="REALM" /></translation>
 <translation id="536882527576164740">{0,plural, =1{Navegação anónima}other{Navegação anónima (#)}}</translation>
@@ -8636,6 +8640,7 @@
 <translation id="8137559199583651773">Gerir extensões</translation>
 <translation id="8138217203226449454">Pretendia alterar o seu fornecedor de pesquisas?</translation>
 <translation id="8138997515734480534">Estado: <ph name="VM_NAME" /></translation>
+<translation id="8139440916039659819">Aceleração do cursor</translation>
 <translation id="8139447493436036221">Ficheiros do Google Drive</translation>
 <translation id="8139643636835015859">Esta ação vai remover <ph name="OFFLINE_STORAGE_SIZE" /> de espaço usado pelos seus ficheiros offline. Alguns ficheiros continuam disponíveis offline. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />, <ph name="SECOND_DEVICE" /></translation>
@@ -8972,6 +8977,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Permitiu <ph name="PERMISSION" /> e mais <ph name="COUNT" /></translation>
 <translation id="8413956290606243087">Quer ativar o ChromeVox, o leitor de ecrã incorporado para o ChromeOS?</translation>
+<translation id="8414065061814811918">Aceleração do deslocamento. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">Memórias ocultas durante dois dias</translation>
 <translation id="8414396119627470038">Inicie sessão em <ph name="SITE_ETLD_PLUS_ONE" /> com <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /></translation>
 <translation id="8414685983518053656">Notas</translation>
@@ -9098,6 +9104,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">Altifalantes</translation>
 <translation id="8527257351549797148">A sua organização pode exigir a inscrição para que possa aceder a apps, extensões e muito mais. Isto também permite à sua organização gerir aspetos como definições de segurança e do dispositivo.</translation>
+<translation id="8527869672961320915">Apps <ph name="VM_NAME" /></translation>
 <translation id="8528074251912154910">Adicionar idiomas</translation>
 <translation id="8528479410903501741">Guarde o IBAN</translation>
 <translation id="8528962588711550376">A iniciar sessão.</translation>
@@ -9354,6 +9361,7 @@
 <translation id="8736288397686080465">Este site foi atualizado em segundo plano.</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">Escolha o idioma para o qual quer traduzir a página</translation>
+<translation id="8740086188450289493">Usar palavra-passe da Conta Google</translation>
 <translation id="8740247629089392745">Pode entregar este Chromebook a <ph name="SUPERVISED_USER_NAME" />. A configuração está quase concluída. Depois, pode começar a explorar.</translation>
 <translation id="8740672167979365981">Atualização do ChromeOS Flex necessária</translation>
 <translation id="8741944563400125534">Guia de configuração do acesso por interruptor</translation>
@@ -9736,6 +9744,7 @@
 <translation id="9045160989383249058">A sua lista de leitura foi movida para o novo painel lateral. Experimente-a aqui.</translation>
 <translation id="9045430190527754450">Envia o endereço Web da página a que está a tentar aceder para a Google.</translation>
 <translation id="9048745018038487540">Selecionar todos os tipos de letra</translation>
+<translation id="9050135202879860719">Use uma palavra-passe para iniciar sessão no dispositivo <ph name="DEVICE_TYPE" /></translation>
 <translation id="9050666287014529139">Frase de acesso</translation>
 <translation id="9052404922357793350">Continuar a bloquear</translation>
 <translation id="90528604757378587">A atividade em segundo plano e alguns efeitos visuais, como o deslocamento suave, podem ser limitados.</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 1429a05..05c8ad16 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -2752,7 +2752,7 @@
 <translation id="3211126692872351610">&amp;ค้นหา "<ph name="SEARCH_TERMS" />" ด้วย <ph name="SEARCH_ENGINE" /> ในแท็บใหม่</translation>
 <translation id="321356136776075234">OU อุปกรณ์ (เช่น OU=Chromebook, DC=example, DC=com)</translation>
 <translation id="321367297115597343">เพิ่มบุ๊กมาร์กลงในโฟลเดอร์นี้</translation>
-<translation id="3214531106883826119"><ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" /> เสียงหรือเสียงที่บันทึกไว้ซึ่งคล้ายกับเสียงของคุณอาจเข้าถึงผลการค้นหาส่วนตัวของ <ph name="SUPERVISED_USER_NAME" /> ได้</translation>
+<translation id="3214531106883826119"><ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" /> เสียงหรือเสียงที่บันทึกไว้ซึ่งคล้ายกับเสียงของคุณอาจเข้าถึงผลการค้นหาเฉพาะบุคคลของ <ph name="SUPERVISED_USER_NAME" /> ได้</translation>
 <translation id="3217843140356091325">สร้างทางลัดไหม</translation>
 <translation id="321834671654278338">โปรแกรมถอนการติดตั้ง Linux</translation>
 <translation id="3220943972464248773">หากต้องการซิงค์รหัสผ่าน โปรดยืนยันว่าเป็นคุณ</translation>
@@ -2981,7 +2981,7 @@
 <translation id="3417836307470882032">เวลาแบบทหาร</translation>
 <translation id="3420501302812554910">ต้องรีเซ็ตคีย์ความปลอดภัยภายใน</translation>
 <translation id="3421387094817716717">กุญแจสาธารณะแบบ Elliptic Curve</translation>
-<translation id="3421672904902642628"><ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" /> เสียงหรือเสียงที่บันทึกไว้ซึ่งคล้ายกับเสียงของคุณอาจเข้าถึงผลการค้นหาส่วนตัวหรือ Assistant ของคุณได้</translation>
+<translation id="3421672904902642628"><ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" /> เสียงหรือเสียงที่บันทึกไว้ซึ่งคล้ายกับเสียงของคุณอาจเข้าถึงผลการค้นหาเฉพาะบุคคลหรือ Assistant ของคุณได้</translation>
 <translation id="3423463006624419153">บนโทรศัพท์ "<ph name="PHONE_NAME_1" />" และ "<ph name="PHONE_NAME_2" />" ของคุณ</translation>
 <translation id="3423858849633684918">โปรดเปิดใช้งาน <ph name="PRODUCT_NAME" /> ใหม่</translation>
 <translation id="3424969259347320884">อธิบายว่าคุณกำลังทำอะไรเมื่อแท็บขัดข้อง</translation>
@@ -6127,7 +6127,7 @@
 <translation id="6059925163896151826">อุปกรณ์ USB</translation>
 <translation id="6061408389284235459">ส่งการแจ้งเตือนไปที่ "<ph name="DEVICE_NAME" />" แล้ว</translation>
 <translation id="6063284707309177505">สร้างคิวอาร์โค้ด</translation>
-<translation id="6063847492705284550"><ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" /> เสียงหรือเสียงที่บันทึกไว้ซึ่งคล้ายกับเสียงของคุณอาจเข้าถึงผลการค้นหาส่วนตัวของ <ph name="SUPERVISED_USER_NAME" /> ได้ หากต้องการประหยัดแบตเตอรี่ ในการตั้งค่า Assistant ของ <ph name="SUPERVISED_USER_NAME" /> คุณสามารถเลือกให้ "Ok Google" ใช้งานได้เฉพาะเมื่ออุปกรณ์นี้เชื่อมต่อกับแหล่งพลังงานเท่านั้น</translation>
+<translation id="6063847492705284550"><ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" /> เสียงหรือเสียงที่บันทึกไว้ซึ่งคล้ายกับเสียงของคุณอาจเข้าถึงผลการค้นหาเฉพาะบุคคลของ <ph name="SUPERVISED_USER_NAME" /> ได้ หากต้องการประหยัดแบตเตอรี่ ในการตั้งค่า Assistant ของ <ph name="SUPERVISED_USER_NAME" /> คุณสามารถเลือกให้ "Ok Google" ใช้งานได้เฉพาะเมื่ออุปกรณ์นี้เชื่อมต่อกับแหล่งพลังงานเท่านั้น</translation>
 <translation id="6064217302520318294">ล็อกหน้าจอ</translation>
 <translation id="6065145031947216733">แยกการท่องเว็บไหม</translation>
 <translation id="6065289257230303064">แอตทริบิวต์ไดเรกทอรีหัวเรื่องของใบรับรอง</translation>
@@ -8273,7 +8273,7 @@
 <translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />การอนุญาตให้อุปกรณ์ Chrome OS ส่งรายงานอัตโนมัติจะช่วยให้เราจัดลำดับความสำคัญของสิ่งที่ต้องแก้ไขและปรับปรุงใน Chrome OS ได้ รายงานเหล่านี้ประกอบด้วยข้อมูลต่างๆ เช่น เวลาที่ Chrome OS ขัดข้อง ฟีเจอร์ที่ใช้ จำนวนหน่วยความจำที่ใช้โดยปกติ รวมถึงข้อมูลการวินิจฉัยและการใช้งานแอป Android ข้อมูลรวมบางส่วนจะมีประโยชน์ต่อแอปและพาร์ทเนอร์ของ Google ด้วย เช่น นักพัฒนาแอป Android<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />คุณเริ่มหรือหยุดการอนุญาตรายงานเหล่านี้ได้ทุกเมื่อในการตั้งค่าอุปกรณ์ Chrome OS หากเป็นผู้ดูแลระบบโดเมน คุณเปลี่ยนการตั้งค่านี้ได้ในคอนโซลผู้ดูแลระบบ<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />หากเปิดการตั้งค่ากิจกรรมบนเว็บและแอปไว้สำหรับบัญชี Google ของคุณ ระบบอาจบันทึกข้อมูล Android ไว้ในบัญชีนั้น คุณดูและลบข้อมูล รวมถึงเปลี่ยนแปลงการตั้งค่าบัญชีได้ที่ account.google.com<ph name="END_PARAGRAPH3" /></translation>
-<translation id="7851021205959621355"><ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" /> เสียงหรือเสียงที่บันทึกไว้ซึ่งคล้ายกับเสียงของคุณอาจเข้าถึงผลการค้นหาส่วนตัวหรือ Assistant ของคุณได้ หากต้องการประหยัดแบตเตอรี่ ในการตั้งค่า Assistant คุณสามารถเลือกให้ "Ok Google" ใช้งานได้เฉพาะเมื่ออุปกรณ์นี้เชื่อมต่อกับแหล่งพลังงานเท่านั้น</translation>
+<translation id="7851021205959621355"><ph name="BEGIN_BOLD" />หมายเหตุ:<ph name="END_BOLD" /> เสียงหรือเสียงที่บันทึกไว้ซึ่งคล้ายกับเสียงของคุณอาจเข้าถึงผลการค้นหาเฉพาะบุคคลหรือ Assistant ของคุณได้ หากต้องการประหยัดแบตเตอรี่ ในการตั้งค่า Assistant คุณสามารถเลือกให้ "Ok Google" ใช้งานได้เฉพาะเมื่ออุปกรณ์นี้เชื่อมต่อกับแหล่งพลังงานเท่านั้น</translation>
 <translation id="7851457902707056880">จำกัดการลงชื่อเข้าใช้เฉพาะบัญชีผู้ใช้เท่านั้น โปรดรีบูตและลงชื่อเข้าใช้ด้วยบัญชีของเจ้าของ คอมพิวเตอร์จะรีบูตอัตโนมัติใน 30 วินาที</translation>
 <translation id="7851716364080026749">บล็อกการเข้าถึงกล้องถ่ายรูปและไมโครโฟนทุกครั้ง</translation>
 <translation id="7851720427268294554">โปรแกรมแยกวิเคราะห์ IPP</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 682f147..42f3980 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -1170,6 +1170,7 @@
 <translation id="1925124445985510535">سیفٹی چیک <ph name="TIME" /> پر کیا گیا</translation>
 <translation id="192564025059434655">‏دسمبر 2022 کے بعد، Chrome ایپس کے پرانے ورژنز Windows آلات پر اب مزید نہیں کھل سکیں گے۔ آپ چیک کر سکتے ہیں کہ کیا نیا ورژن دستیاب ہے۔</translation>
 <translation id="1926339101652878330">یہ ترتیبات انٹرپرائز پالیسی کی جانب سے کنٹرول کی جاتی ہیں۔ براہ کرم مزید معلومات کیلئے اپنے منتظم سے رابطہ کریں۔</translation>
+<translation id="1926887872692564784">کرسر</translation>
 <translation id="1927632033341042996">انگلی <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="192817607445937251">‏اسکرین لاک کا PIN</translation>
 <translation id="192858925209436740">‏اپنے Chromebook سے اپنے اسٹور کردہ دستاویزات کا نظم کرنے کے لیے OneDrive کو Files ایپ سے منسلک کریں۔ آپ کو اپنے Microsoft اکاؤنٹ سے سائن ان کرنے کی ضرورت ہوگی۔</translation>
@@ -3273,6 +3274,7 @@
 <translation id="3653887973853407813">‏آپ اس ایکسٹینشن کو استعمال نہیں کر سکتے۔ آپ کے والدین یا سرپرست نے Chrome کے لیے "سائٹس، ایپس اور ایکسٹینشنز کی اجازتوں" کو آف کر دیا ہے۔</translation>
 <translation id="3653999333232393305"><ph name="HOST" /> کو اپنے مائیکروفون تک رسائی حاصل کرنے کی اجازت دینا جاری رکھیں</translation>
 <translation id="3654045516529121250">اپنی ایکسیسبیلٹی ترتیبات پڑھیں</translation>
+<translation id="3656328935986149999">کرسر رفتار</translation>
 <translation id="3658871634334445293">‏TrackPoint ایکسیلریشن</translation>
 <translation id="3659550105763988702"><ph name="APP_NAME" /> کے لئے اپنی پاس کی استعمال کریں</translation>
 <translation id="3659929705630080526">آپ نے کئی مرتبہ غلط رسائی کوڈ درج کیا ہے۔ بعد میں دوبارہ کوشش کریں</translation>
@@ -3986,6 +3988,7 @@
 <translation id="4232375817808480934">‏Kerberos کنفیگر کریں</translation>
 <translation id="4233739489690259993">‏اب آپ کے Chromebook کو سیکیورٹی اور سافٹ ویئر اپ ڈیٹس موصول نہیں ہو رہی ہیں۔ تازہ ترین سیکیورٹی اور نئی خصوصیات کے لیے اپنے آلے کو اپ گریڈ کریں۔ پیشکش کی شرائط لاگو ہوتی ہیں۔</translation>
 <translation id="4235965441080806197">سائن ان کو منسوخ کریں</translation>
+<translation id="4235976607074422892">سکرول کرنے کی رفتار</translation>
 <translation id="4237282663517880406">‏Google Drive کی تجاویز دکھائیں</translation>
 <translation id="4241182343707213132">تنظیم کی ایپس کو اپ ڈیٹ کرنے کے لیے ری سٹارٹ کریں</translation>
 <translation id="4242145785130247982">متعدد کلائنٹ سرٹیفکیٹس تعاون یافتہ نہیں ہیں</translation>
@@ -5308,6 +5311,7 @@
 <translation id="5365881113273618889">آپ کے منتخب کردہ فولڈر میں حساس فائلز شامل ہیں۔ کیا آپ واقعی "<ph name="APP_NAME" />" کو اس فولڈر میں لکھنے کی مستقل رسائی دینا چاہتے ہیں؟</translation>
 <translation id="536638840841140142">کوئی نہیں</translation>
 <translation id="5368246151595623328">'<ph name="NETWORK_NAME" />' کو <ph name="DEVICE_NAME" /> سے محفوظ کیا گیا</translation>
+<translation id="5368255566854433132"><ph name="DEVICE_TYPE" /> کا پاس ورڈ تخلیق کریں</translation>
 <translation id="5368720394188453070">آپ کا فون مقفل ہے۔ داخل ہونے کیلئے اسے غیر مقفل کریں۔</translation>
 <translation id="5368779022775404937"><ph name="REALM" /> میں سائن ان کریں</translation>
 <translation id="536882527576164740">{0,plural, =1{پوشیدگی}other{پوشیدگی (#)}}</translation>
@@ -8633,6 +8637,7 @@
 <translation id="8137559199583651773">ایکسٹینشنز کا نظم کریں</translation>
 <translation id="8138217203226449454">کیا آپ کا مطلب اپنے تلاش فراہم کنندہ کو تبدیل کرنا ہے؟</translation>
 <translation id="8138997515734480534"><ph name="VM_NAME" /> کا اسٹیٹس</translation>
+<translation id="8139440916039659819">کرسر ایکسلریشن</translation>
 <translation id="8139447493436036221">‏Google Drive فائلز</translation>
 <translation id="8139643636835015859">اس سے آپ کی آف لائن فائلز کے ذریعے استعمال کردہ <ph name="OFFLINE_STORAGE_SIZE" /> جگہ ہٹ جائے گی۔ کچھ فائلز اب بھی آف لائن دستیاب رہیں گی۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
 <translation id="8140070492745508800"><ph name="FIRST_DEVICE" />، <ph name="SECOND_DEVICE" /></translation>
@@ -8969,6 +8974,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> اور مزید <ph name="COUNT" /> کی اجازت دی گئی</translation>
 <translation id="8413956290606243087">‏کیا آپ ChromeOS کے لئے پہلے سے موجود اسکرین ریڈر، ChromeVox کو فعال کرنا چاہتے ہیں؟</translation>
+<translation id="8414065061814811918">سکرول ایکسلریشن۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation>
 <translation id="8414249071344507766">دو دنوں کے لیے مخفی میموریز</translation>
 <translation id="8414396119627470038"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> کے ساتھ <ph name="SITE_ETLD_PLUS_ONE" /> میں سائن ان کریں</translation>
 <translation id="8414685983518053656">نوٹس</translation>
@@ -9095,6 +9101,7 @@
 <translation id="8526813720153458066">SSH</translation>
 <translation id="8527228059738193856">اسپیکرز</translation>
 <translation id="8527257351549797148">آپ کی تنظیم کو اندراج کی ضرورت ہو سکتی ہے تاکہ آپ ایپس، ایکسٹینشنز وغیرہ تک رسائی حاصل کر سکیں۔ اس سے آپ کی تنظیم کو سیکیورٹی اور آلے کی ترتیبات جیسی چیزوں کا نظم کرنے کی بھی اجازت ملتی ہے۔</translation>
+<translation id="8527869672961320915"><ph name="VM_NAME" /> ایپس</translation>
 <translation id="8528074251912154910">زبانیں شامل کریں</translation>
 <translation id="8528479410903501741">‏IBAN محفوظ کریں</translation>
 <translation id="8528962588711550376">سائن ان کیا جا رہا ہے۔</translation>
@@ -9351,6 +9358,7 @@
 <translation id="8736288397686080465">اس سائٹ کو بیک گراؤنڈ میں اپ ڈیٹ کر دیا گیا ہے۔</translation>
 <translation id="8737709691285775803">Shill</translation>
 <translation id="8737914367566358838">صفحے کا ترجمہ کرنے کے لیے زبان منتخب کریں</translation>
+<translation id="8740086188450289493">‏Google اکاؤنٹ کا پاس ورڈ استعمال کریں</translation>
 <translation id="8740247629089392745">‏آپ اس Chromebook کو <ph name="SUPERVISED_USER_NAME" /> کو دے سکتے ہیں۔ سیٹ اپ تقریباً مکمل ہو گیا ہے، اب اسے دریافت کرنے کا وقت ہے۔</translation>
 <translation id="8740672167979365981">‏ChromeOS Flex اپ ڈیٹ درکار ہے</translation>
 <translation id="8741944563400125534">سوئچ رسائی کی سیٹ اپ گائیڈ</translation>
@@ -9733,6 +9741,7 @@
 <translation id="9045160989383249058">آپ کی پڑھنے کی فہرست نئے سائیڈ پینل میں منتقل ہو گئی ہے۔ اسے یہاں آزمائیں۔</translation>
 <translation id="9045430190527754450">‏Google کو اس صفحے کا ویب پتہ بھیجتا ہے جس تک آپ رسائی حاصل کرنے کی کوشش کر رہے ہیں</translation>
 <translation id="9048745018038487540">سبھی فونٹس منتخب کریں</translation>
+<translation id="9050135202879860719">اپنے <ph name="DEVICE_TYPE" /> میں سائن ان کرنے کے لیے پاس ورڈ استعمال کریں</translation>
 <translation id="9050666287014529139">پاس فریز</translation>
 <translation id="9052404922357793350">مسدود کرنا جاری رکھیں</translation>
 <translation id="90528604757378587">پس منظر کی سرگرمی اور کچھ بصری اثرات، جیسے ہموار اسکرولنگ، محدود ہو سکتے ہیں۔</translation>
diff --git a/chrome/app/vector_icons/webauthn/passkey_error.icon b/chrome/app/vector_icons/webauthn/passkey_error.icon
index 2509269..24d9b9bb 100644
--- a/chrome/app/vector_icons/webauthn/passkey_error.icon
+++ b/chrome/app/vector_icons/webauthn/passkey_error.icon
@@ -3,12 +3,6 @@
 // found in the LICENSE file.
 
 CANVAS_DIMENSIONS, 316,
-PATH_COLOR_ARGB, 0xFF, 0xFF, 0xFF, 0xFF,
-MOVE_TO, 316, 0,
-H_LINE_TO, 0,
-R_V_LINE_TO, 112,
-R_H_LINE_TO, 316,
-CLOSE,
 NEW_PATH,
 PATH_COLOR_ARGB, 0xFF, 0xDA, 0xDC, 0xE0,
 CIRCLE, 206, 48, 10,
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index fd843b0..3a644ca0 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -868,6 +868,14 @@
     "navigation_predictor/navigation_predictor_metrics_document_data.h",
     "navigation_predictor/navigation_predictor_preconnect_client.cc",
     "navigation_predictor/navigation_predictor_preconnect_client.h",
+    "navigation_predictor/preloading_model_executor.cc",
+    "navigation_predictor/preloading_model_executor.h",
+    "navigation_predictor/preloading_model_handler.cc",
+    "navigation_predictor/preloading_model_handler.h",
+    "navigation_predictor/preloading_model_keyed_service.cc",
+    "navigation_predictor/preloading_model_keyed_service.h",
+    "navigation_predictor/preloading_model_keyed_service_factory.cc",
+    "navigation_predictor/preloading_model_keyed_service_factory.h",
     "navigation_predictor/search_engine_preconnector.cc",
     "navigation_predictor/search_engine_preconnector.h",
     "net/chrome_mojo_proxy_resolver_factory.cc",
@@ -1076,6 +1084,8 @@
     "password_manager/chrome_webauthn_credentials_delegate_factory.h",
     "password_manager/credentials_cleaner_runner_factory.cc",
     "password_manager/credentials_cleaner_runner_factory.h",
+    "password_manager/field_info_manager_factory.cc",
+    "password_manager/field_info_manager_factory.h",
     "password_manager/password_manager_settings_service_factory.cc",
     "password_manager/password_manager_settings_service_factory.h",
     "password_manager/password_manager_settings_service_impl.cc",
@@ -2544,6 +2554,7 @@
       "search_engine_choice/search_engine_choice_service_factory.cc",
       "search_engine_choice/search_engine_choice_service_factory.h",
     ]
+    deps += [ "//chrome/browser/ui/webui/search_engine_choice:mojo_bindings" ]
   }
 
   if (is_linux || is_chromeos) {
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index dfd8db44..c1b4aef 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -9933,10 +9933,6 @@
          kServiceWorkerSkipIgnorableFetchHandlerVariations,
          "ServiceWorkerSkipIgnorableFetchHandler")},
 
-    {"passwords-import-m2", flag_descriptions::kPasswordsImportM2Name,
-     flag_descriptions::kPasswordsImportM2Description, kOsDesktop,
-     FEATURE_VALUE_TYPE(password_manager::features::kPasswordsImportM2)},
-
 #if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
     {flag_descriptions::kDesktopPWAsAppHomePageFlagId,
      flag_descriptions::kDesktopPWAsAppHomePageName,
diff --git a/chrome/browser/android/persisted_tab_data/leveldb_persisted_tab_data_storage_android.cc b/chrome/browser/android/persisted_tab_data/leveldb_persisted_tab_data_storage_android.cc
index aea0898..53d4c6d1 100644
--- a/chrome/browser/android/persisted_tab_data/leveldb_persisted_tab_data_storage_android.cc
+++ b/chrome/browser/android/persisted_tab_data/leveldb_persisted_tab_data_storage_android.cc
@@ -37,6 +37,10 @@
   return base::StringPrintf("%d-%s", tab_id, data_id);
 }
 
+const std::string GetKeyAll(int tab_id) {
+  return base::StringPrintf("%d-", tab_id);
+}
+
 }  // namespace
 
 LevelDBPersistedTabDataStorageAndroid::
@@ -68,6 +72,11 @@
                                      base::BindOnce(&OnUpdateCallback));
 }
 
+void LevelDBPersistedTabDataStorageAndroid::RemoveAll(int tab_id) {
+  proto_db_->DeleteContentWithPrefix(GetKeyAll(tab_id),
+                                     base::BindOnce(&OnUpdateCallback));
+}
+
 LevelDBPersistedTabDataStorageAndroid::LevelDBPersistedTabDataStorageAndroid(
     Profile* profile)
     : proto_db_(
diff --git a/chrome/browser/android/persisted_tab_data/leveldb_persisted_tab_data_storage_android.h b/chrome/browser/android/persisted_tab_data/leveldb_persisted_tab_data_storage_android.h
index b2bcfd78..6186dc12 100644
--- a/chrome/browser/android/persisted_tab_data/leveldb_persisted_tab_data_storage_android.h
+++ b/chrome/browser/android/persisted_tab_data/leveldb_persisted_tab_data_storage_android.h
@@ -33,6 +33,10 @@
   // Remove entry in the database for a given |tab_id| and |data_id|.
   void Remove(int tab_id, const char* data_id) override;
 
+  // Remove entries in the database for all PersistedTabDataAndroid for a given
+  // |tab_id|
+  void RemoveAll(int tab_id) override;
+
  private:
   friend class LevelDBPersistedTabDataStorageAndroidFactory;
   explicit LevelDBPersistedTabDataStorageAndroid(Profile* profile);
diff --git a/chrome/browser/android/persisted_tab_data/persisted_tab_data_android.cc b/chrome/browser/android/persisted_tab_data/persisted_tab_data_android.cc
index ac7eba38..5d8fdab 100644
--- a/chrome/browser/android/persisted_tab_data/persisted_tab_data_android.cc
+++ b/chrome/browser/android/persisted_tab_data/persisted_tab_data_android.cc
@@ -4,9 +4,11 @@
 
 #include "chrome/browser/android/persisted_tab_data/persisted_tab_data_android.h"
 
+#include "base/no_destructor.h"
 #include "chrome/browser/android/persisted_tab_data/persisted_tab_data_config_android.h"
 #include "chrome/browser/android/persisted_tab_data/persisted_tab_data_storage_android.h"
 #include "chrome/browser/android/tab_android.h"
+#include "chrome/browser/tab/jni_headers/PersistedTabData_jni.h"
 #include "chrome/browser/ui/android/tab_model/tab_model.h"
 #include "chrome/browser/ui/android/tab_model/tab_model_list.h"
 #include "content/public/browser/browser_thread.h"
@@ -105,9 +107,71 @@
   persisted_tab_data_storage_android_->Remove(tab_id_, data_id_);
 }
 
+void PersistedTabDataAndroid::RemoveAll(int tab_id, Profile* profile) {
+  std::unique_ptr<std::vector<PersistedTabDataStorageAndroid*>> storage =
+      PersistedTabDataConfigAndroid::GetAllStorage(profile);
+  for (PersistedTabDataStorageAndroid* persisted_tab_data_storage_android :
+       *storage) {
+    persisted_tab_data_storage_android->RemoveAll(tab_id);
+  }
+}
+
+void PersistedTabDataAndroid::OnTabClose(TabAndroid* tab_android) {
+  // TODO(b/295219049) cleanup orphaned data
+  Profile* profile = GetProfile(tab_android);
+  if (!profile || profile->IsOffTheRecord()) {
+    return;
+  }
+  PersistedTabDataAndroid::RemoveAll(tab_android->GetAndroidId(), profile);
+}
+
+void PersistedTabDataAndroid::ExistsForTesting(
+    TabAndroid* tab_android,
+    const void* user_data_key,
+    base::OnceCallback<void(bool)> exists_callback) {
+  std::unique_ptr<PersistedTabDataConfigAndroid>
+      persisted_tab_data_config_android = PersistedTabDataConfigAndroid::Get(
+          user_data_key, GetProfile(tab_android));
+  persisted_tab_data_config_android->persisted_tab_data_storage_android()
+      ->Restore(tab_android->GetAndroidId(),
+                persisted_tab_data_config_android->data_id(),
+                base::BindOnce(
+                    [](base::OnceCallback<void(bool)> exists_callback,
+                       const std::vector<uint8_t>& data) {
+                      content::GetUIThreadTaskRunner({})->PostTask(
+                          FROM_HERE, base::BindOnce(std::move(exists_callback),
+                                                    !data.empty()));
+                    },
+                    std::move(exists_callback)));
+}
+
 Profile* PersistedTabDataAndroid::GetProfile(TabAndroid* tab_android) {
+  if (tab_android->GetProfile()) {
+    return tab_android->GetProfile();
+  }
   TabModel* tab_model = TabModelList::GetTabModelForTabAndroid(tab_android);
-  return tab_model->GetProfile();
+  if (tab_model) {
+    return tab_model->GetProfile();
+  }
+  return nullptr;
+}
+
+class PersistedTabDataAndroidHelper {
+ private:
+  friend void ::JNI_PersistedTabData_OnTabClose(
+      JNIEnv* env,
+      const base::android::JavaParamRef<jobject>& j_tab);
+
+  static void OnTabClose(TabAndroid* tab_android) {
+    PersistedTabDataAndroid::OnTabClose(tab_android);
+  }
+};
+
+static void JNI_PersistedTabData_OnTabClose(
+    JNIEnv* env,
+    const base::android::JavaParamRef<jobject>& j_tab) {
+  TabAndroid* tab_android = TabAndroid::GetNativeTab(env, j_tab);
+  PersistedTabDataAndroidHelper::OnTabClose(tab_android);
 }
 
 TAB_ANDROID_USER_DATA_KEY_IMPL(PersistedTabDataAndroid)
diff --git a/chrome/browser/android/persisted_tab_data/persisted_tab_data_android.h b/chrome/browser/android/persisted_tab_data/persisted_tab_data_android.h
index a87ff6e..aa9c2f5 100644
--- a/chrome/browser/android/persisted_tab_data/persisted_tab_data_android.h
+++ b/chrome/browser/android/persisted_tab_data/persisted_tab_data_android.h
@@ -10,7 +10,9 @@
 #include "base/functional/callback_forward.h"
 #include "base/memory/raw_ptr.h"
 #include "chrome/browser/android/tab_android_user_data.h"
+#include "chrome/browser/profiles/profile_manager.h"
 
+class PersistedTabDataAndroidHelper;
 class PersistedTabDataStorageAndroid;
 class TabAndroid;
 
@@ -50,9 +52,23 @@
   // destroyed)
   void Remove();
 
+  // Remove all PersistedTabDataAndroid entries stored for |tab_id| related
+  // to a given |profile|.
+  static void RemoveAll(int tab_id, Profile* profile);
+
+  // Determines if PersistedTabDataAndroid exists for the corresponding
+  // |tab_android| and |user_data_key|. Returns true/false in
+  // |exists_callback|.
+  static void ExistsForTesting(TabAndroid* tab_android,
+                               const void* user_data_key,
+                               base::OnceCallback<void(bool)> exists_callback);
+
  private:
+  friend class PersistedTabDataAndroidBrowserTest;
   friend class TabAndroidUserData<PersistedTabDataAndroid>;
+  friend class SensitivityPersistedTabDataAndroid;
   friend class SensitivityPersistedTabDataAndroidBrowserTest;
+  friend class PersistedTabDataAndroidHelper;
 
   // Storage implementation for PersistedTabData (currently only LevelDB is
   // supported) However, support may be added for other storage modes (e.g.
@@ -64,6 +80,9 @@
 
   int tab_id_;
 
+  // Called when a Tab is closed.
+  static void OnTabClose(TabAndroid* tab_android);
+
   static Profile* GetProfile(TabAndroid* tab_android);
 
   TAB_ANDROID_USER_DATA_KEY_DECL();
diff --git a/chrome/browser/android/persisted_tab_data/persisted_tab_data_android_browsertest.cc b/chrome/browser/android/persisted_tab_data/persisted_tab_data_android_browsertest.cc
new file mode 100644
index 0000000..bc90174b
--- /dev/null
+++ b/chrome/browser/android/persisted_tab_data/persisted_tab_data_android_browsertest.cc
@@ -0,0 +1,156 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/android/persisted_tab_data/persisted_tab_data_android.h"
+#include "chrome/browser/android/persisted_tab_data/test/bar_persisted_tab_data.h"
+#include "chrome/browser/android/persisted_tab_data/test/foo_persisted_tab_data.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/android/tab_model/tab_model.h"
+#include "chrome/browser/ui/android/tab_model/tab_model_list.h"
+#include "chrome/test/base/android/android_browser_test.h"
+#include "chrome/test/base/chrome_test_utils.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/browser_test_utils.h"
+#include "net/dns/mock_host_resolver.h"
+#include "net/test/embedded_test_server/embedded_test_server.h"
+
+class PersistedTabDataAndroidBrowserTest : public AndroidBrowserTest {
+ public:
+  PersistedTabDataAndroidBrowserTest() = default;
+
+  void SetUpOnMainThread() override {
+    host_resolver()->AddRule("*", "127.0.0.1");
+    ASSERT_TRUE(embedded_test_server()->Start());
+
+    // Create a second Tab.
+    TabModel* tab_model =
+        TabModelList::GetTabModelForWebContents(web_contents());
+    std::unique_ptr<content::WebContents> contents =
+        content::WebContents::Create(
+            content::WebContents::CreateParams(profile()));
+    content::WebContents* second_web_contents = contents.release();
+    tab_model->CreateTab(tab_android(), second_web_contents);
+  }
+
+  TabAndroid* tab_android() {
+    return TabAndroid::FromWebContents(web_contents());
+  }
+
+  TabAndroid* another_tab() {
+    TabModel* tab_model =
+        TabModelList::GetTabModelForWebContents(web_contents());
+    return tab_model->GetTabAt(1);
+  }
+
+  void FooExistsForTesting(TabAndroid* tab_android,
+                           bool expect_exists,
+                           base::RunLoop& run_loop) {
+    FooPersistedTabDataAndroid::ExistsForTesting(
+        tab_android,
+        base::BindOnce(
+            [](base::OnceClosure done, bool expect_exists, bool exists) {
+              EXPECT_EQ(expect_exists, exists);
+              std::move(done).Run();
+            },
+            run_loop.QuitClosure(), expect_exists));
+  }
+
+  void BarExistsForTesting(TabAndroid* tab_android,
+                           bool expect_exists,
+                           base::RunLoop& run_loop) {
+    BarPersistedTabDataAndroid::ExistsForTesting(
+        tab_android,
+        base::BindOnce(
+            [](base::OnceClosure done, bool expect_exists, bool exists) {
+              EXPECT_EQ(expect_exists, exists);
+              std::move(done).Run();
+            },
+            run_loop.QuitClosure(), expect_exists));
+  }
+
+  void OnTabClose(TabAndroid* tab_android) {
+    PersistedTabDataAndroid::OnTabClose(tab_android);
+  }
+
+ private:
+  content::WebContents* web_contents() {
+    return chrome_test_utils::GetActiveWebContents(this);
+  }
+
+  Profile* profile() {
+    auto* web_contents = chrome_test_utils::GetActiveWebContents(this);
+    return Profile::FromBrowserContext(web_contents->GetBrowserContext());
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(PersistedTabDataAndroidBrowserTest, TestRemoveAll) {
+  // Save FooPersistedTabDataAndroid and BarPersistedTabDataAndroid for
+  // tab_android()
+  FooPersistedTabDataAndroid foo_persisted_tab_data_android(tab_android());
+  foo_persisted_tab_data_android.SetValue(42);
+  BarPersistedTabDataAndroid bar_persisted_tab_data_android(tab_android());
+  bar_persisted_tab_data_android.SetValue(true);
+
+  // FooPersistedTabDataAndroid and BarPersistedTabDataAndroid should both
+  // be in storage now for tab_android()
+  base::RunLoop run_loop[4];
+  FooExistsForTesting(tab_android(), true, run_loop[0]);
+  run_loop[0].Run();
+  BarExistsForTesting(tab_android(), true, run_loop[1]);
+  run_loop[1].Run();
+
+  OnTabClose(tab_android());
+
+  // FooPersistedTabDataAndroid and BarPersistedTabDataAndroid should both
+  // be removed following a Tab close of tab_android().
+  FooExistsForTesting(tab_android(), false, run_loop[2]);
+  run_loop[2].Run();
+  BarExistsForTesting(tab_android(), false, run_loop[3]);
+  run_loop[3].Run();
+}
+
+IN_PROC_BROWSER_TEST_F(PersistedTabDataAndroidBrowserTest,
+                       TestRemoveAllMultipleTabs) {
+  // Save FooPersistedTabDataAndroid and BarPersistedTabDataAndroid for
+  // tab_android() and another_tab().
+  FooPersistedTabDataAndroid foo_persisted_tab_data_android(tab_android());
+  foo_persisted_tab_data_android.SetValue(42);
+  BarPersistedTabDataAndroid bar_persisted_tab_data_android(tab_android());
+  bar_persisted_tab_data_android.SetValue(true);
+  FooPersistedTabDataAndroid another_tab_foo_persisted_tab_data_android(
+      another_tab());
+  another_tab_foo_persisted_tab_data_android.SetValue(32);
+  BarPersistedTabDataAndroid another_tab_bar_persisted_tab_data_android(
+      another_tab());
+  another_tab_bar_persisted_tab_data_android.SetValue(false);
+
+  // FooPersistedTabDataAndroid and BarPersistedTabDataAndroid should both
+  // exist for tab_android() and another_tab().
+  base::RunLoop run_loop[8];
+  FooExistsForTesting(tab_android(), true, run_loop[0]);
+  run_loop[0].Run();
+  FooExistsForTesting(another_tab(), true, run_loop[1]);
+  run_loop[1].Run();
+  BarExistsForTesting(tab_android(), true, run_loop[2]);
+  run_loop[2].Run();
+  BarExistsForTesting(another_tab(), true, run_loop[3]);
+  run_loop[3].Run();
+
+  OnTabClose(tab_android());
+
+  // FooPersistedTabDataAndroid and BarPersistedTabDataAndroid should
+  // both be removed following a Tab close of tab_android(). However,
+  // another_tab() is still open so FooPersistedTabDataAndroid and
+  // BarPersistedTabDataAndroid should still be in storage for
+  // another_tab().
+  FooExistsForTesting(tab_android(), false, run_loop[4]);
+  run_loop[4].Run();
+  BarExistsForTesting(tab_android(), false, run_loop[5]);
+  run_loop[5].Run();
+  FooExistsForTesting(another_tab(), true, run_loop[6]);
+  run_loop[6].Run();
+  BarExistsForTesting(another_tab(), true, run_loop[7]);
+  run_loop[7].Run();
+}
diff --git a/chrome/browser/android/persisted_tab_data/persisted_tab_data_config_android.cc b/chrome/browser/android/persisted_tab_data/persisted_tab_data_config_android.cc
index ff2b7c9..89c4fada 100644
--- a/chrome/browser/android/persisted_tab_data/persisted_tab_data_config_android.cc
+++ b/chrome/browser/android/persisted_tab_data/persisted_tab_data_config_android.cc
@@ -33,3 +33,17 @@
   NOTREACHED() << "Unknown UserDataKey";
   return nullptr;
 }
+
+std::unique_ptr<std::vector<PersistedTabDataStorageAndroid*>>
+PersistedTabDataConfigAndroid::GetAllStorage(Profile* profile) {
+  std::unique_ptr<std::vector<PersistedTabDataStorageAndroid*>> storage =
+      std::make_unique<std::vector<PersistedTabDataStorageAndroid*>>();
+  if (profile) {
+    DCHECK(LevelDBPersistedTabDataStorageAndroidFactory::GetInstance()
+               ->GetForBrowserContext(profile));
+    storage->push_back(
+        LevelDBPersistedTabDataStorageAndroidFactory::GetInstance()
+            ->GetForBrowserContext(profile));
+  }
+  return storage;
+}
diff --git a/chrome/browser/android/persisted_tab_data/persisted_tab_data_config_android.h b/chrome/browser/android/persisted_tab_data/persisted_tab_data_config_android.h
index ee72d7d..bd28d86 100644
--- a/chrome/browser/android/persisted_tab_data/persisted_tab_data_config_android.h
+++ b/chrome/browser/android/persisted_tab_data/persisted_tab_data_config_android.h
@@ -30,6 +30,9 @@
   }
   const char* data_id() { return data_id_; }
 
+  static std::unique_ptr<std::vector<PersistedTabDataStorageAndroid*>>
+  GetAllStorage(Profile* profile);
+
  private:
   raw_ptr<PersistedTabDataStorageAndroid> persisted_tab_data_storage_;
   raw_ptr<const char> data_id_;
diff --git a/chrome/browser/android/persisted_tab_data/persisted_tab_data_storage_android.h b/chrome/browser/android/persisted_tab_data/persisted_tab_data_storage_android.h
index daea11b2..854be5f 100644
--- a/chrome/browser/android/persisted_tab_data/persisted_tab_data_storage_android.h
+++ b/chrome/browser/android/persisted_tab_data/persisted_tab_data_storage_android.h
@@ -29,6 +29,10 @@
 
   // Remove data for a Tab ID, Data ID pair
   virtual void Remove(int tab_id, const char* data_id) = 0;
+
+  // Remove entries in the database for all PersistedTabDataAndroid for a given
+  // |tab_id|
+  virtual void RemoveAll(int tab_id) = 0;
 };
 
 #endif  // CHROME_BROWSER_ANDROID_PERSISTED_TAB_DATA_PERSISTED_TAB_DATA_STORAGE_ANDROID_H_
diff --git a/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android.cc b/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android.cc
index 28dc870..36a41a2 100644
--- a/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android.cc
+++ b/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android.cc
@@ -76,4 +76,12 @@
   set_is_sensitive(result.GetContentVisibilityScore() < 0.5);
 }
 
+void SensitivityPersistedTabDataAndroid::ExistsForTesting(
+    TabAndroid* tab_android,
+    base::OnceCallback<void(bool)> exists_callback) {
+  PersistedTabDataAndroid::ExistsForTesting(
+      tab_android, SensitivityPersistedTabDataAndroid::UserDataKey(),
+      std::move(exists_callback));
+}
+
 TAB_ANDROID_USER_DATA_KEY_IMPL(SensitivityPersistedTabDataAndroid)
diff --git a/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android.h b/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android.h
index 9dd1d3f2..3d274b7 100644
--- a/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android.h
+++ b/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android.h
@@ -47,13 +47,18 @@
   friend class TabAndroidUserData<SensitivityPersistedTabDataAndroid>;
   friend class SensitivityPersistedTabDataAndroidBrowserTest;
   // TODO(crbug.com/1457995) Consider making is_sensitive_ absl::option<bool>
-  bool is_sensitive_;
+  bool is_sensitive_ = false;
   raw_ptr<TabAndroid> tab_;
 
   // Not owned. Register manually through RegisterPCAService
   raw_ptr<optimization_guide::PageContentAnnotationsService>
       page_content_annotations_service_ = nullptr;
 
+  // Determine if SensitivityPersistedTabDataAndroid exists for |tab_android|.
+  // true/false result returned in |exists_callback|.
+  static void ExistsForTesting(TabAndroid* tab_android,
+                               base::OnceCallback<void(bool)> exists_callback);
+
   TAB_ANDROID_USER_DATA_KEY_DECL();
 };
 
diff --git a/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android_browsertest.cc b/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android_browsertest.cc
index 7a6b9bbdd..dbbb4f0 100644
--- a/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android_browsertest.cc
+++ b/chrome/browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android_browsertest.cc
@@ -59,6 +59,23 @@
     return sptda->Serialize();
   }
 
+  void OnTabClose(TabAndroid* tab_android) {
+    PersistedTabDataAndroid::OnTabClose(tab_android);
+  }
+
+  void ExistsForTesting(TabAndroid* tab_android,
+                        bool expect_exists,
+                        base::RunLoop& run_loop) {
+    SensitivityPersistedTabDataAndroid::ExistsForTesting(
+        tab_android,
+        base::BindOnce(
+            [](base::OnceClosure done, bool expect_exists, bool exists) {
+              EXPECT_EQ(expect_exists, exists);
+              std::move(done).Run();
+            },
+            run_loop.QuitClosure(), expect_exists));
+  }
+
  private:
   Profile* profile() {
     auto* web_contents = chrome_test_utils::GetActiveWebContents(this);
@@ -194,3 +211,25 @@
           run_loop.QuitClosure()));
   run_loop.Run();
 }
+
+IN_PROC_BROWSER_TEST_F(SensitivityPersistedTabDataAndroidBrowserTest,
+                       TestOnComplete) {
+  base::RunLoop run_loop[3];
+  TabAndroid* tab_android = TabAndroid::FromWebContents(web_contents());
+  // Creates a SensitivityPersistedTabDataAndroid and stores on disk.
+  SensitivityPersistedTabDataAndroid::From(
+      tab_android, base::BindOnce(
+                       [](base::OnceClosure done,
+                          PersistedTabDataAndroid* persisted_tab_data) {
+                         EXPECT_NE(nullptr, persisted_tab_data);
+                         std::move(done).Run();
+                       },
+                       run_loop[0].QuitClosure()));
+  run_loop[0].Run();
+  ExistsForTesting(tab_android, true, run_loop[1]);
+  run_loop[1].Run();
+  // Should clean up SensitivityPersistedTabDataAndroid
+  OnTabClose(tab_android);
+  ExistsForTesting(tab_android, false, run_loop[2]);
+  run_loop[2].Run();
+}
diff --git a/chrome/browser/android/persisted_tab_data/test/bar.proto b/chrome/browser/android/persisted_tab_data/test/bar.proto
new file mode 100644
index 0000000..a0737cf
--- /dev/null
+++ b/chrome/browser/android/persisted_tab_data/test/bar.proto
@@ -0,0 +1,15 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package ptd;
+
+option java_package = "org.chromium.chrome.browser.persisted_tab_data";
+
+option optimize_for = LITE_RUNTIME;
+
+message BarData {
+  optional bool value = 1;
+}
diff --git a/chrome/browser/android/persisted_tab_data/test/bar_persisted_tab_data.cc b/chrome/browser/android/persisted_tab_data/test/bar_persisted_tab_data.cc
new file mode 100644
index 0000000..54b3538
--- /dev/null
+++ b/chrome/browser/android/persisted_tab_data/test/bar_persisted_tab_data.cc
@@ -0,0 +1,60 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/android/persisted_tab_data/test/bar_persisted_tab_data.h"
+
+#include "chrome/browser/android/persisted_tab_data/test/bar.pb.h"
+
+BarPersistedTabDataAndroid::BarPersistedTabDataAndroid(TabAndroid* tab_android)
+    : PersistedTabDataAndroid(tab_android,
+                              BarPersistedTabDataAndroid::UserDataKey()) {}
+
+BarPersistedTabDataAndroid::~BarPersistedTabDataAndroid() = default;
+
+void BarPersistedTabDataAndroid::From(
+    TabAndroid* tab_android,
+    PersistedTabDataAndroid::FromCallback from_callback) {
+  PersistedTabDataAndroid::From(
+      tab_android, BarPersistedTabDataAndroid::UserDataKey(),
+      base::BindOnce(
+          [](TabAndroid* tab_android)
+              -> std::unique_ptr<PersistedTabDataAndroid> {
+            return std::make_unique<BarPersistedTabDataAndroid>(tab_android);
+          },
+          tab_android),
+      std::move(from_callback));
+}
+
+void BarPersistedTabDataAndroid::SetValue(bool bar_value) {
+  bar_value_ = bar_value;
+  Save();
+}
+
+void BarPersistedTabDataAndroid::ExistsForTesting(
+    TabAndroid* tab_android,
+    base::OnceCallback<void(bool)> exists_callback) {
+  PersistedTabDataAndroid::ExistsForTesting(
+      tab_android, BarPersistedTabDataAndroid::UserDataKey(),
+      std::move(exists_callback));
+}
+
+std::unique_ptr<const std::vector<uint8_t>>
+BarPersistedTabDataAndroid::Serialize() {
+  ptd::BarData bar_data;
+  bar_data.set_value(bar_value_);
+  std::unique_ptr<std::vector<uint8_t>> res =
+      std::make_unique<std::vector<uint8_t>>(bar_data.ByteSize());
+  bar_data.SerializeToArray(res->data(), bar_data.ByteSize());
+  return res;
+}
+
+void BarPersistedTabDataAndroid::Deserialize(const std::vector<uint8_t>& data) {
+  ptd::BarData bar_data;
+  if (!bar_data.ParseFromArray(data.data(), data.size())) {
+    bar_data.Clear();
+  }
+  bar_value_ = bar_data.value();
+}
+
+TAB_ANDROID_USER_DATA_KEY_IMPL(BarPersistedTabDataAndroid)
diff --git a/chrome/browser/android/persisted_tab_data/test/bar_persisted_tab_data.h b/chrome/browser/android/persisted_tab_data/test/bar_persisted_tab_data.h
new file mode 100644
index 0000000..67058ce
--- /dev/null
+++ b/chrome/browser/android/persisted_tab_data/test/bar_persisted_tab_data.h
@@ -0,0 +1,34 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ANDROID_PERSISTED_TAB_DATA_TEST_BAR_PERSISTED_TAB_DATA_H_
+#define CHROME_BROWSER_ANDROID_PERSISTED_TAB_DATA_TEST_BAR_PERSISTED_TAB_DATA_H_
+
+#include <vector>
+
+#include "chrome/browser/android/persisted_tab_data/persisted_tab_data_android.h"
+
+// Test Class for testing PersistedTabDataAndroid
+class BarPersistedTabDataAndroid : public PersistedTabDataAndroid {
+ public:
+  explicit BarPersistedTabDataAndroid(TabAndroid* tab_android);
+  ~BarPersistedTabDataAndroid() override;
+
+  static void From(TabAndroid* tab_android, FromCallback from_callback);
+  void SetValue(bool bar_value);
+  static void ExistsForTesting(TabAndroid* tab_android,
+                               base::OnceCallback<void(bool)> exists_callback);
+
+ protected:
+  std::unique_ptr<const std::vector<uint8_t>> Serialize() override;
+  void Deserialize(const std::vector<uint8_t>& data) override;
+
+ private:
+  friend class TabAndroidUserData<BarPersistedTabDataAndroid>;
+  bool bar_value_;
+
+  TAB_ANDROID_USER_DATA_KEY_DECL();
+};
+
+#endif  // CHROME_BROWSER_ANDROID_PERSISTED_TAB_DATA_TEST_BAR_PERSISTED_TAB_DATA_H_
diff --git a/chrome/browser/android/persisted_tab_data/test/foo.proto b/chrome/browser/android/persisted_tab_data/test/foo.proto
new file mode 100644
index 0000000..68cab7a
--- /dev/null
+++ b/chrome/browser/android/persisted_tab_data/test/foo.proto
@@ -0,0 +1,15 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+package ptd;
+
+option java_package = "org.chromium.chrome.browser.persisted_tab_data";
+
+option optimize_for = LITE_RUNTIME;
+
+message FooData {
+  optional int32 value = 1;
+}
diff --git a/chrome/browser/android/persisted_tab_data/test/foo_persisted_tab_data.cc b/chrome/browser/android/persisted_tab_data/test/foo_persisted_tab_data.cc
new file mode 100644
index 0000000..cf2689c3
--- /dev/null
+++ b/chrome/browser/android/persisted_tab_data/test/foo_persisted_tab_data.cc
@@ -0,0 +1,60 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/android/persisted_tab_data/test/foo_persisted_tab_data.h"
+
+#include "chrome/browser/android/persisted_tab_data/test/foo.pb.h"
+
+FooPersistedTabDataAndroid::FooPersistedTabDataAndroid(TabAndroid* tab_android)
+    : PersistedTabDataAndroid(tab_android,
+                              FooPersistedTabDataAndroid::UserDataKey()) {}
+
+FooPersistedTabDataAndroid::~FooPersistedTabDataAndroid() = default;
+
+void FooPersistedTabDataAndroid::From(
+    TabAndroid* tab_android,
+    PersistedTabDataAndroid::FromCallback from_callback) {
+  PersistedTabDataAndroid::From(
+      tab_android, FooPersistedTabDataAndroid::UserDataKey(),
+      base::BindOnce(
+          [](TabAndroid* tab_android)
+              -> std::unique_ptr<PersistedTabDataAndroid> {
+            return std::make_unique<FooPersistedTabDataAndroid>(tab_android);
+          },
+          tab_android),
+      std::move(from_callback));
+}
+
+void FooPersistedTabDataAndroid::SetValue(int32_t foo_value) {
+  foo_value_ = foo_value;
+  Save();
+}
+
+void FooPersistedTabDataAndroid::ExistsForTesting(
+    TabAndroid* tab_android,
+    base::OnceCallback<void(bool)> exists_callback) {
+  PersistedTabDataAndroid::ExistsForTesting(
+      tab_android, FooPersistedTabDataAndroid::UserDataKey(),
+      std::move(exists_callback));
+}
+
+std::unique_ptr<const std::vector<uint8_t>>
+FooPersistedTabDataAndroid::Serialize() {
+  ptd::FooData foo_data;
+  foo_data.set_value(foo_value_);
+  std::unique_ptr<std::vector<uint8_t>> res =
+      std::make_unique<std::vector<uint8_t>>(foo_data.ByteSize());
+  foo_data.SerializeToArray(res->data(), foo_data.ByteSize());
+  return res;
+}
+
+void FooPersistedTabDataAndroid::Deserialize(const std::vector<uint8_t>& data) {
+  ptd::FooData foo_data;
+  if (!foo_data.ParseFromArray(data.data(), data.size())) {
+    foo_data.Clear();
+  }
+  foo_value_ = foo_data.value();
+}
+
+TAB_ANDROID_USER_DATA_KEY_IMPL(FooPersistedTabDataAndroid)
diff --git a/chrome/browser/android/persisted_tab_data/test/foo_persisted_tab_data.h b/chrome/browser/android/persisted_tab_data/test/foo_persisted_tab_data.h
new file mode 100644
index 0000000..3adeadd7
--- /dev/null
+++ b/chrome/browser/android/persisted_tab_data/test/foo_persisted_tab_data.h
@@ -0,0 +1,34 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ANDROID_PERSISTED_TAB_DATA_TEST_FOO_PERSISTED_TAB_DATA_H_
+#define CHROME_BROWSER_ANDROID_PERSISTED_TAB_DATA_TEST_FOO_PERSISTED_TAB_DATA_H_
+
+#include <vector>
+
+#include "chrome/browser/android/persisted_tab_data/persisted_tab_data_android.h"
+
+// Test Class for testing PersistedTabDataAndroid
+class FooPersistedTabDataAndroid : public PersistedTabDataAndroid {
+ public:
+  explicit FooPersistedTabDataAndroid(TabAndroid* tab_android);
+  ~FooPersistedTabDataAndroid() override;
+
+  static void From(TabAndroid* tab_android, FromCallback from_callback);
+  void SetValue(int32_t foo_value);
+  static void ExistsForTesting(TabAndroid* tab_android,
+                               base::OnceCallback<void(bool)> exists_callback);
+
+ protected:
+  std::unique_ptr<const std::vector<uint8_t>> Serialize() override;
+  void Deserialize(const std::vector<uint8_t>& data) override;
+
+ private:
+  friend class TabAndroidUserData<FooPersistedTabDataAndroid>;
+  int32_t foo_value_;
+
+  TAB_ANDROID_USER_DATA_KEY_DECL();
+};
+
+#endif  // CHROME_BROWSER_ANDROID_PERSISTED_TAB_DATA_TEST_FOO_PERSISTED_TAB_DATA_H_
diff --git a/chrome/browser/android/signin/signin_manager_android_unittest.cc b/chrome/browser/android/signin/signin_manager_android_unittest.cc
index f52b3c5..9d62214 100644
--- a/chrome/browser/android/signin/signin_manager_android_unittest.cc
+++ b/chrome/browser/android/signin/signin_manager_android_unittest.cc
@@ -26,6 +26,7 @@
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/keyed_service/core/simple_factory_key.h"
 #include "components/offline_pages/core/stub_offline_page_model.h"
+#include "content/public/browser/background_tracing_manager.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browsing_data_remover.h"
 #include "content/public/browser/storage_partition.h"
@@ -67,6 +68,9 @@
         BookmarkModelFactory::GetDefaultFactory());
     profile_ = profile_builder.Build();
 
+    background_tracing_manager_ =
+        content::BackgroundTracingManager::CreateInstance();
+
     // Creating a BookmarkModel also a creates a StubOfflinePageModel.
     // We need to replace this with a mock that responds to deletions.
     offline_pages::OfflinePageModelFactory::GetInstance()->SetTestingFactory(
@@ -79,6 +83,8 @@
             std::make_unique<ChromeDownloadManagerDelegate>(profile_.get()));
   }
 
+  void TearDown() override { background_tracing_manager_.reset(); }
+
   TestingProfile* profile() { return profile_.get(); }
 
   // Adds two testing bookmarks to |profile_|.
@@ -106,6 +112,8 @@
  private:
   content::BrowserTaskEnvironment task_environment_;
   std::unique_ptr<TestingProfile> profile_;
+  std::unique_ptr<content::BackgroundTracingManager>
+      background_tracing_manager_;
 };
 
 // TODO(crbug.com/929456): This test does not actually test anything; the
diff --git a/chrome/browser/ash/login/session/user_session_manager.cc b/chrome/browser/ash/login/session/user_session_manager.cc
index f20d389..cb6cec8 100644
--- a/chrome/browser/ash/login/session/user_session_manager.cc
+++ b/chrome/browser/ash/login/session/user_session_manager.cc
@@ -131,6 +131,7 @@
 #include "chromeos/ash/components/login/auth/auth_session_authenticator.h"
 #include "chromeos/ash/components/login/auth/challenge_response/known_user_pref_utils.h"
 #include "chromeos/ash/components/login/auth/stub_authenticator_builder.h"
+#include "chromeos/ash/components/login/hibernate/hibernate_manager.h"
 #include "chromeos/ash/components/login/session/session_termination_manager.h"
 #include "chromeos/ash/components/network/portal_detector/network_portal_detector.h"
 #include "chromeos/ash/components/settings/cros_settings_names.h"
@@ -1011,13 +1012,21 @@
 bool UserSessionManager::RestartToApplyPerSessionFlagsIfNeed(
     Profile* profile,
     bool early_restart) {
-  if (!SessionManagerClient::Get()->SupportsBrowserRestart())
-    return false;
-
   if (!ProfileHelper::IsUserProfile(profile)) {
     return false;
   }
 
+  if (ash::HibernateManager::IsHibernateSupported()) {
+    // No need to do anything if Hibernate isn't even supported on this
+    // device.
+    flags_ui::PrefServiceFlagsStorage flags_storage(profile->GetPrefs());
+    ash::HibernateManager::Get()->MaybeResume(flags_storage.GetFlags());
+  }
+
+  if (!SessionManagerClient::Get()->SupportsBrowserRestart()) {
+    return false;
+  }
+
   MaybeSaveSessionStartedTimeBeforeRestart(profile);
 
   // Kiosk sessions keeps the startup flags.
diff --git a/chrome/browser/ash/system_extensions/api/managed_device_health_services/DIR_METADATA b/chrome/browser/ash/system_extensions/api/managed_device_health_services/DIR_METADATA
index af9b11a..9d53917 100644
--- a/chrome/browser/ash/system_extensions/api/managed_device_health_services/DIR_METADATA
+++ b/chrome/browser/ash/system_extensions/api/managed_device_health_services/DIR_METADATA
@@ -7,6 +7,6 @@
 #   https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/proto/dir_metadata.proto
 
 buganizer {
-  component_id: 1256717  # ChromeOS > Software > Commercial (Enterprise) > OEM Services
+  component_id: 982097  # ChromeOS > Platform > Enablement > Health
 }
-team_email: "chromeos-oem-services@google.com"
+team_email: "cros-tdm-tpe-eng@google.com"
diff --git a/chrome/browser/ash/telemetry_extension/DIR_METADATA b/chrome/browser/ash/telemetry_extension/DIR_METADATA
index af9b11a..9d53917 100644
--- a/chrome/browser/ash/telemetry_extension/DIR_METADATA
+++ b/chrome/browser/ash/telemetry_extension/DIR_METADATA
@@ -7,6 +7,6 @@
 #   https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/proto/dir_metadata.proto
 
 buganizer {
-  component_id: 1256717  # ChromeOS > Software > Commercial (Enterprise) > OEM Services
+  component_id: 982097  # ChromeOS > Platform > Enablement > Health
 }
-team_email: "chromeos-oem-services@google.com"
+team_email: "cros-tdm-tpe-eng@google.com"
diff --git a/chrome/browser/ash/telemetry_extension/routines/BUILD.gn b/chrome/browser/ash/telemetry_extension/routines/BUILD.gn
index 27ae946..54cf85bd 100644
--- a/chrome/browser/ash/telemetry_extension/routines/BUILD.gn
+++ b/chrome/browser/ash/telemetry_extension/routines/BUILD.gn
@@ -20,6 +20,7 @@
 
   deps = [
     "//base",
+    "//chrome/browser/ash/telemetry_extension/common",
     "//chromeos/ash/services/cros_healthd/public/cpp",
     "//chromeos/ash/services/cros_healthd/public/mojom",
     "//chromeos/crosapi/mojom",
diff --git a/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash.cc b/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash.cc
index 242857aa..2dd2808b 100644
--- a/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash.cc
+++ b/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash.cc
@@ -9,6 +9,7 @@
 
 #include "base/allocator/partition_allocator/pointers/raw_ptr.h"
 #include "base/functional/bind.h"
+#include "chrome/browser/ash/telemetry_extension/common/telemetry_extension_converters.h"
 #include "chrome/browser/ash/telemetry_extension/routines/routine_control.h"
 #include "chrome/browser/ash/telemetry_extension/routines/routine_converters.h"
 #include "chrome/browser/ash/telemetry_extension/routines/routine_events_forwarder.h"
@@ -123,6 +124,22 @@
           std::move(cros_healthd_receiver), std::move(cros_healthd_observer));
 }
 
+void TelemetryDiagnosticsRoutineServiceAsh::IsRoutineArgumentSupported(
+    crosapi::TelemetryDiagnosticRoutineArgumentPtr arg,
+    IsRoutineArgumentSupportedCallback callback) {
+  cros_healthd::ServiceConnection::GetInstance()
+      ->GetRoutinesService()
+      ->IsRoutineArgumentSupported(
+          converters::ConvertRoutinePtr(std::move(arg)),
+          base::BindOnce(
+              [](IsRoutineArgumentSupportedCallback callback,
+                 healthd::SupportStatusPtr status) {
+                std::move(callback).Run(
+                    converters::ConvertCommonPtr(std::move(status)));
+              },
+              std::move(callback)));
+}
+
 void TelemetryDiagnosticsRoutineServiceAsh::OnConnectionClosed(
     SelfOwnedMojoProxyInterface* closed_connection) {
   routine_controls_and_observers_.erase(closed_connection);
diff --git a/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash.h b/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash.h
index c164c51..f1a8fe4d 100644
--- a/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash.h
+++ b/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash.h
@@ -63,6 +63,9 @@
           routine_receiver,
       mojo::PendingRemote<crosapi::mojom::TelemetryDiagnosticRoutineObserver>
           observer) override;
+  void IsRoutineArgumentSupported(
+      crosapi::mojom::TelemetryDiagnosticRoutineArgumentPtr arg,
+      IsRoutineArgumentSupportedCallback callback) override;
 
  private:
   // Called when a routine controller or observer connection is closed. This
diff --git a/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash_unittest.cc b/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash_unittest.cc
index 924859c..caf55f9 100644
--- a/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash_unittest.cc
+++ b/chrome/browser/ash/telemetry_extension/routines/telemetry_diagnostic_routine_service_ash_unittest.cc
@@ -13,8 +13,10 @@
 #include "base/test/test_future.h"
 #include "chromeos/ash/components/mojo_service_manager/fake_mojo_service_manager.h"
 #include "chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.h"
+#include "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_exception.mojom.h"
 #include "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_routines.mojom.h"
 #include "chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom.h"
+#include "chromeos/crosapi/mojom/telemetry_extension_exception.mojom.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/remote.h"
@@ -114,6 +116,26 @@
           healthd::RoutineArgument::Tag::kUnrecognizedArgument));
 }
 
+TEST_F(TelemetryDiagnosticsRoutineServiceAshTest, IsRoutineArgumentSupported) {
+  auto status = healthd::SupportStatus::NewSupported(healthd::Supported::New());
+  cros_healthd::FakeCrosHealthd::Get()
+      ->SetIsRoutineArgumentSupportedResponseForTesting(status);
+
+  auto arg =
+      crosapi::TelemetryDiagnosticRoutineArgument::NewUnrecognizedArgument(
+          true);
+  base::test::TestFuture<crosapi::TelemetryExtensionSupportStatusPtr> future;
+  routines_service()->IsRoutineArgumentSupported(std::move(arg),
+                                                 future.GetCallback());
+
+  FlushForTesting();
+
+  ASSERT_TRUE(future.Wait());
+  EXPECT_EQ(future.Take(),
+            crosapi::TelemetryExtensionSupportStatus::NewSupported(
+                crosapi::TelemetryExtensionSupported::New()));
+}
+
 TEST_F(TelemetryDiagnosticsRoutineServiceAshTest, StartRoutine) {
   mojo::Remote<crosapi::TelemetryDiagnosticRoutineControl> control_remote;
 
diff --git a/chrome/browser/autofill/android/BUILD.gn b/chrome/browser/autofill/android/BUILD.gn
index ced6468..d3acdbc 100644
--- a/chrome/browser/autofill/android/BUILD.gn
+++ b/chrome/browser/autofill/android/BUILD.gn
@@ -14,7 +14,6 @@
   sources = [
     "java/src/org/chromium/chrome/browser/autofill/AutofillAddress.java",
     "java/src/org/chromium/chrome/browser/autofill/AutofillEditorBase.java",
-    "java/src/org/chromium/chrome/browser/autofill/AutofillProfile.java",
     "java/src/org/chromium/chrome/browser/autofill/AutofillProfileBridge.java",
     "java/src/org/chromium/chrome/browser/autofill/AutofillUiUtils.java",
     "java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java",
diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillProfile.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillProfile.java
deleted file mode 100644
index 887ba907..0000000
--- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillProfile.java
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// 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.autofill;
-
-// TODO(crbug/1079268): Delete this class once downstream switches to //components.
-public class AutofillProfile extends org.chromium.components.autofill.AutofillProfile {
-    public AutofillProfile(org.chromium.components.autofill.AutofillProfile profile) {
-        super(profile);
-    }
-
-    // Overridden just the minimum set of methods used downstream.
-    public static class Builder extends org.chromium.components.autofill.AutofillProfile.Builder {
-        @Override
-        public Builder setGUID(String guid) {
-            super.setGUID(guid);
-            return this;
-        }
-        @Override
-        public Builder setFullName(String fullName) {
-            super.setFullName(fullName);
-            return this;
-        }
-        @Override
-        public Builder setCompanyName(String companyName) {
-            super.setCompanyName(companyName);
-            return this;
-        }
-        @Override
-        public Builder setStreetAddress(String streetAddress) {
-            super.setStreetAddress(streetAddress);
-            return this;
-        }
-        @Override
-        public Builder setRegion(String region) {
-            super.setRegion(region);
-            return this;
-        }
-        @Override
-        public Builder setLocality(String locality) {
-            super.setLocality(locality);
-            return this;
-        }
-        @Override
-        public Builder setPostalCode(String postalCode) {
-            super.setPostalCode(postalCode);
-            return this;
-        }
-        @Override
-        public Builder setCountryCode(String countryCode) {
-            super.setCountryCode(countryCode);
-            return this;
-        }
-        @Override
-        public Builder setPhoneNumber(String phoneNumber) {
-            super.setPhoneNumber(phoneNumber);
-            return this;
-        }
-        @Override
-        public Builder setEmailAddress(String emailAddress) {
-            super.setEmailAddress(emailAddress);
-            return this;
-        }
-        @Override
-        public AutofillProfile build() {
-            return new AutofillProfile(super.build());
-        }
-    }
-
-    public static Builder builder() {
-        return new Builder();
-    }
-}
diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java
index fcf2d48..2c7025b 100644
--- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java
+++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java
@@ -20,6 +20,7 @@
 import org.chromium.chrome.browser.preferences.Pref;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.profiles.ProfileKey;
+import org.chromium.components.autofill.AutofillProfile;
 import org.chromium.components.autofill.VirtualCardEnrollmentState;
 import org.chromium.components.image_fetcher.ImageFetcher;
 import org.chromium.components.image_fetcher.ImageFetcherConfig;
@@ -82,7 +83,7 @@
          * @param profile The profile with the normalized address.
          */
         @CalledByNative("NormalizedAddressRequestDelegate")
-        void onAddressNormalized(org.chromium.components.autofill.AutofillProfile profile);
+        void onAddressNormalized(AutofillProfile profile);
 
         /**
          * Called when the address could not be normalized.
@@ -90,7 +91,7 @@
          * @param profile The non normalized profile.
          */
         @CalledByNative("NormalizedAddressRequestDelegate")
-        void onCouldNotNormalize(org.chromium.components.autofill.AutofillProfile profile);
+        void onCouldNotNormalize(AutofillProfile profile);
     }
 
     /**
@@ -516,13 +517,13 @@
                 mPersonalDataManagerAndroid, PersonalDataManager.this, guid);
     }
 
-    public String setProfile(org.chromium.components.autofill.AutofillProfile profile) {
+    public String setProfile(AutofillProfile profile) {
         ThreadUtils.assertOnUiThread();
         return PersonalDataManagerJni.get().setProfile(
                 mPersonalDataManagerAndroid, PersonalDataManager.this, profile, profile.getGUID());
     }
 
-    public String setProfileToLocal(org.chromium.components.autofill.AutofillProfile profile) {
+    public String setProfileToLocal(AutofillProfile profile) {
         ThreadUtils.assertOnUiThread();
         return PersonalDataManagerJni.get().setProfileToLocal(
                 mPersonalDataManagerAndroid, PersonalDataManager.this, profile, profile.getGUID());
@@ -614,20 +615,17 @@
                 mPersonalDataManagerAndroid, PersonalDataManager.this, guid);
     }
 
-    public String getShippingAddressLabelWithCountryForPaymentRequest(
-            org.chromium.components.autofill.AutofillProfile profile) {
+    public String getShippingAddressLabelWithCountryForPaymentRequest(AutofillProfile profile) {
         return PersonalDataManagerJni.get().getShippingAddressLabelWithCountryForPaymentRequest(
                 mPersonalDataManagerAndroid, PersonalDataManager.this, profile);
     }
 
-    public String getShippingAddressLabelWithoutCountryForPaymentRequest(
-            org.chromium.components.autofill.AutofillProfile profile) {
+    public String getShippingAddressLabelWithoutCountryForPaymentRequest(AutofillProfile profile) {
         return PersonalDataManagerJni.get().getShippingAddressLabelWithoutCountryForPaymentRequest(
                 mPersonalDataManagerAndroid, PersonalDataManager.this, profile);
     }
 
-    public String getBillingAddressLabelForPaymentRequest(
-            org.chromium.components.autofill.AutofillProfile profile) {
+    public String getBillingAddressLabelForPaymentRequest(AutofillProfile profile) {
         return PersonalDataManagerJni.get().getBillingAddressLabelForPaymentRequest(
                 mPersonalDataManagerAndroid, PersonalDataManager.this, profile);
     }
@@ -796,8 +794,8 @@
      * @param profile The profile to normalize.
      * @param delegate The object requesting the normalization.
      */
-    public void normalizeAddress(org.chromium.components.autofill.AutofillProfile profile,
-            NormalizedAddressRequestDelegate delegate) {
+    public void normalizeAddress(
+            AutofillProfile profile, NormalizedAddressRequestDelegate delegate) {
         ThreadUtils.assertOnUiThread();
         PersonalDataManagerJni.get().startAddressNormalization(mPersonalDataManagerAndroid,
                 PersonalDataManager.this, profile, sRequestTimeoutSeconds, delegate);
@@ -1018,25 +1016,24 @@
         String[] getProfileLabelsToSuggest(long nativePersonalDataManagerAndroid,
                 PersonalDataManager caller, boolean includeNameInLabel,
                 boolean includeOrganizationInLabel, boolean includeCountryInLabel);
-        org.chromium.components.autofill.AutofillProfile getProfileByGUID(
+        AutofillProfile getProfileByGUID(
                 long nativePersonalDataManagerAndroid, PersonalDataManager caller, String guid);
         boolean isEligibleForAddressAccountStorage(
                 long nativePersonalDataManagerAndroid, PersonalDataManager caller);
         boolean isCountryEligibleForAccountStorage(long nativePersonalDataManagerAndroid,
                 PersonalDataManager caller, String countryCode);
         String setProfile(long nativePersonalDataManagerAndroid, PersonalDataManager caller,
-                org.chromium.components.autofill.AutofillProfile profile, String guid);
+                AutofillProfile profile, String guid);
         String setProfileToLocal(long nativePersonalDataManagerAndroid, PersonalDataManager caller,
-                org.chromium.components.autofill.AutofillProfile profile, String guid);
+                AutofillProfile profile, String guid);
         String getShippingAddressLabelWithCountryForPaymentRequest(
                 long nativePersonalDataManagerAndroid, PersonalDataManager caller,
-                org.chromium.components.autofill.AutofillProfile profile);
+                AutofillProfile profile);
         String getShippingAddressLabelWithoutCountryForPaymentRequest(
                 long nativePersonalDataManagerAndroid, PersonalDataManager caller,
-                org.chromium.components.autofill.AutofillProfile profile);
+                AutofillProfile profile);
         String getBillingAddressLabelForPaymentRequest(long nativePersonalDataManagerAndroid,
-                PersonalDataManager caller,
-                org.chromium.components.autofill.AutofillProfile profile);
+                PersonalDataManager caller, AutofillProfile profile);
         String[] getCreditCardGUIDsForSettings(
                 long nativePersonalDataManagerAndroid, PersonalDataManager caller);
         String[] getCreditCardGUIDsToSuggest(
@@ -1086,8 +1083,7 @@
         void loadRulesForSubKeys(long nativePersonalDataManagerAndroid, PersonalDataManager caller,
                 String regionCode);
         void startAddressNormalization(long nativePersonalDataManagerAndroid,
-                PersonalDataManager caller,
-                org.chromium.components.autofill.AutofillProfile profile, int timeoutSeconds,
+                PersonalDataManager caller, AutofillProfile profile, int timeoutSeconds,
                 NormalizedAddressRequestDelegate delegate);
         void startRegionSubKeysRequest(long nativePersonalDataManagerAndroid,
                 PersonalDataManager caller, String regionCode, int timeoutSeconds,
diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/editors/EditorProperties.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/editors/EditorProperties.java
index 93f2a87..dc9ac04c 100644
--- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/editors/EditorProperties.java
+++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/editors/EditorProperties.java
@@ -22,6 +22,11 @@
 import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
 import org.chromium.ui.modelutil.PropertyKey;
 import org.chromium.ui.modelutil.PropertyModel;
+import org.chromium.ui.modelutil.PropertyModel.ReadableBooleanPropertyKey;
+import org.chromium.ui.modelutil.PropertyModel.ReadableIntPropertyKey;
+import org.chromium.ui.modelutil.PropertyModel.ReadableObjectPropertyKey;
+import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey;
+import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -49,42 +54,41 @@
         }
     }
 
-    public static final PropertyModel.ReadableObjectPropertyKey<String> EDITOR_TITLE =
-            new PropertyModel.ReadableObjectPropertyKey<>("editor_title");
-    public static final PropertyModel.ReadableObjectPropertyKey<String> CUSTOM_DONE_BUTTON_TEXT =
-            new PropertyModel.ReadableObjectPropertyKey<String>("custom_done_button_text");
-    public static final PropertyModel.ReadableObjectPropertyKey<String> FOOTER_MESSAGE =
-            new PropertyModel.ReadableObjectPropertyKey<>("footer_message");
-    public static final PropertyModel.ReadableObjectPropertyKey<String> DELETE_CONFIRMATION_TITLE =
-            new PropertyModel.ReadableObjectPropertyKey<>("delete_confirmation_title");
-    public static final PropertyModel.ReadableObjectPropertyKey<String> DELETE_CONFIRMATION_TEXT =
-            new PropertyModel.ReadableObjectPropertyKey<>("delete_confirmation_text");
-    public static final PropertyModel.ReadableBooleanPropertyKey SHOW_REQUIRED_INDICATOR =
-            new PropertyModel.ReadableBooleanPropertyKey("show_required_indicator");
+    public static final ReadableObjectPropertyKey<String> EDITOR_TITLE =
+            new ReadableObjectPropertyKey<>("editor_title");
+    public static final ReadableObjectPropertyKey<String> CUSTOM_DONE_BUTTON_TEXT =
+            new ReadableObjectPropertyKey<String>("custom_done_button_text");
+    public static final ReadableObjectPropertyKey<String> FOOTER_MESSAGE =
+            new ReadableObjectPropertyKey<>("footer_message");
+    public static final ReadableObjectPropertyKey<String> DELETE_CONFIRMATION_TITLE =
+            new ReadableObjectPropertyKey<>("delete_confirmation_title");
+    public static final ReadableObjectPropertyKey<String> DELETE_CONFIRMATION_TEXT =
+            new ReadableObjectPropertyKey<>("delete_confirmation_text");
+    public static final ReadableBooleanPropertyKey SHOW_REQUIRED_INDICATOR =
+            new ReadableBooleanPropertyKey("show_required_indicator");
 
-    public static final PropertyModel
-            .WritableObjectPropertyKey<ListModel<FieldItem>> EDITOR_FIELDS =
-            new PropertyModel.WritableObjectPropertyKey<>("editor_fields");
+    public static final WritableObjectPropertyKey<ListModel<FieldItem>> EDITOR_FIELDS =
+            new WritableObjectPropertyKey<>("editor_fields");
 
-    public static final PropertyModel.ReadableObjectPropertyKey<Runnable> DONE_RUNNABLE =
-            new PropertyModel.ReadableObjectPropertyKey<>("done_callback");
-    public static final PropertyModel.ReadableObjectPropertyKey<Runnable> CANCEL_RUNNABLE =
-            new PropertyModel.ReadableObjectPropertyKey<>("cancel_callback");
+    public static final ReadableObjectPropertyKey<Runnable> DONE_RUNNABLE =
+            new ReadableObjectPropertyKey<>("done_callback");
+    public static final ReadableObjectPropertyKey<Runnable> CANCEL_RUNNABLE =
+            new ReadableObjectPropertyKey<>("cancel_callback");
 
-    public static final PropertyModel.ReadableBooleanPropertyKey ALLOW_DELETE =
-            new PropertyModel.ReadableBooleanPropertyKey("allow_delete");
-    public static final PropertyModel.ReadableObjectPropertyKey<Runnable> DELETE_RUNNABLE =
-            new PropertyModel.ReadableObjectPropertyKey<>("delete_callback");
+    public static final ReadableBooleanPropertyKey ALLOW_DELETE =
+            new ReadableBooleanPropertyKey("allow_delete");
+    public static final ReadableObjectPropertyKey<Runnable> DELETE_RUNNABLE =
+            new ReadableObjectPropertyKey<>("delete_callback");
 
-    public static final PropertyModel.WritableBooleanPropertyKey VISIBLE =
-            new PropertyModel.WritableBooleanPropertyKey("visible");
+    public static final WritableBooleanPropertyKey VISIBLE =
+            new WritableBooleanPropertyKey("visible");
     /**
      * This property is temporary way to trigger field error message update process.
      * It also triggers field focus update.
      * TODO(crbug.com/1435314): remove this property once fields are updated through MCP.
      */
-    public static final PropertyModel.WritableBooleanPropertyKey FORM_VALID =
-            new PropertyModel.WritableBooleanPropertyKey("form_valid");
+    public static final WritableBooleanPropertyKey FORM_VALID =
+            new WritableBooleanPropertyKey("form_valid");
 
     public static final PropertyKey[] ALL_KEYS = {EDITOR_TITLE, CUSTOM_DONE_BUTTON_TEXT,
             FOOTER_MESSAGE, DELETE_CONFIRMATION_TITLE, DELETE_CONFIRMATION_TEXT,
@@ -133,19 +137,19 @@
      * Field properties common to every field.
      */
     public static class FieldProperties {
-        public static final PropertyModel.WritableObjectPropertyKey<String> LABEL =
-                new PropertyModel.WritableObjectPropertyKey<>("label");
+        public static final WritableObjectPropertyKey<String> LABEL =
+                new WritableObjectPropertyKey<>("label");
         public static final PropertyModel
                 .WritableObjectPropertyKey<EditorFieldValidator> VALIDATOR =
-                new PropertyModel.WritableObjectPropertyKey<>("validator");
-        public static final PropertyModel.WritableObjectPropertyKey<String> ERROR_MESSAGE =
-                new PropertyModel.WritableObjectPropertyKey<>("error_message");
+                new WritableObjectPropertyKey<>("validator");
+        public static final WritableObjectPropertyKey<String> ERROR_MESSAGE =
+                new WritableObjectPropertyKey<>("error_message");
         // TODO(crbug.com/1435314): make this field read-only.
-        public static final PropertyModel.WritableBooleanPropertyKey IS_REQUIRED =
-                new PropertyModel.WritableBooleanPropertyKey("is_required");
+        public static final WritableBooleanPropertyKey IS_REQUIRED =
+                new WritableBooleanPropertyKey("is_required");
         // TODO(crbug.com/1435314): make this field read-only.
-        public static final PropertyModel.WritableObjectPropertyKey<String> VALUE =
-                new PropertyModel.WritableObjectPropertyKey<>("value");
+        public static final WritableObjectPropertyKey<String> VALUE =
+                new WritableObjectPropertyKey<>("value");
 
         public static final PropertyKey[] FIELD_ALL_KEYS = {
                 LABEL, VALIDATOR, IS_REQUIRED, ERROR_MESSAGE, VALUE};
@@ -155,14 +159,12 @@
      * Properties specific for the dropdown fields.
      */
     public static class DropdownFieldProperties {
-        public static final PropertyModel
-                .ReadableObjectPropertyKey<List<DropdownKeyValue>> DROPDOWN_KEY_VALUE_LIST =
-                new PropertyModel.ReadableObjectPropertyKey<>("key_value_list");
-        public static final PropertyModel
-                .WritableObjectPropertyKey<Callback<String>> DROPDOWN_CALLBACK =
-                new PropertyModel.WritableObjectPropertyKey<>("callback");
-        public static final PropertyModel.ReadableObjectPropertyKey<String> DROPDOWN_HINT =
-                new PropertyModel.ReadableObjectPropertyKey<>("hint");
+        public static final ReadableObjectPropertyKey<List<DropdownKeyValue>>
+                DROPDOWN_KEY_VALUE_LIST = new ReadableObjectPropertyKey<>("key_value_list");
+        public static final WritableObjectPropertyKey<Callback<String>> DROPDOWN_CALLBACK =
+                new WritableObjectPropertyKey<>("callback");
+        public static final ReadableObjectPropertyKey<String> DROPDOWN_HINT =
+                new ReadableObjectPropertyKey<>("hint");
 
         public static final PropertyKey[] DROPDOWN_SPECIFIC_KEYS = {
                 DROPDOWN_KEY_VALUE_LIST, DROPDOWN_CALLBACK, DROPDOWN_HINT};
@@ -177,12 +179,12 @@
      * Properties specific for the text fields.
      */
     public static class TextFieldProperties {
-        public static final PropertyModel.ReadableIntPropertyKey TEXT_FIELD_TYPE =
-                new PropertyModel.ReadableIntPropertyKey("field_type");
-        public static final PropertyModel.WritableObjectPropertyKey<List<String>> TEXT_SUGGESTIONS =
-                new PropertyModel.WritableObjectPropertyKey<>("suggestions");
-        public static final PropertyModel.ReadableObjectPropertyKey<TextWatcher> TEXT_FORMATTER =
-                new PropertyModel.ReadableObjectPropertyKey<>("formatter");
+        public static final ReadableIntPropertyKey TEXT_FIELD_TYPE =
+                new ReadableIntPropertyKey("field_type");
+        public static final WritableObjectPropertyKey<List<String>> TEXT_SUGGESTIONS =
+                new WritableObjectPropertyKey<>("suggestions");
+        public static final ReadableObjectPropertyKey<TextWatcher> TEXT_FORMATTER =
+                new ReadableObjectPropertyKey<>("formatter");
 
         public static final PropertyKey[] TEXT_SPECIFIC_KEYS = {
                 TEXT_FIELD_TYPE,
diff --git a/chrome/browser/autofill/test/android/java/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java b/chrome/browser/autofill/test/android/java/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java
index cadfde9..1aa0d0e 100644
--- a/chrome/browser/autofill/test/android/java/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java
+++ b/chrome/browser/autofill/test/android/java/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java
@@ -16,7 +16,6 @@
 import org.chromium.content_public.browser.WebContents;
 import org.chromium.url.GURL;
 
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
 import java.util.concurrent.TimeoutException;
@@ -48,27 +47,13 @@
     }
 
     List<AutofillProfile> getProfilesToSuggest(final boolean includeNameInLabel) {
-        return runOnUiThreadBlockingNoException(() -> {
-            // TODO(1079268): Simplify once //chrome AutofillProfile is gone.
-            List<AutofillProfile> profiles = new ArrayList<>();
-            for (AutofillProfile profile :
-                    PersonalDataManager.getInstance().getProfilesToSuggest(includeNameInLabel)) {
-                profiles.add(profile);
-            }
-            return profiles;
-        });
+        return runOnUiThreadBlockingNoException(
+                () -> PersonalDataManager.getInstance().getProfilesToSuggest(includeNameInLabel));
     }
 
     List<AutofillProfile> getProfilesForSettings() {
-        return runOnUiThreadBlockingNoException(() -> {
-            // TODO(1079268): Simplify once //chrome AutofillProfile is gone.
-            List<AutofillProfile> profiles = new ArrayList<>();
-            for (AutofillProfile profile :
-                    PersonalDataManager.getInstance().getProfilesForSettings()) {
-                profiles.add(profile);
-            }
-            return profiles;
-        });
+        return runOnUiThreadBlockingNoException(
+                () -> PersonalDataManager.getInstance().getProfilesForSettings());
     }
 
     int getNumberOfProfilesToSuggest() {
diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc
index 247da10..e6abc56 100644
--- a/chrome/browser/bookmarks/chrome_bookmark_client.cc
+++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc
@@ -46,7 +46,10 @@
 #if BUILDFLAG(ENABLE_OFFLINE_PAGES)
   offline_page_observer_ =
       std::make_unique<offline_pages::OfflinePageBookmarkObserver>(profile_);
-  model->AddObserver(offline_page_observer_.get());
+  model_observation_ = std::make_unique<base::ScopedObservation<
+      bookmarks::BookmarkModel, bookmarks::BaseBookmarkModelObserver>>(
+      offline_page_observer_.get());
+  model_observation_->Observe(model);
 #endif
 }
 
diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.h b/chrome/browser/bookmarks/chrome_bookmark_client.h
index 5a38917b..483b7051 100644
--- a/chrome/browser/bookmarks/chrome_bookmark_client.h
+++ b/chrome/browser/bookmarks/chrome_bookmark_client.h
@@ -12,8 +12,11 @@
 #include <vector>
 
 #include "base/memory/raw_ptr.h"
+#include "base/scoped_observation.h"
 #include "base/task/deferred_sequenced_task_runner.h"
+#include "components/bookmarks/browser/base_bookmark_model_observer.h"
 #include "components/bookmarks/browser/bookmark_client.h"
+#include "components/bookmarks/browser/bookmark_model.h"
 #include "components/offline_pages/buildflags/buildflags.h"
 
 class BookmarkUndoService;
@@ -96,6 +99,12 @@
   // Owns the observer used by Offline Page listening to Bookmark Model events.
   std::unique_ptr<offline_pages::OfflinePageBookmarkObserver>
       offline_page_observer_;
+
+  // Observation of this by the bookmark model.
+  std::unique_ptr<base::ScopedObservation<bookmarks::BookmarkModel,
+                                          bookmarks::BaseBookmarkModelObserver>>
+      model_observation_{};
+
 #endif
 };
 
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
index ba824da..d4933c9 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -122,6 +122,7 @@
 #include "components/web_cache/browser/web_cache_manager.h"
 #include "components/webrtc_logging/browser/log_cleanup.h"
 #include "components/webrtc_logging/browser/text_log_list.h"
+#include "content/public/browser/background_tracing_manager.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/browsing_data_filter_builder.h"
@@ -575,6 +576,9 @@
 
     CreateCrashUploadList()->Clear(delete_begin_, delete_end_);
 
+    content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange(
+        delete_begin_, delete_end_);
+
     FindBarStateFactory::GetForBrowserContext(profile_)->SetLastSearchText(
         std::u16string());
 
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
index 515bd3229f..786e37c 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -142,6 +142,7 @@
 #include "components/site_engagement/content/site_engagement_service.h"
 #include "components/site_isolation/pref_names.h"
 #include "components/ukm/test_ukm_recorder.h"
+#include "content/public/browser/background_tracing_manager.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/browsing_data_filter_builder.h"
@@ -1232,6 +1233,8 @@
     // Make sure the Network Service is started before making a NetworkContext.
     content::GetNetworkService();
     task_environment_.RunUntilIdle();
+    background_tracing_manager_ =
+        content::BackgroundTracingManager::CreateInstance();
 
     // This needs to be done after the test constructor, so that subclasses
     // that initialize a ScopedFeatureList in their constructors can do so
@@ -1326,6 +1329,8 @@
     // the message loop is cleared out, before destroying the threads and loop.
     // Otherwise we leak memory.
     profile_manager_.reset();
+
+    background_tracing_manager_.reset();
     base::RunLoop().RunUntilIdle();
 
     TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
@@ -1435,6 +1440,9 @@
   // Cached pointer to BrowsingDataRemover for access to testing methods.
   raw_ptr<content::BrowsingDataRemover> remover_;
 
+  std::unique_ptr<content::BackgroundTracingManager>
+      background_tracing_manager_;
+
 #if BUILDFLAG(ENABLE_NACL)
   ScopedNaClBrowserDelegate nacl_browser_delegate_;
 #endif  // BUILDFLAG(ENABLE_NACL)
diff --git a/chrome/browser/chromeos/extensions/telemetry/DIR_METADATA b/chrome/browser/chromeos/extensions/telemetry/DIR_METADATA
index af9b11a..9d53917 100644
--- a/chrome/browser/chromeos/extensions/telemetry/DIR_METADATA
+++ b/chrome/browser/chromeos/extensions/telemetry/DIR_METADATA
@@ -7,6 +7,6 @@
 #   https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/proto/dir_metadata.proto
 
 buganizer {
-  component_id: 1256717  # ChromeOS > Software > Commercial (Enterprise) > OEM Services
+  component_id: 982097  # ChromeOS > Platform > Enablement > Health
 }
-team_email: "chromeos-oem-services@google.com"
+team_email: "cros-tdm-tpe-eng@google.com"
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/BUILD.gn b/chrome/browser/chromeos/extensions/telemetry/api/BUILD.gn
index f308c05..7dc2d8a 100644
--- a/chrome/browser/chromeos/extensions/telemetry/api/BUILD.gn
+++ b/chrome/browser/chromeos/extensions/telemetry/api/BUILD.gn
@@ -42,6 +42,7 @@
     "common:browser_tests",
     "diagnostics:browser_tests",
     "events:browser_tests",
+    "routines:browser_tests",
     "telemetry:browser_tests",
   ]
 }
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/routines/BUILD.gn b/chrome/browser/chromeos/extensions/telemetry/api/routines/BUILD.gn
new file mode 100644
index 0000000..6469e459c
--- /dev/null
+++ b/chrome/browser/chromeos/extensions/telemetry/api/routines/BUILD.gn
@@ -0,0 +1,41 @@
+# Copyright 2023 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("routines") {
+  sources = [
+    "diagnostic_routine_observation.cc",
+    "diagnostic_routine_observation.h",
+  ]
+
+  deps = [
+    "//base",
+    "//chrome/common/chromeos/extensions/api",
+    "//chromeos/crosapi/mojom",
+    "//content/public/browser",
+    "//extensions/common",
+    "//mojo/public/cpp/bindings",
+  ]
+
+  public_deps = [ "//extensions/browser" ]
+}
+
+source_set("browser_tests") {
+  testonly = true
+  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
+  sources = [ "diagnostic_routine_observation_browsertest.cc" ]
+
+  deps = [
+    ":routines",
+    "//base",
+    "//chrome/browser/chromeos/extensions/telemetry/api/common:test_support",
+    "//chrome/common/chromeos/extensions/api",
+    "//chrome/test:test_support_ui",
+    "//chromeos/crosapi/mojom",
+    "//extensions/common",
+    "//mojo/public/cpp/bindings",
+    "//testing/gtest",
+  ]
+
+  data = [ "//chrome/test/data" ]
+}
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation.cc b/chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation.cc
new file mode 100644
index 0000000..730c70c2
--- /dev/null
+++ b/chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation.cc
@@ -0,0 +1,68 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation.h"
+
+#include <memory>
+
+#include "base/allocator/partition_allocator/pointers/raw_ptr.h"
+#include "base/notreached.h"
+#include "base/uuid.h"
+#include "chrome/common/chromeos/extensions/api/diagnostics.h"
+#include "chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom.h"
+#include "content/public/browser/browser_context.h"
+#include "extensions/browser/event_router.h"
+#include "extensions/browser/extension_event_histogram_value.h"
+#include "extensions/common/extension_id.h"
+
+namespace chromeos {
+
+namespace {
+
+namespace crosapi = ::crosapi::mojom;
+
+}  // namespace
+
+DiagnosticRoutineObservation::DiagnosticRoutineObservation(
+    extensions::ExtensionId extension_id,
+    base::Uuid uuid,
+    content::BrowserContext* context,
+    mojo::PendingReceiver<crosapi::TelemetryDiagnosticRoutineObserver>
+        pending_receiver)
+    : extension_id_(extension_id),
+      uuid_(uuid),
+      browser_context_(context),
+      receiver_(this, std::move(pending_receiver)) {}
+
+DiagnosticRoutineObservation::~DiagnosticRoutineObservation() = default;
+
+void DiagnosticRoutineObservation::OnRoutineStateChange(
+    crosapi::TelemetryDiagnosticRoutineStatePtr state) {
+  std::unique_ptr<extensions::Event> event;
+  switch (state->state_union->which()) {
+    case crosapi::TelemetryDiagnosticRoutineStateUnion::Tag::
+        kUnrecognizedArgument:
+      LOG(WARNING) << "Got unknown routine state";
+      return;
+    case crosapi::TelemetryDiagnosticRoutineStateUnion::Tag::kInitialized: {
+      api::os_diagnostics::RoutineInitializedInfo arg;
+      arg.uuid = uuid_.AsLowercaseString();
+      event = std::make_unique<extensions::Event>(
+          extensions::events::OS_DIAGNOSTICS_ON_ROUTINE_INITIALIZED,
+          api::os_diagnostics::OnRoutineInitialized::kEventName,
+          base::Value::List().Append(arg.ToValue()), browser_context_);
+      break;
+    }
+    case crosapi::TelemetryDiagnosticRoutineStateUnion::Tag::kRunning:
+    case crosapi::TelemetryDiagnosticRoutineStateUnion::Tag::kWaiting:
+    case crosapi::TelemetryDiagnosticRoutineStateUnion::Tag::kFinished:
+      NOTIMPLEMENTED();
+      break;
+  }
+
+  extensions::EventRouter::Get(browser_context_)
+      ->DispatchEventToExtension(extension_id_, std::move(event));
+}
+
+}  // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation.h b/chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation.h
new file mode 100644
index 0000000..4e612fe
--- /dev/null
+++ b/chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation.h
@@ -0,0 +1,48 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_ROUTINES_DIAGNOSTIC_ROUTINE_OBSERVATION_H_
+#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_ROUTINES_DIAGNOSTIC_ROUTINE_OBSERVATION_H_
+
+#include "base/allocator/partition_allocator/pointers/raw_ptr.h"
+#include "base/uuid.h"
+#include "chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom.h"
+#include "content/public/browser/browser_context.h"
+#include "extensions/common/extension_id.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+
+namespace chromeos {
+
+class DiagnosticRoutineObservation
+    : public crosapi::mojom::TelemetryDiagnosticRoutineObserver {
+ public:
+  explicit DiagnosticRoutineObservation(
+      extensions::ExtensionId extension_id,
+      base::Uuid uuid,
+      content::BrowserContext* context,
+      mojo::PendingReceiver<crosapi::mojom::TelemetryDiagnosticRoutineObserver>
+          pending_receiver);
+
+  DiagnosticRoutineObservation(const DiagnosticRoutineObservation&) = delete;
+  DiagnosticRoutineObservation& operator=(const DiagnosticRoutineObservation&) =
+      delete;
+
+  ~DiagnosticRoutineObservation() override;
+
+  // `TelemetryDiagnosticRoutineObserver`:
+  void OnRoutineStateChange(
+      crosapi::mojom::TelemetryDiagnosticRoutineStatePtr state) override;
+
+ private:
+  // `ExtensionId` associated with this observation.
+  const extensions::ExtensionId extension_id_;
+  const base::Uuid uuid_;
+  base::raw_ptr<content::BrowserContext, ExperimentalAsh> browser_context_;
+  mojo::Receiver<crosapi::mojom::TelemetryDiagnosticRoutineObserver> receiver_;
+};
+
+}  // namespace chromeos
+
+#endif  // CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_ROUTINES_DIAGNOSTIC_ROUTINE_OBSERVATION_H_
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation_browsertest.cc b/chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation_browsertest.cc
new file mode 100644
index 0000000..fd7c94b
--- /dev/null
+++ b/chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation_browsertest.cc
@@ -0,0 +1,155 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/extensions/telemetry/api/routines/diagnostic_routine_observation.h"
+
+#include <memory>
+#include <string>
+
+#include "base/allocator/partition_allocator/pointers/raw_ptr.h"
+#include "base/functional/callback.h"
+#include "base/location.h"
+#include "base/strings/stringprintf.h"
+#include "base/task/single_thread_task_runner.h"
+#include "base/test/bind.h"
+#include "base/test/scoped_feature_list.h"
+#include "base/uuid.h"
+#include "chrome/browser/chromeos/extensions/telemetry/api/common/base_telemetry_extension_browser_test.h"
+#include "chrome/common/chromeos/extensions/api/diagnostics.h"
+#include "chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/test/browser_test.h"
+#include "extensions/browser/event_router.h"
+#include "extensions/common/extension_features.h"
+#include "mojo/public/cpp/bindings/remote.h"
+
+namespace chromeos {
+namespace {
+
+namespace crosapi = ::crosapi::mojom;
+
+// An `EventRouterObserver` that runs a callback once a callback is registered
+// for the provided `event_name`. This class is used in tests to execute code
+// once the callback is properly set up. That way we can make sure to dispatch
+// events in the right moment. This class also makes sure that the passed
+// callback is only executed once by unregistering itself as an observer in case
+// the correct event occurs.
+class EventRegistrationObserver : public extensions::EventRouter::Observer {
+ public:
+  explicit EventRegistrationObserver(const std::string& event_name,
+                                     base::OnceClosure on_event_added,
+                                     content::BrowserContext* context)
+      : context_(context),
+        event_name_(event_name),
+        on_event_added_(std::move(on_event_added)) {}
+  ~EventRegistrationObserver() override = default;
+
+  void OnListenerAdded(const extensions::EventListenerInfo& details) override {
+    if (details.event_name.compare(event_name_)) {
+      extensions::EventRouter::Get(context_)->UnregisterObserver(this);
+      base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
+          FROM_HERE, std::move(on_event_added_));
+    }
+  }
+
+ private:
+  base::raw_ptr<content::BrowserContext, ExperimentalAsh> context_;
+  const std::string& event_name_;
+  base::OnceClosure on_event_added_;
+};
+
+class TelemetryExtensionDiagnosticRoutineObserverBrowserTest
+    : public BaseTelemetryExtensionBrowserTest {
+ public:
+  void SetUpOnMainThread() override {
+    BaseTelemetryExtensionBrowserTest::SetUpOnMainThread();
+
+    observation_ = std::make_unique<DiagnosticRoutineObservation>(
+        extension_id(), uuid_, profile(), remote_.BindNewPipeAndPassReceiver());
+  }
+
+ protected:
+  void RegisterEventObserver(const std::string& event_name,
+                             base::OnceClosure on_event_added) {
+    registration_observer_ = std::make_unique<EventRegistrationObserver>(
+        event_name, std::move(on_event_added), profile());
+
+    extensions::EventRouter::Get(profile())->RegisterObserver(
+        registration_observer_.get(), event_name);
+  }
+
+  base::Uuid uuid_{base::Uuid::GenerateRandomV4()};
+  mojo::Remote<crosapi::TelemetryDiagnosticRoutineObserver> remote_;
+
+ private:
+  std::unique_ptr<EventRegistrationObserver> registration_observer_;
+  std::unique_ptr<DiagnosticRoutineObservation> observation_;
+};
+
+}  // namespace
+
+IN_PROC_BROWSER_TEST_F(TelemetryExtensionDiagnosticRoutineObserverBrowserTest,
+                       CanObserveOnRoutineInitializedWithoutFeatureFlagFail) {
+  CreateExtensionAndRunServiceWorker(R"(
+    chrome.test.runTests([
+      function canObserveOnRoutineInitializedFail() {
+        chrome.test.assertThrows(() => {
+          chrome.os.diagnostics.onRoutineInitialized.addListener((event) => {
+            // unreachable
+          });
+        }, [],
+          'Cannot read properties of undefined (reading \'addListener\')'
+        );
+
+        chrome.test.succeed();
+      }
+    ]);
+  )");
+}
+
+class PendingApprovalTelemetryExtensionDiagnosticRoutineObserverBrowserTest
+    : public TelemetryExtensionDiagnosticRoutineObserverBrowserTest {
+ public:
+  PendingApprovalTelemetryExtensionDiagnosticRoutineObserverBrowserTest() {
+    feature_list_.InitAndEnableFeature(
+        extensions_features::kTelemetryExtensionPendingApprovalApi);
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+};
+
+IN_PROC_BROWSER_TEST_F(
+    PendingApprovalTelemetryExtensionDiagnosticRoutineObserverBrowserTest,
+    CanObserveOnRoutineInitialized) {
+  RegisterEventObserver(
+      api::os_diagnostics::OnRoutineInitialized::kEventName,
+      base::BindLambdaForTesting([this] {
+        auto init_state = crosapi::TelemetryDiagnosticRoutineState::New();
+        init_state->state_union =
+            crosapi::TelemetryDiagnosticRoutineStateUnion::NewInitialized(
+                crosapi::TelemetryDiagnosticRoutineStateInitialized::New());
+        init_state->percentage = 0;
+
+        remote_->OnRoutineStateChange(std::move(init_state));
+      }));
+
+  CreateExtensionAndRunServiceWorker(
+      base::StringPrintf(R"(
+    chrome.test.runTests([
+      async function canObserveOnRoutineInitialized() {
+        chrome.os.diagnostics.onRoutineInitialized.addListener((event) => {
+          chrome.test.assertEq(event, {
+            uuid: "%s",
+          });
+
+          chrome.test.succeed();
+        });
+      }
+    ]);
+  )",
+                         uuid_.AsLowercaseString().c_str()));
+}
+
+}  // namespace chromeos
diff --git a/chrome/browser/dom_distiller/tab_utils.cc b/chrome/browser/dom_distiller/tab_utils.cc
index 09eb2062..e38641d 100644
--- a/chrome/browser/dom_distiller/tab_utils.cc
+++ b/chrome/browser/dom_distiller/tab_utils.cc
@@ -14,7 +14,6 @@
 #include "chrome/browser/ui/tab_contents/core_tab_helper.h"
 #include "components/back_forward_cache/back_forward_cache_disable.h"
 #include "components/dom_distiller/content/browser/distiller_page_web_contents.h"
-#include "components/dom_distiller/content/browser/uma_helper.h"
 #include "components/dom_distiller/core/distiller_page.h"
 #include "components/dom_distiller/core/dom_distiller_service.h"
 #include "components/dom_distiller/core/task_tracker.h"
@@ -161,12 +160,6 @@
   new_web_contents->GetController().CopyStateFrom(
       &old_web_contents->GetController(), /* needs_reload */ true);
 
-#if !BUILDFLAG(IS_ANDROID)
-  // Use the old_web_contents to log time on the distillable page before
-  // navigating away from these contents.
-  dom_distiller::UMAHelper::LogTimeOnDistillablePage(old_web_contents);
-#endif
-
   // StartNavigationToDistillerViewer must come before swapping the tab contents
   // to avoid triggering a reload of the page.  This reloadmakes it very
   // difficult to distinguish between the intermediate reload and a user hitting
diff --git a/chrome/browser/dom_distiller/tab_utils_browsertest.cc b/chrome/browser/dom_distiller/tab_utils_browsertest.cc
index 99459f3d..e19773a 100644
--- a/chrome/browser/dom_distiller/tab_utils_browsertest.cc
+++ b/chrome/browser/dom_distiller/tab_utils_browsertest.cc
@@ -12,7 +12,6 @@
 #include "base/scoped_observation.h"
 #include "base/strings/strcat.h"
 #include "base/strings/utf_string_conversions.h"
-#include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
@@ -72,8 +71,6 @@
 #else   // Desktop. This test is in chrome/ and is not run on iOS.
 const char* kExpectedDocumentTitle = "Test Page Title - Reader Mode";
 #endif  // BUILDFLAG(IS_ANDROID)
-const char* kDistillablePageHistogram =
-    "DomDistiller.Time.ActivelyViewingArticleBeforeDistilling";
 
 std::unique_ptr<content::WebContents> NewContentsWithSameParamsAs(
     content::WebContents* source_web_contents) {
@@ -206,39 +203,6 @@
   EXPECT_EQ(kExpectedArticleHeading, GetArticleHeading(after_web_contents));
 }
 
-// TODO(1061928): Make this test more robust by using a TestMockTimeTaskRunner
-// and a test TickClock. This would require having UMAHelper be an object
-// so that it can hold a TickClock reference.
-IN_PROC_BROWSER_TEST_F(DomDistillerTabUtilsBrowserTest, UMATimesAreLogged) {
-  base::HistogramTester histogram_tester;
-
-  content::WebContents* initial_web_contents =
-      browser()->tab_strip_model()->GetActiveWebContents();
-  TestDistillabilityObserver distillability_observer(initial_web_contents);
-  DistillabilityResult expected_result;
-  expected_result.is_distillable = true;
-  expected_result.is_last = false;
-  expected_result.is_mobile_friendly = false;
-
-  // This blocks until the navigation has completely finished.
-  ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), article_url()));
-  // This blocks until the page is found to be distillable.
-  distillability_observer.WaitForResult(expected_result);
-
-  // No UMA logged for distillable or distilled yet.
-  histogram_tester.ExpectTotalCount(kDistillablePageHistogram, 0);
-
-  DistillCurrentPageAndView(initial_web_contents);
-
-  // UMA should now exist for the distillable page because we distilled it.
-  histogram_tester.ExpectTotalCount(kDistillablePageHistogram, 1);
-
-  // Go back to the article, check UMA exists for distilled page now.
-  ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), article_url()));
-  // However, there should not be a second distillable histogram.
-  histogram_tester.ExpectTotalCount(kDistillablePageHistogram, 1);
-}
-
 IN_PROC_BROWSER_TEST_F(DomDistillerTabUtilsBrowserTest,
                        BackForwardNavigationRegeneratesDistillabilitySignal) {
   content::WebContents* initial_web_contents =
diff --git a/chrome/browser/enterprise/idle/idle_timeout_policy_handler.cc b/chrome/browser/enterprise/idle/idle_timeout_policy_handler.cc
index c2c261e..a92dade 100644
--- a/chrome/browser/enterprise/idle/idle_timeout_policy_handler.cc
+++ b/chrome/browser/enterprise/idle/idle_timeout_policy_handler.cc
@@ -280,6 +280,9 @@
   DCHECK(value);
   base::Value::List clear_data_actions;
   for (const base::Value& action : value->GetList()) {
+    if (!action.is_string()) {
+      continue;
+    }
     std::string clear_data_action =
         GetActionBrowsingDataTypeName(action.GetString());
     if (!clear_data_action.empty()) {
diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc
index 8ca54e5..ad38812 100644
--- a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc
+++ b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc
@@ -403,6 +403,8 @@
     state = developer::EXTENSION_STATE_DISABLED;
   else if ((ext = registry->terminated_extensions().GetByID(id)) != nullptr)
     state = developer::EXTENSION_STATE_TERMINATED;
+  else if ((ext = registry->blocklisted_extensions().GetByID(id)) != nullptr)
+    state = developer::EXTENSION_STATE_BLACKLISTED;
 
   if (ext && ui_util::ShouldDisplayInExtensionSettings(*ext))
     CreateExtensionInfoHelper(*ext, state);
diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator_unittest.cc b/chrome/browser/extensions/api/developer_private/extension_info_generator_unittest.cc
index a8181e5..f09e558 100644
--- a/chrome/browser/extensions/api/developer_private/extension_info_generator_unittest.cc
+++ b/chrome/browser/extensions/api/developer_private/extension_info_generator_unittest.cc
@@ -940,6 +940,11 @@
   ASSERT_NE(nullptr, info2);
   EXPECT_EQ(developer::EXTENSION_STATE_BLACKLISTED, info1->state);
   EXPECT_EQ(developer::EXTENSION_STATE_ENABLED, info2->state);
+
+  // Verify getExtensionInfo() returns data on blocklisted extensions.
+  auto info3 = GenerateExtensionInfo(id1);
+  ASSERT_NE(nullptr, info3);
+  EXPECT_EQ(developer::EXTENSION_STATE_BLACKLISTED, info3->state);
 }
 
 // Test generating extension action commands properly.
diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedSurfaceScopeDependencyProviderImpl.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedSurfaceScopeDependencyProviderImpl.java
index db97945..f611216a 100644
--- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedSurfaceScopeDependencyProviderImpl.java
+++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedSurfaceScopeDependencyProviderImpl.java
@@ -11,6 +11,7 @@
 
 import org.chromium.base.ObserverList;
 import org.chromium.chrome.browser.xsurface.LoggingParameters;
+import org.chromium.chrome.browser.xsurface.PersistentKeyValueCache;
 import org.chromium.chrome.browser.xsurface.SurfaceHeaderOffsetObserver;
 
 /**
@@ -23,6 +24,8 @@
     private final Context mActivityContext;
     private final boolean mDarkMode;
     private final ObserverList<SurfaceHeaderOffsetObserver> mObserverList = new ObserverList<>();
+    private final FeedPersistentKeyValueCache mPersistentKeyValueCache =
+            new FeedPersistentKeyValueCache();
 
     public FeedSurfaceScopeDependencyProviderImpl(
             Activity activity, Context activityContext, boolean darkMode) {
@@ -85,4 +88,9 @@
         FeedProcessScopeDependencyProviderJni.get().processViewAction(
                 data, FeedLoggingParameters.convertToProto(loggingParameters).toByteArray());
     }
+
+    @Override
+    public PersistentKeyValueCache getPersistentKeyValueCache() {
+        return mPersistentKeyValueCache;
+    }
 }
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 195f42cc7..ea095c9 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -4992,6 +4992,11 @@
     "expiry_milestone": 121
   },
   {
+    "name": "ios-password-auth-on-entry-v2",
+    "owners": ["eic", "bling-transactions@google.com"],
+    "expiry_milestone": 122
+  },
+  {
     "name": "ios-password-bottom-sheet",
     "owners": ["veronguyen", "sugoi", "tmartino", "bling-integrations-team@google.com"],
     "expiry_milestone": 118
@@ -6494,11 +6499,6 @@
     "expiry_milestone": 118
   },
   {
-    "name": "passwords-import-m2",
-    "owners": ["natiahlyi@google.com", "eliaskh"],
-    "expiry_milestone": 117
-  },
-  {
     "name": "passwords-in-android-credential-management",
     "owners": ["derinel@google.com", "fhorschig", "kenrb", "agl"],
     "expiry_milestone": 120
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 96ddaee..cf026b6 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2755,11 +2755,6 @@
     "Enables different experiments that modify content and behavior of the "
     "existing generated password suggestion dropdown.";
 
-const char kPasswordsImportM2Name[] = "Passwords Import M2";
-const char kPasswordsImportM2Description[] =
-    "Extends passwords import flow in password settings with conflict "
-    "resolution functionality.";
-
 const char kForceEnableFastCheckoutCapabilitiesName[] =
     "Force enable fast checkout capabilities";
 const char kForceEnableFastCheckoutCapabilitiesDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index d762b7ea..06e73af 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1562,9 +1562,6 @@
 extern const char kPasswordGenerationExperimentName[];
 extern const char kPasswordGenerationExperimentDescription[];
 
-extern const char kPasswordsImportM2Name[];
-extern const char kPasswordsImportM2Description[];
-
 extern const char kForceEnableFastCheckoutCapabilitiesName[];
 extern const char kForceEnableFastCheckoutCapabilitiesDescription[];
 
diff --git a/chrome/browser/navigation_predictor/navigation_predictor.cc b/chrome/browser/navigation_predictor/navigation_predictor.cc
index bc9d972..acdbde3 100644
--- a/chrome/browser/navigation_predictor/navigation_predictor.cc
+++ b/chrome/browser/navigation_predictor/navigation_predictor.cc
@@ -15,6 +15,8 @@
 #include "base/system/sys_info.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service_factory.h"
+#include "chrome/browser/navigation_predictor/preloading_model_keyed_service.h"
+#include "chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.h"
 #include "chrome/browser/preloading/prefetch/no_state_prefetch/no_state_prefetch_manager_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/no_state_prefetch/browser/no_state_prefetch_manager.h"
@@ -180,6 +182,14 @@
             kAnchorElementsParsedFromWebPage,
         new_predictions);
   }
+
+  PreloadingModelKeyedService* model_service =
+      PreloadingModelKeyedServiceFactory::GetForProfile(
+          Profile::FromBrowserContext(render_frame_host().GetBrowserContext()));
+  if (!model_service) {
+    return;
+  }
+  // TODO(isaboori): use the ML model to predict the next use click.
 }
 
 void NavigationPredictor::ReportAnchorElementClick(
diff --git a/chrome/browser/navigation_predictor/preloading_model_executor.cc b/chrome/browser/navigation_predictor/preloading_model_executor.cc
new file mode 100644
index 0000000..16c3857
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_executor.cc
@@ -0,0 +1,29 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/navigation_predictor/preloading_model_executor.h"
+
+#include "third_party/tflite_support/src/tensorflow_lite_support/cc/task/core/task_utils.h"
+
+PreloadingModelExecutor::PreloadingModelExecutor() = default;
+PreloadingModelExecutor::~PreloadingModelExecutor() = default;
+
+bool PreloadingModelExecutor::Preprocess(
+    const std::vector<TfLiteTensor*>& input_tensors,
+    const std::vector<float>& input) {
+  return tflite::task::core::PopulateTensor<float>(input, input_tensors[0])
+      .ok();
+}
+
+absl::optional<float> PreloadingModelExecutor::Postprocess(
+    const std::vector<const TfLiteTensor*>& output_tensors) {
+  std::vector<float> output;
+  if (!tflite::task::core::PopulateVector<float>(output_tensors[0], &output)
+           .ok()) {
+    return absl::nullopt;
+  }
+
+  CHECK_EQ(1u, output.size());
+  return output[0];
+}
diff --git a/chrome/browser/navigation_predictor/preloading_model_executor.h b/chrome/browser/navigation_predictor/preloading_model_executor.h
new file mode 100644
index 0000000..a834621
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_executor.h
@@ -0,0 +1,32 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_EXECUTOR_H_
+#define CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_EXECUTOR_H_
+
+#include "components/optimization_guide/core/base_model_executor.h"
+
+// A model executor to run the history clusters module ranking model.
+class PreloadingModelExecutor
+    : public optimization_guide::BaseModelExecutor<float,
+                                                   const std::vector<float>&> {
+ public:
+  using ModelInput = const std::vector<float>&;
+  using ModelOutput = float;
+
+  PreloadingModelExecutor();
+  ~PreloadingModelExecutor() override;
+
+  PreloadingModelExecutor(const PreloadingModelExecutor&) = delete;
+  PreloadingModelExecutor& operator=(const PreloadingModelExecutor&) = delete;
+
+ protected:
+  // optimization_guide::BaseModelExecutor:
+  bool Preprocess(const std::vector<TfLiteTensor*>& input_tensors,
+                  ModelInput input) override;
+  absl::optional<ModelOutput> Postprocess(
+      const std::vector<const TfLiteTensor*>& output_tensors) override;
+};
+
+#endif  // CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_EXECUTOR_H_
diff --git a/chrome/browser/navigation_predictor/preloading_model_executor_unittest.cc b/chrome/browser/navigation_predictor/preloading_model_executor_unittest.cc
new file mode 100644
index 0000000..97f0f8a
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_executor_unittest.cc
@@ -0,0 +1,89 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/navigation_predictor/preloading_model_executor.h"
+
+#include "base/base_paths.h"
+#include "base/path_service.h"
+#include "base/task/sequenced_task_runner.h"
+#include "base/test/scoped_feature_list.h"
+#include "base/test/task_environment.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/common/features.h"
+
+using ModelInput = PreloadingModelExecutor::ModelInput;
+using ModelOutput = PreloadingModelExecutor::ModelOutput;
+
+class PreloadingModelExecutorTest : public testing::Test {
+ public:
+  PreloadingModelExecutorTest() {
+    scoped_feature_list_.InitAndEnableFeature(
+        blink::features::kPreloadingHeuristicsMLModel);
+  }
+  ~PreloadingModelExecutorTest() override = default;
+
+  void SetUp() override {
+    base::FilePath source_root_dir;
+    base::PathService::Get(base::DIR_SOURCE_ROOT, &source_root_dir);
+    // A model of `add` operator.
+    model_file_path_ = source_root_dir.AppendASCII("chrome")
+                           .AppendASCII("browser")
+                           .AppendASCII("navigation_predictor")
+                           .AppendASCII("test")
+                           .AppendASCII("preloading_heuristics.tflite");
+    execution_task_runner_ = base::ThreadPool::CreateSequencedTaskRunner(
+        {base::MayBlock(), base::TaskPriority::BEST_EFFORT});
+    model_executor_ = std::make_unique<PreloadingModelExecutor>();
+    model_executor_->InitializeAndMoveToExecutionThread(
+        /*model_inference_timeout=*/absl::nullopt,
+        optimization_guide::proto::OPTIMIZATION_TARGET_OMNIBOX_URL_SCORING,
+        execution_task_runner_, base::SequencedTaskRunner::GetCurrentDefault());
+  }
+
+  void TearDown() override {
+    // Destroy model executor.
+    execution_task_runner_->DeleteSoon(FROM_HERE, std::move(model_executor_));
+    RunUntilIdle();
+  }
+
+  void RunUntilIdle() { task_environment_.RunUntilIdle(); }
+
+ protected:
+  base::test::ScopedFeatureList scoped_feature_list_;
+  base::test::TaskEnvironment task_environment_;
+  base::FilePath model_file_path_;
+  scoped_refptr<base::SequencedTaskRunner> execution_task_runner_;
+  std::unique_ptr<PreloadingModelExecutor> model_executor_;
+};
+
+TEST_F(PreloadingModelExecutorTest, ExecuteModel) {
+  // Update model file.
+  execution_task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          &optimization_guide::ModelExecutor<ModelOutput,
+                                             ModelInput>::UpdateModelFile,
+          model_executor_->GetWeakPtrForExecutionThread(), model_file_path_));
+
+  // Execute model.
+  std::unique_ptr<base::RunLoop> run_loop = std::make_unique<base::RunLoop>();
+  base::OnceCallback<void(const absl::optional<ModelOutput>&)>
+      execution_callback = base::BindOnce(
+          [](base::RunLoop* run_loop,
+             const absl::optional<ModelOutput>& output) {
+            ASSERT_TRUE(output.has_value());
+            // TODO(isaboori): After the trained model is approved, use
+            // realistic inputs and check the output value.
+            run_loop->Quit();
+          },
+          run_loop.get());
+  base::TimeTicks now = base::TimeTicks::Now();
+  ModelInput input = std::vector<float>(/*count=*/17, /*value=*/0.0);
+  execution_task_runner_->PostTask(
+      FROM_HERE, base::BindOnce(&optimization_guide::ModelExecutor<
+                                    ModelOutput, ModelInput>::SendForExecution,
+                                model_executor_->GetWeakPtrForExecutionThread(),
+                                std::move(execution_callback), now, input));
+  run_loop->Run();
+}
diff --git a/chrome/browser/navigation_predictor/preloading_model_handler.cc b/chrome/browser/navigation_predictor/preloading_model_handler.cc
new file mode 100644
index 0000000..fd55b131
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_handler.cc
@@ -0,0 +1,24 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/navigation_predictor/preloading_model_handler.h"
+
+#include "base/task/thread_pool.h"
+#include "chrome/browser/navigation_predictor/preloading_model_executor.h"
+
+PreloadingModelHandler::PreloadingModelHandler(
+    optimization_guide::OptimizationGuideModelProvider* model_provider)
+    : ModelHandler<float, const std::vector<float>&>(
+          model_provider,
+          base::ThreadPool::CreateSequencedTaskRunner(
+              {base::MayBlock(), base::TaskPriority::USER_VISIBLE}),
+          std::make_unique<PreloadingModelExecutor>(),
+          /*model_inference_timeout=*/absl::nullopt,
+          optimization_guide::proto::OptimizationTarget::
+              OPTIMIZATION_TARGET_PRELOADING_HEURISTICS,
+          /*model_metadata=*/absl::nullopt) {
+  SetShouldUnloadModelOnComplete(false);
+}
+
+PreloadingModelHandler::~PreloadingModelHandler() = default;
diff --git a/chrome/browser/navigation_predictor/preloading_model_handler.h b/chrome/browser/navigation_predictor/preloading_model_handler.h
new file mode 100644
index 0000000..cf138dd
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_handler.h
@@ -0,0 +1,25 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_HANDLER_H_
+#define CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_HANDLER_H_
+
+#include "components/optimization_guide/core/model_handler.h"
+
+// Model handler used to retrieve and eventually execute the model.
+class PreloadingModelHandler
+    : public optimization_guide::ModelHandler<float,
+                                              const std::vector<float>&> {
+ public:
+  explicit PreloadingModelHandler(
+      optimization_guide::OptimizationGuideModelProvider* model_provider);
+  ~PreloadingModelHandler() override;
+  PreloadingModelHandler(const PreloadingModelHandler&) = delete;
+  PreloadingModelHandler& operator=(const PreloadingModelHandler&) = delete;
+
+ private:
+  base::WeakPtrFactory<PreloadingModelHandler> weak_ptr_factory_{this};
+};
+
+#endif  // CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_HANDLER_H_
diff --git a/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc b/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc
new file mode 100644
index 0000000..04df16c
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc
@@ -0,0 +1,20 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/navigation_predictor/preloading_model_keyed_service.h"
+
+#include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
+
+PreloadingModelKeyedService::PreloadingModelKeyedService(
+    OptimizationGuideKeyedService* optimization_guide_keyed_service) {
+  auto* model_provider =
+      static_cast<optimization_guide::OptimizationGuideModelProvider*>(
+          optimization_guide_keyed_service);
+
+  if (model_provider) {
+    preloading_model_handler_ =
+        std::make_unique<PreloadingModelHandler>(model_provider);
+  }
+}
+PreloadingModelKeyedService::~PreloadingModelKeyedService() = default;
diff --git a/chrome/browser/navigation_predictor/preloading_model_keyed_service.h b/chrome/browser/navigation_predictor/preloading_model_keyed_service.h
new file mode 100644
index 0000000..b329d633
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_keyed_service.h
@@ -0,0 +1,29 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_KEYED_SERVICE_H_
+#define CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_KEYED_SERVICE_H_
+
+#include "chrome/browser/navigation_predictor/preloading_model_handler.h"
+#include "components/keyed_service/core/keyed_service.h"
+
+class OptimizationGuideKeyedService;
+
+class PreloadingModelKeyedService : public KeyedService {
+ public:
+  PreloadingModelKeyedService(const PreloadingModelKeyedService&) = delete;
+  explicit PreloadingModelKeyedService(
+      OptimizationGuideKeyedService* optimization_guide_keyed_service);
+  ~PreloadingModelKeyedService() override;
+
+  PreloadingModelHandler* GetPreloadingModel() const {
+    return preloading_model_handler_.get();
+  }
+
+ private:
+  // preloading ML model
+  std::unique_ptr<PreloadingModelHandler> preloading_model_handler_;
+};
+
+#endif  // CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_KEYED_SERVICE_H_
diff --git a/chrome/browser/navigation_predictor/preloading_model_keyed_service_browsertest.cc b/chrome/browser/navigation_predictor/preloading_model_keyed_service_browsertest.cc
new file mode 100644
index 0000000..e11975aa
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_keyed_service_browsertest.cc
@@ -0,0 +1,58 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/navigation_predictor/preloading_model_keyed_service.h"
+
+#include "chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.h"
+#include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "content/public/test/browser_test.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/common/features.h"
+
+namespace {
+
+class PreloadingModelKeyedServiceTest
+    : public InProcessBrowserTest,
+      public testing::WithParamInterface<bool> {
+ public:
+  PreloadingModelKeyedServiceTest() {
+    bool is_enabled = GetParam();
+    if (is_enabled) {
+      scoped_feature_list_.InitAndEnableFeature(
+          blink::features::kPreloadingHeuristicsMLModel);
+    }
+  }
+  ~PreloadingModelKeyedServiceTest() override = default;
+
+  content::WebContents* GetWebContents() {
+    return browser()->tab_strip_model()->GetActiveWebContents();
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+IN_PROC_BROWSER_TEST_P(PreloadingModelKeyedServiceTest, FeatureFlagIsWorking) {
+  Profile* profile =
+      Profile::FromBrowserContext(GetWebContents()->GetBrowserContext());
+  ASSERT_TRUE(OptimizationGuideKeyedServiceFactory::GetForProfile(profile));
+
+  PreloadingModelKeyedService* model_service =
+      PreloadingModelKeyedServiceFactory::GetForProfile(profile);
+  bool is_enabled = GetParam();
+  if (is_enabled) {
+    EXPECT_TRUE(model_service);
+  } else {
+    EXPECT_FALSE(model_service);
+  }
+}
+
+INSTANTIATE_TEST_SUITE_P(ParametrizedTests,
+                         PreloadingModelKeyedServiceTest,
+                         testing::Values(true, false));
+
+}  // namespace
diff --git a/chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.cc b/chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.cc
new file mode 100644
index 0000000..db73e751
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.cc
@@ -0,0 +1,47 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.h"
+
+#include "chrome/browser/navigation_predictor/preloading_model_keyed_service.h"
+#include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
+#include "chrome/browser/profiles/profile.h"
+#include "third_party/blink/public/common/features.h"
+
+PreloadingModelKeyedService* PreloadingModelKeyedServiceFactory::GetForProfile(
+    Profile* profile) {
+  return static_cast<PreloadingModelKeyedService*>(
+      GetInstance()->GetServiceForBrowserContext(profile, true));
+}
+
+PreloadingModelKeyedServiceFactory*
+PreloadingModelKeyedServiceFactory::GetInstance() {
+  static base::NoDestructor<PreloadingModelKeyedServiceFactory> instance;
+  return instance.get();
+}
+
+PreloadingModelKeyedServiceFactory::PreloadingModelKeyedServiceFactory()
+    : ProfileKeyedServiceFactory(
+          "PreloadingModelKeyedService",
+          ProfileSelections::Builder()
+              .WithRegular(ProfileSelection::kOriginalOnly)
+              .WithGuest(ProfileSelection::kNone)
+              .WithAshInternals(ProfileSelection::kNone)
+              .Build()) {
+  DependsOn(OptimizationGuideKeyedServiceFactory::GetInstance());
+}
+
+PreloadingModelKeyedServiceFactory::~PreloadingModelKeyedServiceFactory() =
+    default;
+
+KeyedService* PreloadingModelKeyedServiceFactory::BuildServiceInstanceFor(
+    content::BrowserContext* context) const {
+  if (!base::FeatureList::IsEnabled(
+          blink::features::kPreloadingHeuristicsMLModel)) {
+    return nullptr;
+  }
+  auto* profile = Profile::FromBrowserContext(context);
+  return new PreloadingModelKeyedService(
+      OptimizationGuideKeyedServiceFactory::GetForProfile(profile));
+}
diff --git a/chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.h b/chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.h
new file mode 100644
index 0000000..c24ca85
--- /dev/null
+++ b/chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.h
@@ -0,0 +1,31 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_KEYED_SERVICE_FACTORY_H_
+#define CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_KEYED_SERVICE_FACTORY_H_
+
+#include "base/no_destructor.h"
+#include "chrome/browser/profiles/profile_keyed_service_factory.h"
+
+class PreloadingModelKeyedService;
+class Profile;
+
+class PreloadingModelKeyedServiceFactory : public ProfileKeyedServiceFactory {
+ public:
+  static PreloadingModelKeyedService* GetForProfile(Profile* profile);
+  static PreloadingModelKeyedServiceFactory* GetInstance();
+  PreloadingModelKeyedServiceFactory(
+      const PreloadingModelKeyedServiceFactory&) = delete;
+
+ private:
+  friend base::NoDestructor<PreloadingModelKeyedServiceFactory>;
+  PreloadingModelKeyedServiceFactory();
+  ~PreloadingModelKeyedServiceFactory() override;
+
+  // ProfileKeyedServiceFactory:
+  KeyedService* BuildServiceInstanceFor(
+      content::BrowserContext* context) const override;
+};
+
+#endif  // CHROME_BROWSER_NAVIGATION_PREDICTOR_PRELOADING_MODEL_KEYED_SERVICE_FACTORY_H_
diff --git a/chrome/browser/navigation_predictor/test/preloading_heuristics.tflite b/chrome/browser/navigation_predictor/test/preloading_heuristics.tflite
new file mode 100644
index 0000000..01ab1b2bc
--- /dev/null
+++ b/chrome/browser/navigation_predictor/test/preloading_heuristics.tflite
Binary files differ
diff --git a/chrome/browser/new_tab_page/customize_chrome/customize_chrome_feature_promo_helper.cc b/chrome/browser/new_tab_page/customize_chrome/customize_chrome_feature_promo_helper.cc
index 0daa114..7ea077e1 100644
--- a/chrome/browser/new_tab_page/customize_chrome/customize_chrome_feature_promo_helper.cc
+++ b/chrome/browser/new_tab_page/customize_chrome/customize_chrome_feature_promo_helper.cc
@@ -39,7 +39,7 @@
 void CustomizeChromeFeaturePromoHelper::MaybeShowCustomizeChromeFeaturePromo(
     content::WebContents* web_contents) {
   const base::Feature& customize_chrome_feature =
-      features::IsChromeRefresh2023()
+      features::IsChromeRefresh2023() && features::IsChromeWebuiRefresh2023()
           ? feature_engagement::kIPHDesktopCustomizeChromeRefreshFeature
           : feature_engagement::kIPHDesktopCustomizeChromeFeature;
   Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
@@ -54,7 +54,7 @@
 void CustomizeChromeFeaturePromoHelper::CloseCustomizeChromeFeaturePromo(
     content::WebContents* web_contents) {
   const base::Feature& customize_chrome_feature =
-      features::IsChromeRefresh2023()
+      features::IsChromeRefresh2023() && features::IsChromeWebuiRefresh2023()
           ? feature_engagement::kIPHDesktopCustomizeChromeRefreshFeature
           : feature_engagement::kIPHDesktopCustomizeChromeFeature;
   if (auto* const browser_window =
diff --git a/chrome/browser/new_tab_page/customize_chrome/customize_chrome_feature_promo_helper_unittest.cc b/chrome/browser/new_tab_page/customize_chrome/customize_chrome_feature_promo_helper_unittest.cc
index 17a7260..23f9fc82 100644
--- a/chrome/browser/new_tab_page/customize_chrome/customize_chrome_feature_promo_helper_unittest.cc
+++ b/chrome/browser/new_tab_page/customize_chrome/customize_chrome_feature_promo_helper_unittest.cc
@@ -40,7 +40,7 @@
     iph_feature_list_.Reset();
     iph_feature_list_.InitAndEnableFeatures(
         {feature_engagement::kIPHDesktopCustomizeChromeRefreshFeature,
-         features::kChromeRefresh2023});
+         features::kChromeRefresh2023, features::kChromeWebuiRefresh2023});
   }
 
   CustomizeChromeFeaturePromoHelper* helper() { return helper_.get(); }
diff --git a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_util.cc b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_util.cc
index eea68a3..03b3e00 100644
--- a/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_util.cc
+++ b/chrome/browser/new_tab_page/modules/history_clusters/history_clusters_module_util.cc
@@ -110,6 +110,8 @@
   filter_params.filter_hidden_visits = true;
   filter_params.include_synced_visits = base::FeatureList::IsEnabled(
       ntp_features::kNtpHistoryClustersModuleIncludeSyncedVisits);
+  filter_params.group_clusters_by_content = base::FeatureList::IsEnabled(
+      ntp_features::kNtpHistoryClustersModuleEnableContentClustering);
 
   return filter_params;
 }
diff --git a/chrome/browser/password_manager/field_info_manager_factory.cc b/chrome/browser/password_manager/field_info_manager_factory.cc
new file mode 100644
index 0000000..cf03718
--- /dev/null
+++ b/chrome/browser/password_manager/field_info_manager_factory.cc
@@ -0,0 +1,36 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/password_manager/field_info_manager_factory.h"
+
+#include "chrome/browser/profiles/profile.h"
+#include "components/keyed_service/core/keyed_service.h"
+#include "components/password_manager/core/browser/field_info_manager.h"
+
+using password_manager::FieldInfoManager;
+
+// static
+FieldInfoManagerFactory* FieldInfoManagerFactory::GetInstance() {
+  static base::NoDestructor<FieldInfoManagerFactory> instance;
+  return instance.get();
+}
+
+// static
+FieldInfoManager* FieldInfoManagerFactory::GetForProfile(Profile* profile) {
+  return static_cast<FieldInfoManager*>(
+      GetInstance()->GetServiceForBrowserContext(profile, /*create=*/true));
+}
+
+FieldInfoManagerFactory::FieldInfoManagerFactory()
+    : ProfileKeyedServiceFactory("FieldInfoManagerFactory",
+                                 ProfileSelections::BuildForRegularProfile()) {}
+
+FieldInfoManagerFactory::~FieldInfoManagerFactory() = default;
+
+// BrowserContextKeyedServiceFactory overrides:
+KeyedService* FieldInfoManagerFactory::BuildServiceInstanceFor(
+    content::BrowserContext* context) const {
+  return new FieldInfoManager(
+      base::SingleThreadTaskRunner::GetCurrentDefault());
+}
diff --git a/chrome/browser/password_manager/field_info_manager_factory.h b/chrome/browser/password_manager/field_info_manager_factory.h
new file mode 100644
index 0000000..2569b92
--- /dev/null
+++ b/chrome/browser/password_manager/field_info_manager_factory.h
@@ -0,0 +1,37 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PASSWORD_MANAGER_FIELD_INFO_MANAGER_FACTORY_H_
+#define CHROME_BROWSER_PASSWORD_MANAGER_FIELD_INFO_MANAGER_FACTORY_H_
+
+#include "base/no_destructor.h"
+#include "chrome/browser/profiles/profile_keyed_service_factory.h"
+
+namespace password_manager {
+class FieldInfoManager;
+}
+
+class FieldInfoManagerFactory : public ProfileKeyedServiceFactory {
+ public:
+  static FieldInfoManagerFactory* GetInstance();
+
+  // Returns the FieldInfoManager associated with |profile|.
+  // This may be nullptr for an incognito profile.
+  static password_manager::FieldInfoManager* GetForProfile(Profile* profile);
+
+  FieldInfoManagerFactory(const FieldInfoManagerFactory&) = delete;
+  FieldInfoManagerFactory& operator=(const FieldInfoManagerFactory&) = delete;
+
+ private:
+  friend base::NoDestructor<FieldInfoManagerFactory>;
+
+  FieldInfoManagerFactory();
+  ~FieldInfoManagerFactory() override;
+
+  // BrowserContextKeyedServiceFactory overrides:
+  KeyedService* BuildServiceInstanceFor(
+      content::BrowserContext* context) const override;
+};
+
+#endif  // CHROME_BROWSER_PASSWORD_MANAGER_FIELD_INFO_MANAGER_FACTORY_H_
diff --git a/chrome/browser/pdf/pdf_extension_js_test.cc b/chrome/browser/pdf/pdf_extension_js_test.cc
index 4980dad..d250117 100644
--- a/chrome/browser/pdf/pdf_extension_js_test.cc
+++ b/chrome/browser/pdf/pdf_extension_js_test.cc
@@ -235,6 +235,12 @@
   RunTestsInJsModule("viewer_attachment_bar_test.js", "test.pdf");
 }
 
+IN_PROC_BROWSER_TEST_F(PDFExtensionJSTest, ViewerAttachment) {
+  // Although this test file does not require a PDF to be loaded, loading the
+  // elements without loading a PDF is difficult.
+  RunTestsInJsModule("viewer_attachment_test.js", "test.pdf");
+}
+
 IN_PROC_BROWSER_TEST_F(PDFExtensionJSTest, Fullscreen) {
   // Use a PDF document with multiple pages, to exercise navigating between
   // pages.
diff --git a/chrome/browser/policy/management_utils.cc b/chrome/browser/policy/management_utils.cc
index 15cad86..b079317d9 100644
--- a/chrome/browser/policy/management_utils.cc
+++ b/chrome/browser/policy/management_utils.cc
@@ -37,12 +37,4 @@
 #endif
 }
 
-bool IsDeviceCloudManaged() {
-#if BUILDFLAG(IS_CHROMEOS)
-  return IsDeviceEnterpriseManaged();
-#else
-  return policy::BrowserDMTokenStorage::Get()->RetrieveDMToken().is_valid();
-#endif
-}
-
 }  // namespace policy
diff --git a/chrome/browser/policy/management_utils.h b/chrome/browser/policy/management_utils.h
index cd7f870..1a2b353 100644
--- a/chrome/browser/policy/management_utils.h
+++ b/chrome/browser/policy/management_utils.h
@@ -12,9 +12,6 @@
 // false.
 bool IsDeviceEnterpriseManaged();
 
-// Returns true if the device is managed by a cloud source.
-bool IsDeviceCloudManaged();
-
 }  // namespace policy
 
 #endif  // CHROME_BROWSER_POLICY_MANAGEMENT_UTILS_H_
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
index c41be77..52568e9 100644
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -88,6 +88,7 @@
 #include "chrome/browser/media_galleries/media_galleries_preferences_factory.h"
 #include "chrome/browser/metrics/variations/google_groups_updater_service_factory.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service_factory.h"
+#include "chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.h"
 #include "chrome/browser/net/dns_probe_service_factory.h"
 #include "chrome/browser/net/profile_network_context_service_factory.h"
 #include "chrome/browser/notifications/metrics/notification_metrics_logger_factory.h"
@@ -102,6 +103,7 @@
 #include "chrome/browser/page_load_metrics/page_load_metrics_memory_tracker_factory.h"
 #include "chrome/browser/password_manager/account_password_store_factory.h"
 #include "chrome/browser/password_manager/bulk_leak_check_service_factory.h"
+#include "chrome/browser/password_manager/field_info_manager_factory.h"
 #include "chrome/browser/password_manager/password_manager_settings_service_factory.h"
 #include "chrome/browser/password_manager/password_reuse_manager_factory.h"
 #include "chrome/browser/password_manager/password_store_factory.h"
@@ -713,6 +715,7 @@
 #if !BUILDFLAG(IS_ANDROID)
   feedback::FeedbackUploaderFactoryChrome::GetInstance();
 #endif
+  FieldInfoManagerFactory::GetInstance();
   FileSystemAccessPermissionContextFactory::GetInstance();
   FindBarStateFactory::GetInstance();
   first_party_sets::FirstPartySetsPolicyServiceFactory::GetInstance();
@@ -803,6 +806,7 @@
 #endif
   ModelTypeStoreServiceFactory::GetInstance();
   NavigationPredictorKeyedServiceFactory::GetInstance();
+  PreloadingModelKeyedServiceFactory::GetInstance();
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   NearbySharingServiceFactory::GetInstance();
 #endif
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
index ad64bc7..185f3e77 100644
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -46,6 +46,7 @@
 #include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h"
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service_factory.h"
+#include "chrome/browser/navigation_predictor/preloading_model_keyed_service_factory.h"
 #include "chrome/browser/permissions/adaptive_quiet_notification_permission_ui_enabler.h"
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
 #include "chrome/browser/profiles/delete_profile_helper.h"
@@ -1513,6 +1514,9 @@
   // Ensure NavigationPredictorKeyedService is started.
   NavigationPredictorKeyedServiceFactory::GetForProfile(profile);
 
+  // Ensure PreloadingModelKeyedService is started.
+  PreloadingModelKeyedServiceFactory::GetForProfile(profile);
+
   IdentityManagerFactory::GetForProfile(profile)->OnNetworkInitialized();
   AccountReconcilorFactory::GetForProfile(profile);
 
diff --git a/chrome/browser/resources/ash/settings/os_settings.ts b/chrome/browser/resources/ash/settings/os_settings.ts
index 01ecd31..3ed86cf 100644
--- a/chrome/browser/resources/ash/settings/os_settings.ts
+++ b/chrome/browser/resources/ash/settings/os_settings.ts
@@ -101,6 +101,7 @@
 export {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js';
 export {CrCheckboxElement} from 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.js';
 export {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
+export {CrDrawerElement} from 'chrome://resources/cr_elements/cr_drawer/cr_drawer.js';
 export {CrIconButtonElement} from 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js';
 export {CrInputElement} from 'chrome://resources/cr_elements/cr_input/cr_input.js';
 export {CrRadioButtonElement} from 'chrome://resources/cr_elements/cr_radio_button/cr_radio_button.js';
@@ -109,6 +110,7 @@
 export {CrTextareaElement} from 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js';
 export {CrToastElement} from 'chrome://resources/cr_elements/cr_toast/cr_toast.js';
 export {CrToggleElement} from 'chrome://resources/cr_elements/cr_toggle/cr_toggle.js';
+export {CrToolbarSearchFieldElement} from 'chrome://resources/cr_elements/cr_toolbar/cr_toolbar_search_field.js';
 export {CrPolicyIndicatorElement} from 'chrome://resources/cr_elements/policy/cr_policy_indicator.js';
 export {OpenWindowProxyImpl} from 'chrome://resources/js/open_window_proxy.js';
 export {IronCollapseElement} from 'chrome://resources/polymer/v3_0/iron-collapse/iron-collapse.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js
index a585c27..b09a894 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js
@@ -35,6 +35,7 @@
 const AutomationNode = chrome.automation.AutomationNode;
 const Dir = constants.Dir;
 const FormType = LibLouis.FormType;
+const IntentCommandType = chrome.automation.IntentCommandType;
 const Range = CursorRange;
 const RoleType = chrome.automation.RoleType;
 const StateType = chrome.automation.StateType;
@@ -137,12 +138,7 @@
     // Be strict about what's allowed and limit only to overriding set
     // selections.
     if (this.inferredIntents_.length > 0 &&
-        (evt.intents.length === 0 ||
-         evt.intents.some(
-             intent => intent.command ===
-                     chrome.automation.IntentCommandType.SET_SELECTION ||
-                 intent.command ===
-                     chrome.automation.IntentCommandType.CLEAR_SELECTION))) {
+        (intents.length === 0 || intents.some(isSetOrClear))) {
       intents = this.inferredIntents_;
     }
     this.inferredIntents_ = [];
@@ -171,10 +167,10 @@
    */
   moveToAfterEditText() {
     const after = AutomationUtil.findNextNode(
-                      this.node_, Dir.FORWARD, AutomationPredicate.object,
-                      {skipInitialSubtree: true}) ||
-        this.node_;
-    ChromeVoxState.instance.navigateToRange(CursorRange.fromNode(after));
+        this.node_, Dir.FORWARD, AutomationPredicate.object,
+        {skipInitialSubtree: true});
+    ChromeVoxState.instance.navigateToRange(
+        CursorRange.fromNode(after ?? this.node_));
   }
 
   /**
@@ -205,7 +201,7 @@
  * A |ChromeVoxEditableTextBase| that implements text editing feedback
  * for automation tree text fields.
  */
-const AutomationEditableText = class extends ChromeVoxEditableTextBase {
+export class AutomationEditableText extends ChromeVoxEditableTextBase {
   /**
    * @param {!AutomationNode} node
    */
@@ -351,14 +347,14 @@
     }
     return lineBreaks;
   }
-};
+}
 
 
 /**
  * A |ChromeVoxEditableTextBase| that implements text editing feedback
  * for automation tree text fields using anchor and focus selection.
  */
-const AutomationRichEditableText = class extends AutomationEditableText {
+export class AutomationRichEditableText extends AutomationEditableText {
   /**
    * @param {!AutomationNode} node
    */
@@ -995,7 +991,7 @@
       this.speakTextStyle_(container);
     }
   }
-};
+}
 
 
 /**
@@ -1032,3 +1028,12 @@
 
 /** @type {number} */
 const MAX_INLINE_TEXT_BOXES = 500;
+
+/**
+ * @param {!AutomationIntent} intent
+ * @return {boolean}
+ */
+function isSetOrClear(intent) {
+  return intent.command === IntentCommandType.SET_SELECTION ||
+      intent.command === IntentCommandType.CLEAR_SELECTION;
+}
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js
index 5107fac..6dff7c1 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js
@@ -2543,7 +2543,7 @@
   assertEquals(1, receivedIntents.length);
   assertEquals('b', receivedIntents[0]);
 
-  // Check that inferred intents override provided intents if event.intents\
+  // Check that inferred intents override provided intents if event.intents
   // contains CLEAR_SELECTION.
   handler.inferredIntents_ = ['b'];
   receivedIntents = false;
diff --git a/chrome/browser/resources/management/icons.html b/chrome/browser/resources/management/icons.html
index 441726e4..0ae424f 100644
--- a/chrome/browser/resources/management/icons.html
+++ b/chrome/browser/resources/management/icons.html
@@ -16,6 +16,7 @@
       <g id="public"><path d="M0 0h24v24H0z" fill="none"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"></path></g>
       <g id="vpn-lock"><path d="M22,4V3.5C22,2.1,20.9,1,19.5,1C18.1,1,17,2.1,17,3.5V4c-0.6,0-1,0.4-1,1v4c0,0.6,0.4,1,1,1h5c0.6,0,1-0.4,1-1V5C23,4.4,22.6,4,22,4z M21.2,4h-3.4V3.5c0-0.9,0.8-1.7,1.7-1.7c0.9,0,1.7,0.8,1.7,1.7V4z M18.9,12c0,0.3,0.1,0.7,0.1,1c0,2.1-0.8,4-2.1,5.4c-0.3-0.8-1-1.4-1.9-1.4h-1v-3c0-0.6-0.4-1-1-1H7v-2h2c0.6,0,1-0.4,1-1V8h2c1.1,0,2-0.9,2-2V3.5C13.1,3.2,12,3,11,3C5.5,3,1,7.5,1,13c0,5.5,4.5,10,10,10c5.5,0,10-4.5,10-10c0-0.3,0-0.7-0.1-1H18.9z M10,20.9c-3.9-0.5-7-3.9-7-7.9c0-0.6,0.1-1.2,0.2-1.8L8,16v1c0,1.1,0.9,2,2,2V20.9z"></path></g>
       <g id="usb"><path d="M15 7v4h1v2h-3V5h2l-3-4-3 4h2v8H8v-2.07c.7-.37 1.2-1.08 1.2-1.93 0-1.21-.99-2.2-2.2-2.2-1.21 0-2.2.99-2.2 2.2 0 .85.5 1.56 1.2 1.93V13c0 1.11.89 2 2 2h3v3.05c-.71.37-1.2 1.1-1.2 1.95 0 1.22.99 2.2 2.2 2.2 1.21 0 2.2-.98 2.2-2.2 0-.85-.49-1.58-1.2-1.95V15h3c1.11 0 2-.89 2-2v-2h1V7h-4z"></path></g>
+      <g id="legacy-tech"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"></path></g>
     </defs>
   </svg>
 </iron-iconset-svg>
diff --git a/chrome/browser/resources/management/management_browser_proxy.ts b/chrome/browser/resources/management/management_browser_proxy.ts
index f612b2f..c5142e4c 100644
--- a/chrome/browser/resources/management/management_browser_proxy.ts
+++ b/chrome/browser/resources/management/management_browser_proxy.ts
@@ -22,6 +22,7 @@
   USER = 'user',
   USER_ACTIVITY = 'user-activity',
   EXTENSIONS = 'extensions',
+  LEGACY_TECH = 'legacy-tech',
 }
 
 export interface BrowserReportingResponse {
@@ -78,6 +79,7 @@
   LOGIN_LOGOUT = 'login-logout',
   CRD_SESSIONS = 'crd sessions',
   PERIPHERALS = 'peripherals',
+  LEGACY_TECH = 'legacy-tech',
 }
 
 
diff --git a/chrome/browser/resources/management/management_ui.ts b/chrome/browser/resources/management/management_ui.ts
index 6351b74e..1994917d 100644
--- a/chrome/browser/resources/management/management_ui.ts
+++ b/chrome/browser/resources/management/management_ui.ts
@@ -196,6 +196,7 @@
       [ReportingType.USER]: 3,
       [ReportingType.USER_ACTIVITY]: 4,
       [ReportingType.DEVICE]: 5,
+      [ReportingType.LEGACY_TECH]: 6,
     };
 
     this.browserReportingInfo_ =
@@ -314,6 +315,8 @@
         return 'management:timelapse';
       case DeviceReportingType.PERIPHERALS:
         return 'management:usb';
+      case DeviceReportingType.LEGACY_TECH:
+        return 'management:legacy-tech';
       default:
         return 'cr:computer';
     }
@@ -365,6 +368,8 @@
         return 'management:account-circle';
       case ReportingType.USER_ACTIVITY:
         return 'management:public';
+      case ReportingType.LEGACY_TECH:
+        return 'management:legacy-tech';
       default:
         return 'cr:security';
     }
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
index e301ecad..d9c4e66 100644
--- a/chrome/browser/resources/new_tab_page/app.html
+++ b/chrome/browser/resources/new_tab_page/app.html
@@ -397,6 +397,14 @@
       </ntp-lens-upload-dialog>
     </template>
   </div>
+  <template is="dom-if" if="[[lazyRender_]]" >
+    <cr-toast id="webstoreToast" duration="10000">
+      <div>$i18n{webstoreThemesToastMessage}</div>
+      <cr-button on-click="onWebstoreToastButtonClick_">
+        $i18n{webstoreThemesToastButtonText}
+      </cr-button>
+    </cr-toast>
+  </template>
   <dom-if if="[[lazyRender_]]" on-dom-change="onLazyRendered_">
     <template>
       <template is="dom-if" if="[[shortcutsEnabled_]]">
@@ -491,10 +499,3 @@
     </clipPath>
   </defs>
 </svg>
-
-<cr-toast id="webstoreToast" duration="10000">
-  <div>$i18n{webstoreThemesToastMessage}</div>
-  <cr-button on-click="onWebstoreToastButtonClick_">
-    $i18n{webstoreThemesToastButtonText}
-  </cr-button>
-</cr-toast>
diff --git a/chrome/browser/resources/new_tab_page/app.ts b/chrome/browser/resources/new_tab_page/app.ts
index 526c405..7743bf4f 100644
--- a/chrome/browser/resources/new_tab_page/app.ts
+++ b/chrome/browser/resources/new_tab_page/app.ts
@@ -107,7 +107,6 @@
     customizeDialogIf: DomIf,
     oneGoogleBarClipPath: HTMLElement,
     logo: LogoElement,
-    webstoreToast: CrToastElement,
   };
 }
 
@@ -428,7 +427,7 @@
     this.showWebstoreToastListenerId_ =
         NewTabPageProxy.getInstance()
             .callbackRouter.showWebstoreToast.addListener(() => {
-              this.$.webstoreToast.show();
+              $$<CrToastElement>(this, '#webstoreToast')!.show();
             });
 
     // Open Customize Chrome if there are Customize Chrome URL params.
diff --git a/chrome/browser/resources/print_preview/print_preview.html b/chrome/browser/resources/print_preview/print_preview.html
index 9cab215..43e414a 100644
--- a/chrome/browser/resources/print_preview/print_preview.html
+++ b/chrome/browser/resources/print_preview/print_preview.html
@@ -56,6 +56,9 @@
   <print-preview-app></print-preview-app>
   <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
   <link rel="stylesheet" href="chrome://resources/css/md_colors.css">
+<if expr="is_chromeos">
+  <link rel="stylesheet" href="chrome://theme/typography.css">
+</if>
   <script type="module" src="print_preview.js"></script>
 </body>
 </html>
diff --git a/chrome/browser/resources/print_preview/ui/printer_setup_info_cros.html b/chrome/browser/resources/print_preview/ui/printer_setup_info_cros.html
index 84b777e..28750791 100644
--- a/chrome/browser/resources/print_preview/ui/printer_setup_info_cros.html
+++ b/chrome/browser/resources/print_preview/ui/printer_setup_info_cros.html
@@ -21,21 +21,19 @@
   }
 
   .message-detail {
-    /* TODO(b/290239226): Replace with body-1-font after print-preview is
-                          configured to use dynamic styling. */
-    font: 400 14px/20px 'Google Sans Text Regular', 'Google Sans', 'Roboto',
-          sans-serif;
+    font: var(--cros-body-1-font);
     margin-block: 0;
   }
 
   .message-heading {
-    /* TODO(b/290239226): Replace with display-7-font after print-preview is
-                          configured to use dynamic styling. */
-    font: 500 18px/24px 'Google Sans Medium', 'Google Sans', 'Roboto',
-          sans-serif;
+    font: var(--cros-display-7-font);
     margin-block: 0;
   }
 
+  cr-button {
+    font: var(--cros-button-2-font);
+  }
+
   /* TODO(b/290239226): Remove hard-coded SVG colors after print-preview is
                         configured to use dynamic colors. */
   iron-icon {
diff --git a/chrome/browser/resources/settings_shared/controls/settings_slider.html b/chrome/browser/resources/settings_shared/controls/settings_slider.html
index 12df2daf..67192fb 100644
--- a/chrome/browser/resources/settings_shared/controls/settings_slider.html
+++ b/chrome/browser/resources/settings_shared/controls/settings_slider.html
@@ -64,7 +64,8 @@
       min="[[min]]" on-dragging-changed="onSliderChanged_"
       on-updating-from-key="onSliderChanged_"
       aria-roledescription$="[[getRoleDescription_()]]"
-      aria-label$="[[labelAria]]">
+      aria-label$="[[labelAria]]"
+      aria-disabled="[[ariaDisabled]]">
   </cr-slider>
   <!-- aria-hidden because role description on #slider contains min/max. -->
   <div id="labels" disabled$="[[disableSlider_]]" aria-hidden="true">
diff --git a/chrome/browser/resources/settings_shared/controls/settings_slider.ts b/chrome/browser/resources/settings_shared/controls/settings_slider.ts
index 0d9c1a1..3397b18f 100644
--- a/chrome/browser/resources/settings_shared/controls/settings_slider.ts
+++ b/chrome/browser/resources/settings_shared/controls/settings_slider.ts
@@ -74,6 +74,9 @@
 
       disabled: Boolean,
 
+      // The value of ariaDisabled should only be "true" or "false".
+      ariaDisabled: String,
+
       showMarkers: Boolean,
 
       disableSlider_: {
@@ -111,6 +114,8 @@
   updateValueInstantly: boolean;
   private loaded_: boolean;
 
+  override ariaDisabled: string;
+
   override connectedCallback() {
     super.connectedCallback();
 
diff --git a/chrome/browser/resources/signin/enterprise_profile_welcome/enterprise_profile_welcome_app.html b/chrome/browser/resources/signin/enterprise_profile_welcome/enterprise_profile_welcome_app.html
index 415361b..5a4dc7e 100644
--- a/chrome/browser/resources/signin/enterprise_profile_welcome/enterprise_profile_welcome_app.html
+++ b/chrome/browser/resources/signin/enterprise_profile_welcome/enterprise_profile_welcome_app.html
@@ -40,6 +40,14 @@
     box-sizing: border-box;
     position: absolute;
     width: 100%;
+    # Hotfix for cases where the linkData checkbox may be pushed under the action container
+    # so that it remains clickable.
+    pointer-events: none;
+  }
+
+  .action-container cr-button {
+    # Reverts inherited pointer-events value from .action-container.
+    pointer-events: all;
   }
 
   .action-container.dialog {
diff --git a/chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service.cc b/chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service.cc
index f492ef1..4f27c23d 100644
--- a/chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service.cc
+++ b/chrome/browser/safe_browsing/chrome_enterprise_url_lookup_service.cc
@@ -6,6 +6,7 @@
 
 #include "base/functional/callback.h"
 #include "base/task/sequenced_task_runner.h"
+#include "chrome/browser/enterprise/browser_management/management_service_factory.h"
 #include "chrome/browser/enterprise/connectors/connectors_service.h"
 #include "chrome/browser/enterprise/util/affiliation.h"
 #include "chrome/browser/policy/dm_token_utils.h"
@@ -13,6 +14,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "components/policy/core/common/cloud/dm_token.h"
+#include "components/policy/core/common/management/management_service.h"
 #include "components/prefs/pref_service.h"
 #include "components/safe_browsing/core/browser/realtime/policy_engine.h"
 #include "components/safe_browsing/core/browser/realtime/url_lookup_service_base.h"
@@ -64,7 +66,9 @@
 
   // Don't allow using the access token if the managed profile doesn't match the
   // managed device.
-  if (policy::IsDeviceCloudManaged() &&
+  if (policy::ManagementServiceFactory::GetForProfile(profile_)
+          ->HasManagementAuthority(
+              policy::EnterpriseManagementAuthority::CLOUD_DOMAIN) &&
       !chrome::enterprise_util::IsProfileAffiliated(profile_)) {
     return false;
   }
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/cloud_binary_upload_service.cc b/chrome/browser/safe_browsing/cloud_content_scanning/cloud_binary_upload_service.cc
index 291d3de..4b80bf2e 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/cloud_binary_upload_service.cc
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/cloud_binary_upload_service.cc
@@ -8,12 +8,14 @@
 #include "base/command_line.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/ranges/algorithm.h"
+#include "chrome/browser/enterprise/browser_management/management_service_factory.h"
 #include "chrome/browser/enterprise/util/affiliation.h"
 #include "chrome/browser/policy/management_utils.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/safe_browsing/advanced_protection_status_manager.h"
 #include "chrome/browser/safe_browsing/advanced_protection_status_manager_factory.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
+#include "components/policy/core/common/management/management_service.h"
 #include "components/safe_browsing/content/browser/web_ui/safe_browsing_ui.h"
 #include "components/safe_browsing/core/common/features.h"
 #include "content/public/browser/browser_task_traits.h"
@@ -166,8 +168,11 @@
 
   // Allow the access token to be used on unmanaged devices, but not on
   // managed devices that aren't affiliated.
-  if (!policy::IsDeviceCloudManaged())
+  if (!policy::ManagementServiceFactory::GetForProfile(profile)
+           ->HasManagementAuthority(
+               policy::EnterpriseManagementAuthority::CLOUD_DOMAIN)) {
     return true;
+  }
 
   return chrome::enterprise_util::IsProfileAffiliated(profile);
 }
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_browsertest.cc b/chrome/browser/search_engine_choice/search_engine_choice_browsertest.cc
index b276dfea..371b0efd 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_browsertest.cc
+++ b/chrome/browser/search_engine_choice/search_engine_choice_browsertest.cc
@@ -94,6 +94,9 @@
 
   void SetUpInProcessBrowserTestFixture() override {
     InProcessBrowserTest::SetUpInProcessBrowserTestFixture();
+    SearchEngineChoiceService::SetDialogDisabledForTests(
+        /*dialog_disabled=*/false);
+
     create_services_subscription_ =
         BrowserContextDependencyManager::GetInstance()
             ->RegisterCreateServicesCallbackForTesting(
@@ -105,14 +108,9 @@
                 }));
   }
 
-  // TODO(crbug.com/1468496): Make this function handle multiple browsers with
-  // multiple profiles.
-  void QuitAndRestoreBrowsersWithSameProfile(Profile* profile) {
-    // Simulate an exit by shutting down the session service. If we don't do
-    // this the first window close is treated as though the user closed the
-    // window and won't be restored.
-    SessionServiceFactory::ShutdownForProfile(profile);
-
+  // TODO(crbug.com/1468496): Make this function handle multiple browsers.
+  void QuitAndRestoreBrowser(Browser* browser) {
+    Profile* profile = browser->profile();
     // Enable SessionRestore to last used pages.
     SessionStartupPref startup_pref(SessionStartupPref::LAST);
     SessionStartupPref::SetStartupPref(profile, startup_pref);
@@ -122,10 +120,7 @@
         KeepAliveOrigin::SESSION_RESTORE, KeepAliveRestartOption::DISABLED);
     auto profile_keep_alive = std::make_unique<ScopedProfileKeepAlive>(
         profile, ProfileKeepAliveOrigin::kBrowserWindow);
-
-    for (Browser* browser : *BrowserList::GetInstance()) {
-      CloseBrowserSynchronously(browser);
-    }
+    CloseBrowserSynchronously(browser);
 
     ui_test_utils::AllBrowserTabAddedWaiter tab_waiter;
     SessionRestoreTestHelper restore_observer;
@@ -133,8 +128,9 @@
     // Create a new window, which should trigger session restore.
     chrome::NewEmptyWindow(profile);
     tab_waiter.Wait();
-    for (Browser* browser : *BrowserList::GetInstance()) {
-      WaitForTabsToLoad(browser);
+
+    for (Browser* new_browser : *BrowserList::GetInstance()) {
+      WaitForTabsToLoad(new_browser);
     }
 
     restore_observer.Wait();
@@ -153,6 +149,9 @@
   }
 
  private:
+  base::AutoReset<bool> scoped_chrome_build_override_ =
+      SearchEngineChoiceServiceFactory::ScopedChromeBuildOverrideForTesting(
+          /*force_chrome_build=*/true);
   base::test::ScopedFeatureList feature_list_{switches::kSearchEngineChoice};
   base::CallbackListSubscription create_services_subscription_;
 };
@@ -174,7 +173,7 @@
 
   // Make sure that the dialog gets opened only once.
   EXPECT_CALL(*service, NotifyDialogOpened(_, _)).Times(1);
-  QuitAndRestoreBrowsersWithSameProfile(browser()->profile());
+  QuitAndRestoreBrowser(browser());
   ASSERT_TRUE(browser());
   EXPECT_EQ(browser()->tab_strip_model()->count(), 3);
 }
@@ -185,7 +184,7 @@
   Profile* profile = browser()->profile();
 
   // Open another browser with the same profile.
-  CreateBrowser(profile);
+  Browser* new_browser = CreateBrowser(profile);
   EXPECT_EQ(BrowserList::GetInstance()->size(), 2u);
   auto* service = static_cast<MockSearchEngineChoiceService*>(
       SearchEngineChoiceServiceFactory::GetForProfile(profile));
@@ -193,7 +192,13 @@
   // Make sure that we have 2 dialogs open, one for each browser.
   EXPECT_CALL(*service, NotifyDialogOpened(_, _)).Times(2);
 
-  QuitAndRestoreBrowsersWithSameProfile(profile);
+  // Simulate an exit by shutting down the session service. If we don't do this
+  // the first window close is treated as though the user closed the window
+  // and won't be restored.
+  SessionServiceFactory::ShutdownForProfile(profile);
+
+  CloseBrowserSynchronously(new_browser);
+  QuitAndRestoreBrowser(browser());
   EXPECT_EQ(BrowserList::GetInstance()->size(), 2u);
 }
 
@@ -209,7 +214,7 @@
 
   // Make sure that the dialog doesn't open if the tab is the settings page.
   EXPECT_CALL(*service, NotifyDialogOpened(_, _)).Times(0);
-  QuitAndRestoreBrowsersWithSameProfile(browser()->profile());
+  QuitAndRestoreBrowser(browser());
   ASSERT_TRUE(browser());
   EXPECT_EQ(browser()->tab_strip_model()->count(), 1);
   EXPECT_EQ(GURL("chrome://settings"),
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_service.cc b/chrome/browser/search_engine_choice/search_engine_choice_service.cc
index d8795c41..1f60e36 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_service.cc
+++ b/chrome/browser/search_engine_choice/search_engine_choice_service.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/search_engine_choice/search_engine_choice_service.h"
 
+#include "base/check_is_test.h"
 #include "base/containers/contains.h"
 #include "base/feature_list.h"
 #include "chrome/browser/profiles/profile.h"
@@ -13,6 +14,10 @@
 #include "components/search_engines/search_engines_pref_names.h"
 #include "components/signin/public/base/signin_switches.h"
 
+namespace {
+bool g_dialog_disabled_for_testing = false;
+}
+
 SearchEngineChoiceService::BrowserObserver::BrowserObserver(
     SearchEngineChoiceService& service)
     : search_engine_choice_service_(service) {
@@ -55,6 +60,13 @@
   browsers_with_open_dialogs_.erase(browser);
 }
 
+// static
+void SearchEngineChoiceService::SetDialogDisabledForTests(
+    bool dialog_disabled) {
+  CHECK_IS_TEST();
+  g_dialog_disabled_for_testing = dialog_disabled;
+}
+
 bool SearchEngineChoiceService::IsShowingDialog(Browser* browser) {
   return base::Contains(browsers_with_open_dialogs_, browser);
 }
@@ -75,5 +87,6 @@
   auto* search_engine_choice_service =
       SearchEngineChoiceServiceFactory::GetForProfile(browser.profile());
   return search_engine_choice_service &&
-         !search_engine_choice_service->IsShowingDialog(&browser);
+         !search_engine_choice_service->IsShowingDialog(&browser) &&
+         !g_dialog_disabled_for_testing;
 }
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_service.h b/chrome/browser/search_engine_choice/search_engine_choice_service.h
index 770f27ab..8de2faa 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_service.h
+++ b/chrome/browser/search_engine_choice/search_engine_choice_service.h
@@ -45,6 +45,13 @@
   // Returns whether the Search Engine Choice dialog should be displayed or not.
   static bool ShouldDisplayDialog(Browser& browser);
 
+  // Disables the display of the Search Engine Choice dialog for testing. When
+  // `dialog_disabled` is true, `ShouldDisplayDialog` will return false.
+  // NOTE: This is set to true in InProcessBrowserTest::SetUp, disabling the
+  // dialog for those tests. If you set this outside of that context, you should
+  // ensure it is reset at the end of your test.
+  static void SetDialogDisabledForTests(bool dialog_disabled);
+
  private:
   // Observes the BrowserList to make sure that closed browsers are correctly
   // removed from our set of browser pointers. This ensures that we don't get
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_service_factory.cc b/chrome/browser/search_engine_choice/search_engine_choice_service_factory.cc
index 7e232d0..5aa96032 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_service_factory.cc
+++ b/chrome/browser/search_engine_choice/search_engine_choice_service_factory.cc
@@ -5,6 +5,8 @@
 #include "chrome/browser/search_engine_choice/search_engine_choice_service_factory.h"
 
 #include "base/check_deref.h"
+#include "base/check_is_test.h"
+#include "build/branding_buildflags.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/search_engine_choice/search_engine_choice_service.h"
@@ -16,6 +18,16 @@
 #include "chromeos/components/kiosk/kiosk_utils.h"
 #endif
 
+namespace {
+// Stores whether this is a Google Chrome-branded build.
+bool g_is_chrome_build =
+#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+    true;
+#else
+    false;
+#endif
+}  // namespace
+
 SearchEngineChoiceServiceFactory::SearchEngineChoiceServiceFactory()
     : ProfileKeyedServiceFactory(
           "SearchEngineChoiceServiceFactory",
@@ -39,6 +51,14 @@
       GetInstance()->GetServiceForBrowserContext(profile, true));
 }
 
+// static
+base::AutoReset<bool>
+SearchEngineChoiceServiceFactory::ScopedChromeBuildOverrideForTesting(
+    bool force_chrome_build) {
+  CHECK_IS_TEST();
+  return base::AutoReset<bool>(&g_is_chrome_build, force_chrome_build);
+}
+
 bool SearchEngineChoiceServiceFactory::IsProfileEligibleForChoiceScreen(
     const policy::PolicyService& policy_service,
     Profile& profile) const {
@@ -48,7 +68,7 @@
 
   bool is_regular_profile = profile.IsRegularProfile();
 #if BUILDFLAG(IS_CHROMEOS)
-  is_regular_profile &= !profiles::IsPublicSession() &&
+  is_regular_profile &= !profiles::IsManagedGuestSession() &&
                         !chromeos::IsKioskSession() &&
                         !profiles::IsChromeAppKioskSession();
 #endif
@@ -64,6 +84,9 @@
 
 KeyedService* SearchEngineChoiceServiceFactory::BuildServiceInstanceFor(
     content::BrowserContext* context) const {
+  if (!g_is_chrome_build) {
+    return nullptr;
+  }
   auto& profile = CHECK_DEREF(Profile::FromBrowserContext(context));
 
   if (!IsProfileEligibleForChoiceScreen(
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_service_factory.h b/chrome/browser/search_engine_choice/search_engine_choice_service_factory.h
index 7a9fc60..dde953ad 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_service_factory.h
+++ b/chrome/browser/search_engine_choice/search_engine_choice_service_factory.h
@@ -5,6 +5,7 @@
 #ifndef CHROME_BROWSER_SEARCH_ENGINE_CHOICE_SEARCH_ENGINE_CHOICE_SERVICE_FACTORY_H_
 #define CHROME_BROWSER_SEARCH_ENGINE_CHOICE_SEARCH_ENGINE_CHOICE_SERVICE_FACTORY_H_
 
+#include "base/auto_reset.h"
 #include "base/no_destructor.h"
 #include "chrome/browser/profiles/profile_keyed_service_factory.h"
 
@@ -26,6 +27,11 @@
 
   static SearchEngineChoiceServiceFactory* GetInstance();
 
+  // Overrides the check for branded build. This allows bots that run on
+  // non-branded builds to test the code.
+  static base::AutoReset<bool> ScopedChromeBuildOverrideForTesting(
+      bool force_chrome_build);
+
  private:
   friend class base::NoDestructor<SearchEngineChoiceServiceFactory>;
 
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.cc b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.cc
index 1a08d61..1e44f7e 100644
--- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.cc
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.cc
@@ -13,6 +13,7 @@
       return false;
     case Result::kServerPersistentError:
     case Result::kServerUnexepectedResponse:
+    case Result::kChallengeRequiredUnexpectedFormat:
     case Result::kSignChallengeFailed:
       return true;
   }
@@ -34,6 +35,9 @@
                    "error.";
     case BoundSessionRefreshCookieFetcher::Result::kServerUnexepectedResponse:
       return os << "Cookie rotation request didn't set the expected cookies.";
+    case BoundSessionRefreshCookieFetcher::Result::
+        kChallengeRequiredUnexpectedFormat:
+      return os << "Challenge required unexpected format.";
     case BoundSessionRefreshCookieFetcher::Result::kSignChallengeFailed:
       return os << "Sign challenge failed on cookie rotation request.";
   }
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h
index a60553e..70af820 100644
--- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h
@@ -20,7 +20,8 @@
     kServerTransientError = 2,
     kServerPersistentError = 3,
     kServerUnexepectedResponse = 4,
-    kSignChallengeFailed = 5,
+    kChallengeRequiredUnexpectedFormat = 5,
+    kSignChallengeFailed = 6,
   };
 
   static bool IsPersistentError(Result result);
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc
index 5e0c235..415eab8b 100644
--- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc
@@ -6,8 +6,11 @@
 
 #include <memory>
 
+#include "base/base64url.h"
 #include "base/functional/bind.h"
 #include "base/location.h"
+#include "base/strings/string_split.h"
+#include "base/strings/string_util.h"
 #include "base/time/time.h"
 #include "chrome/browser/signin/bound_session_credentials/session_binding_helper.h"
 #include "components/signin/public/base/wait_for_network_callback_helper.h"
@@ -27,6 +30,7 @@
 constexpr char kRotationChallengeHeader[] = "Sec-Session-Google-Challenge";
 constexpr char kRotationChallengeResponseHeader[] =
     "Sec-Session-Google-Response";
+constexpr char kChallengeItemKey[] = "challenge";
 
 bool IsExpectedCookie(
     const GURL& url,
@@ -150,24 +154,18 @@
     scoped_refptr<net::HttpResponseHeaders> headers) {
   net::Error net_error = static_cast<net::Error>(url_loader_->NetError());
 
-  if (!has_assertion_been_already_requested_) {
-    std::string challenge = GetChallengeIfBindingKeyAssertionRequired(headers);
-    if (!challenge.empty()) {
-      has_assertion_been_already_requested_ = true;
-      RefreshWithChallenge(challenge);
-      return;
-    }
-    // Note: If `has_assertion_been_already_requested_`, the result will only
-    // consider the HTTP response code (401).
-    // TODO(b/293838716): Handle expired challenges. We currently can't
-    // distinguish expired challenges.
+  absl::optional<std::string> challenge_header_value =
+      GetChallengeIfBindingKeyAssertionRequired(headers);
+  if (challenge_header_value) {
+    HandleBindingKeyAssertionRequired(*challenge_header_value);
+    return;
   }
 
+  cookie_refresh_completed_ = true;
   result_ = GetResultFromNetErrorAndHttpStatusCode(
       net_error,
       headers ? absl::optional<int>(headers->response_code()) : absl::nullopt);
 
-  cookie_refresh_completed_ = true;
   if (result_ == Result::kSuccess && !reported_cookies_notified_) {
     // Normally, a cookie update notification should be sent before the request
     // is complete. Add some leeway in the case mojo messages are delivered out
@@ -224,11 +222,12 @@
   std::move(callback_).Run(result_);
 }
 
-std::string
+absl::optional<std::string>
 BoundSessionRefreshCookieFetcherImpl::GetChallengeIfBindingKeyAssertionRequired(
-    const scoped_refptr<net::HttpResponseHeaders>& headers) {
-  if (!headers || headers->response_code() != net::HTTP_UNAUTHORIZED) {
-    return std::string();
+    const scoped_refptr<net::HttpResponseHeaders>& headers) const {
+  if (!headers || headers->response_code() != net::HTTP_UNAUTHORIZED ||
+      !headers->HasHeader(kRotationChallengeHeader)) {
+    return absl::nullopt;
   }
 
   std::string challenge;
@@ -236,6 +235,55 @@
   return challenge;
 }
 
+void BoundSessionRefreshCookieFetcherImpl::HandleBindingKeyAssertionRequired(
+    const std::string& challenge_header_value) {
+  if (has_assertion_been_already_requested_) {
+    // TODO(b/293838716): Handle expired challenges. We currently can't
+    // distinguish expired challenges.
+    ReportChallengeRequiredUnexpectedFormat();
+    return;
+  }
+
+  // Binding key assertion required.
+  has_assertion_been_already_requested_ = true;
+  std::string challenge = ParseChallengeHeader(challenge_header_value);
+  if (challenge.empty()) {
+    ReportChallengeRequiredUnexpectedFormat();
+    return;
+  }
+  RefreshWithChallenge(challenge);
+}
+
+// static
+std::string BoundSessionRefreshCookieFetcherImpl::ParseChallengeHeader(
+    const std::string& header) {
+  base::StringPairs items;
+  base::SplitStringIntoKeyValuePairs(header, '=', ';', &items);
+  std::string encoded_challenge;
+  for (const auto& [key, value] : items) {
+    // TODO(b/293838716): Check `session_id` matches the current session's id.
+    if (base::EqualsCaseInsensitiveASCII(key, kChallengeItemKey)) {
+      encoded_challenge = value;
+    }
+  }
+
+  std::string challenge;
+  if (!encoded_challenge.empty() &&
+      base::Base64UrlDecode(encoded_challenge,
+                            base::Base64UrlDecodePolicy::DISALLOW_PADDING,
+                            &challenge)) {
+    return challenge;
+  }
+  return std::string();
+}
+
+void BoundSessionRefreshCookieFetcherImpl::
+    ReportChallengeRequiredUnexpectedFormat() {
+  cookie_refresh_completed_ = true;
+  result_ = Result::kChallengeRequiredUnexpectedFormat;
+  ReportRefreshResult();
+}
+
 void BoundSessionRefreshCookieFetcherImpl::RefreshWithChallenge(
     const std::string& challenge) {
   session_binding_helper_->GenerateBindingKeyAssertion(
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h
index c0479a3..665e437e 100644
--- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h
@@ -48,6 +48,13 @@
                            OnCookiesAccessedRead);
   FRIEND_TEST_ALL_PREFIXES(BoundSessionRefreshCookieFetcherImplTest,
                            OnCookiesAccessedChange);
+  FRIEND_TEST_ALL_PREFIXES(
+      BoundSessionRefreshCookieFetcherImplParsechallengeHeaderTest,
+      ParseChallengeHeader);
+
+  // Returns empty if parsing challenge header failed. Otherwise, returns the
+  // decoded challenge field value.
+  static std::string ParseChallengeHeader(const std::string& header);
 
   void StartRefreshRequest(
       absl::optional<std::string> sec_session_challenge_response);
@@ -57,9 +64,12 @@
       absl::optional<int> response_code);
   void ReportRefreshResult();
 
-  // Returns an empty string if assertion isn't required.
-  std::string GetChallengeIfBindingKeyAssertionRequired(
-      const scoped_refptr<net::HttpResponseHeaders>& headers);
+  // Returns `absl::nullopt` if assertion isn't required.
+  absl::optional<std::string> GetChallengeIfBindingKeyAssertionRequired(
+      const scoped_refptr<net::HttpResponseHeaders>& headers) const;
+  void HandleBindingKeyAssertionRequired(
+      const std::string& challenge_header_value);
+  void ReportChallengeRequiredUnexpectedFormat();
   void RefreshWithChallenge(const std::string& challenge);
   void OnGenerateBindingKeyAssertion(std::string assertion);
 
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc
index deeefbc..f6d5deb0 100644
--- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc
@@ -8,10 +8,13 @@
 #include <string>
 
 #include "base/base64url.h"
+#include "base/containers/span.h"
 #include "base/json/json_reader.h"
+#include "base/strings/stringprintf.h"
 #include "base/test/task_environment.h"
 #include "base/test/test_future.h"
 #include "base/time/time.h"
+#include "base/values.h"
 #include "chrome/browser/signin/bound_session_credentials/bound_session_test_cookie_manager.h"
 #include "chrome/browser/signin/bound_session_credentials/session_binding_helper.h"
 #include "components/signin/public/base/session_binding_test_utils.h"
@@ -31,6 +34,7 @@
 #include "services/network/test/test_url_loader_factory.h"
 #include "services/network/test/test_utils.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace {
 using RefreshTestFuture =
@@ -40,6 +44,9 @@
 using unexportable_keys::UnexportableKeyId;
 using unexportable_keys::UnexportableKeyService;
 
+constexpr char kSessionId[] = "session_id";
+constexpr char kChallenge[] = "dummy-challenge";
+
 UnexportableKeyId GenerateNewKey(
     UnexportableKeyService& unexportable_key_service) {
   base::test::TestFuture<ServiceErrorOr<UnexportableKeyId>> generate_future;
@@ -73,6 +80,19 @@
   std::string* challenge = payload_dict->FindString("jti");
   return challenge ? *challenge : std::string();
 }
+
+std::string CreateChallengeHeaderValue(const std::string& encoded_challenge) {
+  return base::StringPrintf("session-id=%s; challenge=%s", kSessionId,
+                            encoded_challenge.c_str());
+}
+
+// Use `kChallenge` as challenge for the header.
+std::string CreateValidChallengeHeaderValue() {
+  std::string encoded_challenge;
+  base::Base64UrlEncode(kChallenge, base::Base64UrlEncodePolicy::OMIT_PADDING,
+                        &encoded_challenge);
+  return CreateChallengeHeaderValue(encoded_challenge);
+}
 }  // namespace
 
 class BoundSessionRefreshCookieFetcherImplTest : public ::testing::Test {
@@ -94,7 +114,6 @@
   const GURL kGairaUrl = GURL("https://google.com/");
   const std::string k1PSIDTSCookieName = "__Secure-1PSIDTS";
   const std::string k3PSIDTSCookieName = "__Secure-3PSIDTS";
-  const std::string kSessionId = "session_id";
 
   void UpdateCookieList(
       const base::flat_set<std::string>& excluded_cookies = {}) {
@@ -125,14 +144,15 @@
     return reported_cookies;
   }
 
-  void SimulateChallengeRequired() {
+  void SimulateChallengeRequired(const std::string& challenge_header) {
     EXPECT_EQ(test_url_loader_factory_.NumPending(), 1);
     network::TestURLLoaderFactory::PendingRequest* pending_request =
         test_url_loader_factory_.GetPendingRequest(0);
     network::URLLoaderCompletionStatus ok_completion_status(net::OK);
     auto response = network::CreateURLResponseHead(net::HTTP_UNAUTHORIZED);
+
     response->headers->AddHeader("Sec-Session-Google-Challenge",
-                                 "DummyChallenge");
+                                 challenge_header);
     EXPECT_TRUE(test_url_loader_factory_.SimulateResponseForPendingRequest(
         pending_request->request.url, ok_completion_status, std::move(response),
         ""));
@@ -356,7 +376,7 @@
   RefreshTestFuture future;
   fetcher_->Start(future.GetCallback());
 
-  SimulateChallengeRequired();
+  SimulateChallengeRequired(CreateValidChallengeHeaderValue());
   task_environment_.RunUntilIdle();
   EXPECT_FALSE(future.IsReady());
   EXPECT_EQ(test_url_loader_factory_.NumPending(), 1);
@@ -369,7 +389,7 @@
   EXPECT_TRUE(signin::VerifyJwtSignature(
       assertion, *unexportable_key_service_.GetAlgorithm(binding_key_id_),
       *unexportable_key_service_.GetSubjectPublicKeyInfo(binding_key_id_)));
-  EXPECT_EQ(GetChallengeFromJwt(assertion), "DummyChallenge");
+  EXPECT_EQ(GetChallengeFromJwt(assertion), kChallenge);
 
   // Set required cookies and complete the request.
   SimulateOnCookiesAccessed(network::mojom::CookieAccessDetails::Type::kChange);
@@ -380,6 +400,48 @@
   EXPECT_EQ(future.Get(), BoundSessionRefreshCookieFetcher::Result::kSuccess);
 }
 
+TEST_F(BoundSessionRefreshCookieFetcherImplTest,
+       ChallengeRequiredDecodingFailed) {
+  ASSERT_FALSE(wait_for_network_callback_helper_.AreNetworkCallsDelayed());
+  RefreshTestFuture future;
+  fetcher_->Start(future.GetCallback());
+
+  // Encoded challenge with characters not in the base64 alphabet.
+  SimulateChallengeRequired(CreateChallengeHeaderValue("aGVsbG8/d29ybGQ"));
+  EXPECT_EQ(future.Get(), BoundSessionRefreshCookieFetcher::Result::
+                              kChallengeRequiredUnexpectedFormat);
+}
+
+TEST_F(BoundSessionRefreshCookieFetcherImplTest,
+       BadChallengeHeaderFormatEmpty) {
+  ASSERT_FALSE(wait_for_network_callback_helper_.AreNetworkCallsDelayed());
+  RefreshTestFuture future;
+  fetcher_->Start(future.GetCallback());
+  SimulateChallengeRequired("");
+  EXPECT_EQ(future.Get(), BoundSessionRefreshCookieFetcher::Result::
+                              kChallengeRequiredUnexpectedFormat);
+}
+
+TEST_F(BoundSessionRefreshCookieFetcherImplTest,
+       BadChallengeHeaderFormatChallengeMissing) {
+  ASSERT_FALSE(wait_for_network_callback_helper_.AreNetworkCallsDelayed());
+  RefreshTestFuture future;
+  fetcher_->Start(future.GetCallback());
+  SimulateChallengeRequired("session_id=12345;");
+  EXPECT_EQ(future.Get(), BoundSessionRefreshCookieFetcher::Result::
+                              kChallengeRequiredUnexpectedFormat);
+}
+
+TEST_F(BoundSessionRefreshCookieFetcherImplTest,
+       BadChallengeHeaderFormatChallengeFieldEmpty) {
+  ASSERT_FALSE(wait_for_network_callback_helper_.AreNetworkCallsDelayed());
+  RefreshTestFuture future;
+  fetcher_->Start(future.GetCallback());
+  SimulateChallengeRequired(CreateChallengeHeaderValue(""));
+  EXPECT_EQ(future.Get(), BoundSessionRefreshCookieFetcher::Result::
+                              kChallengeRequiredUnexpectedFormat);
+}
+
 TEST_F(BoundSessionRefreshCookieFetcherImplTest, AssertionAlreadyRequested) {
   ASSERT_FALSE(wait_for_network_callback_helper_.AreNetworkCallsDelayed());
   RefreshTestFuture future;
@@ -387,13 +449,13 @@
 
   size_t assertion_requests = 0;
   while (assertion_requests < 2) {
-    SimulateChallengeRequired();
+    SimulateChallengeRequired(CreateValidChallengeHeaderValue());
     task_environment_.RunUntilIdle();
     assertion_requests++;
     EXPECT_EQ(future.IsReady(), assertion_requests > 1);
   }
-  EXPECT_EQ(future.Get(),
-            BoundSessionRefreshCookieFetcher::Result::kServerPersistentError);
+  EXPECT_EQ(future.Get(), BoundSessionRefreshCookieFetcher::Result::
+                              kChallengeRequiredUnexpectedFormat);
 }
 
 TEST_F(BoundSessionRefreshCookieFetcherImplTest, SignChallengeFailed) {
@@ -410,7 +472,7 @@
   RefreshTestFuture future;
   fetcher_->Start(future.GetCallback());
 
-  SimulateChallengeRequired();
+  SimulateChallengeRequired(CreateValidChallengeHeaderValue());
   EXPECT_EQ(future.Get(),
             BoundSessionRefreshCookieFetcher::Result::kSignChallengeFailed);
 }
@@ -476,3 +538,22 @@
   EXPECT_TRUE(reported_cookies_notified());
   EXPECT_TRUE(expected_cookies_set());
 }
+
+TEST(BoundSessionRefreshCookieFetcherImplParsechallengeHeaderTest,
+     ParseChallengeHeader) {
+  // Empty header.
+  EXPECT_EQ(BoundSessionRefreshCookieFetcherImpl::ParseChallengeHeader(""), "");
+  EXPECT_EQ(BoundSessionRefreshCookieFetcherImpl::ParseChallengeHeader("xyz"),
+            "");
+  // Decoding failed.
+  EXPECT_EQ(BoundSessionRefreshCookieFetcherImpl::ParseChallengeHeader(
+                CreateChallengeHeaderValue("aGVsbG8/d29ybGQ")),
+            "");
+  // Empty challenge field.
+  EXPECT_EQ(BoundSessionRefreshCookieFetcherImpl::ParseChallengeHeader(
+                CreateChallengeHeaderValue("")),
+            "");
+  EXPECT_EQ(BoundSessionRefreshCookieFetcherImpl::ParseChallengeHeader(
+                CreateValidChallengeHeaderValue()),
+            kChallenge);
+}
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_impl_unittest.cc b/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_impl_unittest.cc
index 9a979f5..5ee9831 100644
--- a/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_impl_unittest.cc
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_impl_unittest.cc
@@ -41,6 +41,7 @@
         ]
     }
 )";
+constexpr char kChallenge[] = "test_challenge";
 
 std::vector<crypto::SignatureVerifier::SignatureAlgorithm> CreateAlgArray() {
   return {crypto::SignatureVerifier::SignatureAlgorithm::ECDSA_SHA256,
@@ -110,7 +111,7 @@
 
   BoundSessionRegistrationFetcherParam params =
       BoundSessionRegistrationFetcherParam::CreateInstanceForTesting(
-          GURL("http://accounts.google.com"), CreateAlgArray());
+          GURL("http://accounts.google.com"), CreateAlgArray(), kChallenge);
   std::unique_ptr<BoundSessionRegistrationFetcher> fetcher =
       std::make_unique<BoundSessionRegistrationFetcherImpl>(
           std::move(params), url_loader_factory.GetSafeWeakWrapper(), nullptr);
@@ -138,7 +139,8 @@
 
   BoundSessionRegistrationFetcherParam params =
       BoundSessionRegistrationFetcherParam::CreateInstanceForTesting(
-          GURL("https://www.google.com/startsession"), CreateAlgArray());
+          GURL("https://www.google.com/startsession"), CreateAlgArray(),
+          kChallenge);
   std::unique_ptr<BoundSessionRegistrationFetcher> fetcher =
       std::make_unique<BoundSessionRegistrationFetcherImpl>(
           std::move(params), url_loader_factory.GetSafeWeakWrapper(),
@@ -182,7 +184,8 @@
 
   BoundSessionRegistrationFetcherParam params =
       BoundSessionRegistrationFetcherParam::CreateInstanceForTesting(
-          GURL("https://www.google.com/startsession"), CreateAlgArray());
+          GURL("https://www.google.com/startsession"), CreateAlgArray(),
+          kChallenge);
   std::unique_ptr<BoundSessionRegistrationFetcher> fetcher =
       std::make_unique<BoundSessionRegistrationFetcherImpl>(
           std::move(params), url_loader_factory.GetSafeWeakWrapper(),
@@ -213,7 +216,8 @@
 
   BoundSessionRegistrationFetcherParam params =
       BoundSessionRegistrationFetcherParam::CreateInstanceForTesting(
-          GURL("https://www.google.com/startsession"), CreateAlgArray());
+          GURL("https://www.google.com/startsession"), CreateAlgArray(),
+          kChallenge);
   std::unique_ptr<BoundSessionRegistrationFetcher> fetcher =
       std::make_unique<BoundSessionRegistrationFetcherImpl>(
           std::move(params), url_loader_factory.GetSafeWeakWrapper(),
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.cc b/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.cc
index ab7e56f1..6c1437b4 100644
--- a/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.cc
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.h"
 
+#include "base/base64url.h"
 #include "base/strings/escape.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
@@ -13,6 +14,7 @@
 constexpr char kAlgoItemKey[] = "supported-alg";
 constexpr char kRegistrationHeaderName[] = "Sec-Session-Google-Registration";
 constexpr char kRegistrationItemKey[] = "registration";
+constexpr char kChallengeItemKey[] = "challenge";
 
 absl::optional<crypto::SignatureVerifier::SignatureAlgorithm> AlgoFromString(
     const std::string algo) {
@@ -40,9 +42,11 @@
 
 BoundSessionRegistrationFetcherParam::BoundSessionRegistrationFetcherParam(
     GURL registration_endpoint,
-    std::vector<crypto::SignatureVerifier::SignatureAlgorithm> supported_algos)
+    std::vector<crypto::SignatureVerifier::SignatureAlgorithm> supported_algos,
+    std::string challenge)
     : registration_endpoint_(std::move(registration_endpoint)),
-      supported_algos_(std::move(supported_algos)) {}
+      supported_algos_(std::move(supported_algos)),
+      challenge_(std::move(challenge)) {}
 
 absl::optional<BoundSessionRegistrationFetcherParam>
 BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
@@ -59,6 +63,7 @@
 
   GURL registration_endpoint;
   std::vector<crypto::SignatureVerifier::SignatureAlgorithm> supported_algos;
+  std::string challenge;
   base::StringPairs items;
   base::SplitStringIntoKeyValuePairs(header_value, '=', ';', &items);
   for (const auto& [key, value] : items) {
@@ -87,11 +92,21 @@
         }
       }
     }
+
+    if (base::EqualsCaseInsensitiveASCII(key, kChallengeItemKey)) {
+      if (!base::Base64UrlDecode(value,
+                                 base::Base64UrlDecodePolicy::DISALLOW_PADDING,
+                                 &challenge)) {
+        return absl::nullopt;
+      }
+    }
   }
 
-  if (registration_endpoint.is_valid() && !supported_algos.empty()) {
+  if (registration_endpoint.is_valid() && !supported_algos.empty() &&
+      !challenge.empty()) {
     return BoundSessionRegistrationFetcherParam(
-        std::move(registration_endpoint), std::move(supported_algos));
+        std::move(registration_endpoint), std::move(supported_algos),
+        std::move(challenge));
   } else {
     return absl::nullopt;
   }
@@ -100,10 +115,11 @@
 BoundSessionRegistrationFetcherParam
 BoundSessionRegistrationFetcherParam::CreateInstanceForTesting(
     GURL registration_endpoint,
-    std::vector<crypto::SignatureVerifier::SignatureAlgorithm>
-        supported_algos) {
+    std::vector<crypto::SignatureVerifier::SignatureAlgorithm> supported_algos,
+    std::string challenge) {
   return BoundSessionRegistrationFetcherParam(std::move(registration_endpoint),
-                                              std::move(supported_algos));
+                                              std::move(supported_algos),
+                                              std::move(challenge));
 }
 
 const GURL& BoundSessionRegistrationFetcherParam::RegistrationEndpoint() const {
@@ -114,3 +130,7 @@
 BoundSessionRegistrationFetcherParam::SupportedAlgos() const {
   return supported_algos_;
 }
+
+const std::string& BoundSessionRegistrationFetcherParam::Challenge() const {
+  return challenge_;
+}
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.h b/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.h
index 502597df..3c854fe 100644
--- a/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.h
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.h
@@ -35,20 +35,24 @@
   static BoundSessionRegistrationFetcherParam CreateInstanceForTesting(
       GURL registration_endpoint,
       std::vector<crypto::SignatureVerifier::SignatureAlgorithm>
-          supported_algos);
+          supported_algos,
+      std::string challenge);
 
   const GURL& RegistrationEndpoint() const;
   base::span<const crypto::SignatureVerifier::SignatureAlgorithm>
   SupportedAlgos() const;
+  const std::string& Challenge() const;
 
  private:
   BoundSessionRegistrationFetcherParam(
       GURL registration_endpoint,
       std::vector<crypto::SignatureVerifier::SignatureAlgorithm>
-          supported_algos);
+          supported_algos,
+      std::string challenge);
 
   GURL registration_endpoint_;
   std::vector<crypto::SignatureVerifier::SignatureAlgorithm> supported_algos_;
+  std::string challenge_;
 };
 
 #endif  // CHROME_BROWSER_SIGNIN_BOUND_SESSION_CREDENTIALS_BOUND_SESSION_REGISTRATION_FETCHER_PARAM_H_
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param_unittest.cc b/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param_unittest.cc
index f48b3aaa7..6d75609 100644
--- a/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param_unittest.cc
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param_unittest.cc
@@ -3,6 +3,8 @@
 // found in the LICENSE file.
 
 #include "chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher_param.h"
+#include "base/base64url.h"
+#include "base/strings/strcat.h"
 #include "base/test/bind.h"
 #include "base/test/task_environment.h"
 #include "chrome/browser/signin/bound_session_credentials/bound_session_registration_fetcher.h"
@@ -11,6 +13,17 @@
 #include "services/network/test/test_url_loader_factory.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+namespace {
+constexpr char kChallenge[] = "test_challenge";
+
+std::string Base64UrlEncode(base::StringPiece data) {
+  std::string output;
+  base::Base64UrlEncode(data, base::Base64UrlEncodePolicy::OMIT_PADDING,
+                        &output);
+  return output;
+}
+}  // namespace
+
 class BoundSessionRegistrationFetcherParamTest : public testing::Test {
  public:
   BoundSessionRegistrationFetcherParamTest() = default;
@@ -25,7 +38,7 @@
   std::vector<crypto::SignatureVerifier::SignatureAlgorithm> supported_algos;
   BoundSessionRegistrationFetcherParam params =
       BoundSessionRegistrationFetcherParam::CreateInstanceForTesting(
-          GURL(), supported_algos);
+          GURL(), supported_algos, "");
 }
 
 TEST_F(BoundSessionRegistrationFetcherParamTest, AllValid) {
@@ -33,7 +46,9 @@
   auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
   response_headers->SetHeader(
       "Sec-Session-Google-Registration",
-      "registration=startsession; supported-alg=ES256,RS256");
+      base::StrCat({"registration=startsession; supported-alg=ES256,RS256; "
+                    "challenge=",
+                    Base64UrlEncode(kChallenge), ";"}));
   absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
       BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
           registration_request, response_headers.get());
@@ -45,14 +60,17 @@
             crypto::SignatureVerifier::SignatureAlgorithm::ECDSA_SHA256);
   ASSERT_EQ(params.SupportedAlgos()[1],
             crypto::SignatureVerifier::SignatureAlgorithm::RSA_PKCS1_SHA256);
+  ASSERT_EQ(params.Challenge(), kChallenge);
 }
 
 TEST_F(BoundSessionRegistrationFetcherParamTest, AllValidFullUrl) {
   GURL registration_request = GURL("https://www.google.com/registration");
   auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
-  response_headers->SetHeader("Sec-Session-Google-Registration",
-                              "registration=https://accounts.google.com/"
-                              "startsession; supported-alg=ES256,RS256");
+  response_headers->SetHeader(
+      "Sec-Session-Google-Registration",
+      base::StrCat({"registration=https://accounts.google.com/"
+                    "startsession; supported-alg=ES256,RS256; challenge=",
+                    Base64UrlEncode(kChallenge), ";"}));
   absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
       BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
           registration_request, response_headers.get());
@@ -64,14 +82,17 @@
             crypto::SignatureVerifier::SignatureAlgorithm::ECDSA_SHA256);
   ASSERT_EQ(params.SupportedAlgos()[1],
             crypto::SignatureVerifier::SignatureAlgorithm::RSA_PKCS1_SHA256);
+  ASSERT_EQ(params.Challenge(), kChallenge);
 }
 
 TEST_F(BoundSessionRegistrationFetcherParamTest, AllValidFullDifferentUrl) {
   GURL registration_request = GURL("https://www.google.com/registration");
   auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
-  response_headers->SetHeader("Sec-Session-Google-Registration",
-                              "registration=https://accounts.different.url/"
-                              "startsession; supported-alg=ES256,RS256");
+  response_headers->SetHeader(
+      "Sec-Session-Google-Registration",
+      base::StrCat({"registration=https://accounts.different.url/"
+                    "startsession; supported-alg=ES256,RS256; challenge=",
+                    Base64UrlEncode(kChallenge), ";"}));
   absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
       BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
           registration_request, response_headers.get());
@@ -83,7 +104,9 @@
   auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
   response_headers->SetHeader(
       "Sec-Session-Google-Registration",
-      "registration=startsession; supported-alg=RS256,ES256");
+      base::StrCat(
+          {"registration=startsession; supported-alg=RS256,ES256; challenge=",
+           Base64UrlEncode(kChallenge), ";"}));
   absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
       BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
           registration_request, response_headers.get());
@@ -95,13 +118,17 @@
             crypto::SignatureVerifier::SignatureAlgorithm::RSA_PKCS1_SHA256);
   ASSERT_EQ(params.SupportedAlgos()[1],
             crypto::SignatureVerifier::SignatureAlgorithm::ECDSA_SHA256);
+  ASSERT_EQ(params.Challenge(), kChallenge);
 }
 
 TEST_F(BoundSessionRegistrationFetcherParamTest, AllValidOneAlgo) {
   GURL registration_request = GURL("https://www.google.com/registration");
   auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
-  response_headers->SetHeader("Sec-Session-Google-Registration",
-                              "registration=startsession; supported-alg=RS256");
+  response_headers->SetHeader(
+      "Sec-Session-Google-Registration",
+      base::StrCat(
+          {"registration=startsession; supported-alg=RS256; challenge=",
+           Base64UrlEncode(kChallenge), ";"}));
   absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
       BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
           registration_request, response_headers.get());
@@ -111,6 +138,7 @@
             GURL("https://www.google.com/startsession"));
   ASSERT_EQ(params.SupportedAlgos()[0],
             crypto::SignatureVerifier::SignatureAlgorithm::RSA_PKCS1_SHA256);
+  ASSERT_EQ(params.Challenge(), kChallenge);
 }
 
 TEST_F(BoundSessionRegistrationFetcherParamTest, MissingHeader) {
@@ -128,7 +156,9 @@
   auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
   response_headers->SetHeader(
       "Sec-Session-Google-Registration",
-      "registration=startsession; supported-alg=ES256,RS256");
+      base::StrCat(
+          {"registration=startsession; supported-alg=ES256,RS256; challenge=",
+           Base64UrlEncode(kChallenge), ";"}));
   absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
       BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
           registration_request, response_headers.get());
@@ -138,8 +168,10 @@
 TEST_F(BoundSessionRegistrationFetcherParamTest, MissingAlgo) {
   GURL registration_request = GURL("https://www.google.com/registration");
   auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
-  response_headers->SetHeader("Sec-Session-Google-Registration",
-                              "registration=startsession; supported-alg=");
+  response_headers->SetHeader(
+      "Sec-Session-Google-Registration",
+      base::StrCat({"registration=startsession; supported-alg=; challenge=",
+                    Base64UrlEncode(kChallenge), ";"}));
   absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
       BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
           registration_request, response_headers.get());
@@ -149,8 +181,48 @@
 TEST_F(BoundSessionRegistrationFetcherParamTest, MissingRegistration) {
   GURL registration_request = GURL("https://www.google.com/registration");
   auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
-  response_headers->SetHeader("Sec-Session-Google-Registration",
-                              "supported-alg=");
+  response_headers->SetHeader(
+      "Sec-Session-Google-Registration",
+      base::StrCat({"supported-alg=ES256,RS256; challenge=",
+                    Base64UrlEncode(kChallenge), ";"}));
+  absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
+      BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
+          registration_request, response_headers.get());
+  ASSERT_FALSE(maybe_params.has_value());
+}
+
+TEST_F(BoundSessionRegistrationFetcherParamTest, MissingChallenge) {
+  GURL registration_request = GURL("https://www.google.com/registration");
+  auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
+  response_headers->SetHeader(
+      "Sec-Session-Google-Registration",
+      "registration=startsession; supported-alg=ES256,RS256");
+  absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
+      BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
+          registration_request, response_headers.get());
+  ASSERT_FALSE(maybe_params.has_value());
+}
+
+TEST_F(BoundSessionRegistrationFetcherParamTest, EmptyChallenge) {
+  GURL registration_request = GURL("https://www.google.com/registration");
+  auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
+  response_headers->SetHeader(
+      "Sec-Session-Google-Registration",
+      "registration=startsession; supported-alg=ES256,RS256; challenge=;");
+  absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
+      BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
+          registration_request, response_headers.get());
+  ASSERT_FALSE(maybe_params.has_value());
+}
+
+TEST_F(BoundSessionRegistrationFetcherParamTest, ChallengeDecodingFailed) {
+  GURL registration_request = GURL("https://www.google.com/registration");
+  auto response_headers = base::MakeRefCounted<net::HttpResponseHeaders>("");
+  // Encoded challenge with characters not in the base64url alphabet ("/").
+  response_headers->SetHeader(
+      "Sec-Session-Google-Registration",
+      "registration=startsession; supported-alg=ES256,RS256; "
+      "challenge=ab/d;");
   absl::optional<BoundSessionRegistrationFetcherParam> maybe_params =
       BoundSessionRegistrationFetcherParam::MaybeCreateInstance(
           registration_request, response_headers.get());
diff --git a/chrome/browser/signin/dice_browsertest.cc b/chrome/browser/signin/dice_browsertest.cc
index 03066c3..d911818 100644
--- a/chrome/browser/signin/dice_browsertest.cc
+++ b/chrome/browser/signin/dice_browsertest.cc
@@ -942,8 +942,10 @@
   // Signin using the Chrome Sync endpoint.
   signin_metrics::AccessPoint access_point =
       signin_metrics::AccessPoint::ACCESS_POINT_SETTINGS;
-  browser()->signin_view_controller()->ShowSignin(
-      profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN, access_point);
+  browser()->signin_view_controller()->ShowDiceEnableSyncTab(
+      access_point,
+      signin_metrics::PromoAction::PROMO_ACTION_NEW_ACCOUNT_NO_EXISTING_ACCOUNT,
+      /*email_hint=*/std::string());
 
   // Receive token.
   EXPECT_FALSE(
diff --git a/chrome/browser/signin/dice_tab_helper.h b/chrome/browser/signin/dice_tab_helper.h
index 6f68276..422923b6 100644
--- a/chrome/browser/signin/dice_tab_helper.h
+++ b/chrome/browser/signin/dice_tab_helper.h
@@ -74,6 +74,9 @@
 
   // Initializes the DiceTabHelper for a new signin flow. Must be called once
   // per signin flow happening in the tab, when the signin URL is being loaded.
+  // The `redirect_url` is used after enabling Sync or in case of errors ; it is
+  // not used after a successful signin without sync, and in this case the
+  // page will navigate to the `continue_url` parameter from `signin_url`.
   void InitializeSigninFlow(const GURL& signin_url,
                             signin_metrics::AccessPoint access_point,
                             signin_metrics::Reason reason,
diff --git a/chrome/browser/tab/BUILD.gn b/chrome/browser/tab/BUILD.gn
index 79f095f..50c9fa9 100644
--- a/chrome/browser/tab/BUILD.gn
+++ b/chrome/browser/tab/BUILD.gn
@@ -134,6 +134,7 @@
     "java/src/org/chromium/chrome/browser/tab/WebContentsStateBridge.java",
     "java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java",
     "java/src/org/chromium/chrome/browser/tab/state/LevelDBPersistedDataStorage.java",
+    "java/src/org/chromium/chrome/browser/tab/state/PersistedTabData.java",
   ]
 }
 
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/PersistedTabData.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/PersistedTabData.java
index b4703116..badce4d 100644
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/PersistedTabData.java
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/PersistedTabData.java
@@ -13,6 +13,7 @@
 import org.chromium.base.TraceEvent;
 import org.chromium.base.UserData;
 import org.chromium.base.UserDataHost;
+import org.chromium.base.annotations.NativeMethods;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.base.supplier.Supplier;
@@ -28,7 +29,6 @@
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
-
 /**
  * PersistedTabData is Tab data persisted across restarts
  * A constructor of taking a Tab, a PersistedTabDataStorage and
@@ -413,6 +413,7 @@
         if (shoppingPersistedTabData != null) {
             shoppingPersistedTabData.disableSaving();
         }
+        PersistedTabDataJni.get().onTabClose(tab);
     }
 
     /**
@@ -462,4 +463,10 @@
         PersistedTabDataConfiguration.getFilePersistedTabDataStorage().onShutdown();
         PersistedTabDataConfiguration.getEncryptedFilePersistedTabDataStorage().onShutdown();
     }
+
+    @VisibleForTesting
+    @NativeMethods
+    public interface Natives {
+        void onTabClose(Tab tab);
+    }
 }
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 500cab0..a3969fb 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -559,6 +559,7 @@
     "//components/payments/core:error_strings",
     "//components/performance_manager",
     "//components/permissions",
+    "//components/plus_addresses",
     "//components/policy/content",
     "//components/policy/core/browser",
     "//components/pref_registry",
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java
index 15866b2..fc3453e 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java
@@ -6,14 +6,11 @@
 
 import android.animation.Animator;
 import android.content.res.Resources;
-import android.os.Build;
-import android.os.Build.VERSION;
 import android.view.View;
 
 import androidx.annotation.DrawableRes;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
-import androidx.appcompat.widget.TooltipCompat;
 
 import org.chromium.base.ContextUtils;
 import org.chromium.base.supplier.OneshotSupplier;
@@ -128,12 +125,6 @@
         updateVerboseStatusVisibility();
         mLocationBarDataProvider.addObserver(this);
         mStatusView.setBrowserControlsVisibilityDelegate(browserControlsVisibilityDelegate);
-
-        // Set tooltip text for location bar status icon.
-        if (getSecurityIconView() != null && VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            TooltipCompat.setTooltipText((View) getSecurityIconView(),
-                    mStatusView.getContext().getString(R.string.accessibility_menu_info));
-        }
     }
 
     /** Signals that native initialization has completed. */
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
index 45e8abc..4ab0c2d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Tik om uit te vou</translation>
 <translation id="1289059016768036948">Jy sal gevra word om by jou Google-rekening aan te meld</translation>
 <translation id="1291207594882862231">Maak geskiedenis, webkoekies, werfdata, kas skoon …</translation>
-<translation id="1293898515599432175">Jou wagwoorde sal van Google Wagwoordbestuurder vir Chrome <ph name="CHROME_CHANNEL" /> uitgevee word. Jy sal die wagwoordlêer wat jy sopas afgelaai het, behou.</translation>
 <translation id="129553762522093515">Onlangs toegemaak</translation>
 <translation id="1298077576058087471">Bespaar tot 60% data; lees vandag se nuus</translation>
 <translation id="1303339473099049190">Kan nie daardie wagwoord kry nie. Gaan die spelling na en probeer weer.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Om voort te gaan, sal <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> jou naam, e-posadres en profielfoto met hierdie werf deel.</translation>
 <translation id="5409881200985013443">Dien <ph name="ONE_TIME_CODE" /> op <ph name="CLIENT_NAME" /> in?</translation>
 <translation id="5414836363063783498">Verifieer tans …</translation>
-<translation id="542190472198460451">Alle wagwoorde sal op jou toestel afgelaai word en van Chrome <ph name="CHROME_CHANNEL" /> verwyder word</translation>
 <translation id="5423934151118863508">Jou mees besoekte bladsye sal hier verskyn</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB is beskikbaar</translation>
 <translation id="543338862236136125">Wysig wagwoord</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Help om Chrome se kenmerke en -werkverrigting beter te maak</translation>
 <translation id="8110087112193408731">Wys jou Chrome-aktiwiteit in Digitale Welstand?</translation>
 <translation id="8118117428362942925">Vra jou ouer (<ph name="PARENT_NAME" />) as jy hulp benodig</translation>
-<translation id="8124758083429256800">Jou lys gestoorde wagwoorde vir Chrome en Chrome <ph name="ERROR_DESCRIPTION" /> sal ná weergawe 121 saamgevoeg word. Jy sal al jou gestoorde wagwoorde op albei apps outomaties kan invul.</translation>
 <translation id="8127542551745560481">Wysig tuisblad</translation>
 <translation id="8130309322784422030">Jou gebergde aanmeldinligting is dalk verouderd</translation>
 <translation id="813082847718468539">Bekyk werfinligting</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
index 837d737..93f4790 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">ለመዘርጋት መታ ያድርጉ</translation>
 <translation id="1289059016768036948">ወደ Google መለያዎ እንዲገቡ ይጠየቃሉ</translation>
 <translation id="1291207594882862231">ታሪክ፣ ኩኪዎች፣ የጣቢያ ውሂብ፣ መሸጎጫን አጽዳ…</translation>
-<translation id="1293898515599432175">የእርስዎ የይለፍ ቃላት ለChrome <ph name="CHROME_CHANNEL" /> ከGoogle የይለፍ ቃል አስተዳዳሪ ይሰረዛሉ። አሁን ያወረዱትን የይለፍ ቃላት ፋይል ያቆያሉ።</translation>
 <translation id="129553762522093515">በቅርብ ጊዜ የተዘጉ</translation>
 <translation id="1298077576058087471">እስከ 60% ውሂብ ይቆጥቡ፣ የዛሬ ዜና ያንብቡ</translation>
 <translation id="1303339473099049190">ይህንን ይለፍ ቃል ማግኘት አይቻልም። የፊደል አጻጻፍዎን ይፈትሹና እንደገና ይሞክሩ።</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">ለመቀጠል <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> የእርስዎን ስም፣ ኢሜይል አድራሻ እና የመገለጫ ሥዕል ለዚህ ጣቢያ ያጋራል።</translation>
 <translation id="5409881200985013443"><ph name="ONE_TIME_CODE" /> በ<ph name="CLIENT_NAME" /> ላይ ያስረክቡ?</translation>
 <translation id="5414836363063783498">በማረጋገጥ ላይ…</translation>
-<translation id="542190472198460451">ሁሉም የይለፍ ቃላት በመሣሪያዎ ላይ ይወርዳሉ እና ከChrome <ph name="CHROME_CHANNEL" /> ይወገዳሉ</translation>
 <translation id="5423934151118863508">በጣም በብዛት የተጎበኙ ገጾችዎ እዚህ ይመጣሉ</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> ጊባ ይገኛል</translation>
 <translation id="543338862236136125">የይለፍ ቃል አርትዕ</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">የChrome ባህሪያት እና አፈጻጸም እንዲሻሻል ያግዙ</translation>
 <translation id="8110087112193408731">በዲጂታል ብቁ መሆን ውስጥ የChrome እንቅስቃሴዎ ይታይ?</translation>
 <translation id="8118117428362942925">እገዛ ካስፈለገዎት ወላጅዎን ይጠይቁ (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">ለChrome እና Chrome <ph name="ERROR_DESCRIPTION" /> የእርስዎ የተቀመጡ የይለፍ ቃላቶች ዝርዝሮች ከስሪት 121 በኋላ ይዋሃዳሉ። በሁለቱም መተግበሪያዎች ላይ ሁሉንም የተቀመጡ የይለፍ ቃላትዎን በራስ-መሙላት ይችላሉ።</translation>
 <translation id="8127542551745560481">መነሻ ገጽን ያርትዑ</translation>
 <translation id="8130309322784422030">የተከማቸው የመግቢያ መረጃዎ ጊዜው ያለፈበት ሊሆን ይችላል</translation>
 <translation id="813082847718468539">የጣቢያ መረጃን ይመልከቱ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
index c263d80..666b190 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">النقر للتوسيع</translation>
 <translation id="1289059016768036948">‏سيُطلب منك تسجيل الدخول إلى حسابك على Google.</translation>
 <translation id="1291207594882862231">محو السجل وملفات تعريف الارتباط وبيانات المواقع الإلكترونية وذاكرة التخزين المؤقت…</translation>
-<translation id="1293898515599432175">‏سيتم حذف كلمات المرور من "مدير كلمات المرور في Google" في <ph name="CHROME_CHANNEL" /> من Chrome. وستتمكَّن من الاحتفاظ بملف كلمات المرور الذي نزّلته.</translation>
 <translation id="129553762522093515">المغلقة حديثًا</translation>
 <translation id="1298077576058087471">توفير ما يصل إلى 60% من البيانات والاطّلاع على أخبار اليوم</translation>
 <translation id="1303339473099049190">يتعذّر العثور على كلمة المرور هذه. يجب إجراء تدقيق إملائي وإعادة المحاولة.</translation>
@@ -824,7 +823,6 @@
 <translation id="5401851137404501592">للمتابعة، سيشارك <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> اسمك وعنوان بريدك الإلكتروني وصورة ملفك الشخصي مع هذا الموقع الإلكتروني.</translation>
 <translation id="5409881200985013443">هل تريد إرسال <ph name="ONE_TIME_CODE" /> إلى <ph name="CLIENT_NAME" />؟</translation>
 <translation id="5414836363063783498">جارٍ التحقق...</translation>
-<translation id="542190472198460451">‏سيتم تنزيل جميع كلمات المرور على جهازك وإزالتها من <ph name="CHROME_CHANNEL" /> من Chrome.</translation>
 <translation id="5423934151118863508">ستظهر صفحاتك الأكثر زيارة هنا</translation>
 <translation id="5424588387303617268">يتوفر <ph name="GIGABYTES" /> غيغابايت</translation>
 <translation id="543338862236136125">تعديل كلمة المرور</translation>
@@ -1368,7 +1366,6 @@
 <translation id="8110024788458304985">‏المساعدة في تحسين ميزات Chrome وأدائه</translation>
 <translation id="8110087112193408731">‏هل تريد عرض نشاط Chrome في الرفاهية الرقمية؟</translation>
 <translation id="8118117428362942925">إذا احتجت للمساعدة، يمكنك طلبها من أحد والدَيك (<ph name="PARENT_NAME" />).</translation>
-<translation id="8124758083429256800">‏بعد الإصدار 121، سيتم دمج قوائم كلمات المرور المحفوظة في متصفِّح Chrome و<ph name="ERROR_DESCRIPTION" /> من Chrome. ستتمكّن تلقائيًا من ملء جميع كلمات المرور المحفوظة في كلا التطبيقين.</translation>
 <translation id="8127542551745560481">تعديل الصفحة الرئيسية</translation>
 <translation id="8130309322784422030">معلومات تسجيل الدخول المُخزَّنة الخاصة بك قد تكون قديمة.</translation>
 <translation id="813082847718468539">عرض معلومات الموقع</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
index 427fa92..6de8641f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">বিস্তাৰ কৰিবলৈ টিপক</translation>
 <translation id="1289059016768036948">আপোনাক আপোনাৰ Google একাউণ্টত ছাইন ইন কৰিবলৈ কোৱা হ’ব</translation>
 <translation id="1291207594882862231">সন্ধান ইতিহাস, কুকি, ছাইটৰ ডেটা, কেশ্ব মচক…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" />ৰ বাবে আপোনাৰ পাছৱৰ্ডসমূহ Google Password Managerৰ পৰা মচি পেলোৱা হ’ব। আপুনি এইমাত্ৰ ডাউনল’ড কৰা পাছৱৰ্ড ফাইলটো ৰাখিব।</translation>
 <translation id="129553762522093515">শেহতীয়াকৈ বন্ধ কৰা</translation>
 <translation id="1298077576058087471">৬০% পৰ্যন্ত ডেটা ৰাহি কৰক, আজিৰ বাতৰি পঢ়ক</translation>
 <translation id="1303339473099049190">সেই পাছৱর্ডটো বিচাৰিব নোৱাৰি। আপোনাৰ বানান পৰীক্ষা কৰক আৰু পুনৰ চেষ্টা কৰক।</translation>
@@ -821,7 +820,6 @@
 <translation id="5401851137404501592">অব্যাহত ৰাখিবলৈ, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" />এ আপোনাৰ নাম, ইমেইল, ঠিকনা আৰু প্ৰ’ফাইল চিত্ৰ এই ছাইটটোৰ সৈতে শ্বেয়াৰ কৰিব।</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" />ত <ph name="ONE_TIME_CODE" /> দাখিল কৰিবনে?</translation>
 <translation id="5414836363063783498">সত্যাপন কৰি থকা হৈছে…</translation>
-<translation id="542190472198460451">আটাইবোৰ পাছৱৰ্ড আপোনাৰ ডিভাইচত ডাউনল’ড কৰা হ’ব আৰু Chrome <ph name="CHROME_CHANNEL" />ৰ পৰা আঁতৰোৱা হ’ব</translation>
 <translation id="5423934151118863508">আপুনি সৰ্বাধিক চোৱা ছাইটবোৰ ইয়াত দেখা যাব।</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> জিবি উপলব্ধ</translation>
 <translation id="543338862236136125">পাছৱৰ্ড সম্পাদনা কৰক</translation>
@@ -1365,7 +1363,6 @@
 <translation id="8110024788458304985">Chromeৰ সুবিধাসমূহ আৰু কাৰ্যদক্ষতা উন্নত কৰাত সহায় কৰক</translation>
 <translation id="8110087112193408731">আপুনি Chromeত কৰা কাৰ্যকলাপ ডিজিটেল ৱেলবিইঙ-ত দেখুৱাবনে?</translation>
 <translation id="8118117428362942925">আপোনাক সহায়ৰ প্ৰয়োজন হ’লে আপোনাৰ অভিভাৱক (<ph name="PARENT_NAME" />)ক কওক</translation>
-<translation id="8124758083429256800">Chromeৰ বাবে ছেভ কৰি থোৱা পাছৱর্ডৰ আপোনাৰ সূচী আৰু Chrome <ph name="ERROR_DESCRIPTION" /> সংস্কৰণ ১২১ৰ পাছত .একত্ৰিত কৰিব। আপুনি দুয়োটা এপতে আপোনাৰ আটাইবোৰ ছেভ কৰি থোৱা পাছৱর্ড স্বয়ংক্ৰিয়ভাৱে পূৰ কৰিব পাৰিব।</translation>
 <translation id="8127542551745560481">গৃহপৃষ্ঠা সম্পাদনা কৰক</translation>
 <translation id="8130309322784422030">আপুনি ষ্ট’ৰ কৰি থোৱা ছাইন ইন কৰাৰ তথ্যখিনিৰ ম্যাদ উকলিব পাৰে</translation>
 <translation id="813082847718468539">ছাইটৰ তথ্য চাওক</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
index 1ed7d2d..cfbda6f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Genişləndirmək üçün klikləyin</translation>
 <translation id="1289059016768036948">Google Hesabına daxil olmağınız istəniləcək</translation>
 <translation id="1291207594882862231">Tarixçə, kuki, sayt datası və keşi təmizləyin…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" /> üçün parollar Google Parol Menecerindən silinəcək. İndicə endirilmiş parol faylını saxlayacaqsınız.</translation>
 <translation id="129553762522093515">Son qapadılan</translation>
 <translation id="1298077576058087471">60%-ədək dataya qənaət edin, bugünün xəbərlərini oxuyun</translation>
 <translation id="1303339473099049190">Həmin parolu tapmaq olmur. Yazılışı yoxlayıb, yenidən cəhd edin.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Davam etmək üçün <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ad, e-poçt ünvanı və profil şəklinizi bu sayt ilə paylaşacaq.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> tətbiqində <ph name="ONE_TIME_CODE" /> təqdim edilsin?</translation>
 <translation id="5414836363063783498">Doğrulanır...</translation>
-<translation id="542190472198460451">Bütün parollar cihazda endiriləcək və Chrome-dan (<ph name="CHROME_CHANNEL" />) silinəcək</translation>
 <translation id="5423934151118863508">Ən çox daxil olduğunuz səhifələr burada görünəcək</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB əlçatandır</translation>
 <translation id="543338862236136125">Parolu redaktə edin</translation>
@@ -1364,7 +1362,6 @@
 <translation id="8110024788458304985">Chrome funksiyalarını və performansını təkmilləşdirməyə yardım edin</translation>
 <translation id="8110087112193408731">Digital Sağlamlıqda Chrome fəaliyyəti göstərilsin?</translation>
 <translation id="8118117428362942925">Köməyə ehtiyacınız varsa, valideyninizə müraciət edin (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Chrome və Chrome <ph name="ERROR_DESCRIPTION" /> üçün yadda saxlanmış parol siyahıları versiya 121-dən sonra birləşdiriləcək. Hər iki tətbiqdə yadda saxlanmış parolları avtomatik doldura biləcəksiniz.</translation>
 <translation id="8127542551745560481">Əsas səhifəni redaktə edin</translation>
 <translation id="8130309322784422030">Saxladığınız giriş məlumatları köhnəlmiş ola bilər</translation>
 <translation id="813082847718468539">Sayt məlumatına baxın</translation>
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 76c1f3ee..c074002 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Дакраніцеся, каб разгарнуць</translation>
 <translation id="1289059016768036948">Вам трэба будзе ўвайсці ва Уліковы запіс Google</translation>
 <translation id="1291207594882862231">Ачысціць гісторыю, файлы cookie, даныя сайта, кэш…</translation>
-<translation id="1293898515599432175">Вашы паролі будуць выдалены з Менеджара пароляў Google для Chrome <ph name="CHROME_CHANNEL" />. У вас захаваецца толькі што спампаваны файл пароляў.</translation>
 <translation id="129553762522093515">Нядаўна закрытыя</translation>
 <translation id="1298077576058087471">Чытайце сённяшнія навіны. Эканомце да 60% трафіка</translation>
 <translation id="1303339473099049190">Не ўдалося знайсці гэты пароль. Праверце правільнасць напісання і паўтарыце спробу.</translation>
@@ -821,7 +820,6 @@
 <translation id="5401851137404501592">Каб працягнуць, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> абагуліць ваша імя, адрас электроннай пошты і відарыс профілю з гэтым сайтам.</translation>
 <translation id="5409881200985013443">Адправіць код <ph name="ONE_TIME_CODE" /> на прыладу "<ph name="CLIENT_NAME" />"?</translation>
 <translation id="5414836363063783498">Ідзе праверка…</translation>
-<translation id="542190472198460451">Усе паролі будуць спампамаваны на вашу прыладу і выдалены з Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Тут будуць паказвацца старонкі, якія вы найчасцей наведваеце</translation>
 <translation id="5424588387303617268">Даступна <ph name="GIGABYTES" /> ГБ</translation>
 <translation id="543338862236136125">Змяніць пароль</translation>
@@ -1365,7 +1363,6 @@
 <translation id="8110024788458304985">Дапамагаць паляпшаць функцыі і прадукцыйнасць Chrome</translation>
 <translation id="8110087112193408731">Паказваць у службе лічбавага камфорту вашы дзеянні ў Chrome?</translation>
 <translation id="8118117428362942925">Калі табе патрабуецца дапамога, звярніся да аднаго з бацькоў (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Вашы спісы захаваных пароляў для Chrome і Chrome <ph name="ERROR_DESCRIPTION" /> аб'яднаюцца пасля версіі 121. Вы зможаце выкарыстоўваць аўтазапаўненне для захаваных пароляў у абедзвюх праграмах.</translation>
 <translation id="8127542551745560481">Змяніць галоўную старонку</translation>
 <translation id="8130309322784422030">Уліковыя даныя могуць быць устарэлымі</translation>
 <translation id="813082847718468539">Прагляд звестак пра сайт</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
index a8b7fd8..0b9b2924 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Докоснете за разгъване</translation>
 <translation id="1289059016768036948">Ще трябва да влезете в профила си в Google</translation>
 <translation id="1291207594882862231">Изчистване на историята, „бисквитките“, данните за сайтове и кеша…</translation>
-<translation id="1293898515599432175">Паролите ви ще бъдат изтрити от Google Мениджър на пароли за Chrome <ph name="CHROME_CHANNEL" />. Ще запазите току-що изтегления файл с пароли.</translation>
 <translation id="129553762522093515">Наскоро затворени</translation>
 <translation id="1298077576058087471">Спестете до 60% данни – прочетете днешните новини</translation>
 <translation id="1303339473099049190">Тази парола не бе намерена. Проверете дали е написана правилно и опитайте отново.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">За да продължите, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ще сподели с този сайт името, имейл адреса и снимката на потребителския ви профил.</translation>
 <translation id="5409881200985013443">Да се изпрати ли еднократният код <ph name="ONE_TIME_CODE" /> до <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Потвърждава се…</translation>
-<translation id="542190472198460451">Всички пароли ще бъдат изтеглени на устройството ви и премахнати от Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Най-посещаваните от вас страници ще се показват тук</translation>
 <translation id="5424588387303617268">Налични: <ph name="GIGABYTES" /> ГБ</translation>
 <translation id="543338862236136125">Редактиране на паролата</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Помощ за подобряването на функциите и ефективността на Chrome</translation>
 <translation id="8110087112193408731">Искате ли активността ви в Chrome да се показва в „Дигитално благополучие“?</translation>
 <translation id="8118117428362942925">Ако се нуждаете от помощ, попитайте родителя си (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Списъците ви със запазени пароли за Chrome и Chrome <ph name="ERROR_DESCRIPTION" /> ще се обединят след версия 121. Ще можете да попълвате автоматично всичките си запазени пароли и в двете приложения.</translation>
 <translation id="8127542551745560481">Редактиране на началната страница</translation>
 <translation id="8130309322784422030">Съхранената ви информация за вход може да не е актуална</translation>
 <translation id="813082847718468539">Преглед на информацията за сайта</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
index 6417eb8..f3b9f39 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">প্রসারিত করতে আলতো চাপুন</translation>
 <translation id="1289059016768036948">আপনার Google অ্যাকাউন্টে সাইন-ইন করার জন্য আপনাকে বলা হবে</translation>
 <translation id="1291207594882862231">ইতিহাস, কুকিজ, সাইট ডেটা, ক্যাশে সাফ করে...</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" />-এর জন্য Google Password Manager থেকে আপনার পাসওয়ার্ড মুছে ফেলা হবে। এই মাত্র ডাউনলোড করা পাসওয়ার্ড ফাইল আপনি রেখে দেবেন।</translation>
 <translation id="129553762522093515">সম্প্রতি বন্ধ হয়েছে</translation>
 <translation id="1298077576058087471">সর্বাধিক ৬০ শতাংশ ডেটা সাশ্রয় করুন, আজকের খবর পড়ুন</translation>
 <translation id="1303339473099049190">ওই পাসওয়ার্ডটি খুঁজে পাওয়া যায়নি। বানান পরীক্ষা করে আবার চেষ্টা করে দেখুন।</translation>
@@ -824,7 +823,6 @@
 <translation id="5401851137404501592">চালিয়ে যেতে, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> আপনার নাম, ইমেল আইডি ও প্রোফাইল ছবি এই সাইটের সাথে শেয়ার করবে।</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" />-এ <ph name="ONE_TIME_CODE" /> জমা দিতে চান?</translation>
 <translation id="5414836363063783498">যাচাই করা হচ্ছে...</translation>
-<translation id="542190472198460451">আপনার ডিভাইসে সবকটি পাসওয়ার্ড ডাউনলোড করা হবে এবং Chrome <ph name="CHROME_CHANNEL" /> থেকে সরিয়ে দেওয়া হবে</translation>
 <translation id="5423934151118863508">আপনার সর্বাধিক দেখা পৃষ্ঠাগুলি এখানে দেখা যাবে</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> জিবি উপলব্ধ</translation>
 <translation id="543338862236136125">পাসওয়ার্ড এডিট করুন</translation>
@@ -1368,7 +1366,6 @@
 <translation id="8110024788458304985">Chrome-এর ফিচার ও পারফর্ম্যান্স আরও উন্নত করে তুলতে সাহায্য করুন</translation>
 <translation id="8110087112193408731">ডিজিটাল ওয়েলবিং-এ আপনার Chrome অ্যাক্টিভিটি দেখতে চান?</translation>
 <translation id="8118117428362942925">সাহায্যের প্রয়োজন হলে, অভিভাবককে জিজ্ঞাসা করো (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Chrome ও Chrome <ph name="ERROR_DESCRIPTION" />-এর জন্য সেভ করা পাসওয়ার্ড ভার্সন ১২১-এর পরে মার্জ করা হবে। আপনি দুটি অ্যাপেই নিজের সব সেভ করা পাসওয়ার্ড অটোফিল করতে পারবেন।</translation>
 <translation id="8127542551745560481">হোমপেজ এডিট করুন</translation>
 <translation id="8130309322784422030">আপনার সেভ করা সাইন-ইন সংক্রান্ত তথ্য হয়ত পুরনো হয়ে গেছে</translation>
 <translation id="813082847718468539">সাইটের তথ্য দর্শন করুন</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
index 0523bc3..3eacd11 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Dodirnite da proširite</translation>
 <translation id="1289059016768036948">Zatražit ćemo da se prijavite na Google račun</translation>
 <translation id="1291207594882862231">Brisanje historije, kolačića, podataka web lokacija, keš memorije…</translation>
-<translation id="1293898515599432175">Lozinke će se izbrisati s Google upravitelja lozinki za Chrome <ph name="CHROME_CHANNEL" />. Zadržat ćete fajl lozinki koji ste upravo preuzeli.</translation>
 <translation id="129553762522093515">Nedavno zatvoreno</translation>
 <translation id="1298077576058087471">Uštedite do 60% podataka – pročitajte današnje vijesti</translation>
 <translation id="1303339473099049190">Nije moguće pronaći tu lozinku. Provjerite jeste li ispravno napisali i pokušajte ponovo.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Da nastavite, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> će dijeliti vaše ime i prezime, adresu e-pošte, adresu i sliku profila s ovom web lokacijom.</translation>
 <translation id="5409881200985013443">Poslati <ph name="ONE_TIME_CODE" /> na uređaj <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Potvrđivanje…</translation>
-<translation id="542190472198460451">Sve lozinke će se preuzeti na uređaj i ukloniti iz Chromea <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Vaše najposjećenije stranice pojaviće se ovdje</translation>
 <translation id="5424588387303617268">Dostupno je <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Uredite lozinku</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">Da započnete sinhronizaciju, potvrdite identitet</translation>
 <translation id="6364438453358674297">Ukloniti prijedloge iz historije?</translation>
 <translation id="6380100320871303656">Češće predučitavanje stranica za koje Chrome smatra da ćete ih vjerovatno posjetiti. Ova postavka može dovesti do povećanog korištenja podataka.</translation>
+<translation id="6382848304055775421">Izvoz</translation>
 <translation id="6391355955030242704">Da sinhronizirate Chrome informacije i zaštitite podatke u automobilu, morate kreirati zaključavanje profila u sigurnosnim postavkama. Koristit ćete kôd ili lozinku svaki put kada uđete u automobil.</translation>
 <translation id="6394791151443660613">Pretraživanje: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">LINK</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">Sve vrijeme</translation>
 <translation id="6987047470128880212">Anonimni način rada nije dostupan na ovom uređaju</translation>
 <translation id="6995899638241819463">Upozori ako su lozinke izložene pri narušavanju podataka</translation>
+<translation id="6996145122199359148">Preuzmite ovu stranicu</translation>
 <translation id="7020741890149022655">Dodajte na listu za čitanje <ph name="BEGIN_NEW" />Novo<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">Otvori u pregledniku</translation>
 <translation id="7027549951530753705">Vraćeno: <ph name="ITEM_TITLE" /></translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Pomozite nam da poboljšamo funkcije i performanse Chromea</translation>
 <translation id="8110087112193408731">Prikazati aktivnosti Chromea u Digitalnom blagostanju?</translation>
 <translation id="8118117428362942925">Ako ti treba pomoć, pitaj roditelja (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Vaše liste sačuvanih lozinki za Chrome i Chrome <ph name="ERROR_DESCRIPTION" /> će se spojiti nakon verzije 121. Moći ćete automatski popunjavati sve svoje sačuvane lozinke na objema aplikacijama.</translation>
 <translation id="8127542551745560481">Uredite početnu stranicu</translation>
 <translation id="8130309322784422030">Moguće je da su vaše pohranjene informacije za prijavu zastarjele</translation>
 <translation id="813082847718468539">Prikaz informacija o web lokaciji</translation>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">Historija navigacije je napola otvorena</translation>
 <translation id="9190276265094487094">Imat ćete historiju na svim sinhroniziranim uređajima da možete nastaviti ono što ste radili</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{Provjereno prije 1 minutu}one{Provjereno prije # minutu}few{Provjereno prije # minute}other{Provjereno prije # minuta}}</translation>
+<translation id="9204021776105550328">Brisanje</translation>
 <translation id="9204836675896933765">Ostao je još 1 fajl</translation>
 <translation id="9205933215779845960">Nije moguće pronaći tu stranicu. Provjerite pravopis ili koristite <ph name="SEARCH_ENGINE" /> da pretražite.</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
index f0f93bb..67aac0b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Toca per desplegar</translation>
 <translation id="1289059016768036948">Se't demanarà que iniciïs la sessió al teu Compte de Google</translation>
 <translation id="1291207594882862231">Esborra l'historial, les galetes, les dades dels llocs web, la memòria cau, etc.</translation>
-<translation id="1293898515599432175">Les contrasenyes se suprimiran del gestor de contrasenyes de Google per a Chrome <ph name="CHROME_CHANNEL" />. Conservaràs el fitxer de contrasenyes que acabes de baixar.</translation>
 <translation id="129553762522093515">Tancades recentment</translation>
 <translation id="1298077576058087471">Estalvia fins a un 60% de les dades, llegeix les notícies d'avui</translation>
 <translation id="1303339473099049190">No es troba aquesta contrasenya. Comprova que estigui ben escrita i torna-ho a provar.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Per continuar, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> compartirà el teu nom, la teva adreça electrònica i la teva foto de perfil amb aquest lloc web.</translation>
 <translation id="5409881200985013443">Vols enviar <ph name="ONE_TIME_CODE" /> a <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">S'està verificant...</translation>
-<translation id="542190472198460451">Totes les contrasenyes es baixaran al dispositiu i se suprimiran de Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Les pàgines més visitades es mostraran aquí</translation>
 <translation id="5424588387303617268">GB disponibles: <ph name="GIGABYTES" /></translation>
 <translation id="543338862236136125">Edita la contrasenya</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Ajuda a millorar les funcions i el rendiment de Chrome</translation>
 <translation id="8110087112193408731">Vols veure l'activitat de Chrome a Benestar digital?</translation>
 <translation id="8118117428362942925">Si necessites ajuda, demana-la al teu pare o mare (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Les teves llistes de contrasenyes desades per a Chrome i Chrome <ph name="ERROR_DESCRIPTION" /> es combinaran a partir de la versió 121. Podràs emplenar automàticament totes les contrasenyes desades en les dues aplicacions.</translation>
 <translation id="8127542551745560481">Edita la pàgina d'inici</translation>
 <translation id="8130309322784422030">És possible que la informació d'inici de sessió emmagatzemada no estigui actualitzada</translation>
 <translation id="813082847718468539">Mostra la informació del lloc web</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 46d5b338..ddb4ee2 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Klepnutím rozbalíte</translation>
 <translation id="1289059016768036948">Budete vyzváni, abyste se přihlásili k účtu Google</translation>
 <translation id="1291207594882862231">Vymazat historii, soubory cookie, data webů, mezipaměť…</translation>
-<translation id="1293898515599432175">Vaše hesla budou smazána ze Správce hesel Google pro Chrome <ph name="CHROME_CHANNEL" />. Soubor s hesly, který jste právě stáhli, vám zůstane.</translation>
 <translation id="129553762522093515">Nedávno zavřené</translation>
 <translation id="1298077576058087471">Přečtěte si dnešní zprávy a ušetřete až 60 % dat</translation>
 <translation id="1303339473099049190">Dané heslo nebylo nalezeno. Zkontrolujte ho a zkuste to znovu.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Aby bylo možné pokračovat, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> bude s tímto webem sdílet vaše jméno, e‑mailovou adresu a profilový obrázek.</translation>
 <translation id="5409881200985013443">Odeslat v klientu <ph name="CLIENT_NAME" /> kód <ph name="ONE_TIME_CODE" />?</translation>
 <translation id="5414836363063783498">Ověřování…</translation>
-<translation id="542190472198460451">Všechna hesla budou stažena do vašeho zařízení a odstraněna z Chromu <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Zde se zobrazí vaše nejnavštěvovanější stránky.</translation>
 <translation id="5424588387303617268">K dispozici: <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Upravit heslo</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Pomozte zlepšovat funkce a výkon Chromu</translation>
 <translation id="8110087112193408731">Zobrazovat vaši aktivitu v Chromu v digitální rovnováze?</translation>
 <translation id="8118117428362942925">Pokud potřebuješ pomoc, požádej rodiče (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Vaše seznamy uložených hesel pro Chrome a Chrome <ph name="ERROR_DESCRIPTION" /> budou po verzi 121 sloučeny. V obou aplikacích budete moci automaticky vyplňovat všechna uložená hesla.</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>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
index af02027..cfb35e3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Tapiwch i ehangu</translation>
 <translation id="1289059016768036948">Bydd gofyn i chi fewngofnodi i'ch Cyfrif Google</translation>
 <translation id="1291207594882862231">Clirio hanes, cwcis, data gwefan, storfa…</translation>
-<translation id="1293898515599432175">Bydd eich cyfrineiriau'n cael eu dileu o Rheolwr Cyfrineiriau Google ar gyfer Chrome <ph name="CHROME_CHANNEL" />. Byddwch yn cadw'r ffeil cyfrineiriau rydych newydd ei lawrlwytho.</translation>
 <translation id="129553762522093515">Wedi'u cau'n ddiweddar</translation>
 <translation id="1298077576058087471">Arbedwch hyd at 60% o ddata, darllenwch newyddion heddiw</translation>
 <translation id="1303339473099049190">Methu â dod o hyd i'r cyfrinair hwnnw. Gwiriwch eich sillafu a rhowch gynnig arall arni.</translation>
@@ -821,7 +820,6 @@
 <translation id="5401851137404501592">I barhau, bydd <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> yn rhannu eich enw, eich e-bost, eich cyfeiriad, a'ch llun proffil gyda'r wefan.</translation>
 <translation id="5409881200985013443">Cyflwyno <ph name="ONE_TIME_CODE" /> ar <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Wrthi'n gwirio…</translation>
-<translation id="542190472198460451">Bydd yr holl gyfrineiriau'n cael eu lawrlwytho ar eich dyfais a'u tynnu o Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Bydd eich tudalennau yr ymwelwyd â nhw fwyaf yn ymddangos yma</translation>
 <translation id="5424588387303617268">Mae <ph name="GIGABYTES" /> GB ar gael</translation>
 <translation id="543338862236136125">Golygu cyfrinair</translation>
@@ -1365,7 +1363,6 @@
 <translation id="8110024788458304985">Helpu i wella nodweddion a pherfformiad Chrome</translation>
 <translation id="8110087112193408731">Ydych chi am ddangos eich gweithgarwch Chrome yn Digital Wellbeing?</translation>
 <translation id="8118117428362942925">Os oes angen help arnat, gofynna i dy riant (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Bydd eich rhestrau o gyfrineiriau sydd wedi'u cadw ar gyfer Chrome a Chrome <ph name="ERROR_DESCRIPTION" /> yn cyfuno ar ôl fersiwn 121. Byddwch yn gallu llenwi'ch holl gyfrineiriau sydd wedi'u cadw yn awtomatig ar y ddau ap.</translation>
 <translation id="8127542551745560481">Golygu'r dudalen hafan</translation>
 <translation id="8130309322784422030">Mae'n bosib bod eich gwybodaeth mewngofnodi sydd wedi'i storio yn hen</translation>
 <translation id="813082847718468539">Gweld gwybodaeth am y wefan</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
index 65674d50..fc06b76 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Tryk for at udvide</translation>
 <translation id="1289059016768036948">Du bliver bedt om at logge ind på din Google-konto</translation>
 <translation id="1291207594882862231">Ryd historik, cookies, websitedata, cache...</translation>
-<translation id="1293898515599432175">Dine adgangskoder slettes fra Google Adgangskodeadministrator for Chrome <ph name="CHROME_CHANNEL" />. Du kan beholde den adgangskodefil, du lige har downloadet.</translation>
 <translation id="129553762522093515">Senest lukkede</translation>
 <translation id="1298077576058087471">Spar op til 60 % data, og læs dagens nyheder</translation>
 <translation id="1303339473099049190">Adgangskoden blev ikke fundet. Tjek stavningen, og prøv igen.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">For at fortsætte deler <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> dit navn, din mailadresse, og dit profilbillede med dette website.</translation>
 <translation id="5409881200985013443">Vil du angive <ph name="ONE_TIME_CODE" /> på <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verificerer...</translation>
-<translation id="542190472198460451">Alle adgangskoder downloades til din enhed og fjernes fra Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Dine mest besøgte sider vises her</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB ledig plads</translation>
 <translation id="543338862236136125">Rediger adgangskode</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Vær med til at forbedre funktioner og ydeevne i Chrome</translation>
 <translation id="8110087112193408731">Vil du se din Chrome-aktivitet i Digital balance?</translation>
 <translation id="8118117428362942925">Spørg din forælder (<ph name="PARENT_NAME" />), hvis du har brug for hjælp</translation>
-<translation id="8124758083429256800">Dine lister over gemte adgangskoder til Chrome og Chrome <ph name="ERROR_DESCRIPTION" /> flettes efter version 121. Herefter kan du udfylde alle dine gemte adgangskoder automatisk i begge apps.</translation>
 <translation id="8127542551745560481">Rediger startside</translation>
 <translation id="8130309322784422030">Dine gemte loginoplysninger kan være forældede</translation>
 <translation id="813082847718468539">Se websiteoplysninger</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
index 3d334b6..26c2604 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Zum Maximieren tippen</translation>
 <translation id="1289059016768036948">Du wirst möglicherweise aufgefordert, dich in deinem Google-Konto anzumelden</translation>
 <translation id="1291207594882862231">Cache leeren sowie Verlauf, Cookies und andere Daten löschen</translation>
-<translation id="1293898515599432175">Deine Passwörter werden aus dem Google Passwortmanager für Chrome <ph name="CHROME_CHANNEL" /> gelöscht. Du behältst die soeben heruntergeladene Passwortdatei.</translation>
 <translation id="129553762522093515">Kürzlich geschlossen</translation>
 <translation id="1298077576058087471">Bis zu 60 % Daten sparen und die Nachrichten von heute lesen</translation>
 <translation id="1303339473099049190">Dieses Passwort wurde nicht gefunden. Überprüfe die Schreibweise und versuche es noch einmal.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> teilt zum Fortfahren deinen Namen, deine E-Mail-Adresse und dein Profilbild mit dieser Website.</translation>
 <translation id="5409881200985013443"><ph name="ONE_TIME_CODE" /> an <ph name="CLIENT_NAME" /> senden?</translation>
 <translation id="5414836363063783498">Überprüfung...</translation>
-<translation id="542190472198460451">Alle Passwörter werden auf dein Gerät heruntergeladen und aus Chrome <ph name="CHROME_CHANNEL" /> entfernt</translation>
 <translation id="5423934151118863508">Hier werden deine am meisten aufgerufenen Seiten angezeigt.</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB verfügbar</translation>
 <translation id="543338862236136125">Passwort ändern</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Helfen, die Funktionen und die Leistung von Chrome zu verbessern</translation>
 <translation id="8110087112193408731">Deine Chrome-Aktivitäten in Digital Wellbeing anzeigen?</translation>
 <translation id="8118117428362942925">Wenn du Hilfe brauchst, sprich mit deinen Eltern (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Deine Listen mit gespeicherten Passwörtern für Chrome und Chrome <ph name="ERROR_DESCRIPTION" /> werden nach Version 121 zusammengeführt. Du kannst alle deine gespeicherten Passwörter in beiden Apps automatisch ausfüllen lassen.</translation>
 <translation id="8127542551745560481">Startseite bearbeiten</translation>
 <translation id="8130309322784422030">Deine gespeicherten Anmeldedaten sind möglicherweise veraltet</translation>
 <translation id="813082847718468539">Website-Informationen anzeigen</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
index c20f0dd..f67ae92 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Πατήστε για ανάπτυξη</translation>
 <translation id="1289059016768036948">Μπορεί να σας ζητηθεί να συνδεθείτε στον Λογαριασμό σας Google</translation>
 <translation id="1291207594882862231">Διαγραφή ιστορικού, cookie, δεδομένων ιστότοπου, κρυφής μνήμης…</translation>
-<translation id="1293898515599432175">Οι κωδικοί πρόσβασης θα διαγραφούν από τον Διαχειριστή κωδικών πρόσβασης Google για το Chrome <ph name="CHROME_CHANNEL" />. Το αρχείο κωδικών πρόσβασης που μόλις κατεβάσατε θα διατηρηθεί.</translation>
 <translation id="129553762522093515">Έκλεισαν πρόσφατα</translation>
 <translation id="1298077576058087471">Εξοικονομήστε έως και το 60% των δεδομένων, διαβάστε τις σημερινές ειδήσεις</translation>
 <translation id="1303339473099049190">Δεν είναι δυνατή η εύρεση αυτού του κωδικού πρόσβασης. Ελέγξτε για τυχόν ορθογραφικά λάθη και δοκιμάστε ξανά.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Για να συνεχίσετε, το <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> θα κοινοποιήσει το όνομα, τη διεύθυνση ηλεκτρονικού ταχυδρομείου και τη φωτογραφία προφίλ σας σε αυτόν τον ιστότοπο.</translation>
 <translation id="5409881200985013443">Υποβολή <ph name="ONE_TIME_CODE" /> σε <ph name="CLIENT_NAME" />;</translation>
 <translation id="5414836363063783498">Γίνεται επαλήθευση…</translation>
-<translation id="542190472198460451">Θα γίνει λήψη όλων των κωδικών πρόσβασης στη συσκευή σας και θα καταργηθούν από το Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Οι πιο δημοφιλείς σελίδες σας θα εμφανίζονται εδώ</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB διαθέσιμα</translation>
 <translation id="543338862236136125">Επεξεργασία κωδικού πρόσβασης</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Συμβάλετε στη βελτίωση των λειτουργιών και της απόδοσης του Chrome OS</translation>
 <translation id="8110087112193408731">Να εμφανίζεται στο Digital Wellbeing η δραστηριότητά σας στο Chrome;</translation>
 <translation id="8118117428362942925">Αν χρειάζεσαι βοήθεια, ρώτησε τον γονέα σου (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Οι λίστες με τους αποθηκευμένους κωδικούς πρόσβασης για το Chrome και το Chrome <ph name="ERROR_DESCRIPTION" /> θα συγχωνευτούν μετά την έκδοση 121. Θα μπορείτε να χρησιμοποιείτε την αυτόματη συμπλήρωση για όλους τους αποθηκευμένους κωδικούς πρόσβασης και στις δύο εφαρμογές.</translation>
 <translation id="8127542551745560481">Επεξεργασία αρχικής σελίδας</translation>
 <translation id="8130309322784422030">Οι αποθηκευμένες πληροφορίες σύνδεσης ενδέχεται να μην είναι ενημερωμένες</translation>
 <translation id="813082847718468539">Προβολή πληροφοριών τοποθεσίας</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
index c78733f5..d8e107cc 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Tap to expand</translation>
 <translation id="1289059016768036948">You’ll be asked to sign in to your Google Account</translation>
 <translation id="1291207594882862231">Clear history, cookies, site data, cache…</translation>
-<translation id="1293898515599432175">Your passwords will be deleted from Google Password Manager for Chrome <ph name="CHROME_CHANNEL" />. You will keep the passwords file you just downloaded.</translation>
 <translation id="129553762522093515">Recently closed</translation>
 <translation id="1298077576058087471">Save up to 60% data, read today's news</translation>
 <translation id="1303339473099049190">Can’t find that password. Check your spelling and try again.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">To continue, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> will share your name, email address and profile picture with this site.</translation>
 <translation id="5409881200985013443">Submit <ph name="ONE_TIME_CODE" /> on <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verifying…</translation>
-<translation id="542190472198460451">All passwords will be downloaded on your device and removed from Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Your most visited pages will appear here</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB available</translation>
 <translation id="543338862236136125">Edit password</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Help improve Chrome\u2019s features and performance</translation>
 <translation id="8110087112193408731">Show your Chrome activity in Digital Wellbeing?</translation>
 <translation id="8118117428362942925">If you need help, ask your parent (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Your lists of saved passwords for Chrome and Chrome <ph name="ERROR_DESCRIPTION" /> will merge after version 121. You’ll be able to autofill all your saved passwords on both apps.</translation>
 <translation id="8127542551745560481">Edit homepage</translation>
 <translation id="8130309322784422030">Your stored sign-in info might be out of date</translation>
 <translation id="813082847718468539">View site information</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
index 7ab41f1b..447cbee71 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Presiona para expandir</translation>
 <translation id="1289059016768036948">Se te pedirá que accedas a tu Cuenta de Google</translation>
 <translation id="1291207594882862231">Borra el historial, las cookies, los datos del sitio, la caché…</translation>
-<translation id="1293898515599432175">Tus contraseñas se borrarán del Administrador de contraseñas de Google para Chrome <ph name="CHROME_CHANNEL" />. Conservarás el archivo de contraseñas que acabas de descargar.</translation>
 <translation id="129553762522093515">Cerrado recientemente</translation>
 <translation id="1298077576058087471">Ahorra hasta un 60% de datos y lee las noticias de hoy</translation>
 <translation id="1303339473099049190">No se encontró esa contraseña. Revisa la ortografía y vuelve a intentarlo.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Para continuar, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> compartirá tu nombre, dirección de correo electrónico y foto de perfil con este sitio.</translation>
 <translation id="5409881200985013443">¿Deseas enviar <ph name="ONE_TIME_CODE" /> a <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verificando…</translation>
-<translation id="542190472198460451">Todas las contraseñas se descargarán en el dispositivo y se quitarán de Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Aquí aparecerán las páginas que visites con más frecuencia</translation>
 <translation id="5424588387303617268">GB disponibles: <ph name="GIGABYTES" /></translation>
 <translation id="543338862236136125">Editar contraseña</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Ayudar a mejorar las funciones y el rendimiento de Chrome</translation>
 <translation id="8110087112193408731">¿Quieres que se muestre tu actividad de Chrome en Bienestar digital?</translation>
 <translation id="8118117428362942925">Si necesitas ayuda, pídele a tu madre o padre (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Tus listas de contraseñas guardadas para Chrome y Chrome <ph name="ERROR_DESCRIPTION" /> se combinarán después de la versión 121. Podrás autocompletar todas las contraseñas guardadas en ambas apps.</translation>
 <translation id="8127542551745560481">Editar la página principal</translation>
 <translation id="8130309322784422030">Es posible que la información de acceso almacenada esté desactualizada</translation>
 <translation id="813082847718468539">Consulta la información del sitio</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
index 9e6c2b2..eb73670 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Toca para ampliar</translation>
 <translation id="1289059016768036948">Se te pedirá que inicies sesión en tu cuenta de Google</translation>
 <translation id="1291207594882862231">Borra el historial, las cookies, los datos de sitios, la caché…</translation>
-<translation id="1293898515599432175">Tus contraseñas se eliminarán del Gestor de contraseñas de Google de Chrome <ph name="CHROME_CHANNEL" />. Conservarás el archivo de contraseñas que acabas de descargar.</translation>
 <translation id="129553762522093515">Cerrado recientemente</translation>
 <translation id="1298077576058087471">Ahorra hasta un 60 % de datos mientras lees las noticias</translation>
 <translation id="1303339473099049190">No se ha podido encontrar la contraseña. Comprueba que esté bien escrita y vuelve a intentarlo.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Para continuar, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> compartirá tu nombre, dirección de correo e imagen de perfil con este sitio.</translation>
 <translation id="5409881200985013443">¿Enviar el código <ph name="ONE_TIME_CODE" /> a <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verificando…</translation>
-<translation id="542190472198460451">Todas las contraseñas se descargarán en tu dispositivo y se eliminarán de Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Aquí aparecerán las páginas a las que accedes con más frecuencia</translation>
 <translation id="5424588387303617268">Disponibilidad: <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Cambiar contraseña</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Ayudar a mejorar las funciones y el rendimiento de Chrome</translation>
 <translation id="8110087112193408731">¿Mostrar tu actividad de Chrome en Bienestar digital?</translation>
 <translation id="8118117428362942925">Si necesitas ayuda, pídesela a tu padre o madre (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Tus listas de contraseñas guardadas en Chrome y Chrome <ph name="ERROR_DESCRIPTION" /> se combinarán a partir de la versión 121. Podrás autocompletar todas tus contraseñas guardadas en ambas aplicaciones.</translation>
 <translation id="8127542551745560481">Editar página principal</translation>
 <translation id="8130309322784422030">Es posible que la información de inicio de sesión almacenada esté obsoleta</translation>
 <translation id="813082847718468539">Ver información del sitio</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
index ff6c579d..2322a828 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Laiendamiseks puudutage</translation>
 <translation id="1289059016768036948">Teil võidakse paluda oma Google'i kontole sisse logida</translation>
 <translation id="1291207594882862231">Ajaloo, küpsiste, saidiandmete, vahemälu kustutamine …</translation>
-<translation id="1293898515599432175">Teie paroolid kustutatakse Chrome <ph name="CHROME_CHANNEL" /> puhul Google'i paroolihaldurist. Äsja alla laaditud paroolide fail jääb teile alles.</translation>
 <translation id="129553762522093515">Viimati suletud</translation>
 <translation id="1298077576058087471">Säästke kuni 60% andmemahtu, lugege tänaseid uudiseid</translation>
 <translation id="1303339473099049190">Seda parooli ei leita. Kontrollige õigekirja ja proovige uuesti.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Jätkamiseks jagab <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> selle saidiga teie nime, e-posti aadressi ja profiilipilti.</translation>
 <translation id="5409881200985013443">Kas soovite saata koodi <ph name="ONE_TIME_CODE" /> seadmes <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Kinnitamine ...</translation>
-<translation id="542190472198460451">Kõik paroolid laaditakse alla teie seadmesse ja eemaldatakse Chrome'ist <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Teie enim külastatud lehed ilmuvad siin</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB saadaval</translation>
 <translation id="543338862236136125">Muuda parooli</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Aidake täiustada Chrome'i funktsioone ja toimivust</translation>
 <translation id="8110087112193408731">Kas kuvada teie Chrome'i tegevused teenuses Digitaalne heaolu?</translation>
 <translation id="8118117428362942925">Kui vajad abi, küsi vanemalt (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Pärast versiooni 121 liidetakse Chrome’i ja väljalaske Chrome <ph name="ERROR_DESCRIPTION" /> salvestatud paroolide loend. Edaspidi saate kõiki salvestatud paroole mõlemas rakenduses automaattäita.</translation>
 <translation id="8127542551745560481">Avalehe muutmine</translation>
 <translation id="8130309322784422030">Salvestatud sisselogimisteave võib olla aegunud</translation>
 <translation id="813082847718468539">Kuvab saidi teabe</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
index 3bd3f23..d6f8a15e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Sakatu zabaltzeko</translation>
 <translation id="1289059016768036948">Google-ko kontuan saioa hasteko eskatuko zaizu</translation>
 <translation id="1291207594882862231">Garbitu historia, cookieak, webguneetako datuak, cachea…</translation>
-<translation id="1293898515599432175">Pasahitzak ezabatu egingo dira Chrome <ph name="CHROME_CHANNEL" /> arakatzaileko Google-ren Pasahitz-kudeatzailea zerbitzutik. Gorde deskargatu berri duzun pasahitzen fitxategia zeuretzat.</translation>
 <translation id="129553762522093515">Itxitako azkenak</translation>
 <translation id="1298077576058087471">Aurreztu datuen % 60raino; irakurri gaurko albisteak</translation>
 <translation id="1303339473099049190">Ezin da aurkitu pasahitza. Egiaztatu ondo idatzi duzula eta saiatu berriro.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Aurrera egiteko, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> hornitzaileak zure izena, helbide elektronikoa eta profileko argazkia partekatuko ditu webgune honekin.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> bezeroari bidali nahi diozu <ph name="ONE_TIME_CODE" />?</translation>
 <translation id="5414836363063783498">Egiaztatzen…</translation>
-<translation id="542190472198460451">Pasahitz guztiak gailuan deskargatuko dira, eta Chrome <ph name="CHROME_CHANNEL" /> zerbitzutik kenduko</translation>
 <translation id="5423934151118863508">Gehien erabiltzen dituzun orriak agertuko dira hemen</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB daude erabilgarri</translation>
 <translation id="543338862236136125">Editatu pasahitza</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Lagundu Chrome-ren eginbideak eta errendimendua hobetzen</translation>
 <translation id="8110087112193408731">Chrome-ko jarduerak Ongizate digitala programan agertzea nahi duzu?</translation>
 <translation id="8118117428362942925">Laguntza behar baduzu, eskatu gurasoari (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">121. bertsiotik aurrera, Chrome eta Chrome <ph name="ERROR_DESCRIPTION" /> aplikazioetan gordetako pasahitzak bateratu egingo dira. Gorde dituzun pasahitz guztiak bi aplikazioetan bete ahal izango dituzu automatikoki.</translation>
 <translation id="8127542551745560481">Editatu hasierako pantaila</translation>
 <translation id="8130309322784422030">Baliteke saioa hasteko gordeta daukazun informazioa zaharkituta egotea</translation>
 <translation id="813082847718468539">Ikusi webgunearen informazioa</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
index d8a2059..8bdc6729 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">برای بزرگ کردن ضربه بزنید</translation>
 <translation id="1289059016768036948">‏از شما خواسته می‌شود به سیستم «حساب Google» خود وارد شوید</translation>
 <translation id="1291207594882862231">پاک کردن سابقه، کوکی‌ها، داده‌های سایت، حافظه پنهان…</translation>
-<translation id="1293898515599432175">‏گذرواژه‌هایتان از «مدیر گذرواژه Google» برای Chrome <ph name="CHROME_CHANNEL" /> حذف خواهد شد. فایل گذرواژه‌هایی را که اکنون بارگیری کردید نزد خود نگه دارید.</translation>
 <translation id="129553762522093515">اخیراً بسته‌شده</translation>
 <translation id="1298077576058087471">تا ۶۰٪ در مصرف داده صرفه‌جویی کنید، اخبار امروز را بخوانید</translation>
 <translation id="1303339473099049190">گذرواژه پیدا نشد. املای آن را بررسی و دوباره امتحان کنید.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">برای ادامه دادن، <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> نام، نشانی ایمیل، و عکس نمایه‌تان را با این سایت هم‌رسانی خواهد کرد.</translation>
 <translation id="5409881200985013443"><ph name="ONE_TIME_CODE" /> در <ph name="CLIENT_NAME" /> ارسال شود؟</translation>
 <translation id="5414836363063783498">در حال تأیید کردن…</translation>
-<translation id="542190472198460451">‏همه گذرواژه‌ها در دستگاهتان بارگیری خواهند شد و از <ph name="CHROME_CHANNEL" /> Chrome برداشته می‌شوند</translation>
 <translation id="5423934151118863508">صفحاتی که بیشترین بازدید را از آنها داشته‌اید در اینجا نمایان می‌شوند</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> گیگابایت در دسترس</translation>
 <translation id="543338862236136125">ویرایش گذرواژه</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">‏کمک به بهبود عملکرد و ویژگی‌های Chrome</translation>
 <translation id="8110087112193408731">‏فعالیت Chrome شما در «آسایش دیجیتالی» نشان داده شود؟</translation>
 <translation id="8118117428362942925">اگر به راهنمایی نیاز داشتید، از ولی خود کمک بگیرید (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">‏فهرست‌های گذرواژه‌های ذخیره‌شده شما برای Chrome و Chrome <ph name="ERROR_DESCRIPTION" /> بعداز نسخه ۱۲۱ ادغام خواهد شد. می‌توانید همه گذرواژه‌های ذخیره‌شده خود را در هردو برنامه به‌طور خودکار تکمیل کنید.</translation>
 <translation id="8127542551745560481">ویرایش صفحه اصلی</translation>
 <translation id="8130309322784422030">ممکن است اطلاعات ذخیره‌شده ورود به سیستم قدیمی باشد</translation>
 <translation id="813082847718468539">مشاهدهٔ اطلاعات سایت</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 0e27ca4..bdce407 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Laajenna napauttamalla.</translation>
 <translation id="1289059016768036948">Sinua pyydetään kirjautumaan Google-tilillesi</translation>
 <translation id="1291207594882862231">Tyhjennä historia, evästeet, sivustojen tiedot, välimuisti ja niin edelleen.</translation>
-<translation id="1293898515599432175">Salasanasi poistetaan Google Salasanoista Chromen kanavalla <ph name="CHROME_CHANNEL" />. Säilytät juuri lataamasi salasanatiedoston.</translation>
 <translation id="129553762522093515">Hiljattain suljetut välilehdet</translation>
 <translation id="1298077576058087471">Käytä jopa 60 % vähemmän dataa, lue päivän uutiset</translation>
 <translation id="1303339473099049190">Tätä salasanaa ei löydy. Tarkista oikeinkirjoitus ja yritä uudelleen.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Jos jatkat, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> jakaa nimesi, sähköpostiosoitteesi, osoitteesi ja profiilikuvasi tälle sivustolle.</translation>
 <translation id="5409881200985013443">Lähetetäänkö <ph name="ONE_TIME_CODE" /> (<ph name="CLIENT_NAME" />)?</translation>
 <translation id="5414836363063783498">Vahvistetaan…</translation>
-<translation id="542190472198460451">Kaikki salasanat ladataan laitteellesi ja poistetaan täältä: Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Käydyimmät sivusi näkyvät täällä</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> Gt käytettävissä</translation>
 <translation id="543338862236136125">Muokkaa salasanaa</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Auta parantamaan Chromen ominaisuuksia ja suorituskykyä</translation>
 <translation id="8110087112193408731">Näytetäänkö Chrome-toimintasi Digitaalisessa hyvinvoinnissa?</translation>
 <translation id="8118117428362942925">Kysy tarvittaessa vanhemmaltasi (<ph name="PARENT_NAME" />) apua</translation>
-<translation id="8124758083429256800">Chrome- ja Chrome <ph name="ERROR_DESCRIPTION" /> ‐sovelluksissa tallennetut salasanat yhdistetään version 121 jälkeen. Voit täyttää tallennetut salasanat automaattisesti molemmissa sovelluksissa.</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>
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 0d079e2..fe31501 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">I-tap upang palawakin</translation>
 <translation id="1289059016768036948">Hihilingin sa iyong mag-sign in sa Google Account mo.</translation>
 <translation id="1291207594882862231">I-clear ang history, cookies, site data, cache…</translation>
-<translation id="1293898515599432175">Made-delete ang iyong mga password mula sa Google Password Manager para sa Chrome <ph name="CHROME_CHANNEL" />. Maitatabi mo ang file ng mga password na kaka-download mo lang.</translation>
 <translation id="129553762522093515">Kamakailang isinara</translation>
 <translation id="1298077576058087471">Magtipid ng hanggang 60% data, basahin ang balita ngayong araw</translation>
 <translation id="1303339473099049190">Hindi mahanap ang password na iyon. Tingnan ang iyong spelling at subukan ulit.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Para magpatuloy, ibabahagi ng <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ang iyong pangalan, email address, at larawan sa profile sa site na ito.</translation>
 <translation id="5409881200985013443">Isumite ang <ph name="ONE_TIME_CODE" /> sa <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Vine-verify…</translation>
-<translation id="542190472198460451">Mada-download ang lahat ng password sa iyong device at maaalis sa Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Lalabas dito ang mga page na madalas mong bisitahin</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB ang available</translation>
 <translation id="543338862236136125">I-edit ang password</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">Para simulan ang pag-sync, i-verify na ikaw ito</translation>
 <translation id="6364438453358674297">Alisin ang suhestyon mula sa history?</translation>
 <translation id="6380100320871303656">Mas madalas na nagpi-preload ng mga page na sa palagay ng Chrome ay malamang mong bisitahin. Posibleng magresulta sa mas malakas na paggamit ng data ang setting na ito.</translation>
+<translation id="6382848304055775421">Ine-export</translation>
 <translation id="6391355955030242704">Para ma-sync ang iyong impormasyon sa Chrome at mapanatiling secure ang data mo sa kotse, dapat kang gumawa ng lock ng profile sa iyong mga setting ng seguridad. Gagamit ka ng code o password sa tuwing papasok ka sa kotse.</translation>
 <translation id="6394791151443660613">Hanapin: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">LINK</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">Lahat ng oras</translation>
 <translation id="6987047470128880212">Hindi available ang Incognito sa device na ito.</translation>
 <translation id="6995899638241819463">Balaan ka kung ma-expose ang mga password sa isang paglabag sa data</translation>
+<translation id="6996145122199359148">I-download ang page na ito</translation>
 <translation id="7020741890149022655">Idagdag sa reading list <ph name="BEGIN_NEW" />Bago<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">Buksan sa browser</translation>
 <translation id="7027549951530753705">Na-restore noong <ph name="ITEM_TITLE" /></translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Tumulong na pahusayin ang mga feature at performance ng Chrome</translation>
 <translation id="8110087112193408731">Ipakita sa Digital Wellness ang aktibidad mo sa Chrome?</translation>
 <translation id="8118117428362942925">Kung kailangan mo ng tulong, magpatulong sa iyong magulang (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Magme-merge ang iyong mga listahan ng mga naka-save na password para sa Chrome at Chrome <ph name="ERROR_DESCRIPTION" /> pagkatapos ng bersyon 121. Magagawa mong i-autofill ang lahat ng iyong naka-save na password sa dalawang app.</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>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">Nakabukas nang kalahati ang history ng pag-navigate</translation>
 <translation id="9190276265094487094">Makikita mo ang iyong history sa lahat ng naka-sync mong device, para maipagpatuloy mo ang iyong ginagawa</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{Nagsuri 1 minuto ang nakalipas}one{Nagsuri # minuto ang nakalipas}other{Nagsuri # na minuto ang nakalipas}}</translation>
+<translation id="9204021776105550328">Dine-delete</translation>
 <translation id="9204836675896933765">1 file ang natitira</translation>
 <translation id="9205933215779845960">Hindi makita ang page na iyon. Suriin ang iyong spelling o subukang maghanap sa <ph name="SEARCH_ENGINE" />.</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
index dccebe3..e66317e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Toucher pour développer</translation>
 <translation id="1289059016768036948">Vous devrez vous connecter à votre compte Google</translation>
 <translation id="1291207594882862231">Effacer l'historique, les témoins, les données de site, le cache…</translation>
-<translation id="1293898515599432175">Vos mots de passe seront supprimés du gestionnaire de mots de passe Google pour Chrome <ph name="CHROME_CHANNEL" />. Vous conserverez le fichier de mots de passe que vous venez de télécharger.</translation>
 <translation id="129553762522093515">Récemment fermés</translation>
 <translation id="1298077576058087471">Économisez jusqu'à 60 % de données, découvrez les actualités du jour</translation>
 <translation id="1303339473099049190">Ce mot de passe est introuvable. Vérifiez l'orthographe et réessayez.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Pour continuer, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> partagera votre nom, votre adresse de courriel et votre photo de profil avec ce site.</translation>
 <translation id="5409881200985013443">Envoyez <ph name="ONE_TIME_CODE" /> à <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Vérification...</translation>
-<translation id="542190472198460451">Tous les mots de passe seront téléchargés sur votre appareil et supprimés de Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Les pages les plus consultées s'affichent ici</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> Go disponible(s)</translation>
 <translation id="543338862236136125">Modifier le mot de passe</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Contribuer à améliorer les fonctionnalités et les performances de Chrome</translation>
 <translation id="8110087112193408731">Afficher votre activité Chrome dans Bien-être numérique?</translation>
 <translation id="8118117428362942925">Si tu as besoin d'aide, demande à ton parent (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Vos listes de mots de passe enregistrés pour Chrome et Chrome <ph name="ERROR_DESCRIPTION" /> fusionneront après la version 121. Vous pourrez remplir automatiquement tous vos mots de passe enregistrés sur les deux applications.</translation>
 <translation id="8127542551745560481">Modifier la page d'accueil</translation>
 <translation id="8130309322784422030">Vos données de connexion enregistrées peuvent être obsolètes</translation>
 <translation id="813082847718468539">Afficher l'information sur le site</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
index 382bab7..54848a4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Appuyer pour développer</translation>
 <translation id="1289059016768036948">Vous serez invité à vous connecter à votre compte Google</translation>
 <translation id="1291207594882862231">Effacez l'historique, vider le cache, supprimer les cookies et les données des sites…</translation>
-<translation id="1293898515599432175">Vos mots de passe seront supprimés du Gestionnaire de mots de passe de Google pour Chrome <ph name="CHROME_CHANNEL" />. Vous conserverez le fichier de mots de passe que vous venez de télécharger.</translation>
 <translation id="129553762522093515">Récemment fermés</translation>
 <translation id="1298077576058087471">Économisez jusqu'à 60 % de données mobiles, découvrez les actualités du jour</translation>
 <translation id="1303339473099049190">Ce mot de passe est introuvable. Vérifiez l'orthographe, puis réessayez.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Pour continuer, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> partagera avec ce site vos nom, adresse e-mail et photo de profil.</translation>
 <translation id="5409881200985013443">Envoyer <ph name="ONE_TIME_CODE" /> sur <ph name="CLIENT_NAME" /> ?</translation>
 <translation id="5414836363063783498">Validation…</translation>
-<translation id="542190472198460451">Tous les mots de passe seront téléchargés sur votre appareil et supprimés de Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Les pages les plus consultées s'affichent ici.</translation>
 <translation id="5424588387303617268">Espace disponible : <ph name="GIGABYTES" /> Go</translation>
 <translation id="543338862236136125">Modifier le mot de passe</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Contribuer à l'amélioration des fonctionnalités et des performances de Chrome</translation>
 <translation id="8110087112193408731">Afficher votre activité Chrome dans Bien-être numérique ?</translation>
 <translation id="8118117428362942925">Si tu as besoin d'aide, demande à ton parent (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Vos listes de mots de passe enregistrés pour Chrome et Chrome <ph name="ERROR_DESCRIPTION" /> seront fusionnées après la version 121. Vous pourrez saisir automatiquement tous vos mots de passe enregistrés dans les deux applis.</translation>
 <translation id="8127542551745560481">Modifier la page d'accueil</translation>
 <translation id="8130309322784422030">Les infos de connexion enregistrées sont peut-être obsolètes</translation>
 <translation id="813082847718468539">Afficher des informations à propos du site</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
index bab9d82..a81b560 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Toca para despregar</translation>
 <translation id="1289059016768036948">Pediráseche que inicies sesión na túa Conta de Google</translation>
 <translation id="1291207594882862231">Borrar o historial, as cookies, os datos dos sitios, a memoria caché…</translation>
-<translation id="1293898515599432175">Os contrasinais eliminaranse do xestor de contrasinais de Google para Chrome <ph name="CHROME_CHANNEL" />. Manterás o ficheiro de contrasinais que acabas de descargar.</translation>
 <translation id="129553762522093515">Pechado recentemente</translation>
 <translation id="1298077576058087471">Le as noticias do día e aforra ata un 60 % de datos</translation>
 <translation id="1303339473099049190">Non se puido atopar o contrasinal. Comproba a ortografía e téntao de novo.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Para continuar, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> compartirá o teu nome, enderezo de correo electrónico e imaxe do perfil con este sitio.</translation>
 <translation id="5409881200985013443">Queres enviar o código <ph name="ONE_TIME_CODE" /> a <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verificando...</translation>
-<translation id="542190472198460451">Descargaranse todos os contrasinais que haxa no teu dispositivo e quitaranse de Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">As túas páxinas máis visitadas aparecerán aquí</translation>
 <translation id="5424588387303617268">Espazo dispoñible: <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Editar contrasinal</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Axudar a mellorar o rendemento e as funcións de Chrome</translation>
 <translation id="8110087112193408731">Queres mostrar a túa actividade de Chrome en Benestar dixital?</translation>
 <translation id="8118117428362942925">Se necesitas axuda, pídella ao teu pai ou á túa nai (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">As túas listas de contrasinais gardados de Chrome e Chrome <ph name="ERROR_DESCRIPTION" /> combinaranse despois da versión 121. Poderás autocompletar os contrasinais gardados nas dúas aplicacións.</translation>
 <translation id="8127542551745560481">Editar páxina de inicio</translation>
 <translation id="8130309322784422030">A información de inicio de sesión que gardaches podería estar desactualizada</translation>
 <translation id="813082847718468539">Consulta a información do sitio</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
index aac7a2c..99ed7efa 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">વિસ્તૃત કરવા માટે ટૅપ કરો</translation>
 <translation id="1289059016768036948">તમને તમારા Google એકાઉન્ટમાં સાઇન ઇન કરવાનું કહેવામાં આવશે</translation>
 <translation id="1291207594882862231">ઇતિહાસ, કુકી, સાઇટ ડેટા, કૅશ સાફ કરો…</translation>
-<translation id="1293898515599432175">તમારા પાસવર્ડ Chrome <ph name="CHROME_CHANNEL" />ના Google Password Managerમાંથી ડિલીટ કરવામાં આવશે. તમે હમણાં જ ડાઉનલોડ કરેલી પાસવર્ડ ફાઇલ તમે સાચવી રાખશો.</translation>
 <translation id="129553762522093515">તાજેતરમાં બંધ કરેલા</translation>
 <translation id="1298077576058087471">60% જેટલો ડેટા બચાવો, આજના સમાચાર વાંચો</translation>
 <translation id="1303339473099049190">તે પાસવર્ડ શોધી શકતા નથી. તમારી જોડણી ચેક કરો અને ફરીથી પ્રયાસ કરો.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">આગળ વધવા માટે, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> તમારું નામ, ઇમેઇલ ઍડ્રેસ અને પ્રોફાઇલ ફોટો આ સાઇટ સાથે શેર કરશે.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> પર <ph name="ONE_TIME_CODE" /> સબમિટ કરીએ?</translation>
 <translation id="5414836363063783498">ચકાસી રહ્યું છે...</translation>
-<translation id="542190472198460451">બધા પાસવર્ડ તમારા ડિવાઇસ પર ડાઉનલોડ કરવામાં આવશે અને Chrome <ph name="CHROME_CHANNEL" />માંથી કાઢી નાખવામાં આવશે</translation>
 <translation id="5423934151118863508">તમારા સૌથી વધુ મુલાકાત લીધેલા પેજ અહીં દેખાશે</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB ઉપલબ્ધ</translation>
 <translation id="543338862236136125">પાસવર્ડમાં ફેરફાર કરો</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chromeની સુવિધાઓ અને કાર્યપ્રદર્શનને સુધારવામાં સહાય કરો</translation>
 <translation id="8110087112193408731">શું તમારી Chromeની પ્રવૃત્તિ ડિજિટલ લાઇફસ્ટાઇલમાં બતાવીએ?</translation>
 <translation id="8118117428362942925">જો તમને સહાયની કોઈ જરૂર હોય, તો માતાપિતા (<ph name="PARENT_NAME" />)ને પૂછો</translation>
-<translation id="8124758083429256800">તમારા Chrome અને Chrome <ph name="ERROR_DESCRIPTION" /> માટે સાચવેલા પાસવર્ડની સૂચિ વર્ઝન 121 પછી મર્જ થઈ જશે. તમે બન્ને ઍપ પર તમારા બધા સાચવેલા પાસવર્ડ ઑટોમૅટિક રીતે ભરી શકશો.</translation>
 <translation id="8127542551745560481">હોમપેજમાં ફેરફાર કરો</translation>
 <translation id="8130309322784422030">તમારી સ્ટોર કરેલી સાઇન ઇનની માહિતી જૂની હોઈ શકે છે</translation>
 <translation id="813082847718468539">સ્થાન માહિતી જુઓ</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 7871061..4f31f6c 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">पूरा खोलने के लिए टैप करें</translation>
 <translation id="1289059016768036948">आपसे अपने Google खाते में साइन इन करने के लिए कहा जाएगा</translation>
 <translation id="1291207594882862231">इतिहास, कुकी, साइट डेटा, कैश साफ़ करें…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" /> के लिए, Google Password Manager से आपके पासवर्ड मिटा दिए जाएंगे. आपने अभी जो पासवर्ड फ़ाइल डाउनलोड की है वह सेव रहेगी.</translation>
 <translation id="129553762522093515">हाल ही में बंद किए गए</translation>
 <translation id="1298077576058087471">60% तक डेटा बचाएं, आज की खबरें पढ़ें</translation>
 <translation id="1303339473099049190">वह पासवर्ड नहीं मिला. अपनी स्पेलिंग की जांच करें और फिर से कोशिश करें.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">आगे बढ़ने के लिए, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> इस साइट के साथ आपका नाम, ईमेल पता, और प्रोफ़ाइल फ़ोटो शेयर करेगा.</translation>
 <translation id="5409881200985013443">क्या आप <ph name="CLIENT_NAME" /> पर <ph name="ONE_TIME_CODE" /> सबमिट करना चाहते हैं?</translation>
 <translation id="5414836363063783498">सत्यापन हो रहा है...</translation>
-<translation id="542190472198460451">सभी पासवर्ड आपके डिवाइस पर डाउनलोड किए जाएंगे और उन्हें Chrome <ph name="CHROME_CHANNEL" /> से हटा दिया जाएगा</translation>
 <translation id="5423934151118863508">  सबसे ज़्यादा देखे गए पेज यहां दिखाई देंगे</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> जीबी उपलब्ध है</translation>
 <translation id="543338862236136125">पासवर्ड में बदलाव करें</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chrome की सुविधाओं और परफ़ॉर्मेंस को बेहतर बनाने में मदद करें</translation>
 <translation id="8110087112193408731">'डिजिटल वेलबीइंग' में अपनी Chrome गतिविधि दिखाना चाहते हैं?</translation>
 <translation id="8118117428362942925">अगर आपको मदद चाहिए, तो अपने माता-पिता (<ph name="PARENT_NAME" />) से पूछें</translation>
-<translation id="8124758083429256800">Chrome और Chrome <ph name="ERROR_DESCRIPTION" /> पर सेव किए गए पासवर्ड की सूचियां, वर्शन 121 के बाद मर्ज हो जाएंगी. आपके पास दोनों ऐप्लिकेशन पर, सेव किए गए अपने सभी पासवर्ड ऑटोमैटिक भरने की सुविधा होगी.</translation>
 <translation id="8127542551745560481">होम पेज में बदलाव करें</translation>
 <translation id="8130309322784422030">हो सकता है कि आपकी सेव की गई, साइन इन से जुड़ी जानकारी पुरानी हो</translation>
 <translation id="813082847718468539">साइट जानकारी देखें</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
index 3d021e8..19df512 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Dodirnite za proširivanje</translation>
 <translation id="1289059016768036948">Od vas će se tražiti da se prijavite na Google račun.</translation>
 <translation id="1291207594882862231">Brisanje povijesti, kolačića, podataka web-lokacija, predmemorije...</translation>
-<translation id="1293898515599432175">Vaše će se zaporke izbrisati s Google upravitelja zaporki za Chrome <ph name="CHROME_CHANNEL" />. Zadržat ćete datoteku sa zaporkama koju ste upravo preuzeli.</translation>
 <translation id="129553762522093515">Nedavno zatvoreno</translation>
 <translation id="1298077576058087471">Uštedite do 60% podataka, pročitajte današnje vijesti</translation>
 <translation id="1303339473099049190">Ta zaporka nije pronađena. Provjerite jeste li je točno napisali pa pokušajte ponovno.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Da biste nastavili, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> podijelit će vaše ime, e-adresu i profilnu sliku s ovom web-lokacijom.</translation>
 <translation id="5409881200985013443">Poslati <ph name="ONE_TIME_CODE" /> na klijentu <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Potvrđivanje…</translation>
-<translation id="542190472198460451">Sve zaporke preuzet će se na vašem uređaju i ukloniti iz Chromea <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Najposjećenije stranice prikazivat će se ovdje</translation>
 <translation id="5424588387303617268">Dostupno: <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Uredite zaporku</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">Za pokretanje sinkronizacije potvrdite da ste to vi.</translation>
 <translation id="6364438453358674297">Želite li ukloniti prijedlog iz povijesti?</translation>
 <translation id="6380100320871303656">Češće predučitava stranice za koje Chrome misli da ćete ih vjerojatno posjetiti. Ta postavka može rezultirati većom potrošnjom podatkovnog prometa.</translation>
+<translation id="6382848304055775421">Izvoz</translation>
 <translation id="6391355955030242704">Da biste sinkronizirali podatke u Chromeu i zaštitili svoje podatke u automobilu, u sigurnosnim postavkama morate izraditi zaključavanje profila. Kôd ili zaporku upotrebljavat ćete svaki put kad uđete u automobil.</translation>
 <translation id="6394791151443660613">Pretraživanje: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">VEZA</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">Cijelo vrijeme</translation>
 <translation id="6987047470128880212">Anonimni način nije dostupan na ovom uređaju</translation>
 <translation id="6995899638241819463">Upozori ako su zaporke ugrožene zbog povrede podataka</translation>
+<translation id="6996145122199359148">Preuzmite ovu stranicu</translation>
 <translation id="7020741890149022655">Dodaj na popis za čitanje <ph name="BEGIN_NEW" />Novo<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">Otvori u pregledniku</translation>
 <translation id="7027549951530753705">Vraćeno: <ph name="ITEM_TITLE" /></translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Pomozite poboljšati Chromeove značajke i izvedbu</translation>
 <translation id="8110087112193408731">Želite li da se vaša aktivnost u Chromeu prikazuje u Digitalnoj ravnoteži?</translation>
 <translation id="8118117428362942925">Ako ti je potrebna pomoć, obrati se roditelju (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Vaši popisi spremljenih zaporki za Chrome i Chrome <ph name="ERROR_DESCRIPTION" /> spojit će se nakon verzije 121. Moći ćete automatski popuniti sve spremljene zaporke u obje aplikacije.</translation>
 <translation id="8127542551745560481">Uređivanje početne stranice</translation>
 <translation id="8130309322784422030">Pohranjeni podaci o prijavi možda su zastarjeli</translation>
 <translation id="813082847718468539">Prikaz informacija o web-mjestu</translation>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">Povijest navigacije je poluotvorena</translation>
 <translation id="9190276265094487094">Vaša će povijest biti dostupna na svim vašim sinkroniziranim uređajima kako biste mogli nastaviti s onim što radite</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{Provjera je izvršena prije 1 minute}one{Provjera je izvršena prije # minute}few{Provjera je izvršena prije # minute}other{Provjera je izvršena prije # minuta}}</translation>
+<translation id="9204021776105550328">Brisanje</translation>
 <translation id="9204836675896933765">Preostala je 1 datoteka</translation>
 <translation id="9205933215779845960">Nije moguće pronaći stranicu. Provjerite jeste li točno napisali ili pretražite na tražilici <ph name="SEARCH_ENGINE" />.</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
index ed54f5a..3292b5f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Koppintson a kibontáshoz</translation>
 <translation id="1289059016768036948">A rendszer arra kéri majd, hogy jelentkezzen be a Google-fiókjába</translation>
 <translation id="1291207594882862231">Előzmények, cookie-k, webhelyadatok és a gyorsítótár törlése…</translation>
-<translation id="1293898515599432175">Jelszavai törlődnek a Chrome <ph name="CHROME_CHANNEL" /> verziójával használt Google Jelszókezelőből. A most letöltött jelszófájl nem törlődik.</translation>
 <translation id="129553762522093515">Mostanában bezárt</translation>
 <translation id="1298077576058087471">Csökkentse akár 60%-kal adatforgalmát, és olvassa el a mai híreket</translation>
 <translation id="1303339473099049190">Ez a jelszó nem található. Ellenőrizze, hogy jól írta-e be.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">A folytatáshoz a(z) <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> megosztja az Ön nevét, e-mail-címét és profilképét ezzel a webhellyel.</translation>
 <translation id="5409881200985013443">Elküldi a(z) <ph name="ONE_TIME_CODE" /> kódot a következő ügyfélre: <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Ellenőrzés...</translation>
-<translation id="542190472198460451">A rendszer az összes jelszót letölti az eszközre, és eltávolítja a Chrome <ph name="CHROME_CHANNEL" /> böngészőből</translation>
 <translation id="5423934151118863508">A leggyakrabban látogatott oldalak fognak itt megjelenni</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB szabad</translation>
 <translation id="543338862236136125">Jelszó módosítása</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">A kezdéshez igazolja személyazonosságát</translation>
 <translation id="6364438453358674297">Eltávolítja a javaslatot az előzményekből?</translation>
 <translation id="6380100320871303656">Gyakrabban tölti be előre azokat az oldalakat, amelyeket a böngésző szerint Ön valószínűleg felkeres. Ez a beállítás megnövekedett adathasználattal járhat.</translation>
+<translation id="6382848304055775421">Exportálás</translation>
 <translation id="6391355955030242704">Ha az autóban szinkronizálni szeretné Chrome-adatait, és meg szeretné őrizni a biztonságukat, profilzárolást kell létrehoznia a biztonsági beállításokban. Minden alkalommal meg kell adnia egy kódot vagy jelszót, amikor beül az autóba.</translation>
 <translation id="6394791151443660613">Keresés: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">LINK</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">Mindenkori</translation>
 <translation id="6987047470128880212">Az inkognitó nem használható ezen az eszközön.</translation>
 <translation id="6995899638241819463">Figyelmeztetés, ha jelszavai adatvédelmi incidens során nyilvánosságra kerülnek</translation>
+<translation id="6996145122199359148">Az oldal letöltése</translation>
 <translation id="7020741890149022655">Felvétel olvasólistára <ph name="BEGIN_NEW" />Új<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">Megnyitás böngészőben</translation>
 <translation id="7027549951530753705">Visszaállítás dátuma: <ph name="ITEM_TITLE" /></translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Hozzájárulás a Chrome funkcióinak és teljesítményének javításához</translation>
 <translation id="8110087112193408731">Chrome-beli tevékenysége megjelenjen a digitális jóllét funkcióban?</translation>
 <translation id="8118117428362942925">Ha segítségre van szükséged, fordulj a szülődhöz (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">A Chrome-hoz és a Chrome <ph name="ERROR_DESCRIPTION" /> változatához mentett jelszavainak listáit a 121-es verzió után egyesíti a rendszer. Az összes mentett jelszavát automatikusan kitöltheti mindkét alkalmazásban.</translation>
 <translation id="8127542551745560481">Kezdőlap szerkesztése</translation>
 <translation id="8130309322784422030">A tárolt bejelentkezési adatai elavultak lehetnek</translation>
 <translation id="813082847718468539">Az oldalinformációk megtekintése</translation>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">Félmagasságban megnyitott navigációs előzmények</translation>
 <translation id="9190276265094487094">Előzményeihez az összes szinkronizált eszközén hozzáférhet, így ott folytathatja a böngészést, ahol abbahagyta</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{1 perce ellenőrizve}other{# perce ellenőrizve}}</translation>
+<translation id="9204021776105550328">Törlés</translation>
 <translation id="9204836675896933765">1 fájl maradt</translation>
 <translation id="9205933215779845960">A keresett oldal nem található. Ellenőrizze, hogy helyesen írta-e be, vagy próbáljon rákeresni a következő keresőben: <ph name="SEARCH_ENGINE" />.</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
index d020e193..bfcf9445 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Հպեք՝ ընդարձակելու համար</translation>
 <translation id="1289059016768036948">Ձեզնից կպահանջվի մուտք գործել ձեր Google հաշիվ</translation>
 <translation id="1291207594882862231">Մաքրել պատմությունը, քուքիները, կայքի տվյալները, քեշը…</translation>
-<translation id="1293898515599432175">Ձեր գաղտնաբառերը կջնջվեն Google գաղտնաբառերի կառավարչից Chrome <ph name="CHROME_CHANNEL" />-ում։ Գաղտնաբառերով ֆայլը, որը հենց նոր ներբեռնեցիք, կպահպանվի։</translation>
 <translation id="129553762522093515">Վերջերս փակված</translation>
 <translation id="1298077576058087471">Տնտեսեք թրաֆիկի մինչև 60%-ը, կարդացեք այսօրվա նորությունները</translation>
 <translation id="1303339473099049190">Չհաջողվեց գտնել այդ գաղտնաբառը։ Ստուգեք ուղղագրությունը և նորից փորձեք։</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Շարունակելու համար <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ընկերությունը կփոխանցի ձեր անունը, էլ․ հասցեն և պրոֆիլի նկարը այս կայքին։</translation>
 <translation id="5409881200985013443">Ուղարկե՞լ <ph name="ONE_TIME_CODE" /> կոդը <ph name="CLIENT_NAME" />-ին</translation>
 <translation id="5414836363063783498">Ստուգում…</translation>
-<translation id="542190472198460451">Բոլոր գաղտնաբառերը կներբեռնվեն ձեր սարքում և կհեռացվեն Chrome <ph name="CHROME_CHANNEL" />-ից</translation>
 <translation id="5423934151118863508">Ձեր հաճախակի այցելած էջերը կցուցադրվեն այստեղ</translation>
 <translation id="5424588387303617268">Ազատ տարածքը՝ <ph name="GIGABYTES" /> ԳԲ</translation>
 <translation id="543338862236136125">Փոխել գաղտնաբառը</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Օգնել բարելավել Chrome-ի գործառույթներն ու աշխատանքը</translation>
 <translation id="8110087112193408731">Ցուցադրե՞լ Chrome-ի պատմությունը Թվային բարեկեցության մեջ</translation>
 <translation id="8118117428362942925">Եթե օգնության կարիք ունենաս, դիմիր ծնողիդ (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Պահված գաղտնաբառերի ձեր ցանկերը Chrome-ի և Chrome <ph name="ERROR_DESCRIPTION" />-ի համար կմիավորվեն տարբերակ 121-ի թողարկումից հետո։ Դուք կկարողանաք ինքնալրացնել ձեր բոլոր գաղտնաբառերը երկու հավելվածներում։</translation>
 <translation id="8127542551745560481">Փոփոխել գլխավոր էջը</translation>
 <translation id="8130309322784422030">Հնարավոր է՝ մուտքի պահված տվյալները հնացել են</translation>
 <translation id="813082847718468539">Դիտել կայքի տեղեկությունները</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 60793d8..a118dc5 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Ketuk untuk meluaskan</translation>
 <translation id="1289059016768036948">Anda akan diminta untuk login ke Akun Google Anda</translation>
 <translation id="1291207594882862231">Hapus histori, cookie, data situs, cache...</translation>
-<translation id="1293898515599432175">Sandi Anda akan dihapus dari Pengelola Sandi Google untuk Chrome <ph name="CHROME_CHANNEL" />. Anda akan menyimpan file sandi yang baru saja didownload.</translation>
 <translation id="129553762522093515">Baru saja ditutup</translation>
 <translation id="1298077576058087471">Hemat data hingga 60%, baca berita hari ini</translation>
 <translation id="1303339473099049190">Tidak dapat menemukan sandi tersebut. Periksa ejaan sandi dan coba lagi.</translation>
@@ -689,7 +688,7 @@
 <translation id="47217992755561375">Lihat situs teratas Anda</translation>
 <translation id="4732120983431207637">Stack Unwinder</translation>
 <translation id="4736934858538408121">Kartu virtual</translation>
-<translation id="473775607612524610">Perbarui</translation>
+<translation id="473775607612524610">Update</translation>
 <translation id="4738836084190194332">Terakhir disinkronkan: <ph name="WHEN" /></translation>
 <translation id="4741753828624614066">Anda akan mendapatkan saran yang lebih baik di kolom URL</translation>
 <translation id="4742970037960872810">Hapus sorotan</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Untuk melanjutkan, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> akan membagikan nama, alamat email, dan foto profil Anda ke situs ini.</translation>
 <translation id="5409881200985013443">Kirim <ph name="ONE_TIME_CODE" /> di <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Memverifikasi...</translation>
-<translation id="542190472198460451">Semua sandi akan didownload di perangkat Anda dan dihapus dari Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Halaman yang paling sering dikunjungi akan muncul di sini</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB tersedia</translation>
 <translation id="543338862236136125">Edit sandi</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Bantu tingkatkan fitur dan performa Chrome</translation>
 <translation id="8110087112193408731">Tampilkan aktivitas Chrome Anda di Kesehatan Digital?</translation>
 <translation id="8118117428362942925">Jika kamu perlu bantuan, minta kepada orang tuamu (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Daftar sandi tersimpan Anda untuk Chrome dan Chrome <ph name="ERROR_DESCRIPTION" /> akan digabungkan setelah versi 121. Anda akan dapat mengisi otomatis semua sandi tersimpan di kedua aplikasi.</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>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
index 1d0fcfaf..fb644b3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Ýttu til að stækka</translation>
 <translation id="1289059016768036948">Þú færð beiðni um að skrá þig inn á Google-reikninginn þinn</translation>
 <translation id="1291207594882862231">Hreinsa feril, fótspor, svæði, gögn, skyndiminni…</translation>
-<translation id="1293898515599432175">Aðgangsorðunum þínum verður eytt úr Google-aðgangsorðastjórnun fyrir Chrome <ph name="CHROME_CHANNEL" />. Þú munt halda aðgangsorðaskránni sem þú varst að sækja.</translation>
 <translation id="129553762522093515">Nýlega lokað</translation>
 <translation id="1298077576058087471">Sparaðu allt að 60% af gögnum, lestu fréttir dagsins</translation>
 <translation id="1303339473099049190">Þetta aðgangsorð finnst ekki. Athugaðu stafsetninguna og reyndu aftur.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Til að halda áfram mun <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> deila nafni þínu, netfangi og prófílmynd með þessu vefsvæði.</translation>
 <translation id="5409881200985013443">Senda <ph name="ONE_TIME_CODE" /> á <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Staðfestir…</translation>
-<translation id="542190472198460451">Öll aðgangsorð verða sótt í tækið þitt og fjarlægð úr Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Síðurnar sem þú heimsækir oftast munu birtast hér</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB tiltæk</translation>
 <translation id="543338862236136125">Breyta aðgangsorði</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Hjálpa til við að bæta eiginleika og afköst Chrome</translation>
 <translation id="8110087112193408731">Viltu sjá það sem þú gerir í Chrome í stafrænni vellíðan?</translation>
 <translation id="8118117428362942925">Ef þú þarft aðstoð skaltu biðja foreldri um hjálp (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Listarnir yfir vistuð aðgangsorð í Chrome og Chrome <ph name="ERROR_DESCRIPTION" /> verða sameinaðir eftir útgáfu 121. Þú munt geta fyllt öll vistuð aðgangsorð út sjálfkrafa í báðum forritunum.</translation>
 <translation id="8127542551745560481">Breyta heimasíðu</translation>
 <translation id="8130309322784422030">Vistuðu innskráningarupplýsingarnar þínar gætu verið úreltar</translation>
 <translation id="813082847718468539">Skoða upplýsingar um vefsvæði</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
index 1271ad9..f560f11 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Tocca per espandere</translation>
 <translation id="1289059016768036948">Ti verrà chiesto di accedere al tuo Account Google</translation>
 <translation id="1291207594882862231">Cancella la cronologia, i cookie, i dati dei siti, la cache…</translation>
-<translation id="1293898515599432175">Le tue password verranno eliminate da Gestore delle password di Google per Chrome <ph name="CHROME_CHANNEL" />. Il file delle password che hai appena scaricato verrà mantenuto.</translation>
 <translation id="129553762522093515">Chiuse di recente</translation>
 <translation id="1298077576058087471">Risparmia fino al 60% di dati, leggi le notizie di oggi</translation>
 <translation id="1303339473099049190">Impossibile trovare quella password. Verifica di averla scritta correttamente e riprova.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Per continuare, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> condividerà il tuo nome, il tuo indirizzo email e l'immagine del tuo profilo con questo sito.</translation>
 <translation id="5409881200985013443">Vuoi inviare <ph name="ONE_TIME_CODE" /> a <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verifica in corso…</translation>
-<translation id="542190472198460451">Tutte le password verranno scaricate sul tuo dispositivo e rimosse da Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Le pagine che visiti più spesso verranno visualizzate qui</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB disponibili</translation>
 <translation id="543338862236136125">Modifica password</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Contribuisci a migliorare le funzionalità e le prestazioni di Chrome</translation>
 <translation id="8110087112193408731">Vuoi mostrare la tua attività di Chrome in Benessere digitale?</translation>
 <translation id="8118117428362942925">Se hai bisogno di aiuto, rivolgiti al tuo genitore (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Gli elenchi di password salvate per Chrome e Chrome <ph name="ERROR_DESCRIPTION" /> verranno uniti dopo la versione 121. Potrai inserire automaticamente tutte le password salvate su entrambe le app.</translation>
 <translation id="8127542551745560481">Modifica home page</translation>
 <translation id="8130309322784422030">I dati di accesso memorizzati potrebbero essere obsoleti</translation>
 <translation id="813082847718468539">Visualizza informazioni sul sito</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
index c365728..85944598 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">יש להקיש כדי להרחיב</translation>
 <translation id="1289059016768036948">‏תוצג בקשה להיכנס לחשבון Google.</translation>
 <translation id="1291207594882862231">‏ניקוי ההיסטוריה, קובצי ה-Cookie, נתוני האתרים, המטמון…</translation>
-<translation id="1293898515599432175">‏הסיסמאות יימחקו ממנהל הסיסמאות של Google ב-Chrome <ph name="CHROME_CHANNEL" />. קובץ הסיסמאות שהורדת עכשיו יישאר אצלך.</translation>
 <translation id="129553762522093515">נסגרו לאחרונה</translation>
 <translation id="1298077576058087471">קראת חדשות היום? אפשר לחסוך עד 60% בניצול חבילת הגלישה</translation>
 <translation id="1303339473099049190">לא ניתן למצוא את הסיסמה. יש לבדוק את האיות ולנסות שוב.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">כדי להמשיך, הפרטים הבאים ישותפו על ידי <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> עם האתר הזה: השם, כתובת האימייל ותמונת הפרופיל שלך.</translation>
 <translation id="5409881200985013443">לשלוח את <ph name="ONE_TIME_CODE" /> באמצעות <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">בתהליך אימות…</translation>
-<translation id="542190472198460451">‏תתבצע הורדה של כל הסיסמאות שבמכשיר והן יוסרו מ-Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">הדפים שבהם ביקרת בתדירות הגבוהה ביותר יופיעו כאן</translation>
 <translation id="5424588387303617268">‏‎<ph name="GIGABYTES" /> GB זמינים</translation>
 <translation id="543338862236136125">עריכת סיסמה</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">‏עזרה בשיפור התכונות והביצועים של Chrome</translation>
 <translation id="8110087112193408731">‏להציג את הפעילות שלך ב-Chrome ב'שימוש חכם בדיגיטל'?</translation>
 <translation id="8118117428362942925">אם צריך עזרה, אפשר לבקש עזרה מהורה (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">‏אחרי גרסה 121, ימוזגו הרשימות של הסיסמאות השמורות שלך ב-Chrome וב-Chrome <ph name="ERROR_DESCRIPTION" />. תהיה לך אפשרות למלא באופן אוטומטי את כל הסיסמאות השמורות בשתי האפליקציות האלו.</translation>
 <translation id="8127542551745560481">עריכת דף הבית</translation>
 <translation id="8130309322784422030">יכול להיות שהפרטים שנשמרו לכניסה לחשבון לא עדכניים</translation>
 <translation id="813082847718468539">הצגת נתוני אתר</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 85a05584..fef7cb0 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">タップして展開</translation>
 <translation id="1289059016768036948">Google アカウントへのログインを求められます</translation>
 <translation id="1291207594882862231">履歴、Cookie、サイトデータ、キャッシュを削除…</translation>
-<translation id="1293898515599432175">パスワードは、Chrome <ph name="CHROME_CHANNEL" /> の Google パスワード マネージャーから削除されます。ダウンロードしたパスワード ファイルは保持されます。</translation>
 <translation id="129553762522093515">最近閉じたタブ</translation>
 <translation id="1298077576058087471">最大 60% のデータを節約、今日のニュースもチェック</translation>
 <translation id="1303339473099049190">お探しのパスワードが見つかりません。誤字や脱字がないかご確認のうえ、もう一度お試しください。</translation>
@@ -823,7 +822,6 @@
 <translation id="5401851137404501592">続行すると、<ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> からこのサイトに名前、メールアドレス、プロフィール画像が共有されます。</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> に <ph name="ONE_TIME_CODE" /> を送信しますか?</translation>
 <translation id="5414836363063783498">確認しています…</translation>
-<translation id="542190472198460451">パスワードがすべてデバイスにダウンロードされ、Chrome <ph name="CHROME_CHANNEL" /> から削除されます</translation>
 <translation id="5423934151118863508">最もアクセスの多かったページがここに表示されます</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB 使用可能</translation>
 <translation id="543338862236136125">パスワードを編集</translation>
@@ -1367,7 +1365,6 @@
 <translation id="8110024788458304985">Chrome の機能と動作の改善に協力する</translation>
 <translation id="8110087112193408731">Chrome のアクティビティを Digital Wellbeing で表示しますか?</translation>
 <translation id="8118117428362942925">わからないことがあるときは、保護者の方(<ph name="PARENT_NAME" />)に聞いてください</translation>
-<translation id="8124758083429256800">Chrome と Chrome <ph name="ERROR_DESCRIPTION" /> で保存したパスワードのリストはバージョン 121 以降で統合されます。どちらのアプリでも、保存されているすべてのパスワードを自動入力できます。</translation>
 <translation id="8127542551745560481">ホームページを編集</translation>
 <translation id="8130309322784422030">保存されているログイン情報が最新でない可能性があります。</translation>
 <translation id="813082847718468539">サイト情報を表示</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 609405a..be77f31 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">შეეხეთ გასაშლელად</translation>
 <translation id="1289059016768036948">დაგჭირდებათ თქვენს Google ანგარიშში შესვლა</translation>
 <translation id="1291207594882862231">ისტორიის, ქუქი-ჩანაწერების, საიტის მონაცემების, ქეშის გასუფთავება…</translation>
-<translation id="1293898515599432175">თქვენი პაროლები წაიშლება Google პაროლების მმართველიდან Chrome <ph name="CHROME_CHANNEL" />-სთვის. პაროლების თქვენ მიერ ახლახან ჩამოტვირთული ფაილი შენარჩუნდება.</translation>
 <translation id="129553762522093515">ბოლოს დახურული</translation>
 <translation id="1298077576058087471">დაზოგეთ მონაცემების 60%-მდე — გაეცანით დღის სიახლეებს</translation>
 <translation id="1303339473099049190">ეს პაროლი ვერ მოიძებნა. შეამოწმეთ მართლწერა და ცადეთ ხელახლა.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">გასაგრძელებლად <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ამ საიტს გაუზიარებს თქვენს სახელს, ელფოსტის მისამართსა და პროფილის სურათს.</translation>
 <translation id="5409881200985013443">გსურთ, გადაუგზავნოთ <ph name="ONE_TIME_CODE" /> <ph name="CLIENT_NAME" />-ს?</translation>
 <translation id="5414836363063783498">დადასტურება…</translation>
-<translation id="542190472198460451">ყველა პაროლი ჩამოიტვირთება თქვენს მოწყობილობაზე და წაიშლება Chrome-იდან <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">აქ გამოჩნდება თქვენ მიერ ყველაზე ხშირად მონახულებული გვერდები</translation>
 <translation id="5424588387303617268">ხელმისაწვდომია <ph name="GIGABYTES" /> გბაიტი</translation>
 <translation id="543338862236136125">პაროლის რედაქტირება</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">სინქრონიზაციის დასაწყებად დაადასტურეთ, რომ ეს თქვენ ხართ</translation>
 <translation id="6364438453358674297">ამოიშალოს შემოთავაზება ისტორიიდან?</translation>
 <translation id="6380100320871303656">უფრო ხშირად ჩატვირთავს წინასწარ გვერდებს, რომლებიც, Chrome-ის გათვლებით, შეიძლება მოინახულოთ. ამ პარამეტრმა შეიძლება გამოიწვიოს მონაცემთა გაზრდილი მოხმარება.</translation>
+<translation id="6382848304055775421">მიმდინარეობს ექსპორტირება</translation>
 <translation id="6391355955030242704">თქვენი Chrome ინფორმაციის სინქრონიზაციისა და თქვენი მონაცემების უსაფრთხოების უზრუნველყოფად მანქანაში, უსაფრთხოების პარამეტრებიდან პროფილის ჩაკეტვა უნდა დააყენოთ. მანქანაში ყოველი შესვლისას კოდის ან პაროლის გამოყენება დაგჭირდებათ.</translation>
 <translation id="6394791151443660613">ძიება: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">ბმული</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">ყველა დროის</translation>
 <translation id="6987047470128880212">ინკოგნიტო რეჟიმი ამ მოწყობილობაზე ხელმისაწვდომი არ არის</translation>
 <translation id="6995899638241819463">გაფრთხილების მიღება მონაცემთა გაჟონვისას პაროლების გამოაშკარავების შემთხვევაში</translation>
+<translation id="6996145122199359148">ამ გვერდის ჩამოტვირთვა</translation>
 <translation id="7020741890149022655">საკითხავ სიაში დამატება <ph name="BEGIN_NEW" />სიახლე<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">ბრაუზერში გახსნა</translation>
 <translation id="7027549951530753705">აღდგენის თარიღი: <ph name="ITEM_TITLE" /></translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Chrome-ის ფუნქციებისა და წარმადობის გაუმჯობესების ხელშეწყობა</translation>
 <translation id="8110087112193408731">გსურთ, ციფრულ კომფორტში გამოჩნდეს თქვენი აქტივობა Chrome-იდან?</translation>
 <translation id="8118117428362942925">საჭიროებისამებრ, დაიხმარეთ მშობელი (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">თქვენ მიერ Chrome-ისთვის შენახული პაროლების სია და Chrome <ph name="ERROR_DESCRIPTION" /> გაერთიანდება ვერსია 121-ის შემდეგ. თქვენ ორივე აპში გექნებათ საშუალება, ავტომატურად შეავსოთ თქვენ მიერ შენახული ყველა პაროლი.</translation>
 <translation id="8127542551745560481">მთავარი გვერდის რედაქტირება</translation>
 <translation id="8130309322784422030">სისტემაში შესვლის თქვენ მიერ შენახული ინფორმაცია, შესაძლოა, მოძველებული იყოს</translation>
 <translation id="813082847718468539">საიტის ინფორმაციის ნახვა</translation>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">ნავიგაციის ისტორია ნახევრადგახსნილია</translation>
 <translation id="9190276265094487094">ისტორია თქვენს ყველა სინქრონიზებულ მოწყობილობაზე გაქვთ ჩართული, ამიტომ შეგიძლიათ არ მოცდეთ</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{შემოწმდა 1 წუთის წინ}other{შემოწმდა # წუთის წინ}}</translation>
+<translation id="9204021776105550328">მიმდინარეობს წაშლა</translation>
 <translation id="9204836675896933765">დარჩენილია 1 ფაილი</translation>
 <translation id="9205933215779845960">ამ გვერდის პოვნა ვერ ხერხდება. შეამოწმეთ მართლწერა ან ცადეთ მოძიება აქ: <ph name="SEARCH_ENGINE" />.</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
index a037ef6..ea413ea 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Жаю үшін түртіңіз</translation>
 <translation id="1289059016768036948">Сізден Google аккаунтыңызға кіру сұралады</translation>
 <translation id="1291207594882862231">Тарихты, cookie файлдарын, сайт деректерін, кэшті жою…</translation>
-<translation id="1293898515599432175">Құпия сөздеріңіз Chrome <ph name="CHROME_CHANNEL" /> бағдарламасына арналған Google Password Manager қызметінен жойылады. Жаңа ғана жүктеп алынған құпия сөздер файлын сақтайсыз.</translation>
 <translation id="129553762522093515">Жақында жабылған</translation>
 <translation id="1298077576058087471">Деректер трафигін 60%-ға дейін үнемдеңіз, бүгінгінің жаңалықтарын оқыңыз.</translation>
 <translation id="1303339473099049190">Ондай құпия сөзді табу мүмкін емес. Дұрыс жазылғанын тексеріп, қайта іздеп көріңіз.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Жалғастыру үшін <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> аты-жөніңізді, электрондық мекенжайыңызды және профиль суретіңізді осы сайтпен бөліседі.</translation>
 <translation id="5409881200985013443"><ph name="ONE_TIME_CODE" /> коды <ph name="CLIENT_NAME" /> құрылғысына жіберілсін бе?</translation>
 <translation id="5414836363063783498">Расталуда…</translation>
-<translation id="542190472198460451">Барлық құпия сөз құрылғыңызға жүктеп алынады және Chrome <ph name="CHROME_CHANNEL" /> браузерінен өшіріледі</translation>
 <translation id="5423934151118863508">Ең көп кірген беттеріңіз мына жерде пайда болады</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> ГБ қолжетімді</translation>
 <translation id="543338862236136125">Құпия сөзді өзгерту</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chrome-ның функциялары мен өнімділігін жақсартуға көмектесу</translation>
 <translation id="8110087112193408731">Digital Wellbeing қызметінде Chrome браузерін пайдалану деректері көрсетілсін бе?</translation>
 <translation id="8118117428362942925">Көмек қажет болса, ата-анаңыздан (<ph name="PARENT_NAME" />) сұраңыз</translation>
-<translation id="8124758083429256800">Chrome және Chrome <ph name="ERROR_DESCRIPTION" /> сақталған құпия сөздерінің тізімдері 121-нұсқасынан кейін біріктіріледі. Барлық сақталған құпия сөзді екі қолданбада да автотолтыра аласыз.</translation>
 <translation id="8127542551745560481">Негізгі бетті өзгерту</translation>
 <translation id="8130309322784422030">Сақталған кіру ақпараты ескі болуы мүмкін</translation>
 <translation id="813082847718468539">Сайт ақпаратын көру</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 1a7c581..7c3a08d 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">ចុច​ដើម្បី​ពង្រីក</translation>
 <translation id="1289059016768036948">អ្នកនឹងត្រូវបានស្នើឱ្យចូលគណនី Google របស់អ្នក</translation>
 <translation id="1291207594882862231">ជម្រះប្រវត្តិ ខុកឃី ទិន្នន័យគេហទំព័រ ឃ្លាំងសម្ងាត់…</translation>
-<translation id="1293898515599432175">ពាក្យសម្ងាត់​របស់អ្នក​នឹង​ត្រូវបាន​លុប​ពី​កម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់សម្រាប់ Chrome <ph name="CHROME_CHANNEL" />។ អ្នកនឹង​រក្សា​ឯកសារ​ពាក្យសម្ងាត់​ដែលអ្នក​ទើបតែ​បានទាញយក។</translation>
 <translation id="129553762522093515">បានបិទកន្លងទៅថ្មីៗ</translation>
 <translation id="1298077576058087471">សន្សំសំចៃទិន្នន័យបានរហូតដល់ 60%, អានព័ត៌មាននៅថ្ងៃនេះ</translation>
 <translation id="1303339473099049190">រកមិនឃើញពាក្យសម្ងាត់ទេ។ សូមពិនិត្យ​មើល​អក្ខរាវិរុទ្ធ​ រួចព្យាយាម​ម្ដង​ទៀត។</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">ដើម្បីបន្ត <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> នឹងចែករំលែកឈ្មោះ អាសយដ្ឋានអ៊ីមែល និងរូបភាពកម្រងព័ត៌មានរបស់អ្នកជាមួយគេហទំព័រនេះ។</translation>
 <translation id="5409881200985013443">ដាក់បញ្ជូន <ph name="ONE_TIME_CODE" /> នៅលើ <ph name="CLIENT_NAME" /> ឬ?</translation>
 <translation id="5414836363063783498">កំពុងផ្ទៀងផ្ទាត់…</translation>
-<translation id="542190472198460451">ពាក្យសម្ងាត់ទាំងអស់នឹងត្រូវបានទាញយកនៅលើឧបករណ៍របស់អ្នក រួចដកចេញពី Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">ទំព័រដែលអ្នកបានចូលទៅកាន់ច្រើនបំផុតនឹងបង្ហាញនៅទីនេះ</translation>
 <translation id="5424588387303617268">អាចប្រើបាន <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">កែពាក្យ​សម្ងាត់</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">ដើម្បី​ចាប់ផ្ដើម​សមកាលកម្ម សូមផ្ទៀងផ្ទាត់ថា​ជាអ្នក</translation>
 <translation id="6364438453358674297">យកការផ្តល់យោបល់ចេញពីប្រវត្តិ?</translation>
 <translation id="6380100320871303656">ផ្ទុកទំព័រជាមុន​កាន់តែញឹកញាប់​ដែល Chrome គិតថា​អ្នកទំនង​ជាចូលមើល។ ការកំណត់នេះ​អាចបណ្ដាលឱ្យ​ការប្រើប្រាស់ទិន្នន័យ​មានការកើនឡើង។</translation>
+<translation id="6382848304055775421">កំពុង​នាំចេញ</translation>
 <translation id="6391355955030242704">ដើម្បី​ធ្វើសម​កាលកម្ម​ព័ត៌មាន Chrome របស់អ្នក និង​រក្សាសុវត្ថិភាព​ទិន្នន័យ​របស់អ្នក​នៅក្នុង​រថយន្ត អ្នកត្រូវតែ​បង្កើត​ការចាក់​សោកម្រងព័ត៌មាន​នៅក្នុង​ការកំណត់​សុវត្ថិភាព​របស់អ្នក។ អ្នកនឹង​ប្រើកូដ ឬ​ពាក្យសម្ងាត់ រាល់ពេល​ដែលអ្នកចូល​រថយន្ត។</translation>
 <translation id="6394791151443660613">ស្វែងរក៖ <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">តំណ</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">គ្រប់​ពេល</translation>
 <translation id="6987047470128880212">មិនអាចប្រើមុខងារឯកជន​នៅលើឧបករណ៍​នេះបានទេ</translation>
 <translation id="6995899638241819463">ទទួលបាន​ការព្រមាន ប្រសិនបើ​ពាក្យសម្ងាត់​​បែកធ្លាយ​នៅក្នុង​ការបំពាន​ទិន្នន័យ</translation>
+<translation id="6996145122199359148">ទាញយកទំព័រនេះ</translation>
 <translation id="7020741890149022655">បញ្ចូលទៅក្នុងបញ្ជីអាន<ph name="BEGIN_NEW" />ថ្មី<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">បើកនៅក្នុងកម្មវិធីរុករក</translation>
 <translation id="7027549951530753705">បានស្ដារ <ph name="ITEM_TITLE" /></translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">ជួយ​កែលម្អ​មុខងារ និង​ប្រតិបត្តិការ​របស់ Chrome</translation>
 <translation id="8110087112193408731">បង្ហាញសកម្មភាព Chrome របស់អ្នក​នៅក្នុងសុខុមាលភាព​ឌីជីថល?</translation>
 <translation id="8118117428362942925">ប្រសិនបើ​អ្នក​ត្រូវការ​ជំនួយ សូម​ស្នើសុំពី​មាតាបិតា​របស់​អ្នក (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">បញ្ជី​ពាក្យសម្ងាត់ដែលបានរក្សាទុក​របស់អ្នក​សម្រាប់ Chrome និង Chrome <ph name="ERROR_DESCRIPTION" /> នឹង​ដាក់​ចូលគ្នា​បន្ទាប់ពី​កំណែ 121។ អ្នកនឹងអាច​បំពេញស្វ័យប្រវត្តិ​នូវពាក្យសម្ងាត់​ដែលបានរក្សាទុក​ទាំងអស់​របស់អ្នក​នៅលើ​កម្មវិធី​ទាំងពីរ។</translation>
 <translation id="8127542551745560481">កែទំព័រដើម</translation>
 <translation id="8130309322784422030">ព័ត៌មាន​ចូលគណនី​ដែលអ្នកបានរក្សាទុកប្រហែលជា​ហួសសម័យហើយ</translation>
 <translation id="813082847718468539">មើលព័ត៌មានគេហទំព័រ</translation>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">ប្រវត្តិ​រុករក​ត្រូវបានបើក​ពាក់កណ្ដាល</translation>
 <translation id="9190276265094487094">អ្នកនឹង​មានប្រវត្តិ​របស់អ្នក​នៅលើ​ឧបករណ៍​ដែលបានធ្វើ​សមកាលកម្ម​ទាំងអស់​របស់អ្នក ដើម្បីអាចឱ្យអ្នក​បន្ត​អ្វីដែល​អ្នកបានធ្វើ</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{បាន​ពិនិត្យមើល​កាលពី 1 នាទីមុន}other{បាន​ពិនិត្យមើល​កាលពី # នាទីមុន}}</translation>
+<translation id="9204021776105550328">កំពុងលុប</translation>
 <translation id="9204836675896933765">នៅសល់ឯកសារចំនួន 1</translation>
 <translation id="9205933215779845960">រកមិនឃើញទំព័រនោះទេ។ សូមពិនិត្យមើលអក្ខរាវិរុទ្ធរបស់អ្នក ឬសាកល្បងស្វែងរកនៅលើ <ph name="SEARCH_ENGINE" />។</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
index f9fd70a..2331c0a4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">ವಿಸ್ತರಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
 <translation id="1289059016768036948">ನಿಮ್ಮ Google ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮನ್ನು ಕೇಳಲಾಗುತ್ತದೆ</translation>
 <translation id="1291207594882862231">ಇತಿಹಾಸ, ಕುಕೀಗಳು, ಸೈಟ್‌ ಡೇಟಾ, ಕ್ಯಾಷ್ ಅನ್ನು ತೆರವುಗೊಳಿಸಿ…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" /> ಗಾಗಿ Google Password Manager ನಿಂದ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ನೀವು ಇದೀಗ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳ ಫೈಲ್ ಅನ್ನು ನೀವು ಇರಿಸಿಕೊಳ್ಳುತ್ತೀರಿ.</translation>
 <translation id="129553762522093515">ಇತ್ತೀಚೆಗೆ ಮುಚ್ಚಲಾಗಿರುವುದು</translation>
 <translation id="1298077576058087471">ಶೇಕಡಾ 60 ರಷ್ಟು ಡೇಟಾವನ್ನು ಉಳಿಸಿ, ಇಂದಿನ ಸುದ್ದಿಗಳನ್ನು ಓದಿ</translation>
 <translation id="1303339473099049190">ಆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಕಂಡುಹಿಡಿಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ಬರೆದಿರುವುದು ಸರಿ ಇದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -821,7 +820,6 @@
 <translation id="5401851137404501592">ಮುಂದುವರಿಸಲು, ಈ ಸೈಟ್‌ನ ಜೊತೆಗೆ <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ನಿಮ್ಮ ಹೆಸರು, ಇಮೇಲ್ ವಿಳಾಸ ಮತ್ತು ಪ್ರೊಫೈಲ್ ಚಿತ್ರವನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತದೆ.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> ನಲ್ಲಿ <ph name="ONE_TIME_CODE" /> ಕೋಡ್ ಅನ್ನು ಸಲ್ಲಿಸಬೇಕೆ?</translation>
 <translation id="5414836363063783498">ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ...</translation>
-<translation id="542190472198460451">ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು Chrome <ph name="CHROME_CHANNEL" /> ನಿಂದ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ</translation>
 <translation id="5423934151118863508">ನಿವು ಹೆಚ್ಚು ಭೇಟಿ ನೀಡುವ ಪುಟಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB ಲಭ್ಯವಿದೆ</translation>
 <translation id="543338862236136125">ಪಾಸ್‌ವರ್ಡ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
@@ -1365,7 +1363,6 @@
 <translation id="8110024788458304985">Chrome ನ ಫೀಚರ್‌ಗಳು ಹಾಗೂ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation>
 <translation id="8110087112193408731">ಡಿಜಿಟಲ್ ಯೋಗಕ್ಷೇಮದಲ್ಲಿ ನಿಮ್ಮ Chrome ಚಟುವಟಿಕೆಯನ್ನು ತೋರಿಸಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="8118117428362942925">ನಿಮಗೆ ಸಹಾಯ ಬೇಕಿದ್ದರೆ, ನಿಮ್ಮ ಪೋಷಕರನ್ನು ಕೇಳಿ (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Chrome ಮತ್ತು Chrome <ph name="ERROR_DESCRIPTION" /> ಗೆ ಸಂಬಂಧಿಸಿದ ಸೇವ್ ಮಾಡಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳ ನಿಮ್ಮ ಪಟ್ಟಿಗಳನ್ನು 121 ಆವೃತ್ತಿ ಹೊರಬಂದ ನಂತರ ವಿಲೀನಗೊಳಿಸಲಾಗುತ್ತದೆ. ಎರಡೂ ಆ್ಯಪ್‌ಗಳಲ್ಲಿನ ನಿಮ್ಮ ಎಲ್ಲಾ ಸೇವ್ ಮಾಡಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಆಟೋಫಿಲ್ ಮಾಡಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation>
 <translation id="8127542551745560481">ಮುಖಪುಟವನ್ನು ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="8130309322784422030">ನೀವು ಸಂಗ್ರಹಿಸಿದ ಸೈನ್-ಇನ್ ಮಾಹಿತಿಯು ಹಳೆಯದಾಗಿರಬಹುದು</translation>
 <translation id="813082847718468539">ಸೈಟ್ ಮಾಹಿತಿಯನ್ನು ವೀಕ್ಷಿಸಿ</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 771f0423..871adefb 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">탭하여 펼치기</translation>
 <translation id="1289059016768036948">Google 계정에 로그인하라는 메시지가 표시됩니다</translation>
 <translation id="1291207594882862231">방문 기록, 쿠키, 사이트 데이터, 캐시 삭제…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" />용 Google 비밀번호 관리자에서 비밀번호가 삭제됩니다. 방금 다운로드한 비밀번호 파일은 유지됩니다.</translation>
 <translation id="129553762522093515">최근에 닫은 탭</translation>
 <translation id="1298077576058087471">데이터 최대 60% 절약 및 오늘의 뉴스 읽기</translation>
 <translation id="1303339473099049190">비밀번호를 찾을 수 없습니다. 철자를 확인하고 다시 시도해 주세요.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">계속하려면 <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" />에서 내 이름, 이메일 주소, 프로필 사진을 이 사이트와 공유해야 합니다.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" />에 코드(<ph name="ONE_TIME_CODE" />)를 제출하시겠습니까?</translation>
 <translation id="5414836363063783498">확인 중...</translation>
-<translation id="542190472198460451">모든 비밀번호가 기기에 다운로드되며 Chrome <ph name="CHROME_CHANNEL" />에서 삭제됩니다</translation>
 <translation id="5423934151118863508">자주 방문한 페이지가 여기에 표시됩니다.</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB 사용 가능</translation>
 <translation id="543338862236136125">비밀번호 수정</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chrome의 기능 및 성능 개선에 참여</translation>
 <translation id="8110087112193408731">디지털 웰빙에서 Chrome 활동을 표시할까요?</translation>
 <translation id="8118117428362942925">도움이 필요하면 부모님(<ph name="PARENT_NAME" />)께 요청하세요</translation>
-<translation id="8124758083429256800">Chrome 및 Chrome <ph name="ERROR_DESCRIPTION" />에 저장된 비밀번호 목록이 버전 121 이후 병합됩니다. 두 앱에 저장된 비밀번호를 모두 자동 완성할 수 있습니다.</translation>
 <translation id="8127542551745560481">홈페이지 수정</translation>
 <translation id="8130309322784422030">저장된 로그인 정보가 오래되었을 수 있습니다</translation>
 <translation id="813082847718468539">사이트 정보 보기</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
index 89c83eb..1239581 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Жайып көрсөтүү үчүн таптап коюңуз</translation>
 <translation id="1289059016768036948">Google аккаунтуңузга кирүүңүз суралат</translation>
 <translation id="1291207594882862231">Таржымалды, кукилерди, сайттагы нерселерди, кешти тазалоо…</translation>
-<translation id="1293898515599432175">Сырсөздөрүңүз Chrome <ph name="CHROME_CHANNEL" /> үчүн Сырсөздөрдү башкаргычтан өчүрүлөт. Жаңы эле жүктөп алган сырсөздөрдү камтыган файл кала берет.</translation>
 <translation id="129553762522093515">Жакында жабылган</translation>
 <translation id="1298077576058087471">Бүгүнкү жаңылыктарды окуганда 60% чейин трафик үнөмдөңүз</translation>
 <translation id="1303339473099049190">Ал сырсөз табылган жок. Анын туура терилгенин текшерип, кайталап көрүңүз.</translation>
@@ -814,7 +813,6 @@
 <translation id="5401851137404501592">Улантуу үчүн <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> аты-жөнүңүздү, электрондук почтаңыздын дарегин жана профилиңиздин сүрөтүн ушул сайт менен бөлүшөт.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> түзмөгүнө <ph name="ONE_TIME_CODE" /> тапшырылсынбы?</translation>
 <translation id="5414836363063783498">Текшерилүүдө…</translation>
-<translation id="542190472198460451">Бардык сырсөздөр түзмөгүңүзгө жүктөлүп алынып, Chrome <ph name="CHROME_CHANNEL" /> кызматынан өчүрүлөт</translation>
 <translation id="5423934151118863508">Эң көп каралган беттер бул жерде көрүнөт</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> Гб жеткиликтүү</translation>
 <translation id="543338862236136125">Сырсөздү түзөтүү</translation>
@@ -1358,7 +1356,6 @@
 <translation id="8110024788458304985">Chrome функцияларын жана майнаптуулугун өркүндөтүүгө жардам бериңиз</translation>
 <translation id="8110087112193408731">Chrome'ду колдонуу дайын-даректериңиз Санариптик бакубаттык кызматында көрсөтүлсүнбү?</translation>
 <translation id="8118117428362942925">Жардам керек болсо, ата-энеңе кайрыл (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Chrome жана Chrome <ph name="ERROR_DESCRIPTION" /> cерепчисинде сакталган сырсөздөрүңүздүн тизмеси 121-версиясы чыккандан кийин бириктирилет. Сакталган сырсөздөрүңүздүн баарын эки колдонмодо тең автотолтуруу функциясы менен колдоно аласыз.</translation>
 <translation id="8127542551745560481">Башкы бетти түзөтүү</translation>
 <translation id="8130309322784422030">Сакталган кирүү маалыматынын мөөнөтү өтүп кеткен окшойт</translation>
 <translation id="813082847718468539">Сайттын маалыматын карап көрүү</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 fac0a091..6673554 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">ແຕະເພື່ອຂະຫຍາຍ</translation>
 <translation id="1289059016768036948">ລະບົບຈະຂໍໃຫ້ທ່ານເຂົ້າສູ່ລະບົບບັນຊີ Google ຂອງທ່ານ</translation>
 <translation id="1291207594882862231">ລຶບລ້າງປະຫວັດ, ຄຸກກີ້, ຂໍ້ມູນເວັບໄຊ, ແຄສ…</translation>
-<translation id="1293898515599432175">ລະຫັດຜ່ານຂອງທ່ານຈະຖືກລຶບອອກຈາກຕົວຈັດການລະຫັດຜ່ານ Google ສຳລັບ Chrome <ph name="CHROME_CHANNEL" />. ທ່ານຈະເກັບຮັກສາໄຟລ໌ລະຫັດຜ່ານທີ່ທ່ານຫາກໍດາວໂຫຼດໄປໄວ້.</translation>
 <translation id="129553762522093515">ປິດ​ບໍ່​ດົນ​ມາ​ນີ້</translation>
 <translation id="1298077576058087471">ປະຢັດອິນເຕີເນັດສູງສຸດ 60%, ອ່ານຂ່າວຂອງມື້ນີ້</translation>
 <translation id="1303339473099049190">ບໍ່ສາມາດຊອກເຫັນລະຫັດຜ່ານນັ້ນ. ກະລຸນາກວດການສະກົດຄຳຂອງທ່ານ ແລ້ວລອງໃໝ່.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">ເພື່ອສືບຕໍ່, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ຈະແບ່ງປັນຊື່, ທີ່ຢູ່ອີເມວ ແລະ ຮູບໂປຣໄຟລ໌ຂອງທ່ານໃຫ້ກັບເວັບໄຊນີ້.</translation>
 <translation id="5409881200985013443">ສົ່ງ <ph name="ONE_TIME_CODE" /> ຢູ່ <ph name="CLIENT_NAME" /> ບໍ?</translation>
 <translation id="5414836363063783498">ກໍາລັງຢືນ​ຢັນ...</translation>
-<translation id="542190472198460451">ລະຫັດຜ່ານທັງໝົດຈະຖືກດາວໂຫຼດຢູ່ອຸປະກອນຂອງທ່ານ ແລະ ຖືກລຶບອອກຈາກ Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">ໜ້າເຂົ້າໄປເບິ່ງເລື້ອຍທີ່ສຸດຂອງທ່ານຈະປະກົດຂຶ້ນທີ່ນີ້</translation>
 <translation id="5424588387303617268">ຍັງເຫຼືອ <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">ແກ້ໄຂລະຫັດຜ່ານ</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">ຊ່ວຍປັບປຸງຄຸນສົມບັດ ແລະ ປະສິດທິພາບຂອງ Chrome</translation>
 <translation id="8110087112193408731">ສະແດງການເຄື່ອນໄຫວໃນ Chrome ຂອງທ່ານຢູ່ໃນ Digital Wellbeing ບໍ?</translation>
 <translation id="8118117428362942925">ກະລຸນາຂໍຄວາມຊ່ວຍເຫຼືອຈາກຜູ້ປົກຄອງ (<ph name="PARENT_NAME" />) ຂອງທ່ານ, ຫາກທ່ານຕ້ອງການ</translation>
-<translation id="8124758083429256800">ລາຍການລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ຂອງທ່ານສຳລັບ Chrome ແລະ Chrome <ph name="ERROR_DESCRIPTION" /> ຈະຮວມເຂົ້າກັນຫຼັງຈາກເວີຊັນ 121. ທ່ານຈະສາມາດຕື່ມຂໍ້ມູນລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ທັງໝົດຂອງທ່ານໂດຍອັດຕະໂນມັດໄດ້ໃນທັງສອງແອັບ.</translation>
 <translation id="8127542551745560481">ແກ້ໄຂໜ້າຫຼັກ</translation>
 <translation id="8130309322784422030">ຂໍ້ມູນການເຂົ້າສູ່ລະບົບທີ່ທ່ານຈັດເກັບໄວ້ອາດເກົ່າແລ້ວ</translation>
 <translation id="813082847718468539">ເບິ່ງຂໍ້ມູນເວັບໄຊທ໌</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 492bf6d..ab5fdef4 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Palieskite ir išskleiskite</translation>
 <translation id="1289059016768036948">Būsite paprašyti prisijungti prie „Google“ paskyros</translation>
 <translation id="1291207594882862231">Išvalykite istoriją, slapukus, svetainės duomenis, talpyklą…</translation>
-<translation id="1293898515599432175">Slaptažodžiai bus ištrinti iš „Chrome <ph name="CHROME_CHANNEL" />“ skirtos „Google“ slaptažodžių tvarkyklės. Išsaugosite ką tik atsisiųstą slaptažodžių failą.</translation>
 <translation id="129553762522093515">Neseniai uždarytas</translation>
 <translation id="1298077576058087471">Sutaupykite iki 60 proc. duomenų, skaitykite šiandienos naujienas</translation>
 <translation id="1303339473099049190">Nepavyko rasti šio slaptažodžio. Patikrinkite rašybą ir bandykite dar kartą.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Kad būtų galima tęsti, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> bendrins jūsų vardą ir pavardę, el. pašto adresą ir profilio nuotrauką su šia svetaine.</translation>
 <translation id="5409881200985013443">Pateikti <ph name="ONE_TIME_CODE" /> įrenginyje (<ph name="CLIENT_NAME" />)?</translation>
 <translation id="5414836363063783498">Patvirtinama…</translation>
-<translation id="542190472198460451">Visi slaptažodžiai bus atsisiųsti į įrenginį ir pašalinti iš „Chrome“ <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Puslapiai, kuriuose lankomasi dažniausiai, bus rodomi čia</translation>
 <translation id="5424588387303617268">Pasiekiama: <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Redaguoti slaptažodį</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">Jei norite pradėti sinchronizuoti, patvirtinkite savo tapatybę</translation>
 <translation id="6364438453358674297">Pašalinti pasiūlymą iš istorijos?</translation>
 <translation id="6380100320871303656">Dažniau iš anksto įkeliami puslapiai, kuriuose, „Chrome“ manymu, galėtumėte apsilankyti. Dėl šio nustatymo gali būti naudojama daugiau duomenų.</translation>
+<translation id="6382848304055775421">Eksportuojama</translation>
 <translation id="6391355955030242704">Jei norite sinchronizuoti „Chrome“ informaciją ir apsaugoti duomenis automobilyje, turite sukurti profilio užraktą saugos nustatymuose. Kiekvieną kartą, kai įsėsite į automobilį, turėsite naudoti kodą arba slaptažodį.</translation>
 <translation id="6394791151443660613">Paieška: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">NUORODA</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">Visas laikotarpis</translation>
 <translation id="6987047470128880212">Inkognito režimas šiame įrenginyje nepasiekiamas</translation>
 <translation id="6995899638241819463">Įspėti, jei slaptažodžiai buvo atskleisti įvykus duomenų saugos pažeidimui</translation>
+<translation id="6996145122199359148">Atsisiųsti šį puslapį</translation>
 <translation id="7020741890149022655">Pridėti į skaitymo sąrašą<ph name="BEGIN_NEW" />Nauja<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">Atidaryti naršyklėje</translation>
 <translation id="7027549951530753705">Atkurta „<ph name="ITEM_TITLE" />“</translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Padėti tobulinti „Chrome“ funkcijas ir našumą</translation>
 <translation id="8110087112193408731">Rodyti „Chrome“ veiklą Skaitmeninės gerovės programoje?</translation>
 <translation id="8118117428362942925">Jei reikia pagalbos, paprašykite vieno iš tėvų (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Išsaugotų „Chrome“ ir „Chrome“ <ph name="ERROR_DESCRIPTION" /> slaptažodžių sąrašai bus sujungti po 121 versijos. Galėsite automatiškai užpildyti visus išsaugotus slaptažodžius abiejose programose.</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>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">Naršymo istorija atidaryta puse aukščio</translation>
 <translation id="9190276265094487094">Istorija bus rodoma visuose sinchronizuojamuose įrenginiuose, todėl galėsite tęsti tai, ką darėte</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{Tikrinta prieš 1 minutę}one{Tikrinta prieš # minutę}few{Tikrinta prieš # minutes}many{Tikrinta prieš # minutės}other{Tikrinta prieš # minučių}}</translation>
+<translation id="9204021776105550328">Trinama</translation>
 <translation id="9204836675896933765">Liko failų: 1</translation>
 <translation id="9205933215779845960">Nepavyko rasti šio puslapio. Patikrinkite rašybą arba pabandykite ieškoti sistemoje „<ph name="SEARCH_ENGINE" />“.</translation>
 <translation id="9206873250291191720">A</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 10f3432e..1a5888b 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Pieskarties, lai izvērstu</translation>
 <translation id="1289059016768036948">Iespējams, jums būs jāpierakstās Google kontā</translation>
 <translation id="1291207594882862231">Dzēst vēsturi, sīkfailus, vietnes datus, kešatmiņu…</translation>
-<translation id="1293898515599432175">Jūsu paroles tiks dzēstas no Google paroļu pārvaldnieka pārlūkam Chrome (<ph name="CHROME_CHANNEL" />). Tiks saglabāts tikko lejupielādētais paroļu fails.</translation>
 <translation id="129553762522093515">Nesen aizvērtas</translation>
 <translation id="1298077576058087471">Ietaupiet līdz pat 60% datu un lasiet šodienas ziņas</translation>
 <translation id="1303339473099049190">Nevar atrast meklēto paroli. Pārbaudiet pareizrakstību un mēģiniet vēlreiz.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Lai turpinātu, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> kopīgos jūsu vārdu, e-pasta adresi un profila attēlu ar šo vietni.</translation>
 <translation id="5409881200985013443">Vai iesniegt kodu “<ph name="ONE_TIME_CODE" />” ierīcē “<ph name="CLIENT_NAME" />”?</translation>
 <translation id="5414836363063783498">Notiek verifikācija...</translation>
-<translation id="542190472198460451">Visas paroles tiks lejupielādētas jūsu ierīcē un noņemtas no pārlūka Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Šeit tiks parādītas jūsu visvairāk apmeklētās lapas.</translation>
 <translation id="5424588387303617268">Pieejami <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Rediģēt paroli</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Palīdzēt uzlabot Chrome funkcijas un veiktspēju</translation>
 <translation id="8110087112193408731">Vai rādīt jūsu Chrome darbības Digitālajā labjutībā?</translation>
 <translation id="8118117428362942925">Ja vajadzīga palīdzība, palūdziet, lai jums palīdz viens no vecākiem (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Jūsu saglabāto paroļu saraksti pārlūkā Chrome un Chrome versijā <ph name="ERROR_DESCRIPTION" /> tiks sapludināti pēc 121. versijas. Jūs varēsiet automātiski aizpildīt visas saglabātās paroles abās lietotnēs.</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>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
index 4a00140..4f5bf79 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Допрете за да се прошири</translation>
 <translation id="1289059016768036948">Ќе треба да се најавите на вашата сметка на Google</translation>
 <translation id="1291207594882862231">Исчистете ги историјата, колачињата, податоците на сајтот, кешот…</translation>
-<translation id="1293898515599432175">Вашите лозинки ќе се избришат од Google Password Manager за Chrome <ph name="CHROME_CHANNEL" />. Ќе ја задржите датотеката со лозинки што ја презедовте пред малку.</translation>
 <translation id="129553762522093515">Неодамна затворено</translation>
 <translation id="1298077576058087471">Прочитајте ги денешните вести и заштедете до 60 % мобилен интернет</translation>
 <translation id="1303339473099049190">Лозинката не може да се најде. Проверете дали ја внесувате правилно и обидете се повторно.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">За да продолжите, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ќе ги сподели вашето име, адресата на е-пошта и профилната слика со сајтов.</translation>
 <translation id="5409881200985013443">Да се испрати <ph name="ONE_TIME_CODE" /> на <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Се проверува…</translation>
-<translation id="542190472198460451">Сите лозинки ќе се преземат на вашиот уред и ќе се отстранат од Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Најпосетуваните страници ќе се појават тука</translation>
 <translation id="5424588387303617268">Достапни се <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Измени ја лозинката</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Помогнете да се подобрат функциите и изведбата на Chrome</translation>
 <translation id="8110087112193408731">Да се прикажува вашата активност на Chrome во „Дигитална благосостојба“?</translation>
 <translation id="8118117428362942925">Ако ти треба помош, прашај го родителот (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Вашите списоци на зачувани лозинки за Chrome и Chrome <ph name="ERROR_DESCRIPTION" /> ќе се спојат по верзијата 121. Ќе може автоматски да ги пополнувате сите зачувани лозинки во двете апликации.</translation>
 <translation id="8127542551745560481">Изменете ја почетната страница</translation>
 <translation id="8130309322784422030">Вашите складирани податоци за најавување можеби се застарени</translation>
 <translation id="813082847718468539">Прикажи информации за локација</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
index 2ef403c8..f826328a6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">വികസിപ്പിക്കാൻ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="1289059016768036948">Google Account-ലേക്ക് സൈൻ ഇൻ ചെയ്യാൻ നിങ്ങളോട് ആവശ്യപ്പെടും</translation>
 <translation id="1291207594882862231">ചരിത്രവും കുക്കികളും സൈറ്റ് വിവരവും കാഷെയും മായ്‌ക്കുക...</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" /> എന്നതിനുള്ള Google Password Manager-ൽ നിന്ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ ഇല്ലാതാക്കും. ഇപ്പോൾ ഡൗൺലോഡ് ചെയ്ത, പാസ്‌വേഡുകളുടെ ഫയൽ നിങ്ങൾ നിലനിർത്തും.</translation>
 <translation id="129553762522093515">സമീപകാലത്ത് അടച്ചവ</translation>
 <translation id="1298077576058087471">60% വരെ ഡാറ്റ ലാഭിക്കൂ, ഇന്നത്തെ വാർത്തകൾ വായിക്കൂ</translation>
 <translation id="1303339473099049190">പാസ്‌വേഡ് കണ്ടെത്താനായില്ല. അക്ഷരത്തെറ്റ് പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">തുടരാൻ, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> നിങ്ങളുടെ പേരും ഇമെയിൽ വിലാസവും പ്രൊഫൈൽ ചിത്രവും ഈ സൈറ്റുമായി പങ്കിടും.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> എന്നതിൽ <ph name="ONE_TIME_CODE" /> നൽകണോ?</translation>
 <translation id="5414836363063783498">പരിശോധിച്ചുറപ്പിക്കുന്നു...</translation>
-<translation id="542190472198460451">എല്ലാ പാസ്‌വേഡുകളും നിങ്ങളുടെ ഉപകരണത്തിൽ ഡൗൺലോഡ് ചെയ്യും, Chrome <ph name="CHROME_CHANNEL" /> എന്നതിൽ നിന്ന് നീക്കം ചെയ്യും</translation>
 <translation id="5423934151118863508">നിങ്ങളുടെ ഏറ്റവുമധികം സന്ദർശിച്ച പേജുകൾ ഇവിടെ ദൃശ്യമാകും</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB ലഭ്യമാണ്</translation>
 <translation id="543338862236136125">പാസ്‌വേഡ് എഡിറ്റ് ചെയ്യുക</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന്, ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക</translation>
 <translation id="6364438453358674297">ചരിത്രത്തിൽ നിന്ന് നിർദ്ദേശം നീക്കംചെയ്യണോ?</translation>
 <translation id="6380100320871303656">നിങ്ങൾ സന്ദർശിക്കാൻ സാധ്യതയുണ്ടെന്ന് Chrome കരുതുന്ന പേജുകൾ ഇടയ്ക്കിടെ മുൻകൂട്ടി ലോഡ് ചെയ്യുന്നു. ഈ ക്രമീകരണം ഉയർന്ന ഡാറ്റാ ഉപയോഗത്തിന് കാരണമായേക്കാം.</translation>
+<translation id="6382848304055775421">എക്‌സ്‌പോർട്ട് ചെയ്യുന്നു</translation>
 <translation id="6391355955030242704">നിങ്ങളുടെ Chrome വിവരങ്ങൾ സമന്വയിപ്പിക്കാനും കാറിൽ ഡാറ്റ സുരക്ഷിതമായി സൂക്ഷിക്കാനും, സുരക്ഷാ ക്രമീകരണത്തിൽ ഒരു പ്രൊഫൈൽ ലോക്ക് സൃഷ്‌ടിക്കണം. നിങ്ങൾ കാറിൽ പ്രവേശിക്കുമ്പോഴെല്ലാം ഒരു കോഡോ പാസ്‌വേഡോ ഉപയോഗിക്കും.</translation>
 <translation id="6394791151443660613">തിരയുക: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">ലിങ്ക്</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">എല്ലാ സമയത്തും</translation>
 <translation id="6987047470128880212">ഈ ഉപകരണത്തിൽ അദൃശ്യ മോഡ് ലഭ്യമല്ല</translation>
 <translation id="6995899638241819463">പാസ്‌വേഡുകൾ, ഡാറ്റാ ലംഘനത്തിന്റെ ഭാഗമായി വെളിപ്പെട്ടാൽ നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകുന്നു</translation>
+<translation id="6996145122199359148">ഈ പേജ് ഡൗൺലോഡ് ചെയ്യുക</translation>
 <translation id="7020741890149022655">വായനാ ലിസ്റ്റിൽ ചേർക്കൂ <ph name="BEGIN_NEW" />പുതിയത്<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">ബ്രൗസറിൽ തുറക്കുക</translation>
 <translation id="7027549951530753705"><ph name="ITEM_TITLE" /> പുനഃസ്ഥാപിച്ചു</translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Chrome-ന്റെ ഫീച്ചറുകളും പ്രകടനവും മെച്ചപ്പെടുത്താൻ സഹായിക്കുക</translation>
 <translation id="8110087112193408731">ഡിജിറ്റൽ ആരോഗ്യത്തിൽ നിങ്ങളുടെ Chrome ആക്റ്റിവിറ്റി കാണിക്കണോ?</translation>
 <translation id="8118117428362942925">നിങ്ങൾക്ക് സഹായം ആവശ്യമുണ്ടെങ്കിൽ രക്ഷിതാവിനോട് ചോദിക്കുക (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Chrome, Chrome <ph name="ERROR_DESCRIPTION" /> എന്നിവയിൽ സംരക്ഷിച്ച പാസ്‌വേഡുകളുടെ ലിസ്റ്റ്, പതിപ്പ് 121-ന് ശേഷമുള്ളവയിലേക്ക് അപ്ഡേറ്റ് ആയിക്കഴിയുമ്പോൾ ലയിപ്പിക്കും. രണ്ട് ആപ്പുകളിലും നിങ്ങൾ സംരക്ഷിച്ച എല്ലാ പാസ്‌വേഡുകളും സ്വയമേവ പൂരിപ്പിക്കാനാകും.</translation>
 <translation id="8127542551745560481">ഹോംപേജ് എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="8130309322784422030">സംഭരിച്ചിരിക്കുന്ന സൈൻ ഇൻ വിവരങ്ങൾ കാലഹരണപ്പെട്ടതാകാം</translation>
 <translation id="813082847718468539">സൈറ്റ് വിവരങ്ങള്‍ കാണുക</translation>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">നാവിഗേഷൻ ചരിത്രം പകുതിയായി തുറന്നിരിക്കുന്നു</translation>
 <translation id="9190276265094487094">സമന്വയിപ്പിച്ച എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ ചരിത്രം ഉണ്ടാകുമെന്നതിനാൽ ചെയ്തുകൊണ്ടിരുന്ന കാര്യങ്ങൾ നിങ്ങൾക്ക് തുടരാനാകും</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{ഒരു മിനിറ്റ് മുമ്പ് പരിശോധിച്ചു}other{# മിനിറ്റ് മുമ്പ് പരിശോധിച്ചു}}</translation>
+<translation id="9204021776105550328">ഇല്ലാതാക്കുന്നു</translation>
 <translation id="9204836675896933765">ഒരു ഫയൽ ശേഷിക്കുന്നു</translation>
 <translation id="9205933215779845960">ആ പേജ് കണ്ടെത്താനാകുന്നില്ല. നിങ്ങളുടെ സ്പെല്ലിംഗ് പരിശോധിക്കുകയോ <ph name="SEARCH_ENGINE" /> എന്നതിൽ തിരയുകയോ ചെയ്യുക.</translation>
 <translation id="9206873250291191720">A</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 6dfefbc..4f927064 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Дэлгэхийн тулд товших</translation>
 <translation id="1289059016768036948">Танаас Google Бүртгэлдээ нэвтрэхийг хүснэ</translation>
 <translation id="1291207594882862231">Түүх, күүки, сайтын өгөгдөл, нөөцийг устгах...</translation>
-<translation id="1293898515599432175">Таны нууц үгнүүдийг Chrome <ph name="CHROME_CHANNEL" />-н Google Password Manager-с устгана. Та дөнгөж сая татсан нууц үгнүүдийн файлаа хадгална.</translation>
 <translation id="129553762522093515">Саяхан хаагдсан</translation>
 <translation id="1298077576058087471">Датагаа 60% хүртэл хэмнэж, өнөөдрийн мэдээг уншаарай</translation>
 <translation id="1303339473099049190">Тийм нууц үг олж чадсангүй. Үсгийн алдаагаа шалгаад дахин оролдоно уу.</translation>
@@ -821,7 +820,6 @@
 <translation id="5401851137404501592">Үргэлжүүлэхийн тулд <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> таны нэр, имэйл хаяг болон профайл зургийг энэ сайттай хуваалцана.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> дээр <ph name="ONE_TIME_CODE" />-г илгээх үү?</translation>
 <translation id="5414836363063783498">Баталгаажуулж байна ...</translation>
-<translation id="542190472198460451">Бүх нууц үгийг таны төхөөрөмжид татах бөгөөд Chrome-н <ph name="CHROME_CHANNEL" />-с хасна</translation>
 <translation id="5423934151118863508">Таны хамгийн их зочилсон хуудас энд гарч ирэх болно</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> ГБ боломжтой</translation>
 <translation id="543338862236136125">Нууц үг засах</translation>
@@ -1365,7 +1363,6 @@
 <translation id="8110024788458304985">Chrome-н онцлогууд болон гүйцэтгэлийг сайжруулахад туслах</translation>
 <translation id="8110087112193408731">Chrome-н үйл ажиллагаагаа Дижитал хэрэглээнд харуулах уу?</translation>
 <translation id="8118117428362942925">Хэрэв танд тусламж хэрэгтэй бол эцэг эхээсээ (<ph name="PARENT_NAME" />) хүснэ үү</translation>
-<translation id="8124758083429256800">Таны Chrome-д хадгалсан нууц үгнүүдийн жагсаалт болон Chrome <ph name="ERROR_DESCRIPTION" />-г 121-р хувилбарын дараа нэгтгэнэ. Та хоёр аппад хоёуланд нь хадгалсан бүх нууц үгээ автоматаар бөглөх боломжтой болно.</translation>
 <translation id="8127542551745560481">Нүүр хуудсыг засах</translation>
 <translation id="8130309322784422030">Таны хадгалсан нэвтрэх мэдээлэл хуучирсан байж болзошгүй</translation>
 <translation id="813082847718468539">Сайтын мэдээллийг үзэх</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
index 4772a27..2bdb2f10 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">विस्तृत करण्यासाठी टॅप करा</translation>
 <translation id="1289059016768036948">तुम्हाला तुमच्या Google खाते मध्ये साइन इन करण्यास सांगितले जाईल</translation>
 <translation id="1291207594882862231">इतिहास, कुकी, साइट डेटा, कॅशे  साफ करा…</translation>
-<translation id="1293898515599432175">Google Password Manager मधून Chrome <ph name="CHROME_CHANNEL" /> साठी तुमचे पासवर्ड हटवले जातील. तुम्ही आताच डाउनलोड केलेली पासवर्डची फाइल तुमच्याजवळ ठेवाल.</translation>
 <translation id="129553762522093515">अलीकडे बंद केलेले</translation>
 <translation id="1298077576058087471">कमाल ६०% डेटाची बचत करा, आजच्या बातम्या वाचा</translation>
 <translation id="1303339473099049190">तो पासवर्ड सापडत नाही. तुमचे शब्दलेखन तपासा आणि पुन्हा प्रयत्न करा.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">पुढे सुरू ठेवण्यासाठी, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> तुमचे नाव, ईमेल अ‍ॅड्रेस आणि प्रोफाइल फोटो या साइटसह शेअर करेल.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> वर <ph name="ONE_TIME_CODE" /> सबमिट करायचा का?</translation>
 <translation id="5414836363063783498">सत्यापित करत आहे...</translation>
-<translation id="542190472198460451">सर्व पासवर्ड तुमच्या डिव्हाइसवर डाउनलोड केले जातील आणि Chrome <ph name="CHROME_CHANNEL" /> मधून काढून टाकले जातील</translation>
 <translation id="5423934151118863508">तुमची सर्वाधिक भेट दिलेली पेज येथे दिसतील</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB उपलब्ध आहे</translation>
 <translation id="543338862236136125">पासवर्ड संपादित करा</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chrome ची वैशिष्ट्ये आणि परफॉर्मन्समध्ये सुधारणा करण्यात मदत करा</translation>
 <translation id="8110087112193408731">Digital wellbeing मध्ये तुमची Chrome ॲक्टिव्हिटी दाखवायची का?</translation>
 <translation id="8118117428362942925">तुम्हाला मदत हवी असल्यास, तुमचे पालक (<ph name="PARENT_NAME" />) यांना विचारा</translation>
-<translation id="8124758083429256800">Chrome आणि Chrome <ph name="ERROR_DESCRIPTION" /> साठी सेव्ह केलेल्या तुमच्या पासवर्डच्या सूची 121 या आवृत्तीनंतर मर्ज होतील. तुमचे सेव्ह केलेले पासवर्ड तुम्ही दोन्ही अ‍ॅप्सवर ऑटोफिल करू शकाल.</translation>
 <translation id="8127542551745560481">होमपेज संपादित करा</translation>
 <translation id="8130309322784422030">तुमची स्टोअर केलेली साइन-इनशी संबंधित माहिती कदाचित कालबाह्य झाली आहे</translation>
 <translation id="813082847718468539">साइटची माहिती पहा</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 806d2161..252ad0f 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Ketik untuk kembangkan</translation>
 <translation id="1289059016768036948">Anda mungkin akan diminta untuk log masuk ke Google Account anda</translation>
 <translation id="1291207594882862231">Hapuskan sejarah, kuki, data tapak, cache...</translation>
-<translation id="1293898515599432175">Kata laluan anda akan dipadamkan daripada Google Password Manager untuk Chrome <ph name="CHROME_CHANNEL" />. Anda akan menyimpan fail kata laluan yang baru anda muat turun.</translation>
 <translation id="129553762522093515">Ditutup baru-baru ini</translation>
 <translation id="1298077576058087471">Jimat sehingga 60% data, baca berita hari ini</translation>
 <translation id="1303339473099049190">Tidak menemukan kata laluan itu. Semak ejaan anda dan cuba lagi.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Untuk meneruskan, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> akan berkongsi nama, alamat e-mel dan gambar profil anda dengan laman ini.</translation>
 <translation id="5409881200985013443">Serahkan <ph name="ONE_TIME_CODE" /> pada <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Mengesahkan…</translation>
-<translation id="542190472198460451">Semua kata laluan akan dimuat turun pada peranti anda dan dialih keluar daripada Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Halaman yang paling kerap anda kunjungi akan muncul di sini</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB tersedia</translation>
 <translation id="543338862236136125">Edit kata laluan</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">Untuk memulakan penyegerakan, sahkan orang itu ialah anda</translation>
 <translation id="6364438453358674297">Alih keluar cadangan daripada sejarah?</translation>
 <translation id="6380100320871303656">Lebih kerap mempramuat halaman yang diramal oleh Chrome akan anda lawati. Tetapan ini boleh menyebabkan penggunaan data meningkat.</translation>
+<translation id="6382848304055775421">Mengeksport</translation>
 <translation id="6391355955030242704">Untuk menyegerakkan maklumat Chrome anda dan melindungi data anda di dalam kereta, anda perlu membuat kunci profil dalam tetapan keselamatan anda. Anda akan menggunakan kod dan kata laluan setiap kali anda memasuki kereta.</translation>
 <translation id="6394791151443660613">Carian: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">PAUTAN</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">Sepanjang masa</translation>
 <translation id="6987047470128880212">Inkognito tidak tersedia pada peranti ini</translation>
 <translation id="6995899638241819463">Beri amaran kepada anda jika kata laluan terdedah dalam pelanggaran data</translation>
+<translation id="6996145122199359148">Muat turun halaman ini</translation>
 <translation id="7020741890149022655">Tambah pd senarai bacaan <ph name="BEGIN_NEW" />Baru<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">Buka dalam penyemak imbas</translation>
 <translation id="7027549951530753705"><ph name="ITEM_TITLE" /> dipulihkan</translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Bantu kami memperbaik ciri dan prestasi Chrome</translation>
 <translation id="8110087112193408731">Tunjukkan aktiviti Chrome anda dalam Kesejahteraan Digital?</translation>
 <translation id="8118117428362942925">Jika anda memerlukan bantuan, minta daripada ibu/bapa anda (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Senarai kata laluan anda yang disimpan untuk Chrome dan <ph name="ERROR_DESCRIPTION" /> Chrome akan digabungkan selepas versi 121. Anda akan dapat membuat autolengkap semua kata laluan anda yang disimpan pada kedua-dua apl.</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>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">Sejarah navigasi separa terbuka</translation>
 <translation id="9190276265094487094">Sejarah anda boleh didapati pada semua peranti tersegerak anda supaya anda boleh meneruskan perkara yang sedang anda lakukan</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{Disemak 1 minit yang lalu}other{Disemak # minit yang lalu}}</translation>
+<translation id="9204021776105550328">Memadamkan</translation>
 <translation id="9204836675896933765">1 fail lagi</translation>
 <translation id="9205933215779845960">Tidak menemukan halaman itu. Semak ejaan anda atau cuba cari pada <ph name="SEARCH_ENGINE" />.</translation>
 <translation id="9206873250291191720">A</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 d1ff4dc..d3f8e90 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">ချဲ့ရန် တို့ပါ</translation>
 <translation id="1289059016768036948">သင့်အား Google Account သို့ လက်မှတ်ထိုးဝင်ခိုင်းပါမည်</translation>
 <translation id="1291207594882862231">မှတ်တမ်း၊ ကွတ်ကီး၊ ဆိုက်ဒေတာ၊ ကက်ရှ်များကို ရှင်းလင်းပါ...</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" /> အတွက် Google Password Manager မှ သင့်စကားဝှက်များကို ဖျက်ပါမည်။ ယခုတင် သင်ဒေါင်းလုဒ်လုပ်ထားသော စကားဝှက်ဖိုင်ကို ဆက်သိမ်းထားပါမည်။</translation>
 <translation id="129553762522093515">မကြာသေးခင်က ပိတ်ထားခဲ့သည်</translation>
 <translation id="1298077576058087471">ဒေတာ ၆၀ ရာခိုင်နှုန်းအထိ ချွေတာပါ၊ ယနေ့သတင်းများကို ဖတ်ပါ</translation>
 <translation id="1303339473099049190">ထိုစကားဝှက်ကို ရှာမတွေ့ပါ။ စာလုံးပေါင်းစစ်ဆေးပြီး ထပ်စမ်းကြည့်ပါ။</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">ရှေ့ဆက်ရန် <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> က သင့်အမည်၊ အီးမေးလ်လိပ်စာနှင့် ပရိုဖိုင်ပုံကို ဤဝဘ်ဆိုက်အား မျှဝေမည်။</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> သို့ <ph name="ONE_TIME_CODE" /> ပို့မလား။</translation>
 <translation id="5414836363063783498">စိစစ်နေ…</translation>
-<translation id="542190472198460451">စကားဝှက်အားလုံးကို သင်၏စက်တွင် ဒေါင်းလုဒ်လုပ်ပြီး Chrome <ph name="CHROME_CHANNEL" /> မှ ဖယ်ရှားလိုက်မည်</translation>
 <translation id="5423934151118863508">သင် အများဆုံး ဝင်ကြည့်ခဲ့သည့် စာမျက်နှာများ ဒီမှာ ပေါ်လာမည်</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB အသုံးပြုနိုင်ပါသည်</translation>
 <translation id="543338862236136125">စကားဝှက်ကို တည်းဖြတ်ခြင်း</translation>
@@ -1365,7 +1363,6 @@
 <translation id="8110024788458304985">Chrome\u2019s ၏ ဝန်ဆောင်မှုနှင့် စွမ်းဆောင်ရည် ပိုကောင်းလာစေရန် ကူညီခြင်း</translation>
 <translation id="8110087112193408731">'ဒစ်ဂျစ်တယ် အာရောဂျံ' အတွင်း သင်၏ Chrome လုပ်ဆောင်ချက်ကို ပြစေလိုပါသလား။</translation>
 <translation id="8118117428362942925">အကူအညီလိုပါက သင့်မိဘ (<ph name="PARENT_NAME" />) ကိုတောင်းပါ</translation>
-<translation id="8124758083429256800">Chrome နှင့် Chrome <ph name="ERROR_DESCRIPTION" /> တို့အတွက် သိမ်းထားသော စကားဝှက်စာရင်းကို ဗားရှင်း 121 နောက်ပိုင်းတွင် ပေါင်းစည်းပါမည်။ သင်၏ သိမ်းထားသော စကားဝှက်အားလုံးကို အက်ပ်နှစ်ခုလုံးတွင် အော်တိုဖြည့်နိုင်ပါမည်။</translation>
 <translation id="8127542551745560481">ပင်မစာမျက်နှာအား တည်းဖြတ်ရန်</translation>
 <translation id="8130309322784422030">သိမ်းထားသော လက်မှတ်ထိုးဝင်သည့် အချက်အလက် ဟောင်းနေခြင်း ဖြစ်နိုင်သည်</translation>
 <translation id="813082847718468539">ဆိုက် အချက်အလက်များကို ကြည့်ရန်</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
index 32582c3..f12ab34 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">विस्तृत गर्न ट्याप गर्नुहोस्</translation>
 <translation id="1289059016768036948">तपाईंलाई आफ्नो Google खातामा साइन इन गर्न लगाइने छ</translation>
 <translation id="1291207594882862231">इतिहास, कुकी, साइट सम्बन्धी डेटा, क्यासलाई खाली गर्नुहोस्…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" /> का हकमा Google पासवर्ड म्यानेजरबाट तपाईंका पासवर्डहरू मेटाइने छन्। तपाईं आफूले भर्खरै डाउनलोड गरेको पासवर्ड फाइल सेभ गर्न सक्नु हुने छ।</translation>
 <translation id="129553762522093515">हालैमा बन्द गरिएको</translation>
 <translation id="1298077576058087471">६०% सम्म डेटा बचत गर्नुहोस्, आजको समाचार पढ्नुहोस्</translation>
 <translation id="1303339473099049190">उक्त पासवर्ड फेला पार्न सकिएन। आफ्नो हिज्जेको जाँच गरी फेरि प्रयास गर्नुहोस्।</translation>
@@ -821,7 +820,6 @@
 <translation id="5401851137404501592"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ले जारी राख्ने प्रयोजनका लागि यो साइटसँग तपाईंको नाम, इमेल ठेगाना र प्रोफाइल फोटो सेयर गर्ने छ।</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> मा <ph name="ONE_TIME_CODE" /> पेस गर्ने हो?</translation>
 <translation id="5414836363063783498">प्रमाणीकरण गर्दै...</translation>
-<translation id="542190472198460451">सबै पासवर्डहरू तपाईंको डिभाइसमा डाउनलोड गरिने छन् र Chrome <ph name="CHROME_CHANNEL" /> बाट हटाइने छन्</translation>
 <translation id="5423934151118863508">तपाईँले धेरै भ्रमण गर्नुभएका पृष्ठहरू यहाँ देखिने छन्।</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> जि.बि. उपलब्ध छ</translation>
 <translation id="543338862236136125">पासवर्ड सम्पादन गर्नुहोस्</translation>
@@ -1365,7 +1363,6 @@
 <translation id="8110024788458304985">Chrome का सुविधाको गुणस्तर र यसको पर्फर्मेन्स सुधार्न मद्दत गर्नुहोस्</translation>
 <translation id="8110087112193408731">तपाईंले Chrome मा गर्नुभएका क्रियाकलाप डिजिटल वेलबिइङमा देखाउने हो?</translation>
 <translation id="8118117428362942925">मद्दत चाहिएका खण्डमा आफ्ना अभिभावक (<ph name="PARENT_NAME" />) लाई अनुरोध गर्नुहोस्</translation>
-<translation id="8124758083429256800">Chrome र Chrome <ph name="ERROR_DESCRIPTION" /> मा तपाईंका सेभ गरिएका पासवर्डका सूचीहरू संस्करण १२१ देखि मर्ज हुने छन्। तपाईं आफ्ना सेभ गरिएका सबै पासवर्डहरू दुवै एपमा स्वतः भर्न सक्नु हुने छ।</translation>
 <translation id="8127542551745560481">गृहपृष्ठ सम्पदान गर्नुहोस्</translation>
 <translation id="8130309322784422030">तपाईंले भण्डारण गर्नुभएको युजरनेम र पासवर्ड पुरानो हुन सक्छ</translation>
 <translation id="813082847718468539">साइट जानकारी हेर्नुहोस्</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
index 425c584..f23c3d3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Tik om uit te vouwen</translation>
 <translation id="1289059016768036948">Je wordt gevraagd in te loggen op je Google-account.</translation>
 <translation id="1291207594882862231">Geschiedenis, cookies, sitegegevens, cachegeheugen wissen</translation>
-<translation id="1293898515599432175">Je wachtwoorden worden verwijderd uit Google Wachtwoordmanager voor Chrome <ph name="CHROME_CHANNEL" />. Je houdt het wachtwoordbestand dat je net hebt gedownload.</translation>
 <translation id="129553762522093515">Recent gesloten</translation>
 <translation id="1298077576058087471">Bespaar tot 60% data, lees het nieuws van vandaag</translation>
 <translation id="1303339473099049190">Kan dat wachtwoord niet vinden. Check de spelling en probeer het opnieuw.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> deelt je naam, e-mailadres en profielfoto met deze site om door te gaan.</translation>
 <translation id="5409881200985013443"><ph name="ONE_TIME_CODE" /> doorgeven op <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verifiëren…</translation>
-<translation id="542190472198460451">Alle wachtwoorden worden gedownload op je apparaat en verwijderd uit Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Hier zie je de meest bezochte pagina's</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB beschikbaar</translation>
 <translation id="543338862236136125">Wachtwoord bewerken</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Help de functies en prestaties van Chrome te verbeteren</translation>
 <translation id="8110087112193408731">Chrome-activiteit in Digitaal welzijn bekijken?</translation>
 <translation id="8118117428362942925">Vraag zo nodig je ouder (<ph name="PARENT_NAME" />) om hulp</translation>
-<translation id="8124758083429256800">Je lijsten met opgeslagen wachtwoorden voor Chrome en Chrome <ph name="ERROR_DESCRIPTION" /> worden samengevoegd na versie 121. Je kunt al je opgeslagen wachtwoorden dan automatisch invullen in beide apps.</translation>
 <translation id="8127542551745560481">Homepage bewerken</translation>
 <translation id="8130309322784422030">Je opgeslagen inloggegevens zijn misschien verouderd</translation>
 <translation id="813082847718468539">Sitegegevens bekijken</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
index af463034..15f04c2 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Trykk for å vise</translation>
 <translation id="1289059016768036948">Du blir bedt om å logge på Google-kontoen din</translation>
 <translation id="1291207594882862231">Slett loggoppføringer, informasjonskapsler, nettstedsdata, bufferen …</translation>
-<translation id="1293898515599432175">Passordene dine blir slettet fra Google Passordlagring for Chrome <ph name="CHROME_CHANNEL" />. Du beholder passordfilen du nettopp lastet ned.</translation>
 <translation id="129553762522093515">Nylig lukket</translation>
 <translation id="1298077576058087471">Spar opptil 60 % data – les dagens nyheter</translation>
 <translation id="1303339473099049190">Finner ikke det passordet. Kontroller stavemåten, og prøv på nytt.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">For at du skal kunne fortsette, må <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> dele navnet ditt, e-postadressen din og profilbildet ditt med dette nettstedet.</translation>
 <translation id="5409881200985013443">Vil du sende inn <ph name="ONE_TIME_CODE" /> på <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Bekrefter …</translation>
-<translation id="542190472198460451">Alle passord blir lastet ned på enheten og fjernet fra Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Sidene du besøker mest, vises her</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB er tilgjengelig</translation>
 <translation id="543338862236136125">Endre passordet</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Bidra til å gjøre funksjonene og ytelsen til Chrome bedre</translation>
 <translation id="8110087112193408731">Vil du vise Chrome-aktiviteten din i Digital balanse?</translation>
 <translation id="8118117428362942925">Spør forelderen din (<ph name="PARENT_NAME" />) hvis du trenger hjelp</translation>
-<translation id="8124758083429256800">Listene dine over lagrede passord for Chrome og Chrome <ph name="ERROR_DESCRIPTION" /> blir slått sammen etter versjon 121. Da kan du autofylle alle de lagrede passordene dine i begge appene.</translation>
 <translation id="8127542551745560481">Endre startsiden</translation>
 <translation id="8130309322784422030">Den lagrede påloggingsinformasjonen din er kanskje utdatert</translation>
 <translation id="813082847718468539">Vis nettstedsinformasjon</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
index a39a95d0..f7a4251 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">ପ୍ରସାରଣ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ</translation>
 <translation id="1289059016768036948">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସାଇନ ଇନ କରିବା ପାଇଁ ଆପଣଙ୍କୁ କୁହାଯିବ</translation>
 <translation id="1291207594882862231">ଇତିବୃତ୍ତି, କୁକୀ, ସାଇଟ୍ ଡାଟା, କ୍ୟାଚିକୁ ଖାଲି କରନ୍ତୁ…</translation>
-<translation id="1293898515599432175">Chrome ପାଇଁ Google Password Manager <ph name="CHROME_CHANNEL" />ରୁ ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକ ଡିଲିଟ ହୋଇଯିବ। ଆପଣ ଏବେ ଡାଉନଲୋଡ କରିଥିବା ପାସୱାର୍ଡ ଫାଇଲ ରଖିବେ।</translation>
 <translation id="129553762522093515">ବର୍ତ୍ତମାନ ବନ୍ଦ ହୋଇଛି</translation>
 <translation id="1298077576058087471">60% ପର୍ଯ୍ୟନ୍ତ ଡାଟା ସେଭ୍ କରି, ଆଜିର ସମାଚାର ପଢ଼ନ୍ତୁ</translation>
 <translation id="1303339473099049190">ସେହି ପାସୱାର୍ଡ ମିଳୁନାହିଁ। ଆପଣଙ୍କର ବନାନ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
@@ -821,7 +820,6 @@
 <translation id="5401851137404501592">ଜାରି ରଖିବାକୁ, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ଏହି ସାଇଟ ସହ ଆପଣଙ୍କ ନାମ, ଇମେଲ ଠିକଣା ଏବଂ ପ୍ରୋଫାଇଲ ଛବିକୁ ସେୟାର କରିବ।</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" />ରେ <ph name="ONE_TIME_CODE" /> ଦାଖଲ କରିବେ?</translation>
 <translation id="5414836363063783498">ଯାଞ୍ଚ କରୁଛି…</translation>
-<translation id="542190472198460451">ସମସ୍ତ ପାସୱାର୍ଡକୁ ଆପଣଙ୍କ ଡିଭାଇସରେ ଡାଉନଲୋଡ କରାଯିବ ଏବଂ Chrome <ph name="CHROME_CHANNEL" />ରୁ କାଢ଼ି ଦିଆଯିବ</translation>
 <translation id="5423934151118863508">ଆପଣଙ୍କ ଦ୍ୱାରା ସବୁଠାରୁ ଅଧିକ ଦେଖାଯାଇଥିବା ପୃଷ୍ଠା ଏଠାରେ ଦେଖାଯିବ</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB ଉପଲବ୍ଧ ଅଛି</translation>
 <translation id="543338862236136125">ପାସ୍‍ୱାର୍ଡ ସମ୍ପାଦନ କରନ୍ତୁ</translation>
@@ -1365,7 +1363,6 @@
 <translation id="8110024788458304985">Chromeର ଫିଚର ଏବଂ ପରଫରମାନ୍ସକୁ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରନ୍ତୁ</translation>
 <translation id="8110087112193408731">ଡିଜିଟାଲ୍ ୱେଲ୍‍ବିଂରେ ଆପଣଙ୍କର Chrome କାର୍ଯ୍ୟକଳାପ ଦେଖାଇବେ?</translation>
 <translation id="8118117428362942925">ଯଦି ତୁମେ ସହାୟତା ଆବଶ୍ୟକ କର, ତେବେ ତୁମ ବାପାମା (<ph name="PARENT_NAME" />)ଙ୍କୁ କୁହ</translation>
-<translation id="8124758083429256800">Chrome ଏବଂ Chrome <ph name="ERROR_DESCRIPTION" /> ପାଇଁ ଆପଣଙ୍କ ସେଭ କରାଯାଇଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକର ତାଲିକା ଭର୍ସନ 121 ପରେ ମର୍ଜ ହେବ। ଆପଣ ଆପଣଙ୍କର ସମସ୍ତ ସେଭ କରାଯାଇଥିବା ପାସୱାର୍ଡକୁ ଉଭୟ ଆପ୍ସରେ ଅଟୋଫିଲ କରିବାକୁ ସକ୍ଷମ ହେବେ।</translation>
 <translation id="8127542551745560481">ମୂଳପୃଷ୍ଠାକୁ ସମ୍ପାଦନ କରନ୍ତୁ</translation>
 <translation id="8130309322784422030">ଆପଣ ଷ୍ଟୋର୍ କରିଥିବା ସାଇନ୍-ଇନ୍ ସୂଚନା ପୁରୁଣା ହୋଇଥାଇପାରେ</translation>
 <translation id="813082847718468539">ସାଇଟ୍‍ର ସୂଚନା ଦେଖନ୍ତୁ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
index 51151d7..1d8ea856 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">ਵਿਸਤਾਰ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ</translation>
 <translation id="1289059016768036948">ਤੁਹਾਨੂੰ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ</translation>
 <translation id="1291207594882862231">ਇਤਿਹਾਸ, ਕੁਕੀਜ਼, ਸਾਈਟ ਡਾਟਾ, ਕੈਸ਼ੇ ਕਲੀਅਰ ਕਰੋ…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" /> ਲਈ ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ ਨੂੰ Google Password Manager ਤੋਂ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਹੁਣੇ ਡਾਊਨਲੋਡ ਕੀਤੀ ਗਈ ਪਾਸਵਰਡ ਫ਼ਾਈਲ ਤੁਹਾਡੇ ਕੋਲ ਰਹੇਗੀ।</translation>
 <translation id="129553762522093515">ਹਾਲ ਵਿੱਚ ਹੀ ਬੰਦ ਕੀਤੇ</translation>
 <translation id="1298077576058087471">60% ਤੱਕ ਡਾਟਾ ਬਚਾਓ, ਅੱਜ ਦੀਆਂ ਖਬਰਾਂ ਪੜ੍ਹੋ</translation>
 <translation id="1303339473099049190">ਇਹ ਪਾਸਵਰਡ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ। ਆਪਣੇ ਸ਼ਬਦ-ਜੋੜਾਂ ਦੀ ਜਾਂਚ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">ਜਾਰੀ ਰੱਖਣ ਲਈ, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ਤੁਹਾਡੇ ਨਾਮ, ਈਮੇਲ ਪਤੇ ਅਤੇ ਪ੍ਰੋਫਾਈਲ ਤਸਵੀਰ ਨੂੰ ਇਸ ਸਾਈਟ ਨਾਲ ਸਾਂਝਾ ਕਰੇਗਾ।</translation>
 <translation id="5409881200985013443">ਕੀ <ph name="CLIENT_NAME" /> 'ਤੇ <ph name="ONE_TIME_CODE" /> ਸਪੁਰਦ ਕਰਨਾ ਹੈ?</translation>
 <translation id="5414836363063783498">ਪ੍ਰਮਾਣਿਤ ਕਰ ਰਿਹਾ ਹੈ...</translation>
-<translation id="542190472198460451">ਸਾਰੇ ਪਾਸਵਰਡ ਤੁਹਾਡੇ ਡੀਵਾਈਸ 'ਤੇ ਡਾਊਨਲੋਡ ਕੀਤੇ ਜਾਣਗੇ ਅਤੇ Chrome <ph name="CHROME_CHANNEL" /> ਤੋਂ ਹਟਾ ਦਿੱਤੇ ਜਾਣਗੇ</translation>
 <translation id="5423934151118863508">ਤੁਹਾਡੇ ਸਭ ਤੋਂ ਵੱਧ ਵਿਜਿਟ ਕੀਤੇ ਸਫ਼ੇ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੇ</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB ਉਪਲਬਧ ਹੈ</translation>
 <translation id="543338862236136125">ਪਾਸਵਰਡ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chrome ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੋ</translation>
 <translation id="8110087112193408731">ਕੀ ਤੁਸੀਂ ਡਿਜੀਟਲ ਜੀਵਨਸ਼ੈਲੀ ਵਿੱਚ ਆਪਣੀ Chrome ਸਰਗਰਮੀ ਦਿਖਾਉਣੀ ਹੈ?</translation>
 <translation id="8118117428362942925">ਜੇ ਤੁਹਾਨੂੰ ਮਦਦ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਆਪਣੇ ਮਾਂ-ਪਿਓ (<ph name="PARENT_NAME" />) ਨੂੰ ਕਹੋ</translation>
-<translation id="8124758083429256800">Chrome ਅਤੇ Chrome <ph name="ERROR_DESCRIPTION" /> ਲਈ ਤੁਹਾਡੇ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡਾਂ ਦੀਆਂ ਸੂਚੀਆਂ ਨੂੰ ਵਰਜਨ 121 ਤੋਂ ਬਾਅਦ ਮਿਲਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਤੁਸੀਂ ਦੋਵਾਂ ਐਪਾਂ 'ਤੇ ਆਪਣੇ ਸਾਰੇ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਆਟੋਫਿਲ ਕਰ ਸਕੋਗੇ।</translation>
 <translation id="8127542551745560481">ਹੋਮਪੇਜ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation>
 <translation id="8130309322784422030">ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਟੋਰ ਕੀਤੀ ਸਾਈਨ-ਇਨ ਜਾਣਕਾਰੀ ਸ਼ਾਇਦ ਪੁਰਾਣੀ ਹੋਵੇ</translation>
 <translation id="813082847718468539">ਸਾਈਟ ਜਾਣਕਾਰੀ ਦੇਖੋ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
index 46c1b30..234358f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Kliknij, by rozwinąć</translation>
 <translation id="1289059016768036948">Poprosimy Cię o zalogowanie się na konto Google</translation>
 <translation id="1291207594882862231">Czyszczenie historii, plików cookie, danych witryn, pamięci podręcznej…</translation>
-<translation id="1293898515599432175">Twoje hasła zostaną usunięte z Menedżera haseł Google dla Chrome w wersji: <ph name="CHROME_CHANNEL" />. Pobrany przed chwilą plik z hasłami pozostanie zapisany na urządzeniu.</translation>
 <translation id="129553762522093515">Ostatnio zamknięte</translation>
 <translation id="1298077576058087471">Oszczędź do 60% danych, przeczytaj dzisiejsze wiadomości</translation>
 <translation id="1303339473099049190">Nie udało się znaleźć tego hasła. Sprawdź pisownię i spróbuj jeszcze raz.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> udostępni teraz witrynie Twoje imię i nazwisko, adres e-mail i zdjęcie profilowe.</translation>
 <translation id="5409881200985013443">Przesłać <ph name="ONE_TIME_CODE" /> na: <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Weryfikuję…</translation>
-<translation id="542190472198460451">Wszystkie hasła zostaną pobrane na urządzenie i usunięte z Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Tu pojawią się strony, na które najczęściej wchodzisz</translation>
 <translation id="5424588387303617268">Dostępne <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Edytuj hasło</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">Aby rozpocząć synchronizację, potwierdź swoją tożsamość</translation>
 <translation id="6364438453358674297">Usunąć sugestię z historii?</translation>
 <translation id="6380100320871303656">Częściej wczytuje strony, w przypadku których Chrome przewiduje, że prawdopodobieństwo ich odwiedzin jest duże. Gdy ustawienie jest aktywne, zużycie danych może być większe.</translation>
+<translation id="6382848304055775421">Eksportuję</translation>
 <translation id="6391355955030242704">Aby synchronizować informacje w Chrome i zabezpieczyć dane w samochodzie, musisz utworzyć blokadę profilu w ustawieniach zabezpieczeń. Za każdym razem, gdy wsiądziesz do samochodu, będziesz podawać kod lub hasło.</translation>
 <translation id="6394791151443660613">Szukaj: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">LINK</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">Od początku</translation>
 <translation id="6987047470128880212">Na tym urządzeniu tryb incognito jest niedostępny</translation>
 <translation id="6995899638241819463">Ostrzegaj, jeśli wskutek naruszenia bezpieczeństwa danych doszło do ujawnienia haseł</translation>
+<translation id="6996145122199359148">Pobierz tę stronę</translation>
 <translation id="7020741890149022655">Dodaj do listy Do przeczytania <ph name="BEGIN_NEW" />Nowe<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">Otwórz w przeglądarce</translation>
 <translation id="7027549951530753705">Przywrócono: <ph name="ITEM_TITLE" /></translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Pomóż w ulepszaniu funkcji i działania Chrome</translation>
 <translation id="8110087112193408731">Pokazywać Twoją aktywność w Chrome w Cyfrowej równowadze?</translation>
 <translation id="8118117428362942925">Jeśli potrzebujesz pomocy, poproś rodzica (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Twoje listy zapisanych haseł do Chrome i Chrome <ph name="ERROR_DESCRIPTION" /> zostaną scalone po wersji 121. Będziesz mieć możliwość używania wszystkich zapisanych haseł przy autouzupełnianiu w obu aplikacjach.</translation>
 <translation id="8127542551745560481">Edytuj stronę główną</translation>
 <translation id="8130309322784422030">Twoje zapisane dane logowania mogą być nieaktualne</translation>
 <translation id="813082847718468539">Wyświetl informacje o witrynie</translation>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">Historia nawigacji jest otwarta w połowie</translation>
 <translation id="9190276265094487094">Będziesz mieć dostęp do swojej historii na wszystkich zsynchronizowanych urządzeniach, aby możliwe było kontynuowanie przerwanych działań</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{Sprawdzano minutę temu}few{Sprawdzano # minuty temu}many{Sprawdzano # minut temu}other{Sprawdzano # minuty temu}}</translation>
+<translation id="9204021776105550328">Usuwam</translation>
 <translation id="9204836675896933765">Pozostał jeden plik</translation>
 <translation id="9205933215779845960">Nie można znaleźć tej strony. Sprawdź pisownię lub spróbuj wyszukać w <ph name="SEARCH_ENGINE" />.</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
index ddbd0185..dabb6892 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Toque para expandir</translation>
 <translation id="1289059016768036948">Será necessário fazer login na sua Conta do Google</translation>
 <translation id="1291207594882862231">Limpar histórico, cookies, dados do site, cache…</translation>
-<translation id="1293898515599432175">Suas senhas serão excluídas do Gerenciador de senhas do Google para o Chrome <ph name="CHROME_CHANNEL" />. Elas vão estar no arquivo de senhas que você acabou de transferir por download.</translation>
 <translation id="129553762522093515">Fechadas recentemente</translation>
 <translation id="1298077576058087471">Economize até 60% de dados enquanto lê as notícias de hoje</translation>
 <translation id="1303339473099049190">Não foi possível encontrar essa senha. Verifique a ortografia e tente novamente.</translation>
@@ -823,7 +822,6 @@
 <translation id="5401851137404501592">Para continuar, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> vai compartilhar seu nome, endereço de e-mail e foto do perfil com esse site.</translation>
 <translation id="5409881200985013443">Enviar <ph name="ONE_TIME_CODE" /> no <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verificando...</translation>
-<translation id="542190472198460451">Todas as senhas serão transferidas por download para seu dispositivo e removidas do Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Suas páginas mais visitadas aparecerão aqui</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB disponível(is)</translation>
 <translation id="543338862236136125">Editar senha</translation>
@@ -1367,7 +1365,6 @@
 <translation id="8110024788458304985">Ajudar a melhorar os recursos e o desempenho do Chrome</translation>
 <translation id="8110087112193408731">Mostrar sua atividade do Chrome no Bem-estar digital?</translation>
 <translation id="8118117428362942925">Se precisar de ajuda, entre em contato com seu familiar responsável (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Suas listas de senhas salvas do Chrome e do Chrome <ph name="ERROR_DESCRIPTION" /> serão mescladas após a versão 121. Você poderá preencher automaticamente todas as senhas salvas nos dois apps.</translation>
 <translation id="8127542551745560481">Editar página inicial</translation>
 <translation id="8130309322784422030">Suas informações de login armazenadas podem estar desatualizadas</translation>
 <translation id="813082847718468539">Ver informações do site</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
index b169d31a..8407832e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Toque para expandir</translation>
 <translation id="1289059016768036948">Pode ser-lhe pedido que inicie sessão na sua Conta Google</translation>
 <translation id="1291207594882862231">Limpe o histórico, cookies, dados de sites, cache…</translation>
-<translation id="1293898515599432175">As suas palavras-passe vão ser eliminadas do Gestor de Palavras-passe da Google para o Chrome <ph name="CHROME_CHANNEL" />. Vai manter o ficheiro de palavras-passe que acabou de transferir.</translation>
 <translation id="129553762522093515">Fechados recentemente</translation>
 <translation id="1298077576058087471">Poupe até 60% de dados, leia as notícias de hoje</translation>
 <translation id="1303339473099049190">Não é possível encontrar essa palavra-passe. Verifique a ortografia e tente novamente.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Para continuar, o fornecedor <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> vai partilhar o seu nome, endereço de email e imagem do perfil com este site.</translation>
 <translation id="5409881200985013443">Enviar <ph name="ONE_TIME_CODE" /> no dispositivo <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">A validar…</translation>
-<translation id="542190472198460451">Todas as palavras-passe vão ser transferidas para o seu dispositivo e removidas do Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">As páginas mais visitadas aparecem aqui</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB disponíveis</translation>
 <translation id="543338862236136125">Editar palavra-passe</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">Para iniciar a sincronização, valide a sua identidade</translation>
 <translation id="6364438453358674297">Remover a sugestão do histórico?</translation>
 <translation id="6380100320871303656">Pré-carrega mais frequentemente páginas que o Chrome pensa que provavelmente irá visitar. Esta definição pode resultar numa maior utilização de dados.</translation>
+<translation id="6382848304055775421">A exportar</translation>
 <translation id="6391355955030242704">Para sincronizar as suas informações do Chrome e manter os seus dados seguros no carro, tem de criar um bloqueio do perfil nas definições de segurança. Vai usar um código ou uma palavra-passe sempre que entrar no carro.</translation>
 <translation id="6394791151443660613">Pesquisar: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">LINK</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">Sempre</translation>
 <translation id="6987047470128880212">A Navegação anónima não está disponível neste dispositivo</translation>
 <translation id="6995899638241819463">Enviar-lhe um aviso se as palavras-passe forem expostas numa violação de dados</translation>
+<translation id="6996145122199359148">Transfira esta página</translation>
 <translation id="7020741890149022655">Adic. à Lista de leitura <ph name="BEGIN_NEW" />Novo<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">Abrir no navegador</translation>
 <translation id="7027549951530753705"><ph name="ITEM_TITLE" /> restaurado</translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">Ajudar a melhorar as funcionalidades e o desempenho do Chrome</translation>
 <translation id="8110087112193408731">Quer apresentar a sua atividade do Chrome no Bem-estar digital?</translation>
 <translation id="8118117428362942925">Se precisares de ajuda, pede à pessoa adulta responsável (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">As suas listas de palavras-passe guardadas do Chrome e Chrome <ph name="ERROR_DESCRIPTION" /> vão ser unidas após a versão 121. Vai poder preencher automaticamente todas as palavras-passe guardadas em ambas as apps.</translation>
 <translation id="8127542551745560481">Editar página inicial</translation>
 <translation id="8130309322784422030">As suas informações de início de sessão armazenadas podem estar desatualizadas</translation>
 <translation id="813082847718468539">Ver informações do Website</translation>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">O histórico de navegação está aberto até meio.</translation>
 <translation id="9190276265094487094">Terá o seu histórico em todos os dispositivos sincronizados para que possa continuar o que estava a fazer</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{Última verificação há 1 minuto}other{Última verificação há # minutos}}</translation>
+<translation id="9204021776105550328">A eliminar</translation>
 <translation id="9204836675896933765">Falta 1 ficheiro</translation>
 <translation id="9205933215779845960">Não é possível encontrar a página. Verifique a ortografia ou experimente pesquisar no <ph name="SEARCH_ENGINE" />.</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
index 746bd11..1323728 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Atinge pentru a extinde</translation>
 <translation id="1289059016768036948">Ți se va solicita să te conectezi la Contul Google</translation>
 <translation id="1291207594882862231">Șterge istoricul, cookie-urile, datele privind site-urile și memoria cache…</translation>
-<translation id="1293898515599432175">Parolele vor fi șterse din Managerul de parole Google pentru Chrome <ph name="CHROME_CHANNEL" />. Vei păstra fișierul cu parole pe care tocmai l-ai descărcat.</translation>
 <translation id="129553762522093515">Închise recent</translation>
 <translation id="1298077576058087471">Economisește până la 60 % din date, citește știrile de azi</translation>
 <translation id="1303339473099049190">Parola nu a fost găsită. Verifică dacă ai scris-o corect și încearcă din nou.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Pentru a continua, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> va permite accesul site-ului la numele, adresa de e-mail și fotografia ta de profil.</translation>
 <translation id="5409881200985013443">Trimiți <ph name="ONE_TIME_CODE" /> la <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Se verifică...</translation>
-<translation id="542190472198460451">Toate parolele vor fi descărcate pe dispozitiv și șterse din Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Cele mai accesate pagini vor apărea aici</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB disponibili</translation>
 <translation id="543338862236136125">Editează parola</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Contribuie la îmbunătățirea funcțiilor și a performanței Chrome</translation>
 <translation id="8110087112193408731">Afișezi activitatea din Chrome în Bunăstare digitală?</translation>
 <translation id="8118117428362942925">Dacă ai nevoie de ajutor, vorbește cu un părinte (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Listele de parole salvate pentru Chrome și Chrome<ph name="ERROR_DESCRIPTION" /> se vor îmbina după versiunea 121. Vei putea să completezi automat toate parolele salvate în ambele aplicații.</translation>
 <translation id="8127542551745560481">Editează pagina de pornire</translation>
 <translation id="8130309322784422030">Este posibil ca informațiile de conectare stocate să fie învechite</translation>
 <translation id="813082847718468539">Afișează informațiile privind site-ul</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 ec1ff2f..298b63a 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Нажмите, чтобы развернуть</translation>
 <translation id="1289059016768036948">Вам потребуется войти в аккаунт Google.</translation>
 <translation id="1291207594882862231">Удалить файлы cookie и данные сайтов, очистить историю и кеш</translation>
-<translation id="1293898515599432175">Ваши пароли будут удалены из Google Менеджера паролей в Chrome <ph name="CHROME_CHANNEL" />. Файл с паролями, который вы скачали, останется.</translation>
 <translation id="129553762522093515">Недавно закрытые</translation>
 <translation id="1298077576058087471">Экономьте до 60 % трафика и читайте ежедневные новости.</translation>
 <translation id="1303339473099049190">Пароль не найден. Убедитесь, что он указан правильно, и повторите попытку.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Чтобы продолжить, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> передаст ваше имя, адрес электронной почты и фото профиля на этот сайт.</translation>
 <translation id="5409881200985013443">Отправить код <ph name="ONE_TIME_CODE" /> на устройство "<ph name="CLIENT_NAME" />"?</translation>
 <translation id="5414836363063783498">Проверка…</translation>
-<translation id="542190472198460451">Все пароли будут скачаны на ваше устройство и удалены из Chrome <ph name="CHROME_CHANNEL" />.</translation>
 <translation id="5423934151118863508">Здесь появятся страницы, которые вы чаще всего просматриваете.</translation>
 <translation id="5424588387303617268">Доступно: <ph name="GIGABYTES" /> ГБ</translation>
 <translation id="543338862236136125">Изменить пароль</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Помогать повышать производительность и улучшать функции Chrome</translation>
 <translation id="8110087112193408731">Показать данные о ваших действиях в Chrome в сервисе "Цифровое благополучие"?</translation>
 <translation id="8118117428362942925">Если тебе нужна помощь, обратись к родителю (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Ваши списки сохраненных паролей для Chrome и Chrome <ph name="ERROR_DESCRIPTION" /> будут объединены после выхода версии 121. Вы сможете вставлять сохраненные пароли в обоих приложениях с помощью функции автозаполнения.</translation>
 <translation id="8127542551745560481">Изменить главную страницу</translation>
 <translation id="8130309322784422030">Сохраненные учетные данные могли устареть.</translation>
 <translation id="813082847718468539">Сведения о сайте</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
index 3bf48f71..ca14755 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">දිග හැරීමට තට්ටු කරන්න</translation>
 <translation id="1289059016768036948">ඔබේ Google ගිණුමට පුරනය වීමට ඔබෙන් අසයි</translation>
 <translation id="1291207594882862231">ඉතිහාසය, කුකීස්, අඩවි දත්ත, හැඹිලිය හිස් කරන්න...</translation>
-<translation id="1293898515599432175">ඔබේ මුරපද Chrome <ph name="CHROME_CHANNEL" /> සඳහා Google මුරපද කළමනාකරු වෙතින් මකනු ලැබේ. ඔබ දැන් බාගත කළ මුරපද ගොනුව තබා ගනු ඇත.</translation>
 <translation id="129553762522093515">මෑත දී වැසිණි</translation>
 <translation id="1298077576058087471">දත්ත 60%ක් දක්වා සුරකින්න, අද දවසේ පුවත් කියවන්න</translation>
 <translation id="1303339473099049190">එම මුරපදය සොයාගත නොහැක. ඔබේ අක්‍ෂර වින්‍යාසය පරීක්‍ෂා කර නැවත උත්සාහ කරන්න.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">ඉදිරියට යාමට, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ඔබගේ නම, ඉ-තැපැල් ලිපිනය සහ පැතිකඩ පින්තූරය මෙම අඩවිය සමග බෙදා ගනු ඇත.</translation>
 <translation id="5409881200985013443"><ph name="ONE_TIME_CODE" /> <ph name="CLIENT_NAME" /> හි ඉදිරිපත් කරන්නද?</translation>
 <translation id="5414836363063783498">ස්ථිර කරයි…</translation>
-<translation id="542190472198460451">සියලුම මුරපද ඔබේ උපාංගයට බා ගෙන Chrome <ph name="CHROME_CHANNEL" /> වෙතින් ඉවත් කෙරේ</translation>
 <translation id="5423934151118863508">ඔබගේ වඩාත්ම පිවිසි පිටු මෙහි දිස්වනු ඇත</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB ලබා ගත හැකිය</translation>
 <translation id="543338862236136125">මුරපදය සංස්කරණ කරන්න</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chrome හි විශේෂාංග සහ කාර්යසාධනය වැඩි දියුණු කිරීමට උදවු වන්න</translation>
 <translation id="8110087112193408731">ඩිජිටල් සුවතාව තුළ ඔබේ Chrome ක්‍රියාකාරකම් පෙන්වන්න ද?</translation>
 <translation id="8118117428362942925">ඔබට උදව් අවශ්‍ය නම්, ඔබේ දෙමාපියන්ගෙන් විමසන්න (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Chrome සහ Chrome <ph name="ERROR_DESCRIPTION" /> සඳහා ඔබේ සුරකින ලද මුරපද ලැයිස්තුව 121 අනුවාදයෙන් පසුව ඒකාබද්ධ වනු ඇත. ඔබට යෙදුම් දෙකෙහිම ඔබේ සුරකින ලද මුරපද සියල්ල ස්වයංව පිරවීමට හැකි වනු ඇත.</translation>
 <translation id="8127542551745560481">මුල් පිටුව සංස්කරණ කරන්න</translation>
 <translation id="8130309322784422030">ඔබගේ ගබඩා කළ පිරීමේ තතු කල් ඉකුත්ව තිබිය හැකිය</translation>
 <translation id="813082847718468539">අඩවි තොරතුරු පෙන්වන්න</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
index bfe00fba..ce59ca3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Klepnutím rozbaliť</translation>
 <translation id="1289059016768036948">Zobrazí sa výzva, aby ste sa prihlásili do svojho účtu Google</translation>
 <translation id="1291207594882862231">Vymazať históriu, súbory cookie, dáta webov, vyrovnávaciu pamäť…</translation>
-<translation id="1293898515599432175">Vaše heslá budú odstránené zo Správcu hesiel Google v kanáli Chromu <ph name="CHROME_CHANNEL" />. Súbor s heslami, ktorý ste práve stiahli, vám zostane.</translation>
 <translation id="129553762522093515">Nedávno zatvorené</translation>
 <translation id="1298077576058087471">Ušetrite až 60 % dát, prečítajte si dnešné správy</translation>
 <translation id="1303339473099049190">Dané heslo sa nepodarilo nájsť. Skontrolujte pravopis a skúste to znova.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Ak chcete pokračovať, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> bude s týmto webom zdieľať vaše meno, e‑mailovú adresu a profilovú fotku.</translation>
 <translation id="5409881200985013443">Odošlite kód <ph name="ONE_TIME_CODE" /> v zariadení <ph name="CLIENT_NAME" />.</translation>
 <translation id="5414836363063783498">Overuje sa...</translation>
-<translation id="542190472198460451">Všetky heslá budú stiahnuté do vášho zariadenia a odstránené z Chromu <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Tu sa zobrazia vaše najnavštevovanejšie stránky.</translation>
 <translation id="5424588387303617268">K dispozícii je <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Upraviť heslo</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Pomáhať zlepšovať funkcie a výkonnosť Chromu</translation>
 <translation id="8110087112193408731">Chcete v digitálnej rovnováhe zobrazovať svoju aktivitu v Chrome?</translation>
 <translation id="8118117428362942925">Ak potrebuješ pomoc, požiadaj rodiča (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Zoznamy uložených hesiel pre Chrome a Chrome <ph name="ERROR_DESCRIPTION" /> sa po uvedení verzie 121 zlúčia. Všetky svoje uložené heslá budete môcť automaticky dopĺňať v oboch aplikáciách.</translation>
 <translation id="8127542551745560481">Upraviť domovskú stránku</translation>
 <translation id="8130309322784422030">Vaše uložené prihlasovacie údaje môžu byť zastarané</translation>
 <translation id="813082847718468539">Zobraziť informácie o stránkach</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
index b5eaad7..28540c1 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Dotaknite se za razširitev</translation>
 <translation id="1289059016768036948">Pozvani boste k prijavi v račun Google</translation>
 <translation id="1291207594882862231">Izbris zgodovine, piškotkov, podatkov spletnih mest, predpomnilnika …</translation>
-<translation id="1293898515599432175">Gesla bodo izbrisana iz Googlovega upravitelja gesel za Chrome <ph name="CHROME_CHANNEL" />. Obdržali boste datoteko z gesli, ki ste jo pravkar prenesli.</translation>
 <translation id="129553762522093515">Nedavno zaprto</translation>
 <translation id="1298077576058087471">Prihranite do 60 % pri prenosu podatkov, preberite današnje novice</translation>
 <translation id="1303339473099049190">Tega gesla ni mogoče najti. Preverite črkovanje in poskusite znova.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Če želite nadaljevati, bo ponudnik <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> delil vaše ime, e-poštni naslov in profilno sliko s tem spletnim mestom.</translation>
 <translation id="5409881200985013443">Dovolite, da se <ph name="ONE_TIME_CODE" /> pošlje v napravi <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Preverjanje …</translation>
-<translation id="542190472198460451">Vsa gesla bodo prenesena v napravo in odstranjena iz Chroma <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Tu bodo prikazane strani, ki jih obiskujete najpogosteje</translation>
 <translation id="5424588387303617268">Na voljo: <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Uredi geslo</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Pomagajte izboljšati Chromove funkcije in njegovo delovanje</translation>
 <translation id="8110087112193408731">Ali želite svojo dejavnost v Chromu prikazati v Digitalni dobrobiti?</translation>
 <translation id="8118117428362942925">Če potrebuješ pomoč, se obrni na starša (<ph name="PARENT_NAME" />).</translation>
-<translation id="8124758083429256800">Seznami shranjenih gesel za Chrome in Chrome <ph name="ERROR_DESCRIPTION" /> združili po različici 121 združeni. Polja boste lahko samodejno izpolnjevali z vsemi shranjenimi gesli v obeh aplikacijah.</translation>
 <translation id="8127542551745560481">Urejanje domače strani</translation>
 <translation id="8130309322784422030">Shranjeni podatki za prijavo so morda zastareli.</translation>
 <translation id="813082847718468539">Ogled podatkov o mestu</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
index 8390505..8ef1f9c2 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Trokit për të zgjeruar</translation>
 <translation id="1289059016768036948">Do të të kërkohet të identifikohesh në "Llogarinë tënde të Google"</translation>
 <translation id="1291207594882862231">Pastro historikun, kukit, të dhënat e sajtit, memorien specifike…</translation>
-<translation id="1293898515599432175">Fjalëkalimet e tua do të fshihen nga "Menaxheri i fjalëkalimeve i Google" për Chrome <ph name="CHROME_CHANNEL" />. Do ta mbash skedarin e fjalëkalimeve që sapo ke shkarkuar.</translation>
 <translation id="129553762522093515">Të mbyllura së fundi</translation>
 <translation id="1298077576058087471">Kurse deri në 60% të të dhënave, lexo lajmet e sotme</translation>
 <translation id="1303339473099049190">Ai fjalëkalim nuk mund të gjendet. Kontrollo drejtshkrimin dhe provo përsëri.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Për të vazhduar, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> do të ndajë emrin, adresën e email-it dhe fotografinë tënde të profilit me këtë sajt.</translation>
 <translation id="5409881200985013443">Të dërgohet <ph name="ONE_TIME_CODE" /> te <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Po verifikon…</translation>
-<translation id="542190472198460451">Të gjitha fjalëkalimet do të shkarkohen në pajisjen tënde dhe do të hiqen nga Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Këtu do të shfaqen faqet më të vizituara</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB të disponueshme</translation>
 <translation id="543338862236136125">Redakto fjalëkalimin</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Ndihmo në përmirësimin e veçorive dhe të cilësisë së funksionimit të Chrome</translation>
 <translation id="8110087112193408731">Dëshiron të shfaqësh aktivitetin tënd të Chrome te "Mirëqenia dixhitale"?</translation>
 <translation id="8118117428362942925">Nëse ke nevojë për ndihmë, pyet prindin tënd (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Listat e tua me fjalëkalimet e ruajtura për Chrome dhe Chrome <ph name="ERROR_DESCRIPTION" /> do të shkrihen pas versionit 121. Do të mund të plotësosh automatikisht të gjitha fjalëkalimet e ruajtura në të dyja aplikacionet.</translation>
 <translation id="8127542551745560481">Modifiko faqen bazë</translation>
 <translation id="8130309322784422030">Informacionet e tua të ruajtura të identifikimit mund të jenë të papërditësuara</translation>
 <translation id="813082847718468539">Shiko informacionin rreth faqes</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
index 521ae97a..8a319103 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Dodirnite da biste proširili</translation>
 <translation id="1289059016768036948">Zatražićemo da se prijavite na Google nalog.</translation>
 <translation id="1291207594882862231">Obrišite istoriju, kolačiće, podatke o sajtovima, keš...</translation>
-<translation id="1293898515599432175">Lozinke će biti izbrisane iz Google menadžera lozinki za Chrome <ph name="CHROME_CHANNEL" />. Zadržaćete fajl sa lozinkama koji ste upravo preuzeli.</translation>
 <translation id="129553762522093515">Nedavno zatvoreno</translation>
 <translation id="1298077576058087471">Uštedite i do 60% podataka, čitajte današnje vesti</translation>
 <translation id="1303339473099049190">Ne možemo da pronađemo tu lozinku. Proverite kako ste je napisali i probajte ponovo.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Da biste nastavili, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> će deliti vaše ime, imejl adresu i sliku profila sa ovim sajtom.</translation>
 <translation id="5409881200985013443">Želite li da pošaljete <ph name="ONE_TIME_CODE" /> na <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verifikuju se...</translation>
-<translation id="542190472198460451">Sve lozinke će biti preuzete na uređaj i uklonjene iz Chrome-a <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Najčešće posećivane stranice će se pojaviti ovde</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB je dostupno</translation>
 <translation id="543338862236136125">Izmenite lozinku</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Pomozite nam da poboljšamo funkcije i učinak Chrome OS-a</translation>
 <translation id="8110087112193408731">Želite li da se Chrome aktivnosti prikazuju u Digitalnom blagostanju?</translation>
 <translation id="8118117428362942925">Ako ti treba pomoć, pitaj roditelja (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Liste sačuvanih lozinki za Chrome i Chrome <ph name="ERROR_DESCRIPTION" /> će se objediniti posle verzije 121. Moći ćete automatski da popunite sve sačuvane lozinke u obe aplikacije.</translation>
 <translation id="8127542551745560481">Izmenite početnu stranicu</translation>
 <translation id="8130309322784422030">Sačuvane informacije za prijavljivanje su možda zastarele</translation>
 <translation id="813082847718468539">Pogledajte informacije o sajtu</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
index 3ff64146..2293ac3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Додирните да бисте проширили</translation>
 <translation id="1289059016768036948">Затражићемо да се пријавите на Google налог.</translation>
 <translation id="1291207594882862231">Обришите историју, колачиће, податке о сајтовима, кеш...</translation>
-<translation id="1293898515599432175">Лозинке ће бити избрисане из Google менаџера лозинки за Chrome <ph name="CHROME_CHANNEL" />. Задржаћете фајл са лозинкама који сте управо преузели.</translation>
 <translation id="129553762522093515">Недавно затворено</translation>
 <translation id="1298077576058087471">Уштедите и до 60% података, читајте данашње вести</translation>
 <translation id="1303339473099049190">Не можемо да пронађемо ту лозинку. Проверите како сте је написали и пробајте поново.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Да бисте наставили, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ће делити ваше име, имејл адресу и слику профила са овим сајтом.</translation>
 <translation id="5409881200985013443">Желите ли да пошаљете <ph name="ONE_TIME_CODE" /> на <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Верификују се...</translation>
-<translation id="542190472198460451">Све лозинке ће бити преузете на уређај и уклоњене из Chrome-а <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Најчешће посећиване странице ће се појавити овде</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB је доступно</translation>
 <translation id="543338862236136125">Измените лозинку</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Помозите нам да побољшамо функције и учинак Chrome ОС-а</translation>
 <translation id="8110087112193408731">Желите ли да се Chrome активности приказују у Дигиталном благостању?</translation>
 <translation id="8118117428362942925">Ако ти треба помоћ, питај родитеља (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Листе сачуваних лозинки за Chrome и Chrome <ph name="ERROR_DESCRIPTION" /> ће се објединити после верзије 121. Моћи ћете аутоматски да попуните све сачуване лозинке у обе апликације.</translation>
 <translation id="8127542551745560481">Измените почетну страницу</translation>
 <translation id="8130309322784422030">Сачуване информације за пријављивање су можда застареле</translation>
 <translation id="813082847718468539">Погледајте информације о сајту</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 077315d..0755f70 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Tryck och utöka</translation>
 <translation id="1289059016768036948">Du blir ombedd att logga in på Google-kontot</translation>
 <translation id="1291207594882862231">Rensa historiken, cookies, webbplatsdata, cacheminnet …</translation>
-<translation id="1293898515599432175">Dina lösenord raderas från Google Lösenordshantering för Chrome <ph name="CHROME_CHANNEL" />. Lösenordsfilen som du precis laddade ned finns kvar.</translation>
 <translation id="129553762522093515">Nyligen stängda</translation>
 <translation id="1298077576058087471">Spara upp till 60 % data och läs dagens nyheter</translation>
 <translation id="1303339473099049190">Det gick inte att hitta lösenordet. Kontrollera stavningen och försök igen.</translation>
@@ -823,7 +822,6 @@
 <translation id="5401851137404501592"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> delar ditt namn, din e-postadress och din profilbild med den här webbplatsen om du fortsätter.</translation>
 <translation id="5409881200985013443">Vill du skicka <ph name="ONE_TIME_CODE" /> på <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Verifierar ...</translation>
-<translation id="542190472198460451">Alla lösenord laddas ned på enheten och tas bort från Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Dina mest besökta sidor visas här</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB tillgängligt</translation>
 <translation id="543338862236136125">Redigera lösenord</translation>
@@ -1367,7 +1365,6 @@
 <translation id="8110024788458304985">Hjälp oss att förbättra funktioner och prestanda i Chrome</translation>
 <translation id="8110087112193408731">Vill du att din aktivitet i Chrome ska visas i Digitalt välmående?</translation>
 <translation id="8118117428362942925">Prata med din förälder (<ph name="PARENT_NAME" />) om du behöver hjälp</translation>
-<translation id="8124758083429256800">Listorna med sparade lösenord för Chrome och Chrome <ph name="ERROR_DESCRIPTION" /> sammanfogas efter version 121. Du kan fylla i alla sparade lösenord automatiskt i båda apparna.</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>
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 5321011..b3ca62d 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Gusa ili upanue</translation>
 <translation id="1289059016768036948">Utaombwa uingie kwenye Akaunti yako ya Google</translation>
 <translation id="1291207594882862231">Futa historia, vidakuzi, data ya tovuti, akiba…</translation>
-<translation id="1293898515599432175">Manenosiri yako yatafutwa katika Kidhibiti cha Manenosiri cha Google kwenye Chrome <ph name="CHROME_CHANNEL" />. Utahifadhi faili ya manenosiri uliyoipakua.</translation>
 <translation id="129553762522093515">Vilivyofungwa hivi karibuni</translation>
 <translation id="1298077576058087471">Okoa hadi asilimia 60 ya data, soma habari za leo</translation>
 <translation id="1303339473099049190">Imeshindwa kupata nenosiri hilo. Angalia maendelezo yako kisha ujaribu tena.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Ili uendelee, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> itashiriki jina, anwani ya barua pepe, pamoja na picha yako ya wasifu na tovuti hii.</translation>
 <translation id="5409881200985013443">Ungependa kutuma <ph name="ONE_TIME_CODE" /> kwenye <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Inathibitisha...</translation>
-<translation id="542190472198460451">Manenosiri yote yatapakuliwa kwenye kifaa chako na kuondolewa kwenye Chrome.<ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Kurasa zako zilizotembelewa sana zitaonekana hapa</translation>
 <translation id="5424588387303617268">GB <ph name="GIGABYTES" /> zinapatikana</translation>
 <translation id="543338862236136125">Badilisha nenosiri</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Tusaidie kuboresha utendaji na vipengele vya Chrome</translation>
 <translation id="8110087112193408731">Ungependa kuonyesha shughuli zako za Chrome katika mpango wa Nidhamu Dijitali?</translation>
 <translation id="8118117428362942925">Ukihitaji usaidizi, mwombe mzazi wako (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Orodha zako za manenosiri yaliyohifadhiwa kwa ajili ya Chrome na Chrome <ph name="ERROR_DESCRIPTION" /> zitaunganishwa baada ya toleo la 121. Utaweza kujaza kiotomatiki manenosiri yako yote uliyohifadhi kwenye programu zote mbili.</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>
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 0d61b8e91..3ba2f9c8 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">விரிவாக்க, தட்டவும்</translation>
 <translation id="1289059016768036948">உங்கள் Google கணக்கில் உள்நுழையுமாறு கேட்கப்படும்</translation>
 <translation id="1291207594882862231">வரலாறு, குக்கீகள், தளத் தரவு, தற்காலிகச் சேமிப்பை அழி…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" />க்கான கடவுச்சொற்கள் Google Password Managerரில் இருந்து நீக்கப்படும். நீங்கள் சற்றுமுன் பதிவிறக்கிய கடவுச்சொற்கள் ஃபைல் உங்களிடமே இருக்கும்.</translation>
 <translation id="129553762522093515">சமீபத்தில் மூடியவை</translation>
 <translation id="1298077576058087471">60% வரை டேட்டாவைச் சேமிக்கலாம், இன்றைய செய்திகளைப் படிக்கலாம்</translation>
 <translation id="1303339473099049190">கடவுச்சொல்லைக் கண்டறிய முடியவில்லை. எழுத்துப்பிழையைச் சரிபார்த்து மீண்டும் முயலவும்.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">தொடர உங்கள் பெயர், மின்னஞ்சல் முகவரி, சுயவிவரப் படம் ஆகியவற்றை இந்தத் தளத்தில் <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> பகிரும்.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> இல் <ph name="ONE_TIME_CODE" /> என்ற குறியீட்டைச் சமர்ப்பிக்கவா?</translation>
 <translation id="5414836363063783498">சரிபார்க்கிறது...</translation>
-<translation id="542190472198460451">அனைத்து கடவுச்சொற்களும் உங்கள் சாதனத்தில் இருந்து பதிவிறக்கப்படும் மற்றும் Chrome <ph name="CHROME_CHANNEL" /> இல் இருந்து நீக்கப்படும்</translation>
 <translation id="5423934151118863508">நீங்கள் அதிகமாகப் பார்வையிட்ட பக்கங்கள் இங்கு தோன்றும்</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> ஜி.பை. உள்ளது</translation>
 <translation id="543338862236136125">கடவுச்சொல்லை மாற்று</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chromeமின் அம்சங்களையும் செயல்திறனையும் மேம்படுத்த உதவுதல்</translation>
 <translation id="8110087112193408731">உங்கள் Chrome செயல்பாட்டை டிஜிட்டல் வெல்பீயிங்கில் காட்டவா?</translation>
 <translation id="8118117428362942925">உங்களுக்கு உதவி தேவைப்பட்டால் பெற்றோரிடம் (<ph name="PARENT_NAME" />) கேளுங்கள்</translation>
-<translation id="8124758083429256800">121வது பதிப்பிற்குப் பின் Chrome, Chrome <ph name="ERROR_DESCRIPTION" /> ஆகியவற்றில் நீங்கள் சேமித்துள்ள கடவுச்சொற்களின் பட்டியல் ஒன்றிணைக்கப்படும். நீங்கள் சேமித்துள்ள கடவுச்சொற்களை இரண்டு ஆப்ஸிலும் தன்னிரப்ப முடியும்.</translation>
 <translation id="8127542551745560481">முகப்புப்பக்கத்தைத் திருத்து</translation>
 <translation id="8130309322784422030">சேமிக்கப்பட்ட உங்களின் உள்நுழைவுத் தகவல் பழையதாக இருக்கக்கூடும்</translation>
 <translation id="813082847718468539">தள விவரங்களைக் காண்க</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
index c7b1c3d0..9ca4154 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">విస్త‌రించ‌డానికి నొక్కండి</translation>
 <translation id="1289059016768036948">మీ Google ఖాతాకు సైన్ ఇన్ చేయమని మిమ్మల్ని కోరడం జరుగుతుంది</translation>
 <translation id="1291207594882862231">హిస్టరీ, కుక్కీలు, సైట్ డేటా, కాష్‌ను తీసివేస్తుంది…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" /> కోసం Google Password Manager నుండి మీ పాస్‌వర్డ్‌లు తొలగించబడతాయి. మీరు ఇప్పుడే డౌన్‌లోడ్ చేసిన పాస్‌వర్డ్‌ల ఫైల్‌ను అలాగే ఉంచుతారు.</translation>
 <translation id="129553762522093515">ఇటీవల మూసివేయబడినవి</translation>
 <translation id="1298077576058087471">60% వరకు డేటాను ఆదా చేయండి, ఈరోజు వార్తలను చదవండి</translation>
 <translation id="1303339473099049190">ఆ పాస్‌వర్డ్‌ను కనుగొనడం సాధ్యపడలేదు. మీ స్పెల్లింగ్ సరిచూసుకుని, ఆపై మళ్లీ ట్రై చేయండి.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">కొనసాగించడానికి, మీ పేరు, ఈమెయిల్ అడ్రస్, ప్రొఫైల్ ఫోటోను <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ఈ సైట్‌తో షేర్ చేస్తుంది.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" />లో <ph name="ONE_TIME_CODE" />ను సమర్పించాలా?</translation>
 <translation id="5414836363063783498">ధృవీకరిస్తోంది...</translation>
-<translation id="542190472198460451">పాస్‌వర్డ్‌లన్నీ మీ పరికరంలో డౌన్‌లోడ్ అవుతాయి, అలాగే Chrome <ph name="CHROME_CHANNEL" /> నుండి తీసివేయబడతాయి</translation>
 <translation id="5423934151118863508">మీరు అత్యంత ఎక్కువగా సందర్శించిన పేజీలు ఇక్కడ కనిపిస్తాయి</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB అందుబాటులో ఉంది</translation>
 <translation id="543338862236136125">పాస్‌వర్డ్‌ను ఎడిట్ చేయండి</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chrome OS ఫీచర్‌లు, పనితీరును మెరుగుపరచడంలో సహాయపడండి</translation>
 <translation id="8110087112193408731">డిజిటల్ సంక్షేమంలో మీ Chrome యాక్టివిటీని చూపించాలా?</translation>
 <translation id="8118117428362942925">మీకు సహాయం అవసరమైతే, మీ తల్లి/తండ్రి (<ph name="PARENT_NAME" />)ని అడగండి</translation>
-<translation id="8124758083429256800">Chrome, Chrome <ph name="ERROR_DESCRIPTION" /> కోసం మీ సేవ్ చేసిన పాస్‌వర్డ్‌ల లిస్ట్‌లు వెర్షన్ 121 తర్వాత విలీనం అవుతాయి. మీరు రెండు యాప్‌లలో మీరు సేవ్ చేసిన పాస్‌వర్డ్‌లు అన్నింటినీ ఆటోఫిల్ చేయగలరు.</translation>
 <translation id="8127542551745560481">హోమ్ పేజీని ఎడిట్ చేయండి</translation>
 <translation id="8130309322784422030">మీ స్టోర్ చేయబడిన సైన్ ఇన్ సమాచారం గడువు ముగిసి ఉండవచ్చు</translation>
 <translation id="813082847718468539">సైట్ సమాచారాన్ని చూడండి</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 76634d1c..0e23468 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">แตะเพื่อขยาย</translation>
 <translation id="1289059016768036948">ระบบจะขอให้คุณลงชื่อเข้าใช้บัญชี Google</translation>
 <translation id="1291207594882862231">ล้างประวัติการเข้าชม คุกกี้ ข้อมูลเว็บไซต์ แคช…</translation>
-<translation id="1293898515599432175">ระบบจะลบรหัสผ่านของคุณจากเครื่องมือจัดการรหัสผ่านบน Google สำหรับ Chrome <ph name="CHROME_CHANNEL" /> คุณจะต้องเก็บไฟล์รหัสผ่านที่เพิ่งดาวน์โหลดไว้</translation>
 <translation id="129553762522093515">เพิ่งปิด</translation>
 <translation id="1298077576058087471">อ่านข่าววันนี้ ประหยัดอินเทอร์เน็ตได้ถึง 60%</translation>
 <translation id="1303339473099049190">ไม่พบรหัสผ่านดังกล่าว โปรดตรวจสอบการสะกดแล้วลองอีกครั้ง</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">หากต้องการดำเนินการต่อ <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> จะแชร์ชื่อ อีเมล และรูปโปรไฟล์ของคุณกับเว็บไซต์นี้</translation>
 <translation id="5409881200985013443">ส่ง <ph name="ONE_TIME_CODE" /> ใน <ph name="CLIENT_NAME" /> ไหม</translation>
 <translation id="5414836363063783498">กำลังยืนยัน…</translation>
-<translation id="542190472198460451">ระบบจะดาวน์โหลดรหัสผ่านทั้งหมดในอุปกรณ์ของคุณ และนําออกจาก Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">หน้าที่มีการเข้าชมมากที่สุดของคุณจะปรากฏที่นี่</translation>
 <translation id="5424588387303617268">ว่าง <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">แก้ไขรหัสผ่าน</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">ช่วยปรับปรุงฟีเจอร์และประสิทธิภาพของ Chrome</translation>
 <translation id="8110087112193408731">ต้องการแสดงกิจกรรม Chrome ในไลฟ์สไตล์ดิจิทัลไหม</translation>
 <translation id="8118117428362942925">โปรดขอความช่วยเหลือจากผู้ปกครอง (<ph name="PARENT_NAME" />) หากต้องการ</translation>
-<translation id="8124758083429256800">รายการรหัสผ่านที่บันทึกไว้สำหรับ Chrome และ Chrome <ph name="ERROR_DESCRIPTION" /> จะรวมเข้าด้วยกันหลังจากเวอร์ชัน 121 คุณจะป้อนรหัสผ่านที่บันทึกไว้ทั้งหมดโดยอัตโนมัติได้ในทั้ง 2 แอป</translation>
 <translation id="8127542551745560481">แก้ไขหน้าแรก</translation>
 <translation id="8130309322784422030">ข้อมูลการลงชื่อเข้าใช้ที่คุณเก็บไว้อาจล้าสมัย</translation>
 <translation id="813082847718468539">ดูข้อมูลเว็บไซต์</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 839dc68..ff637b3 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Genişletmek için dokunun</translation>
 <translation id="1289059016768036948">Google Hesabınızda oturum açmanız istenebilir</translation>
 <translation id="1291207594882862231">Geçmişi, çerezleri, site verilerini, önbelleği temizleyin…</translation>
-<translation id="1293898515599432175">Chrome <ph name="CHROME_CHANNEL" /> şifreleriniz, Google Şifre Yöneticisi'nden silinecek. Az önce indirdiğiniz şifre dosyasını saklayabilirsiniz.</translation>
 <translation id="129553762522093515">Son kapatılan</translation>
 <translation id="1298077576058087471">Veriden %60'a varan oranda tasarruf edin, bugünkü haberleri okuyun</translation>
 <translation id="1303339473099049190">Şifre bulunamıyor. Adresi doğru yazıp yazmadığınızı kontrol edip tekrar deneyin.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592"><ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" />, devam etmek için adınızı, e-posta adresinizi ve profil resminizi bu siteyle paylaşacaktır.</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> üzerinde <ph name="ONE_TIME_CODE" /> gönderilsin mi?</translation>
 <translation id="5414836363063783498">Doğrulanıyor…</translation>
-<translation id="542190472198460451">Tüm şifreler cihazınıza indirilir ve Chrome <ph name="CHROME_CHANNEL" /> hizmetinden kaldırılır</translation>
 <translation id="5423934151118863508">En çok ziyaret ettiğiniz sayfalar burada görünecektir</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB kullanılabilir</translation>
 <translation id="543338862236136125">Şifreyi düzenle</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chrome\U2019un özelliklerini ve performansını iyileştirmeye yardımcı olun</translation>
 <translation id="8110087112193408731">Chrome etkinliğiniz Dijital Denge'de gösterilsin mi?</translation>
 <translation id="8118117428362942925">Yardıma ihtiyacınız olursa ebeveyninize (<ph name="PARENT_NAME" />) sorun</translation>
-<translation id="8124758083429256800">Chrome ve Chrome <ph name="ERROR_DESCRIPTION" /> için kayıtlı şifre listeleriniz 121 sürümünden sonra birleştirilecektir. Kayıtlı tüm şifrelerinizi her iki uygulamada da otomatik olarak doldurabilirsiniz.</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>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
index bba0ff1..44e46e6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Торкніться, щоб розгорнути</translation>
 <translation id="1289059016768036948">Для цього вам потрібно ввійти у свій обліковий запис Google</translation>
 <translation id="1291207594882862231">Очистити історію, файли cookie, дані сайтів, кеш…</translation>
-<translation id="1293898515599432175">Ваші паролі буде видалено з Google Менеджера паролів для Chrome <ph name="CHROME_CHANNEL" />. Файл із паролями, який ви щойно завантажили, буде збережено.</translation>
 <translation id="129553762522093515">Нещодавно закриті</translation>
 <translation id="1298077576058087471">Заощаджуйте до 60% даних і читайте сьогоднішні новини</translation>
 <translation id="1303339473099049190">Не вдалося знайти такий пароль. Перевірте правильність написання та повторіть спробу.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Щоб продовжити, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> надасть ваші ім’я, електронну адресу й зображення профілю цьому сайту.</translation>
 <translation id="5409881200985013443">Надіслати код <ph name="ONE_TIME_CODE" /> на пристрій "<ph name="CLIENT_NAME" />"?</translation>
 <translation id="5414836363063783498">Підтвердження…</translation>
-<translation id="542190472198460451">Усі паролі буде завантажено на ваш пристрій і видалено з Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Тут відображатимуться найчастіше відвідувані сторінки</translation>
 <translation id="5424588387303617268">Доступно <ph name="GIGABYTES" /> ГБ</translation>
 <translation id="543338862236136125">Змінити пароль</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Допомагати покращувати ефективність і функції Chrome</translation>
 <translation id="8110087112193408731">Показувати активність у Chrome у Цифровому добробуті?</translation>
 <translation id="8118117428362942925">Якщо тобі потрібна допомога, звернися до батька або матері (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Ваші списки збережених паролів для Chrome і Chrome <ph name="ERROR_DESCRIPTION" /> об’єднаються після версії 121. Ви зможете автоматично вводити всі збережені паролі в обох додатках.</translation>
 <translation id="8127542551745560481">Змінити головну сторінку</translation>
 <translation id="8130309322784422030">Збережені дані для входу, імовірно, застаріли</translation>
 <translation id="813082847718468539">Перегляд інформації про сайт</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
index 7a41a04a..563bc1ac 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">پھیلانے کیلئے تھپتھپائیں</translation>
 <translation id="1289059016768036948">‏آپ سے اپنے Google اکاؤنٹ میں سائن ان کرنے کا کہا جائے گا</translation>
 <translation id="1291207594882862231">سرگزشت، کوکیز، سائٹ ڈیٹا، کیش کو صاف کریں…</translation>
-<translation id="1293898515599432175">‏آپ کے پاس ورڈز کو Google پاس ورڈ مینیجر برائے Chrome سے حذف کر دیا جائے گا <ph name="CHROME_CHANNEL" />۔ آپ پاس ورڈز فائل رکھیں گے جسے آپ نے ابھی ڈاؤن لوڈ کیا ہے۔</translation>
 <translation id="129553762522093515">حال ہی میں بند کردہ</translation>
 <translation id="1298077576058087471">60 فیصد تک ڈیٹا محفوظ کریں، آج کی خبریں پڑھیں</translation>
 <translation id="1303339473099049190">وہ پاس ورڈ تلاش نہیں کیا جا سکا۔ اپنے ہجے چیک کریں اور دوبارہ کوشش کریں۔</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">جاری رکھنے کے لیے، <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> اس سائٹ کے ساتھ آپ کے نام، ای میل پتہ اور پروفائل کی تصویر کا اشتراک کرے گا۔</translation>
 <translation id="5409881200985013443"><ph name="CLIENT_NAME" /> پر <ph name="ONE_TIME_CODE" /> جمع کروائیں؟</translation>
 <translation id="5414836363063783498">توثیق ہو رہی ہے…</translation>
-<translation id="542190472198460451">‏تمام پاس ورڈز آپ کے آلہ پر ڈاؤن لوڈ ہو جائیں گے اور انہیں Chrome سے ہٹا دیا جائے گا <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">آپ کے سب سے زیادہ ملاحظہ کردہ صفحات یہاں دکھائے جائیں گے</translation>
 <translation id="5424588387303617268">‏<ph name="GIGABYTES" /> GB دستیاب ہے</translation>
 <translation id="543338862236136125">پاس ورڈ میں ترمیم کریں</translation>
@@ -1000,6 +998,7 @@
 <translation id="6363990818884053551">مطابقت پذیری شروع کرنے کے لیے، توثیق کریں کہ یہ آپ ہیں</translation>
 <translation id="6364438453358674297">سرگزشت سے تجویز ہٹائیں؟</translation>
 <translation id="6380100320871303656">‏جن صفحات کو Chrome کے خیال میں آپ ملاحظہ کر سکتے ہیں وہ زیادہ کثرت سے پیشگی لوڈ ہوتے ہیں۔ اس ترتیب کے نیتجے میں ڈیٹا کے استعمال میں اضافہ ہو سکتا ہے۔</translation>
+<translation id="6382848304055775421">برآمد کرنا</translation>
 <translation id="6391355955030242704">‏اپنی Chrome کی معلومات کو مطابقت پذیر بنانے اور کار میں اپنے ڈیٹا کو محفوظ رکھنے کے لیے، آپ کو اپنی سیکیورٹی کی ترتیبات میں پروفائل لاک تخلیق کرنا ہوگا۔ جب بھی آپ کار میں داخل ہوں گے آپ کو کوڈ یا پاس ورڈ استعمال کرنا ہوگا۔</translation>
 <translation id="6394791151443660613">تلاش کریں: <ph name="SEARCH_QUERY" /></translation>
 <translation id="6395288395575013217">لنک</translation>
@@ -1135,6 +1134,7 @@
 <translation id="6979737339423435258">ہر وقت</translation>
 <translation id="6987047470128880212">اس آلے پر پوشیدگی دستیاب نہیں ہے</translation>
 <translation id="6995899638241819463">اگر پاس ورڈز ڈیٹا کی خلاف ورزی میں افشاء ہوتے ہیں تو وارننگ حاصل کریں</translation>
+<translation id="6996145122199359148">اس صفحہ کو ڈاؤن لوڈ کریں</translation>
 <translation id="7020741890149022655">پڑھنے کی فہرست میں شامل کریں<ph name="BEGIN_NEW" />نئی<ph name="END_NEW" /></translation>
 <translation id="7022756207310403729">براؤزر میں کھولیں</translation>
 <translation id="7027549951530753705"><ph name="ITEM_TITLE" /> کو بحال کیا گیا</translation>
@@ -1366,7 +1366,6 @@
 <translation id="8110024788458304985">‏Chrome کی خصوصیات اور کارکردگی کو بہتر بنانے میں مدد کریں</translation>
 <translation id="8110087112193408731">‏ڈیجیٹل فلاح و بہبود میں آپ کی Chrome سرگرمی دکھائیں؟</translation>
 <translation id="8118117428362942925">اگر آپ کو مدد کی ضرورت ہو تو اپنے والدین (<ph name="PARENT_NAME" />) سے پوچھیں</translation>
-<translation id="8124758083429256800">‏Chrome <ph name="ERROR_DESCRIPTION" /> اور Chrome کے لیے آپ کے محفوظ کردہ پاس ورڈز کی فہرستیں ورژن 121 کے بعد ضم ہو جائیں گی۔ آپ دونوں ایپس پر اپنے تمام محفوظ کردہ پاس ورڈز کو آٹو فل کر سکیں گے۔</translation>
 <translation id="8127542551745560481">ہوم صفحہ میں ترمیم کریں</translation>
 <translation id="8130309322784422030">آپ کی اسٹور کردہ سائن ان کی معلومات پرانی ہو سکتی ہے</translation>
 <translation id="813082847718468539">سائٹ کی معلومات دیکھیں</translation>
@@ -1566,6 +1565,7 @@
 <translation id="9169507124922466868">نیویگیشن کی سرگزشت آدھی کھلی ہوئی ہے</translation>
 <translation id="9190276265094487094">آپ کے تمام مطابقت پذیر آلات پر آپ کی سرگزشت موجود ہوگی تاکہ آپ جو کچھ کر رہے تھے اسے جاری رکھ سکیں</translation>
 <translation id="9199368092038462496">{NUM_MINS,plural, =1{1 منٹ پہلے چیک کیا گيا}other{# منٹ پہلے چیک کیا گیا}}</translation>
+<translation id="9204021776105550328">حذف کر رہا ہے</translation>
 <translation id="9204836675896933765">1 فائل باقی ہے</translation>
 <translation id="9205933215779845960">وہ صفحہ نہیں مل سکا۔ اپنا املا چیک کریں یا <ph name="SEARCH_ENGINE" /> پر تلاش کرنے کی کوشش کریں۔</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
index ba85f7f..29b57a2 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Bosib yoyish</translation>
 <translation id="1289059016768036948">Google hisobiga kirish talab etiladi</translation>
 <translation id="1291207594882862231">Brauzer tarixi, cookie-fayllar, kesh va boshqa sayt ma’lumotlarini tozalash...</translation>
-<translation id="1293898515599432175">Parollaringiz Chrome <ph name="CHROME_CHANNEL" /> uchun Google Parollar menejeridan oʻchirib tashlanadi. Hozirgina yuklab olingan parollar faylini saqlab qolishingiz mumkin.</translation>
 <translation id="129553762522093515">Yaqinda yopilganlar</translation>
 <translation id="1298077576058087471">60% gacha trafikni tejang va bugungi yangiliklar bilan tanishing</translation>
 <translation id="1303339473099049190">Bu parol topilmadi. Xatosiz kiritilganini tekshiring va qayta urining.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Davom etish uchun <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> ism, email manzil va profil rasmingizni bu sayt bilan ulashadi.</translation>
 <translation id="5409881200985013443"><ph name="ONE_TIME_CODE" /> <ph name="CLIENT_NAME" /> qurilmasiga yuborilsinmi?</translation>
 <translation id="5414836363063783498">Tekshirilmoqda...</translation>
-<translation id="542190472198460451">Barcha parollar qurilmada yuklab olinadi va Chrome <ph name="CHROME_CHANNEL" /> xotirasidan olib tashlanadi</translation>
 <translation id="5423934151118863508">Siz eng ko‘p tashrif buyurgan sahifalar bu yerda ko‘rinadi</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB bo‘sh</translation>
 <translation id="543338862236136125">Parolni almashtirish</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Chrome OS funksiyalari va unumdorligini yaxshilashga yordam bering</translation>
 <translation id="8110087112193408731">Raqamli muvozanat xizmatida Chrome amallari chiqsinmi?</translation>
 <translation id="8118117428362942925">Ota-onangizdan (<ph name="PARENT_NAME" />) yordam oling</translation>
-<translation id="8124758083429256800">Chrome va Chrome <ph name="ERROR_DESCRIPTION" /> uchun saqlangan parollar roʻyxatlari 121-versiyadan soʻng birlashtiriladi. Avtomatik kiritish funksiyasidan foydalangan holda saqlangan parollarni har ikki ilovaga ham kiritish mumkin.</translation>
 <translation id="8127542551745560481">Bosh sahifani oʻzgartirish</translation>
 <translation id="8130309322784422030">Kirishga oid saqlangan axborotingiz eskirgan</translation>
 <translation id="813082847718468539">Sayt haqidagi ma’lumotlar</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 59b47d8..4aee31da 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Nhấn để mở rộng</translation>
 <translation id="1289059016768036948">Bạn sẽ được yêu cầu đăng nhập vào Tài khoản Google của mình</translation>
 <translation id="1291207594882862231">Xóa dữ liệu duyệt web, cookie, dữ liệu trang web, bộ nhớ đệm…</translation>
-<translation id="1293898515599432175">Mật khẩu của bạn sẽ bị xoá khỏi Trình quản lý mật khẩu của Google trên Chrome <ph name="CHROME_CHANNEL" />. Bạn sẽ giữ tệp mật khẩu mà bạn vừa tải xuống.</translation>
 <translation id="129553762522093515">Các thẻ đã đóng gần đây</translation>
 <translation id="1298077576058087471">Tiết kiệm tới 60% dữ liệu, đọc tin tức hôm nay</translation>
 <translation id="1303339473099049190">Không tìm thấy mật khẩu đó. Hãy kiểm tra chính tả rồi thử lại.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Để tiếp tục, <ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> sẽ chia sẻ tên, địa chỉ email và ảnh hồ sơ của bạn với trang web này.</translation>
 <translation id="5409881200985013443">Gửi <ph name="ONE_TIME_CODE" /> trên <ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Đang xác minh...</translation>
-<translation id="542190472198460451">Tất cả mật khẩu sẽ được tải xuống thiết bị của bạn và bị xoá khỏi Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Trang bạn truy cập nhiều nhất sẽ xuất hiện ở đây</translation>
 <translation id="5424588387303617268">Còn trống <ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">Chỉnh sửa mật khẩu</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Giúp cải thiện hiệu suất và các tính năng của Chrome</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="8118117428362942925">Nếu bạn cần trợ giúp, hãy nhờ cha mẹ (<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Danh sách mật khẩu bạn đã lưu cho Chrome và Chrome <ph name="ERROR_DESCRIPTION" /> sẽ hợp nhất sau phiên bản 121. Bạn có thể chọn tự động điền tất cả mật khẩu đã lưu trên cả hai ứng dụ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>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
index f5fac66..1cf7dff 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">点按即可展开</translation>
 <translation id="1289059016768036948">系统会要求您登录自己的 Google 帐号</translation>
 <translation id="1291207594882862231">清除历史记录、Cookie、网站数据、缓存内容…</translation>
-<translation id="1293898515599432175">系统将从 Chrome <ph name="CHROME_CHANNEL" />的 Google 密码管理工具中删除您的密码。您可以保留刚刚下载的密码文件。</translation>
 <translation id="129553762522093515">最近关闭的标签页</translation>
 <translation id="1298077576058087471">节省高达 60% 的数据流量,阅读今日新闻</translation>
 <translation id="1303339473099049190">找不到该密码。请检查拼写,然后重试。</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">如果您继续注册,<ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> 便会将您的用户名、电子邮件地址和个人资料照片提供给此网站。</translation>
 <translation id="5409881200985013443">将“<ph name="ONE_TIME_CODE" />”提交至“<ph name="CLIENT_NAME" />”?</translation>
 <translation id="5414836363063783498">正在验证…</translation>
-<translation id="542190472198460451">所有密码都将下载到您的设备上,并且会从 Chrome <ph name="CHROME_CHANNEL" />中移除</translation>
 <translation id="5423934151118863508">您最常访问的网页将列在此处</translation>
 <translation id="5424588387303617268">可用存储空间:<ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">修改密码</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">帮助改进 Chrome 的功能和性能</translation>
 <translation id="8110087112193408731">在“数字健康”应用中显示您的 Chrome 活动记录?</translation>
 <translation id="8118117428362942925">如需帮助,请找家长(<ph name="PARENT_NAME" />)帮忙</translation>
-<translation id="8124758083429256800">您在 Chrome 和 Chrome <ph name="ERROR_DESCRIPTION" />中的已存密码列表将在 121 版之后合并。您将能自动填充这两个应用内的所有已存密码。</translation>
 <translation id="8127542551745560481">修改主页</translation>
 <translation id="8130309322784422030">您存储的登录信息可能已过期</translation>
 <translation id="813082847718468539">查看网站信息</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 24c12c64..c3aee61 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">輕按即可展開</translation>
 <translation id="1289059016768036948">系統將會要求您登入 Google 帳戶</translation>
 <translation id="1291207594882862231">清除記錄、Cookie、網站資料、快取…</translation>
-<translation id="1293898515599432175">密碼將從 Chrome <ph name="CHROME_CHANNEL" />的「Google 密碼管理工具」中刪除。您可保留剛剛下載的密碼檔案。</translation>
 <translation id="129553762522093515">最近關閉的分頁</translation>
 <translation id="1298077576058087471">節省高達 60% 數據用量,立即閱讀今天新聞</translation>
 <translation id="1303339473099049190">找不到該密碼。請檢查您輸入的內容,然後再試一次。</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">如要繼續,<ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> 將會與此網站分享您的姓名、電郵地址和個人檔案相片。</translation>
 <translation id="5409881200985013443">要在「<ph name="CLIENT_NAME" />」上提交 <ph name="ONE_TIME_CODE" /> 嗎?</translation>
 <translation id="5414836363063783498">正在驗證…</translation>
-<translation id="542190472198460451">所有密碼將會下載至您的裝置,並從 Chrome <ph name="CHROME_CHANNEL" /> 中移除</translation>
 <translation id="5423934151118863508">您最常瀏覽的網頁會在此顯示</translation>
 <translation id="5424588387303617268">可用空間:<ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">修改密碼</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">協助改善 Chrome\u2019s 的功能和效能</translation>
 <translation id="8110087112193408731">要在「健康數碼生活」中顯示您的 Chrome 活動記錄嗎?</translation>
 <translation id="8118117428362942925">如需協助,請找家長 (<ph name="PARENT_NAME" />) 幫忙</translation>
-<translation id="8124758083429256800">Chrome 和 Chrome <ph name="ERROR_DESCRIPTION" /> 的已儲存密碼清單會在版本 121 後合併。在兩個應用程式中都可自動填入所有已儲存的密碼。</translation>
 <translation id="8127542551745560481">編輯首頁</translation>
 <translation id="8130309322784422030">您儲存的登入資料可能已過期</translation>
 <translation id="813082847718468539">檢視網站資料</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 5cb98b6..77f13993 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
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">輕觸即可展開</translation>
 <translation id="1289059016768036948">系統會要求你登入 Google 帳戶</translation>
 <translation id="1291207594882862231">清除歷史記錄、Cookie、網站資料、快取…</translation>
-<translation id="1293898515599432175">密碼將從 Chrome <ph name="CHROME_CHANNEL" />的 Google 密碼管理工具中刪除。你可以保留剛剛下載的密碼檔案。</translation>
 <translation id="129553762522093515">最近關閉的分頁</translation>
 <translation id="1298077576058087471">節省高達 60% 的數據用量,閱讀今日新聞</translation>
 <translation id="1303339473099049190">找不到指定密碼。請檢查你輸入的內容,然後再試一次。</translation>
@@ -821,7 +820,6 @@
 <translation id="5401851137404501592">如要繼續,<ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> 會將你的姓名、電子郵件地址和個人資料相片提供給這個網站。</translation>
 <translation id="5409881200985013443">要在「<ph name="CLIENT_NAME" />」上提交 <ph name="ONE_TIME_CODE" /> 嗎?</translation>
 <translation id="5414836363063783498">驗證中…</translation>
-<translation id="542190472198460451">所有密碼都會下載到你的裝置,並從 Chrome <ph name="CHROME_CHANNEL" /> 中移除</translation>
 <translation id="5423934151118863508">這裡會顯示您最常造訪的網頁</translation>
 <translation id="5424588387303617268">可用空間:<ph name="GIGABYTES" /> GB</translation>
 <translation id="543338862236136125">修改密碼</translation>
@@ -1365,7 +1363,6 @@
 <translation id="8110024788458304985">協助改善 Chrome 的功能與效能</translation>
 <translation id="8110087112193408731">要在數位健康中顯示你的 Chrome 活動記錄嗎?</translation>
 <translation id="8118117428362942925">如需協助,請找家長 (<ph name="PARENT_NAME" />) 幫忙</translation>
-<translation id="8124758083429256800">Chrome 和 Chrome <ph name="ERROR_DESCRIPTION" /> 的已儲存密碼清單會在 121 版後合併。在兩個應用程式中都可以自動填入所有已儲存的密碼。</translation>
 <translation id="8127542551745560481">編輯首頁</translation>
 <translation id="8130309322784422030">你儲存的登入資訊可能已過時</translation>
 <translation id="813082847718468539">查看網站資訊</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
index 5ab27bcb..ccda2439 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -62,7 +62,6 @@
 <translation id="1283039547216852943">Thepha ukuze unwebe</translation>
 <translation id="1289059016768036948">Uzocelwa ukuthi ungene ngemvume ku-Google Account yakho</translation>
 <translation id="1291207594882862231">Sula umlando, amakhukhi, idatha yesayithi, inqolobane…</translation>
-<translation id="1293898515599432175">Amaphasiwedi akho azosulwa Somphathi Wephasiwedi Ye-Google se-<ph name="CHROME_CHANNEL" />. Uzogcina ifayela lamaphasiwedi osanda kulidawuniloda.</translation>
 <translation id="129553762522093515">Ivalwe kamuva nje</translation>
 <translation id="1298077576058087471">Londoloza idatha efikela ku-60%, funda izindaba zanamuhla</translation>
 <translation id="1303339473099049190">Akuyitholi leyo phasiwedi. Hlola isipelingi sakho bese uzama futhi.</translation>
@@ -822,7 +821,6 @@
 <translation id="5401851137404501592">Ukuze uqhubeke, i-<ph name="IDENTITY_PROVIDER_ETLD_PLUS_ONE" /> izokwabelana ngegama lakho, ikheli le-imeyili, nesithombe sephrofayela nale sayithi.</translation>
 <translation id="5409881200985013443">Thumela i-<ph name="ONE_TIME_CODE" /> ku-<ph name="CLIENT_NAME" />?</translation>
 <translation id="5414836363063783498">Iyaqinisekisa…</translation>
-<translation id="542190472198460451">Wonke amaphasiwedi azodawunilodwa kudivayisi yakho futhi akhishwe ku-Chrome <ph name="CHROME_CHANNEL" /></translation>
 <translation id="5423934151118863508">Amakhasi wakho avakashelwe kakhulu azovela lapha</translation>
 <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB okutholakalayo</translation>
 <translation id="543338862236136125">Hlela iphasiwedi</translation>
@@ -1366,7 +1364,6 @@
 <translation id="8110024788458304985">Siza ukuthuthukisa izakhi nokusebenza kwe-Chrome\u2019</translation>
 <translation id="8110087112193408731">Bonisa umsebenzi wakho we-Chrome ku-Digital Wellbeing?</translation>
 <translation id="8118117428362942925">Uma udinga usizo, cela umzali wakho (u-<ph name="PARENT_NAME" />)</translation>
-<translation id="8124758083429256800">Uhlu lwakho lwamaphasiwedi alondoloziwe e-Chrome ne-Chrome <ph name="ERROR_DESCRIPTION" /> luzohlangana ngemva kohlobo 121. Uzokwazi ukugcwalisa ngokuzenzakalelayo wonke amaphasiwedi akho alondoloziwe kuwo womabili ama-app.</translation>
 <translation id="8127542551745560481">Hlela ikhasi lasekhaya</translation>
 <translation id="8130309322784422030">Ulwazi lwakho olugciniwe lokungena ngemvume lungahle lube oluphelelwe yisikhathi</translation>
 <translation id="813082847718468539">Buka ulwazi lwesayithi</translation>
diff --git a/chrome/browser/ui/autofill/DEPS b/chrome/browser/ui/autofill/DEPS
index b449a8160..8247117 100644
--- a/chrome/browser/ui/autofill/DEPS
+++ b/chrome/browser/ui/autofill/DEPS
@@ -1,4 +1,5 @@
 include_rules = [
+  '+components/plus_addresses',
   '+components/webauthn',
   '+third_party/libaddressinput/chromium/addressinput_util.h',
   '+third_party/libaddressinput/chromium/chrome_address_validator.h',
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
index 3c3ae7d..842f088 100644
--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -31,6 +31,7 @@
 #include "chrome/browser/fast_checkout/fast_checkout_features.h"
 #include "chrome/browser/password_manager/chrome_password_manager_client.h"
 #include "chrome/browser/password_manager/password_manager_settings_service_factory.h"
+#include "chrome/browser/plus_addresses/plus_address_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/signin/signin_promo_util.h"
@@ -85,6 +86,7 @@
 #include "components/password_manager/core/browser/password_manager_util.h"
 #include "components/password_manager/core/browser/password_requirements_service.h"
 #include "components/password_manager/core/common/password_manager_pref_names.h"
+#include "components/plus_addresses/features.h"
 #include "components/prefs/pref_service.h"
 #include "components/profile_metrics/browser_profile_type.h"
 #include "components/security_state/core/security_state.h"
@@ -226,6 +228,18 @@
   return IbanManagerFactory::GetForProfile(profile);
 }
 
+plus_addresses::PlusAddressService*
+ChromeAutofillClient::GetPlusAddressService() {
+  // The `PlusAddressServiceFactory` should also ensure the service is not
+  // created without the feature enabled, but being defensive here to avoid
+  // surprises.
+  if (!base::FeatureList::IsEnabled(plus_addresses::kFeature)) {
+    return nullptr;
+  }
+  return PlusAddressServiceFactory::GetForBrowserContext(
+      web_contents()->GetBrowserContext());
+}
+
 MerchantPromoCodeManager* ChromeAutofillClient::GetMerchantPromoCodeManager() {
   if (!base::FeatureList::IsEnabled(
           features::kAutofillFillMerchantPromoCodeFields)) {
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browser/ui/autofill/chrome_autofill_client.h
index 79fbc24..469f254 100644
--- a/chrome/browser/ui/autofill/chrome_autofill_client.h
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.h
@@ -106,6 +106,7 @@
   PersonalDataManager* GetPersonalDataManager() override;
   AutocompleteHistoryManager* GetAutocompleteHistoryManager() override;
   IbanManager* GetIbanManager() override;
+  plus_addresses::PlusAddressService* GetPlusAddressService() override;
   MerchantPromoCodeManager* GetMerchantPromoCodeManager() override;
   CreditCardCvcAuthenticator* GetCvcAuthenticator() override;
   CreditCardOtpAuthenticator* GetOtpAuthenticator() override;
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client_unittest.cc b/chrome/browser/ui/autofill/chrome_autofill_client_unittest.cc
index 2ebccc4..06f28c2 100644
--- a/chrome/browser/ui/autofill/chrome_autofill_client_unittest.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client_unittest.cc
@@ -10,6 +10,7 @@
 #include "chrome/browser/autofill/personal_data_manager_factory.h"
 #include "chrome/browser/fast_checkout/fast_checkout_client_impl.h"
 #include "chrome/browser/fast_checkout/fast_checkout_features.h"
+#include "chrome/browser/plus_addresses/plus_address_service_factory.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "components/autofill/content/browser/content_autofill_router.h"
 #include "components/autofill/content/browser/test_autofill_client_injector.h"
@@ -21,6 +22,7 @@
 #include "components/autofill/core/browser/test_personal_data_manager.h"
 #include "components/autofill/core/browser/ui/mock_fast_checkout_client.h"
 #include "components/autofill/core/common/form_interactions_flow.h"
+#include "components/plus_addresses/features.h"
 #include "components/prefs/pref_service.h"
 #include "components/unified_consent/pref_names.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -189,6 +191,17 @@
             client()->GetCurrentFormInteractionsFlowId());
 }
 
+// Ensure that, by default, the plus address service is not available.
+// The positive case (feature enabled) will be tested in plus_addresses browser
+// tests; this test is intended to ensure the default state does not behave
+// unexpectedly.
+TEST_F(ChromeAutofillClientTest,
+       PlusAddressesDefaultFeatureStateMeansNullPlusAddressService) {
+  PlusAddressServiceFactory::GetForBrowserContext(
+      web_contents()->GetBrowserContext());
+  EXPECT_EQ(client()->GetPlusAddressService(), nullptr);
+}
+
 #if BUILDFLAG(IS_ANDROID)
 class ChromeAutofillClientTestWithPaymentsAndroidBottomSheetFeature
     : public ChromeAutofillClientTest {
diff --git a/chrome/browser/ui/search/search_tab_helper.cc b/chrome/browser/ui/search/search_tab_helper.cc
index 74f6cbf..a872c918 100644
--- a/chrome/browser/ui/search/search_tab_helper.cc
+++ b/chrome/browser/ui/search/search_tab_helper.cc
@@ -329,7 +329,7 @@
 
 void SearchTabHelper::CloseNTPCustomizeChromeFeaturePromo() {
   const base::Feature& customize_chrome_feature =
-      features::IsChromeRefresh2023()
+      features::IsChromeRefresh2023() && features::IsChromeWebuiRefresh2023()
           ? feature_engagement::kIPHDesktopCustomizeChromeRefreshFeature
           : feature_engagement::kIPHDesktopCustomizeChromeFeature;
   if (web_contents()->GetController().GetVisibleEntry()->GetURL() ==
diff --git a/chrome/browser/ui/signin_view_controller.cc b/chrome/browser/ui/signin_view_controller.cc
index 5a0410a..2c7dc71 100644
--- a/chrome/browser/ui/signin_view_controller.cc
+++ b/chrome/browser/ui/signin_view_controller.cc
@@ -424,7 +424,8 @@
             .email;
     DCHECK(email_hint.empty() || gaia::AreEmailsSame(email_hint, email_to_use));
   }
-  ShowDiceSigninTab(reason, access_point, promo_action, email_to_use);
+  ShowDiceSigninTab(reason, access_point, promo_action, email_to_use,
+                    GURL(chrome::kChromeUINewTabURL));
 }
 
 void SigninViewController::ShowDiceAddAccountTab(
@@ -432,7 +433,7 @@
     const std::string& email_hint) {
   ShowDiceSigninTab(signin_metrics::Reason::kAddSecondaryAccount, access_point,
                     signin_metrics::PromoAction::PROMO_ACTION_NO_SIGNIN_PROMO,
-                    email_hint);
+                    email_hint, /*redirect_url=*/GURL());
 }
 
 void SigninViewController::ShowGaiaLogoutTab(
diff --git a/chrome/browser/ui/signin_view_controller.h b/chrome/browser/ui/signin_view_controller.h
index ef0c3ba..f4abed8d 100644
--- a/chrome/browser/ui/signin_view_controller.h
+++ b/chrome/browser/ui/signin_view_controller.h
@@ -194,11 +194,14 @@
 #if BUILDFLAG(ENABLE_DICE_SUPPORT)
   // Shows the DICE-specific sign-in flow: opens a Gaia sign-in webpage in a new
   // tab attached to |browser_|. |email_hint| may be empty.
+  // If `redirect_url` is empty, the Google search URL is used as continue_url.
+  // Internal URLs such as the NTP are only supported when `signin_reason` is
+  // `signin_metrics::Reason::kSigninPrimaryAccount`.
   void ShowDiceSigninTab(signin_metrics::Reason signin_reason,
                          signin_metrics::AccessPoint access_point,
                          signin_metrics::PromoAction promo_action,
                          const std::string& email_hint,
-                         const GURL& redirect_url = GURL::EmptyGURL());
+                         const GURL& redirect_url);
 #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT)
 
   // Returns the web contents of the modal dialog.
diff --git a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
index 825e2fbac..92c6d6d 100644
--- a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
@@ -101,6 +101,7 @@
 #include "components/infobars/content/content_infobar_manager.h"
 #include "components/infobars/core/infobar.h"
 #include "components/infobars/core/infobar_delegate.h"
+#include "components/keep_alive_registry/keep_alive_registry.h"
 #include "components/keep_alive_registry/keep_alive_types.h"
 #include "components/keep_alive_registry/scoped_keep_alive.h"
 #include "components/metrics/metrics_pref_names.h"
@@ -552,6 +553,21 @@
             web_contents->GetLastCommittedURL().ExtractFileName());
 }
 
+IN_PROC_BROWSER_TEST_F(StartupBrowserCreatorTest,
+                       LaunchWebAppWhileKeepAliveRegistryIsShutdown) {
+  // Command line to simulate app launch.
+  base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
+  command_line.AppendSwitchASCII(switches::kAppId, "app_id_1");
+
+  // Simulate keep alive registry shutdown and try to launch the app and verify
+  // that we don't crash.
+  KeepAliveRegistry::GetInstance()->SetIsShuttingDown(true);
+  web_app::startup::MaybeHandleWebAppLaunch(
+      command_line, base::FilePath(FILE_PATH_LITERAL("\\path")),
+      browser()->profile(), chrome::startup::IsFirstRun::kNo);
+  base::RunLoop().RunUntilIdle();
+}
+
 namespace {
 
 enum class ChromeAppDeprecationFeatureValue {
diff --git a/chrome/browser/ui/startup/web_app_startup_utils.cc b/chrome/browser/ui/startup/web_app_startup_utils.cc
index 8078368..144c181 100644
--- a/chrome/browser/ui/startup/web_app_startup_utils.cc
+++ b/chrome/browser/ui/startup/web_app_startup_utils.cc
@@ -50,6 +50,7 @@
 #include "chrome/browser/web_applications/web_app_utils.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/chrome_switches.h"
+#include "components/keep_alive_registry/keep_alive_registry.h"
 #include "components/keep_alive_registry/keep_alive_types.h"
 #include "components/keep_alive_registry/scoped_keep_alive.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -100,6 +101,13 @@
     if (app_id.empty())
       return false;
 
+    // Ensure keep alive registry is available and is not shutting down before
+    // attempting a web apps launch.
+    KeepAliveRegistry* keep_alive_registry = KeepAliveRegistry::GetInstance();
+    if (!keep_alive_registry || keep_alive_registry->IsShuttingDown()) {
+      return false;
+    }
+
     scoped_refptr<StartupWebAppCreator> web_app_startup =
         base::AdoptRef(new StartupWebAppCreator(command_line, cur_dir, profile,
                                                 is_first_run, app_id));
diff --git a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.cc b/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.cc
index 931e25d..2de5c5f 100644
--- a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.cc
+++ b/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.cc
@@ -17,6 +17,7 @@
 #include "ui/accessibility/ax_enums.mojom.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/events/keycodes/keyboard_codes.h"
+#include "ui/gfx/canvas.h"
 #include "ui/views/accessibility/view_accessibility.h"
 #include "ui/views/animation/ink_drop.h"
 #include "ui/views/controls/button/button_controller.h"
@@ -26,11 +27,14 @@
 #include "ui/views/layout/box_layout.h"
 #include "ui/views/vector_icons.h"
 #include "ui/views/view.h"
+#include "ui/views/widget/widget.h"
 
 namespace autofill {
 
 namespace {
 
+constexpr int kCloseIconSize = 16;
+
 // Overrides `OnMouseEntered` and `OnMouseExited` from
 // `views::ButtonController`. Used by `PopupAutocompleteCellView` to know when
 // the mouse cursor has entered or left the delete button in order to run the
@@ -58,8 +62,62 @@
   raw_ptr<DeleteButtonDelegate> delete_button_owner_ = nullptr;
 };
 
-constexpr int kCloseIconSize = 16;
+ButtonPlaceholder::ButtonPlaceholder(DeleteButtonDelegate* delete_button_owner)
+    : delete_button_owner_(delete_button_owner) {}
+ButtonPlaceholder::~ButtonPlaceholder() = default;
 
+void ButtonPlaceholder::OnPaint(gfx::Canvas* canvas) {
+  views::View::OnPaint(canvas);
+  if (first_paint_happened_) {
+    return;
+  }
+
+  // The button placeholder should have only the button as child.
+  CHECK(children().size() == 1);
+  // The placeholder also always have a parent, the cell.
+  CHECK(parent());
+
+  // If the row that owns the placeholder is rendered right under the cursor, we
+  // make the button visible.
+  View* delete_button = children()[0];
+  if (parent()->IsMouseHovered()) {
+    view_bounds_changed_observer_.Observe(delete_button);
+    delete_button->SetVisible(true);
+  }
+  first_paint_happened_ = true;
+}
+
+void ButtonPlaceholder::OnViewBoundsChanged(View* observed_view) {
+  CHECK(children().size() == 1);
+
+  // After making the button visible, we will be notified about its bounds
+  // changing. We emit a `SynthesizeMouseMoveEvent()` to first select the cell
+  // and then conditionally select the button if hovering over it. We cannot
+  // simply call `SynthesizeMouseMoveEvent()` because it calls the cell
+  // `OnMouseEntered` method after we highlight the button, leading the an
+  // incorrect state.
+  View* delete_button = children()[0];
+  if (observed_view == delete_button && observed_view->GetVisible()) {
+    GetWidget()->SynthesizeMouseMoveEvent();
+    if (observed_view->IsMouseHovered()) {
+      delete_button_owner_->OnMouseEnteredDeleteButton();
+      view_bounds_changed_observer_.Reset();
+    }
+  }
+}
+
+int ButtonPlaceholder::GetHeightForWidth(int width) const {
+  // The parent for this view (the cell) and the placeholder button uses a
+  // `BoxLayout` for its `LayoutManager`. Internally `BoxLayout` uses
+  // `GetHeightForWidth` on each children to define their height when the
+  // orientation is not `kVertical`. Finally these children uses
+  // `BoxLayout::GetPreferredSizeForChildWidth` to tell their parent their
+  // height, however they only return a non 0 value if they have visible
+  // children. This is not the case here because the button is at first no
+  // visible. Therefore we override GetHeightForWidth to return the preferred
+  // height regardless of children being visible or not.
+  return GetPreferredSize().height();
+}
 }  // namespace
 
 PopupAutocompleteCellView::PopupAutocompleteCellView(
@@ -232,12 +290,12 @@
     layout->SetFlexForView(child, 1);
   }
 
-  views::View* button_placeholder =
-      AddChildView(std::make_unique<views::View>());
-  button_placeholder->SetLayoutManager(std::make_unique<views::BoxLayout>());
-  button_placeholder->SetPreferredSize(button->GetPreferredSize());
-  button_ = button_placeholder->AddChildView(std::move(button));
-  layout->SetFlexForView(button_placeholder, 0);
+  button_placeholder_ = AddChildView(std::make_unique<ButtonPlaceholder>(this));
+  button_placeholder_->SetLayoutManager(std::make_unique<views::BoxLayout>());
+  button_placeholder_->SetPreferredSize(button->GetPreferredSize());
+
+  button_ = button_placeholder_->AddChildView(std::move(button));
+  layout->SetFlexForView(button_placeholder_, 0);
 
   button_->SetButtonController(std::make_unique<DeleteButtonController>(
       button_, this,
diff --git a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h b/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h
index e299eff..c2e7716 100644
--- a/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h
+++ b/chrome/browser/ui/views/autofill/popup/popup_autocomplete_cell_view.h
@@ -5,7 +5,9 @@
 #ifndef CHROME_BROWSER_UI_VIEWS_AUTOFILL_POPUP_POPUP_AUTOCOMPLETE_CELL_VIEW_H_
 #define CHROME_BROWSER_UI_VIEWS_AUTOFILL_POPUP_POPUP_AUTOCOMPLETE_CELL_VIEW_H_
 
+#include "base/scoped_observation.h"
 #include "chrome/browser/ui/views/autofill/popup/popup_cell_view.h"
+#include "ui/views/view_observer.h"
 
 namespace content {
 struct NativeWebKeyboardEvent;
@@ -19,6 +21,10 @@
 class AutofillPopupController;
 }
 
+namespace gfx {
+class canvas;
+}  // namespace gfx
+
 namespace autofill {
 
 // To notify `PopupAutocompleteCellView` of mouse cursor entering or leaving the
@@ -29,6 +35,33 @@
   virtual void OnMouseExitedDeleteButton() = 0;
 };
 
+namespace {
+
+// Used to know when both the placeholder and the button are eventually painted
+// and have dimensions. This is iportant to solve the issue where deleting an
+// entry leads to another entry being rendered right under the cursor.
+class ButtonPlaceholder : public views::View, public views::ViewObserver {
+ public:
+  explicit ButtonPlaceholder(DeleteButtonDelegate* delete_button_owner);
+  ~ButtonPlaceholder() override;
+
+  // views::View:
+  void OnPaint(gfx::Canvas* canvas) override;
+  int GetHeightForWidth(int width) const override;
+
+  // views::ViewObserver:
+  void OnViewBoundsChanged(views::View* observed_view) override;
+
+ private:
+  // Scoped observation for OnViewBoundsChanged.
+  base::ScopedObservation<views::View, views::ViewObserver>
+      view_bounds_changed_observer_{this};
+  const raw_ptr<DeleteButtonDelegate> delete_button_owner_ = nullptr;
+  bool first_paint_happened_ = false;
+};
+
+}  // namespace
+
 // `PopupAutocompleteCellView` represents a single, selectable cell. However, It
 // contains the autocomplete value AND a button to delete the entry.
 class PopupAutocompleteCellView : public autofill::PopupCellView,
@@ -61,8 +94,16 @@
   void UpdateSelectedAndRunCallback(bool selected);
   void HandleKeyPressEventFocusOnButton();
   void HandleKeyPressEventFocusOnContent();
+  // When an entry is deleted the popup is recreated. This can lead to a row
+  // being rendered under the cursor, leading it to be unreactive (not
+  // highlighted/selected) until a mouse movement occurs. In this situation we
+  // have to manually select the content or highlight the button depending on
+  // the cursor position.
+  void HandleEntryWasDeleted();
 
-  raw_ptr<views::ImageButton> button_;
+  raw_ptr<views::ImageButton> button_ = nullptr;
+  raw_ptr<ButtonPlaceholder> button_placeholder_ = nullptr;
+
   // The controller for the parent view.
   const base::WeakPtr<AutofillPopupController> controller_;
   // The line number in the popup.
diff --git a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc
index 482f26d..c63df1b 100644
--- a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc
@@ -6,6 +6,7 @@
 
 #include "base/functional/callback_helpers.h"
 #include "base/run_loop.h"
+#include "build/build_config.h"
 #include "chrome/browser/extensions/browsertest_util.h"
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/extensions/extension_uninstall_dialog.h"
@@ -551,8 +552,16 @@
   RunTest(MANUAL_UNINSTALL, EXTENSION_LOCAL_SOURCE);
 }
 
+// TODO(crbug.com/1472311): Re-enable this test
+#if BUILDFLAG(IS_WIN)
+#define MAYBE_InvokeUi_ManualUninstallShowReportAbuse \
+  DISABLED_InvokeUi_ManualUninstallShowReportAbuse
+#else
+#define MAYBE_InvokeUi_ManualUninstallShowReportAbuse \
+  InvokeUi_ManualUninstallShowReportAbuse
+#endif
 IN_PROC_BROWSER_TEST_F(ExtensionUninstallDialogViewInteractiveBrowserTest,
-                       InvokeUi_ManualUninstallShowReportAbuse) {
+                       MAYBE_InvokeUi_ManualUninstallShowReportAbuse) {
   RunTest(MANUAL_UNINSTALL, EXTENSION_FROM_WEBSTORE);
 }
 
diff --git a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
index 8efd2c7..c11ef209 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
@@ -56,7 +56,7 @@
   int touchable_size_delta = 0;
 
   // The baseline shift. Ignored under touch (text is always baseline-aligned).
-  gfx::BaselineStyle baseline = gfx::NORMAL_BASELINE;
+  gfx::BaselineStyle baseline = gfx::BaselineStyle::kNormalBaseline;
 };
 
 // The new answer layout has separate and different treatment of text styles,
@@ -77,8 +77,8 @@
 
   const gfx::BaselineStyle baseline =
       (text_style == SuggestionAnswer::TextStyle::SUPERIOR)
-          ? gfx::SUPERIOR
-          : gfx::NORMAL_BASELINE;
+          ? gfx::BaselineStyle::kSuperior
+          : gfx::BaselineStyle::kNormalBaseline;
   render_text->ApplyBaselineStyle(baseline, range);
 
   const bool selected =
diff --git a/chrome/browser/ui/views/site_data/page_specific_site_data_dialog_unittest.cc b/chrome/browser/ui/views/site_data/page_specific_site_data_dialog_unittest.cc
index c94f9ee..2448d40 100644
--- a/chrome/browser/ui/views/site_data/page_specific_site_data_dialog_unittest.cc
+++ b/chrome/browser/ui/views/site_data/page_specific_site_data_dialog_unittest.cc
@@ -45,7 +45,7 @@
                           }));
 }
 
-blink::StorageKey CreateFirstPartyStorageKey(const GURL& url) {
+blink::StorageKey CreateUnpartitionedStorageKey(const GURL& url) {
   return blink::StorageKey::CreateFirstParty(url::Origin::Create(url));
 }
 
@@ -142,7 +142,7 @@
   // in the dialog.
   auto* content_settings = GetContentSettings();
   content_settings->OnBrowsingDataAccessed(
-      CreateFirstPartyStorageKey(GURL(kThirdPartyUrl)),
+      CreateUnpartitionedStorageKey(GURL(kThirdPartyUrl)),
       BrowsingDataModel::StorageType::kQuotaStorage,
       /*blocked=*/false);
 
@@ -176,7 +176,7 @@
        {*first_party_cookie},
        false});
   content_settings->OnBrowsingDataAccessed(
-      CreateFirstPartyStorageKey(GURL(kThirdPartyUrl)),
+      CreateUnpartitionedStorageKey(GURL(kThirdPartyUrl)),
       BrowsingDataModel::StorageType::kQuotaStorage,
       /*blocked=*/false);
 
@@ -210,7 +210,7 @@
        {*first_party_cookie},
        false});
   content_settings->OnBrowsingDataAccessed(
-      CreateFirstPartyStorageKey(GURL(kThirdPartyUrl)),
+      CreateUnpartitionedStorageKey(GURL(kThirdPartyUrl)),
       BrowsingDataModel::StorageType::kQuotaStorage,
       /*blocked=*/false);
 
@@ -321,7 +321,7 @@
   // in the dialog.
   auto* content_settings = GetContentSettings();
   content_settings->OnBrowsingDataAccessed(
-      CreateFirstPartyStorageKey(GURL(kThirdPartyUrl)),
+      CreateUnpartitionedStorageKey(GURL(kThirdPartyUrl)),
       BrowsingDataModel::StorageType::kQuotaStorage,
       /*blocked=*/false);
   content_settings->OnBrowsingDataAccessed(
@@ -359,7 +359,7 @@
        {*first_party_cookie},
        false});
   content_settings->OnBrowsingDataAccessed(
-      CreateFirstPartyStorageKey(GURL(kThirdPartyUrl)),
+      CreateUnpartitionedStorageKey(GURL(kThirdPartyUrl)),
       BrowsingDataModel::StorageType::kQuotaStorage,
       /*blocked=*/false);
   std::unique_ptr<net::CanonicalCookie> third_party_cookie(
@@ -409,7 +409,7 @@
        {*first_party_cookie},
        false});
   content_settings->OnBrowsingDataAccessed(
-      CreateFirstPartyStorageKey(GURL(kThirdPartyUrl)),
+      CreateUnpartitionedStorageKey(GURL(kThirdPartyUrl)),
       BrowsingDataModel::StorageType::kQuotaStorage,
       /*blocked=*/false);
   std::unique_ptr<net::CanonicalCookie> third_party_cookie(
@@ -732,10 +732,10 @@
   auto* content_settings = GetContentSettings();
 
   content_settings->OnStorageAccessed(
-      GetParam(), CreateFirstPartyStorageKey(GURL(kCurrentUrl)),
+      GetParam(), CreateUnpartitionedStorageKey(GURL(kCurrentUrl)),
       /*blocked_by_policy=*/false);
   content_settings->OnStorageAccessed(
-      GetParam(), CreateFirstPartyStorageKey(GURL(kThirdPartyUrl)),
+      GetParam(), CreateUnpartitionedStorageKey(GURL(kThirdPartyUrl)),
       /*blocked_by_policy=*/false);
 
   auto delegate =
diff --git a/chrome/browser/ui/webui/management/management_ui.cc b/chrome/browser/ui/webui/management/management_ui.cc
index 39a18450..0cb023b 100644
--- a/chrome/browser/ui/webui/management/management_ui.cc
+++ b/chrome/browser/ui/webui/management/management_ui.cc
@@ -153,6 +153,7 @@
     {kManagementOnPageVisitedEvent, IDS_MANAGEMENT_PAGE_VISITED_EVENT},
     {kManagementOnPageVisitedVisibleData,
      IDS_MANAGEMENT_PAGE_VISITED_VISIBLE_DATA},
+    {kManagementLegacyTechReport, IDS_MANAGEMENT_LEGACY_TECH_REPORT},
   };
 
   source->AddLocalizedStrings(kLocalizedStrings);
diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc
index efb1f07..1316028 100644
--- a/chrome/browser/ui/webui/management/management_ui_handler.cc
+++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
@@ -30,6 +30,7 @@
 #include "chrome/browser/device_api/managed_configuration_api_factory.h"
 #include "chrome/browser/enterprise/connectors/common.h"
 #include "chrome/browser/enterprise/connectors/connectors_service.h"
+#include "chrome/browser/enterprise/reporting/prefs.h"
 #include "chrome/browser/media/webrtc/capture_policy_utils.h"
 #include "chrome/browser/policy/chrome_browser_policy_connector.h"
 #include "chrome/browser/policy/management_utils.h"
@@ -41,6 +42,7 @@
 #include "chrome/browser/web_applications/web_app_registrar.h"
 #include "chrome/browser/web_applications/web_app_utils.h"
 #include "chrome/common/pref_names.h"
+#include "components/enterprise/browser/reporting/common_pref_names.h"
 #include "components/safe_browsing/core/common/safe_browsing_prefs.h"
 #include "components/strings/grit/components_strings.h"
 #include "components/supervised_user/core/common/pref_names.h"
@@ -169,18 +171,22 @@
 const char kManagementOnPageVisitedVisibleData[] =
     "managementOnPageVisitedVisibleData";
 
+const char kManagementLegacyTechReport[] = "managementLegacyTechReport";
+
 const char kReportingTypeDevice[] = "device";
 const char kReportingTypeExtensions[] = "extensions";
 const char kReportingTypeSecurity[] = "security";
 const char kReportingTypeUser[] = "user";
 const char kReportingTypeUserActivity[] = "user-activity";
+const char kReportingTypeLegacyTech[] = "legacy-tech";
 
 enum class ReportingType {
   kDevice,
   kExtensions,
   kSecurity,
   kUser,
-  kUserActivity
+  kUserActivity,
+  kLegacyTech,
 };
 
 #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
@@ -261,6 +267,7 @@
   kLoginLogout,
   kCRDSessions,
   kPeripherals,
+  kLegacyTech,
 };
 
 #else
@@ -311,6 +318,8 @@
       return "crd sessions";
     case DeviceReportingType::kPeripherals:
       return "peripherals";
+    case DeviceReportingType::kLegacyTech:
+      return kReportingTypeLegacyTech;
     default:
       NOTREACHED() << "Unknown device reporting type";
       return "device";
@@ -459,6 +468,13 @@
                               DeviceReportingType::kAndroidApplication);
   }
 
+  if (!profile->GetPrefs()
+           ->GetList(enterprise_reporting::kCloudLegacyTechReportAllowlist)
+           .empty()) {
+    AddDeviceReportingElement(report_sources, kManagementLegacyTechReport,
+                              DeviceReportingType::kLegacyTech);
+  }
+
   bool report_login_logout = false;
   ash::CrosSettings::Get()->GetBoolean(ash::kReportDeviceLoginLogout,
                                        &report_login_logout);
@@ -535,6 +551,8 @@
       return kReportingTypeUser;
     case ReportingType::kUserActivity:
       return kReportingTypeUserActivity;
+    case ReportingType::kLegacyTech:
+      return kReportingTypeLegacyTech;
     default:
       return kReportingTypeSecurity;
   }
@@ -677,20 +695,25 @@
       &on_prem_reporting_extension_stable_policy_map,
       &on_prem_reporting_extension_beta_policy_map};
 
-  const auto* cloud_reporting_policy_value =
-      GetPolicyService()
-          ->GetPolicies(policy::PolicyNamespace(policy::POLICY_DOMAIN_CHROME,
-                                                std::string()))
-          .GetValue(policy::key::kCloudReportingEnabled,
-                    base::Value::Type::BOOLEAN);
   const bool cloud_reporting_policy_enabled =
-      cloud_reporting_policy_value && cloud_reporting_policy_value->GetBool();
+      g_browser_process->local_state()->GetBoolean(
+          enterprise_reporting::kCloudReportingEnabled);
+  const bool cloud_legacy_tech_report_enabled =
+      !Profile::FromWebUI(web_ui())
+           ->GetPrefs()
+           ->GetList(enterprise_reporting::kCloudLegacyTechReportAllowlist)
+           .empty();
+
+  if (cloud_legacy_tech_report_enabled) {
+    Profile::FromWebUI(web_ui())->GetPrefs()->GetList(
+        enterprise_reporting::kCloudLegacyTechReportAllowlist)[0];
+  }
 
   const struct {
-    const char* policy_key;
+    const char* reporting_extension_policy_key;
     const char* message;
     const ReportingType reporting_type;
-    const bool enabled_by_default;
+    const bool cloud_reporting_enabled;
   } report_definitions[] = {
       {kPolicyKeyReportMachineIdData, kManagementExtensionReportMachineName,
        ReportingType::kDevice, cloud_reporting_policy_enabled},
@@ -709,17 +732,19 @@
       {kPolicyKeyReportUserBrowsingData,
        kManagementExtensionReportUserBrowsingData, ReportingType::kUserActivity,
        false},
-  };
+      {kPolicyKeyReportUserBrowsingData, kManagementLegacyTechReport,
+       ReportingType::kLegacyTech, cloud_legacy_tech_report_enabled}};
 
   std::unordered_set<const char*> enabled_messages;
 
   for (auto& report_definition : report_definitions) {
-    if (report_definition.enabled_by_default) {
+    if (report_definition.cloud_reporting_enabled) {
       enabled_messages.insert(report_definition.message);
-    } else if (report_definition.policy_key) {
+    } else if (report_definition.reporting_extension_policy_key) {
       for (const policy::PolicyMap* policy_map : policy_maps) {
         const base::Value* policy_value = policy_map->GetValue(
-            report_definition.policy_key, base::Value::Type::BOOLEAN);
+            report_definition.reporting_extension_policy_key,
+            base::Value::Type::BOOLEAN);
         if (policy_value && policy_value->GetBool()) {
           enabled_messages.insert(report_definition.message);
           break;
diff --git a/chrome/browser/ui/webui/management/management_ui_handler.h b/chrome/browser/ui/webui/management/management_ui_handler.h
index 824d41c5..426e633 100644
--- a/chrome/browser/ui/webui/management/management_ui_handler.h
+++ b/chrome/browser/ui/webui/management/management_ui_handler.h
@@ -88,6 +88,8 @@
 extern const char kManagementOnPageVisitedEvent[];
 extern const char kManagementOnPageVisitedVisibleData[];
 
+extern const char kManagementLegacyTechReport[];
+
 extern const char kPolicyKeyReportMachineIdData[];
 extern const char kPolicyKeyReportUserIdData[];
 extern const char kPolicyKeyReportVersionData[];
@@ -102,6 +104,7 @@
 extern const char kReportingTypeSecurity[];
 extern const char kReportingTypeUser[];
 extern const char kReportingTypeUserActivity[];
+extern const char kReportingTypeLegacyTech[];
 
 namespace extensions {
 class Extension;
diff --git a/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc b/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
index 9f5fcc1..6f2ff435 100644
--- a/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
+++ b/chrome/browser/ui/webui/management/management_ui_handler_unittest.cc
@@ -21,11 +21,16 @@
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/ash/policy/remote_commands/fake_start_crd_session_job_delegate.h"
 #include "chrome/browser/enterprise/connectors/test/deep_scanning_test_utils.h"
+#include "chrome/browser/enterprise/reporting/prefs.h"
 #include "chrome/browser/policy/dm_token_utils.h"
+#include "chrome/browser/prefs/browser_prefs.h"
 #include "chrome/browser/ui/webui/management/management_ui_handler.h"
 #include "chrome/common/pref_names.h"
+#include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/ash/components/settings/cros_settings_names.h"
+#include "components/enterprise/browser/reporting/common_pref_names.h"
+#include "components/enterprise/browser/reporting/real_time_report_type.h"
 #include "components/enterprise/common/proto/connectors.pb.h"
 #include "components/policy/core/browser/browser_policy_connector.h"
 #include "components/policy/core/common/cloud/dm_token.h"
@@ -37,9 +42,14 @@
 #include "components/policy/core/common/policy_types.h"
 #include "components/policy/policy_constants.h"
 #include "components/prefs/pref_service.h"
+#include "components/prefs/testing_pref_service.h"
 #include "components/safe_browsing/core/common/safe_browsing_prefs.h"
 #include "components/strings/grit/components_strings.h"
+#include "components/sync_preferences/testing_pref_service_syncable.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_ui.h"
 #include "content/public/test/browser_task_environment.h"
+#include "content/public/test/test_web_ui.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/extension_builder.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -69,8 +79,6 @@
 #include "chrome/browser/net/secure_dns_config.h"
 #include "chrome/browser/net/stub_resolver_config_reader.h"
 #include "chrome/browser/net/system_network_context_manager.h"
-#include "chrome/browser/prefs/browser_prefs.h"
-#include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
 #include "chromeos/ash/components/dbus/shill/shill_service_client.h"
 #include "chromeos/ash/components/install_attributes/stub_install_attributes.h"
@@ -82,18 +90,15 @@
 #include "chromeos/ash/components/system/fake_statistics_provider.h"
 #include "chromeos/dbus/power/power_manager_client.h"
 #include "components/account_id/account_id.h"
-#include "components/enterprise/browser/reporting/common_pref_names.h"
 #include "components/onc/onc_pref_names.h"
 #include "components/policy/core/common/cloud/cloud_external_data_manager.h"
 #include "components/policy/core/common/cloud/mock_cloud_external_data_manager.h"
 #include "components/policy/core/common/cloud/mock_cloud_policy_client.h"
 #include "components/policy/core/common/cloud/mock_cloud_policy_store.h"
 #include "components/policy/core/common/cloud/mock_signing_service.h"
-#include "components/prefs/testing_pref_service.h"
 #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
 #include "components/proxy_config/proxy_config_dictionary.h"
 #include "components/proxy_config/proxy_config_pref_names.h"
-#include "components/sync_preferences/testing_pref_service_syncable.h"
 #include "components/user_manager/fake_user_manager.h"
 #include "components/user_manager/scoped_user_manager.h"
 #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
@@ -216,8 +221,11 @@
 class TestManagementUIHandler : public ManagementUIHandler {
  public:
   TestManagementUIHandler() = default;
-  explicit TestManagementUIHandler(policy::PolicyService* policy_service)
-      : policy_service_(policy_service) {}
+  TestManagementUIHandler(policy::PolicyService* policy_service,
+                          content::WebUI* web_ui)
+      : policy_service_(policy_service) {
+    set_web_ui(web_ui);
+  }
 
   ~TestManagementUIHandler() override = default;
 
@@ -229,7 +237,7 @@
     return GetContextualManagedData(profile);
   }
 
-  base::Value::List GetExtensionReportingInfo(bool can_collect_signals = true) {
+  base::Value::List GetReportingInfo(bool can_collect_signals = true) {
 #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
     EXPECT_CALL(mock_user_permission_service_, CanCollectSignals())
         .WillOnce(
@@ -290,16 +298,15 @@
  public:
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   ManagementUIHandlerTests()
-      : TestingBaseClass(),
-        device_domain_(u"devicedomain.com"),
+      : device_domain_(u"devicedomain.com"),
         task_runner_(base::MakeRefCounted<base::TestSimpleTaskRunner>()),
         state_keys_broker_(&session_manager_client_),
-        handler_(&policy_service_) {
+        handler_(&policy_service_, &web_ui_) {
     ON_CALL(policy_service_, GetPolicies(_))
         .WillByDefault(ReturnRef(empty_policy_map_));
   }
 #else
-  ManagementUIHandlerTests() : TestingBaseClass(), handler_(&policy_service_) {
+  ManagementUIHandlerTests() : handler_(&policy_service_, &web_ui_) {
     ON_CALL(policy_service_, GetPolicies(_))
         .WillByDefault(ReturnRef(empty_policy_map_));
   }
@@ -391,6 +398,7 @@
     std::string device_domain;
     base::FilePath crostini_ansible_playbook_filepath;
     bool insights_extension_enabled;
+    bool legacy_tech_reporting_enabled;
     base::Value::List report_app_inventory;
     base::Value::List report_app_usage;
   };
@@ -420,10 +428,17 @@
     setup_config_.insights_extension_enabled = false;
     setup_config_.report_app_inventory = base::Value::List();
     setup_config_.report_app_usage = base::Value::List();
+    setup_config_.legacy_tech_reporting_enabled = false;
+  }
+
+  void SetUpLocalState() {
+    RegisterLocalState(local_state_.registry());
+    TestingBrowserProcess::GetGlobal()->SetLocalState(&local_state_);
   }
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   void SetUp() override {
+    SetUpLocalState();
     install_attributes_ = std::make_unique<ash::ScopedStubInstallAttributes>(
         ash::StubInstallAttributes::CreateUnset());
     DeviceSettingsTestBase::SetUp();
@@ -445,20 +460,17 @@
   }
   void TearDown() override {
     network_handler_test_helper_.reset();
-    profile_.reset();
     TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
     DeviceSettingsTestBase::TearDown();
   }
 
   void SetUpConnectManager() {
-    RegisterLocalState(local_state_.registry());
     std::unique_ptr<policy::DeviceCloudPolicyStoreAsh> store =
         std::make_unique<policy::DeviceCloudPolicyStoreAsh>(
             device_settings_service_.get(), install_attributes_->Get(),
             base::SingleThreadTaskRunner::GetCurrentDefault());
     manager_ = std::make_unique<TestDeviceCloudPolicyManagerAsh>(
         std::move(store), &state_keys_broker_);
-    TestingBrowserProcess::GetGlobal()->SetLocalState(&local_state_);
     manager_.get()->Initialize(&local_state_);
   }
 
@@ -490,6 +502,13 @@
         GetTestConfig().crostini_report_usage);
     local_state_.SetBoolean(enterprise_reporting::kCloudReportingEnabled,
                             GetTestConfig().cloud_reporting_enabled);
+    if (GetTestConfig().legacy_tech_reporting_enabled) {
+      base::Value::List allowlist;
+      allowlist.Append("www.example.com");
+      profile_->GetTestingPrefService()->SetManagedPref(
+          enterprise_reporting::kCloudLegacyTechReportAllowlist,
+          std::make_unique<base::Value>(std::move(allowlist)));
+    }
 
     profile_->GetPrefs()->SetFilePath(
         crostini::prefs::kCrostiniAnsiblePlaybookFilePath,
@@ -520,6 +539,11 @@
     }
     return result;
   }
+#else
+  void SetUp() override { SetUpLocalState(); }
+  void TearDown() override {
+    TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
+  }
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
   void SetUpProfileAndHandler() {
@@ -529,6 +553,9 @@
       builder.OverridePolicyConnectorIsManagedForTesting(true);
     }
     profile_ = builder.Build();
+    web_contents_ = content::WebContents::Create(
+        content::WebContents::CreateParams(profile_.get()));
+    web_ui_.set_web_contents(web_contents_.get());
     handler_.SetAccountManagedForTesting(GetTestConfig().managed_account);
     handler_.SetDeviceManagedForTesting(GetTestConfig().managed_device);
 #if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -625,12 +652,12 @@
   policy::PolicyMap empty_policy_map_;
   std::u16string device_domain_;
   ContextualManagementSourceUpdate extracted_;
+  TestingPrefServiceSimple local_state_;
+  TestingPrefServiceSimple user_prefs_;
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   std::unique_ptr<ash::NetworkHandlerTestHelper> network_handler_test_helper_;
   std::unique_ptr<ash::ScopedStubInstallAttributes> install_attributes_;
   std::unique_ptr<crostini::FakeCrostiniFeatures> crostini_features_;
-  TestingPrefServiceSimple local_state_;
-  TestingPrefServiceSimple user_prefs_;
   std::unique_ptr<StubResolverConfigReader> stub_resolver_config_reader_;
   std::unique_ptr<TestDeviceCloudPolicyManagerAsh> manager_;
   scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
@@ -639,8 +666,10 @@
   ash::system::ScopedFakeStatisticsProvider fake_statistics_provider_;
 #else
   content::BrowserTaskEnvironment task_environment_;
-  std::unique_ptr<TestingProfile> profile_;
 #endif
+  std::unique_ptr<TestingProfile> profile_;
+  content::TestWebUI web_ui_;
+  std::unique_ptr<content::WebContents> web_contents_;
 
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
   chromeos::ScopedLacrosServiceTestHelper scoped_lacros_test_helper_;
@@ -1218,6 +1247,16 @@
   ASSERT_PRED_FORMAT2(ReportingElementsToBeEQ, info, expected_elements);
 }
 
+TEST_F(ManagementUIHandlerTests, ReportLegacyTechReport) {
+  ResetTestConfig(false);
+  GetTestConfig().legacy_tech_reporting_enabled = true;
+  const base::Value::List info = SetUpForReportingInfo();
+  const std::map<std::string, std::string> expected_elements = {
+      {kManagementLegacyTechReport, "legacy-tech"}};
+
+  ASSERT_PRED_FORMAT2(ReportingElementsToBeEQ, info, expected_elements);
+}
+
 TEST_F(ManagementUIHandlerTests,
        ShowPrivacyDisclosureForSecureDnsWithIdentifiers) {
   ResetTestConfig();
@@ -1328,18 +1367,20 @@
 #endif
 
 TEST_F(ManagementUIHandlerTests, ExtensionReportingInfoNoPolicySetNoMessage) {
+  ResetTestConfig();
+  SetUpProfileAndHandler();
   auto reporting_info =
-      handler_.GetExtensionReportingInfo(/*can_collect_signals=*/false);
+      handler_.GetReportingInfo(/*can_collect_signals=*/false);
   EXPECT_EQ(reporting_info.size(), 0u);
 }
 
 TEST_F(ManagementUIHandlerTests, CloudReportingPolicy) {
-  policy::PolicyMap chrome_policies;
-  const policy::PolicyNamespace chrome_policies_namespace =
-      policy::PolicyNamespace(policy::POLICY_DOMAIN_CHROME, std::string());
+  ResetTestConfig();
+  policy::PolicyMap policies;
   EXPECT_CALL(policy_service_, GetPolicies(_))
-      .WillRepeatedly(ReturnRef(chrome_policies));
-  SetPolicyValue(policy::key::kCloudReportingEnabled, true, chrome_policies);
+      .WillRepeatedly(ReturnRef(policies));
+  local_state_.SetBoolean(enterprise_reporting::kCloudReportingEnabled, true);
+  SetUpProfileAndHandler();
 
   std::set<std::string> expected_messages = {
       kManagementExtensionReportMachineName, kManagementExtensionReportUsername,
@@ -1348,32 +1389,56 @@
 #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
   expected_messages.insert(kManagementDeviceSignalsDisclosure);
 #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
-  ASSERT_PRED_FORMAT2(MessagesToBeEQ, handler_.GetExtensionReportingInfo(),
+
+  ASSERT_PRED_FORMAT2(MessagesToBeEQ, handler_.GetReportingInfo(),
                       expected_messages);
 }
 
 #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
 TEST_F(ManagementUIHandlerTests,
        CloudReportingPolicyWithoutDeviceSignalsConsent) {
-  policy::PolicyMap chrome_policies;
-  const policy::PolicyNamespace chrome_policies_namespace =
-      policy::PolicyNamespace(policy::POLICY_DOMAIN_CHROME, std::string());
+  ResetTestConfig();
+  SetUpProfileAndHandler();
+  policy::PolicyMap policies;
   EXPECT_CALL(policy_service_, GetPolicies(_))
-      .WillRepeatedly(ReturnRef(chrome_policies));
-  SetPolicyValue(policy::key::kCloudReportingEnabled, true, chrome_policies);
+      .WillRepeatedly(ReturnRef(policies));
+  local_state_.SetBoolean(enterprise_reporting::kCloudReportingEnabled, true);
 
   std::set<std::string> expected_messages = {
       kManagementExtensionReportMachineName, kManagementExtensionReportUsername,
       kManagementExtensionReportVersion,
       kManagementExtensionReportExtensionsPlugin};
-  ASSERT_PRED_FORMAT2(
-      MessagesToBeEQ,
-      handler_.GetExtensionReportingInfo(/*can_collect_signals=*/false),
-      expected_messages);
+  ASSERT_PRED_FORMAT2(MessagesToBeEQ,
+                      handler_.GetReportingInfo(/*can_collect_signals=*/false),
+                      expected_messages);
 }
 #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
 
+TEST_F(ManagementUIHandlerTests, LegacyTechReport) {
+  ResetTestConfig();
+  policy::PolicyMap policies;
+  EXPECT_CALL(policy_service_, GetPolicies(_))
+      .WillRepeatedly(ReturnRef(policies));
+  SetUpProfileAndHandler();
+
+  base::Value::List allowlist;
+  allowlist.Append(base::Value("www.example.com"));
+  profile_->GetTestingPrefService()->SetManagedPref(
+      enterprise_reporting::kCloudLegacyTechReportAllowlist,
+      std::make_unique<base::Value>(std::move(allowlist)));
+
+  std::set<std::string> expected_messages = {kManagementLegacyTechReport};
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+  expected_messages.insert(kManagementDeviceSignalsDisclosure);
+#endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+
+  ASSERT_PRED_FORMAT2(MessagesToBeEQ, handler_.GetReportingInfo(),
+                      expected_messages);
+}
+
 TEST_F(ManagementUIHandlerTests, ExtensionReportingInfoPoliciesMerge) {
+  ResetTestConfig();
+  SetUpProfileAndHandler();
   policy::PolicyMap on_prem_reporting_extension_beta_policies;
   policy::PolicyMap on_prem_reporting_extension_stable_policies;
 
@@ -1409,12 +1474,7 @@
   EXPECT_CALL(policy_service_,
               GetPolicies(on_prem_reporting_extension_beta_policy_namespace))
       .WillOnce(ReturnRef(on_prem_reporting_extension_beta_policies));
-  policy::PolicyMap chrome_policies;
-  EXPECT_CALL(policy_service_,
-              GetPolicies(policy::PolicyNamespace(policy::POLICY_DOMAIN_CHROME,
-                                                  std::string())))
-      .WillOnce(ReturnRef(chrome_policies));
-  SetPolicyValue(policy::key::kCloudReportingEnabled, true, chrome_policies);
+  local_state_.SetBoolean(enterprise_reporting::kCloudReportingEnabled, true);
 
   std::set<std::string> expected_messages = {
       kManagementExtensionReportMachineNameAddress,
@@ -1422,12 +1482,12 @@
       kManagementExtensionReportVersion,
       kManagementExtensionReportExtensionsPlugin,
       kManagementExtensionReportUserBrowsingData,
-      kManagementExtensionReportPerfCrash};
+      kManagementExtensionReportPerfCrash,
+      kManagementLegacyTechReport};
 
-  ASSERT_PRED_FORMAT2(
-      MessagesToBeEQ,
-      handler_.GetExtensionReportingInfo(/*can_collect_signals=*/false),
-      expected_messages);
+  ASSERT_PRED_FORMAT2(MessagesToBeEQ,
+                      handler_.GetReportingInfo(/*can_collect_signals=*/false),
+                      expected_messages);
 }
 
 TEST_F(ManagementUIHandlerTests, ManagedWebsitiesInfoNoPolicySet) {
diff --git a/chrome/browser/ui/webui/whats_new/whats_new_util.cc b/chrome/browser/ui/webui/whats_new/whats_new_util.cc
index 50de522b..d40e597 100644
--- a/chrome/browser/ui/webui/whats_new/whats_new_util.cc
+++ b/chrome/browser/ui/webui/whats_new/whats_new_util.cc
@@ -89,7 +89,8 @@
   }
 
   // Show refresh page if user has flag enabled.
-  return features::IsChromeRefresh2023();
+  return features::IsChromeRefresh2023() &&
+         features::IsChromeWebuiRefresh2023();
 }
 
 bool ShouldShowForState(PrefService* local_state,
diff --git a/chrome/browser/ui/webui/whats_new/whats_new_util_unittest.cc b/chrome/browser/ui/webui/whats_new/whats_new_util_unittest.cc
index 9056eb5a..10598d8 100644
--- a/chrome/browser/ui/webui/whats_new/whats_new_util_unittest.cc
+++ b/chrome/browser/ui/webui/whats_new/whats_new_util_unittest.cc
@@ -33,26 +33,37 @@
 
 class WhatsNewUtilTests : public testing::Test {
  public:
+  enum class EnableMode { kNotEnabled, kViewsRefreshOnly, kEnabled };
+
   WhatsNewUtilTests(const WhatsNewUtilTests&) = delete;
   WhatsNewUtilTests& operator=(const WhatsNewUtilTests&) = delete;
 
   void SetUp() override {
-    scoped_feature_list_.InitWithFeatures(
-        {features::kChromeWhatsNewUI, features::kChromeRefresh2023}, {});
+    ToggleRefresh(EnableMode::kEnabled);
     prefs_.registry()->RegisterBooleanPref(prefs::kHasShownRefreshWhatsNew,
                                            false);
     prefs_.registry()->RegisterIntegerPref(prefs::kLastWhatsNewVersion,
                                            CHROME_VERSION_MAJOR);
   }
 
-  void ToggleRefresh(bool enabled) {
+  void ToggleRefresh(EnableMode mode) {
     scoped_feature_list_.Reset();
-    if (enabled) {
-      scoped_feature_list_.InitWithFeatures(
-          {features::kChromeWhatsNewUI, features::kChromeRefresh2023}, {});
-    } else {
-      scoped_feature_list_.InitWithFeatures({features::kChromeWhatsNewUI},
-                                            {features::kChromeRefresh2023});
+    switch (mode) {
+      case EnableMode::kEnabled:
+        scoped_feature_list_.InitWithFeatures(
+            {features::kChromeWhatsNewUI, features::kChromeRefresh2023,
+             features::kChromeWebuiRefresh2023},
+            {});
+        break;
+      case EnableMode::kViewsRefreshOnly:
+        scoped_feature_list_.InitWithFeatures(
+            {features::kChromeWhatsNewUI, features::kChromeRefresh2023},
+            {features::kChromeWebuiRefresh2023});
+        break;
+      case EnableMode::kNotEnabled:
+        scoped_feature_list_.InitWithFeatures(
+            {features::kChromeWhatsNewUI},
+            {features::kChromeRefresh2023, features::kChromeWebuiRefresh2023});
     }
   }
 
@@ -90,14 +101,19 @@
   ToggleHasShownRefresh(true);
   EXPECT_FALSE(whats_new::ShouldShowRefresh(prefs()));
 
-  // Disable Refresh 2023 feature
-  ToggleRefresh(false);
+  // Disable Refresh 2023 feature2
+  ToggleRefresh(EnableMode::kNotEnabled);
   // kChromeRefresh2023=disabled && hasShownRefreshWhatsNew=true
   EXPECT_FALSE(whats_new::ShouldShowRefresh(prefs()));
 
   // kChromeRefresh2023=disabled && hasShownRefreshWhatsNew=false
   ToggleHasShownRefresh(false);
   EXPECT_FALSE(whats_new::ShouldShowRefresh(prefs()));
+
+  // Enable only Views refresh.
+  ToggleRefresh(EnableMode::kViewsRefreshOnly);
+  // kChromeRefresh2023=disabled && hasShownRefreshWhatsNew=true
+  EXPECT_FALSE(whats_new::ShouldShowRefresh(prefs()));
 }
 
 TEST_F(WhatsNewUtilTests, ShouldShowForStateUsesChromeVersionForRefresh) {
diff --git a/chrome/browser/xsurface/android/java/src/org/chromium/chrome/browser/xsurface/ProcessScopeDependencyProvider.java b/chrome/browser/xsurface/android/java/src/org/chromium/chrome/browser/xsurface/ProcessScopeDependencyProvider.java
index 70eb800..4f57376 100644
--- a/chrome/browser/xsurface/android/java/src/org/chromium/chrome/browser/xsurface/ProcessScopeDependencyProvider.java
+++ b/chrome/browser/xsurface/android/java/src/org/chromium/chrome/browser/xsurface/ProcessScopeDependencyProvider.java
@@ -111,6 +111,7 @@
         return null;
     }
 
+    @Deprecated
     default @Nullable PersistentKeyValueCache getPersistentKeyValueCache() {
         return null;
     }
diff --git a/chrome/browser/xsurface/android/java/src/org/chromium/chrome/browser/xsurface/feed/FeedSurfaceScopeDependencyProvider.java b/chrome/browser/xsurface/android/java/src/org/chromium/chrome/browser/xsurface/feed/FeedSurfaceScopeDependencyProvider.java
index 37a8e99f..c9c3562 100644
--- a/chrome/browser/xsurface/android/java/src/org/chromium/chrome/browser/xsurface/feed/FeedSurfaceScopeDependencyProvider.java
+++ b/chrome/browser/xsurface/android/java/src/org/chromium/chrome/browser/xsurface/feed/FeedSurfaceScopeDependencyProvider.java
@@ -6,7 +6,10 @@
 
 import android.graphics.Rect;
 
+import androidx.annotation.Nullable;
+
 import org.chromium.chrome.browser.xsurface.LoggingParameters;
+import org.chromium.chrome.browser.xsurface.PersistentKeyValueCache;
 import org.chromium.chrome.browser.xsurface.SurfaceHeaderOffsetObserver;
 import org.chromium.chrome.browser.xsurface.SurfaceScopeDependencyProvider;
 
@@ -137,4 +140,13 @@
      * message.
      */
     default void processViewAction(byte[] data, LoggingParameters loggingParameters) {}
+
+    /**
+     * Returns a {@link PersistentKeyValueCache}. This value will be cached as an account-level
+     * dependency, and only cleared after {@link ProcessScope#resetAccount()} is called.
+     */
+    @Nullable
+    default PersistentKeyValueCache getPersistentKeyValueCache() {
+        return null;
+    }
 }
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt
index 5e13649e..21a84cb 100644
--- a/chrome/build/android-arm32.pgo.txt
+++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@
-chrome-android32-main-1691733438-fffbc35801e58787cadb15490e114c2824506f7c.profdata
+chrome-android32-main-1691755021-fb6346834194cb7bd534fdf92259853da6fee8ae.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt
index c6cdfd1..af4abf72 100644
--- a/chrome/build/android-arm64.pgo.txt
+++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@
-chrome-android64-main-1691733438-d5b2bd2cadb541e3534217ddacc19f5f2c09ab0f.profdata
+chrome-android64-main-1691755021-4c462a5fd4313c8bbaf33056891d7ae52c2098bf.profdata
diff --git a/chrome/build/lacros64.pgo.txt b/chrome/build/lacros64.pgo.txt
index b65940f..e25a36a 100644
--- a/chrome/build/lacros64.pgo.txt
+++ b/chrome/build/lacros64.pgo.txt
@@ -1 +1 @@
-chrome-chromeos-amd64-generic-main-1691711839-0383169d08108a4115989c9f46f0869d26c56a2a.profdata
+chrome-chromeos-amd64-generic-main-1691755283-3c8ed3da8488692e2f689bf03b9df404e2d66974.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index 804042e3..d2961e80 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1691733438-fa174dd2c752e421d76d620309748f5590397480.profdata
+chrome-linux-main-1691755021-2446bee080f539cd7460ff2eff536cec599099c5.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 7eba414..0a66071 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1691704728-ef89a3e96013ad2ee31e2e0338268f5f3c9c69b2.profdata
+chrome-mac-arm-main-1691769574-4d4a6a8c2e8a3339460e7bc9be6b8b4ee85da803.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index 974a11f..58a90392 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1691744255-d86a9770a1b86da13e5d24b9dfad875e3bebc269.profdata
+chrome-win32-main-1691755021-07c38be7f9d2c200dce0e4d1dae2d5f665dcffe6.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 4ca80cb..36252aaf 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1691744255-1ed0186c9af332c30fafab0d74b8a6e2a2964f3d.profdata
+chrome-win64-main-1691755021-2a1ef0da4aba74fd9392155934bced8284395774.profdata
diff --git a/chrome/common/accessibility/read_anything.mojom b/chrome/common/accessibility/read_anything.mojom
index 11f97ea..b692603 100644
--- a/chrome/common/accessibility/read_anything.mojom
+++ b/chrome/common/accessibility/read_anything.mojom
@@ -40,13 +40,14 @@
 };
 
 // Used as identifiers for the Read Anything theme options.
-// Next value: 4
+// Next value: 5
 [Extensible, Stable, Uuid="03f38cfc-a34f-460a-a0a7-faf711f11a64"]
 enum Colors {
   [Default]kDefault = 0,
   kLight = 1,
   kDark = 2,
   kYellow = 3,
+  [MinVersion=1] kBlue = 4,
 };
 
 [Extensible, Stable, Uuid="2B5C793A-D81E-4C76-8CDF-695C7E0A30E2",
diff --git a/chrome/common/chromeos/extensions/DIR_METADATA b/chrome/common/chromeos/extensions/DIR_METADATA
index af9b11a..9d53917 100644
--- a/chrome/common/chromeos/extensions/DIR_METADATA
+++ b/chrome/common/chromeos/extensions/DIR_METADATA
@@ -7,6 +7,6 @@
 #   https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/proto/dir_metadata.proto
 
 buganizer {
-  component_id: 1256717  # ChromeOS > Software > Commercial (Enterprise) > OEM Services
+  component_id: 982097  # ChromeOS > Platform > Enablement > Health
 }
-team_email: "chromeos-oem-services@google.com"
+team_email: "cros-tdm-tpe-eng@google.com"
diff --git a/chrome/common/chromeos/extensions/api/_api_features.json b/chrome/common/chromeos/extensions/api/_api_features.json
index 88a35d0..fa0750e 100644
--- a/chrome/common/chromeos/extensions/api/_api_features.json
+++ b/chrome/common/chromeos/extensions/api/_api_features.json
@@ -20,6 +20,20 @@
     ],
     "channel": "stable"
   },
+  "os.diagnostics.onRoutineInitialized": {
+    "dependencies": [
+      "permission:os.diagnostics"
+    ],
+    "contexts": [
+      "blessed_extension"
+    ],
+    "platforms": [
+      "chromeos",
+      "lacros"
+    ],
+    "feature_flag": "TelemetryExtensionPendingApprovalApi",
+    "channel": "stable"
+  },
   "os.diagnostics.runBluetoothDiscoveryRoutine": {
     "blocklist": [
       "E3303523BFFD1014D4A9D480D692C8B22BE6176B" // http://crbug.com/1255653
diff --git a/chrome/common/chromeos/extensions/api/diagnostics.idl b/chrome/common/chromeos/extensions/api/diagnostics.idl
index 4821711..c2257017 100644
--- a/chrome/common/chromeos/extensions/api/diagnostics.idl
+++ b/chrome/common/chromeos/extensions/api/diagnostics.idl
@@ -12,6 +12,8 @@
 // The documentation lives here: //docs/telemetry_extension/api_overview.md.
 // LINT.IfChange
 
+
+// ----------------- DIAGNOSTICS API V1 -----------------
   enum RoutineType {
     ac_power,
     battery_capacity,
@@ -163,6 +165,12 @@
 
   callback RunRoutineCallback = void (RunRoutineResponse response);
 
+  // ----------------- DIAGNOSTICS API V2 -----------------
+
+  dictionary RoutineInitializedInfo {
+    DOMString? uuid;
+  };
+
   interface Functions {
     [supportsPromises] static void getAvailableRoutines(GetAvailableRoutinesCallback callback);
 
@@ -232,6 +240,12 @@
 
     [supportsPromises] static void runAudioDriverRoutine(RunRoutineCallback callback);
   };
+
+  interface Events {
+    // Informs the extension that a routine was intitialized.
+    static void onRoutineInitialized(RoutineInitializedInfo initializedInfo);
+  };
+
   // LINT.ThenChange(//docs/telemetry_extension/api_overview.md)
   // The following is an empty definition, since the IDL compiler only accepts
   // comments over valid definitions.
diff --git a/chrome/installer/setup/BUILD.gn b/chrome/installer/setup/BUILD.gn
index 3bd87929..bd4edd7 100644
--- a/chrome/installer/setup/BUILD.gn
+++ b/chrome/installer/setup/BUILD.gn
@@ -113,7 +113,8 @@
       "//components/base32",
       "//components/crash/core/app",
       "//components/crash/core/common",
-      "//components/metrics",
+      "//components/metrics:client_info",
+      "//components/metrics:metrics_pref_names",
       "//components/version_info:channel",
       "//components/zucchini:zucchini_io",
       "//components/zucchini:zucchini_lib",
diff --git a/chrome/installer/util/BUILD.gn b/chrome/installer/util/BUILD.gn
index 17c5584..1d6f10c9 100644
--- a/chrome/installer/util/BUILD.gn
+++ b/chrome/installer/util/BUILD.gn
@@ -181,10 +181,11 @@
     deps += [
       "//base:i18n",
       "//base/third_party/dynamic_annotations",
+      "//base/win:pe_image",
       "//build:branding_buildflags",
       "//chrome/install_static:install_static_util",
       "//components/base32",
-      "//components/metrics",
+      "//components/metrics:client_info",
       "//components/version_info:channel",
       "//courgette:courgette_lib",
       "//crypto",
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index ff1fcf0..640e7cc 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -1069,7 +1069,12 @@
       "../browser/android/customtabs/custom_tabs_browsertest.cc",
       "../browser/android/customtabs/tab_interaction_recorder_browsertest.cc",
       "../browser/android/historical_tab_saver_browsertest.cc",
+      "../browser/android/persisted_tab_data/persisted_tab_data_android_browsertest.cc",
       "../browser/android/persisted_tab_data/sensitivity_persisted_tab_data_android_browsertest.cc",
+      "../browser/android/persisted_tab_data/test/bar_persisted_tab_data.cc",
+      "../browser/android/persisted_tab_data/test/bar_persisted_tab_data.h",
+      "../browser/android/persisted_tab_data/test/foo_persisted_tab_data.cc",
+      "../browser/android/persisted_tab_data/test/foo_persisted_tab_data.h",
       "../browser/android/webapk/webapk_icon_hasher_browsertest.cc",
       "../browser/banners/android/ambient_badge_manager_browsertest.cc",
       "../browser/browsing_data/access_context_audit_browsertest.cc",
@@ -1127,6 +1132,7 @@
     ]
 
     deps += [
+      ":persisted_tab_data_test_proto",
       "//components/autofill/content/browser:test_support",
       "//components/back_forward_cache:back_forward_cache",
       "//components/browsing_data/core:core",
@@ -1222,6 +1228,13 @@
     }
   }
 
+  proto_library("persisted_tab_data_test_proto") {
+    sources = [
+      "../browser/android/persisted_tab_data/test/bar.proto",
+      "../browser/android/persisted_tab_data/test/foo.proto",
+    ]
+  }
+
   test("android_sync_integration_tests") {
     configs += [ "//build/config:precompiled_headers" ]
     defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
@@ -2118,6 +2131,7 @@
       "../browser/navigation_predictor/anchor_element_preloader_browsertest.cc",
       "../browser/navigation_predictor/navigation_predictor_browsertest.cc",
       "../browser/navigation_predictor/navigation_predictor_preconnect_client_browsertest.cc",
+      "../browser/navigation_predictor/preloading_model_keyed_service_browsertest.cc",
       "../browser/navigation_predictor/search_engine_preconnector_browsertest.cc",
       "../browser/net/cert_verifier_service_browsertest.cc",
       "../browser/net/cert_verify_proc_browsertest.cc",
@@ -6140,7 +6154,11 @@
     "../test/base/v8_unit_test.cc",
     "../test/base/v8_unit_test.h",
   ]
-
+  if (build_with_tflite_lib) {
+    sources += [
+      "../browser/navigation_predictor/preloading_model_executor_unittest.cc",
+    ]
+  }
   if (!is_chromeos_ash) {
     sources += [
       "../browser/signin/wait_for_network_callback_helper_chrome_unittest.cc",
@@ -6269,6 +6287,11 @@
     "//tools/metrics/histograms/enums.xml",
   ]
 
+  if (build_with_tflite_lib) {
+    data +=
+        [ "../browser/navigation_predictor/test/preloading_heuristics.tflite" ]
+  }
+
   if (is_android) {
     # Trim data specifically to what is used by unit tests on Android.
     data += [
@@ -6490,6 +6513,7 @@
     "//components/performance_manager",
     "//components/performance_manager/public/mojom",
     "//components/performance_manager/test_support:test_support_common",
+    "//components/plus_addresses",
     "//components/policy/core/browser:test_support",
     "//components/policy/test_support:unittests",
     "//components/privacy_sandbox:privacy_sandbox",
diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_process_browser_test.cc
index 6380b0c..8d82b70 100644
--- a/chrome/test/base/in_process_browser_test.cc
+++ b/chrome/test/base/in_process_browser_test.cc
@@ -50,6 +50,7 @@
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/profiles/profile_test_util.h"
+#include "chrome/browser/search_engine_choice/search_engine_choice_service.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_finder.h"
@@ -78,6 +79,7 @@
 #include "components/feature_engagement/public/feature_list.h"
 #include "components/google/core/common/google_util.h"
 #include "components/os_crypt/sync/os_crypt_mocker.h"
+#include "components/signin/public/base/signin_switches.h"
 #include "content/public/browser/browser_main_parts.h"
 #include "content/public/browser/devtools_agent_host.h"
 #include "content/public/common/content_paths.h"
@@ -498,6 +500,16 @@
   // expect this can allow the prompt as desired.
   PrivacySandboxService::SetPromptDisabledForTests(true);
 
+  // The Search Engine Choice service may attempt to show a modal dialog to the
+  // profile on browser start, which is unexpected by mosts tests. Tests which
+  // expect this can allow the prompt as desired.
+#if BUILDFLAG(ENABLE_SEARCH_ENGINE_CHOICE)
+  if (base::FeatureList::IsEnabled(switches::kSearchEngineChoice)) {
+    SearchEngineChoiceService::SetDialogDisabledForTests(
+        /*dialog_disabled=*/true);
+  }
+#endif
+
   EnsureBrowserContextKeyedServiceFactoriesForTestingBuilt();
 
   BrowserTestBase::SetUp();
diff --git a/chrome/test/data/pdf/BUILD.gn b/chrome/test/data/pdf/BUILD.gn
index 1b0c949..444c282 100644
--- a/chrome/test/data/pdf/BUILD.gn
+++ b/chrome/test/data/pdf/BUILD.gn
@@ -44,6 +44,7 @@
     "title_test.ts",
     "touch_handling_test.ts",
     "viewer_attachment_bar_test.ts",
+    "viewer_attachment_test.ts",
     "viewer_password_dialog_test.ts",
     "viewer_pdf_sidenav_test.ts",
     "viewer_properties_dialog_test.ts",
diff --git a/chrome/test/data/pdf/viewer_attachment_test.ts b/chrome/test/data/pdf/viewer_attachment_test.ts
new file mode 100644
index 0000000..dd7065c
--- /dev/null
+++ b/chrome/test/data/pdf/viewer_attachment_test.ts
@@ -0,0 +1,49 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import {ViewerAttachmentElement} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/elements/viewer-attachment.js';
+
+function createAttachment(): ViewerAttachmentElement {
+  document.body.innerHTML = '';
+  const attachment = document.createElement('viewer-attachment');
+  document.body.appendChild(attachment);
+  return attachment;
+}
+
+// Unit tests for the viewer-attachment element.
+const tests = [
+  function testWithRegularAttachment() {
+    const viewerAttachment = createAttachment();
+    viewerAttachment
+        .attachment = {name: 'attachment1', size: 10, readable: true};
+    viewerAttachment.index = 0;
+    const downloadButton =
+        viewerAttachment.shadowRoot!.querySelector('cr-icon-button')!;
+    const attachmentTitle =
+        viewerAttachment.shadowRoot!.querySelector('#title')!;
+    chrome.test.assertFalse(downloadButton.hidden);
+    chrome.test.assertEq('1', window.getComputedStyle(attachmentTitle).opacity);
+    chrome.test.succeed();
+  },
+
+  function testWithOversizedAttachment() {
+    const viewerAttachment = createAttachment();
+    viewerAttachment
+        .attachment = {name: 'attachment1', size: -1, readable: true};
+    viewerAttachment.index = 0;
+    const downloadButton =
+        viewerAttachment.shadowRoot!.querySelector('cr-icon-button')!;
+    const attachmentTitle =
+        viewerAttachment.shadowRoot!.querySelector('#title')!;
+
+    // An oversized attachment will not have a download button, and its title
+    // will be grayed out.
+    chrome.test.assertTrue(downloadButton.hidden);
+    chrome.test.assertEq(
+        '0.38', window.getComputedStyle(attachmentTitle).opacity);
+    chrome.test.succeed();
+  },
+];
+
+chrome.test.runTests(tests);
diff --git a/chrome/test/data/webui/cr_components/chromeos/BUILD.gn b/chrome/test/data/webui/cr_components/chromeos/BUILD.gn
index b3b879f..df743f7 100644
--- a/chrome/test/data/webui/cr_components/chromeos/BUILD.gn
+++ b/chrome/test/data/webui/cr_components/chromeos/BUILD.gn
@@ -2,26 +2,52 @@
 # 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/typescript/ts_library.gni")
 import("//ui/webui/resources/tools/generate_grd.gni")
 
 assert(is_chromeos, "CrComponents Chromeos tests are Chrome OS only.")
 
+ts_library("build_ts") {
+  root_dir = "."
+  out_dir = "$target_gen_dir/tsc"
+  composite = true
+  tsconfig_base = "//chrome/test/data/webui/tsconfig_base.json"
+
+  in_files = [
+    "bluetooth/fake_bluetooth_config.js",
+    "bluetooth/fake_bluetooth_discovery_delegate.js",
+    "bluetooth/fake_device_pairing_handler.js",
+    "cellular_setup/fake_esim_manager_remote.js",
+    "network/cr_policy_strings.js",
+  ]
+
+  deps = [
+    "//ash/webui/common/resources:build_ts",
+    "//chrome/test/data/webui/chromeos:build_ts",
+    "//ui/webui/resources/js:build_ts",
+    "//ui/webui/resources/mojo:build_ts",
+  ]
+  extra_deps = [ "//ash/webui/common/resources:generate_definitions" ]
+}
+
 generate_grd("build_grdp") {
+  testonly = true
   grd_prefix = "cr_components_chromeos"
   out_grd = "$target_gen_dir/resources.grdp"
   resource_path_prefix = "cr_components/chromeos"
 
+  deps = [ ":build_ts" ]
+
   # Add local test files.
   input_files_base_dir = rebase_path(".", "//")
   input_files = [
-    "bluetooth/fake_bluetooth_config.js",
-    "bluetooth/fake_device_pairing_handler.js",
-    "cellular_setup/fake_esim_manager_remote.js",
     "multidevice_setup/integration_test.js",
     "multidevice_setup/setup_succeeded_page_test.js",
     "multidevice_setup/start_setup_page_test.js",
-    "network/cr_policy_strings.js",
   ]
+
+  manifest_files =
+      filter_include(get_target_outputs(":build_ts"), [ "*_manifest.json" ])
 }
 
 group("closure_compile") {
diff --git a/chrome/test/data/webui/new_tab_page/app_test.ts b/chrome/test/data/webui/new_tab_page/app_test.ts
index c9af0c6..78c696c 100644
--- a/chrome/test/data/webui/new_tab_page/app_test.ts
+++ b/chrome/test/data/webui/new_tab_page/app_test.ts
@@ -5,6 +5,7 @@
 import {counterfactualLoad, LensUploadDialogElement, Module, ModuleDescriptor, ModuleRegistry} from 'chrome://new-tab-page/lazy_load.js';
 import {$$, AppElement, BackgroundManager, BrowserCommandProxy, CUSTOMIZE_CHROME_BUTTON_ELEMENT_ID, CustomizeDialogPage, NewTabPageProxy, NtpCustomizeChromeEntryPoint, NtpElement, VoiceAction, WindowProxy} from 'chrome://new-tab-page/new_tab_page.js';
 import {CustomizeChromeSection, NtpBackgroundImageSource, PageCallbackRouter, PageHandlerRemote, PageRemote} from 'chrome://new-tab-page/new_tab_page.mojom-webui.js';
+import {CrToastElement} from 'chrome://resources/cr_elements/cr_toast/cr_toast.js';
 import {Command, CommandHandlerRemote} from 'chrome://resources/js/browser_command.mojom-webui.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
 import {isMac} from 'chrome://resources/js/platform.js';
@@ -166,8 +167,9 @@
       callbackRouterRemote.showWebstoreToast();
       await callbackRouterRemote.$.flushForTesting();
 
-      assertTrue(app.$.webstoreToast.open);
-      assertTrue(!!app.$.webstoreToast.firstChild!.textContent);
+      const webstoreToast = $$<CrToastElement>(app, '#webstoreToast')!;
+      assertTrue(webstoreToast.open);
+      assertTrue(!!webstoreToast.firstChild!.textContent);
     });
   });
 
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_ui/os_settings_hats_ui_test.ts b/chrome/test/data/webui/settings/chromeos/os_settings_ui/os_settings_hats_ui_test.ts
index 6bdccf4..abf8b70 100644
--- a/chrome/test/data/webui/settings/chromeos/os_settings_ui/os_settings_hats_ui_test.ts
+++ b/chrome/test/data/webui/settings/chromeos/os_settings_ui/os_settings_hats_ui_test.ts
@@ -4,8 +4,9 @@
 
 /** @fileoverview Suite of tests for the OS Settings ui for hats. */
 
-import {CrSettingsPrefs, OsSettingsHatsBrowserProxyImpl, OsSettingsSearchBoxElement, OsSettingsUiElement, OsToolbarElement} from 'chrome://os-settings/os_settings.js';
-import {CrToolbarSearchFieldElement} from 'chrome://resources/cr_elements/cr_toolbar/cr_toolbar_search_field.js';
+import 'chrome://os-settings/os_settings.js';
+
+import {CrSettingsPrefs, CrToolbarSearchFieldElement, OsSettingsHatsBrowserProxyImpl, OsSettingsSearchBoxElement, OsSettingsUiElement, OsToolbarElement} from 'chrome://os-settings/os_settings.js';
 import {assert} from 'chrome://resources/js/assert_ts.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {eventToPromise} from 'chrome://webui-test/test_util.js';
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_ui/os_settings_ui_test.ts b/chrome/test/data/webui/settings/chromeos/os_settings_ui/os_settings_ui_test.ts
index 863a89b..9014780 100644
--- a/chrome/test/data/webui/settings/chromeos/os_settings_ui/os_settings_ui_test.ts
+++ b/chrome/test/data/webui/settings/chromeos/os_settings_ui/os_settings_ui_test.ts
@@ -2,8 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {CrSettingsPrefs, MainPageContainerElement, OsSettingsMainElement, OsSettingsUiElement} from 'chrome://os-settings/os_settings.js';
-import {CrDrawerElement} from 'chrome://resources/cr_elements/cr_drawer/cr_drawer.js';
+import 'chrome://os-settings/os_settings.js';
+
+import {CrDrawerElement, CrSettingsPrefs, MainPageContainerElement, OsSettingsMainElement, OsSettingsUiElement} from 'chrome://os-settings/os_settings.js';
 import {assert} from 'chrome://resources/js/assert_ts.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
diff --git a/chrome/updater/BUILD.gn b/chrome/updater/BUILD.gn
index cec025b..e65038f9 100644
--- a/chrome/updater/BUILD.gn
+++ b/chrome/updater/BUILD.gn
@@ -813,8 +813,9 @@
       "test/data/tagged_msi/GUH-invalid-key.msi",
       "test/data/tagged_msi/GUH-invalid-length.msi",
       "test/data/tagged_msi/GUH-invalid-marker.msi",
-      "test/data/tagged_msi/GUH-special-value.msi",
       "test/data/tagged_msi/GUH-multiple.msi",
+      "test/data/tagged_msi/GUH-size-greater-than-max.msi",
+      "test/data/tagged_msi/GUH-special-value.msi",
       "test/data/tagged_msi/GUH-untagged.msi",
     ]
 
diff --git a/chrome/updater/tag.cc b/chrome/updater/tag.cc
index 5940f5e..1fd6b94 100644
--- a/chrome/updater/tag.cc
+++ b/chrome/updater/tag.cc
@@ -536,18 +536,16 @@
   const int64_t file_length = file.GetLength();
 
   int bytes_to_read = kMaxBufferLength;
-  if (file_length > static_cast<int64_t>(kMaxBufferLength)) {
-    if (file.Seek(base::File::FROM_END, -kMaxBufferLength) !=
-        kMaxBufferLength) {
-      return {};
-    }
+  int64_t offset = 0;
+  if (file_length > static_cast<int64_t>(bytes_to_read)) {
+    offset = file_length - bytes_to_read;
   } else {
     bytes_to_read = file_length;
   }
 
   std::vector<uint8_t> buffer(bytes_to_read + 1);
   const int num_bytes_read =
-      file.ReadAtCurrentPos(reinterpret_cast<char*>(&buffer[0]), bytes_to_read);
+      file.Read(offset, reinterpret_cast<char*>(&buffer[0]), bytes_to_read);
   if (num_bytes_read != bytes_to_read) {
     return {};
   }
diff --git a/chrome/updater/tag_unittest.cc b/chrome/updater/tag_unittest.cc
index 0eedaec..18f647a 100644
--- a/chrome/updater/tag_unittest.cc
+++ b/chrome/updater/tag_unittest.cc
@@ -1285,6 +1285,21 @@
            return tag_args;
          }()},
 
+        // MSI file size greater than `kMaxBufferLength` of 80KB.
+        {"GUH-size-greater-than-max.msi",
+         []() {
+           tagging::TagArgs tag_args;
+           tag_args.bundle_name = "Google Chrome Beta";
+           tag_args.brand_code = "GGLL";
+
+           tagging::AppArgs app_args("{8237E44A-0054-442C-B6B6-EA0509993955}");
+           app_args.app_name = "Google Chrome Beta";
+           app_args.needs_admin = tagging::AppArgs::NeedsAdmin::kYes;
+           tag_args.apps = {app_args};
+
+           return tag_args;
+         }()},
+
         // special character in the tag value.
         {"GUH-special-value.msi",
          []() {
diff --git a/chrome/updater/test/data/tagged_msi/GUH-size-greater-than-max.msi b/chrome/updater/test/data/tagged_msi/GUH-size-greater-than-max.msi
new file mode 100644
index 0000000..fdf9757
--- /dev/null
+++ b/chrome/updater/test/data/tagged_msi/GUH-size-greater-than-max.msi
Binary files differ
diff --git a/chrome/updater/win/installer/msi_custom_action_unittest.cc b/chrome/updater/win/installer/msi_custom_action_unittest.cc
index f04350e..99ba45d 100644
--- a/chrome/updater/win/installer/msi_custom_action_unittest.cc
+++ b/chrome/updater/win/installer/msi_custom_action_unittest.cc
@@ -84,6 +84,11 @@
          "Chrome&NEEDSADMIN=prefers&BRAND=CHMB&INSTALLDATAINDEX="
          "defaultbrowser"},
 
+        // MSI file size greater than `kMaxBufferLength` of 80KB.
+        {"GUH-size-greater-than-max.msi",
+         "APPGUID={8237E44A-0054-442C-B6B6-EA0509993955}&APPNAME=Google Chrome "
+         "Beta&NEEDSADMIN=True&BRAND=GGLL"},
+
         // special character in the tag value.
         {"GUH-special-value.msi", "BRAND=QA*A"},
 
diff --git a/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.cc b/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.cc
index e709f15..421e576 100644
--- a/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.cc
+++ b/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.cc
@@ -46,18 +46,7 @@
 }
 
 void FakeHibermanClient::ResumeFromHibernate(
-    const std::string& account_id,
-    ResumeFromHibernateCallback callback) {
-  base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
-      FROM_HERE, base::BindOnce(std::move(callback), true));
-}
-
-void FakeHibermanClient::ResumeFromHibernateAS(
-    const std::string& auth_session_id,
-    ResumeFromHibernateCallback callback) {
-  base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
-      FROM_HERE, base::BindOnce(std::move(callback), true));
-}
+    const std::string& auth_session_id) {}
 
 void FakeHibermanClient::WaitForServiceToBeAvailable(
     chromeos::WaitForServiceToBeAvailableCallback callback) {
diff --git a/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.h b/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.h
index 881ad2c..0e21d18 100644
--- a/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.h
+++ b/chromeos/ash/components/dbus/hiberman/fake_hiberman_client.h
@@ -35,10 +35,7 @@
   bool IsHibernateToS4Enabled() const override;
   void WaitForServiceToBeAvailable(
       chromeos::WaitForServiceToBeAvailableCallback callback) override;
-  void ResumeFromHibernate(const std::string& account_id,
-                           ResumeFromHibernateCallback callback) override;
-  void ResumeFromHibernateAS(const std::string& auth_session_id,
-                             ResumeFromHibernateCallback callback) override;
+  void ResumeFromHibernate(const std::string& auth_session_id) override;
   void AbortResumeHibernate(const std::string& reason) override;
 };
 
diff --git a/chromeos/ash/components/dbus/hiberman/hiberman_client.cc b/chromeos/ash/components/dbus/hiberman/hiberman_client.cc
index a0fe13b0..fe3e978d 100644
--- a/chromeos/ash/components/dbus/hiberman/hiberman_client.cc
+++ b/chromeos/ash/components/dbus/hiberman/hiberman_client.cc
@@ -86,24 +86,8 @@
     proxy_->WaitForServiceToBeAvailable(std::move(callback));
   }
 
-  void ResumeFromHibernate(const std::string& account_id,
-                           ResumeFromHibernateCallback callback) override {
-    VLOG(1) << "Attempt ResumeFromHibernate";
-    dbus::MethodCall method_call(::hiberman::kHibernateResumeInterface,
-                                 ::hiberman::kResumeFromHibernateMethod);
-    dbus::MessageWriter writer(&method_call);
-    writer.AppendString(account_id);
-    // Bind with the weak pointer of |this| so the response is not
-    // handled once |this| is already destroyed.
-    proxy_->CallMethod(
-        &method_call, kHibermanResumeTimeoutMs,
-        base::BindOnce(&HibermanClientImpl::HandleResponse,
-                       weak_factory_.GetWeakPtr(), std::move(callback)));
-  }
-
-  void ResumeFromHibernateAS(const std::string& auth_session_id,
-                             ResumeFromHibernateCallback callback) override {
-    VLOG(1) << "Attempt ResumeFromHibernateAS";
+  void ResumeFromHibernate(const std::string& auth_session_id) override {
+    VLOG(1) << "ResumeFromHibernate";
     dbus::MethodCall method_call(::hiberman::kHibernateResumeInterface,
                                  ::hiberman::kResumeFromHibernateASMethod);
     dbus::MessageWriter writer(&method_call);
@@ -112,10 +96,9 @@
         auth_session_id.length());
     // Bind with the weak pointer of |this| so the response is not
     // handled once |this| is already destroyed.
-    proxy_->CallMethod(
-        &method_call, kHibermanResumeTimeoutMs,
-        base::BindOnce(&HibermanClientImpl::HandleResponse,
-                       weak_factory_.GetWeakPtr(), std::move(callback)));
+    proxy_->CallMethod(&method_call, kHibermanResumeTimeoutMs,
+                       base::BindOnce(&HibermanClientImpl::HandleResponse,
+                                      weak_factory_.GetWeakPtr()));
   }
 
   void AbortResumeHibernate(const std::string& reason) override {
@@ -139,10 +122,8 @@
   }
 
  private:
-  void HandleResponse(chromeos::VoidDBusMethodCallback callback,
-                      dbus::Response* response) {
+  void HandleResponse(dbus::Response* response) {
     VLOG(1) << "Received Resume Response: " << (response != nullptr);
-    std::move(callback).Run(response != nullptr);
   }
 
   void HandleAbortResponse(dbus::Response* response) {
diff --git a/chromeos/ash/components/dbus/hiberman/hiberman_client.h b/chromeos/ash/components/dbus/hiberman/hiberman_client.h
index 88b534c..d97bd5c5 100644
--- a/chromeos/ash/components/dbus/hiberman/hiberman_client.h
+++ b/chromeos/ash/components/dbus/hiberman/hiberman_client.h
@@ -50,17 +50,7 @@
   virtual void WaitForServiceToBeAvailable(
       chromeos::WaitForServiceToBeAvailableCallback callback) = 0;
 
-  // Resume from hibernate, if possible. Upon a successful resume from
-  // hibernation, this function does not return, as execution continues in the
-  // resumed image.
-  virtual void ResumeFromHibernate(const std::string& account_id,
-                                   ResumeFromHibernateCallback callback) = 0;
-
-  // Resume from hibernate with an auth session, if possible. Upon a successful
-  // resume from hibernation, this function does not return, as execution
-  // continues in the resumed image.
-  virtual void ResumeFromHibernateAS(const std::string& auth_session_id,
-                                     ResumeFromHibernateCallback callback) = 0;
+  virtual void ResumeFromHibernate(const std::string& auth_session_id) = 0;
 
   // Abort from hibernate. This will prevent any future hibernate or resume for
   // this user's session. If a resume was in progress it will be aborted. If a
diff --git a/chromeos/ash/components/dbus/hiberman/hiberman_client_unittest.cc b/chromeos/ash/components/dbus/hiberman/hiberman_client_unittest.cc
index 826e42b..b3405c7 100644
--- a/chromeos/ash/components/dbus/hiberman/hiberman_client_unittest.cc
+++ b/chromeos/ash/components/dbus/hiberman/hiberman_client_unittest.cc
@@ -113,22 +113,4 @@
   }
 };
 
-TEST_F(HibermanClientTest, ResumeFromHibernate) {
-  base::test::TestFuture<bool> future;
-  client_->ResumeFromHibernate("test@google.com", future.GetCallback());
-  base::RunLoop().RunUntilIdle();
-  // Assert that the callback was called and that the method_call_success
-  // parameter returned true.
-  ASSERT_TRUE(future.Get<0>());
-}
-
-TEST_F(HibermanClientTest, ResumeFromHibernateAS) {
-  base::test::TestFuture<bool> future;
-  client_->ResumeFromHibernateAS("fake_auth_session_id", future.GetCallback());
-  base::RunLoop().RunUntilIdle();
-  // Assert that the callback was called and that the method_call_success
-  // parameter returned true.
-  ASSERT_TRUE(future.Get<0>());
-}
-
 }  // namespace ash
diff --git a/chromeos/ash/components/login/auth/auth_session_authenticator.cc b/chromeos/ash/components/login/auth/auth_session_authenticator.cc
index 87cf8d76..5ffd6d87 100644
--- a/chromeos/ash/components/login/auth/auth_session_authenticator.cc
+++ b/chromeos/ash/components/login/auth/auth_session_authenticator.cc
@@ -56,7 +56,6 @@
           std::make_unique<AuthFactorEditor>(UserDataAuthClient::Get())),
       auth_performer_(
           std::make_unique<AuthPerformer>(UserDataAuthClient::Get())),
-      hibernate_manager_(std::make_unique<HibernateManager>()),
       mount_performer_(std::make_unique<MountPerformer>()),
       local_state_(local_state) {
   DCHECK(safe_mode_delegate_);
@@ -271,9 +270,6 @@
                                      weak_factory_.GetWeakPtr()));
       steps.push_back(base::BindOnce(&MountPerformer::CreateNewUser,
                                      mount_performer_->AsWeakPtr()));
-      steps.push_back(base::BindOnce(
-          &HibernateManager::PrepareHibernateAndMaybeResumeAuthOp,
-          hibernate_manager_->AsWeakPtr()));
       steps.push_back(base::BindOnce(&MountPerformer::MountPersistentDirectory,
                                      mount_performer_->AsWeakPtr()));
     }
@@ -321,11 +317,6 @@
           base::BindOnce(&AuthPerformer::AuthenticateUsingKnowledgeKey,
                          auth_performer_->AsWeakPtr()));
     }
-    // TODO(b/233103309): Abort resume from hibernate here as the user just went
-    // through online login and may need auth tokens synced.
-    steps.push_back(
-        base::BindOnce(&HibernateManager::PrepareHibernateAndMaybeResumeAuthOp,
-                       hibernate_manager_->AsWeakPtr()));
     steps.push_back(base::BindOnce(&MountPerformer::MountPersistentDirectory,
                                    mount_performer_->AsWeakPtr()));
     if (safe_mode_delegate_->IsSafeMode()) {
@@ -450,9 +441,6 @@
         base::BindOnce(&AuthPerformer::AuthenticateUsingKnowledgeKey,
                        auth_performer_->AsWeakPtr()));
   }
-  steps.push_back(
-      base::BindOnce(&HibernateManager::PrepareHibernateAndMaybeResumeAuthOp,
-                     hibernate_manager_->AsWeakPtr()));
   steps.push_back(base::BindOnce(&MountPerformer::MountPersistentDirectory,
                                  mount_performer_->AsWeakPtr()));
   if (safe_mode_delegate_->IsSafeMode()) {
@@ -769,12 +757,6 @@
                                  auth_performer_->AsWeakPtr()));
   steps.push_back(base::BindOnce(&AuthFactorEditor::ReplaceContextKey,
                                  auth_factor_editor_->AsWeakPtr()));
-  // TODO(b/233103309): Abort resume from hibernate here as the user just went
-  // through the recovery flow and online login, so they may have tokens that
-  // need to be synced.
-  steps.push_back(
-      base::BindOnce(&HibernateManager::PrepareHibernateAndMaybeResumeAuthOp,
-                     hibernate_manager_->AsWeakPtr()));
   steps.push_back(base::BindOnce(&MountPerformer::MountPersistentDirectory,
                                  mount_performer_->AsWeakPtr()));
   if (safe_mode_delegate_->IsSafeMode()) {
@@ -1023,6 +1005,13 @@
 void AuthSessionAuthenticator::NotifyAuthSuccess(
     std::unique_ptr<UserContext> context) {
   LOGIN_LOG(EVENT) << "Logged in successfully";
+
+  if (HibernateManager::IsHibernateSupported()) {
+    // Pass the AuthSessionID to HibernateManager so once the user's profile is
+    // created we can notify hiberman.
+    HibernateManager::Get()->SetAuthSessionID(context->GetAuthSessionId());
+  }
+
   if (consumer_)
     consumer_->OnAuthSuccess(*context);
 }
diff --git a/chromeos/ash/components/login/auth/auth_session_authenticator.h b/chromeos/ash/components/login/auth/auth_session_authenticator.h
index e12ada5..ab972c5 100644
--- a/chromeos/ash/components/login/auth/auth_session_authenticator.h
+++ b/chromeos/ash/components/login/auth/auth_session_authenticator.h
@@ -237,7 +237,6 @@
   std::unique_ptr<SafeModeDelegate> safe_mode_delegate_;
   std::unique_ptr<AuthFactorEditor> auth_factor_editor_;
   std::unique_ptr<AuthPerformer> auth_performer_;
-  std::unique_ptr<HibernateManager> hibernate_manager_;
   std::unique_ptr<MountPerformer> mount_performer_;
 
   const raw_ptr<PrefService, DanglingUntriaged> local_state_;
diff --git a/chromeos/ash/components/login/hibernate/hibernate_manager.cc b/chromeos/ash/components/login/hibernate/hibernate_manager.cc
index 5a6d713..0641130 100644
--- a/chromeos/ash/components/login/hibernate/hibernate_manager.cc
+++ b/chromeos/ash/components/login/hibernate/hibernate_manager.cc
@@ -7,6 +7,9 @@
 #include "base/files/file_util.h"
 #include "base/functional/bind.h"
 #include "base/logging.h"
+#include "base/no_destructor.h"
+#include "base/strings/strcat.h"
+#include "base/strings/string_util.h"
 #include "base/task/thread_pool.h"
 #include "chromeos/ash/components/cryptohome/userdataauth_util.h"
 #include "chromeos/ash/components/dbus/hiberman/hiberman_client.h"
@@ -24,6 +27,11 @@
 constexpr const char kDevSnapshotPath[] = "/dev/snapshot";
 constexpr const char kHibermanBinaryPath[] = "/usr/sbin/hiberman";
 
+constexpr const char kEnableSuspendToDiskInternalName[] =
+    "enable-suspend-to-disk";
+constexpr const char kEnableSuspendToDiskAllowS4InternalName[] =
+    "enable-suspend-to-disk-allow-s4";
+
 // HasAESKL will return true if the system is using aeskl (AES w/
 // KeyLocker). The reason for this is because keylocker requires suspend to
 // S4 meaning that platform state is retained. We are currently only
@@ -65,12 +73,13 @@
 
 }  // namespace
 
-HibernateManager::HibernateManager() {}
+HibernateManager::HibernateManager() = default;
 
 HibernateManager::~HibernateManager() = default;
 
-base::WeakPtr<HibernateManager> HibernateManager::AsWeakPtr() {
-  return weak_factory_.GetWeakPtr();
+HibernateManager* HibernateManager::Get() {
+  static base::NoDestructor<HibernateManager> hibernate;
+  return hibernate.get();
 }
 
 void HibernateManager::InitializePlatformSupport() {
@@ -90,55 +99,53 @@
   return ash::HasHibermanBinary();
 }
 
-void HibernateManager::PrepareHibernateAndMaybeResumeAuthOp(
-    std::unique_ptr<UserContext> user_context,
-    AuthOperationCallback callback) {
-  PrepareHibernateAndMaybeResume(
-      std::move(user_context),
-      base::BindOnce(&HibernateManager::ResumeFromHibernateAuthOpCallback,
-                     weak_factory_.GetWeakPtr(), std::move(callback)));
+void HibernateManager::SetAuthSessionID(const std::string& auth_session_id) {
+  auth_session_id_ = auth_session_id;
 }
 
-void HibernateManager::PrepareHibernateAndMaybeResume(
-    std::unique_ptr<UserContext> user_context,
-    HibernateResumeCallback callback) {
+void HibernateManager::MaybeResume(const std::set<std::string>& user_prefs) {
+  if (auth_session_id_.empty()) {
+    return;
+  }
+
   auto* client = HibermanClient::Get();
   bool aborted = false;
 
+  bool enabled = client->IsEnabled();
+  bool s4_enabled = client->IsHibernateToS4Enabled();
+
+  for (const auto& flag : user_prefs) {
+    if (base::StartsWith(
+            flag, base::StrCat({kEnableSuspendToDiskInternalName, "@"}))) {
+      enabled = !base::EndsWith(flag, "@0");
+    } else if (base::StartsWith(
+                   flag, base::StrCat(
+                             {kEnableSuspendToDiskAllowS4InternalName, "@"}))) {
+      s4_enabled = !base::EndsWith(flag, "@0");
+    }
+  }
+
   if (!client) {
     aborted = true;
   } else if (!client->IsAlive() || !g_platform_support_test_complete) {
     aborted = true;
     client->AbortResumeHibernate(kHibermanNotReady);
-  } else if (HasAESKL() && !client->IsHibernateToS4Enabled()) {
+  } else if (!enabled) {
+    aborted = true;
+    client->AbortResumeHibernate(kFeatureNotEnabled);
+  } else if (HasAESKL() && !s4_enabled) {
     aborted = true;
     client->AbortResumeHibernate(kSystemHasAESKL);
   } else if (!HasSnapshotDevice()) {
     aborted = true;
     client->AbortResumeHibernate(kSystemMissingDevSnapshot);
-  } else if (!client->IsEnabled()) {
-    aborted = true;
-    client->AbortResumeHibernate(kFeatureNotEnabled);
   }
 
-  if (aborted) {
-    // Always run the callback so we don't block login.
-    std::move(callback).Run(std::move(user_context), true);
-    return;
+  if (!aborted) {
+    client->ResumeFromHibernate(auth_session_id_);
   }
 
-  // In a successful resume case, this function never returns, as execution
-  // continues in the resumed hibernation image.
-  client->ResumeFromHibernateAS(
-      user_context->GetAuthSessionId(),
-      base::BindOnce(std::move(callback), std::move(user_context)));
-}
-
-void HibernateManager::ResumeFromHibernateAuthOpCallback(
-    AuthOperationCallback callback,
-    std::unique_ptr<UserContext> user_context,
-    bool resume_call_successful) {
-  std::move(callback).Run(std::move(user_context), absl::nullopt);
+  auth_session_id_.clear();
 }
 
 }  // namespace ash
diff --git a/chromeos/ash/components/login/hibernate/hibernate_manager.h b/chromeos/ash/components/login/hibernate/hibernate_manager.h
index 87a5bb9..b7080a59 100644
--- a/chromeos/ash/components/login/hibernate/hibernate_manager.h
+++ b/chromeos/ash/components/login/hibernate/hibernate_manager.h
@@ -5,6 +5,9 @@
 #ifndef CHROMEOS_ASH_COMPONENTS_LOGIN_HIBERNATE_HIBERNATE_MANAGER_H_
 #define CHROMEOS_ASH_COMPONENTS_LOGIN_HIBERNATE_HIBERNATE_MANAGER_H_
 
+#include <set>
+#include <string>
+
 #include "base/component_export.h"
 #include "base/functional/callback.h"
 #include "base/memory/weak_ptr.h"
@@ -28,18 +31,8 @@
 
   ~HibernateManager();
 
-  base::WeakPtr<HibernateManager> AsWeakPtr();
-
-  // Resume from hibernate, in the form of an AuthOperation.
-  void PrepareHibernateAndMaybeResumeAuthOp(
-      std::unique_ptr<UserContext> user_context,
-      AuthOperationCallback callback);
-
-  // Resume from hibernate. On a successful resume from hibernation, this never
-  // returns. On failure, or if no hibernate image is available to resume to,
-  // calls the callback.
-  void PrepareHibernateAndMaybeResume(std::unique_ptr<UserContext> user_context,
-                                      HibernateResumeCallback callback);
+  // Returns the HibernateManager singleton.
+  static HibernateManager* Get();
 
   // Determines if hibernate is supported on this platform.
   static void InitializePlatformSupport();
@@ -50,13 +43,24 @@
   // Determines if hibernate is supported.
   static bool IsHibernateSupported();
 
+  // Set auth_session_id. During the login flow we save the auth session id to
+  // pass to hiberman after the users profile has been created.
+  void SetAuthSessionID(const std::string& auth_session_id);
+
+  // Once the user's profile has been created and preferences loaded we will try
+  // to resume. The reason this is necessary is because if a user has overridden
+  // their suspend-to-disk settings via chrome://flags it would still be too
+  // early to learn this. So HibernateManager will inspect the preferences for
+  // this unique situation.
+  void MaybeResume(const std::set<std::string>& user_prefs);
+
  private:
+  std::string auth_session_id_;
+
   void ResumeFromHibernateAuthOpCallback(
       AuthOperationCallback callback,
       std::unique_ptr<UserContext> user_context,
       bool resume_call_successful);
-
-  base::WeakPtrFactory<HibernateManager> weak_factory_{this};
 };
 
 }  // namespace ash
diff --git a/chromeos/ash/components/login/hibernate/hibernate_manager_unittest.cc b/chromeos/ash/components/login/hibernate/hibernate_manager_unittest.cc
index ca862a2..d4a6443 100644
--- a/chromeos/ash/components/login/hibernate/hibernate_manager_unittest.cc
+++ b/chromeos/ash/components/login/hibernate/hibernate_manager_unittest.cc
@@ -57,30 +57,4 @@
   base::WeakPtrFactory<HibernateManagerTest> weak_factory_{this};
 };
 
-// Test that the callback gets called.
-TEST_F(HibernateManagerTest, BasicResumeCall) {
-  hibernate_manager_.PrepareHibernateAndMaybeResume(
-      std::move(user_context_),
-      base::BindOnce(&HibernateManagerTest::ResumeCallback,
-                     weak_factory_.GetWeakPtr()));
-
-  task_environment_.RunUntilIdle();
-
-  EXPECT_EQ(successful_callbacks_, 1);
-  EXPECT_EQ(failed_callbacks_, 0);
-}
-
-// Test that ResumeFromHiberateAsAuthOp calls its callback.
-TEST_F(HibernateManagerTest, BasicAuthOpResumeCall) {
-  hibernate_manager_.PrepareHibernateAndMaybeResumeAuthOp(
-      std::move(user_context_),
-      base::BindOnce(&HibernateManagerTest::ResumeAuthOpCallback,
-                     weak_factory_.GetWeakPtr()));
-
-  task_environment_.RunUntilIdle();
-
-  EXPECT_EQ(successful_callbacks_, 1);
-  EXPECT_EQ(failed_callbacks_, 0);
-}
-
 }  // namespace ash
diff --git a/chromeos/ash/components/network/policy_applicator.cc b/chromeos/ash/components/network/policy_applicator.cc
index 64a7b61..a163a213 100644
--- a/chromeos/ash/components/network/policy_applicator.cc
+++ b/chromeos/ash/components/network/policy_applicator.cc
@@ -239,7 +239,7 @@
           new_policy->FindString(::onc::network_config::kName);
       absl::optional<policy_util::SmdxActivationCode> activation_code =
           policy_util::GetSmdxActivationCodeFromONC(*new_policy);
-      if (was_managed && managed_cellular_pref_handler_ && iccid && name &&
+      if (managed_cellular_pref_handler_ && iccid && name &&
           activation_code.has_value()) {
         managed_cellular_pref_handler_->AddESimMetadata(*iccid, *name,
                                                         *activation_code);
diff --git a/chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.cc b/chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.cc
index 5a5682e8..ab907251f 100644
--- a/chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.cc
+++ b/chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.cc
@@ -142,6 +142,11 @@
   is_event_supported_response_.Swap(&result);
 }
 
+void FakeCrosHealthd::SetIsRoutineArgumentSupportedResponseForTesting(
+    mojom::SupportStatusPtr& result) {
+  is_routine_argument_supported_response_.Swap(&result);
+}
+
 void FakeCrosHealthd::FlushRoutineServiceForTesting() {
   routines_provider_.FlushForTesting();
 }
@@ -840,4 +845,10 @@
       std::forward_as_tuple(std::move(pending_receiver), std::move(observer)));
 }
 
+void FakeCrosHealthd::IsRoutineArgumentSupported(
+    mojom::RoutineArgumentPtr arg,
+    IsRoutineArgumentSupportedCallback callback) {
+  std::move(callback).Run(is_routine_argument_supported_response_->Clone());
+}
+
 }  // namespace ash::cros_healthd
diff --git a/chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.h b/chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.h
index 97c3f4d..1b1c8c8 100644
--- a/chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.h
+++ b/chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.h
@@ -145,6 +145,10 @@
   // Set the result for a call to `IsEventSupported`.
   void SetIsEventSupportedResponseForTesting(mojom::SupportStatusPtr& result);
 
+  // Set the result for a call to `IsRoutineArgumentSupported`.
+  void SetIsRoutineArgumentSupportedResponseForTesting(
+      mojom::SupportStatusPtr& result);
+
   // Flushes the service provider for routines.
   void FlushRoutineServiceForTesting();
 
@@ -357,6 +361,9 @@
       mojom::RoutineArgumentPtr argument,
       mojo::PendingReceiver<mojom::RoutineControl> pending_receiver,
       mojo::PendingRemote<mojom::RoutineObserver> observer) override;
+  void IsRoutineArgumentSupported(
+      mojom::RoutineArgumentPtr arg,
+      IsRoutineArgumentSupportedCallback callback) override;
 
   // Used as the response to any GetAvailableRoutines IPCs received.
   std::vector<mojom::DiagnosticRoutineEnum> available_routines_;
@@ -372,6 +379,9 @@
   // Used as the response to any IsEventSupported IPCs received.
   mojom::SupportStatusPtr is_event_supported_response_{
       mojom::SupportStatus::NewUnmappedUnionField(0)};
+  // Used as the response to any IsRoutineSupported IPCs received.
+  mojom::SupportStatusPtr is_routine_argument_supported_response_{
+      mojom::SupportStatus::NewUnmappedUnionField(0)};
   // Used as the response to any ProbeProcessInfo IPCs received.
   mojom::ProcessResultPtr process_response_{
       mojom::ProcessResult::NewProcessInfo(mojom::ProcessInfo::New())};
diff --git a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_routines.mojom b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_routines.mojom
index 9656cf7..d7ac3b95 100644
--- a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_routines.mojom
+++ b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_routines.mojom
@@ -15,7 +15,7 @@
 
 // Routines interface exposed by the cros_healthd daemon.
 //
-// NextMinVersion: 2, NextIndex: 1
+// NextMinVersion: 3, NextIndex: 2
 [Stable]
 interface CrosHealthdRoutinesService {
   // Requests that a routine using the RoutineControl API is created on the
@@ -57,6 +57,18 @@
   [MinVersion=1] CreateRoutine@0(RoutineArgument routine_argument,
       pending_receiver<RoutineControl> routine_receiver,
       pending_remote<RoutineObserver>? routine_observer);
+
+  // Checks whether a given `RoutineArgument` is supported.
+  //
+  // The request:
+  // * |routine_argument| - a `RoutineArgument` type that provides all the
+  //                        necessary parameters to create a particular type of
+  //                        routine.
+  //
+  // The response:
+  // * |status| - See the documentation of `SupportStatus`.
+  [MinVersion=2] IsRoutineArgumentSupported@1(
+      RoutineArgument routine_argument) => (SupportStatus status);
 };
 
 // Argument types for the possible routines the routine control API can create.
diff --git a/chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom b/chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom
index cb08e63c8..d272b601 100644
--- a/chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom
+++ b/chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom
@@ -255,7 +255,7 @@
 
 // Diagnostic Routines interface exposed to Lacros, implemented in Ash.
 //
-// NextMinVersion: 2, NextIndex: 1
+// NextMinVersion: 3, NextIndex: 2
 [Stable, Uuid="0c7a9109-17eb-459d-82cd-60903bba315d"]
 interface TelemetryDiagnosticRoutinesService {
   // Requests that a routine using the RoutineControl API is created on the
@@ -302,4 +302,17 @@
       TelemetryDiagnosticRoutineArgument routine_argument,
       pending_receiver<TelemetryDiagnosticRoutineControl> routine_receiver,
       pending_remote<TelemetryDiagnosticRoutineObserver>? routine_observer);
+
+  // Checks whether a given `TelemetryDiagnosticRoutineArgument` is supported.
+  //
+  // The request:
+  // * |routine_argument| - a TelemetryDiagnosticRoutineArgument type that
+  //                        provides all the necessary parameters to create a
+  //                        particular type of routine.
+  //
+  // The response:
+  // * |status| - See the documentation of `TelemetryExtensionSupportStatus`.
+  [MinVersion=2] IsRoutineArgumentSupported@1(
+      TelemetryDiagnosticRoutineArgument routine_argument) =>
+        (TelemetryExtensionSupportStatus status);
 };
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb
index 3bbb029..e6c0609d 100644
--- a/chromeos/strings/chromeos_strings_id.xtb
+++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -464,7 +464,7 @@
 <translation id="4691278870498629773">Dihentikan - Tidak ada baki</translation>
 <translation id="469379815867856270">Kekuatan Sinyal</translation>
 <translation id="4731797938093519117">Akses orang tua</translation>
-<translation id="473775607612524610">Perbarui</translation>
+<translation id="473775607612524610">Update</translation>
 <translation id="4771607256327216405">cerahkan keyboard</translation>
 <translation id="4773299976671772492">Dihentikan</translation>
 <translation id="4782311465517282004">Dapatkan definisi, terjemahan, atau konversi unit saat Anda mengklik kanan atau menyentuh lama teks</translation>
diff --git a/chromeos/tast_control.gni b/chromeos/tast_control.gni
index 1248207..1e131f03 100644
--- a/chromeos/tast_control.gni
+++ b/chromeos/tast_control.gni
@@ -51,9 +51,6 @@
   "inputs.VirtualKeyboardGlideTyping.tablet_floating",
   "inputs.VirtualKeyboardHandwriting.floating",
 
-  # https://crbug.com/1470305
-  "inputs.VirtualKeyboardTypingOmnibox.a11y_lacros",
-
   # b/251833060
   "peripherals.LaunchAppFromGuestSession.diagnostics",
 
diff --git a/components/BUILD.gn b/components/BUILD.gn
index 187bf39..b780d50 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -448,6 +448,7 @@
       "//components/certificate_transparency:unit_tests",
       "//components/content_settings/browser:unit_tests",
       "//components/content_settings/browser/ui:unit_tests",
+      "//components/feed/core/v2:core_unit_tests",
       "//components/media_router/browser:unit_tests",
       "//components/media_router/common:unit_tests",
       "//components/media_router/common/providers/cast/channel:unit_tests",
diff --git a/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProfile.java b/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProfile.java
index f73a152..17af740 100644
--- a/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProfile.java
+++ b/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProfile.java
@@ -55,8 +55,7 @@
     /**
      * Builder for the {@link AutofillProfile}.
      */
-    // TODO(crbug.com/1079268): Convert back to final when //chrome AutofillProfile is deleted.
-    public static class Builder {
+    public static final class Builder {
         private String mGUID = "";
         private boolean mIsLocal = true;
         private @Source int mSource = Source.LOCAL_OR_SYNCABLE;
diff --git a/components/autofill/core/browser/BUILD.gn b/components/autofill/core/browser/BUILD.gn
index 7f62580c..1b845d32 100644
--- a/components/autofill/core/browser/BUILD.gn
+++ b/components/autofill/core/browser/BUILD.gn
@@ -638,6 +638,7 @@
     "//components/optimization_guide/core",
     "//components/optimization_guide/proto:optimization_guide_proto",
     "//components/os_crypt/sync",
+    "//components/plus_addresses",
     "//components/policy/core/browser",
     "//components/policy/core/common",
     "//components/pref_registry",
@@ -775,6 +776,8 @@
     "payments/test_payments_client.h",
     "payments/test_virtual_card_enrollment_manager.cc",
     "payments/test_virtual_card_enrollment_manager.h",
+    "profile_token_quality_test_api.cc",
+    "profile_token_quality_test_api.h",
     "strike_databases/payments/test_credit_card_save_strike_database.cc",
     "strike_databases/payments/test_credit_card_save_strike_database.h",
     "strike_databases/payments/test_strike_database.cc",
@@ -1147,6 +1150,7 @@
     "//components/optimization_guide/proto:optimization_guide_proto",
     "//components/os_crypt/sync",
     "//components/os_crypt/sync:test_support",
+    "//components/plus_addresses",
     "//components/policy/core/common",
     "//components/prefs:test_support",
     "//components/resources",
diff --git a/components/autofill/core/browser/DEPS b/components/autofill/core/browser/DEPS
index 9d272e39..24c1cbe 100644
--- a/components/autofill/core/browser/DEPS
+++ b/components/autofill/core/browser/DEPS
@@ -10,6 +10,7 @@
   "+components/leveldb_proto",
   "+components/metrics",
   "+components/optimization_guide/core",
+  "+components/plus_addresses",
   "+components/profile_metrics",
   "+components/policy",
   "+components/security_state",
diff --git a/components/autofill/core/browser/autofill_client.cc b/components/autofill/core/browser/autofill_client.cc
index c31a7337..99201a1 100644
--- a/components/autofill/core/browser/autofill_client.cc
+++ b/components/autofill/core/browser/autofill_client.cc
@@ -62,6 +62,10 @@
   return nullptr;
 }
 
+plus_addresses::PlusAddressService* AutofillClient::GetPlusAddressService() {
+  return nullptr;
+}
+
 MerchantPromoCodeManager* AutofillClient::GetMerchantPromoCodeManager() {
   return nullptr;
 }
diff --git a/components/autofill/core/browser/autofill_client.h b/components/autofill/core/browser/autofill_client.h
index 8ce5515..44beddb 100644
--- a/components/autofill/core/browser/autofill_client.h
+++ b/components/autofill/core/browser/autofill_client.h
@@ -64,6 +64,10 @@
 }
 #endif
 
+namespace plus_addresses {
+class PlusAddressService;
+}
+
 namespace autofill {
 
 class AddressNormalizer;
@@ -397,6 +401,8 @@
   // Gets the IbanManager instance associated with the client.
   virtual IbanManager* GetIbanManager();
 
+  virtual plus_addresses::PlusAddressService* GetPlusAddressService();
+
   // Gets the MerchantPromoCodeManager instance associated with the
   // client (can be null for unsupported platforms).
   virtual MerchantPromoCodeManager* GetMerchantPromoCodeManager();
diff --git a/components/autofill/core/browser/autofill_external_delegate.cc b/components/autofill/core/browser/autofill_external_delegate.cc
index fa92df1c..d7924784 100644
--- a/components/autofill/core/browser/autofill_external_delegate.cc
+++ b/components/autofill/core/browser/autofill_external_delegate.cc
@@ -31,6 +31,7 @@
 #include "components/autofill/core/common/autofill_payments_features.h"
 #include "components/autofill/core/common/autofill_util.h"
 #include "components/autofill/core/common/mojom/autofill_types.mojom-shared.h"
+#include "components/plus_addresses/plus_address_service.h"
 #include "components/signin/public/base/signin_metrics.h"
 #include "components/strings/grit/components_strings.h"
 #include "third_party/abseil-cpp/absl/types/variant.h"
@@ -263,6 +264,7 @@
     case PopupItemId::kIbanEntry:
     case PopupItemId::kMerchantPromoCodeEntry:
     case PopupItemId::kFieldByFieldFilling:
+    case PopupItemId::kFillExistingPlusAddress:
       manager_->driver().RendererShouldPreviewFieldWithValue(
           query_field_.global_id(), suggestion.main_text.value);
       break;
@@ -368,6 +370,21 @@
           suggestion.GetPayload<GURL>(), suggestion.main_text.value,
           suggestion.popup_item_id, query_form_, query_field_);
       break;
+    case PopupItemId::kFillExistingPlusAddress:
+      manager_->driver().RendererShouldFillFieldWithValue(
+          query_field_.global_id(), suggestion.main_text.value);
+      break;
+    case PopupItemId::kCreateNewPlusAddress: {
+      plus_addresses::PlusAddressService* plus_address_service =
+          manager_->client().GetPlusAddressService();
+      if (plus_address_service) {
+        plus_address_service->OfferPlusAddressCreation(
+            manager_->client().GetLastCommittedPrimaryMainFrameOrigin(),
+            base::BindOnce(&AutofillExternalDelegate::OnPlusAddressCreated,
+                           GetWeakPtr()));
+      }
+      break;
+    }
     default:
       if (suggestion.popup_item_id == PopupItemId::kAddressEntry ||
           suggestion.popup_item_id == PopupItemId::kCreditCardEntry ||
@@ -470,6 +487,12 @@
                                    std::u16string(), trigger_source);
 }
 
+void AutofillExternalDelegate::OnPlusAddressCreated(
+    const std::string& plus_address) {
+  manager_->driver().RendererShouldFillFieldWithValue(
+      query_field_.global_id(), base::UTF8ToUTF16(plus_address));
+}
+
 void AutofillExternalDelegate::FillAutofillFormData(
     PopupItemId popup_item_id,
     Suggestion::BackendId backend_id,
diff --git a/components/autofill/core/browser/autofill_external_delegate.h b/components/autofill/core/browser/autofill_external_delegate.h
index 9742993..fdb831e 100644
--- a/components/autofill/core/browser/autofill_external_delegate.h
+++ b/components/autofill/core/browser/autofill_external_delegate.h
@@ -133,6 +133,10 @@
   void OnCreditCardScanned(const AutofillTriggerSource trigger_source,
                            const CreditCard& card);
 
+  // Fills the form field with the given plus address.
+  // Called when a plus address is created.
+  void OnPlusAddressCreated(const std::string& plus_address);
+
   // Fills the form with the Autofill data corresponding to `backend_id`.
   // If `is_preview` is true then this is just a preview to show the user what
   // would be selected and if `is_preview` is false then the user has selected
diff --git a/components/autofill/core/browser/autofill_external_delegate_unittest.cc b/components/autofill/core/browser/autofill_external_delegate_unittest.cc
index f96101b..0d8fb82 100644
--- a/components/autofill/core/browser/autofill_external_delegate_unittest.cc
+++ b/components/autofill/core/browser/autofill_external_delegate_unittest.cc
@@ -32,12 +32,14 @@
 #include "components/autofill/core/common/form_data.h"
 #include "components/autofill/core/common/form_field_data.h"
 #include "components/autofill/core/common/password_form_fill_data.h"
+#include "components/plus_addresses/plus_address_service.h"
 #include "components/strings/grit/components_strings.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_f.h"
+#include "url/origin.h"
 
 using testing::_;
 using testing::NiceMock;
@@ -49,6 +51,9 @@
 constexpr auto kDefaultTriggerSource =
     AutofillSuggestionTriggerSource::kFormControlElementClicked;
 
+const std::u16string kMockPlusAddressForCreationCallback =
+    u"test+1234@test.example";
+
 class MockAutofillDriver : public TestAutofillDriver {
  public:
   MockAutofillDriver() = default;
@@ -71,9 +76,25 @@
               (override));
 };
 
+// Used to control the plus addressing feature, such that it is deterministic
+// and does not trigger any UI elements.
+class MockPlusAddressService : public plus_addresses::PlusAddressService {
+ public:
+  void OfferPlusAddressCreation(
+      url::Origin origin,
+      plus_addresses::PlusAddressCallback callback) override {
+    std::move(callback).Run(
+        base::UTF16ToUTF8(kMockPlusAddressForCreationCallback));
+  }
+};
+
 class MockAutofillClient : public TestAutofillClient {
  public:
-  MockAutofillClient() = default;
+  MockAutofillClient() {
+    mock_plus_address_service_ = std::make_unique<MockPlusAddressService>();
+    ON_CALL(*this, GetPlusAddressService)
+        .WillByDefault(testing::Return(mock_plus_address_service_.get()));
+  }
   MockAutofillClient(const MockAutofillClient&) = delete;
   MockAutofillClient& operator=(const MockAutofillClient&) = delete;
   MOCK_METHOD(void,
@@ -95,6 +116,10 @@
               OpenPromoCodeOfferDetailsURL,
               (const GURL& url),
               (override));
+  MOCK_METHOD(plus_addresses::PlusAddressService*,
+              GetPlusAddressService,
+              (),
+              (override));
 
 #if BUILDFLAG(IS_IOS)
   // Mock the client query ID check.
@@ -105,8 +130,10 @@
   void set_last_queried_field(FieldGlobalId field_id) {
     last_queried_field_id_ = field_id;
   }
-
+#endif
  private:
+  std::unique_ptr<MockPlusAddressService> mock_plus_address_service_;
+#if BUILDFLAG(IS_IOS)
   FieldGlobalId last_queried_field_id_;
 #endif
 };
@@ -753,6 +780,80 @@
                                           suggestion_source);
 }
 
+// Mock out an existing plus address autofill suggestion, and ensure that
+// choosing it results in the field being filled with its value (as opposed to
+// the mocked address used in the creation flow).
+TEST_F(AutofillExternalDelegateUnitTest,
+       ExternalDelegateFillsExistingPlusAddress) {
+  IssueOnQuery();
+
+  AutofillClient::PopupOpenArgs open_args;
+  EXPECT_CALL(autofill_client_, ShowAutofillPopup)
+      .WillOnce(testing::SaveArg<0>(&open_args));
+
+  // This should call ShowAutofillPopup.
+  std::vector<Suggestion> suggestions;
+  suggestions.emplace_back();
+  // `kMockPlusAddressForCreationCallback` is returned when the plus address
+  // creation flow is invoked, whereas this function tests the filling of
+  // existing plus addresses, which is why this expected value is different.
+  std::u16string plus_address = u"test+plus@test.example";
+  suggestions[0].main_text.value = plus_address;
+  suggestions[0].popup_item_id = PopupItemId::kFillExistingPlusAddress;
+  external_delegate_->OnSuggestionsReturned(field_id_, suggestions,
+                                            kDefaultTriggerSource);
+
+  EXPECT_THAT(open_args.suggestions,
+              SuggestionVectorIdsAre(PopupItemId::kFillExistingPlusAddress));
+
+  EXPECT_CALL(*autofill_driver_, RendererShouldClearPreviewedForm());
+  EXPECT_CALL(*autofill_driver_,
+              RendererShouldPreviewFieldWithValue(field_id_, plus_address));
+  external_delegate_->DidSelectSuggestion(suggestions[0],
+                                          kDefaultTriggerSource);
+  EXPECT_CALL(autofill_client_,
+              HideAutofillPopup(PopupHidingReason::kAcceptSuggestion));
+  EXPECT_CALL(*autofill_driver_,
+              RendererShouldFillFieldWithValue(field_id_, plus_address));
+  external_delegate_->DidAcceptSuggestion(suggestions[0], 0,
+                                          kDefaultTriggerSource);
+}
+
+// Mock out the new plus address creation flow, and ensure that its completion
+// results in the field being filled with the resulting plus address.
+TEST_F(AutofillExternalDelegateUnitTest,
+       ExternalDelegateOffersPlusAddressCreation) {
+  IssueOnQuery();
+  AutofillClient::PopupOpenArgs open_args;
+  EXPECT_CALL(autofill_client_, ShowAutofillPopup)
+      .WillOnce(testing::SaveArg<0>(&open_args));
+
+  // This should call ShowAutofillPopup.
+  std::vector<Suggestion> suggestions;
+  suggestions.emplace_back();
+  suggestions[0].popup_item_id = PopupItemId::kCreateNewPlusAddress;
+  external_delegate_->OnSuggestionsReturned(field_id_, suggestions,
+                                            kDefaultTriggerSource);
+
+  EXPECT_THAT(open_args.suggestions,
+              SuggestionVectorIdsAre(PopupItemId::kCreateNewPlusAddress));
+
+  EXPECT_CALL(*autofill_driver_, RendererShouldClearPreviewedForm());
+  external_delegate_->DidSelectSuggestion(suggestions[0],
+                                          kDefaultTriggerSource);
+  EXPECT_CALL(autofill_client_,
+              HideAutofillPopup(PopupHidingReason::kAcceptSuggestion));
+  EXPECT_CALL(autofill_client_, GetPlusAddressService());
+  // `kMockPlusAddressForCreationCallback` is returned in the callback from the
+  // mocked `PlusAddressService`. Ensure it is filled (vs, say, the empty text
+  // of the suggestion).
+  EXPECT_CALL(*autofill_driver_,
+              RendererShouldFillFieldWithValue(
+                  field_id_, kMockPlusAddressForCreationCallback));
+  external_delegate_->DidAcceptSuggestion(suggestions[0], 0,
+                                          kDefaultTriggerSource);
+}
+
 class AutofillExternalDelegateUnitTest_UndoAutofill
     : public AutofillExternalDelegateUnitTest,
       public testing::WithParamInterface<bool> {
diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/components/autofill/core/browser/browser_autofill_manager.cc
index 622211f4..61db1e17d 100644
--- a/components/autofill/core/browser/browser_autofill_manager.cc
+++ b/components/autofill/core/browser/browser_autofill_manager.cc
@@ -108,6 +108,7 @@
 #include "components/autofill/core/common/password_form_fill_data.h"
 #include "components/autofill/core/common/signatures.h"
 #include "components/autofill/core/common/unique_ids.h"
+#include "components/plus_addresses/plus_address_service.h"
 #include "components/pref_registry/pref_registry_syncable.h"
 #include "components/prefs/pref_service.h"
 #include "components/security_interstitials/core/pref_names.h"
@@ -284,6 +285,8 @@
     case PopupItemId::kFillFullName:
     case PopupItemId::kFillEverythingFromAddressProfile:
     case PopupItemId::kFieldByFieldFilling:
+    case PopupItemId::kFillExistingPlusAddress:
+    case PopupItemId::kCreateNewPlusAddress:
       NOTREACHED();
   }
   NOTREACHED();
@@ -3545,6 +3548,13 @@
     *suggestions =
         GetProfileSuggestions(form, *context->form_structure, field,
                               *context->focused_field, trigger_source);
+    if (context->focused_field->Type().group() == FieldTypeGroup::kEmail) {
+      absl::optional<Suggestion> maybe_plus_address_suggestion =
+          MaybeGetPlusAddressSuggestion();
+      if (maybe_plus_address_suggestion.has_value()) {
+        suggestions->push_back(maybe_plus_address_suggestion.value());
+      }
+    }
   }
 
   // Ablation experiment:
@@ -3832,6 +3842,32 @@
   return true;
 }
 
+absl::optional<Suggestion>
+BrowserAutofillManager::MaybeGetPlusAddressSuggestion() {
+  plus_addresses::PlusAddressService* plus_address_service =
+      client().GetPlusAddressService();
+  if (!plus_address_service ||
+      !plus_address_service->SupportsPlusAddresses(
+          client().GetLastCommittedPrimaryMainFrameOrigin())) {
+    return absl::nullopt;
+  }
+  absl::optional<std::string> maybe_address =
+      plus_address_service->GetPlusAddress(
+          client().GetLastCommittedPrimaryMainFrameOrigin());
+  if (maybe_address == absl::nullopt) {
+    Suggestion create_plus_address_suggestion(
+        plus_address_service->GetCreateSuggestionLabel());
+    create_plus_address_suggestion.popup_item_id =
+        PopupItemId::kCreateNewPlusAddress;
+    return create_plus_address_suggestion;
+  }
+  Suggestion existing_plus_address_suggestion(
+      base::UTF8ToUTF16(maybe_address.value()));
+  existing_plus_address_suggestion.popup_item_id =
+      PopupItemId::kFillExistingPlusAddress;
+  return existing_plus_address_suggestion;
+}
+
 void BrowserAutofillManager::LogEventCountsUMAMetric(
     const FormStructure& form_structure) {
   size_t num_ask_for_values_to_fill_event = 0;
diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/components/autofill/core/browser/browser_autofill_manager.h
index ecdbf640..4d896770 100644
--- a/components/autofill/core/browser/browser_autofill_manager.h
+++ b/components/autofill/core/browser/browser_autofill_manager.h
@@ -729,6 +729,10 @@
   // focusable input field with a type from heuristics or the server.
   bool ShouldUploadUkm(const FormStructure& form_structure);
 
+  // Returns a plus address suggestion, if eligible, using `client()`'s
+  // `GetPlusAddressService`.
+  absl::optional<Suggestion> MaybeGetPlusAddressSuggestion();
+
   // Delegates to perform external processing (display, selection) on
   // our behalf.
   std::unique_ptr<AutofillExternalDelegate> external_delegate_;
diff --git a/components/autofill/core/browser/browser_autofill_manager_test_api.h b/components/autofill/core/browser/browser_autofill_manager_test_api.h
index 1d9f64d..74621f5 100644
--- a/components/autofill/core/browser/browser_autofill_manager_test_api.h
+++ b/components/autofill/core/browser/browser_autofill_manager_test_api.h
@@ -9,6 +9,7 @@
 #include "base/time/time.h"
 #include "components/autofill/core/browser/autofill_manager_test_api.h"
 #include "components/autofill/core/browser/browser_autofill_manager.h"
+#include "components/autofill/core/browser/single_field_form_fill_router.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace autofill {
@@ -74,6 +75,10 @@
         ->form_interactions_flow_id_for_test();
   }
 
+  SingleFieldFormFillRouter* single_field_form_fill_router() {
+    return manager_->single_field_form_fill_router_.get();
+  }
+
   void set_single_field_form_fill_router(
       std::unique_ptr<SingleFieldFormFillRouter> router) {
     manager_->single_field_form_fill_router_ = std::move(router);
diff --git a/components/autofill/core/browser/browser_autofill_manager_unittest.cc b/components/autofill/core/browser/browser_autofill_manager_unittest.cc
index 290241a0..eb2dd51 100644
--- a/components/autofill/core/browser/browser_autofill_manager_unittest.cc
+++ b/components/autofill/core/browser/browser_autofill_manager_unittest.cc
@@ -14,7 +14,6 @@
 #include "base/command_line.h"
 #include "base/feature_list.h"
 #include "base/hash/hash.h"
-#include "base/memory/raw_ptr.h"
 #include "base/memory/ref_counted.h"
 #include "base/metrics/field_trial.h"
 #include "base/metrics/metrics_hashes.h"
@@ -81,6 +80,8 @@
 #include "components/autofill/core/common/form_field_data.h"
 #include "components/autofill/core/common/signatures.h"
 #include "components/feature_engagement/public/feature_constants.h"
+#include "components/plus_addresses/features.h"
+#include "components/plus_addresses/plus_address_service.h"
 #include "components/prefs/pref_service.h"
 #include "components/security_interstitials/core/pref_names.h"
 #include "components/security_state/core/security_state.h"
@@ -230,6 +231,13 @@
 
 std::string kElvisProfileGuid = MakeGuid(1);
 
+// Used to control the plus addressing feature, such that it is deterministic
+// and does not trigger any UI elements.
+class MockPlusAddressService : public plus_addresses::PlusAddressService {
+ public:
+  MOCK_METHOD(bool, SupportsPlusAddresses, (url::Origin), (override));
+};
+
 class MockAutofillClient : public TestAutofillClient {
  public:
   MockAutofillClient() {
@@ -266,6 +274,10 @@
                bool is_refill),
               (override));
   MOCK_METHOD(bool, HasCreditCardScanFeature, (), (override));
+  MOCK_METHOD(plus_addresses::PlusAddressService*,
+              GetPlusAddressService,
+              (),
+              (override));
 };
 
 class MockAutofillDownloadManager : public AutofillDownloadManager {
@@ -578,52 +590,32 @@
                                        /*is_off_the_record=*/false);
 
     autofill_driver_ = std::make_unique<NiceMock<MockAutofillDriver>>();
-    auto payments_client = std::make_unique<payments::TestPaymentsClient>(
-        autofill_client_.GetURLLoaderFactory(),
-        autofill_client_.GetIdentityManager(), &personal_data());
-    payments_client_ = payments_client.get();
-    autofill_client_.set_test_payments_client(std::move(payments_client));
-    TestCreditCardSaveManager* credit_card_save_manager =
-        new TestCreditCardSaveManager(autofill_driver_.get(), &autofill_client_,
-                                      payments_client_, &personal_data());
+    autofill_client_.set_test_payments_client(
+        std::make_unique<payments::TestPaymentsClient>(
+            autofill_client_.GetURLLoaderFactory(),
+            autofill_client_.GetIdentityManager(), &personal_data()));
+    auto credit_card_save_manager = std::make_unique<TestCreditCardSaveManager>(
+        autofill_driver_.get(), &autofill_client_,
+        static_cast<payments::TestPaymentsClient*>(
+            autofill_client_.GetPaymentsClient()),
+        &personal_data());
     credit_card_save_manager->SetCreditCardUploadEnabled(true);
-    auto test_form_data_importer =
-        std::make_unique<autofill::TestFormDataImporter>(
-            &autofill_client_, payments_client_,
-            std::unique_ptr<CreditCardSaveManager>(credit_card_save_manager),
-            /*iban_save_manager=*/nullptr, &personal_data(), "en-US");
-    test_form_data_importer_ = test_form_data_importer.get();
     autofill_client_.set_test_form_data_importer(
-        std::move(test_form_data_importer));
-    browser_autofill_manager_ = std::make_unique<TestBrowserAutofillManager>(
-        autofill_driver_.get(), &autofill_client_);
+        std::make_unique<autofill::TestFormDataImporter>(
+            &autofill_client_, autofill_client_.GetPaymentsClient(),
+            std::move(credit_card_save_manager),
+            /*iban_save_manager=*/nullptr, &personal_data(), "en-US"));
 
-    auto single_field_form_fill_router =
-        std::make_unique<NiceMock<MockSingleFieldFormFillRouter>>(
-            autocomplete_history_manager_.get(), iban_manager_.get(),
-            merchant_promo_code_manager_.get());
+    ResetBrowserAutofillManager();
     // By default, if we offer single field form fill, suggestions should be
     // returned because it is assumed |field.should_autocomplete| is set to
     // true. This should be overridden in tests where
     // |field.should_autocomplete| is set to false.
-    ON_CALL(*single_field_form_fill_router, OnGetSingleFieldSuggestions)
-        .WillByDefault(testing::Return(true));
-    single_field_form_fill_router_ = single_field_form_fill_router.get();
-    test_api(*browser_autofill_manager_)
-        .set_single_field_form_fill_router(
-            std::move(single_field_form_fill_router));
+    ON_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions)
+        .WillByDefault(Return(true));
 
-    auto download_manager =
-        std::make_unique<MockAutofillDownloadManager>(&autofill_client_);
-    download_manager_ = download_manager.get();
-    autofill_client_.set_download_manager(std::move(download_manager));
-
-    auto external_delegate = std::make_unique<TestAutofillExternalDelegate>(
-        browser_autofill_manager_.get(),
-        /*call_parent_methods=*/false);
-    external_delegate_ = external_delegate.get();
-    test_api(*browser_autofill_manager_)
-        .SetExternalDelegate(std::move(external_delegate));
+    autofill_client_.set_download_manager(
+        std::make_unique<MockAutofillDownloadManager>(&autofill_client_));
 
     browser_autofill_manager_->set_touch_to_fill_delegate(
         std::make_unique<MockTouchToFillDelegate>());
@@ -637,9 +629,8 @@
     ON_CALL(fast_checkout_delegate(), IsShowingFastCheckoutUI())
         .WillByDefault(Return(false));
 
-    auto test_strike_database = std::make_unique<TestStrikeDatabase>();
-    strike_database_ = test_strike_database.get();
-    autofill_client_.set_test_strike_database(std::move(test_strike_database));
+    autofill_client_.set_test_strike_database(
+        std::make_unique<TestStrikeDatabase>());
 
     // Initialize the TestPersonalDataManager with some default data.
     CreateTestAutofillProfiles();
@@ -726,11 +717,6 @@
   }
 
   void TearDown() override {
-    // Drop unowned references before destroying BrowserAutofillManager
-    // which owns them.
-    single_field_form_fill_router_ = nullptr;
-    external_delegate_ = nullptr;
-
     // Order of destruction is important as BrowserAutofillManager relies on
     // PersonalDataManager to be around when it gets destroyed.
     browser_autofill_manager_.reset();
@@ -968,7 +954,7 @@
   void CheckSuggestions(FieldGlobalId field_id, const Suggestion& suggestion0) {
     std::vector<Suggestion> suggestion_vector;
     suggestion_vector.push_back(suggestion0);
-    external_delegate_->CheckSuggestions(field_id, 1, &suggestion_vector[0]);
+    external_delegate()->CheckSuggestions(field_id, 1, &suggestion_vector[0]);
   }
   void CheckSuggestions(FieldGlobalId field_id,
                         const Suggestion& suggestion0,
@@ -976,7 +962,7 @@
     std::vector<Suggestion> suggestion_vector;
     suggestion_vector.push_back(suggestion0);
     suggestion_vector.push_back(suggestion1);
-    external_delegate_->CheckSuggestions(field_id, 2, &suggestion_vector[0]);
+    external_delegate()->CheckSuggestions(field_id, 2, &suggestion_vector[0]);
   }
   void CheckSuggestions(FieldGlobalId field_id,
                         const Suggestion& suggestion0,
@@ -986,24 +972,22 @@
     suggestion_vector.push_back(suggestion0);
     suggestion_vector.push_back(suggestion1);
     suggestion_vector.push_back(suggestion2);
-    external_delegate_->CheckSuggestions(field_id, 3, &suggestion_vector[0]);
+    external_delegate()->CheckSuggestions(field_id, 3, &suggestion_vector[0]);
   }
 
   void ResetBrowserAutofillManager() {
-    // |browser_autofill_manager_| owns the |single_field_form_fill_router_| and
-    // clears it upon being recreated. Clear it first and then give it a new
-    // SingleFieldFormFillRouter to avoid referencing deleted memory.
     browser_autofill_manager_ = std::make_unique<TestBrowserAutofillManager>(
         autofill_driver_.get(), &autofill_client_);
 
-    auto single_field_form_fill_router =
-        std::make_unique<NiceMock<MockSingleFieldFormFillRouter>>(
-            autocomplete_history_manager_.get(), iban_manager_.get(),
-            merchant_promo_code_manager_.get());
-    single_field_form_fill_router_ = single_field_form_fill_router.get();
     test_api(*browser_autofill_manager_)
         .set_single_field_form_fill_router(
-            std::move(single_field_form_fill_router));
+            std::make_unique<NiceMock<MockSingleFieldFormFillRouter>>(
+                autocomplete_history_manager_.get(), iban_manager_.get(),
+                merchant_promo_code_manager_.get()));
+    test_api(*browser_autofill_manager_)
+        .SetExternalDelegate(std::make_unique<TestAutofillExternalDelegate>(
+            browser_autofill_manager_.get(),
+            /*call_parent_methods=*/false));
   }
 
   // Matches a AskForValuesToFillFieldLogEvent by equality of fields.
@@ -1186,23 +1170,33 @@
   }
 
  protected:
+  MockAutofillDownloadManager* download_manager() {
+    return static_cast<MockAutofillDownloadManager*>(
+        autofill_client_.GetDownloadManager());
+  }
+  TestAutofillExternalDelegate* external_delegate() {
+    return static_cast<TestAutofillExternalDelegate*>(
+        test_api(*browser_autofill_manager_).external_delegate());
+  }
+  TestFormDataImporter& form_data_importer() {
+    return static_cast<TestFormDataImporter&>(
+        *autofill_client_.GetFormDataImporter());
+  }
+  MockSingleFieldFormFillRouter* single_field_form_fill_router() {
+    return static_cast<MockSingleFieldFormFillRouter*>(
+        test_api(*browser_autofill_manager_).single_field_form_fill_router());
+  }
+
   base::test::TaskEnvironment task_environment_;
   test::AutofillUnitTestEnvironment autofill_test_environment_;
   NiceMock<MockAutofillClient> autofill_client_;
   std::unique_ptr<MockAutofillDriver> autofill_driver_;
   syncer::TestSyncService sync_service_;
   std::unique_ptr<TestBrowserAutofillManager> browser_autofill_manager_;
-  raw_ptr<TestAutofillExternalDelegate, DanglingUntriaged> external_delegate_;
   scoped_refptr<AutofillWebDataService> database_;
-  raw_ptr<MockAutofillDownloadManager> download_manager_;
   std::unique_ptr<MockAutocompleteHistoryManager> autocomplete_history_manager_;
   std::unique_ptr<MockIbanManager> iban_manager_;
   std::unique_ptr<MockMerchantPromoCodeManager> merchant_promo_code_manager_;
-  raw_ptr<MockSingleFieldFormFillRouter, DanglingUntriaged>
-      single_field_form_fill_router_;
-  raw_ptr<TestStrikeDatabase> strike_database_;
-  raw_ptr<payments::TestPaymentsClient> payments_client_;
-  raw_ptr<TestFormDataImporter> test_form_data_importer_;
 
  private:
   int ToHistogramSample(autofill_metrics::CardUploadDecision metric) {
@@ -1390,7 +1384,7 @@
   FormsSeen({form});
   histogram_tester.ExpectUniqueSample("Autofill.UserHappiness",
                                       0 /* FORMS_LOADED */, 1);
-  download_manager_->VerifyLastQueriedForms({form});
+  download_manager()->VerifyLastQueriedForms({form});
 
   // Different form structure.
   FormData form2;
@@ -1410,7 +1404,7 @@
   FormsSeen({form2});
   histogram_tester.ExpectUniqueSample("Autofill.UserHappiness",
                                       0 /* FORMS_LOADED */, 2);
-  download_manager_->VerifyLastQueriedForms({form2});
+  download_manager()->VerifyLastQueriedForms({form2});
 }
 
 // Test that when forms are seen, the renderer is updated with the predicted
@@ -1490,19 +1484,19 @@
 
   // Ensure that the SingleFieldFormFillRouter is not called for
   // suggestions either.
-  EXPECT_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions)
+  EXPECT_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions)
       .Times(0);
 
   // Suggestions should be returned for the first two fields.
   GetAutofillSuggestions(form, form.fields[0]);
-  external_delegate_->CheckSuggestionCount(form.fields[0].global_id(), 2);
+  external_delegate()->CheckSuggestionCount(form.fields[0].global_id(), 2);
   GetAutofillSuggestions(form, form.fields[1]);
-  external_delegate_->CheckSuggestionCount(form.fields[1].global_id(), 2);
+  external_delegate()->CheckSuggestionCount(form.fields[1].global_id(), 2);
 
   // No suggestions should not be provided for the third field because of its
   // unrecognized autocomplete attribute.
   GetAutofillSuggestions(form, form.fields[2]);
-  external_delegate_->CheckNoSuggestions(form.fields[2].global_id());
+  external_delegate()->CheckNoSuggestions(form.fields[2].global_id());
 }
 
 // Tests that when `kAutofillPredictionsForAutocompleteUnrecognized` is enabled,
@@ -1534,7 +1528,7 @@
   // (see `CreateTestAutofillProfiles()`).
   for (const FormFieldData& field : form.fields) {
     GetAutofillSuggestions(form, field);
-    external_delegate_->CheckSuggestionCount(field.global_id(), 2);
+    external_delegate()->CheckSuggestionCount(field.global_id(), 2);
   }
 }
 #else
@@ -1553,7 +1547,7 @@
   // Expect that no suggestions are returned for the first field by default.
   const FormFieldData& field0 = form.fields[0];
   GetAutofillSuggestions(form, field0);
-  external_delegate_->CheckNoSuggestions(field0.global_id());
+  external_delegate()->CheckNoSuggestions(field0.global_id());
 
   // When triggering suggestions through manual fallbacks, expect that two
   // suggestions are returned.
@@ -1562,12 +1556,12 @@
   GetAutofillSuggestions(form, field0,
                          AutofillSuggestionTriggerSource::
                              kManualFallbackForAutocompleteUnrecognized);
-  external_delegate_->CheckSuggestionCount(field0.global_id(), 2);
+  external_delegate()->CheckSuggestionCount(field0.global_id(), 2);
 
   // Expect that two suggestions are returned for all other fields.
   for (size_t i = 1; i < form.fields.size(); i++) {
     GetAutofillSuggestions(form, form.fields[i]);
-    external_delegate_->CheckSuggestionCount(form.fields[i].global_id(), 2);
+    external_delegate()->CheckSuggestionCount(form.fields[i].global_id(), 2);
   }
 }
 #endif  // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
@@ -1591,14 +1585,14 @@
   FormsSeen({form});
 
   // Ensure that the SingleFieldFormFillRouter is called for both fields.
-  EXPECT_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions)
+  EXPECT_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions)
       .Times(2);
 
   GetAutofillSuggestions(form, form.fields[0]);
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 
   GetAutofillSuggestions(form, form.fields[1]);
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that when small forms are disabled (min required fields enforced)
@@ -1630,7 +1624,7 @@
   // Check that there are no suggestions for the field without the autocomplete
   // attribute.
   GetAutofillSuggestions(form, form.fields[1]);
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that for a form with two fields with autocomplete attributes,
@@ -1675,7 +1669,7 @@
   test::CreateTestAddressFormData(&form);
   FormFieldData field = form.fields[0];
 
-  EXPECT_CALL(*single_field_form_fill_router_,
+  EXPECT_CALL(*single_field_form_fill_router(),
               OnSingleFieldSuggestionSelected(test_value,
                                               PopupItemId::kAutocompleteEntry))
       .Times(1);
@@ -1683,7 +1677,7 @@
   browser_autofill_manager_->OnSingleFieldSuggestionSelected(
       test_value, PopupItemId::kAutocompleteEntry, form, field);
 
-  EXPECT_CALL(*single_field_form_fill_router_,
+  EXPECT_CALL(*single_field_form_fill_router(),
               OnSingleFieldSuggestionSelected(test_value,
                                               PopupItemId::kAutocompleteEntry))
       .Times(1);
@@ -1692,14 +1686,14 @@
       test_value, PopupItemId::kAutocompleteEntry, form, field);
 
   EXPECT_CALL(
-      *single_field_form_fill_router_,
+      *single_field_form_fill_router(),
       OnSingleFieldSuggestionSelected(test_value, PopupItemId::kIbanEntry))
       .Times(1);
 
   browser_autofill_manager_->OnSingleFieldSuggestionSelected(
       test_value, PopupItemId::kIbanEntry, form, field);
 
-  EXPECT_CALL(*single_field_form_fill_router_,
+  EXPECT_CALL(*single_field_form_fill_router(),
               OnSingleFieldSuggestionSelected(
                   test_value, PopupItemId::kMerchantPromoCodeEntry))
       .Times(1);
@@ -1918,7 +1912,7 @@
   FormsSeen({form});
 
   GetAutofillSuggestions(form, field);
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that we cull duplicate profile suggestions.
@@ -1983,7 +1977,7 @@
                                                           false);
 
   GetAutofillSuggestions(form, form.fields[0]);
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 TEST_F(BrowserAutofillManagerTest,
@@ -1998,7 +1992,7 @@
       field_id, AutofillSuggestionTriggerSource::kFormControlElementClicked,
       suggestions);
 
-  EXPECT_EQ(external_delegate_->trigger_source(),
+  EXPECT_EQ(external_delegate()->trigger_source(),
             AutofillSuggestionTriggerSource::kFormControlElementClicked);
   CheckSuggestions(field_id, suggestions[0], suggestions[1]);
 }
@@ -2431,7 +2425,7 @@
   field.value = u"12345678";
   GetAutofillSuggestions(form, field);
 
-  external_delegate_->CheckNoSuggestions(field.global_id());
+  external_delegate()->CheckNoSuggestions(field.global_id());
 }
 
 // Test that expired cards are ordered by their ranking score and are always
@@ -2711,9 +2705,8 @@
       .OnCreditCardFetched(CreditCardFetchResult::kSuccess, &credit_card,
                            /*cvc=*/u"123");
 
-  ASSERT_TRUE(
-      test_form_data_importer_->fetched_card_instrument_id().has_value());
-  EXPECT_EQ(test_form_data_importer_->fetched_card_instrument_id().value(),
+  ASSERT_TRUE(form_data_importer().fetched_card_instrument_id().has_value());
+  EXPECT_EQ(form_data_importer().fetched_card_instrument_id().value(),
             credit_card.instrument_id());
 }
 
@@ -2796,7 +2789,7 @@
   GetAutofillSuggestions(form, form.fields[0]);
 
   // Verify that suggestions are returned.
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 
   FormFieldData field;
   test::CreateTestFormField("Card Number", "cardnumber", "", "text", &field);
@@ -2812,7 +2805,7 @@
   // Clear the test credit cards and try again -- we shouldn't return a warning.
   personal_data().ClearCreditCards();
   GetAutofillSuggestions(form, field);
-  external_delegate_->CheckNoSuggestions(field.global_id());
+  external_delegate()->CheckNoSuggestions(field.global_id());
 }
 
 TEST_F(BrowserAutofillManagerTest,
@@ -2828,7 +2821,7 @@
 
   GetAutofillSuggestions(form, form.fields[0]);
   // Verify that suggestions are returned.
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 }
 
 TEST_F(BrowserAutofillManagerTest,
@@ -2843,7 +2836,7 @@
 
   GetAutofillSuggestions(form, form.fields[0]);
   // Verify that suggestions are returned.
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that the correct section is filled.
@@ -3063,7 +3056,7 @@
   GetAutofillSuggestions(form, form.fields[0]);
 
   // Check that credit card suggestions will not be available.
-  external_delegate_->CheckNoSuggestions(form.fields[0].global_id());
+  external_delegate()->CheckNoSuggestions(form.fields[0].global_id());
 }
 
 TEST_F(BrowserAutofillManagerTest,
@@ -3080,7 +3073,7 @@
   GetAutofillSuggestions(form, form.fields[0]);
 
   // Check that credit card suggestions will not be available.
-  external_delegate_->CheckNoSuggestions(form.fields[0].global_id());
+  external_delegate()->CheckNoSuggestions(form.fields[0].global_id());
 }
 
 struct LogAblationTestParams {
@@ -3388,7 +3381,7 @@
     FormsSeen({form});
     histogram_tester.ExpectUniqueSample("Autofill.UserHappiness",
                                         0 /* FORMS_LOADED */, 1);
-    download_manager_->VerifyLastQueriedForms({form});
+    download_manager()->VerifyLastQueriedForms({form});
   }
 }
 
@@ -6271,7 +6264,7 @@
   EXPECT_CALL(touch_to_fill_delegate(), TryToShowTouchToFill)
       .WillOnce(Return(false));
   TryToShowTouchToFill(form, field, /*form_element_was_clicked=*/true);
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 
   // Fill the form by triggering the suggestion from "Name on Card" field.
   FormData response_data;
@@ -6626,7 +6619,7 @@
   FormData form;
   test::CreateTestAddressFormData(&form);
 
-  EXPECT_CALL(*single_field_form_fill_router_, OnWillSubmitForm(_, _, true));
+  EXPECT_CALL(*single_field_form_fill_router(), OnWillSubmitForm(_, _, true));
   FormSubmitted(form);
 }
 
@@ -6665,12 +6658,6 @@
   browser_autofill_manager_->SetAutofillProfileEnabled(autofill_client_, false);
   browser_autofill_manager_->SetAutofillCreditCardEnabled(autofill_client_,
                                                           false);
-  auto external_delegate = std::make_unique<TestAutofillExternalDelegate>(
-      browser_autofill_manager_.get(),
-      /*call_parent_methods=*/false);
-  external_delegate_ = external_delegate.get();
-  test_api(*browser_autofill_manager_)
-      .SetExternalDelegate(std::move(external_delegate));
 
   // Set up our form data.
   FormData form;
@@ -6678,13 +6665,13 @@
   FormsSeen({form});
 
   // Expect the SingleFieldFormFillRouter to be called for suggestions.
-  EXPECT_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions);
+  EXPECT_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions);
 
   GetAutofillSuggestions(form, form.fields[0]);
 
   // Single field form fill suggestions were returned, so we should not go
   // through the normal autofill flow.
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that we do not query for single field form fill suggestions when there
@@ -6697,12 +6684,12 @@
   FormsSeen({form});
 
   // SingleFieldFormFillRouter is not called for suggestions.
-  EXPECT_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions)
+  EXPECT_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions)
       .Times(0);
 
   GetAutofillSuggestions(form, form.fields[0]);
   // Verify that suggestions are returned.
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that we query for single field form fill suggestions when there are no
@@ -6720,7 +6707,7 @@
 
   // Single field form fill manager is called for suggestions because Autofill
   // is empty.
-  EXPECT_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions);
+  EXPECT_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions);
 
   GetAutofillSuggestions(form, field);
 }
@@ -6740,12 +6727,6 @@
   browser_autofill_manager_->SetAutofillProfileEnabled(autofill_client_, false);
   browser_autofill_manager_->SetAutofillCreditCardEnabled(autofill_client_,
                                                           false);
-  auto external_delegate = std::make_unique<TestAutofillExternalDelegate>(
-      browser_autofill_manager_.get(),
-      /*call_parent_methods=*/false);
-  external_delegate_ = external_delegate.get();
-  test_api(*browser_autofill_manager_)
-      .SetExternalDelegate(std::move(external_delegate));
 
   // Set up our form data.
   FormData form = CreateTestCreditCardFormData(false, false);
@@ -6755,7 +6736,7 @@
   field.should_autocomplete = true;
 
   // SingleFieldFormFillRouter is called for suggestions.
-  EXPECT_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions);
+  EXPECT_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions);
 
   GetAutofillSuggestions(form, field);
 }
@@ -6775,12 +6756,6 @@
   browser_autofill_manager_->SetAutofillProfileEnabled(autofill_client_, false);
   browser_autofill_manager_->SetAutofillCreditCardEnabled(autofill_client_,
                                                           false);
-  auto external_delegate = std::make_unique<TestAutofillExternalDelegate>(
-      browser_autofill_manager_.get(),
-      /*call_parent_methods=*/false);
-  external_delegate_ = external_delegate.get();
-  test_api(*browser_autofill_manager_)
-      .SetExternalDelegate(std::move(external_delegate));
 
   // Set up our form data.
   FormData form = CreateTestCreditCardFormData(false, false);
@@ -6790,7 +6765,7 @@
   field.should_autocomplete = true;
 
   // SingleFieldFormFillRouter is not called for suggestions.
-  EXPECT_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions)
+  EXPECT_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions)
       .Times(0);
 
   GetAutofillSuggestions(form, field);
@@ -6814,15 +6789,15 @@
   test::CreateTestFormField("Email", "email", "donkey", "email", &field);
 
   // Autocomplete is set to off, so suggestions should not get returned from
-  // |single_field_form_fill_router_|.
-  EXPECT_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions)
+  // |single_field_form_fill_router()|.
+  EXPECT_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions)
       .WillRepeatedly(testing::Return(false));
 
   GetAutofillSuggestions(form, field);
 
   // Single field form fill was not triggered, so go through the normal autofill
   // flow.
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that the situation where no single field form fill conditions were met
@@ -6835,12 +6810,6 @@
   browser_autofill_manager_->SetAutofillProfileEnabled(autofill_client_, false);
   browser_autofill_manager_->SetAutofillCreditCardEnabled(autofill_client_,
                                                           false);
-  auto external_delegate = std::make_unique<TestAutofillExternalDelegate>(
-      browser_autofill_manager_.get(),
-      /*call_parent_methods=*/false);
-  external_delegate_ = external_delegate.get();
-  test_api(*browser_autofill_manager_)
-      .SetExternalDelegate(std::move(external_delegate));
 
   // Set up our form data.
   FormData form;
@@ -6850,20 +6819,20 @@
   field->should_autocomplete = false;
 
   // Autocomplete is set to off, so suggestions should not get returned from
-  // |single_field_form_fill_router_|.
-  EXPECT_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions)
+  // |single_field_form_fill_router()|.
+  EXPECT_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions)
       .WillRepeatedly(testing::Return(false));
 
   GetAutofillSuggestions(form, *field);
 
   // Single field form fill was not triggered, so go through the normal autofill
   // flow.
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 }
 
 TEST_F(BrowserAutofillManagerTest,
        DestructorCancelsSingleFieldFormFillQueries) {
-  EXPECT_CALL(*single_field_form_fill_router_, CancelPendingQueries).Times(1);
+  EXPECT_CALL(*single_field_form_fill_router(), CancelPendingQueries).Times(1);
   browser_autofill_manager_.reset();
 }
 
@@ -8140,7 +8109,7 @@
   // Should call the delegate's OnQuery().
   GetAutofillSuggestions(form, form.fields[0]);
 
-  EXPECT_TRUE(external_delegate_->on_query_seen());
+  EXPECT_TRUE(external_delegate()->on_query_seen());
 }
 
 // Test that unfocusing a filled form sends an upload with types matching the
@@ -8323,14 +8292,14 @@
 
   // Suggestions should be returned for the first two fields
   GetAutofillSuggestions(form, form.fields[0]);
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
   GetAutofillSuggestions(form, form.fields[1]);
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 
   // Suggestions should still be returned for the third field because it is a
   // credit card field.
   GetAutofillSuggestions(form, form.fields[2]);
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test to verify suggestions appears for forms having credit card number split
@@ -8401,7 +8370,7 @@
 // !should_autocomplete for SingleFieldFormFillRouter::OnWillSubmitForm.
 TEST_F(BrowserAutofillManagerTest, DontSaveCvcInAutocompleteHistory) {
   FormData form_seen_by_ahm;
-  EXPECT_CALL(*single_field_form_fill_router_, OnWillSubmitForm(_, _, true))
+  EXPECT_CALL(*single_field_form_fill_router(), OnWillSubmitForm(_, _, true))
       .WillOnce(SaveArg<0>(&form_seen_by_ahm));
 
   FormData form;
@@ -8506,7 +8475,7 @@
   GetAutofillSuggestions(form, field);
   // Expect no suggestions as autofill and autocomplete are disabled for
   // addresses.
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 TEST_F(BrowserAutofillManagerTest, CreditCardDisabledDoesNotFillFormData) {
@@ -8535,7 +8504,7 @@
   GetAutofillSuggestions(form, field);
   // Expect no suggestions as autofill and autocomplete are disabled for credit
   // cards.
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Verify that typing "gmail" matches "theking@gmail.com" and "buddy@gmail.com"
@@ -8641,7 +8610,7 @@
   FormFieldData field;
   test::CreateTestFormField("Email", "email", "mail", "email", &field);
   GetAutofillSuggestions(form, field);
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Verify that typing "dre" matches "Nancy Drew" when substring matching is
@@ -8706,7 +8675,7 @@
                             &field);
   GetAutofillSuggestions(form, field);
   // Autocomplete suggestions are queried, but not Autofill.
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 TEST_F(BrowserAutofillManagerTest, GetPopupType_CreditCardForm) {
@@ -8891,12 +8860,12 @@
   // Suggestions should be displayed on desktop for this field in all
   // circumstances.
   GetAutofillSuggestions(mixed_form, mixed_form.fields[0]);
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 
   // Suggestions should always be displayed for all the other fields.
   for (size_t i = 1U; i < mixed_form.fields.size(); ++i) {
     GetAutofillSuggestions(mixed_form, mixed_form.fields[i]);
-    EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+    EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
   }
 }
 
@@ -8930,11 +8899,11 @@
     // know autocomplete must be the single field form filler in this case due
     // to the field not having a type that would route to any of the other
     // single field form fillers.
-    ON_CALL(*single_field_form_fill_router_, OnGetSingleFieldSuggestions)
+    ON_CALL(*single_field_form_fill_router(), OnGetSingleFieldSuggestions)
         .WillByDefault(testing::Return(mixed_form_field.should_autocomplete));
     GetAutofillSuggestions(mixed_form, mixed_form_field);
 
-    EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+    EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
   }
 }
 
@@ -8975,7 +8944,7 @@
   // Make sure the form can be autofilled.
   for (const FormFieldData& form_field : form.fields) {
     GetAutofillSuggestions(form, form_field);
-    ASSERT_TRUE(external_delegate_->on_suggestions_returned_seen());
+    ASSERT_TRUE(external_delegate()->on_suggestions_returned_seen());
   }
 
   // Modify one of the fields in the original form.
@@ -8984,7 +8953,7 @@
   // Expect the form still can be autofilled.
   for (const FormFieldData& form_field : form.fields) {
     GetAutofillSuggestions(form, form_field);
-    EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+    EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
   }
 
   // Modify form action URL. This can happen on in-page navigation if the form
@@ -8994,7 +8963,7 @@
   // Expect the form still can be autofilled.
   for (const FormFieldData& form_field : form.fields) {
     GetAutofillSuggestions(form, form_field);
-    EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+    EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
   }
 }
 
@@ -9012,7 +8981,7 @@
   GetAutofillSuggestions(form, form.fields[1]);
 
   // Test that we sent the right values to the external delegate.
-  ASSERT_TRUE(external_delegate_->is_all_server_suggestions());
+  ASSERT_TRUE(external_delegate()->is_all_server_suggestions());
 }
 
 // Test that is_all_server_suggestions is false if there is at least one
@@ -9032,7 +9001,7 @@
   GetAutofillSuggestions(form, form.fields[1]);
 
   // Test that we sent the right values to the external delegate.
-  ASSERT_FALSE(external_delegate_->is_all_server_suggestions());
+  ASSERT_FALSE(external_delegate()->is_all_server_suggestions());
 }
 
 // Test that is_all_server_suggestions is false if there is at least one
@@ -9052,7 +9021,7 @@
   GetAutofillSuggestions(form, form.fields[1]);
 
   // Test that we sent the right values to the external delegate.
-  ASSERT_FALSE(external_delegate_->is_all_server_suggestions());
+  ASSERT_FALSE(external_delegate()->is_all_server_suggestions());
 }
 
 TEST_F(BrowserAutofillManagerTest, GetCreditCardSuggestions_VirtualCard) {
@@ -9134,8 +9103,7 @@
 
   // We reset `browser_autofill_manager_` here so that `autofill_client_`
   // initializes `autofill_optimization_guide` in `browser_autofill_manager_`.
-  browser_autofill_manager_ = std::make_unique<TestBrowserAutofillManager>(
-      autofill_driver_.get(), &autofill_client_);
+  ResetBrowserAutofillManager();
   EXPECT_CALL(autofill_optimization_guide, OnDidParseForm).Times(1);
 
   test_api(*browser_autofill_manager_)
@@ -10220,7 +10188,7 @@
   GetAutofillSuggestions(form, form.fields[0]);
 
   // Check there is no warning.
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that we dismiss the mixed form warning if user starts typing.
@@ -10246,7 +10214,7 @@
   form.fields[0].value = u"Michael";
   form.fields[0].properties_mask |= kUserTyped;
   GetAutofillSuggestions(form, form.fields[0]);
-  external_delegate_->CheckNoSuggestions(form.fields[0].global_id());
+  external_delegate()->CheckNoSuggestions(form.fields[0].global_id());
 }
 
 // Test that we don't treat javascript scheme target URLs as mixed forms.
@@ -10263,7 +10231,7 @@
   GetAutofillSuggestions(form, form.fields[0]);
 
   // Check there is no warning.
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that we don't treat about:blank target URLs as mixed forms.
@@ -10279,7 +10247,7 @@
   GetAutofillSuggestions(form, form.fields[0]);
 
   // Check there is no warning.
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that the Autofill does not override input field values that were already
@@ -10445,19 +10413,19 @@
   // Not a form element click, Autofill suggestions shown.
   EXPECT_CALL(touch_to_fill_delegate(), TryToShowTouchToFill).Times(0);
   TryToShowTouchToFill(form, field, /*form_element_was_clicked=*/false);
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 
   // TTF not available, Autofill suggestions shown.
   EXPECT_CALL(touch_to_fill_delegate(), TryToShowTouchToFill)
       .WillOnce(Return(false));
   TryToShowTouchToFill(form, field, /*form_element_was_clicked=*/true);
-  EXPECT_TRUE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_TRUE(external_delegate()->on_suggestions_returned_seen());
 
   // A form element click and TTF available, Autofill suggestions not shown.
   EXPECT_CALL(touch_to_fill_delegate(), TryToShowTouchToFill)
       .WillOnce(Return(true));
   TryToShowTouchToFill(form, field, /*form_element_was_clicked=*/true);
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Tests that neither Autofill suggestions nor TTF is triggered if TTF is
@@ -10473,7 +10441,7 @@
       .WillOnce(Return(true));
   EXPECT_CALL(touch_to_fill_delegate(), TryToShowTouchToFill).Times(0);
   TryToShowTouchToFill(form, field, /*form_element_was_clicked=*/true);
-  EXPECT_FALSE(external_delegate_->on_suggestions_returned_seen());
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
 }
 
 // Test that 'Scan New Card' suggestion is shown based on whether autofill
@@ -10697,6 +10665,35 @@
             absl::nullopt);
 }
 
+// Ensure that the experimental plus_addresses feature is not shown by default.
+// This is true even if the PlusAddressService had existing data for the current
+// domain.
+TEST_F(BrowserAutofillManagerTest, NoPlusAddressSuggestionsByDefault) {
+  plus_addresses::PlusAddressService plus_address_service;
+  plus_address_service.SavePlusAddress(
+      autofill_client_.GetLastCommittedPrimaryMainFrameOrigin(),
+      "plus+plus@plus.plus");
+  ON_CALL(autofill_client_, GetPlusAddressService)
+      .WillByDefault(Return(&plus_address_service));
+  // Set up our form data. Notably, the first field is an email address.
+  FormData form = test::GetFormData(
+      {.fields = {{.role = EMAIL_ADDRESS, .autocomplete_attribute = "email"}}});
+  form.name = u"MyForm";
+  form.url = GURL("https://myform.com/form.html");
+  form.action = GURL("https://myform.com/submit.html");
+
+  FormsSeen({form});
+
+  // Check that suggestions are made for the field that has the autocomplete
+  // attribute, and ensure that they are exactly the expected set, with no plus
+  // address data.
+  GetAutofillSuggestions(form, form.fields[0]);
+  CheckSuggestions(
+      form.fields[0].global_id(),
+      Suggestion("buddy@gmail.com", "", "", PopupItemId::kAddressEntry),
+      Suggestion("theking@gmail.com", "", "", PopupItemId::kAddressEntry));
+}
+
 // Desktop only tests.
 #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
 class BrowserAutofillManagerTestForVirtualCardOption
@@ -10749,7 +10746,7 @@
   }
 
   void VerifyNoVirtualCardSuggestions(FieldGlobalId field_id) {
-    external_delegate_->CheckSuggestionCount(field_id, 1);
+    external_delegate()->CheckSuggestionCount(field_id, 1);
     // Suggestion details need to match the credit card added in the SetUp()
     // above.
     CheckSuggestions(field_id, Suggestion(std::string("Visa  ") +
@@ -10781,7 +10778,7 @@
   browser_autofill_manager_->SetAutofillCreditCardEnabled(autofill_client_,
                                                           false);
   FieldGlobalId field_id = CreateCompleteFormAndGetSuggestions();
-  external_delegate_->CheckSuggestionCount(field_id, 0);
+  external_delegate()->CheckSuggestionCount(field_id, 0);
 }
 
 // Ensures the "Use a virtual card number" option should not be shown when
@@ -10819,7 +10816,7 @@
   FormsSeen({form});
   GetAutofillSuggestions(form, form.fields[0]);  // Cardholder name field.
 
-  external_delegate_->CheckSuggestionCount(form.fields[0].global_id(), 1);
+  external_delegate()->CheckSuggestionCount(form.fields[0].global_id(), 1);
   const std::string visa_label = base::JoinString(
       {"Visa  ", test::ObfuscatedCardDigitsAsUTF8("3456", ObfuscationLength()),
        ", expires on 04/99"},
@@ -10909,7 +10906,7 @@
   FieldGlobalId field_id = CreateCompleteFormAndGetSuggestions();
 
   // Ensures the card suggestion and the virtual card suggestion are shown.
-  external_delegate_->CheckSuggestionCount(field_id, 2);
+  external_delegate()->CheckSuggestionCount(field_id, 2);
   CheckSuggestions(
       field_id,
       Suggestion(std::string("Visa  ") + test::ObfuscatedCardDigitsAsUTF8(
@@ -10948,7 +10945,7 @@
   FieldGlobalId field_id = CreateCompleteFormAndGetSuggestions();
 
   // Ensures the card suggestion and the virtual card suggestion are shown.
-  external_delegate_->CheckSuggestionCount(field_id, 3);
+  external_delegate()->CheckSuggestionCount(field_id, 3);
   CheckSuggestions(
       field_id,
       Suggestion(std::string("Visa  ") + test::ObfuscatedCardDigitsAsUTF8(
@@ -10974,11 +10971,12 @@
     BrowserAutofillManagerTest::SetUp();
 
     has_active_screen_reader_ = GetParam();
-    external_delegate_->set_has_active_screen_reader(has_active_screen_reader_);
+    external_delegate()->set_has_active_screen_reader(
+        has_active_screen_reader_);
   }
 
   void TearDown() override {
-    external_delegate_->set_has_active_screen_reader(false);
+    external_delegate()->set_has_active_screen_reader(false);
     BrowserAutofillManagerTest::TearDown();
   }
 
@@ -10989,16 +10987,16 @@
     // Thus, if the platform is ChromeOS, we assume that ChromeVox is in use at
     // this point in the code.
     EXPECT_EQ(true,
-              external_delegate_->has_suggestions_available_on_field_focus());
+              external_delegate()->has_suggestions_available_on_field_focus());
 #else
     EXPECT_EQ(has_active_screen_reader_,
-              external_delegate_->has_suggestions_available_on_field_focus());
+              external_delegate()->has_suggestions_available_on_field_focus());
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
   }
 
   void CheckNoSuggestionsAvailableOnFieldFocus() {
     EXPECT_FALSE(
-        external_delegate_->has_suggestions_available_on_field_focus());
+        external_delegate()->has_suggestions_available_on_field_focus());
   }
 
   bool has_active_screen_reader_;
@@ -11493,8 +11491,7 @@
     BrowserAutofillManagerTest::SetUp();
 
     // All uploads should be expected explicitly.
-    EXPECT_CALL(*download_manager_, StartUploadRequest(_, _, _, _, _, _, _))
-        .Times(0);
+    EXPECT_CALL(*download_manager(), StartUploadRequest).Times(0);
 
     form_.name = u"MyForm";
     form_.url = GURL("https://myform.com/form.html");
@@ -11531,7 +11528,7 @@
 
   // Ensure that vote is submitted after form submission.
   EXPECT_CALL(
-      *download_manager_,
+      *download_manager(),
       StartUploadRequest(AllOf(SignatureIs(CalculateFormSignature(form_)),
                                UploadedAutofillTypesAre(expected_vote_types)),
                          _, _, _, /*observed_submission=*/true, _, _))
@@ -11564,7 +11561,7 @@
         ServerFieldType::NAME_LAST_SECOND}},
   };
   EXPECT_CALL(
-      *download_manager_,
+      *download_manager(),
       StartUploadRequest(AllOf(SignatureIs(first_form_signature),
                                UploadedAutofillTypesAre(expected_vote_types)),
                          _, _, _, /*observed_submission=*/false, _, _))
@@ -11591,7 +11588,7 @@
       {u"zip", {ServerFieldType::EMPTY_TYPE}},
   };
   EXPECT_CALL(
-      *download_manager_,
+      *download_manager(),
       StartUploadRequest(AllOf(SignatureIs(second_form_signature),
                                UploadedAutofillTypesAre(expected_vote_types)),
                          _, _, _,
@@ -11611,7 +11608,7 @@
       {u"lastname", {ServerFieldType::EMPTY_TYPE}},
   };
   EXPECT_CALL(
-      *download_manager_,
+      *download_manager(),
       StartUploadRequest(AllOf(SignatureIs(CalculateFormSignature(form_)),
                                UploadedAutofillTypesAre(expected_vote_types)),
                          _, _, _, /*observed_submission=*/false, _, _))
@@ -11638,7 +11635,7 @@
   browser_autofill_manager_->OnFocusNoLongerOnForm(true);
 
   EXPECT_CALL(
-      *download_manager_,
+      *download_manager(),
       StartUploadRequest(AllOf(SignatureIs(CalculateFormSignature(form_)),
                                UploadedAutofillTypesAre(expected_vote_types)),
                          _, _, _, /*observed_submission=*/true, _, _))
@@ -11646,4 +11643,101 @@
   FormSubmitted(form_);
 }
 
+class BrowserAutofillManagerPlusAddressTest
+    : public BrowserAutofillManagerTest {
+ protected:
+  void SetUp() override {
+    BrowserAutofillManagerTest::SetUp();
+    mock_plus_address_service_ =
+        std::make_unique<NiceMock<MockPlusAddressService>>();
+    ON_CALL(*mock_plus_address_service_, SupportsPlusAddresses)
+        .WillByDefault(Return(true));
+    ON_CALL(autofill_client_, GetPlusAddressService)
+        .WillByDefault(Return(mock_plus_address_service_.get()));
+  }
+  std::unique_ptr<NiceMock<MockPlusAddressService>> mock_plus_address_service_;
+  base::test::ScopedFeatureList features_{plus_addresses::kFeature};
+};
+
+// Ensure that plus address options aren't shown unexpectedly.
+TEST_F(BrowserAutofillManagerPlusAddressTest, NoPlusAddressesWithNameFields) {
+  // Set up our form data.
+  FormData form = test::GetFormData(
+      {.fields = {{.role = NAME_FIRST, .autocomplete_attribute = "given-name"},
+                  {.role = NAME_LAST}}});
+  form.name = u"MyForm";
+  form.url = GURL("https://myform.com/form.html");
+  form.action = GURL("https://myform.com/submit.html");
+
+  FormsSeen({form});
+
+  // Check that suggestions are made for the field that has the autocomplete
+  // attribute. Ensure that, despite enabling the plus addresses feature, there
+  // is no plus address option shown, because those options are only applicable
+  // to email fields.
+  GetAutofillSuggestions(form, form.fields[0]);
+  CheckSuggestions(form.fields[0].global_id(),
+                   Suggestion("Charles", "", "", PopupItemId::kAddressEntry),
+                   Suggestion("Elvis", "", "", PopupItemId::kAddressEntry));
+
+  // Also check that there are no suggestions for the field without the
+  // autocomplete attribute, ensuring that unrecognized fields don't get plus
+  // address options.
+  GetAutofillSuggestions(form, form.fields[1]);
+  EXPECT_FALSE(external_delegate()->on_suggestions_returned_seen());
+}
+
+// Ensure that existing plus addresses are offered.
+TEST_F(BrowserAutofillManagerPlusAddressTest, PlusAddressSuggestionShown) {
+  plus_addresses::PlusAddressService* plus_address_service =
+      autofill_client_.GetPlusAddressService();
+  plus_address_service->SavePlusAddress(
+      autofill_client_.GetLastCommittedPrimaryMainFrameOrigin(),
+      "plus+plus@plus.plus");
+  // Set up our form data. Notably, the first field is an email address.
+  FormData form = test::GetFormData(
+      {.fields = {{.role = EMAIL_ADDRESS, .autocomplete_attribute = "email"}}});
+  form.name = u"MyForm";
+  form.url = GURL("https://myform.com/form.html");
+  form.action = GURL("https://myform.com/submit.html");
+  FormsSeen({form});
+
+  // Check that suggestions are made for the field that has the autocomplete
+  // attribute, and ensure that they are exactly the expected set.
+  GetAutofillSuggestions(form, form.fields[0]);
+  CheckSuggestions(
+      form.fields[0].global_id(),
+      Suggestion("buddy@gmail.com", "", "", PopupItemId::kAddressEntry),
+      Suggestion("theking@gmail.com", "", "", PopupItemId::kAddressEntry),
+      Suggestion("plus+plus@plus.plus", "", "",
+                 PopupItemId::kFillExistingPlusAddress));
+}
+
+// Ensure that email fields without existing plus addresses for the domain, but
+// with the feature enabled, still offer creation of a new plus address.
+TEST_F(BrowserAutofillManagerPlusAddressTest,
+       CreatePlusAddressSuggestionShown) {
+  plus_addresses::PlusAddressService* plus_address_service =
+      autofill_client_.GetPlusAddressService();
+  // Set up our form data. Notably, the first field is an email address.
+  FormData form = test::GetFormData(
+      {.fields = {{.role = EMAIL_ADDRESS, .autocomplete_attribute = "email"}}});
+  form.name = u"MyForm";
+  form.url = GURL("https://myform.com/form.html");
+  form.action = GURL("https://myform.com/submit.html");
+
+  FormsSeen({form});
+
+  // Check that suggestions are made for the field that has the autocomplete
+  // attribute, and ensure that they are exactly the expected set.
+  GetAutofillSuggestions(form, form.fields[0]);
+  CheckSuggestions(
+      form.fields[0].global_id(),
+      Suggestion("buddy@gmail.com", "", "", PopupItemId::kAddressEntry),
+      Suggestion("theking@gmail.com", "", "", PopupItemId::kAddressEntry),
+      Suggestion(
+          base::UTF16ToUTF8(plus_address_service->GetCreateSuggestionLabel()),
+          "", "", PopupItemId::kCreateNewPlusAddress));
+}
+
 }  // namespace autofill
diff --git a/components/autofill/core/browser/data_model/autofill_i18n_api.cc b/components/autofill/core/browser/data_model/autofill_i18n_api.cc
index 0bf0426f..67d2546 100644
--- a/components/autofill/core/browser/data_model/autofill_i18n_api.cc
+++ b/components/autofill/core/browser/data_model/autofill_i18n_api.cc
@@ -4,6 +4,8 @@
 
 #include "components/autofill/core/browser/data_model/autofill_i18n_api.h"
 
+#include <string>
+
 #include "base/containers/flat_map.h"
 #include "base/notreached.h"
 #include "base/strings/utf_string_conversions.h"
@@ -11,6 +13,7 @@
 #include "components/autofill/core/browser/data_model/autofill_i18n_formatting_expressions.h"
 #include "components/autofill/core/browser/data_model/autofill_i18n_hierarchies.h"
 #include "components/autofill/core/browser/data_model/autofill_structured_address.h"
+#include "components/autofill/core/browser/data_model/autofill_structured_address_format_provider.h"
 #include "components/autofill/core/browser/data_model/autofill_structured_address_name.h"
 #include "components/autofill/core/browser/data_model/autofill_structured_address_utils.h"
 #include "components/autofill/core/browser/field_types.h"
@@ -94,10 +97,16 @@
   return result;
 }
 
-std::u16string_view GetFormattingExpression(ServerFieldType field_type,
-                                            std::string_view country_code) {
-  auto* it = kAutofillFormattingRulesMap.find({country_code, field_type});
-  return it != kAutofillFormattingRulesMap.end() ? it->second : u"";
+std::u16string GetFormattingExpression(ServerFieldType field_type,
+                                       std::string_view country_code) {
+  if (auto* it = kAutofillFormattingRulesMap.find({country_code, field_type});
+      it != kAutofillFormattingRulesMap.end()) {
+    return std::u16string(it->second);
+  }
+  // TODO(crbug/1464568): Add new address format rules that override all the
+  // legacy ones.
+  return StructuredAddressesFormatProvider::GetInstance()->GetPattern(
+      field_type, country_code);
 }
 
 }  // namespace autofill::i18n_model_definition
diff --git a/components/autofill/core/browser/data_model/autofill_i18n_api.h b/components/autofill/core/browser/data_model/autofill_i18n_api.h
index 79e71f4..4edabb4 100644
--- a/components/autofill/core/browser/data_model/autofill_i18n_api.h
+++ b/components/autofill/core/browser/data_model/autofill_i18n_api.h
@@ -24,8 +24,8 @@
 
 // Returns the formatting expression corresponding to the provided parameters.
 // If the expression can't be found, an empty string is returned.
-std::u16string_view GetFormattingExpression(ServerFieldType field_type,
-                                            std::string_view country_code);
+std::u16string GetFormattingExpression(ServerFieldType field_type,
+                                       std::string_view country_code);
 
 }  // namespace autofill::i18n_model_definition
 
diff --git a/components/autofill/core/browser/data_model/autofill_i18n_api_unittest.cc b/components/autofill/core/browser/data_model/autofill_i18n_api_unittest.cc
index 3bb3475..86dd15c 100644
--- a/components/autofill/core/browser/data_model/autofill_i18n_api_unittest.cc
+++ b/components/autofill/core/browser/data_model/autofill_i18n_api_unittest.cc
@@ -4,11 +4,15 @@
 
 #include "components/autofill/core/browser/data_model/autofill_i18n_api.h"
 
+#include <string>
+#include <type_traits>
+
 #include "base/ranges/algorithm.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/scoped_feature_list.h"
 #include "components/autofill/core/browser/data_model/autofill_i18n_formatting_expressions.h"
 #include "components/autofill/core/browser/data_model/autofill_structured_address.h"
+#include "components/autofill/core/browser/data_model/autofill_structured_address_format_provider.h"
 #include "components/autofill/core/browser/data_model/autofill_structured_address_name.h"
 #include "components/autofill/core/browser/field_types.h"
 #include "components/autofill/core/browser/geo/country_data.h"
@@ -133,16 +137,20 @@
 TEST(AutofillI18nApi, GetFormattingExpressions) {
   CountryDataMap* country_data_map = CountryDataMap::GetInstance();
   for (const std::string& country_code : country_data_map->country_codes()) {
-    for (int i = 0; i < MAX_VALID_FIELD_TYPE; ++i) {
-      if (ServerFieldType raw_value = static_cast<ServerFieldType>(i);
-          ToSafeServerFieldType(raw_value, NO_SERVER_DATA) != NO_SERVER_DATA) {
-        auto* it = kAutofillFormattingRulesMap.find({country_code, raw_value});
+    for (std::underlying_type_t<ServerFieldType> i = 0;
+         i < MAX_VALID_FIELD_TYPE; ++i) {
+      if (ServerFieldType field_type = ToSafeServerFieldType(i, NO_SERVER_DATA);
+          field_type != NO_SERVER_DATA) {
+        auto* it = kAutofillFormattingRulesMap.find({country_code, field_type});
         // The expected value is contained in `kAutofillFormattingRulesMap`. If
-        // no entry is found, an empty string is expected.
-        std::u16string_view expected =
-            it != kAutofillFormattingRulesMap.end() ? it->second : u"";
+        // no entry is found, it is expected to fallback to the legacy string.
+        std::u16string expected =
+            it != kAutofillFormattingRulesMap.end()
+                ? std::u16string(it->second)
+                : StructuredAddressesFormatProvider::GetInstance()->GetPattern(
+                      field_type, country_code);
 
-        EXPECT_EQ(i18n_model_definition::GetFormattingExpression(raw_value,
+        EXPECT_EQ(i18n_model_definition::GetFormattingExpression(field_type,
                                                                  country_code),
                   expected);
       }
diff --git a/components/autofill/core/browser/data_model/autofill_profile_unittest.cc b/components/autofill/core/browser/data_model/autofill_profile_unittest.cc
index 5caac74..4c6032f 100644
--- a/components/autofill/core/browser/data_model/autofill_profile_unittest.cc
+++ b/components/autofill/core/browser/data_model/autofill_profile_unittest.cc
@@ -21,6 +21,7 @@
 #include "components/autofill/core/browser/data_model/autofill_profile_comparator.h"
 #include "components/autofill/core/browser/field_types.h"
 #include "components/autofill/core/browser/profile_token_quality.h"
+#include "components/autofill/core/browser/profile_token_quality_test_api.h"
 #include "components/autofill/core/browser/test_autofill_clock.h"
 #include "components/autofill/core/browser/test_utils/test_profiles.h"
 #include "components/autofill/core/common/autofill_clock.h"
@@ -1093,15 +1094,15 @@
   // Set the same state for both profiles. Expect that a's quality will be kept.
   a.SetRawInfo(ADDRESS_HOME_STATE, u"TX");
   b.SetRawInfo(ADDRESS_HOME_STATE, u"TX");
-  a.token_quality().AddObservationForTesting(ADDRESS_HOME_STATE,
-                                             ObservationType::kAccepted);
-  b.token_quality().AddObservationForTesting(ADDRESS_HOME_STATE,
-                                             ObservationType::kEditedFallback);
+  test_api(a.token_quality())
+      .AddObservation(ADDRESS_HOME_STATE, ObservationType::kAccepted);
+  test_api(b.token_quality())
+      .AddObservation(ADDRESS_HOME_STATE, ObservationType::kEditedFallback);
 
   // Only set a city for b. Expect that its quality is carried over.
   b.SetRawInfo(ADDRESS_HOME_CITY, u"City");
-  b.token_quality().AddObservationForTesting(ADDRESS_HOME_CITY,
-                                             ObservationType::kAccepted);
+  test_api(b.token_quality())
+      .AddObservation(ADDRESS_HOME_CITY, ObservationType::kAccepted);
 
   // Finalize, merge and verify expectations.
   a.FinalizeAfterImport();
diff --git a/components/autofill/core/browser/data_model/autofill_structured_address_component.cc b/components/autofill/core/browser/data_model/autofill_structured_address_component.cc
index 0a33d46..3532869 100644
--- a/components/autofill/core/browser/data_model/autofill_structured_address_component.cc
+++ b/components/autofill/core/browser/data_model/autofill_structured_address_component.cc
@@ -258,8 +258,8 @@
 
   std::u16string result =
       base::FeatureList::IsEnabled(features::kAutofillUseI18nAddressModel)
-          ? std::u16string(i18n_model_definition::GetFormattingExpression(
-                GetStorageType(), country_code))
+          ? i18n_model_definition::GetFormattingExpression(GetStorageType(),
+                                                           country_code)
           : pattern_provider->GetPattern(GetStorageType(), country_code);
   if (!result.empty()) {
     return result;
diff --git a/components/autofill/core/browser/data_model/autofill_structured_address_format_provider.cc b/components/autofill/core/browser/data_model/autofill_structured_address_format_provider.cc
index 7d43bc0..f07fb108 100644
--- a/components/autofill/core/browser/data_model/autofill_structured_address_format_provider.cc
+++ b/components/autofill/core/browser/data_model/autofill_structured_address_format_provider.cc
@@ -4,6 +4,8 @@
 
 #include "components/autofill/core/browser/data_model/autofill_structured_address_format_provider.h"
 
+#include <string>
+
 #include "base/containers/fixed_flat_map.h"
 #include "base/no_destructor.h"
 
@@ -11,9 +13,9 @@
 
 namespace {
 
-std::u16string GetHomeStreetAddressPattern(const std::string& country_code) {
+std::u16string GetHomeStreetAddressPattern(std::string_view country_code) {
   static constexpr auto kHomeStreetAddressCountryMap = base::MakeFixedFlatMap<
-      base::StringPiece, base::StringPiece16>(
+      std::string_view, std::u16string_view>(
       {{"BR",
         u"${ADDRESS_HOME_STREET_NAME}${ADDRESS_HOME_HOUSE_NUMBER;, }"
         u"${ADDRESS_HOME_FLOOR;, ;º andar}${ADDRESS_HOME_APT_NUM;, apto ;}"},
@@ -28,8 +30,8 @@
         u"${ADDRESS_HOME_STREET_NAME} ${ADDRESS_HOME_HOUSE_NUMBER}"
         u"${ADDRESS_HOME_FLOOR;, ;º}${ADDRESS_HOME_APT_NUM;, ;ª}"}});
 
-  auto* it = kHomeStreetAddressCountryMap.find(country_code);
-  if (it != kHomeStreetAddressCountryMap.end()) {
+  if (auto* it = kHomeStreetAddressCountryMap.find(country_code);
+      it != kHomeStreetAddressCountryMap.end()) {
     return std::u16string(it->second);
   }
 
@@ -60,7 +62,7 @@
 
 std::u16string StructuredAddressesFormatProvider::GetPattern(
     ServerFieldType type,
-    const std::string& country_code,
+    std::string_view country_code,
     const ContextInfo& info) const {
   switch (type) {
     case ADDRESS_HOME_STREET_ADDRESS:
diff --git a/components/autofill/core/browser/data_model/autofill_structured_address_format_provider.h b/components/autofill/core/browser/data_model/autofill_structured_address_format_provider.h
index 26da43e..d874d6b 100644
--- a/components/autofill/core/browser/data_model/autofill_structured_address_format_provider.h
+++ b/components/autofill/core/browser/data_model/autofill_structured_address_format_provider.h
@@ -33,7 +33,7 @@
   // Returns the formatting expression corresponding to the provided parameters.
   // If the expression can't be found, an empty string is returned.
   std::u16string GetPattern(ServerFieldType type,
-                            const std::string& country_code,
+                            std::string_view country_code,
                             const ContextInfo& info = ContextInfo()) const;
 
  private:
diff --git a/components/autofill/core/browser/profile_token_quality.cc b/components/autofill/core/browser/profile_token_quality.cc
index 6e27e7c..f8ff3cf 100644
--- a/components/autofill/core/browser/profile_token_quality.cc
+++ b/components/autofill/core/browser/profile_token_quality.cc
@@ -11,6 +11,7 @@
 #include <vector>
 
 #include "base/check.h"
+#include "base/check_deref.h"
 #include "base/containers/circular_deque.h"
 #include "base/containers/contains.h"
 #include "base/containers/cxx20_erase.h"
@@ -194,9 +195,7 @@
 }  // namespace
 
 ProfileTokenQuality::ProfileTokenQuality(AutofillProfile* profile)
-    : profile_(profile) {
-  CHECK(profile);
-}
+    : profile_(CHECK_DEREF(profile)) {}
 
 ProfileTokenQuality::ProfileTokenQuality(const ProfileTokenQuality& other) =
     default;
@@ -276,12 +275,6 @@
   }
 }
 
-void ProfileTokenQuality::AddObservationForTesting(
-    ServerFieldType field_type,
-    ObservationType observation_type) {
-  AddObservation(field_type, Observation{.type = observation_type});
-}
-
 std::vector<ObservationType>
 ProfileTokenQuality::GetObservationTypesForFieldType(
     ServerFieldType type) const {
diff --git a/components/autofill/core/browser/profile_token_quality.h b/components/autofill/core/browser/profile_token_quality.h
index 666e357..8083410 100644
--- a/components/autofill/core/browser/profile_token_quality.h
+++ b/components/autofill/core/browser/profile_token_quality.h
@@ -12,9 +12,9 @@
 #include <utility>
 #include <vector>
 
-#include "base/allocator/partition_allocator/pointers/raw_ptr.h"
 #include "base/containers/circular_deque.h"
 #include "base/containers/flat_map.h"
+#include "base/memory/raw_ref.h"
 #include "base/types/strong_alias.h"
 #include "components/autofill/core/browser/field_types.h"
 #include "components/autofill/core/common/form_data.h"
@@ -129,9 +129,6 @@
       const FormData& form_data,
       PersonalDataManager& pdm);
 
-  void AddObservationForTesting(ServerFieldType field_type,
-                                ObservationType observation_type);
-
   // Returns all `ObservationType`s available for the `type`. The resulting
   // vector has at most `kMaxNumberOfObservations` items. It is guaranteed that
   // no observation type is `kNone`.
@@ -142,7 +139,7 @@
 
   void set_profile(AutofillProfile* profile) {
     CHECK(profile);
-    profile_ = profile;
+    profile_ = *profile;
   }
 
   // Copy the observations for the `type` from `other`.
@@ -162,6 +159,8 @@
   }
 
  private:
+  friend class ProfileTokenQualityTestApi;
+
   // For every form and stored type, at most a single observation is stored
   // (among the `kMaxObservationsPerToken` observations stored in total).
   // To track for which forms an observation was already collected,
@@ -214,8 +213,8 @@
       const std::vector<AutofillProfile*>& other_profiles,
       const std::string& app_locale) const;
 
-  // The profile for which observations are collected. Not null.
-  base::raw_ptr<AutofillProfile> profile_;
+  // The profile for which observations are collected.
+  base::raw_ref<AutofillProfile> profile_;
 
   // Maps from `AutofillTable::GetStoredTypesForAutofillProfile()` to the
   // observations for this stored type. The following invariants hold for the
diff --git a/components/autofill/core/browser/profile_token_quality_test_api.cc b/components/autofill/core/browser/profile_token_quality_test_api.cc
new file mode 100644
index 0000000..6513475a
--- /dev/null
+++ b/components/autofill/core/browser/profile_token_quality_test_api.cc
@@ -0,0 +1,48 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/autofill/core/browser/profile_token_quality_test_api.h"
+
+#include <vector>
+
+#include "base/check.h"
+#include "components/autofill/core/browser/field_types.h"
+#include "components/autofill/core/browser/profile_token_quality.h"
+
+namespace autofill {
+
+ProfileTokenQualityTestApi::ProfileTokenQualityTestApi(
+    ProfileTokenQuality* quality)
+    : quality_(*quality) {}
+
+void ProfileTokenQualityTestApi::AddObservation(
+    ServerFieldType field_type,
+    ProfileTokenQuality::ObservationType observation_type) {
+  AddObservation(field_type, observation_type, FormSignatureHash(0));
+}
+
+void ProfileTokenQualityTestApi::AddObservation(
+    ServerFieldType field_type,
+    ProfileTokenQuality::ObservationType observation_type,
+    FormSignatureHash hash) {
+  quality_->AddObservation(
+      field_type, ProfileTokenQuality::Observation{.type = observation_type,
+                                                   .form_hash = hash});
+}
+
+std::vector<ProfileTokenQualityTestApi::FormSignatureHash>
+ProfileTokenQualityTestApi::GetHashesForStoredType(ServerFieldType type) const {
+  CHECK(ProfileTokenQuality::IsStoredType(type));
+  auto it = quality_->observations_.find(type);
+  if (it == quality_->observations_.end()) {
+    return {};
+  }
+  std::vector<FormSignatureHash> hashes;
+  for (const ProfileTokenQuality::Observation& observation : it->second) {
+    hashes.push_back(observation.form_hash);
+  }
+  return hashes;
+}
+
+}  // namespace autofill
diff --git a/components/autofill/core/browser/profile_token_quality_test_api.h b/components/autofill/core/browser/profile_token_quality_test_api.h
new file mode 100644
index 0000000..809af8b
--- /dev/null
+++ b/components/autofill/core/browser/profile_token_quality_test_api.h
@@ -0,0 +1,42 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PROFILE_TOKEN_QUALITY_TEST_API_H_
+#define COMPONENTS_AUTOFILL_CORE_BROWSER_PROFILE_TOKEN_QUALITY_TEST_API_H_
+
+#include <vector>
+
+#include "base/memory/raw_ref.h"
+#include "components/autofill/core/browser/profile_token_quality.h"
+
+namespace autofill {
+
+// Exposes some testing operations for `ProfileTokenQuality`.
+class ProfileTokenQualityTestApi {
+ public:
+  using FormSignatureHash = ProfileTokenQuality::FormSignatureHash;
+
+  explicit ProfileTokenQualityTestApi(ProfileTokenQuality* quality);
+
+  void AddObservation(ServerFieldType field_type,
+                      ProfileTokenQuality::ObservationType observation_type);
+
+  void AddObservation(ServerFieldType field_type,
+                      ProfileTokenQuality::ObservationType observation_type,
+                      FormSignatureHash hash);
+
+  std::vector<FormSignatureHash> GetHashesForStoredType(
+      ServerFieldType type) const;
+
+ private:
+  base::raw_ref<ProfileTokenQuality> quality_;
+};
+
+inline ProfileTokenQualityTestApi test_api(ProfileTokenQuality& quality) {
+  return ProfileTokenQualityTestApi(&quality);
+}
+
+}  // namespace autofill
+
+#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_PROFILE_TOKEN_QUALITY_TEST_API_H_
diff --git a/components/autofill/core/browser/profile_token_quality_unittest.cc b/components/autofill/core/browser/profile_token_quality_unittest.cc
index bbff56c..12c147b 100644
--- a/components/autofill/core/browser/profile_token_quality_unittest.cc
+++ b/components/autofill/core/browser/profile_token_quality_unittest.cc
@@ -18,6 +18,7 @@
 #include "components/autofill/core/browser/data_model/autofill_profile.h"
 #include "components/autofill/core/browser/field_types.h"
 #include "components/autofill/core/browser/form_structure.h"
+#include "components/autofill/core/browser/profile_token_quality_test_api.h"
 #include "components/autofill/core/browser/test_autofill_client.h"
 #include "components/autofill/core/browser/test_autofill_driver.h"
 #include "components/autofill/core/browser/test_browser_autofill_manager.h"
@@ -107,7 +108,7 @@
 
   EXPECT_TRUE(quality.GetObservationTypesForFieldType(NAME_FIRST).empty());
 
-  quality.AddObservationForTesting(NAME_FIRST, ObservationType::kAccepted);
+  test_api(quality).AddObservation(NAME_FIRST, ObservationType::kAccepted);
   EXPECT_THAT(quality.GetObservationTypesForFieldType(NAME_FIRST),
               UnorderedElementsAre(ObservationType::kAccepted));
   EXPECT_TRUE(quality.GetObservationTypesForFieldType(NAME_LAST).empty());
@@ -115,7 +116,7 @@
   // Test that if more than `kMaxObservationsPerToken` observations are added,
   // only the first `kMaxObservationsPerToken` are returned.
   for (size_t i = 0; i < ProfileTokenQuality::kMaxObservationsPerToken; i++) {
-    quality.AddObservationForTesting(NAME_FIRST,
+    test_api(quality).AddObservation(NAME_FIRST,
                                      ObservationType::kEditedToSimilarValue);
   }
   EXPECT_THAT(quality.GetObservationTypesForFieldType(NAME_FIRST),
diff --git a/components/autofill/core/browser/ui/popup_item_ids.h b/components/autofill/core/browser/ui/popup_item_ids.h
index e4f8f55..a371d76 100644
--- a/components/autofill/core/browser/ui/popup_item_ids.h
+++ b/components/autofill/core/browser/ui/popup_item_ids.h
@@ -54,6 +54,8 @@
   kWebauthnSignInWithAnotherDevice,
   kIbanEntry,
   kDeleteAddressProfile,
+  kCreateNewPlusAddress,
+  kFillExistingPlusAddress,
 };
 
 // List of `PopupItemId` that trigger filling a value into an input element
diff --git a/components/browsing_topics/browsing_topics_calculator_unittest.cc b/components/browsing_topics/browsing_topics_calculator_unittest.cc
index 7c969cf..1065d17 100644
--- a/components/browsing_topics/browsing_topics_calculator_unittest.cc
+++ b/components/browsing_topics/browsing_topics_calculator_unittest.cc
@@ -880,7 +880,7 @@
   base::test::ScopedFeatureList feature_list;
   feature_list.InitAndEnableFeatureWithParameters(
       blink::features::kBrowsingTopicsParameters,
-      {{"browsing_topics_disabled_topics_list", "6,4"}});
+      {{"disabled_topics_list", "6,4"}});
 
   EpochTopics result = CalculateTopics();
   ExpectResultTopicsEqual(
diff --git a/components/browsing_topics/browsing_topics_service_impl_unittest.cc b/components/browsing_topics/browsing_topics_service_impl_unittest.cc
index d4c07de..63955005 100644
--- a/components/browsing_topics/browsing_topics_service_impl_unittest.cc
+++ b/components/browsing_topics/browsing_topics_service_impl_unittest.cc
@@ -175,7 +175,7 @@
          {blink::features::kBrowsingTopicsParameters,
           {{"time_period_per_epoch",
             base::StrCat({base::NumberToString(kEpoch.InSeconds()), "s"})},
-           {"browsing_topics_max_epoch_introduction_delay",
+           {"max_epoch_introduction_delay",
             base::StrCat(
                 {base::NumberToString(kMaxEpochIntroductionDelay.InSeconds()),
                  "s"})}}}},
@@ -2275,11 +2275,11 @@
        {blink::features::kBrowsingTopicsParameters,
         {{"time_period_per_epoch",
           base::StrCat({base::NumberToString(kEpoch.InSeconds()), "s"})},
-         {"browsing_topics_max_epoch_introduction_delay",
+         {"max_epoch_introduction_delay",
           base::StrCat(
               {base::NumberToString(kMaxEpochIntroductionDelay.InSeconds()),
                "s"})},
-         {"browsing_topics_disabled_topics_list", "20,10,7"}}}},
+         {"disabled_topics_list", "20,10,7"}}}},
       /*disabled_features=*/{});
   InitializeBrowsingTopicsService(std::move(mock_calculator_results));
 
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index 499cb51a..eb5a914 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@
 {
-  "version": "23.14",
-  "log_list_timestamp": "2023-08-10T12:55:21Z",
+  "version": "23.15",
+  "log_list_timestamp": "2023-08-11T12:54:05Z",
   "operators": [
     {
       "name": "Google",
diff --git a/components/commerce/core/shopping_power_bookmark_data_provider.cc b/components/commerce/core/shopping_power_bookmark_data_provider.cc
index d08e574..9c6dadf 100644
--- a/components/commerce/core/shopping_power_bookmark_data_provider.cc
+++ b/components/commerce/core/shopping_power_bookmark_data_provider.cc
@@ -8,8 +8,6 @@
 
 #include "base/functional/bind.h"
 #include "base/memory/weak_ptr.h"
-#include "components/bookmarks/browser/bookmark_model.h"
-#include "components/bookmarks/browser/bookmark_utils.h"
 #include "components/commerce/core/price_tracking_utils.h"
 #include "components/commerce/core/shopping_service.h"
 #include "components/power_bookmarks/core/power_bookmark_service.h"
@@ -22,11 +20,9 @@
 namespace commerce {
 
 ShoppingPowerBookmarkDataProvider::ShoppingPowerBookmarkDataProvider(
-    bookmarks::BookmarkModel* bookmark_model,
     PowerBookmarkService* power_bookmark_service,
     ShoppingService* shopping_service)
-    : bookmark_model_(bookmark_model),
-      power_bookmark_service_(power_bookmark_service),
+    : power_bookmark_service_(power_bookmark_service),
       shopping_service_(shopping_service) {
   power_bookmark_service_->AddDataProvider(this);
 }
diff --git a/components/commerce/core/shopping_power_bookmark_data_provider.h b/components/commerce/core/shopping_power_bookmark_data_provider.h
index 2598a61..5e5cec5 100644
--- a/components/commerce/core/shopping_power_bookmark_data_provider.h
+++ b/components/commerce/core/shopping_power_bookmark_data_provider.h
@@ -8,10 +8,6 @@
 #include "base/memory/raw_ptr.h"
 #include "components/power_bookmarks/core/power_bookmark_data_provider.h"
 
-namespace bookmarks {
-class BookmarkModel;
-}  // namespace bookmarks
-
 namespace power_bookmarks {
 class PowerBookmarkService;
 class PowerBookmarkMeta;
@@ -26,8 +22,7 @@
 class ShoppingPowerBookmarkDataProvider
     : public power_bookmarks::PowerBookmarkDataProvider {
  public:
-  explicit ShoppingPowerBookmarkDataProvider(
-      bookmarks::BookmarkModel* bookmark_model,
+  ShoppingPowerBookmarkDataProvider(
       power_bookmarks::PowerBookmarkService* power_bookmark_service,
       ShoppingService* shopping_service);
   ShoppingPowerBookmarkDataProvider(const ShoppingPowerBookmarkDataProvider&) =
@@ -42,11 +37,10 @@
       power_bookmarks::PowerBookmarkMeta* meta) override;
 
  private:
-  raw_ptr<bookmarks::BookmarkModel> bookmark_model_;
   raw_ptr<power_bookmarks::PowerBookmarkService> power_bookmark_service_;
   raw_ptr<ShoppingService> shopping_service_;
 };
 
 }  // namespace commerce
 
-#endif  // COMPONENTS_COMMERCE_CORE_SHOPPING_POWER_BOOKMARK_DATA_PROVIDER_H_
\ No newline at end of file
+#endif  // COMPONENTS_COMMERCE_CORE_SHOPPING_POWER_BOOKMARK_DATA_PROVIDER_H_
diff --git a/components/commerce/core/shopping_power_bookmark_data_provider_unittest.cc b/components/commerce/core/shopping_power_bookmark_data_provider_unittest.cc
index ea10c7fe..244267c7 100644
--- a/components/commerce/core/shopping_power_bookmark_data_provider_unittest.cc
+++ b/components/commerce/core/shopping_power_bookmark_data_provider_unittest.cc
@@ -39,8 +39,7 @@
     shopping_service_ = std::make_unique<MockShoppingService>();
 
     data_provider_ = std::make_unique<ShoppingPowerBookmarkDataProvider>(
-        bookmark_model_.get(), power_bookmark_service_.get(),
-        shopping_service_.get());
+        power_bookmark_service_.get(), shopping_service_.get());
   }
 
   base::test::TaskEnvironment task_environment_;
diff --git a/components/commerce/core/shopping_service.cc b/components/commerce/core/shopping_service.cc
index 9af305f..e395553 100644
--- a/components/commerce/core/shopping_service.cc
+++ b/components/commerce/core/shopping_service.cc
@@ -164,7 +164,7 @@
     if (power_bookmark_service_ && IsProductInfoApiEnabled()) {
       shopping_power_bookmark_data_provider_ =
           std::make_unique<ShoppingPowerBookmarkDataProvider>(
-              bookmark_model_, power_bookmark_service_, this);
+              power_bookmark_service_, this);
     }
   }
 
diff --git a/components/content_settings/browser/page_specific_content_settings_unittest.cc b/components/content_settings/browser/page_specific_content_settings_unittest.cc
index d18cf077..5d83b07 100644
--- a/components/content_settings/browser/page_specific_content_settings_unittest.cc
+++ b/components/content_settings/browser/page_specific_content_settings_unittest.cc
@@ -71,7 +71,7 @@
   MOCK_METHOD(void, OnContentBlocked, (ContentSettingsType type));
 };
 
-blink::StorageKey CreateFirstPartyStorageKey(const GURL& url) {
+blink::StorageKey CreateUnpartitionedStorageKey(const GURL& url) {
   return blink::StorageKey::CreateFirstParty(url::Origin::Create(url));
 }
 
@@ -471,22 +471,23 @@
                                   blocked_by_policy});
   content_settings->OnStorageAccessed(
       StorageType::FILE_SYSTEM,
-      CreateFirstPartyStorageKey(GURL("https://www.google.com")),
+      CreateUnpartitionedStorageKey(GURL("https://www.google.com")),
       blocked_by_policy);
   content_settings->OnStorageAccessed(
       StorageType::INDEXED_DB,
-      CreateFirstPartyStorageKey(GURL("https://localhost")), blocked_by_policy);
-  content_settings->OnStorageAccessed(
-      StorageType::LOCAL_STORAGE,
-      CreateFirstPartyStorageKey(GURL("http://maps.google.com:8080")),
+      CreateUnpartitionedStorageKey(GURL("https://localhost")),
       blocked_by_policy);
   content_settings->OnStorageAccessed(
       StorageType::LOCAL_STORAGE,
-      CreateFirstPartyStorageKey(GURL("http://example.com")),
+      CreateUnpartitionedStorageKey(GURL("http://maps.google.com:8080")),
+      blocked_by_policy);
+  content_settings->OnStorageAccessed(
+      StorageType::LOCAL_STORAGE,
+      CreateUnpartitionedStorageKey(GURL("http://example.com")),
       blocked_by_policy);
   content_settings->OnStorageAccessed(
       StorageType::DATABASE,
-      CreateFirstPartyStorageKey(GURL("http://192.168.0.1")),
+      CreateUnpartitionedStorageKey(GURL("http://192.168.0.1")),
       blocked_by_policy);
   content_settings->OnSharedWorkerAccessed(
       GURL("http://youtube.com/worker.js"), "worker",
@@ -825,22 +826,23 @@
                                   blocked_by_policy});
   content_settings->OnStorageAccessed(
       StorageType::FILE_SYSTEM,
-      CreateFirstPartyStorageKey(GURL("https://www.google.com")),
+      CreateUnpartitionedStorageKey(GURL("https://www.google.com")),
       blocked_by_policy);
   content_settings->OnStorageAccessed(
       StorageType::INDEXED_DB,
-      CreateFirstPartyStorageKey(GURL("https://localhost")), blocked_by_policy);
-  content_settings->OnStorageAccessed(
-      StorageType::LOCAL_STORAGE,
-      CreateFirstPartyStorageKey(GURL("http://maps.google.com:8080")),
+      CreateUnpartitionedStorageKey(GURL("https://localhost")),
       blocked_by_policy);
   content_settings->OnStorageAccessed(
       StorageType::LOCAL_STORAGE,
-      CreateFirstPartyStorageKey(GURL("http://example.com")),
+      CreateUnpartitionedStorageKey(GURL("http://maps.google.com:8080")),
+      blocked_by_policy);
+  content_settings->OnStorageAccessed(
+      StorageType::LOCAL_STORAGE,
+      CreateUnpartitionedStorageKey(GURL("http://example.com")),
       blocked_by_policy);
   content_settings->OnStorageAccessed(
       StorageType::DATABASE,
-      CreateFirstPartyStorageKey(GURL("http://192.168.0.1")),
+      CreateUnpartitionedStorageKey(GURL("http://192.168.0.1")),
       blocked_by_policy);
   content_settings->OnSharedWorkerAccessed(
       GURL("http://youtube.com/worker.js"), "worker",
@@ -960,13 +962,13 @@
   bool blocked_by_policy = false;
 
   content_settings->OnBrowsingDataAccessed(
-      CreateFirstPartyStorageKey(GURL("https://www.google.com")),
+      CreateUnpartitionedStorageKey(GURL("https://www.google.com")),
       BrowsingDataModel::StorageType::kQuotaStorage, blocked_by_policy);
   content_settings->OnBrowsingDataAccessed(
-      CreateFirstPartyStorageKey(GURL("http://example.com")),
+      CreateUnpartitionedStorageKey(GURL("http://example.com")),
       BrowsingDataModel::StorageType::kLocalStorage, blocked_by_policy);
   content_settings->OnBrowsingDataAccessed(
-      CreateFirstPartyStorageKey(GURL("https://www.youtube.com")),
+      CreateUnpartitionedStorageKey(GURL("https://www.youtube.com")),
       BrowsingDataModel::StorageType::kSessionStorage, blocked_by_policy);
 
   const auto* allowed_browsing_data_model =
diff --git a/components/dom_distiller/content/browser/uma_helper.cc b/components/dom_distiller/content/browser/uma_helper.cc
index 55ffce33..87e8a99 100644
--- a/components/dom_distiller/content/browser/uma_helper.cc
+++ b/components/dom_distiller/content/browser/uma_helper.cc
@@ -47,10 +47,6 @@
          total_active_time_ != base::TimeDelta();
 }
 
-bool UMAHelper::DistillabilityDriverTimer::IsTimingDistilledPage() {
-  return HasStarted() && is_distilled_page_;
-}
-
 base::TimeDelta UMAHelper::DistillabilityDriverTimer::GetElapsedTime() {
   // If the timer is unpaused, add in the current time too.
   if (active_time_start_ != base::Time())
@@ -140,22 +136,4 @@
   driver->GetTimer().Reset();
 }
 
-// static
-void UMAHelper::LogTimeOnDistillablePage(content::WebContents* web_contents) {
-  CHECK(web_contents);
-  DistillabilityDriver::CreateForWebContents(web_contents);
-  DistillabilityDriver* driver =
-      DistillabilityDriver::FromWebContents(web_contents);
-  CHECK(driver);
-  DCHECK(driver->GetTimer().HasStarted());
-
-  // We shouldn't log time on a distillable page if this is a distilled page.
-  DCHECK(!driver->GetTimer().IsTimingDistilledPage());
-
-  base::UmaHistogramLongTimes(
-      "DomDistiller.Time.ActivelyViewingArticleBeforeDistilling",
-      driver->GetTimer().GetElapsedTime());
-  driver->GetTimer().Reset();
-}
-
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/content/browser/uma_helper.h b/components/dom_distiller/content/browser/uma_helper.h
index b8b6f18..582b91e8 100644
--- a/components/dom_distiller/content/browser/uma_helper.h
+++ b/components/dom_distiller/content/browser/uma_helper.h
@@ -51,9 +51,6 @@
     // Returns true if the timer is not zeroed, whether it is paused or
     // currently running.
     bool HasStarted();
-    // If the timer is not zeroed and the timer is associated with a distilled
-    // page.
-    bool IsTimingDistilledPage();
     // The amount of active time so far.
     base::TimeDelta GetElapsedTime();
 
@@ -76,11 +73,6 @@
   static void UpdateTimersOnNavigation(content::WebContents* web_contents,
                                        ReaderModePageType page_type);
 
-  // Logs the time spent on a distillable page. Should be called just before
-  // when switching to a distilled page. We are only interested in time on
-  // distillable pages when the user then decides to distill the article.
-  static void LogTimeOnDistillablePage(content::WebContents* web_contents);
-
   // Logs the time spent on a distilled (reader mode) page. Should be called
   // when leaving a distilled page, i.e. if the tab is closed or if the user
   // navigates to another page.
diff --git a/components/dom_distiller/content/browser/uma_helper_unittest.cc b/components/dom_distiller/content/browser/uma_helper_unittest.cc
index 0d30407f6..f94f0a71 100644
--- a/components/dom_distiller/content/browser/uma_helper_unittest.cc
+++ b/components/dom_distiller/content/browser/uma_helper_unittest.cc
@@ -27,7 +27,6 @@
   UMAHelper::DistillabilityDriverTimer timer;
   ASSERT_FALSE(timer.HasStarted());
   timer.Start(false);
-  ASSERT_FALSE(timer.IsTimingDistilledPage());
   ASSERT_TRUE(timer.HasStarted());
 
   FastForwardBy(100);
@@ -83,7 +82,6 @@
 
   timer.Start(true);
   ASSERT_TRUE(timer.HasStarted());
-  ASSERT_TRUE(timer.IsTimingDistilledPage());
   FastForwardBy(100);
   ASSERT_EQ(timer.GetElapsedTime().InMilliseconds(), 100);
   timer.Start(true);
diff --git a/components/feature_engagement/public/feature_configurations.cc b/components/feature_engagement/public/feature_configurations.cc
index e35a288..47ae6a0 100644
--- a/components/feature_engagement/public/feature_configurations.cc
+++ b/components/feature_engagement/public/feature_configurations.cc
@@ -1436,16 +1436,16 @@
     // A config that allows a user education bubble to be shown for the bottom
     // toolbar. After the promo manager dismisses What's New promo, the user
     // education bubble will be shown once. This can only occur once every a
-    // year.
+    // month.
 
     absl::optional<FeatureConfig> config = FeatureConfig();
     config->valid = true;
     config->availability = Comparator(ANY, 0);
-    config->session_rate = Comparator(EQUAL, 0);
+    config->session_rate = Comparator(ANY, 0);
     config->trigger =
-        EventConfig("whats_new_trigger", Comparator(EQUAL, 0), 360, 360);
+        EventConfig("whats_new_trigger", Comparator(LESS_THAN, 1), 30, 360);
     config->used =
-        EventConfig("whats_new_used", Comparator(EQUAL, 0), 360, 360);
+        EventConfig("whats_new_used", Comparator(LESS_THAN, 1), 30, 360);
     return config;
   }
 
diff --git a/components/history_clusters/core/history_clusters_types.h b/components/history_clusters/core/history_clusters_types.h
index 361d5cf..cb12e25a 100644
--- a/components/history_clusters/core/history_clusters_types.h
+++ b/components/history_clusters/core/history_clusters_types.h
@@ -71,6 +71,9 @@
 
   // Whether to include synced visits.
   bool include_synced_visits = false;
+
+  // Whether to return merged clusters that are similar based on content.
+  bool group_clusters_by_content = false;
 };
 
 struct QueryClustersContinuationParams {
diff --git a/components/history_clusters/core/on_device_clustering_backend.cc b/components/history_clusters/core/on_device_clustering_backend.cc
index 40fcc275..453c434 100644
--- a/components/history_clusters/core/on_device_clustering_backend.cc
+++ b/components/history_clusters/core/on_device_clustering_backend.cc
@@ -534,7 +534,7 @@
       std::make_unique<ClusterInteractionStateProcessor>(filter_params));
   cluster_processors.push_back(
       std::make_unique<ClusterSimilarityHeuristicsProcessor>());
-  if (GetConfig().content_clustering_enabled) {
+  if (filter_params.group_clusters_by_content) {
     cluster_processors.push_back(
         std::make_unique<ContentAnnotationsClusterProcessor>(
             &entity_id_to_entity_metadata_map));
diff --git a/components/history_clusters/core/on_device_clustering_backend_unittest.cc b/components/history_clusters/core/on_device_clustering_backend_unittest.cc
index c33913b..9340a5b 100644
--- a/components/history_clusters/core/on_device_clustering_backend_unittest.cc
+++ b/components/history_clusters/core/on_device_clustering_backend_unittest.cc
@@ -117,7 +117,6 @@
 class OnDeviceClusteringWithoutContentBackendTest : public ::testing::Test {
  public:
   OnDeviceClusteringWithoutContentBackendTest() {
-    config_.content_clustering_enabled = false;
     config_.keyword_filter_on_noisy_visits = true;
     config_.keyword_filter_on_entity_aliases = true;
     config_.max_entity_aliases_in_keywords = 100;
@@ -562,7 +561,6 @@
     : public OnDeviceClusteringWithoutContentBackendTest {
  public:
   OnDeviceClusteringWithContentBackendTest() {
-    config_.content_clustering_enabled = true;
     config_.exclude_entities_that_have_no_collections_from_content_clustering =
         false;
     config_.collections_to_block_from_content_clustering = {};
@@ -588,113 +586,6 @@
   Config config_;
 };
 
-TEST_F(OnDeviceClusteringWithContentBackendTest,
-       ClusterNoRequiresUIAndTriggerability) {
-  std::vector<history::AnnotatedVisit> visits;
-
-  // Visit2's referrer is visit 1 and visit 4 is a back navigation from visit 2.
-  // Visit 3 is a different journey altogether. Visit 10 is referring to a
-  // missing visit and should be considered as in its own cluster.
-  // Also, make sure these aren't sorted so we test that we are sorting the
-  // visits by visit ID.
-  history::AnnotatedVisit visit = testing::CreateDefaultAnnotatedVisit(
-      1, GURL("https://github.com/"), base::Time::FromTimeT(1));
-  visit.content_annotations.model_annotations.entities = {{"github", 100}};
-  visits.push_back(visit);
-
-  history::AnnotatedVisit visit2 = testing::CreateDefaultAnnotatedVisit(
-      2, GURL("https://google.com/"), base::Time::FromTimeT(2));
-  visit2.content_annotations.model_annotations.entities = {{"github", 100}};
-  visit2.referring_visit_of_redirect_chain_start = 1;
-  // Set the visit duration to be 2x the default so it has the same duration
-  // after |visit| and |visit4| are deduped.
-  visit2.visit_row.visit_duration = base::Seconds(20);
-  visits.push_back(visit2);
-
-  history::AnnotatedVisit visit4 = testing::CreateDefaultAnnotatedVisit(
-      4, GURL("https://github.com/"), base::Time::FromTimeT(4));
-  visit4.content_annotations.model_annotations.entities = {{"github", 100}};
-  visits.push_back(visit4);
-
-  // After the context clustering, visit5 will not be in the same cluster as
-  // visit, visit2, and visit4 but all of the visits have the same entities
-  // so they will be clustered in the content pass.
-  history::AnnotatedVisit visit5 = testing::CreateDefaultAnnotatedVisit(
-      10,
-      GURL("https://shouldskip.com/butnotsincehostcheckingisfalse/"
-           "andhasnonexistentreferrer"),
-      base::Time::FromTimeT(10));
-  visit5.content_annotations.model_annotations.entities = {{"github", 100}};
-  visit5.referring_visit_of_redirect_chain_start = 6;
-  visits.push_back(visit5);
-
-  std::vector<history::Cluster> result_clusters =
-      ClusterVisits(ClusteringRequestSource::kJourneysPage, visits,
-                    /*requires_ui_and_triggerability=*/false);
-
-  // The clusters should not be grouped by content and visits are not deduped or
-  // scored if `requires_ui_and_triggerability` is false.
-  EXPECT_THAT(testing::ToVisitResults(result_clusters),
-              ElementsAre(ElementsAre(testing::VisitResult(10, 1.0)),
-                          ElementsAre(testing::VisitResult(4, 1.0),
-                                      testing::VisitResult(2, 1.0),
-                                      testing::VisitResult(1, 1.0))));
-  // The clusters should not have keywords or triggerability calculated.
-  EXPECT_EQ(result_clusters.size(), 2u);
-  EXPECT_TRUE(result_clusters[0].GetKeywords().empty());
-  EXPECT_FALSE(result_clusters[0].triggerability_calculated);
-  EXPECT_TRUE(result_clusters[1].GetKeywords().empty());
-  EXPECT_FALSE(result_clusters[1].triggerability_calculated);
-}
-
-TEST_F(OnDeviceClusteringWithContentBackendTest, ClusterOnContent) {
-  std::vector<history::AnnotatedVisit> visits;
-
-  // Visit2's referrer is visit 1 and visit 4 is a back navigation from visit 2.
-  // Visit 3 is a different journey altogether. Visit 10 is referring to a
-  // missing visit and should be considered as in its own cluster.
-  // Also, make sure these aren't sorted so we test that we are sorting the
-  // visits by visit ID.
-  history::AnnotatedVisit visit = testing::CreateDefaultAnnotatedVisit(
-      1, GURL("https://github.com/"), base::Time::FromTimeT(1));
-  visit.content_annotations.model_annotations.entities = {{"github", 100}};
-  visits.push_back(visit);
-
-  history::AnnotatedVisit visit2 = testing::CreateDefaultAnnotatedVisit(
-      2, GURL("https://google.com/"), base::Time::FromTimeT(2));
-  visit2.content_annotations.model_annotations.entities = {{"github", 100}};
-  visit2.referring_visit_of_redirect_chain_start = 1;
-  // Set the visit duration to be 2x the default so it has the same duration
-  // after |visit| and |visit4| are deduped.
-  visit2.visit_row.visit_duration = base::Seconds(20);
-  visits.push_back(visit2);
-
-  history::AnnotatedVisit visit4 = testing::CreateDefaultAnnotatedVisit(
-      4, GURL("https://github.com/"), base::Time::FromTimeT(4));
-  visit4.content_annotations.model_annotations.entities = {{"github", 100}};
-  visits.push_back(visit4);
-
-  // After the context clustering, visit5 will not be in the same cluster as
-  // visit, visit2, and visit4 but all of the visits have the same entities
-  // so they will be clustered in the content pass.
-  history::AnnotatedVisit visit5 = testing::CreateDefaultAnnotatedVisit(
-      10,
-      GURL("https://shouldskip.com/butnotsincehostcheckingisfalse/"
-           "andhasnonexistentreferrer"),
-      base::Time::FromTimeT(10));
-  visit5.content_annotations.model_annotations.entities = {{"github", 100}};
-  visit5.referring_visit_of_redirect_chain_start = 6;
-  visits.push_back(visit5);
-
-  std::vector<history::Cluster> result_clusters =
-      ClusterVisits(ClusteringRequestSource::kJourneysPage, visits);
-  EXPECT_THAT(
-      testing::ToVisitResults(result_clusters),
-      ElementsAre(ElementsAre(
-          testing::VisitResult(4, 1.0, {history::DuplicateClusterVisit{1}}),
-          testing::VisitResult(2, 1.0), testing::VisitResult(10, 0.5))));
-}
-
 TEST_F(OnDeviceClusteringWithContentBackendTest, GetClustersForUIWithContent) {
   std::vector<history::Cluster> clusters;
 
@@ -733,9 +624,10 @@
   cluster2.visits.push_back(testing::CreateClusterVisit(visit5));
   clusters.push_back(cluster2);
 
-  std::vector<history::Cluster> result_clusters =
-      GetClustersForUI(ClusteringRequestSource::kJourneysPage,
-                       QueryClustersFilterParams(), clusters);
+  QueryClustersFilterParams params;
+  params.group_clusters_by_content = true;
+  std::vector<history::Cluster> result_clusters = GetClustersForUI(
+      ClusteringRequestSource::kJourneysPage, params, clusters);
   EXPECT_THAT(
       testing::ToVisitResults(result_clusters),
       ElementsAre(ElementsAre(
@@ -747,90 +639,6 @@
               UnorderedElementsAre(u"alias-github", u"rewritten-github"));
 }
 
-TEST_F(OnDeviceClusteringWithContentBackendTest,
-       GetClusterTriggerabilityWithContent) {
-  std::vector<history::Cluster> clusters;
-
-  history::Cluster cluster1;
-  history::AnnotatedVisit visit = testing::CreateDefaultAnnotatedVisit(
-      1, GURL("https://github.com/"), base::Time::FromTimeT(1));
-  visit.content_annotations.model_annotations.entities = {{"github", 100},
-                                                          {"scoretoolow", 10}};
-  cluster1.visits.push_back(testing::CreateClusterVisit(visit));
-
-  history::AnnotatedVisit visit2 = testing::CreateDefaultAnnotatedVisit(
-      2, GURL("https://google.com/"), base::Time::FromTimeT(2));
-  visit2.content_annotations.model_annotations.entities = {{"github", 100}};
-  visit2.referring_visit_of_redirect_chain_start = 1;
-  // Set the visit duration to be 2x the default so it has the same duration
-  // after |visit| and |visit4| are deduped.
-  visit2.visit_row.visit_duration = base::Seconds(20);
-  cluster1.visits.push_back(testing::CreateClusterVisit(visit2));
-
-  history::AnnotatedVisit visit4 = testing::CreateDefaultAnnotatedVisit(
-      4, GURL("https://github.com/"), base::Time::FromTimeT(4));
-  visit4.content_annotations.model_annotations.entities = {{"github", 100},
-                                                           {"nometadata", 100}};
-  cluster1.visits.push_back(testing::CreateClusterVisit(visit4));
-  clusters.push_back(cluster1);
-
-  std::vector<history::Cluster> result_clusters =
-      GetClusterTriggerability(clusters);
-  EXPECT_THAT(result_clusters.size(), 1u);
-  EXPECT_THAT(result_clusters[0].GetKeywords(),
-              UnorderedElementsAre(u"alias-github", u"rewritten-github"));
-}
-
-TEST_F(OnDeviceClusteringWithContentBackendTest,
-       ClusterOnContentBelowThreshold) {
-  base::HistogramTester histogram_tester;
-  std::vector<history::AnnotatedVisit> visits;
-
-  // Visit2's referrer is visit 1 and visit 4 is a back navigation from visit 2.
-  // Visit 3 is a different journey altogether. Visit 10 is referring to a
-  // missing visit and should be considered as in its own cluster.
-  // Also, make sure these aren't sorted so we test that we are sorting the
-  // visits by visit ID.
-  history::AnnotatedVisit visit = testing::CreateDefaultAnnotatedVisit(
-      1, GURL("https://github.com/"), base::Time::FromTimeT(1));
-  visit.content_annotations.model_annotations.entities = {{"github", 100}};
-  visit.content_annotations.model_annotations.categories = {{"category", 100}};
-  visits.push_back(visit);
-
-  history::AnnotatedVisit visit2 = testing::CreateDefaultAnnotatedVisit(
-      2, GURL("https://google.com/"), base::Time::FromTimeT(2));
-  visit2.referring_visit_of_redirect_chain_start = 1;
-  // Set the visit duration to be 2x the default so it has the same duration
-  // after |visit| and |visit4| are deduped.
-  visit2.visit_row.visit_duration = base::Seconds(20);
-  visits.push_back(visit2);
-
-  // After the context clustering, visit4 will not be in the same cluster as
-  // visit and visit2 but should be clustered together since they have the same
-  // title.
-  history::AnnotatedVisit visit4 = testing::CreateDefaultAnnotatedVisit(
-      4, GURL("https://github.com/"), base::Time::FromTimeT(4));
-  visit4.content_annotations.model_annotations.entities = {{"github", 100}};
-  visit4.content_annotations.model_annotations.categories = {{"category", 100}};
-  visits.push_back(visit4);
-
-  // This visit has a different title and shouldn't be grouped with the others.
-  history::AnnotatedVisit visit5 = testing::CreateDefaultAnnotatedVisit(
-      10, GURL("https://nonexistentreferrer.com/"), base::Time::FromTimeT(10));
-  visit5.referring_visit_of_redirect_chain_start = 6;
-  visit5.content_annotations.model_annotations.entities = {{"irrelevant", 100}};
-  visits.push_back(visit5);
-
-  std::vector<history::Cluster> result_clusters =
-      ClusterVisits(ClusteringRequestSource::kJourneysPage, visits);
-  EXPECT_THAT(
-      testing::ToVisitResults(result_clusters),
-      ElementsAre(ElementsAre(testing::VisitResult(10, 1.0)),
-                  ElementsAre(testing::VisitResult(
-                                  4, 1.0, {history::DuplicateClusterVisit{1}}),
-                              testing::VisitResult(2, 1.0))));
-}
-
 class OnDeviceClusteringWithAllTheBackendsTest
     : public OnDeviceClusteringWithoutContentBackendTest {
  public:
diff --git a/components/history_clusters/ui/query_clusters_state.cc b/components/history_clusters/ui/query_clusters_state.cc
index f0ac5f1..24a158b3 100644
--- a/components/history_clusters/ui/query_clusters_state.cc
+++ b/components/history_clusters/ui/query_clusters_state.cc
@@ -26,6 +26,8 @@
 QueryClustersFilterParams GetFilterParamsFromFlags(const std::string& query) {
   QueryClustersFilterParams filter_params;
   filter_params.include_synced_visits = GetConfig().include_synced_visits;
+  filter_params.group_clusters_by_content =
+      GetConfig().content_clustering_enabled;
 
   // If there is a query, we do not want to apply any filtering.
   if (!query.empty()) {
diff --git a/components/management_strings.grdp b/components/management_strings.grdp
index b71615e..5bdacac 100644
--- a/components/management_strings.grdp
+++ b/components/management_strings.grdp
@@ -275,6 +275,9 @@
     <message name="IDS_MANAGEMENT_EXTENSION_REPORT_PERF_CRASH" desc="Message explaining that an extension currently reports the user's  performance data and crash report">
       Performance data and crash reports
     </message>
+    <message name="IDS_MANAGEMENT_LEGACY_TECH_REPORT" desc="Message explaining that browser will upload a report when a legacy technology is used for a webpage">
+      A limited list of URLs of pages you visit where <ph name="BEGIN_LINK">&lt;a target="_blank" href="https://chromestatus.com/features#browsers.chrome.status%3A%22Deprecated%22" &gt;</ph>legacy technology events<ph name="END_LINK">&lt;/a&gt;</ph> are occuring.
+    </message>
 
     <!-- Strings related to Chrome Enterprise Connectors -->
     <message name="IDS_MANAGEMENT_THREAT_PROTECTION" desc="Title of the Chrome Enterprise Connectors section of the page">
diff --git a/components/management_strings_grdp/IDS_MANAGEMENT_LEGACY_TECH_REPORT.png.sha1 b/components/management_strings_grdp/IDS_MANAGEMENT_LEGACY_TECH_REPORT.png.sha1
new file mode 100644
index 0000000..7b7ef3f
--- /dev/null
+++ b/components/management_strings_grdp/IDS_MANAGEMENT_LEGACY_TECH_REPORT.png.sha1
@@ -0,0 +1 @@
+526ff86278deaad02d67d7fad53520f983fcb42f
\ No newline at end of file
diff --git a/components/metrics/BUILD.gn b/components/metrics/BUILD.gn
index 1997a0d..159fb93f 100644
--- a/components/metrics/BUILD.gn
+++ b/components/metrics/BUILD.gn
@@ -77,6 +77,22 @@
   }
 }
 
+# Used by the Chrome installer, which doesn't need the whole metrics library.
+source_set("client_info") {
+  sources = [
+    "client_info.cc",
+    "client_info.h",
+  ]
+}
+
+# Used by the Chrome installer, which doesn't need the whole metrics library.
+source_set("metrics_pref_names") {
+  sources = [
+    "metrics_pref_names.cc",
+    "metrics_pref_names.h",
+  ]
+}
+
 if (!is_cronet_build || is_ios) {
   static_library("metrics") {
     sources = [
@@ -86,8 +102,6 @@
       "call_stack_profile_metrics_provider.h",
       "clean_exit_beacon.cc",
       "clean_exit_beacon.h",
-      "client_info.cc",
-      "client_info.h",
       "cloned_install_detector.cc",
       "cloned_install_detector.h",
       "cpu_metrics_provider.cc",
@@ -133,8 +147,6 @@
       "metrics_log_uploader.h",
       "metrics_logs_event_manager.cc",
       "metrics_logs_event_manager.h",
-      "metrics_pref_names.cc",
-      "metrics_pref_names.h",
       "metrics_provider.cc",
       "metrics_provider.h",
       "metrics_reporting_default_state.cc",
@@ -195,6 +207,8 @@
     }
 
     public_deps = [
+      "//components/metrics:client_info",
+      "//components/metrics:metrics_pref_names",
       "//third_party/metrics_proto",
       "//third_party/zlib/google:compression_utils",
     ]
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
index d2a7213..e1364e44 100644
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
@@ -471,7 +471,7 @@
 // ChromeRefresh2023 flag.
 BASE_FEATURE(kUpdatedConnectionSecurityIndicators,
              "OmniboxUpdatedConnectionSecurityIndicators",
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 // Feature used to default typed navigations to use HTTPS instead of HTTP.
 // This only applies to navigations that don't have a scheme such as
diff --git a/components/page_info/BUILD.gn b/components/page_info/BUILD.gn
index 5849d13..7178afd 100644
--- a/components/page_info/BUILD.gn
+++ b/components/page_info/BUILD.gn
@@ -21,7 +21,6 @@
     "//components/content_settings/browser/ui",
     "//components/content_settings/core/browser",
     "//components/keyed_service/core",
-    "//components/omnibox/common",
     "//components/optimization_guide/core",
     "//components/page_info/core",
     "//components/password_manager/core/browser",
diff --git a/components/page_info/DEPS b/components/page_info/DEPS
index 38f843aa..43b54b40 100644
--- a/components/page_info/DEPS
+++ b/components/page_info/DEPS
@@ -16,7 +16,6 @@
   "+components/safe_browsing/content/browser",
   "+components/safe_browsing/core/browser",
   "+components/safe_browsing/core/common",
-  "+components/omnibox/common",
   "+components/security_interstitials",
   "+components/security_state",
   "+components/search",
diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_info_ui.cc
index f424534..59af8d6 100644
--- a/components/page_info/page_info_ui.cc
+++ b/components/page_info/page_info_ui.cc
@@ -13,7 +13,6 @@
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "components/content_settings/core/common/content_settings.h"
-#include "components/omnibox/common/omnibox_features.h"
 #include "components/page_info/core/features.h"
 #include "components/page_info/page_info.h"
 #include "components/page_info/page_info_ui_delegate.h"
@@ -546,10 +545,7 @@
 
           auto description = CreateSecurityDescription(
               SecuritySummaryColor::GREEN, IDS_PAGE_INFO_SECURE_SUMMARY,
-              base::FeatureList::IsEnabled(
-                  omnibox::kUpdatedConnectionSecurityIndicators)
-                  ? IDS_PAGE_INFO_SECURE_DETAILS_V2
-                  : IDS_PAGE_INFO_SECURE_DETAILS,
+              IDS_PAGE_INFO_SECURE_DETAILS,
               SecurityDescriptionType::CONNECTION);
           if (identity_info.identity_status ==
               PageInfo::SITE_IDENTITY_STATUS_ADMIN_PROVIDED_CERT) {
diff --git a/components/page_info_strings.grdp b/components/page_info_strings.grdp
index c5676fc..83cc117d 100644
--- a/components/page_info_strings.grdp
+++ b/components/page_info_strings.grdp
@@ -67,9 +67,6 @@
   <message name="IDS_PAGE_INFO_SECURE_DETAILS" desc="A short paragraph explaining a secure site to the user.">
     Your information (for example, passwords or credit card numbers) is private when it is sent to this site.
   </message>
-  <message name="IDS_PAGE_INFO_SECURE_DETAILS_V2" desc="A short paragraph explaining a secure site to the user.">
-    The site's connection is secure unless Chrome tells you otherwise.
-  </message>
   <message name="IDS_PAGE_INFO_ADMIN_PROVIDED_CERT_DETAILS" desc="A short paragraph explaining a site using an administrator-provided certificate to the user.">
     You have accessed content using an administrator-provided certificate. Data you provide to <ph name="DOMAIN">$1<ex>www.google.com</ex></ph> can be intercepted by your administrator.
   </message>
diff --git a/components/page_info_strings_grdp/IDS_PAGE_INFO_SECURE_DETAILS_V2.png.sha1 b/components/page_info_strings_grdp/IDS_PAGE_INFO_SECURE_DETAILS_V2.png.sha1
deleted file mode 100644
index 1664c011..0000000
--- a/components/page_info_strings_grdp/IDS_PAGE_INFO_SECURE_DETAILS_V2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3ca31640ad34466c40404674282935ff9493d380
\ No newline at end of file
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
index 60ee841..7d5ac411 100644
--- a/components/password_manager/core/browser/BUILD.gn
+++ b/components/password_manager/core/browser/BUILD.gn
@@ -82,6 +82,8 @@
     "export/password_csv_writer.h",
     "export/password_manager_exporter.cc",
     "export/password_manager_exporter.h",
+    "field_info_manager.cc",
+    "field_info_manager.h",
     "form_fetcher.h",
     "form_fetcher_impl.cc",
     "form_fetcher_impl.h",
@@ -237,7 +239,8 @@
     "sharing/password_sender_service_impl.h",
     "sharing/password_sharing_recipients_downloader.cc",
     "sharing/password_sharing_recipients_downloader.h",
-    "sharing/recipients_fetcher.cc",
+    "sharing/recipient_info.cc",
+    "sharing/recipient_info.h",
     "sharing/recipients_fetcher.h",
     "sharing/recipients_fetcher_impl.cc",
     "sharing/recipients_fetcher_impl.h",
@@ -636,6 +639,7 @@
     "export/csv_writer_unittest.cc",
     "export/password_csv_writer_unittest.cc",
     "export/password_manager_exporter_unittest.cc",
+    "field_info_manager_unittest.cc",
     "form_fetcher_impl_unittest.cc",
     "form_saver_impl_unittest.cc",
     "generation/password_generator_unittest.cc",
diff --git a/components/password_manager/core/browser/field_info_manager.cc b/components/password_manager/core/browser/field_info_manager.cc
new file mode 100644
index 0000000..5197ecd5
--- /dev/null
+++ b/components/password_manager/core/browser/field_info_manager.cc
@@ -0,0 +1,88 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/password_manager/core/browser/field_info_manager.h"
+
+#include "base/i18n/case_conversion.h"
+
+using autofill::FieldRendererId;
+using autofill::FormSignature;
+
+namespace password_manager {
+
+namespace {
+
+bool IsSameField(const FieldInfo& lhs, const FieldInfo& rhs) {
+  return lhs.driver_id == rhs.driver_id && lhs.field_id == rhs.field_id;
+}
+
+}  // namespace
+
+FieldInfo::FieldInfo(int driver_id,
+                     FieldRendererId field_id,
+                     std::string signon_realm,
+                     std::u16string value)
+    : driver_id(driver_id),
+      field_id(field_id),
+      signon_realm(signon_realm),
+      value(base::i18n::ToLower(value)) {}
+
+FieldInfo::FieldInfo(const FieldInfo&) = default;
+FieldInfo& FieldInfo::operator=(const FieldInfo&) = default;
+
+FieldInfoManager::FieldInfoManager(
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner)
+    : task_runner_(task_runner) {}
+
+FieldInfoManager::~FieldInfoManager() = default;
+
+void FieldInfoManager::AddFieldInfo(const FieldInfo& new_info) {
+  if (!field_info_cache_.empty() &&
+      IsSameField(field_info_cache_.back().field_info, new_info)) {
+    // The method can be called on every keystroke while the user modifies
+    // the field, update the value.
+    field_info_cache_.back().field_info.value = new_info.value;
+  } else {
+    // Only the last two fields are cached to allow for one possible username
+    // and one OTP/captcha field.
+    if (field_info_cache_.size() >= 2) {
+      ClearOldestFieldInfoEntry();
+    }
+
+    auto timer = std::make_unique<base::OneShotTimer>();
+    timer->SetTaskRunner(task_runner_);
+    field_info_cache_.emplace_back(new_info, std::move(timer));
+  }
+
+  // Safe to use "this", because the timer will be destructed before "this" is
+  // destructed.
+  field_info_cache_.back().timer->Start(
+      FROM_HERE, kFieldInfoLifetime, this,
+      &FieldInfoManager::ClearOldestFieldInfoEntry);
+}
+
+std::vector<FieldInfo> FieldInfoManager::GetFieldInfo(
+    const std::string& signon_realm) {
+  std::vector<FieldInfo> relevant_info;
+  for (const auto& entry : field_info_cache_) {
+    // TODO(crbug/1468297): Consider eTLD+1 and affiliated matches.
+    if (entry.field_info.signon_realm == signon_realm) {
+      relevant_info.push_back(entry.field_info);
+    }
+  }
+  return relevant_info;
+}
+
+FieldInfoManager::FieldInfoEntry::FieldInfoEntry(
+    FieldInfo field_info,
+    std::unique_ptr<base::OneShotTimer> timer)
+    : field_info(field_info), timer(std::move(timer)) {}
+
+FieldInfoManager::FieldInfoEntry::~FieldInfoEntry() = default;
+
+void FieldInfoManager::ClearOldestFieldInfoEntry() {
+  field_info_cache_.pop_front();
+}
+
+}  // namespace password_manager
diff --git a/components/password_manager/core/browser/field_info_manager.h b/components/password_manager/core/browser/field_info_manager.h
new file mode 100644
index 0000000..2406d39
--- /dev/null
+++ b/components/password_manager/core/browser/field_info_manager.h
@@ -0,0 +1,95 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FIELD_INFO_MANAGER_H_
+#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FIELD_INFO_MANAGER_H_
+
+#include <deque>
+#include <string>
+#include <vector>
+
+#include "base/task/single_thread_task_runner.h"
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+#include "components/autofill/core/browser/field_types.h"
+#include "components/autofill/core/common/signatures.h"
+#include "components/autofill/core/common/unique_ids.h"
+#include "components/keyed_service/core/keyed_service.h"
+
+namespace password_manager {
+
+constexpr base::TimeDelta kFieldInfoLifetime = base::Minutes(5);
+
+struct FieldInfo {
+  // Id of the PasswordManagerDriver which corresponds to the frame of the
+  // field. Paired with the |field_id|, this identifies a field globally.
+  int driver_id = -1;
+
+  // The renderer id of a field.
+  autofill::FieldRendererId field_id;
+
+  // Signon realm of the form.
+  std::string signon_realm;
+
+  // Lowercased field value.
+  std::u16string value;
+
+  // The type of the field predicted by the server.
+  autofill::ServerFieldType type = autofill::ServerFieldType::UNKNOWN_TYPE;
+
+  // Signatures identifying the form and field on the server.
+  autofill::FormSignature form_signature;
+  autofill::FieldSignature field_signature;
+
+  FieldInfo(int driver_id,
+            autofill::FieldRendererId field_id,
+            std::string signon_realm,
+            std::u16string value);
+  FieldInfo(const FieldInfo&);
+  FieldInfo& operator=(const FieldInfo&);
+
+  friend bool operator==(const FieldInfo& lhs, const FieldInfo& rhs) = default;
+};
+
+// TODO(crbug/1468297): Propagate server predictions to the class.
+// Manages information about the last user-interacted fields, keeps
+// the data and erases it once it becomes stale.
+class FieldInfoManager : public KeyedService {
+ public:
+  explicit FieldInfoManager(
+      scoped_refptr<base::SingleThreadTaskRunner> task_runner);
+  ~FieldInfoManager() override;
+
+  // Caches |info|.
+  void AddFieldInfo(const FieldInfo& info);
+
+  // Retrieves field info for the given |signon_realm|.
+  std::vector<FieldInfo> GetFieldInfo(const std::string& signon_realm);
+
+ private:
+  struct FieldInfoEntry {
+    // Cached field info.
+    FieldInfo field_info;
+
+    // The timer for tracking field info expiration.
+    std::unique_ptr<base::OneShotTimer> timer;
+
+    FieldInfoEntry(FieldInfo field_info,
+                   std::unique_ptr<base::OneShotTimer> timer);
+    ~FieldInfoEntry();
+  };
+
+  // Deletes the oldest field info entry.
+  void ClearOldestFieldInfoEntry();
+
+  // TODO(crbug/1468297): Reset the cache after a save prompt is accepted.
+  std::deque<FieldInfoEntry> field_info_cache_;
+
+  // Task runner used for evicting field info entries after timeout.
+  scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+};
+
+}  // namespace password_manager
+
+#endif  // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FIELD_INFO_MANAGER_H_
diff --git a/components/password_manager/core/browser/field_info_manager_unittest.cc b/components/password_manager/core/browser/field_info_manager_unittest.cc
new file mode 100644
index 0000000..2795f1b
--- /dev/null
+++ b/components/password_manager/core/browser/field_info_manager_unittest.cc
@@ -0,0 +1,92 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/password_manager/core/browser/field_info_manager.h"
+
+#include <memory>
+
+#include "base/i18n/case_conversion.h"
+#include "base/test/task_environment.h"
+#include "base/test/test_mock_time_task_runner.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using autofill::FieldRendererId;
+using autofill::FieldSignature;
+using autofill::FormSignature;
+
+namespace password_manager {
+
+namespace {
+
+const char kFirstDomain[] = "https://firstdomain.com";
+const char kSecondDomain[] = "https://seconddomain.com";
+
+}  // namespace
+
+class FieldInfoManagerTest : public testing::Test {
+ public:
+  void SetUp() override {
+    manager_ = std::make_unique<FieldInfoManager>(
+        task_environment_.GetMainThreadTaskRunner());
+  }
+
+ protected:
+  std::unique_ptr<FieldInfoManager> manager_;
+  base::test::TaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+};
+
+TEST_F(FieldInfoManagerTest, InfoAddedRetrievedAndExpired) {
+  FieldInfo info(/*driver_id=*/1, FieldRendererId(1), kFirstDomain, u"value");
+  manager_->AddFieldInfo(info);
+  std::vector<FieldInfo> expected_info = {info};
+  EXPECT_EQ(manager_->GetFieldInfo(kFirstDomain), expected_info);
+  EXPECT_TRUE(manager_->GetFieldInfo(kSecondDomain).empty());
+
+  // Check that the info is still accessible.
+  task_environment_.FastForwardBy(kFieldInfoLifetime / 2);
+  EXPECT_EQ(manager_->GetFieldInfo(kFirstDomain), expected_info);
+
+  // The info should not be accessible anymore
+  task_environment_.FastForwardBy(kFieldInfoLifetime / 2);
+  EXPECT_TRUE(manager_->GetFieldInfo(kFirstDomain).empty());
+}
+
+TEST_F(FieldInfoManagerTest, InfoOverwrittenWithNewField) {
+  FieldInfo info1(/*driver_id=*/1, FieldRendererId(1), kFirstDomain, u"value1");
+  manager_->AddFieldInfo(info1);
+  FieldInfo info2(/*driver_id=*/2, FieldRendererId(2), kFirstDomain, u"value2");
+  manager_->AddFieldInfo(info2);
+
+  std::vector<FieldInfo> expected_info = {info1, info2};
+  EXPECT_EQ(manager_->GetFieldInfo(kFirstDomain), expected_info);
+
+  // The third info should dismiss the first one.
+  FieldInfo info3(/*driver_id=*/3, FieldRendererId(3), kFirstDomain, u"value3");
+  manager_->AddFieldInfo(info3);
+
+  expected_info = {info2, info3};
+  EXPECT_EQ(manager_->GetFieldInfo(kFirstDomain), expected_info);
+}
+
+TEST_F(FieldInfoManagerTest, InfoUpdatedWithNewValue) {
+  FieldInfo info1(/*driver_id=*/1, FieldRendererId(1), kFirstDomain, u"value");
+  manager_->AddFieldInfo(info1);
+
+  // The value should not be stored twice for the same field.
+  FieldInfo info2 = info1;
+  info2.value = u"new_value";
+  manager_->AddFieldInfo(info2);
+
+  std::vector<FieldInfo> expected_info = {info2};
+  EXPECT_EQ(manager_->GetFieldInfo(kFirstDomain), expected_info);
+}
+
+TEST_F(FieldInfoManagerTest, FieldValueLowercased) {
+  std::u16string raw_value = u"VaLuE";
+  FieldInfo info(/*driver_id=*/1, FieldRendererId(1), kFirstDomain, raw_value);
+  EXPECT_EQ(info.value, base::i18n::ToLower(raw_value));
+}
+
+}  // namespace password_manager
diff --git a/components/password_manager/core/browser/sharing/outgoing_password_sharing_invitation_sync_bridge.cc b/components/password_manager/core/browser/sharing/outgoing_password_sharing_invitation_sync_bridge.cc
index 6ad99fe..04d5accb 100644
--- a/components/password_manager/core/browser/sharing/outgoing_password_sharing_invitation_sync_bridge.cc
+++ b/components/password_manager/core/browser/sharing/outgoing_password_sharing_invitation_sync_bridge.cc
@@ -13,6 +13,7 @@
 #include "components/sync/model/metadata_change_list.h"
 #include "components/sync/model/model_type_change_processor.h"
 #include "components/sync/model/mutable_data_batch.h"
+#include "components/sync/protocol/password_sharing_invitation_specifics.pb.h"
 
 namespace password_manager {
 
@@ -59,17 +60,6 @@
   return specifics;
 }
 
-std::unique_ptr<syncer::EntityData> ConvertToEntityData(
-    const sync_pb::OutgoingPasswordSharingInvitationSpecifics& specifics) {
-  auto entity_data = std::make_unique<syncer::EntityData>();
-  entity_data->name = specifics.guid();
-  entity_data->client_tag_hash =
-      GetClientTagHashFromStorageKey(GetStorageKeyFromSpecifics(specifics));
-  entity_data->specifics.mutable_outgoing_password_sharing_invitation()
-      ->CopyFrom(specifics);
-  return entity_data;
-}
-
 }  // namespace
 
 OutgoingPasswordSharingInvitationSyncBridge::
@@ -105,15 +95,19 @@
 
   sync_pb::OutgoingPasswordSharingInvitationSpecifics specifics =
       CreateOutgoingPasswordSharingInvitationSpecifics(password, recipient);
-  std::string storage_key = GetStorageKeyFromSpecifics(specifics);
+  const std::string storage_key = GetStorageKeyFromSpecifics(specifics);
+
+  storage_key_to_outgoing_invitations_in_flight_.emplace(
+      storage_key, OutgoingInvitationWithEncryptionKey{std::move(specifics),
+                                                       recipient.public_key});
 
   std::unique_ptr<syncer::MetadataChangeList> metadata_change_list =
       CreateMetadataChangeList();
-  change_processor()->Put(storage_key, ConvertToEntityData(specifics),
-                          metadata_change_list.get());
-
-  storage_key_to_outgoing_invitations_in_flight_.emplace(std::move(storage_key),
-                                                         std::move(specifics));
+  change_processor()->Put(
+      storage_key,
+      ConvertToEntityData(
+          storage_key_to_outgoing_invitations_in_flight_[storage_key]),
+      metadata_change_list.get());
 }
 
 absl::optional<syncer::ModelError>
@@ -199,4 +193,19 @@
   storage_key_to_outgoing_invitations_in_flight_.clear();
 }
 
+// static
+std::unique_ptr<syncer::EntityData>
+OutgoingPasswordSharingInvitationSyncBridge::ConvertToEntityData(
+    const OutgoingInvitationWithEncryptionKey& invitation_with_encryption_key) {
+  auto entity_data = std::make_unique<syncer::EntityData>();
+  entity_data->name = invitation_with_encryption_key.specifics.guid();
+  entity_data->client_tag_hash = GetClientTagHashFromStorageKey(
+      GetStorageKeyFromSpecifics(invitation_with_encryption_key.specifics));
+  entity_data->specifics.mutable_outgoing_password_sharing_invitation()
+      ->CopyFrom(invitation_with_encryption_key.specifics);
+  entity_data->recipient_public_key.CopyFrom(
+      invitation_with_encryption_key.recipient_public_key.ToProto());
+  return entity_data;
+}
+
 }  // namespace password_manager
diff --git a/components/password_manager/core/browser/sharing/outgoing_password_sharing_invitation_sync_bridge.h b/components/password_manager/core/browser/sharing/outgoing_password_sharing_invitation_sync_bridge.h
index c5068bfe..5dd94f6 100644
--- a/components/password_manager/core/browser/sharing/outgoing_password_sharing_invitation_sync_bridge.h
+++ b/components/password_manager/core/browser/sharing/outgoing_password_sharing_invitation_sync_bridge.h
@@ -10,7 +10,9 @@
 #include <string>
 
 #include "base/sequence_checker.h"
+#include "components/password_manager/core/browser/sharing/recipient_info.h"
 #include "components/sync/model/model_type_sync_bridge.h"
+#include "components/sync/protocol/entity_data.h"
 #include "components/sync/protocol/password_sharing_invitation_specifics.pb.h"
 
 namespace syncer {
@@ -61,9 +63,20 @@
  private:
   SEQUENCE_CHECKER(sequence_checker_);
 
+  // Contains data which is sufficient for creating `EntityData` for an outgoing
+  // invitation.
+  struct OutgoingInvitationWithEncryptionKey {
+    sync_pb::OutgoingPasswordSharingInvitationSpecifics specifics;
+    PublicKey recipient_public_key;
+  };
+
+  static std::unique_ptr<syncer::EntityData> ConvertToEntityData(
+      const OutgoingInvitationWithEncryptionKey&
+          invitation_with_encryption_key);
+
   // Last sent passwords are cached until they are committed to the server. This
   // is required to keep data in case of retries.
-  std::map<std::string, sync_pb::OutgoingPasswordSharingInvitationSpecifics>
+  std::map<std::string, OutgoingInvitationWithEncryptionKey>
       storage_key_to_outgoing_invitations_in_flight_;
 };
 
diff --git a/components/password_manager/core/browser/sharing/password_sender_service.h b/components/password_manager/core/browser/sharing/password_sender_service.h
index c456ff4..29192a1 100644
--- a/components/password_manager/core/browser/sharing/password_sender_service.h
+++ b/components/password_manager/core/browser/sharing/password_sender_service.h
@@ -9,6 +9,7 @@
 
 #include "base/memory/weak_ptr.h"
 #include "components/keyed_service/core/keyed_service.h"
+#include "components/password_manager/core/browser/sharing/recipient_info.h"
 
 namespace syncer {
 class ModelTypeControllerDelegate;
@@ -22,9 +23,8 @@
 struct PasswordRecipient {
   // Recipient's user identifier (obfuscated Gaia ID).
   std::string user_id;
-
-  // TODO(crbug.com/1456309): Add a field for the public key of the receiver
-  // once the discussion concluded which type to use.
+  // Recipient's Public Key.
+  PublicKey public_key;
 };
 
 // The PasswordSenderService class defines the interface for sending passwords.
diff --git a/components/password_manager/core/browser/sharing/recipient_info.cc b/components/password_manager/core/browser/sharing/recipient_info.cc
new file mode 100644
index 0000000..cb53f851
--- /dev/null
+++ b/components/password_manager/core/browser/sharing/recipient_info.cc
@@ -0,0 +1,43 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/password_manager/core/browser/sharing/recipient_info.h"
+
+namespace password_manager {
+
+bool PublicKey::operator==(const PublicKey& other) const {
+  return key == other.key && key_version == other.key_version;
+}
+
+sync_pb::CrossUserSharingPublicKey PublicKey::ToProto() const {
+  sync_pb::CrossUserSharingPublicKey proto_result;
+  proto_result.set_x25519_public_key(key);
+  proto_result.set_version(key_version);
+  return proto_result;
+}
+
+// static
+PublicKey PublicKey::FromProto(
+    const sync_pb::CrossUserSharingPublicKey& proto_public_key) {
+  PublicKey result;
+  result.key = proto_public_key.x25519_public_key();
+  result.key_version = proto_public_key.version();
+  return result;
+}
+
+RecipientInfo::RecipientInfo() = default;
+
+RecipientInfo::RecipientInfo(const RecipientInfo& other) = default;
+RecipientInfo::RecipientInfo(RecipientInfo&& other) = default;
+RecipientInfo& RecipientInfo::operator=(const RecipientInfo&) = default;
+RecipientInfo& RecipientInfo::operator=(RecipientInfo&&) = default;
+RecipientInfo::~RecipientInfo() = default;
+
+bool RecipientInfo::operator==(const RecipientInfo& other) const {
+  return user_id == other.user_id && user_name == other.user_name &&
+         email == other.email && profile_image_url == other.profile_image_url &&
+         public_key == other.public_key;
+}
+
+}  // namespace password_manager
diff --git a/components/password_manager/core/browser/sharing/recipient_info.h b/components/password_manager/core/browser/sharing/recipient_info.h
new file mode 100644
index 0000000..d9c3c45
--- /dev/null
+++ b/components/password_manager/core/browser/sharing/recipient_info.h
@@ -0,0 +1,55 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_SHARING_RECIPIENT_INFO_H_
+#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_SHARING_RECIPIENT_INFO_H_
+
+#include <string>
+
+#include "components/sync/protocol/nigori_specifics.pb.h"
+
+namespace password_manager {
+
+// Represents a Public Key for a user including its version.
+struct PublicKey {
+  // 32 byte X25519 Public key.
+  std::string key;
+  // Key version.
+  uint32_t key_version = 0;
+
+  bool operator==(const PublicKey& other) const;
+
+  sync_pb::CrossUserSharingPublicKey ToProto() const;
+
+  static PublicKey FromProto(
+      const sync_pb::CrossUserSharingPublicKey& proto_public_key);
+};
+
+// The RecipientInfo struct represents a recipient with whom the user can share
+// a password.
+struct RecipientInfo {
+  RecipientInfo();
+  RecipientInfo(const RecipientInfo&);
+  RecipientInfo(RecipientInfo&&);
+  RecipientInfo& operator=(const RecipientInfo&);
+  RecipientInfo& operator=(RecipientInfo&&);
+  ~RecipientInfo();
+
+  bool operator==(const RecipientInfo& other) const;
+
+  // Recipient's user identifier (obfuscated Gaia ID).
+  std::string user_id;
+  // Recipients's user name for display in the UI.
+  std::string user_name;
+  // The email address of the recipients account for display in the UI.
+  std::string email;
+  // URL to the profile picture of the recipient for display in the UI.
+  std::string profile_image_url;
+  // Recipient's Public key.
+  PublicKey public_key;
+};
+
+}  // namespace password_manager
+
+#endif  // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_SHARING_RECIPIENT_INFO_H_
diff --git a/components/password_manager/core/browser/sharing/recipients_fetcher.cc b/components/password_manager/core/browser/sharing/recipients_fetcher.cc
deleted file mode 100644
index 4019de4..0000000
--- a/components/password_manager/core/browser/sharing/recipients_fetcher.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/password_manager/core/browser/sharing/recipients_fetcher.h"
-
-namespace password_manager {
-
-RecipientInfo::RecipientInfo() = default;
-
-RecipientInfo::RecipientInfo(const RecipientInfo& other) = default;
-RecipientInfo::RecipientInfo(RecipientInfo&& other) = default;
-RecipientInfo& RecipientInfo::operator=(const RecipientInfo&) = default;
-RecipientInfo& RecipientInfo::operator=(RecipientInfo&&) = default;
-RecipientInfo::~RecipientInfo() = default;
-
-bool RecipientInfo::operator==(const RecipientInfo& other) const {
-  return user_id == other.user_id && user_name == other.user_name &&
-         email == other.email && profile_image_url == other.profile_image_url;
-}
-
-}  // namespace password_manager
diff --git a/components/password_manager/core/browser/sharing/recipients_fetcher.h b/components/password_manager/core/browser/sharing/recipients_fetcher.h
index 62fd46c..c78a9ac 100644
--- a/components/password_manager/core/browser/sharing/recipients_fetcher.h
+++ b/components/password_manager/core/browser/sharing/recipients_fetcher.h
@@ -9,6 +9,8 @@
 
 #include "base/functional/callback.h"
 
+#include "components/password_manager/core/browser/sharing/recipient_info.h"
+
 namespace password_manager {
 
 // An Enum that contains possible request status values for a Fetch Recipients
@@ -23,32 +25,6 @@
   kPendingRequest = 4,
 };
 
-// The RecipientInfo struct represents a recipient with whom the user can share
-// a password.
-struct RecipientInfo {
-  RecipientInfo();
-  RecipientInfo(const RecipientInfo&);
-  RecipientInfo(RecipientInfo&&);
-  RecipientInfo& operator=(const RecipientInfo&);
-  RecipientInfo& operator=(RecipientInfo&&);
-  ~RecipientInfo();
-
-  bool operator==(const RecipientInfo& other) const;
-
-  // Recipient's user identifier (obfuscated Gaia ID).
-  std::string user_id;
-  // Recipients's user name for display in the UI.
-  std::string user_name;
-  // The email address of the recipients account for display in the UI.
-  std::string email;
-  // URL to the profile picture of the recipient for display in the UI.
-  std::string profile_image_url;
-  // Recipient's Public key.
-  std::string public_key;
-  // Recipient's Public key version.
-  uint32_t public_key_version;
-};
-
 // The RecipientsFetcher class defines the interface for fetching a list of
 // potential recipients with whom the user is able to share passwords.
 class RecipientsFetcher {
diff --git a/components/password_manager/core/browser/sharing/recipients_fetcher_impl.cc b/components/password_manager/core/browser/sharing/recipients_fetcher_impl.cc
index 43dfbdd4..dcff1e5 100644
--- a/components/password_manager/core/browser/sharing/recipients_fetcher_impl.cc
+++ b/components/password_manager/core/browser/sharing/recipients_fetcher_impl.cc
@@ -34,9 +34,7 @@
   recipient_info.profile_image_url =
       user_info.user_display_info().profile_image_url();
   recipient_info.public_key =
-      user_info.cross_user_sharing_public_key().x25519_public_key();
-  recipient_info.public_key_version =
-      user_info.cross_user_sharing_public_key().version();
+      PublicKey::FromProto(user_info.cross_user_sharing_public_key());
   return recipient_info;
 }
 
@@ -71,6 +69,9 @@
 
 void RecipientsFetcherImpl::ServerRequestCallback() {
   if (!HasServerRequestCompletedWithSuccess(*pending_request_)) {
+    // Destroy the request object after the response was fetched otherwise no
+    // further call can be made.
+    pending_request_.reset();
     std::move(callback_).Run(std::vector<RecipientInfo>(),
                              FetchFamilyMembersRequestStatus::kNetworkError);
     return;
diff --git a/components/password_manager/core/browser/sharing/recipients_fetcher_impl_unittest.cc b/components/password_manager/core/browser/sharing/recipients_fetcher_impl_unittest.cc
index afe888d7..b3b0e73 100644
--- a/components/password_manager/core/browser/sharing/recipients_fetcher_impl_unittest.cc
+++ b/components/password_manager/core/browser/sharing/recipients_fetcher_impl_unittest.cc
@@ -101,8 +101,8 @@
   expected_recipient_info.user_name = kTestUserName;
   expected_recipient_info.email = kTestEmail;
   expected_recipient_info.profile_image_url = kTestProfileImageUrl;
-  expected_recipient_info.public_key = kTestPublicKey;
-  expected_recipient_info.public_key_version = kTestPublicKeyVersion;
+  expected_recipient_info.public_key.key = kTestPublicKey;
+  expected_recipient_info.public_key.key_version = kTestPublicKeyVersion;
   StrictMock<base::MockCallback<RecipientsFetcher::FetchFamilyMembersCallback>>
       callback;
   EXPECT_CALL(callback, Run(ElementsAre(expected_recipient_info),
diff --git a/components/password_manager/core/common/password_manager_features.cc b/components/password_manager/core/common/password_manager_features.cc
index 803edef3..5d87110 100644
--- a/components/password_manager/core/common/password_manager_features.cc
+++ b/components/password_manager/core/common/password_manager_features.cc
@@ -72,7 +72,7 @@
 
 BASE_FEATURE(kPasswordsImportM2,
              "PasswordsImportM2",
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 // Enables password reuse detection.
 BASE_FEATURE(kPasswordReuseDetectionEnabled,
diff --git a/components/performance_manager/graph/process_node_impl_unittest.cc b/components/performance_manager/graph/process_node_impl_unittest.cc
index 300e272e..7622cd0 100644
--- a/components/performance_manager/graph/process_node_impl_unittest.cc
+++ b/components/performance_manager/graph/process_node_impl_unittest.cc
@@ -348,6 +348,8 @@
   void AbortScenarioForTesting() override {}
   void SetTraceToUploadForTesting(
       std::unique_ptr<std::string> trace_data) override {}
+
+  void DeleteTracesInDateRange(base::Time start, base::Time end) override {}
 };
 
 using FakeBackgroundTracingManager =
diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl_unittest.cc b/components/privacy_sandbox/privacy_sandbox_settings_impl_unittest.cc
index 76846d99..1cf6c09 100644
--- a/components/privacy_sandbox/privacy_sandbox_settings_impl_unittest.cc
+++ b/components/privacy_sandbox/privacy_sandbox_settings_impl_unittest.cc
@@ -221,7 +221,7 @@
     disabled_topics_feature_list_.Reset();
     disabled_topics_feature_list_.InitAndEnableFeatureWithParameters(
         blink::features::kBrowsingTopicsParameters,
-        {{"browsing_topics_disabled_topics_list", topics_to_disable}});
+        {{"disabled_topics_list", topics_to_disable}});
   }
   content::BrowserTaskEnvironment* task_environment() {
     return &browser_task_environment_;
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
index 2005425aa..a476227 100644
--- a/components/search/ntp_features.cc
+++ b/components/search/ntp_features.cc
@@ -329,6 +329,12 @@
              "NtpHistoryClustersModuleIncludeSyncedVisits",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+// If enabled, the History clsuters module will enable content clustering for
+// the displayed clusters.
+BASE_FEATURE(kNtpHistoryClustersModuleEnableContentClustering,
+             "HistoryClustersModuleEnableContentClustering",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 const base::FeatureParam<std::string> kNtpOgbButtonSelectorParam{
     &kNtpRemoveScrim, "NtpOgbButtonSelectorParam", ".gb_A"};
 
diff --git a/components/search/ntp_features.h b/components/search/ntp_features.h
index ce71239e..60ecc3d 100644
--- a/components/search/ntp_features.h
+++ b/components/search/ntp_features.h
@@ -85,6 +85,7 @@
 BASE_DECLARE_FEATURE(kNtpChromeCartHistoryClusterCoexist);
 BASE_DECLARE_FEATURE(kNtpHistoryClustersModuleFetchClustersUntilExhausted);
 BASE_DECLARE_FEATURE(kNtpHistoryClustersModuleIncludeSyncedVisits);
+BASE_DECLARE_FEATURE(kNtpHistoryClustersModuleEnableContentClustering);
 
 // Parameter for controlling the luminosity difference for NTP elements on light
 // backgrounds.
diff --git a/components/signin/features.gni b/components/signin/features.gni
index dfc229a7..23e9509 100644
--- a/components/signin/features.gni
+++ b/components/signin/features.gni
@@ -8,12 +8,11 @@
   # Compile time flag for Bound Session Credentials.
   # Warning: The feature is still under development.
   enable_bound_session_credentials = is_linux
-
-  # Compile time flag for the Search Engine Choice page.
-  # Warning: The feature is still under development. See b/280753754.
-  enable_search_engine_choice = false
 }
 
+# Warning: The feature is still under development. See b/280753754.
+enable_search_engine_choice = is_linux || is_mac || is_win || is_chromeos
+
 # Dice is supported on the platform (but not necessarily enabled).
 enable_dice_support = is_linux || is_mac || is_win || is_fuchsia
 
diff --git a/components/signin/public/identity_manager/access_token_constants.cc b/components/signin/public/identity_manager/access_token_constants.cc
index 822c7c66..de5140b 100644
--- a/components/signin/public/identity_manager/access_token_constants.cc
+++ b/components/signin/public/identity_manager/access_token_constants.cc
@@ -83,7 +83,6 @@
       GaiaConstants::kCalendarReadOnlyOAuth2Scope,
       GaiaConstants::kCastBackdropOAuth2Scope,
       GaiaConstants::kClearCutOAuth2Scope,
-      GaiaConstants::kCloudTranslationOAuth2Scope,
       GaiaConstants::kDriveOAuth2Scope,
       GaiaConstants::kDriveReadOnlyOAuth2Scope,
       GaiaConstants::kExperimentsAndConfigsOAuth2Scope,
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index 49e7b563..6f7c19d 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">Puni administratorski pristup</translation>
 <translation id="2166378884831602661">Ova web lokacija ne može obezbijediti sigurnu vezu</translation>
 <translation id="2168151236314517198">Administratorska pravila blokiraju štampanje ovog sadržaja</translation>
+<translation id="2175630235841878061">Datoteke veće od 100 MB nisu dostupne za preuzimanje</translation>
 <translation id="2176974405772725904">Sačuvajte adresu na račun</translation>
 <translation id="2178665390943006934">Dugme Ažuriraj Chrome, aktivirajte da ažurirate Chrome iz postavki Chromea</translation>
 <translation id="2181821976797666341">Pravila</translation>
@@ -2404,6 +2405,7 @@
 <translation id="6118782133429281336">Historija polazišta je prazna.</translation>
 <translation id="6120179357481664955">Zapamtiti vaš UPI ID?</translation>
 <translation id="6122181661879998141">prednja strana kartice</translation>
+<translation id="6124058285696691147">Preuzimanje privitka</translation>
 <translation id="6124432979022149706">Konektori Chromea za preduzeća</translation>
 <translation id="6126565365696310362">Koverta Chinese #2</translation>
 <translation id="6127379762771434464">Stavka je uklonjena</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 470a265..f6e8199 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">Ganap na Access ng Admin</translation>
 <translation id="2166378884831602661">Hindi makakapagbigay ng secure na koneksyon ang site na ito</translation>
 <translation id="2168151236314517198">Na-block ng patakaran ng administrator ang pag-print ng content na ito</translation>
+<translation id="2175630235841878061">Hindi available para ma-download ang mga file na mahigit 100MB</translation>
 <translation id="2176974405772725904">I-save ang Address sa Account</translation>
 <translation id="2178665390943006934">Button na I-update ang Chrome, i-activate para ma-update ang Chrome mula sa iyong mga setting ng Chrome</translation>
 <translation id="2181821976797666341">Mga Patakaran</translation>
@@ -2404,6 +2405,7 @@
 <translation id="6118782133429281336">Walang laman ang listahan ng origin.</translation>
 <translation id="6120179357481664955">Natatandaan mo ang iyong UPI ID?</translation>
 <translation id="6122181661879998141">harap ng iyong card</translation>
+<translation id="6124058285696691147">I-download ang attachment</translation>
 <translation id="6124432979022149706">Mga Chrome Enterprise Connector</translation>
 <translation id="6126565365696310362">Envelope Chinese #2</translation>
 <translation id="6127379762771434464">Inalis ang item</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index 9173d6f..db46a5f 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">Potpuni administratorski pristup</translation>
 <translation id="2166378884831602661">Web-lokacija ne može pružiti sigurnu vezu</translation>
 <translation id="2168151236314517198">Administratorska pravila blokiraju ispis tog sadržaja</translation>
+<translation id="2175630235841878061">Datoteke veće od 100 MB nisu dostupne za preuzimanje</translation>
 <translation id="2176974405772725904">Spremanje adrese na račun</translation>
 <translation id="2178665390943006934">Gumb Ažuriraj Chrome, aktivirajte ga da biste ažurirali Chrome u postavkama Chromea</translation>
 <translation id="2181821976797666341">Pravila</translation>
@@ -2403,6 +2404,7 @@
 <translation id="6118782133429281336">Popis izvora je prazan.</translation>
 <translation id="6120179357481664955">Upamtiti vaš UPI ID?</translation>
 <translation id="6122181661879998141">prednja strana kartice</translation>
+<translation id="6124058285696691147">Preuzimanje privitka</translation>
 <translation id="6124432979022149706">Priključci za Chrome za poduzeća</translation>
 <translation id="6126565365696310362">Kineska omotnica br. 2</translation>
 <translation id="6127379762771434464">Stavka je uklonjena</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index dc5cbff..978d84f 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">Teljes rendszergazdai hozzáférés</translation>
 <translation id="2166378884831602661">A webhely nem képes biztonságos kapcsolatot nyújtani</translation>
 <translation id="2168151236314517198">Ennek a tartalomnak a nyomtatását rendszergazdai házirend tiltja</translation>
+<translation id="2175630235841878061">100 MB-nál nagyobb fájlokat nem lehet letölteni</translation>
 <translation id="2176974405772725904">Cím mentése a fiókba</translation>
 <translation id="2178665390943006934">A Chrome frissítése gomb. A gombot megnyomva frissítheti a Chrome-ot a Chrome beállításai között.</translation>
 <translation id="2181821976797666341">Házirendek</translation>
@@ -2402,6 +2403,7 @@
 <translation id="6118782133429281336">Az eredetlista üres.</translation>
 <translation id="6120179357481664955">Emlékszik UPI-azonosítójára?</translation>
 <translation id="6122181661879998141">a kártya elején</translation>
+<translation id="6124058285696691147">A melléklet letöltése</translation>
 <translation id="6124432979022149706">Chrome Enterprise csatlakozási szoftverek</translation>
 <translation id="6126565365696310362">2. kínai boríték</translation>
 <translation id="6127379762771434464">Elem eltávolítva</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index b66c1af0..0985123 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -1750,7 +1750,7 @@
 <translation id="4736491186715342415">Kendaraan bermotor</translation>
 <translation id="4736825316280949806">Buka Ulang Chromium</translation>
 <translation id="4736934858538408121">Kartu virtual</translation>
-<translation id="473775607612524610">Perbarui</translation>
+<translation id="473775607612524610">Update</translation>
 <translation id="4738601419177586157">Saran penelusuran <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Kelola sandi...</translation>
 <translation id="4743275772928623722">Sistem Anda telah diupdate, tetapi beberapa aplikasi dan file Anda tidak dapat dipulihkan. Aplikasi Anda akan didownload lagi secara otomatis.</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index b0ea096..7ba2045c 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -1755,7 +1755,7 @@
 <translation id="4744514002166662487">Crea presentazione</translation>
 <translation id="4744603770635761495">Percorso eseguibile</translation>
 <translation id="4749011317274908093">Stai navigando in incognito</translation>
-<translation id="4750671009706599284">questo telefono</translation>
+<translation id="4750671009706599284">questo smartphone</translation>
 <translation id="4750917950439032686">Le tue informazioni (ad esempio password o numeri di carte di credito) restano private quando vengono inviate a questo sito.</translation>
 <translation id="4751249061288707459">Ultimo aggiornamento del consenso:</translation>
 <translation id="4751476147751820511">Sensori di movimento o della luce</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index b9e1786..1dade69 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">ადმინისტრატორის სრული წვდომა</translation>
 <translation id="2166378884831602661">ეს საიტი ვერ უზრუნველყოფს დაცულ კავშირს</translation>
 <translation id="2168151236314517198">ამ კონტენტის ბეჭდვა დაბლოკილია ადმინისტრატორის წესების მიხედვით</translation>
+<translation id="2175630235841878061">100 მბაიტზე დიდი ზომის ფაილები მიუწვდომელია ჩამოსატვირთად</translation>
 <translation id="2176974405772725904">შეინახეთ მისამართი ანგარიშში</translation>
 <translation id="2178665390943006934">Chrome-ის განახლების ღილაკი, Chrome-ის პარამეტრებიდან Chrome-ის გასაახლებლად გაააქტიურეთ ის</translation>
 <translation id="2181821976797666341">წესები</translation>
@@ -2404,6 +2405,7 @@
 <translation id="6118782133429281336">წყაროების სია ცარიელია.</translation>
 <translation id="6120179357481664955">გსურთ თქვენი UPI ID-ს დამახსოვრება?</translation>
 <translation id="6122181661879998141">თქვენი ბარათის წინა ნაწილზე</translation>
+<translation id="6124058285696691147">დანართის ჩამოტვირთვა</translation>
 <translation id="6124432979022149706">Chrome Enterprise მაერთებლები</translation>
 <translation id="6126565365696310362">კონვერტი Chinese 2</translation>
 <translation id="6127379762771434464">ერთეული ამოიშალა</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index 1f9fefe..0a32ebd 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -576,6 +576,7 @@
 <translation id="2166049586286450108">ការចូលប្រើពេញលេញដោយអ្នកគ្រប់គ្រង</translation>
 <translation id="2166378884831602661">គេហទំព័រនេះមិនអាចផ្តល់ការតភ្ជាប់ដែលមានសុវត្ថិភាពទេ</translation>
 <translation id="2168151236314517198">ការបោះពុម្ពខ្លឹមសារនេះត្រូវបានទប់ស្កាត់ដោយគោលការណ៍របស់អ្នកគ្រប់គ្រង</translation>
+<translation id="2175630235841878061">មិនអាចទាញយកឯកសារលើសពី 100MB បានទេ</translation>
 <translation id="2176974405772725904">រក្សាទុក​អាសយដ្ឋាន​នៅក្នុង​គណនី</translation>
 <translation id="2178665390943006934">ប៊ូតុង "ដំឡើងកំណែ Chrome", បើកដំណើរការ ដើម្បីដំឡើងកំណែ Chrome ពីការកំណត់ Chrome របស់អ្នក</translation>
 <translation id="2181821976797666341">គោលការណ៍</translation>
@@ -2408,6 +2409,7 @@
 <translation id="6118782133429281336">បញ្ជី​ដើម​ទទេ។</translation>
 <translation id="6120179357481664955">ចងចាំ​លេខសម្គាល់ UPI របស់អ្នក​ដែរទេ​?</translation>
 <translation id="6122181661879998141">ផ្នែកខាងមុខ​កាតរបស់អ្នក</translation>
+<translation id="6124058285696691147">ទាញ​យកឯកសារ​ភ្ជាប់</translation>
 <translation id="6124432979022149706">កម្មវិធីភ្ជាប់ Chrome Enterprise</translation>
 <translation id="6126565365696310362">ស្រោមសំបុត្រចិន #2</translation>
 <translation id="6127379762771434464">ធាតុត្រូវបានយកចេញ</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index cd8320a..f152a22 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">Visateisė administratoriaus prieiga</translation>
 <translation id="2166378884831602661">Ši svetainė negali užtikrinti saugaus ryšio</translation>
 <translation id="2168151236314517198">Šio turinio spausdinimas yra blokuojamas remiantis administratoriaus politika</translation>
+<translation id="2175630235841878061">Negalima atsisiųsti didesnių nei 100 MB failų</translation>
 <translation id="2176974405772725904">Adreso išsaugojimas paskyroje</translation>
 <translation id="2178665390943006934">Mygtukas „Atnaujinti „Chrome“; suaktyvinkite, kad atnaujintumėte „Chrome“ skiltyje „Chrome“ nustatymai“</translation>
 <translation id="2181821976797666341">Politika</translation>
@@ -2405,6 +2406,7 @@
 <translation id="6118782133429281336">Kilmės sąrašas tuščias.</translation>
 <translation id="6120179357481664955">Prisiminti UPI ID?</translation>
 <translation id="6122181661879998141">priekinėje kortelės dalyje</translation>
+<translation id="6124058285696691147">Atsisiųsti priedą</translation>
 <translation id="6124432979022149706">Chrome Enterprise Connectors</translation>
 <translation id="6126565365696310362">Nr. 2 kinietiškas vokas</translation>
 <translation id="6127379762771434464">Elementas pašalintas</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index ab2b041b..d0b2ceb 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">പൂർണ്ണമായ അഡ്‌മിൻ ആക്‌സസ്</translation>
 <translation id="2166378884831602661">ഈ സൈറ്റിന് സുരക്ഷിതമായ കണക്ഷൻ നൽകാനാകില്ല</translation>
 <translation id="2168151236314517198">ഈ ഉള്ളടക്കം പ്രിന്റ് ചെയ്യുന്നത് അഡ്‌മിൻ നയം ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation>
+<translation id="2175630235841878061">100MB-യിൽ കൂടുതൽ വലുപ്പമുള്ള ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യാൻ ലഭ്യമല്ല</translation>
 <translation id="2176974405772725904">വിലാസം അക്കൗണ്ടിൽ സംരക്ഷിക്കുക</translation>
 <translation id="2178665390943006934">'Chrome അപ്ഡേറ്റ് ചെയ്യുക' ബട്ടൺ, നിങ്ങളുടെ Chrome ക്രമീകരണത്തിൽ Chrome അപ്ഡേറ്റ് ചെയ്യാൻ സജീവമാക്കുക</translation>
 <translation id="2181821976797666341">നയങ്ങൾ</translation>
@@ -2403,6 +2404,7 @@
 <translation id="6118782133429281336">ഒറിജിൻ ലിസ്റ്റ് ശൂന്യമാണ്.</translation>
 <translation id="6120179357481664955">നിങ്ങളുടെ UPI ഐഡി ഓർമ്മയുണ്ടോ?</translation>
 <translation id="6122181661879998141">നിങ്ങളുടെ കാർഡിന്റെ മുൻവശത്ത്</translation>
+<translation id="6124058285696691147">അറ്റാച്ച്മെന്റ് ഡൗൺലോഡ് ചെയ്യുക</translation>
 <translation id="6124432979022149706">Chrome എന്റർപ്രൈസ് കണക്റ്ററുകൾ</translation>
 <translation id="6126565365696310362">Envelope Chinese #2</translation>
 <translation id="6127379762771434464">ഇനം നീക്കംചെയ്‌തു</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index faf0b8d..4f12c36 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">Akses Penuh Pentadbir</translation>
 <translation id="2166378884831602661">Tapak ini tidak dapat menyediakan sambungan yang selamat</translation>
 <translation id="2168151236314517198">Pencetakan kandungan ini disekat oleh dasar pentadbir anda</translation>
+<translation id="2175630235841878061">Fail dengan saiz melebihi 100MB tidak tersedia untuk dimuat turun</translation>
 <translation id="2176974405772725904">Simpan Alamat dalam Akaun</translation>
 <translation id="2178665390943006934">Butang kemas kinikan Chrome, aktifkan untuk mengemaskinikan Chrome daripada tetapan Chrome anda</translation>
 <translation id="2181821976797666341">Dasar</translation>
@@ -2405,6 +2406,7 @@
 <translation id="6118782133429281336">Senarai asalan kosong.</translation>
 <translation id="6120179357481664955">Ingat ID UPI anda?</translation>
 <translation id="6122181661879998141">bahagian hadapan kad anda</translation>
+<translation id="6124058285696691147">Muat turun lampiran</translation>
 <translation id="6124432979022149706">Chrome Enterprise Connectors</translation>
 <translation id="6126565365696310362">Sampul Cina #2</translation>
 <translation id="6127379762771434464">Item dialih keluar</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index 71440b83..32bf23b9 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">Pełny dostęp administratora</translation>
 <translation id="2166378884831602661">Ta witryna nie umożliwia bezpiecznego połączenia</translation>
 <translation id="2168151236314517198">Drukowanie tej treści jest zablokowane przez zasadę administratora</translation>
+<translation id="2175630235841878061">Nie można pobrać plików przekraczających 100 MB</translation>
 <translation id="2176974405772725904">Zapisz adres na koncie</translation>
 <translation id="2178665390943006934">Przycisk Zaktualizuj Chrome; aktywuj, aby zaktualizować przeglądarkę Chrome z poziomu jej ustawień</translation>
 <translation id="2181821976797666341">Zasady</translation>
@@ -2404,6 +2405,7 @@
 <translation id="6118782133429281336">Lista źródeł jest pusta.</translation>
 <translation id="6120179357481664955">Zapamiętać Twój identyfikator UPI?</translation>
 <translation id="6122181661879998141">z przodu karty</translation>
+<translation id="6124058285696691147">Pobierz załącznik</translation>
 <translation id="6124432979022149706">Oprogramowanie sprzęgające Chrome Enterprise</translation>
 <translation id="6126565365696310362">Koperta chińska nr 2</translation>
 <translation id="6127379762771434464">Element został usunięty</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 7ff1dac..a184fce 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -574,6 +574,7 @@
 <translation id="2166049586286450108">Acesso de gestor total</translation>
 <translation id="2166378884831602661">Este site não consegue fornecer uma ligação segura</translation>
 <translation id="2168151236314517198">A impressão deste conteúdo está bloqueada pela política do administrador.</translation>
+<translation id="2175630235841878061">Os ficheiros com mais de 100 MB não estão disponíveis para transferência</translation>
 <translation id="2176974405772725904">Guarde a morada na conta</translation>
 <translation id="2178665390943006934">Botão Atualizar Chrome; ative para atualizar o Chrome nas definições do Chrome</translation>
 <translation id="2181821976797666341">Políticas</translation>
@@ -2404,6 +2405,7 @@
 <translation id="6118782133429281336">A lista de origens está vazia.</translation>
 <translation id="6120179357481664955">Lembra-se do seu ID do UPI?</translation>
 <translation id="6122181661879998141">na frente do cartão</translation>
+<translation id="6124058285696691147">Transferir anexo</translation>
 <translation id="6124432979022149706">Conetores do Chrome Enterprise</translation>
 <translation id="6126565365696310362">Envelope Chinese n.º 2</translation>
 <translation id="6127379762771434464">Item removido</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index ff907e9..30caa116 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -575,6 +575,7 @@
 <translation id="2166049586286450108">منتظم کیلئے مکمل رسائی</translation>
 <translation id="2166378884831602661">یہ سائٹ ایک محفوظ کنکشن فراہم نہیں کر سکتی ہے</translation>
 <translation id="2168151236314517198">منتظم کی پالیسی کے تحت، اس مواد کی پرنٹنگ مسدود ہے</translation>
+<translation id="2175630235841878061">‏100MB سے زیادہ کی فائلز ڈاؤن لوڈ کے لیے دستیاب نہیں ہیں</translation>
 <translation id="2176974405772725904">اکاؤنٹ میں پتہ محفوظ کریں</translation>
 <translation id="2178665390943006934">‏Chrome اپ ڈیٹ کریں بٹن، اپنی Chrome کی ترتیبات سے Chrome کو اپ ڈیٹ کرنے کے لیے فعال کریں</translation>
 <translation id="2181821976797666341">پالیسیاں</translation>
@@ -2406,6 +2407,7 @@
 <translation id="6118782133429281336">اصل فہرست خالی ہے۔</translation>
 <translation id="6120179357481664955">‏آپ کی UPI ID یاد رکھیں؟</translation>
 <translation id="6122181661879998141">آپ کے کارڈ کے سامنے</translation>
+<translation id="6124058285696691147">منسلکہ ڈاؤن لوڈ کریں</translation>
 <translation id="6124432979022149706">‏Chrome Enterprise کنیکٹرز</translation>
 <translation id="6126565365696310362">‏Chinese #2 لفافہ</translation>
 <translation id="6127379762771434464">آئٹم ہٹا دیا گیا</translation>
diff --git a/components/stylus_handwriting/android/java/src/org/chromium/components/stylus_handwriting/AndroidStylusWritingHandler.java b/components/stylus_handwriting/android/java/src/org/chromium/components/stylus_handwriting/AndroidStylusWritingHandler.java
index bc3118b2..9f95a23de 100644
--- a/components/stylus_handwriting/android/java/src/org/chromium/components/stylus_handwriting/AndroidStylusWritingHandler.java
+++ b/components/stylus_handwriting/android/java/src/org/chromium/components/stylus_handwriting/AndroidStylusWritingHandler.java
@@ -4,6 +4,7 @@
 
 package org.chromium.components.stylus_handwriting;
 
+import android.content.ComponentName;
 import android.content.Context;
 import android.os.Build;
 import android.provider.Settings;
@@ -60,11 +61,12 @@
 
         InputMethodManager inputMethodManager = context.getSystemService(InputMethodManager.class);
         List<InputMethodInfo> inputMethods = inputMethodManager.getInputMethodList();
-        String defaultImePackage = Settings.Secure.getString(
-                context.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
+        ComponentName defaultImePackage =
+                ComponentName.unflattenFromString(Settings.Secure.getString(
+                        context.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD));
 
         for (InputMethodInfo inputMethod : inputMethods) {
-            if (!inputMethod.getComponent().flattenToString().equals(defaultImePackage)) continue;
+            if (!inputMethod.getComponent().equals(defaultImePackage)) continue;
 
             boolean result = inputMethod.supportsStylusHandwriting();
 
diff --git a/components/sync/protocol/entity_data.cc b/components/sync/protocol/entity_data.cc
index b1766f9..3257c66 100644
--- a/components/sync/protocol/entity_data.cc
+++ b/components/sync/protocol/entity_data.cc
@@ -43,7 +43,9 @@
       // tree.
       .Set("PARENT_ID", legacy_parent_id)
       .Set("CTIME", GetTimeDebugString(creation_time))
-      .Set("MTIME", GetTimeDebugString(modification_time));
+      .Set("MTIME", GetTimeDebugString(modification_time))
+      .Set("RECIPIENT_PUBLIC_KEY",
+           CrossUserSharingPublicKeyToValue(recipient_public_key));
 }
 
 size_t EntityData::EstimateMemoryUsage() const {
@@ -57,6 +59,7 @@
   memory_usage += EstimateMemoryUsage(name);
   memory_usage += EstimateMemoryUsage(specifics);
   memory_usage += EstimateMemoryUsage(legacy_parent_id);
+  memory_usage += EstimateMemoryUsage(recipient_public_key);
   return memory_usage;
 }
 
diff --git a/components/sync/protocol/entity_data.h b/components/sync/protocol/entity_data.h
index 90f931b..18c987f 100644
--- a/components/sync/protocol/entity_data.h
+++ b/components/sync/protocol/entity_data.h
@@ -75,6 +75,10 @@
   // components/sync_bookmarks/parent_guid_preprocessing.cc.
   std::string legacy_parent_id;
 
+  // Recipient's Public Key used for cross-user sharing data types. Used for
+  // only outgoing password sharing invitations (created locally).
+  sync_pb::CrossUserSharingPublicKey recipient_public_key;
+
   // Indicate whether bookmark's |unique_position| was missing in the original
   // specifics during GetUpdates. If the |unique_position| in specifics was
   // evaluated by AdaptUniquePositionForBookmark(), this field will be set to
diff --git a/components/sync/protocol/proto_memory_estimations.cc b/components/sync/protocol/proto_memory_estimations.cc
index b9e48a9..fb4e437 100644
--- a/components/sync/protocol/proto_memory_estimations.cc
+++ b/components/sync/protocol/proto_memory_estimations.cc
@@ -13,6 +13,7 @@
 #include "components/sync/protocol/entity_metadata.pb.h"
 #include "components/sync/protocol/entity_specifics.pb.h"
 #include "components/sync/protocol/model_type_state.pb.h"
+#include "components/sync/protocol/nigori_specifics.pb.h"
 #include "components/sync/protocol/persisted_entity_data.pb.h"
 #include "components/sync/protocol/proto_visitors.h"
 #include "components/sync/protocol/sync_entity.pb.h"
@@ -145,6 +146,7 @@
 #define INSTANTIATE(Proto) \
   template size_t EstimateMemoryUsage<Proto>(const Proto&);
 
+INSTANTIATE(CrossUserSharingPublicKey)
 INSTANTIATE(DataTypeContext)
 INSTANTIATE(DataTypeProgressMarker)
 INSTANTIATE(EntityMetadata)
diff --git a/components/sync/protocol/proto_value_conversions.cc b/components/sync/protocol/proto_value_conversions.cc
index 720def6..e1913354 100644
--- a/components/sync/protocol/proto_value_conversions.cc
+++ b/components/sync/protocol/proto_value_conversions.cc
@@ -33,6 +33,7 @@
 #include "components/sync/protocol/nigori_specifics.pb.h"
 #include "components/sync/protocol/os_preference_specifics.pb.h"
 #include "components/sync/protocol/os_priority_preference_specifics.pb.h"
+#include "components/sync/protocol/password_sharing_invitation_specifics.pb.h"
 #include "components/sync/protocol/password_specifics.pb.h"
 #include "components/sync/protocol/preference_specifics.pb.h"
 #include "components/sync/protocol/printer_specifics.pb.h"
@@ -339,6 +340,7 @@
 IMPLEMENT_PROTO_TO_VALUE(BookmarkSpecifics)
 IMPLEMENT_PROTO_TO_VALUE(ClientConfigParams)
 IMPLEMENT_PROTO_TO_VALUE(ContactInfoSpecifics)
+IMPLEMENT_PROTO_TO_VALUE(CrossUserSharingPublicKey)
 IMPLEMENT_PROTO_TO_VALUE(DebugEventInfo)
 IMPLEMENT_PROTO_TO_VALUE(DebugInfo)
 IMPLEMENT_PROTO_TO_VALUE(DeviceInfoSpecifics)
@@ -351,12 +353,14 @@
 IMPLEMENT_PROTO_TO_VALUE(GlobalIdDirective)
 IMPLEMENT_PROTO_TO_VALUE(HistoryDeleteDirectiveSpecifics)
 IMPLEMENT_PROTO_TO_VALUE(HistorySpecifics)
+IMPLEMENT_PROTO_TO_VALUE(IncomingPasswordSharingInvitationSpecifics)
 IMPLEMENT_PROTO_TO_VALUE(LinkedAppIconInfo)
 IMPLEMENT_PROTO_TO_VALUE(ManagedUserSettingSpecifics)
 IMPLEMENT_PROTO_TO_VALUE(NavigationRedirect)
 IMPLEMENT_PROTO_TO_VALUE(NigoriSpecifics)
 IMPLEMENT_PROTO_TO_VALUE(OsPreferenceSpecifics)
 IMPLEMENT_PROTO_TO_VALUE(OsPriorityPreferenceSpecifics)
+IMPLEMENT_PROTO_TO_VALUE(OutgoingPasswordSharingInvitationSpecifics)
 IMPLEMENT_PROTO_TO_VALUE(PasswordSpecifics)
 IMPLEMENT_PROTO_TO_VALUE(PasswordSpecificsData)
 IMPLEMENT_PROTO_TO_VALUE(PasswordSpecificsData_Notes)
diff --git a/components/sync/protocol/proto_value_conversions.h b/components/sync/protocol/proto_value_conversions.h
index 7c5b64e..d0ded52c 100644
--- a/components/sync/protocol/proto_value_conversions.h
+++ b/components/sync/protocol/proto_value_conversions.h
@@ -25,6 +25,7 @@
 class ClientToServerMessage;
 class ClientToServerResponse;
 class ContactInfoSpecifics;
+class CrossUserSharingPublicKey;
 class DebugEventInfo;
 class DebugInfo;
 class DeviceInfoSpecifics;
@@ -36,12 +37,14 @@
 class ExtensionSpecifics;
 class HistoryDeleteDirectiveSpecifics;
 class HistorySpecifics;
+class IncomingPasswordSharingInvitationSpecifics;
 class LinkedAppIconInfo;
 class ManagedUserSettingSpecifics;
 class NavigationRedirect;
 class NigoriSpecifics;
 class OsPreferenceSpecifics;
 class OsPriorityPreferenceSpecifics;
+class OutgoingPasswordSharingInvitationSpecifics;
 class PasswordSpecifics;
 class PasswordSpecificsData;
 class PaymentsCustomerData;
@@ -158,6 +161,9 @@
 base::Value HistorySpecificsToValue(
     const sync_pb::HistorySpecifics& history_specifics);
 
+base::Value IncomingPasswordSharingInvitationSpecificsToValue(
+    const sync_pb::IncomingPasswordSharingInvitationSpecifics& specifics);
+
 base::Value LinkedAppIconInfoToValue(
     const sync_pb::LinkedAppIconInfo& linked_app_icon_info);
 
@@ -176,6 +182,9 @@
 base::Value OsPriorityPreferenceSpecificsToValue(
     const sync_pb::OsPriorityPreferenceSpecifics& specifics);
 
+base::Value OutgoingPasswordSharingInvitationSpecificsToValue(
+    const sync_pb::OutgoingPasswordSharingInvitationSpecifics& specifics);
+
 base::Value PasswordSpecificsToValue(
     const sync_pb::PasswordSpecifics& password_specifics);
 
@@ -204,6 +213,9 @@
 base::Value PriorityPreferenceSpecificsToValue(
     const sync_pb::PriorityPreferenceSpecifics& proto);
 
+base::Value CrossUserSharingPublicKeyToValue(
+    const sync_pb::CrossUserSharingPublicKey& proto);
+
 base::Value ReadingListSpecificsToValue(
     const sync_pb::ReadingListSpecifics& proto);
 
diff --git a/components/viz/service/display/skia_renderer.cc b/components/viz/service/display/skia_renderer.cc
index 969c473..098e9f8 100644
--- a/components/viz/service/display/skia_renderer.cc
+++ b/components/viz/service/display/skia_renderer.cc
@@ -77,6 +77,7 @@
 #include "third_party/skia/include/gpu/GrDirectContext.h"
 #include "third_party/skia/include/private/chromium/GrDeferredDisplayList.h"
 #include "third_party/skia/modules/skcms/skcms.h"
+#include "third_party/skia/src/core/SkCanvasPriv.h"
 #include "ui/base/ui_base_features.h"
 #include "ui/gfx/buffer_format_util.h"
 #include "ui/gfx/color_transform.h"
@@ -731,6 +732,9 @@
   // the draw can be skipped.
   gfx::Rect filter_bounds;
 
+  // Multiplier used for downscaling backdrop filter.
+  float backdrop_filter_quality = 1.0f;
+
   // Geometry from the bypassed RenderPassDrawQuad.
   absl::optional<BypassGeometry> bypass_geometry;
 
@@ -1502,9 +1506,9 @@
   SkRect bounds = gfx::RectFToSkRect(
       rpdq_params.bypass_geometry ? rpdq_params.bypass_geometry->clip_rect
                                   : params->visible_rect);
-  current_canvas_->saveLayer(
-      SkCanvas::SaveLayerRec(&bounds, &layer_paint, backdrop_filter.get(), 0));
-
+  current_canvas_->saveLayer(SkCanvasPriv::ScaledBackdropLayer(
+      &bounds, &layer_paint, backdrop_filter.get(),
+      rpdq_params.backdrop_filter_quality, 0));
   // If we have backdrop filtered content (and not transparent black like with
   // regular render passes), we have to clear out the parts of the layer that
   // shouldn't show the backdrop
@@ -3038,6 +3042,18 @@
   // TODO(weiliangc): ChromeOS would need backdrop_filter_quality implemented
   if (backdrop_filters) {
     DCHECK(!backdrop_filters->IsEmpty());
+    cc::FilterOperations filter_operations;
+    for (const cc::FilterOperation& op : backdrop_filters->operations()) {
+      if (op.type() == cc::FilterOperation::BLUR) {
+        cc::FilterOperation blur_op(op);
+        blur_op.set_amount(op.amount() * quad->backdrop_filter_quality);
+        filter_operations.Append(blur_op);
+      } else {
+        filter_operations.Append(op);
+      }
+    }
+
+    rpdq_params.backdrop_filter_quality = quad->backdrop_filter_quality;
 
     // quad->rect represents the layer's bounds *after* any display scale has
     // been applied to it. The ZOOM FilterOperation uses the layer's bounds as
@@ -3050,7 +3066,7 @@
       SkIRect filter_rect =
           inv_local_matrix.mapRect(gfx::RectToSkRect(quad->rect)).roundOut();
       auto bg_paint_filter = cc::RenderSurfaceFilters::BuildImageFilter(
-          *backdrop_filters, gfx::SkIRectToRect(filter_rect));
+          filter_operations, gfx::SkIRectToRect(filter_rect));
 
       auto sk_bg_filter =
           bg_paint_filter ? bg_paint_filter->cached_sk_filter_ : nullptr;
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 55364bf..2212b65 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -152,6 +152,7 @@
 #include "content/browser/renderer_host/input/fling_scheduler_mac.h"
 #include "services/device/public/mojom/wake_lock_provider.mojom.h"
 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h"
+#include "ui/base/cocoa/cursor_utils.h"
 #endif
 
 using blink::DragOperationsMask;
@@ -1093,6 +1094,12 @@
   visual_properties.compositing_scale_factor =
       properties_from_parent_local_root_.compositing_scale_factor;
 
+#if BUILDFLAG(IS_MAC)
+  // Only macOS cursor scaling affects CSS custom cursor images for now.
+  visual_properties.cursor_accessibility_scale_factor =
+      ui::GetCursorAccessibilityScaleFactor();
+#endif
+
   // The |visible_viewport_size| is affected by auto-resize which is magical and
   // tricky.
   //
@@ -2772,6 +2779,8 @@
              new_visual_properties.page_scale_factor ||
          old_visual_properties->compositing_scale_factor !=
              new_visual_properties.compositing_scale_factor ||
+         old_visual_properties->cursor_accessibility_scale_factor !=
+             new_visual_properties.cursor_accessibility_scale_factor ||
          old_visual_properties->is_pinch_gesture_active !=
              new_visual_properties.is_pinch_gesture_active ||
          old_visual_properties->root_widget_window_segments !=
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h
index dda8547..286881d 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.h
+++ b/content/browser/renderer_host/render_widget_host_view_mac.h
@@ -51,6 +51,7 @@
 
 @class NSAccessibilityRemoteUIElement;
 @class RenderWidgetHostViewCocoa;
+@class CursorAccessibilityScaleFactorObserver;
 
 namespace content {
 
@@ -616,6 +617,9 @@
 
   std::unique_ptr<CursorManager> cursor_manager_;
 
+  // Observes macOS's accessibility pointer size user preference changes.
+  CursorAccessibilityScaleFactorObserver* __strong cursor_scale_observer_;
+
   // Used to track active password input sessions.
   std::unique_ptr<ui::ScopedPasswordInputEnabler> password_input_enabler_;
 
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 8699484..92d7ea84 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -60,6 +60,8 @@
 #import "ui/base/clipboard/clipboard_util_mac.h"
 #include "ui/base/cocoa/animation_utils.h"
 #include "ui/base/cocoa/cocoa_base_utils.h"
+#include "ui/base/cocoa/cursor_accessibility_scale_factor_observer.h"
+#include "ui/base/cocoa/cursor_utils.h"
 #include "ui/base/cocoa/remote_accessibility_api.h"
 #import "ui/base/cocoa/secure_password_input.h"
 #include "ui/base/cocoa/text_services_context_menu.h"
@@ -240,6 +242,14 @@
   }
 
   cursor_manager_ = std::make_unique<CursorManager>(this);
+  // Start observing changes to the system's cursor accessibility scale factor.
+  __block auto render_widget_host_view_mac = this;
+  cursor_scale_observer_ =
+      [[CursorAccessibilityScaleFactorObserver alloc] initWithHandler:^{
+        ui::GetCursorAccessibilityScaleFactor(/*force_update=*/true);
+        // Notify renderers of the new system cursor accessibility scale factor.
+        render_widget_host_view_mac->host()->SynchronizeVisualProperties();
+      }];
 
   if (GetTextInputManager())
     GetTextInputManager()->AddObserver(this);
diff --git a/content/browser/smart_card/smart_card_browsertest.cc b/content/browser/smart_card/smart_card_browsertest.cc
index 31f5b350..464aa668 100644
--- a/content/browser/smart_card/smart_card_browsertest.cc
+++ b/content/browser/smart_card/smart_card_browsertest.cc
@@ -48,6 +48,7 @@
 using testing::Exactly;
 using testing::HasSubstr;
 using testing::InSequence;
+using testing::MatchesRegex;
 using testing::StrictMock;
 
 namespace content {
@@ -458,6 +459,119 @@
     })())"));
 }
 
+IN_PROC_BROWSER_TEST_F(SmartCardTest, TransmitWithOptions) {
+  ASSERT_TRUE(NavigateToURL(shell(), GetIsolatedContextUrl()));
+
+  MockSmartCardContextFactory& mock_context_factory =
+      GetFakeSmartCardDelegate().mock_context_factory;
+  MockSmartCardConnection mock_connection;
+  mojo::Receiver<SmartCardConnection> connection_receiver(&mock_connection);
+
+  {
+    InSequence s;
+
+    EXPECT_CALL(mock_context_factory,
+                Connect("Fake reader", SmartCardShareMode::kDirect, _, _))
+        .WillOnce([&connection_receiver](
+                      const std::string& reader,
+                      device::mojom::SmartCardShareMode share_mode,
+                      device::mojom::SmartCardProtocolsPtr preferred_protocols,
+                      SmartCardContext::ConnectCallback callback) {
+          EXPECT_FALSE(preferred_protocols->t0);
+          EXPECT_FALSE(preferred_protocols->t1);
+          EXPECT_FALSE(preferred_protocols->raw);
+
+          auto success = device::mojom::SmartCardConnectSuccess::New(
+              connection_receiver.BindNewPipeAndPassRemote(),
+              SmartCardProtocol::kUndefined);
+
+          std::move(callback).Run(
+              device::mojom::SmartCardConnectResult::NewSuccess(
+                  std::move(success)));
+        });
+
+    EXPECT_CALL(mock_connection, Transmit(SmartCardProtocol::kT0, _, _))
+        .WillOnce([](SmartCardProtocol protocol,
+                     const std::vector<uint8_t>& data,
+                     SmartCardConnection::TransmitCallback callback) {
+          EXPECT_EQ(data, std::vector<uint8_t>({3u, 2u, 1u}));
+          std::move(callback).Run(
+              device::mojom::SmartCardDataResult::NewData({12u, 34u}));
+        });
+  }
+
+  EXPECT_EQ("response: 12,34", EvalJs(shell(), R"(
+    (async () => {
+      let context = await navigator.smartCard.establishContext();
+
+      let connection =
+        (await context.connect("Fake reader", "direct")).connection;
+
+      // In real usage you would have in between:
+      // let IOCTL_SMARTCARD_SET_PROTOCOL = ...;
+      // connection.control(IOCTL_SMARTCARD_SET_PROTOCOL, ...);
+
+      let apdu = new Uint8Array([0x03, 0x02, 0x01]);
+      let response = await connection.transmit(apdu, {protocol: "t0"});
+
+      let responseString = new Uint8Array(response).toString();
+      return `response: ${responseString}`;
+    })())"));
+}
+
+IN_PROC_BROWSER_TEST_F(SmartCardTest, TransmitNoProtocol) {
+  ASSERT_TRUE(NavigateToURL(shell(), GetIsolatedContextUrl()));
+
+  MockSmartCardContextFactory& mock_context_factory =
+      GetFakeSmartCardDelegate().mock_context_factory;
+  StrictMock<MockSmartCardConnection> mock_connection;
+  mojo::Receiver<SmartCardConnection> connection_receiver(&mock_connection);
+
+  {
+    InSequence s;
+
+    EXPECT_CALL(mock_context_factory,
+                Connect("Fake reader", SmartCardShareMode::kDirect, _, _))
+        .WillOnce([&connection_receiver](
+                      const std::string& reader,
+                      device::mojom::SmartCardShareMode share_mode,
+                      device::mojom::SmartCardProtocolsPtr preferred_protocols,
+                      SmartCardContext::ConnectCallback callback) {
+          EXPECT_FALSE(preferred_protocols->t0);
+          EXPECT_FALSE(preferred_protocols->t1);
+          EXPECT_FALSE(preferred_protocols->raw);
+
+          auto success = device::mojom::SmartCardConnectSuccess::New(
+              connection_receiver.BindNewPipeAndPassRemote(),
+              SmartCardProtocol::kUndefined);
+
+          std::move(callback).Run(
+              device::mojom::SmartCardConnectResult::NewSuccess(
+                  std::move(success)));
+        });
+  }
+
+  EXPECT_THAT(
+      EvalJs(shell(), R"(
+    (async () => {
+      let context = await navigator.smartCard.establishContext();
+
+      let connection =
+        (await context.connect("Fake reader", "direct")).connection;
+
+      let apdu = new Uint8Array([0x03, 0x02, 0x01]);
+      try {
+        await connection.transmit(apdu);
+      } catch(e) {
+        return `transmit: ${e.name}, ${e.message}`;
+      }
+
+      return "ok";
+    })())")
+          .ExtractString(),
+      MatchesRegex("transmit: InvalidStateError, .*No active protocol\\."));
+}
+
 IN_PROC_BROWSER_TEST_F(SmartCardTest, Control) {
   ASSERT_TRUE(NavigateToURL(shell(), GetIsolatedContextUrl()));
 
diff --git a/content/browser/tracing/background_tracing_manager_impl.cc b/content/browser/tracing/background_tracing_manager_impl.cc
index 91f9358..73a6de7 100644
--- a/content/browser/tracing/background_tracing_manager_impl.cc
+++ b/content/browser/tracing/background_tracing_manager_impl.cc
@@ -49,6 +49,8 @@
 namespace content {
 
 namespace {
+// The time to live of a trace is currently 14 days.
+const base::TimeDelta kTraceTimeToLive = base::Days(14);
 
 const char kBackgroundTracingConfig[] = "config";
 
@@ -150,7 +152,12 @@
   if (!creation_result) {
     RecordMetric(Metrics::DATABASE_INITIALIZATION_FAILED);
     trace_database_.Reset();
+    return;
   }
+  clean_database_timer_.Start(
+      FROM_HERE, base::Days(1),
+      base::BindRepeating(&BackgroundTracingManagerImpl::CleanDatabase,
+                          weak_factory_.GetWeakPtr()));
 }
 
 void BackgroundTracingManagerImpl::AddMetadataGeneratorFunction() {
@@ -582,6 +589,24 @@
   legacy_active_scenario_.reset();
 }
 
+void BackgroundTracingManagerImpl::CleanDatabase() {
+  DCHECK(trace_database_);
+
+  trace_database_
+      .AsyncCall(
+          base::IgnoreResult(&TraceReportDatabase::DeleteTracesOlderThan))
+      .WithArgs(kTraceTimeToLive);
+}
+
+void BackgroundTracingManagerImpl::DeleteTracesInDateRange(base::Time start,
+                                                           base::Time end) {
+  InitializeTraceReportDatabase();
+  trace_database_
+      .AsyncCall(
+          base::IgnoreResult(&TraceReportDatabase::DeleteTracesInDateRange))
+      .WithArgs(start, end);
+}
+
 // static
 void BackgroundTracingManagerImpl::AddPendingAgent(
     int child_process_id,
diff --git a/content/browser/tracing/background_tracing_manager_impl.h b/content/browser/tracing/background_tracing_manager_impl.h
index d23ea34d..c8f10845 100644
--- a/content/browser/tracing/background_tracing_manager_impl.h
+++ b/content/browser/tracing/background_tracing_manager_impl.h
@@ -14,6 +14,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/no_destructor.h"
 #include "base/threading/sequence_bound.h"
+#include "base/timer/timer.h"
 #include "content/browser/tracing/background_tracing_config_impl.h"
 #include "content/browser/tracing/trace_report_database.h"
 #include "content/browser/tracing/tracing_scenario.h"
@@ -97,6 +98,7 @@
       ReceiveCallback receive_callback,
       DataFiltering data_filtering) override;
   bool HasActiveScenario() override;
+  void DeleteTracesInDateRange(base::Time start, base::Time end) override;
 
   // TracingScenario::Delegate:
   void OnScenarioActive(TracingScenario* scenario) override;
@@ -167,6 +169,7 @@
   void MaybeConstructPendingAgents();
   void OnFinalizeComplete(bool success);
   void InitializeTraceReportDatabase();
+  void CleanDatabase();
   size_t GetTraceUploadLimitKb() const;
 
   std::unique_ptr<TracingDelegate> delegate_;
@@ -195,6 +198,9 @@
   // This field contains serialized trace log proto.
   std::string trace_to_upload_;
 
+  // Timer to delete traces older than 2 weeks.
+  base::RepeatingTimer clean_database_timer_;
+
   // All the upload limits below are set for uncompressed trace log. On
   // compression the data size usually reduces by 3x for size < 10MB, and the
   // compression ratio grows up to 8x if the buffer size is around 100MB.
diff --git a/content/browser/tracing/trace_report_database.cc b/content/browser/tracing/trace_report_database.cc
index fffbe0e..915c961 100644
--- a/content/browser/tracing/trace_report_database.cc
+++ b/content/browser/tracing/trace_report_database.cc
@@ -239,6 +239,22 @@
   return delete_traces_in_range.Run();
 }
 
+bool TraceReportDatabase::DeleteTracesOlderThan(base::TimeDelta days_old) {
+  if (!database_.is_open()) {
+    return false;
+  }
+
+  sql::Statement delete_traces_older_than(database_.GetCachedStatement(
+      SQL_FROM_HERE, "DELETE FROM local_traces WHERE creation_time < ?"));
+
+  delete_traces_older_than.BindTime(0,
+                                    base::Time(base::Time::Now() - days_old));
+
+  CHECK(delete_traces_older_than.is_valid());
+
+  return delete_traces_older_than.Run();
+}
+
 bool TraceReportDatabase::EnsureTableCreated() {
   DCHECK(database_.is_open());
 
diff --git a/content/browser/tracing/trace_report_database.h b/content/browser/tracing/trace_report_database.h
index e61755f..c9d5c05 100644
--- a/content/browser/tracing/trace_report_database.h
+++ b/content/browser/tracing/trace_report_database.h
@@ -112,6 +112,9 @@
   // Delete traces between the |start| and |end| dates inclusively.
   bool DeleteTracesInDateRange(const base::Time start, const base::Time end);
 
+  // Delete all traces older than |age| from today.
+  bool DeleteTracesOlderThan(const base::TimeDelta age);
+
   bool UserRequestedUpload(base::Uuid uuid);
   bool UploadComplete(base::Uuid uuid, base::Time time);
   bool UploadSkipped(base::Uuid uuid);
diff --git a/content/browser/tracing/trace_report_database_unittest.cc b/content/browser/tracing/trace_report_database_unittest.cc
index 4f20d24a..63d53d7 100644
--- a/content/browser/tracing/trace_report_database_unittest.cc
+++ b/content/browser/tracing/trace_report_database_unittest.cc
@@ -24,11 +24,11 @@
 };
 
 TEST_F(TraceReportDatabaseTest, CreatingAndDroppingLocalTraceTable) {
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 0);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
 }
 
 TEST_F(TraceReportDatabaseTest, AddingNewReport) {
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 0);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
 
   // Create Report for the local traces database.
   TraceReportDatabase::NewReport new_report;
@@ -44,7 +44,7 @@
 
   auto received_reports = trace_report_.GetAllReports();
 
-  EXPECT_TRUE(received_reports.size() == 1);
+  EXPECT_EQ(received_reports.size(), 1u);
   EXPECT_EQ(received_reports[0].scenario_name, "scenario1");
   EXPECT_EQ(received_reports[0].upload_rule_name, "rules1");
   EXPECT_EQ(received_reports[0].total_size, new_size);
@@ -71,7 +71,7 @@
 }
 
 TEST_F(TraceReportDatabaseTest, DeletingSingleTrace) {
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 0);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
 
   // Create Report for the local traces database.
   TraceReportDatabase::NewReport new_report;
@@ -84,14 +84,14 @@
   const auto copie_value = new_report.uuid;
 
   ASSERT_TRUE(trace_report_.AddTrace(std::move(new_report)));
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 1);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 1u);
 
   ASSERT_TRUE(trace_report_.DeleteTrace(copie_value));
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 0);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
 }
 
 TEST_F(TraceReportDatabaseTest, DeletingAllTraces) {
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 0);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
 
   // Create multiple NewReport and add to the local_traces table.
 
@@ -106,14 +106,14 @@
     ASSERT_TRUE(trace_report_.AddTrace(std::move(new_report)));
   }
 
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 5);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 5u);
 
   ASSERT_TRUE(trace_report_.DeleteAllTraces());
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 0);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
 }
 
 TEST_F(TraceReportDatabaseTest, DeletingTracesInRange) {
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 0);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
 
   const base::Time today = base::Time::Now();
   // Create multiple NewReport and add to the local_traces table.
@@ -154,17 +154,53 @@
     ASSERT_TRUE(trace_report_.AddTrace(std::move(new_report)));
   }
 
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 10);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 10u);
 
   const base::Time start = base::Time(today - base::Days(20));
   const base::Time end = base::Time(today - base::Days(10));
 
   ASSERT_TRUE(trace_report_.DeleteTracesInDateRange(start, end));
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 5);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 5u);
+}
+
+TEST_F(TraceReportDatabaseTest, DeleteTracesOlderThan) {
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
+
+  const base::Time today = base::Time::Now();
+
+  // Create multiple NewReport and add to the local_traces table.
+  for (int i = 0; i < 5; i++) {
+    TraceReportDatabase::NewReport new_report;
+    new_report.uuid = base::Uuid::GenerateRandomV4();
+    new_report.creation_time = today;
+    new_report.scenario_name = "scenario";
+    new_report.upload_rule_name = "rules";
+    new_report.total_size = 23192873129873128;
+    new_report.proto = "Proto";
+
+    ASSERT_TRUE(trace_report_.AddTrace(std::move(new_report)));
+  }
+
+  for (int i = 0; i < 3; i++) {
+    TraceReportDatabase::NewReport new_report;
+    new_report.uuid = base::Uuid::GenerateRandomV4();
+    new_report.creation_time = base::Time(today - base::Days(20));
+    new_report.scenario_name = "scenario";
+    new_report.upload_rule_name = "rules";
+    new_report.total_size = 23192873129873128;
+    new_report.proto = "Proto";
+
+    ASSERT_TRUE(trace_report_.AddTrace(std::move(new_report)));
+  }
+
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 8u);
+
+  ASSERT_TRUE(trace_report_.DeleteTracesOlderThan(base::Days(10)));
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 5u);
 }
 
 TEST_F(TraceReportDatabaseTest, UserRequestedUpload) {
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 0);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
 
   // Create Report for the local traces database.
   TraceReportDatabase::NewReport new_report;
@@ -177,18 +213,18 @@
   const auto copie_value = new_report.uuid;
 
   ASSERT_TRUE(trace_report_.AddTrace(std::move(new_report)));
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 1);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 1u);
 
   ASSERT_TRUE(trace_report_.UserRequestedUpload(copie_value));
 
   auto all_traces = trace_report_.GetAllReports();
-  EXPECT_TRUE(all_traces.size() == 1);
+  EXPECT_EQ(all_traces.size(), 1u);
   EXPECT_EQ(all_traces[0].state,
             TraceReportDatabase::ReportUploadState::kPending_UserRequested);
 }
 
 TEST_F(TraceReportDatabaseTest, UploadComplete) {
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 0);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 0u);
 
   // Create Report for the local traces database.
   TraceReportDatabase::NewReport new_report;
@@ -201,13 +237,13 @@
   const auto copie_value = new_report.uuid;
 
   ASSERT_TRUE(trace_report_.AddTrace(std::move(new_report)));
-  EXPECT_TRUE(trace_report_.GetAllReports().size() == 1);
+  EXPECT_EQ(trace_report_.GetAllReports().size(), 1u);
 
   auto uploaded_time = base::Time::Now();
   ASSERT_TRUE(trace_report_.UploadComplete(copie_value, uploaded_time));
 
   auto all_traces = trace_report_.GetAllReports();
-  EXPECT_TRUE(all_traces.size() == 1);
+  EXPECT_EQ(all_traces.size(), 1u);
   EXPECT_EQ(all_traces[0].state,
             TraceReportDatabase::ReportUploadState::kUploaded);
   EXPECT_EQ(all_traces[0].upload_time, uploaded_time);
diff --git a/content/public/browser/background_tracing_manager.h b/content/public/browser/background_tracing_manager.h
index b15175f..c7382947 100644
--- a/content/public/browser/background_tracing_manager.h
+++ b/content/public/browser/background_tracing_manager.h
@@ -9,6 +9,7 @@
 #include <string>
 
 #include "base/strings/string_piece.h"
+#include "base/time/time.h"
 #include "base/trace_event/trace_event_impl.h"
 #include "content/common/content_export.h"
 #include "third_party/perfetto/protos/perfetto/config/chrome/scenario_config.gen.h"
@@ -130,6 +131,10 @@
   // Returns true whether a trace is ready to be uploaded.
   virtual bool HasTraceToUpload() = 0;
 
+  // TODO(b/295312118): Move this method to trace_report_list.h when it has
+  // landed.
+  virtual void DeleteTracesInDateRange(base::Time start, base::Time end) = 0;
+
   // Returns the latest trace created for uploading in a serialized proto of
   // message type perfetto::Trace.
   // TODO(ssid): This should also return the trigger for the trace along with
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
index 35a7c9b2..64d2cc1 100644
--- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -206,9 +206,11 @@
 crbug.com/1307787 [ mac ] Pixel_VulkanSwiftShader_WebGPU* [ Skip ]
 crbug.com/1307787 [ win ] Pixel_VulkanSwiftShader_WebGPU* [ Skip ]
 
-# Test is too slow for old phones and laptops, and in Debug mode.
+# Test is too slow for old phones and laptops, and in Debug and ASAN.
 crbug.com/1356246 [ android android-nexus-5x ] Pixel_SVGHuge [ Skip ]
 crbug.com/1356246 [ mac amd debug ] Pixel_SVGHuge [ Skip ]
+crbug.com/1356246 [ mac amd release asan ] Pixel_SVGHuge [ Skip ]
+crbug.com/1356246 [ mac intel release asan ] Pixel_SVGHuge [ Skip ]
 # Mac Nvidia laptops are quite old and the test times out on release builds too.
 crbug.com/1356246 [ mac nvidia ] Pixel_SVGHuge [ Skip ]
 
@@ -403,9 +405,9 @@
 crbug.com/1469875 [ mac graphite-enabled ] Pixel_OffscreenCanvasWebGLSoftwareCompositingWorker [ Failure ]
 crbug.com/1469875 [ mac graphite-enabled ] Pixel_OffscreenCanvasWebglResizeOnWorker [ Failure ]
 crbug.com/1469875 [ mac graphite-enabled ] Pixel_PaintWorkletTransform [ Failure ]
-crbug.com/1469875 [ mac graphite-enabled amd release ] Pixel_SVGHuge [ Failure ]
+crbug.com/1469875 [ mac graphite-enabled amd release no-asan ] Pixel_SVGHuge [ Failure ]
 crbug.com/1469875 [ mac graphite-enabled apple ] Pixel_SVGHuge [ Failure ]
-crbug.com/1469875 [ mac graphite-enabled intel ] Pixel_SVGHuge [ Failure ]
+crbug.com/1469875 [ mac graphite-enabled intel no-asan ] Pixel_SVGHuge [ Failure ]
 crbug.com/1469875 [ mac graphite-enabled ] Pixel_VideoStreamFrom2DAlphaCanvas_DisableOOPRaster [ Failure ]
 crbug.com/1469875 [ mac graphite-enabled ] Pixel_VideoStreamFrom2DAlphaCanvas_DisableReadbackFromTexture [ Failure ]
 crbug.com/1469875 [ mac graphite-enabled ] Pixel_WebGL2_ClearBufferfv_Result_Displayed [ Failure ]
diff --git a/docs/android_dynamic_feature_modules.md b/docs/android_dynamic_feature_modules.md
index 17cd049..ee6e050 100644
--- a/docs/android_dynamic_feature_modules.md
+++ b/docs/android_dynamic_feature_modules.md
@@ -420,7 +420,7 @@
 
 #### JNI
 
-Read the `jni_generator` [docs](../base/android/jni_generator/README.md) before
+Read the `jni_generator` [docs](../third_party/jni_zero/README.md) before
 reading this section.
 
 There are some subtleties to how JNI registration works with DFMs:
@@ -453,7 +453,7 @@
 on all Chrome build variants, including Monochrome (unlike base module JNI).
 
 ```c++
-#include "base/android/jni_generator/jni_generator_helper.h"
+#include "third_party/jni_zero/jni_generator_helper.h"
 #include "base/android/jni_utils.h"
 #include "chrome/android/modules/foo/internal/jni_registration.h"
 
diff --git a/docs/android_jni_ownership_best_practices.md b/docs/android_jni_ownership_best_practices.md
index e93e72c..1a5a108 100644
--- a/docs/android_jni_ownership_best_practices.md
+++ b/docs/android_jni_ownership_best_practices.md
@@ -27,7 +27,7 @@
 
 ### [Option #2] C++ owns the Java counterpart
 For C++ objects, utilizing the appropriate smart java references
-([link](/base/android/jni_generator/README.md#java-objects-and-garbage-collection),
+([link](/third_party/jni_zero/README.md#java-objects-and-garbage-collection),
 [code ref](/base/android/scoped_java_ref.h)) will ensure corresponding Java
 objects can be garbage collected. But if the Java object requires cleaning up
 dependencies, the C++ object should call a corresponding teardown method on the
diff --git a/docs/android_native_libraries.md b/docs/android_native_libraries.md
index 2b528fe..2ba8aba 100644
--- a/docs/android_native_libraries.md
+++ b/docs/android_native_libraries.md
@@ -261,7 +261,7 @@
    * It was loaded directly from the apk via `libchromium_android_linker.so`.
    * Only JNI_OnLoad was exported. Explicit JNI registration was required
      because the Android runtime uses the system's `dlsym()`, which doesn't know
-     about Crazy-Linker-opened libraries. (see [//base/android/jni_generator/README.md]).
+     about Crazy-Linker-opened libraries. (see [JNI README](/third_party/jni_zero/README.md)).
 
 ## See Also
  * [//docs/android_build_instructions.md#Multiple-Chrome-APK-Targets](android_build_instructions.md#Multiple-Chrome-APK-Targets)
diff --git a/docs/cross_platform_ui.md b/docs/cross_platform_ui.md
index 7a82c33..57e3e17 100644
--- a/docs/cross_platform_ui.md
+++ b/docs/cross_platform_ui.md
@@ -77,4 +77,4 @@
  3. chrome/android/java/src/org/chromium/chrome/browser/omnibox/FooFeature.java
     - Java side of the bridge.
 
-See the [JNI README](../third_party/jni_zero/README.md) for more details.
+See the [JNI README](/third_party/jni_zero/README.md) for more details.
diff --git a/docs/telemetry_extension/DIR_METADATA b/docs/telemetry_extension/DIR_METADATA
index af9b11a..9d53917 100644
--- a/docs/telemetry_extension/DIR_METADATA
+++ b/docs/telemetry_extension/DIR_METADATA
@@ -7,6 +7,6 @@
 #   https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/proto/dir_metadata.proto
 
 buganizer {
-  component_id: 1256717  # ChromeOS > Software > Commercial (Enterprise) > OEM Services
+  component_id: 982097  # ChromeOS > Platform > Enablement > Health
 }
-team_email: "chromeos-oem-services@google.com"
+team_email: "cros-tdm-tpe-eng@google.com"
diff --git a/docs/testing/chromeos_integration/README.md b/docs/testing/chromeos_integration/README.md
index aabf8229..22acd0f 100644
--- a/docs/testing/chromeos_integration/README.md
+++ b/docs/testing/chromeos_integration/README.md
@@ -5,7 +5,7 @@
 hardware Device Under Test (DUT) or in a ChromeOS Virtual Machine (VM). The idea
 is similar to interactive_ui_tests. A runner uses GTest to launch a full browser
 on DUT/VM, and the test body runs in the same process as the browser process.
-Utilily APIs will be provided so the test body can access Chrome classes and
+Utility APIs will be provided so the test body can access Chrome classes and
 objects like normal browser tests. The test can also access ChromeOS system
 services/daemons via utilities (D-Bus wrappers, shell commands, etc.).
 
diff --git a/docs/vscode.md b/docs/vscode.md
index ef0fa6f..47015c8 100644
--- a/docs/vscode.md
+++ b/docs/vscode.md
@@ -279,7 +279,7 @@
 
 * Errors related to `GEN_JNI` are caused by the language server (rightfully)
   getting confused about multiple definitions of the
-  [autogenerated](/base/android/jni_generator/README.md) `GEN_JNI` class. This
+  [autogenerated](/third_party/jni_zero/README.md) `GEN_JNI` class. This
   is a known quirk of the JNI generator.
 
 #### Automatic formatting
diff --git a/extensions/browser/extension_event_histogram_value.h b/extensions/browser/extension_event_histogram_value.h
index e4ed51694..2077fb6 100644
--- a/extensions/browser/extension_event_histogram_value.h
+++ b/extensions/browser/extension_event_histogram_value.h
@@ -556,6 +556,7 @@
   ACCESSIBILITY_PRIVATE_ON_SELECT_TO_SPEAK_CONTEXT_MENU_CLICKED = 534,
   DESK_EVENTS_ON_DESK_REMOVAL_UNDONE = 535,
   READING_LIST_ON_ENTRY_ADDED = 536,
+  OS_DIAGNOSTICS_ON_ROUTINE_INITIALIZED = 537,
   // Last entry: Add new entries above, then run:
   // tools/metrics/histograms/update_extension_histograms.py
   ENUM_BOUNDARY
diff --git a/google_apis/gaia/gaia_constants.cc b/google_apis/gaia/gaia_constants.cc
index 7792c650..ca2fcce2 100644
--- a/google_apis/gaia/gaia_constants.cc
+++ b/google_apis/gaia/gaia_constants.cc
@@ -93,10 +93,6 @@
 const char kCastBackdropOAuth2Scope[] =
     "https://www.googleapis.com/auth/cast.backdrop";
 
-// OAuth scope for access to Cloud Translation API.
-const char kCloudTranslationOAuth2Scope[] =
-    "https://www.googleapis.com/auth/cloud-translation";
-
 // OAuth2 scope for access to passwords leak checking API.
 const char kPasswordsLeakCheckOAuth2Scope[] =
     "https://www.googleapis.com/auth/identity.passwords.leak.check";
diff --git a/google_apis/gaia/gaia_constants.h b/google_apis/gaia/gaia_constants.h
index 674efb86..30402e3 100644
--- a/google_apis/gaia/gaia_constants.h
+++ b/google_apis/gaia/gaia_constants.h
@@ -44,7 +44,6 @@
 COMPONENT_EXPORT(GOOGLE_APIS) extern const char kTachyonOAuthScope[];
 COMPONENT_EXPORT(GOOGLE_APIS) extern const char kPhotosOAuth2Scope[];
 COMPONENT_EXPORT(GOOGLE_APIS) extern const char kCastBackdropOAuth2Scope[];
-COMPONENT_EXPORT(GOOGLE_APIS) extern const char kCloudTranslationOAuth2Scope[];
 COMPONENT_EXPORT(GOOGLE_APIS)
 extern const char kPasswordsLeakCheckOAuth2Scope[];
 COMPONENT_EXPORT(GOOGLE_APIS)
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
index f74f5d3..31b9ccb7 100644
--- a/gpu/config/gpu_driver_bug_list.json
+++ b/gpu/config/gpu_driver_bug_list.json
@@ -2160,10 +2160,11 @@
     {
       "id": 245,
       "description": "Switching framebuffers without a flush can lead to crashes on Intel 9th Generation GPU Macs.",
-      "cr_bugs": [783979],
+      "cr_bugs": [783979, 1472087],
       "os": {
         "type": "macosx"
       },
+      "gl_renderer": "ANGLE.*OpenGL.*",
       "intel_gpu_series": [
         "skylake",
         "kabylake",
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index 34f885ec5..38fb3e1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Net op hierdie toestel</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Maak {COUNT} onaktiewe oortjie toe?}other{Maak {COUNT} onaktiewe oortjies toe?}}</translation>
 <translation id="457386861538956877">Nog meer …</translation>
-<translation id="4587235830039045480">Stoor wagwoord in jou Google-rekening</translation>
 <translation id="4587589328781138893">Werwe</translation>
 <translation id="4588014171431912783">Jou sinkroniseringinstellings sal op grond van jou jongste rugsteun teruggestel word. <ph name="BEGIN_LINK" />Kyk wat jy kan sinkroniseer<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Sleutelbord</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Merk teks op ’n werf</translation>
 <translation id="8917490105272468696">Ja, ek is in</translation>
 <translation id="8928133177108699615">Rekenaar</translation>
-<translation id="8934982071228289624">Om hierdie wagwoord in jou rekening te stoor, moet jy eers ’n wagkode op jou toestel stel.</translation>
 <translation id="894191600409472540">Skep sterk wagwoorde</translation>
 <translation id="8952559610785099500">Voeg wagwoord by</translation>
 <translation id="8953046091948372197">Jy sal jou wagwoorde hier kry</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index c722227..2f18bad 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">በዚህ መሣሪያ ላይ ብቻ</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} ገቢር ያልሆነ ትር ይዘጋ?}one{{COUNT} ገቢር ያልሆነ ትር ይዘጋ?}other{{COUNT} ገቢር ያልሆኑ ትሮች ይዘጉ?}}</translation>
 <translation id="457386861538956877">ተጨማሪ...</translation>
-<translation id="4587235830039045480">የይለፍ ቃል በGoogle መለያዎ ውስጥ ያስቀምጡ</translation>
 <translation id="4587589328781138893">ጣቢያዎች</translation>
 <translation id="4588014171431912783">የእርስዎ የማስመር ቅንብሮች በእርስዎ የመጨረሻ ምትኬ ላይ በመመስረት ወደነበሩበት ይመለሳሉ። <ph name="BEGIN_LINK" />ምን ማስመር እንደሚችሉ ይመልከቱ<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">የቁልፍ ሰሌዳ</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">በአንድ ጣቢያ ላይ አጭር ማሳያ ጽሁፍ</translation>
 <translation id="8917490105272468696">አዎ፣ ገብቼያለሁ</translation>
 <translation id="8928133177108699615">ዴስክቶፕ</translation>
-<translation id="8934982071228289624">ይህን የይለፍ ቃል በመለያዎ ውስጥ ለማስቀመጥ በመጀመሪያ በመሣሪያዎ ላይ የይለፍ ኮድ ማቀናበር አለብዎት።</translation>
 <translation id="894191600409472540">ጠንካራ የይለፍ ቃላትን ይፍጠሩ</translation>
 <translation id="8952559610785099500">የይለፍ ቃል ያክሉ</translation>
 <translation id="8953046091948372197">የእርስዎን የይለፍ ቃላት እዚህ ያገኛሉ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index e7bacbb..b2686b9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -582,7 +582,6 @@
 <translation id="4550040941166547650">على هذا الجهاز فقط</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{هل تريد إغلاق علامة تبويب واحدة ({COUNT}) غير نشطة؟}zero{هل تريد إغلاق {COUNT} علامة تبويب غير نشطة؟}two{هل تريد إغلاق علامتَي تبويب ({COUNT}) غير نشطتَين؟}few{هل تريد إغلاق {COUNT} علامات تبويب غير نشطة؟}many{هل تريد إغلاق {COUNT} علامة تبويب غير نشطة؟}other{هل تريد إغلاق {COUNT} علامة تبويب غير نشطة؟}}</translation>
 <translation id="457386861538956877">المزيد...</translation>
-<translation id="4587235830039045480">‏يمكنك حفظ كلمة المرور في حسابك على Google.</translation>
 <translation id="4587589328781138893">المواقع</translation>
 <translation id="4588014171431912783">ستتم استعادة إعدادات المزامنة استنادًا إلى آخر نسخة احتياطية. <ph name="BEGIN_LINK" />التعرُّف على أنواع البيانات التي يمكنك مزامنتها<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">لوحة المفاتيح</translation>
@@ -1336,7 +1335,6 @@
 <translation id="891658175948553296">ميِّز النص على موقع إلكتروني.</translation>
 <translation id="8917490105272468696">نعم، أوافق</translation>
 <translation id="8928133177108699615">الإصدار المخصّص لأجهزة الكمبيوتر</translation>
-<translation id="8934982071228289624">لحفظ كلمة المرور هذه في حسابك، يجب أولاً ضبط رمز مرور على جهازك.</translation>
 <translation id="894191600409472540">إنشاء كلمات مرور قوية</translation>
 <translation id="8952559610785099500">إضافة كلمة مرور</translation>
 <translation id="8953046091948372197">ستظهر كلمات المرور هنا</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index f8816a0..9f6a2e2a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">কেৱল এই ডিভাইচটোত</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} টা নিষ্ক্ৰিয় টেব বন্ধ কৰিবনে?}one{{COUNT} টা নিষ্ক্ৰিয় টেব বন্ধ কৰিবনে?}other{{COUNT} টা নিষ্ক্ৰিয় টেব বন্ধ কৰিবনে?}}</translation>
 <translation id="457386861538956877">অধিক…</translation>
-<translation id="4587235830039045480">পাছৱৰ্ড আপোনাৰ Google একাউণ্টত ছেভ কৰক</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">আপোনাৰ অন্তিম বেকআপৰ ভিত্তিত আপোনাৰ ছিংকৰ ছেটিং পুনঃস্থাপন কৰা হ’ব। <ph name="BEGIN_LINK" />আপুনি কি কি ছিংক কৰিব পাৰে, সেয়া চাওক<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">কীব’ৰ্ড</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">এটা ছাইটত পাঠ হাইলাইট কৰক</translation>
 <translation id="8917490105272468696">হয়, মই সন্মত</translation>
 <translation id="8928133177108699615">ডেস্কটপ</translation>
-<translation id="8934982071228289624">এই পাছৱৰ্ডটো আপোনাৰ একাউণ্টত ছেভ কৰিবলৈ, আপুনি প্ৰথমে আপোনাৰ ডিভাইচত এটা পাছক’ড ছেট কৰিবই লাগিব।</translation>
 <translation id="894191600409472540">শক্তিশালী পাছৱৰ্ড সৃষ্টি কৰক</translation>
 <translation id="8952559610785099500">পাছৱৰ্ড যোগ দিয়ক</translation>
 <translation id="8953046091948372197">ইয়াত আপুনি নিজৰ পাছৱৰ্ডসমূহ বিচাৰি পাব</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index 8338468..20959cf3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Yalnız bu cihazda</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} fəaliyyətsiz tab bağlansın?}other{{COUNT} fəaliyyətsiz tab bağlansın?}}</translation>
 <translation id="457386861538956877">Digər...</translation>
-<translation id="4587235830039045480">Parolu Google Hesabında yadda saxlayın</translation>
 <translation id="4587589328781138893">Saytlar</translation>
 <translation id="4588014171431912783">Sinxronizasiya ayarlarınız son yedəkləmənizə əsasən bərpa olunacaq. <ph name="BEGIN_LINK" />Nəyi sinxronlaşdıra biləcəyinizə baxın<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Klaviatura</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Saytda Mətni vurğulayın</translation>
 <translation id="8917490105272468696">Bəli, razıyam</translation>
 <translation id="8928133177108699615">Masaüstü</translation>
-<translation id="8934982071228289624">Bu parolu hesabda saxlamaq üçün cihazda giriş kodu ayarlamalısınız.</translation>
 <translation id="894191600409472540">Güclü parollar yaradın</translation>
 <translation id="8952559610785099500">Parol əlavə edin</translation>
 <translation id="8953046091948372197">Parolları burada tapa bilərsiniz</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index 503aaab..2d83517 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Толькі на гэтай прыладзе.</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Закрыць {COUNT} неактыўную ўкладку?}one{Закрыць {COUNT} неактыўную ўкладку?}few{Закрыць {COUNT} неактыўныя ўкладкі?}many{Закрыць {COUNT} неактыўных укладак?}other{Закрыць {COUNT} неактыўнай укладкі?}}</translation>
 <translation id="457386861538956877">Яшчэ...</translation>
-<translation id="4587235830039045480">Пароль будзе захаваны ў вашым Уліковым запісе Google</translation>
 <translation id="4587589328781138893">Сайты</translation>
 <translation id="4588014171431912783">Налады сінхранізацыі будуць адноўлены з апошняй рэзервовай копіі. <ph name="BEGIN_LINK" />Якія даныя можна сінхранізаваць<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Клавіятура</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Вылучыце тэкст на сайце</translation>
 <translation id="8917490105272468696">Так, я згаджаюся</translation>
 <translation id="8928133177108699615">Рэжым ПК</translation>
-<translation id="8934982071228289624">Каб захаваць гэты пароль ва ўліковым запісе, задайце код доступу на прыладзе.</translation>
 <translation id="894191600409472540">Стварыце надзейныя паролі</translation>
 <translation id="8952559610785099500">Дадайце пароль</translation>
 <translation id="8953046091948372197">Вашы паролі знаходзяцца тут</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index 6790954..eb5d22d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Само на това устройство</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Искате ли да затворите {COUNT} неактивен раздел?}other{Искате ли да затворите {COUNT} неактивни раздела?}}</translation>
 <translation id="457386861538956877">Още...</translation>
-<translation id="4587235830039045480">Запазване на паролата в профила ви в Google</translation>
 <translation id="4587589328781138893">Сайтове</translation>
 <translation id="4588014171431912783">Настройките ви за синхронизиране ще бъдат възстановени въз основа на най-скорошното ви резервно копие. <ph name="BEGIN_LINK" />Вижте какво можете да синхронизирате<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Клавиатура</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Откройте текст в сайт.</translation>
 <translation id="8917490105272468696">Да, ще участвам</translation>
 <translation id="8928133177108699615">Настолна</translation>
-<translation id="8934982071228289624">За да запазите тази парола в профила си, трябва първо да зададете код за достъп на устройството си.</translation>
 <translation id="894191600409472540">Създавайте надеждни пароли</translation>
 <translation id="8952559610785099500">Добавяне на парола</translation>
 <translation id="8953046091948372197">Тук ще се показват паролите ви</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index f50c51f..bccabdc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">শুধুমাত্র এই ডিভাইসে</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{চালু না থাকা {COUNT}টি ট্যাব বন্ধ করবেন?}one{চালু না থাকা {COUNT}টি ট্যাব বন্ধ করবেন?}other{চালু না থাকা {COUNT}টি ট্যাব বন্ধ করবেন?}}</translation>
 <translation id="457386861538956877">আরও...</translation>
-<translation id="4587235830039045480">আপনার Google অ্যাকাউন্টে পাসওয়ার্ড সেভ করুন</translation>
 <translation id="4587589328781138893">সাইট</translation>
 <translation id="4588014171431912783">আপনার শেষ ব্যাক-আপের উপর ভিত্তি করে সিঙ্ক সেটিংস ফিরিয়ে আনা হবে। <ph name="BEGIN_LINK" />আপনি কী সিঙ্ক করতে পারবেন তা দেখুন<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">কীবোর্ড</translation>
@@ -1335,7 +1334,6 @@
 <translation id="891658175948553296">সাইটে টেক্সট হাইলাইট করুন</translation>
 <translation id="8917490105272468696">হ্যাঁ, আমি রাজি</translation>
 <translation id="8928133177108699615">ডেস্কটপ</translation>
-<translation id="8934982071228289624">আপনার অ্যাকাউন্টে এই পাসওয়ার্ডটি সেভ করতে, আপনাকে প্রথমে ডিভাইসে একটি পাসকোড সেট করতে হবে।</translation>
 <translation id="894191600409472540">শক্তিশালী পাসওয়ার্ড তৈরি করুন</translation>
 <translation id="8952559610785099500">পাসওয়ার্ড যোগ করুন</translation>
 <translation id="8953046091948372197">আপনি নিজের পাসওয়ার্ড এখানে খুঁজে পাবেন</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index 14dfa88..6ae4a91 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Samo na ovom uređaju</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Zatvoriti {COUNT} neaktivnu karticu?}one{Zatvoriti {COUNT} neaktivnu karticu?}few{Zatvoriti {COUNT} neaktivne kartice?}other{Zatvoriti {COUNT} neaktivnih kartica?}}</translation>
 <translation id="457386861538956877">Više...</translation>
-<translation id="4587235830039045480">Sačuvajte lozinku na svom Google računu</translation>
 <translation id="4587589328781138893">Web lokacije</translation>
 <translation id="4588014171431912783">Postavke sinhronizacije će se vratiti na osnovu posljednje sigurnosne kopije. <ph name="BEGIN_LINK" />Pogledajte šta možete sinhronizirati<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tastatura</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Istaknite tekst na web lokaciji</translation>
 <translation id="8917490105272468696">Pristajem</translation>
 <translation id="8928133177108699615">Računar</translation>
-<translation id="8934982071228289624">Da sačuvate ovu lozinku na računu, prvo morate postaviti šifru na uređaju.</translation>
 <translation id="894191600409472540">Kreirajte jake lozinke</translation>
 <translation id="8952559610785099500">Dodajte lozinku</translation>
 <translation id="8953046091948372197">Lozinke ćete pronaći ovdje</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index ce5649d..0d7ab9c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Només en aquest dispositiu</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Vols tancar {COUNT} pestanya inactiva?}other{Vols tancar {COUNT} pestanyes inactives?}}</translation>
 <translation id="457386861538956877">Més...</translation>
-<translation id="4587235830039045480">Desa la contrasenya al teu Compte de Google</translation>
 <translation id="4587589328781138893">Llocs web</translation>
 <translation id="4588014171431912783">La configuració de sincronització es restaurarà a partir de la darrera còpia de seguretat. <ph name="BEGIN_LINK" />Consulta què pots sincronitzar<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Teclat</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Marca text en un lloc web</translation>
 <translation id="8917490105272468696">Sí, ho accepto</translation>
 <translation id="8928133177108699615">Ordinador</translation>
-<translation id="8934982071228289624">Per desar aquesta contrasenya al teu compte, primer has d'establir una contrasenya al dispositiu.</translation>
 <translation id="894191600409472540">Crea contrasenyes segures</translation>
 <translation id="8952559610785099500">Afegeix una contrasenya</translation>
 <translation id="8953046091948372197">Trobaràs les contrasenyes aquí</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index f4aeebc..2eccb03 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Pouze na tomto zařízení</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Zavřít {COUNT} neaktivní kartu?}few{Zavřít {COUNT} neaktivní karty?}many{Zavřít {COUNT} neaktivní karty?}other{Zavřít {COUNT} neaktivních karet?}}</translation>
 <translation id="457386861538956877">Další...</translation>
-<translation id="4587235830039045480">Uložte si heslo do účtu Google</translation>
 <translation id="4587589328781138893">Weby</translation>
 <translation id="4588014171431912783">Nastavení synchronizace se obnoví podle vaší poslední zálohy. <ph name="BEGIN_LINK" />Co lze synchronizovat<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Klávesnice</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Zvýrazněte text na webu.</translation>
 <translation id="8917490105272468696">Souhlasím</translation>
 <translation id="8928133177108699615">Počítač</translation>
-<translation id="8934982071228289624">Pokud toto heslo chcete uložit do svého účtu, musíte nejdříve nastavit heslo v zařízení.</translation>
 <translation id="894191600409472540">Vytvářejte silná hesla</translation>
 <translation id="8952559610785099500">Přidat heslo</translation>
 <translation id="8953046091948372197">Zde najdete svá hesla</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
index 49a31af5..ce9b9f0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Ar y ddyfais hon yn unig</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Cau {COUNT} Tab Anweithredol?}zero{Cau {COUNT} Tab Anweithredol?}two{Cau {COUNT} Dab Anweithredol?}few{Cau {COUNT} Thab Anweithredol?}many{Cau {COUNT} Thab Anweithredol?}other{Cau {COUNT} Tab Anweithredol?}}</translation>
 <translation id="457386861538956877">Rhagor...</translation>
-<translation id="4587235830039045480">Cadw cyfrinair yn eich Cyfrif Google</translation>
 <translation id="4587589328781138893">Gwefannau</translation>
 <translation id="4588014171431912783">Bydd eich gosodiadau cysoni yn cael eu hadfer yn seiliedig ar eich copi wrth gefn diwethaf. <ph name="BEGIN_LINK" />Gweld Beth Allwch ei Gysoni<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Bysellfwrdd</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Amlygu Testun ar Wefan</translation>
 <translation id="8917490105272468696">Iawn, Rwy'n Cydsynio</translation>
 <translation id="8928133177108699615">Bwrdd gwaith</translation>
-<translation id="8934982071228289624">I gadw'r cyfrinair hwn yn eich cyfrif, rhaid i chi osod cod pas ar eich dyfais yn gyntaf.</translation>
 <translation id="894191600409472540">Creu cyfrineiriau cryf</translation>
 <translation id="8952559610785099500">Ychwanegu Cyfrinair</translation>
 <translation id="8953046091948372197">Byddwch yn gweld eich cyfrineiriau yma</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index 08c444a..572ba400 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Kun på denne enhed.</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Vil du lukke {COUNT} inaktiv fane?}one{Vil du lukke {COUNT} inaktiv fane?}other{Vil du lukke {COUNT} inaktive faner?}}</translation>
 <translation id="457386861538956877">Flere...</translation>
-<translation id="4587235830039045480">Gem din adgangskode på din Google-konto</translation>
 <translation id="4587589328781138893">Websites</translation>
 <translation id="4588014171431912783">Dine indstillinger for synkronisering gendannes på baggrund af din seneste backup. <ph name="BEGIN_LINK" />Se, hvad du kan synkronisere<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tastatur</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Fremhæv tekst på et website</translation>
 <translation id="8917490105272468696">Ja tak</translation>
 <translation id="8928133177108699615">Computer</translation>
-<translation id="8934982071228289624">Hvis du vil gemme denne adgangskode på din konto, skal du først angive en adgangskode på din enhed.</translation>
 <translation id="894191600409472540">Opret stærke adgangskoder</translation>
 <translation id="8952559610785099500">Tilføj adgangskode</translation>
 <translation id="8953046091948372197">Her finder du dine adgangskoder</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 0ba755eb..b133baa 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Nur auf diesem Gerät</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} inaktiven Tab schließen?}other{{COUNT} inaktive Tabs schließen?}}</translation>
 <translation id="457386861538956877">Mehr...</translation>
-<translation id="4587235830039045480">Passwort in meinem Google-Konto speichern</translation>
 <translation id="4587589328781138893">Websites</translation>
 <translation id="4588014171431912783">Deine Synchronisierungseinstellungen werden auf Grundlage deiner letzten Sicherung wiederhergestellt. <ph name="BEGIN_LINK" />Hier siehst du, was du synchronisieren kannst.<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tastatur</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Text auf einer Website hervorheben</translation>
 <translation id="8917490105272468696">Ja, bitte</translation>
 <translation id="8928133177108699615">Computer</translation>
-<translation id="8934982071228289624">Um dieses Passwort in deinem Konto zu speichern, musst du zuerst einen Sicherheitscode auf deinem Gerät einrichten.</translation>
 <translation id="894191600409472540">Erstelle starke Passwörter</translation>
 <translation id="8952559610785099500">Passwort hinzufügen</translation>
 <translation id="8953046091948372197">Hier werden deine Lesezeichen angezeigt</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index f1ba43ac..4d74918 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Μόνο σε αυτήν τη συσκευή</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Κλείσιμο {COUNT} ανενεργής καρτέλας;}other{Κλείσιμο {COUNT} ανενεργών καρτελών;}}</translation>
 <translation id="457386861538956877">Περισσότερα...</translation>
-<translation id="4587235830039045480">Αποθήκευση κωδικού πρόσβασης στον Λογαριασμό σας Google</translation>
 <translation id="4587589328781138893">Ιστότοποι</translation>
 <translation id="4588014171431912783">Θα γίνει επαναφορά των ρυθμίσεων συγχρονισμού με βάση την τελευταία δημιουργία αντιγράφων ασφαλείας. <ph name="BEGIN_LINK" />Δείτε τι μπορείτε να συγχρονίσετε<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Πληκτρολόγιο</translation>
@@ -1335,7 +1334,6 @@
 <translation id="891658175948553296">Επισημάνετε κείμενο σε έναν ιστότοπο</translation>
 <translation id="8917490105272468696">Ναι, συμφωνώ</translation>
 <translation id="8928133177108699615">Για υπολογιστή</translation>
-<translation id="8934982071228289624">Για να αποθηκεύσετε αυτόν τον κωδικό πρόσβασης στον λογαριασμό σας, θα πρέπει πρώτα να ορίσετε έναν κωδικό πρόσβασης στη συσκευή σας.</translation>
 <translation id="894191600409472540">Δημιουργήστε ισχυρούς κωδικούς πρόσβασης</translation>
 <translation id="8952559610785099500">Προσθήκη κωδικού πρόσβασης</translation>
 <translation id="8953046091948372197">Εδώ θα βρείτε τους κωδικούς πρόσβασής σας</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
index b7b866a..fd0db8c0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Only on this device</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Close {COUNT} inactive tab?}other{Close {COUNT} inactive tabs?}}</translation>
 <translation id="457386861538956877">More...</translation>
-<translation id="4587235830039045480">Save password in your Google Account</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">Your sync settings will be restored based on your last backup. <ph name="BEGIN_LINK" />See what you can sync<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Keyboard</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Highlight text on a site</translation>
 <translation id="8917490105272468696">Yes, I'm in</translation>
 <translation id="8928133177108699615">Desktop</translation>
-<translation id="8934982071228289624">To save this password in your account, you must first set a passcode on your device.</translation>
 <translation id="894191600409472540">Create strong passwords</translation>
 <translation id="8952559610785099500">Add password</translation>
 <translation id="8953046091948372197">You'll find your passwords here</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
index ac0deeaf..cba6563b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Solo en este dispositivo</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{¿Quieres cerrar {COUNT} pestaña inactiva?}other{¿Quieres cerrar {COUNT} pestañas inactivas?}}</translation>
 <translation id="457386861538956877">Más...</translation>
-<translation id="4587235830039045480">Guarda la contraseña en tu Cuenta de Google</translation>
 <translation id="4587589328781138893">Sitios</translation>
 <translation id="4588014171431912783">La configuración de sincronización se restablecerá en función de tu última copia de seguridad. <ph name="BEGIN_LINK" />Consulta lo que puedes sincronizar<ph name="END_LINK" />.</translation>
 <translation id="4592368184551360546">Teclado</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Destaca texto en un sitio.</translation>
 <translation id="8917490105272468696">Acepto</translation>
 <translation id="8928133177108699615">Escritorio</translation>
-<translation id="8934982071228289624">Para guardar esta contraseña en tu cuenta, primero debes establecer un código en tu dispositivo.</translation>
 <translation id="894191600409472540">Crea contraseñas seguras</translation>
 <translation id="8952559610785099500">Agregar contraseña</translation>
 <translation id="8953046091948372197">Aquí encontrarás tus contraseñas</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index 531b1bd..fc11482 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Solo en este dispositivo</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{¿Cerrar {COUNT} pestaña inactiva?}other{¿Cerrar {COUNT} pestañas inactivas?}}</translation>
 <translation id="457386861538956877">Más...</translation>
-<translation id="4587235830039045480">Guarda la contraseña en tu cuenta de Google</translation>
 <translation id="4587589328781138893">Sitios web</translation>
 <translation id="4588014171431912783">Tus ajustes de sincronización se restaurarán en función de tu última copia de seguridad. <ph name="BEGIN_LINK" />Consulta lo que puedes sincronizar<ph name="END_LINK" />.</translation>
 <translation id="4592368184551360546">Teclado</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Resalta texto en un sitio</translation>
 <translation id="8917490105272468696">Sí, acepto</translation>
 <translation id="8928133177108699615">Ordenador</translation>
-<translation id="8934982071228289624">Para guardar esta contraseña en tu cuenta, primero debes establecer una contraseña en tu dispositivo.</translation>
 <translation id="894191600409472540">Crea contraseñas seguras</translation>
 <translation id="8952559610785099500">Añadir contraseña</translation>
 <translation id="8953046091948372197">Aquí verás tus contraseñas</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index e056c49..65949a8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Ainult selles seadmes</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Kas sulgeda {COUNT} inaktiivne vaheleht?}other{Kas sulgeda {COUNT} inaktiivset vahelehte?}}</translation>
 <translation id="457386861538956877">Rohkem ...</translation>
-<translation id="4587235830039045480">Parooli salvestamine teie Google’i kontole</translation>
 <translation id="4587589328781138893">Saidid</translation>
 <translation id="4588014171431912783">Sünkroonimisseaded taastatakse teie viimase varukoopia alusel. <ph name="BEGIN_LINK" />Vaadake, mida sünkroonida saate<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Klaviatuur</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Saidil teksti esiletõstmine</translation>
 <translation id="8917490105272468696">Jah, olen nõus</translation>
 <translation id="8928133177108699615">Lauaarvuti</translation>
-<translation id="8934982071228289624">Selle parooli salvestamiseks oma kontole peate oma seadmes esmalt seadistama pääsukoodi.</translation>
 <translation id="894191600409472540">Looge tugevad paroolid</translation>
 <translation id="8952559610785099500">Parooli lisamine</translation>
 <translation id="8953046091948372197">Oma paroolid leiate siit</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
index 098cb19..00c13ba 100644
--- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Gailu honetan soilik</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} fitxa inaktibo itxi nahi duzu?}other{{COUNT} fitxa inaktibo itxi nahi dituzu?}}</translation>
 <translation id="457386861538956877">Gehiago…</translation>
-<translation id="4587235830039045480">Gorde pasahitza Google-ko kontuan</translation>
 <translation id="4587589328781138893">Webguneak</translation>
 <translation id="4588014171431912783">Sinkronizazio-ezarpenak azken babeskopiaren arabera leheneratuko dira. <ph name="BEGIN_LINK" />Ikusi zer sinkroniza dezakezun<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Teklatua</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Nabarmendu webgune bateko testua</translation>
 <translation id="8917490105272468696">Bai, ados</translation>
 <translation id="8928133177108699615">Mahaigainekoa</translation>
-<translation id="8934982071228289624">Pasahitza kontuan gordetzeko, gailuan pasakode bat ezarri behar duzu.</translation>
 <translation id="894191600409472540">Sortu pasahitz konplexuak</translation>
 <translation id="8952559610785099500">Gehitu pasahitz bat</translation>
 <translation id="8953046091948372197">Hemen dituzu pasahitzak</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index 7e3ddde..9163c08b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">فقط در «این دستگاه»</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} برگه غیرفعال بسته شود؟}one{{COUNT} برگه غیرفعال بسته شود؟}other{{COUNT} برگه غیرفعال بسته شود؟}}</translation>
 <translation id="457386861538956877">بیشتر...</translation>
-<translation id="4587235830039045480">‏گذرواژه را در «حساب Google» خود ذخیره کنید</translation>
 <translation id="4587589328781138893">سایت‌ها</translation>
 <translation id="4588014171431912783">تنظیمات همگام‌سازی براساس آخرین نسخه پشتیبان شما بازیابی خواهد شد. <ph name="BEGIN_LINK" />دیدن مواردی که می‌توانید همگام‌سازی کنید<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">صفحه‌کلید</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">نوشتار سایت‌ها برجسته کنید</translation>
 <translation id="8917490105272468696">بله، موافقم</translation>
 <translation id="8928133177108699615">رایانه</translation>
-<translation id="8934982071228289624">برای ذخیره کردن این گذرواژه در حسابتان، ابتدا باید گذرنویسه‌ای در دستگاهتان تنظیم کنید.</translation>
 <translation id="894191600409472540">گذرواژه‌های قوی ایجاد کنید</translation>
 <translation id="8952559610785099500">افزودن گذرواژه</translation>
 <translation id="8953046091948372197">گذرواژه‌هایتان را اینجا خواهید دید</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index f30e80a9..372afa93 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Vain tällä laitteella</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Suljetaanko {COUNT} ei-aktiivinen välilehti?}other{Suljetaanko {COUNT} ei-aktiivista välilehteä?}}</translation>
 <translation id="457386861538956877">Lisää...</translation>
-<translation id="4587235830039045480">Tallenna salasana Google-tilille</translation>
 <translation id="4587589328781138893">Sivustot</translation>
 <translation id="4588014171431912783">Synkronointiasetukset palautetaan viimeisen varmuuskopion perusteella. <ph name="BEGIN_LINK" />Katso, mitä voit synkronoida<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Näppäimistö</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Korosta sivuston tekstiä</translation>
 <translation id="8917490105272468696">Kyllä</translation>
 <translation id="8928133177108699615">Työpöytä</translation>
-<translation id="8934982071228289624">Jos haluat tallentaa tämän salasanan tilillesi, sinun on ensin lisättävä laitteellesi tunnuskoodi.</translation>
 <translation id="894191600409472540">Luo vahvoja salasanoja</translation>
 <translation id="8952559610785099500">Lisää salasana</translation>
 <translation id="8953046091948372197">Näet kirjanmerkkisi täällä</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index f789a76..513d00f3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Sa Device Lang na Ito</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Isara ang {COUNT} Hindi Aktibong Tab?}one{Isara ang {COUNT} Hindi Aktibong Tab?}other{Isara ang {COUNT} na Hindi Aktibong Tab?}}</translation>
 <translation id="457386861538956877">Higit pa...</translation>
-<translation id="4587235830039045480">I-save ang password sa iyong Google Account</translation>
 <translation id="4587589328781138893">Mga Site</translation>
 <translation id="4588014171431912783">Ire-restore ang iyong mga setting ng pag-sync batay sa huli mong backup. <ph name="BEGIN_LINK" />Tingnan Kung Ano ang Puwede Mong I-sync<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Keyboard</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Mag-highlight ng Text sa isang Site</translation>
 <translation id="8917490105272468696">Oo, Tinatanggap Ko</translation>
 <translation id="8928133177108699615">Desktop</translation>
-<translation id="8934982071228289624">Para i-save ang password na ito sa iyong account, dapat ka munang magtakda ng passcode sa device mo.</translation>
 <translation id="894191600409472540">Gumawa ng malalakas na password</translation>
 <translation id="8952559610785099500">Magdagdag ng Password</translation>
 <translation id="8953046091948372197">Makikita mo rito ang iyong mga password</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
index 0dbd1124..246fef5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Uniquement sur cet appareil</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Fermer {COUNT} onglet inactif?}one{Fermer {COUNT} onglet inactif?}other{Fermer {COUNT} onglets inactifs?}}</translation>
 <translation id="457386861538956877">Autres...</translation>
-<translation id="4587235830039045480">Enregistrer le mot de passe dans votre compte Google</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">Vos paramètres de synchronisation seront restaurés en fonction de votre dernière sauvegarde. <ph name="BEGIN_LINK" />Afficher ce que vous pouvez synchroniser<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Clavier</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Mettre du texte en surbrillance sur un site</translation>
 <translation id="8917490105272468696">Oui, j'accepte</translation>
 <translation id="8928133177108699615">Bureau</translation>
-<translation id="8934982071228289624">Pour enregistrer ce mot de passe dans votre compte, vous devez d'abord définir un mot de passe sur votre appareil.</translation>
 <translation id="894191600409472540">Créez des mots de passe forts</translation>
 <translation id="8952559610785099500">Ajouter un mot de passe</translation>
 <translation id="8953046091948372197">Vous trouverez vos mots de passe ici</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index 169f7e52..b0ec85c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Uniquement sur cet appareil</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Fermer {COUNT} onglet inactif ?}one{Fermer {COUNT} onglet inactif ?}other{Fermer {COUNT} onglets inactifs ?}}</translation>
 <translation id="457386861538956877">Autres...</translation>
-<translation id="4587235830039045480">Enregistrez le mot de passe dans votre compte Google</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">Vos paramètres de synchronisation seront restaurés en fonction de votre dernière sauvegarde. <ph name="BEGIN_LINK" />Voir ce que vous pouvez synchroniser<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Clavier</translation>
@@ -636,7 +635,7 @@
 <translation id="4848999860252535517">Supprimer le mot de passe pour <ph name="WEBSITE" /> ?</translation>
 <translation id="4854345657858711387">Définir un code secret</translation>
 <translation id="4856498338299082007">Dans votre compte Google</translation>
-<translation id="4858786880085262208">Passez à HTTPS, si possible. Les sites sécurisés peuvent intégrer du contenu non sécurisé.</translation>
+<translation id="4858786880085262208">Passer à HTTPS, si possible. Les sites sécurisés peuvent intégrer du contenu non sécurisé.</translation>
 <translation id="4860895144060829044">Appeler</translation>
 <translation id="4872323082491632254">Vérifier les mots de passe</translation>
 <translation id="4881695831933465202">Ouvrir</translation>
@@ -1335,7 +1334,6 @@
 <translation id="891658175948553296">Mettez du texte en surbrillance sur un site</translation>
 <translation id="8917490105272468696">J'accepte</translation>
 <translation id="8928133177108699615">Bureau</translation>
-<translation id="8934982071228289624">Pour enregistrer ce mot de passe dans votre compte, vous devez d'abord définir un code secret sur votre appareil.</translation>
 <translation id="894191600409472540">Créez des mots de passe sécurisés</translation>
 <translation id="8952559610785099500">Ajouter un mot de passe</translation>
 <translation id="8953046091948372197">Vous trouverez vos mots de passe ici</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index 8265a353..fc1c5ecb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Só neste dispositivo</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Queres pechar {COUNT} pestana inactiva?}other{Queres pechar {COUNT} pestanas inactivas?}}</translation>
 <translation id="457386861538956877">Máis...</translation>
-<translation id="4587235830039045480">Garda o contrasinal na túa Conta de Google</translation>
 <translation id="4587589328781138893">Sitios</translation>
 <translation id="4588014171431912783">Restaurarase a configuración de sincronización segundo a última copia de seguranza. <ph name="BEGIN_LINK" />Consulta o que podes sincronizar<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Teclado</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Destaca texto nun sitio</translation>
 <translation id="8917490105272468696">Si, acepto</translation>
 <translation id="8928133177108699615">Ordenador</translation>
-<translation id="8934982071228289624">Para gardar este contrasinal na túa conta, primeiro debes configurar un contrasinal para o dispositivo.</translation>
 <translation id="894191600409472540">Crea contrasinais seguros</translation>
 <translation id="8952559610785099500">Engadir un contrasinal</translation>
 <translation id="8953046091948372197">Aquí atoparás os teus contrasinais</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index 463e0a78..85a7c72f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">માત્ર આ જ ડિવાઇસ પર</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} નિષ્ક્રિય ટૅબ બંધ કરીએ?}one{{COUNT} નિષ્ક્રિય ટૅબ બંધ કરીએ?}other{{COUNT} નિષ્ક્રિય ટૅબ બંધ કરીએ?}}</translation>
 <translation id="457386861538956877">વધુ...</translation>
-<translation id="4587235830039045480">તમારા Google એકાઉન્ટમાં પાસવર્ડ સાચવો</translation>
 <translation id="4587589328781138893">સાઇટ</translation>
 <translation id="4588014171431912783">તમારા છેલ્લા બૅકઅપના આધારે તમારા સિંક કરેલા સેટિંગ રિસ્ટોર કરવામાં આવશે. <ph name="BEGIN_LINK" />તમે શું સિંક કરી શકો, તે જાણો<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">કીબોર્ડ</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">સાઇટ પરની ટેક્સ્ટને હાઇલાઇટ કરો</translation>
 <translation id="8917490105272468696">હા, હું સંમત છું</translation>
 <translation id="8928133177108699615">ડેસ્કટૉપ</translation>
-<translation id="8934982071228289624">તમારા એકાઉન્ટમાં આ પાસવર્ડ સાચવવા માટે, તમારે સૌથી પહેલા તમારા ડિવાઇસ પર પાસકોડ સેટ કરવો આવશ્યક છે.</translation>
 <translation id="894191600409472540">સશક્ત પાસવર્ડ બનાવો</translation>
 <translation id="8952559610785099500">પાસવર્ડ ઉમેરો</translation>
 <translation id="8953046091948372197">તમને તમારો પાસવર્ડ અહીં મળશે</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index b3e5a672..db5ef89 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">सिर्फ़ इस डिवाइस पर सेव किए गए</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{क्या आपको इस्तेमाल नहीं किया जा रहा {COUNT} टैब बंद करना है?}one{क्या आपको इस्तेमाल नहीं किया जा रहा {COUNT} टैब बंद करना है?}other{क्या आपको इस्तेमाल नहीं किए जा रहे {COUNT} टैब बंद करने हैं?}}</translation>
 <translation id="457386861538956877">ज़्यादा...</translation>
-<translation id="4587235830039045480">अपने Google खाते में पासवर्ड सेव करें</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">आपके पिछले बैकअप के आधार पर, सिंक करने की आपकी सेटिंग पहले जैसी कर दी जाएंगी. <ph name="BEGIN_LINK" />देखें कि क्या-क्या सिंक किया जा सकता है<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">कीबोर्ड</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">किसी साइट पर टेक्स्ट हाइलाइट करें</translation>
 <translation id="8917490105272468696">हां, मैं सहमत हूं</translation>
 <translation id="8928133177108699615">डेस्कटॉप</translation>
-<translation id="8934982071228289624">इस पासवर्ड को अपने खाते में सेव करने के लिए, आपको सबसे पहले अपने डिवाइस पर एक पासवर्ड सेट करना होगा.</translation>
 <translation id="894191600409472540">मज़बूत पासवर्ड बनाएं</translation>
 <translation id="8952559610785099500">पासवर्ड जोड़ें</translation>
 <translation id="8953046091948372197">आपको अपने पासवर्ड यहां दिखेंगे</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index 07db4971..c38cec00 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Samo na ovom uređaju</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Želite li zatvoriti {COUNT} neaktivnu karticu?}one{Želite li zatvoriti {COUNT} neaktivnu karticu?}few{Želite li zatvoriti {COUNT} neaktivne kartice?}other{Želite li zatvoriti {COUNT} neaktivnih kartica?}}</translation>
 <translation id="457386861538956877">Više...</translation>
-<translation id="4587235830039045480">Spremite zaporku na svoj Google račun</translation>
 <translation id="4587589328781138893">Web-lokacije</translation>
 <translation id="4588014171431912783">Vaše postavke sinkronizacije vratit će se na temelju posljednje sigurnosne kopije. <ph name="BEGIN_LINK" />Pogledajte što možete sinkronizirati<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tipkovnica</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Istaknite tekst na web-lokaciji</translation>
 <translation id="8917490105272468696">Da, pristajem</translation>
 <translation id="8928133177108699615">Računalo</translation>
-<translation id="8934982071228289624">Da biste tu zaporku spremili na račun, morate najprije postaviti šifru na uređaju.</translation>
 <translation id="894191600409472540">Izradite snažne zaporke</translation>
 <translation id="8952559610785099500">Dodavanje zaporke</translation>
 <translation id="8953046091948372197">Ovdje ćete pronaći svoje zaporke</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index 24a29a04..f0b3dc7e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Csak erre az eszközre</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Bezár {COUNT} inaktív lapot?}other{Bezár {COUNT} inaktív lapot?}}</translation>
 <translation id="457386861538956877">Továbbiak...</translation>
-<translation id="4587235830039045480">Jelszó mentése a Google-fiókba</translation>
 <translation id="4587589328781138893">Webhelyek</translation>
 <translation id="4588014171431912783">A legutóbbi biztonsági mentés alapján a rendszer visszaállítja a szinkronizálási beállításokat. <ph name="BEGIN_LINK" />Tekintse át, hogy mit szinkronizálhat<ph name="END_LINK" />.</translation>
 <translation id="4592368184551360546">Billentyűzet</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Jelöljön ki szöveget egy webhelyen</translation>
 <translation id="8917490105272468696">Igen, elfogadom</translation>
 <translation id="8928133177108699615">Asztali</translation>
-<translation id="8934982071228289624">Ha szeretné menteni ezt a jelszót a fiókjába, először biztonsági kódot kell beállítania az eszközén.</translation>
 <translation id="894191600409472540">Hozzon létre erős jelszavakat</translation>
 <translation id="8952559610785099500">Jelszó hozzáadása</translation>
 <translation id="8953046091948372197">Itt láthatja majd a jelszavait</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
index ee93219b..24e15214 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Միայն այս սարքում</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Փակե՞լ {COUNT} ոչ ակտիվ ներդիրը}one{Փակե՞լ {COUNT} ոչ ակտիվ ներդիրը}other{Փակե՞լ {COUNT} ոչ ակտիվ ներդիրները}}</translation>
 <translation id="457386861538956877">Ավելին…</translation>
-<translation id="4587235830039045480">Պահեք գաղտնաբառը ձեր Google հաշվում</translation>
 <translation id="4587589328781138893">Կայքեր</translation>
 <translation id="4588014171431912783">Համաժամացման ձեր կարգավորումները կվերականգնվեն վերջին պահուստավորված տվյալների հիման վրա։ <ph name="BEGIN_LINK" />Ինչ տվյալներ կարող եք համաժամացնել<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Ստեղնաշար</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Առանձնացրեք տեքստը կայքում</translation>
 <translation id="8917490105272468696">Եղավ</translation>
 <translation id="8928133177108699615">Համակարգչի ռեժիմ</translation>
-<translation id="8934982071228289624">Այս գաղտնաբառը հաշվում պահելու համար նախ պետք է ձեր սարքում անցակոդ կարգավորեք։</translation>
 <translation id="894191600409472540">Ստեղծեք հուսալի գաղտնաբառեր</translation>
 <translation id="8952559610785099500">Ավելացրեք գաղտնաբառ</translation>
 <translation id="8953046091948372197">Ձեր գաղտնաբառերը կգտնեք այստեղ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index 057f173..2c429cc9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Hanya di Perangkat Ini</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Tutup {COUNT} Tab Tidak Aktif?}other{Tutup {COUNT} Tab Tidak Aktif?}}</translation>
 <translation id="457386861538956877">Lainnya...</translation>
-<translation id="4587235830039045480">Simpan sandi di Akun Google Anda</translation>
 <translation id="4587589328781138893">Situs</translation>
 <translation id="4588014171431912783">Setelan sinkronisasi akan dipulihkan berdasarkan cadangan terakhir Anda. <ph name="BEGIN_LINK" />Lihat Apa Saja yang Dapat Anda Sinkronkan<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Keyboard</translation>
@@ -609,7 +608,7 @@
 <translation id="470966556546083668">Jangan Aktifkan Sinkronisasi</translation>
 <translation id="4711809265250406889">Saat Aktif</translation>
 <translation id="4737560986434232178">Telusuri Tab Terbaru</translation>
-<translation id="473775607612524610">Perbarui</translation>
+<translation id="473775607612524610">Update</translation>
 <translation id="4746926359847517643">Anda selalu bisa membukanya kembali di histori.</translation>
 <translation id="4751162929052964260"><ph name="TITLE" />, <ph name="STATE" />, Hanya di perangkat ini, <ph name="URL" /></translation>
 <translation id="4751645464639803239">Tab Samaran Baru</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Tandai Teks di Situs</translation>
 <translation id="8917490105272468696">Ya, Saya Setuju</translation>
 <translation id="8928133177108699615">Desktop</translation>
-<translation id="8934982071228289624">Untuk menyimpan sandi ini di akun, Anda harus menyetel kode sandi di perangkat terlebih dahulu.</translation>
 <translation id="894191600409472540">Buat sandi yang kuat</translation>
 <translation id="8952559610785099500">Tambahkan Sandi</translation>
 <translation id="8953046091948372197">Sandi Anda akan ditampilkan di sini</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb
index 68dcf506..e4d3636f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Aðeins í þessu tæki</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Loka {COUNT} óvirkum flipa?}one{Loka {COUNT} óvirkum flipa?}other{Loka {COUNT} óvirkum flipum?}}</translation>
 <translation id="457386861538956877">Meira...</translation>
-<translation id="4587235830039045480">Vista aðgangsorð á Google-reikningi</translation>
 <translation id="4587589328781138893">Svæði</translation>
 <translation id="4588014171431912783">Samstillingarkostirnir þínir verða endurheimtir í samræmi við síðustu öryggisafritun. <ph name="BEGIN_LINK" />Sjáðu hvað þú getur samstillt<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Lyklaborð</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Merktu texta á vefsvæði</translation>
 <translation id="8917490105272468696">Já, ég er til</translation>
 <translation id="8928133177108699615">Tölvuútgáfa</translation>
-<translation id="8934982071228289624">Til að vista þetta aðgangsorð á reikningnum þínum þarftu fyrst að stilla aðgangskóða í tækinu.</translation>
 <translation id="894191600409472540">Búðu til traust aðgangsorð</translation>
 <translation id="8952559610785099500">Bæta við aðgangsorði</translation>
 <translation id="8953046091948372197">Þú finnur aðgangsorðin þín hér</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index a6cbcc6..e29de6f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Solo su questo dispositivo</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Chiudere {COUNT} scheda non attiva?}other{Chiudere {COUNT} schede non attive?}}</translation>
 <translation id="457386861538956877">Altro...</translation>
-<translation id="4587235830039045480">Salva la password nel tuo Account Google</translation>
 <translation id="4587589328781138893">Siti</translation>
 <translation id="4588014171431912783">Le impostazioni di sincronizzazione verranno ripristinate in base all'ultimo backup. <ph name="BEGIN_LINK" />Scopri cosa puoi sincronizzare<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tastiera</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Evidenzia il testo su un sito</translation>
 <translation id="8917490105272468696">Sì, accetto</translation>
 <translation id="8928133177108699615">Desktop</translation>
-<translation id="8934982071228289624">Per salvare la password nel tuo account, devi prima impostare un passcode sul dispositivo.</translation>
 <translation id="894191600409472540">Crea password efficaci</translation>
 <translation id="8952559610785099500">Aggiungi password</translation>
 <translation id="8953046091948372197">Qui troverai le tue password</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index c2d2911b..da5d1c2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">רק במכשיר הזה</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{לסגור את הכרטיסייה הלא פעילה ({COUNT})?}one{לסגור {COUNT} כרטיסיות לא פעילות?}two{לסגור {COUNT} כרטיסיות לא פעילות?}other{לסגור {COUNT} כרטיסיות לא פעילות?}}</translation>
 <translation id="457386861538956877">עוד...</translation>
-<translation id="4587235830039045480">‏שמירת הסיסמה בחשבון Google</translation>
 <translation id="4587589328781138893">אתרים</translation>
 <translation id="4588014171431912783">הגדרות הסנכרון ישוחזרו על סמך הגיבוי האחרון שלך. <ph name="BEGIN_LINK" />אלו הדברים שאפשר לסנכרן<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">מקלדת</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">מדגישים טקסט באתר</translation>
 <translation id="8917490105272468696">כן, מקובל עלי.</translation>
 <translation id="8928133177108699615">מחשב</translation>
-<translation id="8934982071228289624">כדי לשמור את הסיסמה הזו בחשבון, קודם עליך להגדיר קוד גישה במכשיר.</translation>
 <translation id="894191600409472540">עליך ליצור סיסמאות חזקות</translation>
 <translation id="8952559610785099500">הוספת סיסמה</translation>
 <translation id="8953046091948372197">הסיסמאות יופיעו כאן</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index fbfeff8..d4f5816 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">このデバイスのみ</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{アクティブでない {COUNT} 個のタブを閉じますか?}other{アクティブでない {COUNT} 個のタブを閉じますか?}}</translation>
 <translation id="457386861538956877">その他...</translation>
-<translation id="4587235830039045480">Google アカウントにパスワードを保存します</translation>
 <translation id="4587589328781138893">ウェブサイト</translation>
 <translation id="4588014171431912783">同期の設定は前回のバックアップに基づいて復元されます。<ph name="BEGIN_LINK" />同期できるアイテムを確認する<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">キーボード</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">サイトのテキストをハイライト表示します</translation>
 <translation id="8917490105272468696">オンにする</translation>
 <translation id="8928133177108699615">デスクトップ</translation>
-<translation id="8934982071228289624">このパスワードをアカウントに保存するには、まずデバイスにパスコードを設定する必要があります。</translation>
 <translation id="894191600409472540">安全なパスワードにしてください</translation>
 <translation id="8952559610785099500">パスワードの追加</translation>
 <translation id="8953046091948372197">パスワードはここに表示されます</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index 58b0ef8..e326a58 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">მხოლოდ ამ მოწყობილობაზე</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{გსურთ, დახუროთ {COUNT} არააქტიური ჩანართი?}other{გსურთ, დახუროთ {COUNT} არააქტიური ჩანართი?}}</translation>
 <translation id="457386861538956877">მეტი…</translation>
-<translation id="4587235830039045480">შეინახეთ პაროლი თქვენს Google ანგარიშში</translation>
 <translation id="4587589328781138893">საიტები</translation>
 <translation id="4588014171431912783">სინქრონიზაციის პარამეტრები აღდგენილი იქნება თქვენი ბოლო სარეზერვო ასლის მიხედვით. <ph name="BEGIN_LINK" />იხილეთ, რისი სინქრონიზაცია შეგიძლიათ<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">კლავიატურა</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">გამოყავით ტექსტი საიტზე</translation>
 <translation id="8917490105272468696">დიახ, თანახმა ვარ</translation>
 <translation id="8928133177108699615">დესკტოპი</translation>
-<translation id="8934982071228289624">ეს პაროლი თქვენს ანგარიშში რომ შეინახოთ, თქვენს მოწყობილობაზე ჯერ საიდუმლო კოდი უნდა დააყენოთ.</translation>
 <translation id="894191600409472540">შექმენით ძლიერი პაროლები</translation>
 <translation id="8952559610785099500">პაროლის დამატება</translation>
 <translation id="8953046091948372197">აქ იპოვით თქვენს პაროლებს</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index 713aa1c..51bffc86 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Тек осы құрылғыда</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} белсенді емес қойындыны жабу керек пе?}other{{COUNT} белсенді емес қойындыны жабу керек пе?}}</translation>
 <translation id="457386861538956877">Тағы…</translation>
-<translation id="4587235830039045480">Құпия сөзіңізді Google аккаунтыңызда сақтау</translation>
 <translation id="4587589328781138893">Сайттар</translation>
 <translation id="4588014171431912783">Синхрондау параметрлері соңғы cақтық көшірме деректері негізінде қалпына келтіріледі. <ph name="BEGIN_LINK" />Нені синхрондай алатыныңызды көріңіз<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Пернетақта</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Сайттағы мәтінді ерекшелеңіз.</translation>
 <translation id="8917490105272468696">Жарайды</translation>
 <translation id="8928133177108699615">Компьютер</translation>
-<translation id="8934982071228289624">Бұл құпия сөзді тіркелгіңізге сақтау үшін алдымен құрылғыңызға рұқсат кодын орнатуыңыз қажет.</translation>
 <translation id="894191600409472540">Күрделі құпия сөздер жасаңыз.</translation>
 <translation id="8952559610785099500">Құпия сөз қосу</translation>
 <translation id="8953046091948372197">Құпия сөздер осы жерге шығады.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index 40b1ef4..8aeb9a13 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">តែ​នៅ​លើ​ឧបករណ៍​នេះ​ប៉ុណ្ណោះ</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{បិទ​ផ្ទាំង​​អសកម្ម {COUNT} ឬ?}other{បិទ​ផ្ទាំង​​អសកម្ម {COUNT} ឬ?}}</translation>
 <translation id="457386861538956877">ច្រើនទៀត...</translation>
-<translation id="4587235830039045480">រក្សាទុកពាក្យសម្ងាត់នៅក្នុងគណនី Google របស់អ្នក</translation>
 <translation id="4587589328781138893">ទំព័រ</translation>
 <translation id="4588014171431912783">ការ​កំណត់​​សមកាលកម្ម​របស់​អ្នក​នឹង​ត្រូវបាន​ស្ដារ ដោយ​ផ្អែកលើ​ការបម្រុងទុក​ចុងក្រោយ​របស់​អ្នក។ <ph name="BEGIN_LINK" />មើលអ្វី​ដែលអ្នកអាច​ធ្វើសមកាលកម្ម<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">ក្ដារចុច</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">រំលេចអក្សរនៅលើគេហទំព័រ</translation>
 <translation id="8917490105272468696">បាទ/ចាស ខ្ញុំ​យល់ព្រម។</translation>
 <translation id="8928133177108699615">កុំព្យូទ័រ</translation>
-<translation id="8934982071228289624">ដើម្បី​រក្សាទុក​ពាក្យសម្ងាត់​នេះ​នៅ​ក្នុង​គណនី​របស់​អ្នក អ្នក​ត្រូវ​តែ​កំណត់​លេខ​កូដ​សម្ងាត់​​នៅលើ​ឧបករណ៍​របស់​អ្នកជាមុនសិន។</translation>
 <translation id="894191600409472540">បង្កើតពាក្យសម្ងាត់ខ្លាំង</translation>
 <translation id="8952559610785099500">បញ្ចូលពាក្យសម្ងាត់</translation>
 <translation id="8953046091948372197">អ្នក​នឹងឃើញ​​ពាក្យ​សម្ងាត់របស់អ្នក​នៅទីនេះ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 8bd606d..63d111c2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">ಈ ಸಾಧನದಲ್ಲಿ ಮಾತ್ರ</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} ನಿಷ್ಕ್ರಿಯ ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಬೇಕೆ?}one{{COUNT} ನಿಷ್ಕ್ರಿಯ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಬೇಕೆ?}other{{COUNT} ನಿಷ್ಕ್ರಿಯ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಬೇಕೆ?}}</translation>
 <translation id="457386861538956877">ಇನ್ನಷ್ಟು...</translation>
-<translation id="4587235830039045480">ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಿ</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">ನಿಮ್ಮ ಕೊನೆಯ ಬ್ಯಾಕಪ್ ಆಧರಿಸಿ ನಿಮ್ಮ ಸಿಂಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತದೆ. <ph name="BEGIN_LINK" />ನೀವು ಏನನ್ನು ಸಿಂಕ್ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನೋಡಿ<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">ಕೀಬೋರ್ಡ್</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">ಸೈಟ್‌ನಲ್ಲಿ ಪಠ್ಯವನ್ನು ಹೈಲೈಟ್ ಮಾಡಿ</translation>
 <translation id="8917490105272468696">ಹೌದು, ನಾನು ಒಪ್ಪಿಕೊಳ್ಳುತ್ತೇನೆ</translation>
 <translation id="8928133177108699615">ಡೆಸ್ಕ್‌ಟಾಪ್</translation>
-<translation id="8934982071228289624">ನಿಮ್ಮ ಖಾತೆಯಲ್ಲಿ ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಉಳಿಸಲು, ನೀವು ಮೊದಲು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಪಾಸ್‌ಕೋಡ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಬೇಕು.</translation>
 <translation id="894191600409472540">ಸದೃಢ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ರಚಿಸಿ</translation>
 <translation id="8952559610785099500">ಪಾಸ್‌ವರ್ಡ್ ಸೇರಿಸಿ</translation>
 <translation id="8953046091948372197">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಇಲ್ಲಿ ನೋಡಬಹುದು</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index 1881c38..e2239d8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">이 기기에서만 저장됨</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{비활성 탭 {COUNT}개를 닫으시겠습니까?}other{비활성 탭 {COUNT}개를 닫으시겠습니까?}}</translation>
 <translation id="457386861538956877">더보기...</translation>
-<translation id="4587235830039045480">Google 계정에 비밀번호 저장</translation>
 <translation id="4587589328781138893">사이트</translation>
 <translation id="4588014171431912783">마지막 백업에 따라 동기화 설정이 복원됩니다. <ph name="BEGIN_LINK" />동기화할 수 있는 항목 확인하기<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">키보드</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">사이트의 텍스트 강조표시</translation>
 <translation id="8917490105272468696">사용</translation>
 <translation id="8928133177108699615">데스크톱</translation>
-<translation id="8934982071228289624">이 비밀번호를 계정에 저장하려면 먼저 기기에 비밀번호를 설정해야 합니다.</translation>
 <translation id="894191600409472540">안전한 비밀번호를 만드세요.</translation>
 <translation id="8952559610785099500">비밀번호 추가</translation>
 <translation id="8953046091948372197">여기에서 비밀번호 확인</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index 26f1bd5..7ebfa5f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Ушул түзмөктө гана</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} жигерсиз өтмөктү жабасызбы?}other{{COUNT} жигерсиз өтмөктү жабасызбы?}}</translation>
 <translation id="457386861538956877">Дагы…</translation>
-<translation id="4587235830039045480">Сырсөздү Google аккаунтуңузга сактаңыз</translation>
 <translation id="4587589328781138893">Сайттар</translation>
 <translation id="4588014171431912783">Шайкештирүү параметрлери акыркы жолу сакталган камдык көчүрмөнүн негизинде калыбына келтирилет. <ph name="BEGIN_LINK" />Шайкештире ала турган нерселерди көрүңүз<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Баскычтоп</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Сайттагы текстти бөлүп көрсөтүңүз</translation>
 <translation id="8917490105272468696">Ооба, мен макулмун</translation>
 <translation id="8928133177108699615">Иш такта</translation>
-<translation id="8934982071228289624">Бул сырсөздү аккаунтуңузга сактоо үчүн алгач түзмөгүңүздө өткөрүүчү кодду тууралашыңыз керек.</translation>
 <translation id="894191600409472540">Татаал сырсөз түзүңүз</translation>
 <translation id="8952559610785099500">Сырсөз кошуу</translation>
 <translation id="8953046091948372197">Сырсөздөрүңүздү ушул жерден табасыз</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index 2494f14069..b22e31e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">ສະເພາະຢູ່ອຸປະກອນນີ້</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{ປິດ {COUNT} ແຖບທີ່ບໍ່ໄດ້ນຳໃຊ້ບໍ?}other{ປິດ {COUNT} ແຖບທີ່ບໍ່ໄດ້ນຳໃຊ້ບໍ?}}</translation>
 <translation id="457386861538956877">ເພີ່ມເຕີມ...</translation>
-<translation id="4587235830039045480">ບັນທຶກລະຫັດຜ່ານໄວ້ໃນບັນຊີ Google ຂອງທ່ານ</translation>
 <translation id="4587589328781138893">ເວັບໄຊ</translation>
 <translation id="4588014171431912783">ການຕັ້ງຄ່າການຊິ້ງຂໍ້ມູນຈະຖືກກູ້ຄືນມາໂດຍອ້າງອີງໃສ່ການສຳຮອງຂໍ້ມູນຫຼ້າສຸດຂອງທ່ານ. <ph name="BEGIN_LINK" />ເບິ່ງວ່າທ່ານສາມາດຊິ້ງຂໍ້ມູນຫຍັງໄດ້ແດ່<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">ແປ້ນພິມ</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">ໄຮໄລ້ຂໍ້ຄວາມຢູ່ເວັບໄຊ</translation>
 <translation id="8917490105272468696">ແມ່ນ, ຂ້ອຍເຂົ້າຮ່ວມ</translation>
 <translation id="8928133177108699615">ເດັສທັອບ</translation>
-<translation id="8934982071228289624">ເພື່ອບັນທຶກລະຫັດຜ່ານນີ້ໃນບັນຊີຂອງທ່ານ, ທ່ານຕ້ອງຕັ້ງລະຫັດໃນອຸປະກອນຂອງທ່ານກ່ອນ.</translation>
 <translation id="894191600409472540">ສ້າງລະຫັດຜ່ານຍາກ</translation>
 <translation id="8952559610785099500">ເພີ່ມ​ລະ​ຫັດ​ຜ່ານ</translation>
 <translation id="8953046091948372197">ທ່ານຈະເຫັນລະຫັດຜ່ານຂອງທ່ານຢູ່ບ່ອນນີ້</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 9f84a935..0eddc33 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Tik šiame įrenginyje</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Uždaryti {COUNT} neaktyvų skirtuką?}one{Uždaryti {COUNT} neaktyvų skirtuką?}few{Uždaryti {COUNT} neaktyvius skirtukus?}many{Uždaryti {COUNT} neaktyvaus skirtuko?}other{Uždaryti {COUNT} neaktyvių skirtukų?}}</translation>
 <translation id="457386861538956877">Daugiau...</translation>
-<translation id="4587235830039045480">Slaptažodžio išsaugojimas „Google“ paskyroje</translation>
 <translation id="4587589328781138893">Svetainės</translation>
 <translation id="4588014171431912783">Sinchronizavimo nustatymai bus atkurti pagal paskutinę atsarginę kopiją. <ph name="BEGIN_LINK" />Žr., ką galite sinchronizuoti<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Klaviatūra</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Paryškinkite tekstą svetainėje</translation>
 <translation id="8917490105272468696">Taip, sutinku</translation>
 <translation id="8928133177108699615">Stalinio kompiuterio</translation>
-<translation id="8934982071228289624">Jei norite išsaugoti šį slaptažodį paskyroje, pirmiausia turite nustatyti slaptažodį įrenginyje.</translation>
 <translation id="894191600409472540">Kurkite sudėtingus slaptažodžius</translation>
 <translation id="8952559610785099500">Slaptažodžio pridėjimas</translation>
 <translation id="8953046091948372197">Čia rasite slaptažodžius</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index 6ca86ea..c5acef4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Tikai šajā ierīcē</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Vai aizvērt {COUNT} neaktīvu cilni?}zero{Vai aizvērt {COUNT} neaktīvas cilnes?}one{Vai aizvērt {COUNT} neaktīvu cilni?}other{Vai aizvērt {COUNT} neaktīvas cilnes?}}</translation>
 <translation id="457386861538956877">Vēl...</translation>
-<translation id="4587235830039045480">Saglabājiet paroli savā Google kontā.</translation>
 <translation id="4587589328781138893">Vietnes</translation>
 <translation id="4588014171431912783">Jūsu sinhronizācijas iestatījumi tiks atjaunoti, pamatojoties uz pēdējo dublējumu. <ph name="BEGIN_LINK" />Skatiet, ko varat sinhronizēt<ph name="END_LINK" />.</translation>
 <translation id="4592368184551360546">Tastatūra</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Izceliet tekstu vietnē.</translation>
 <translation id="8917490105272468696">Jā, piekrītu</translation>
 <translation id="8928133177108699615">Vietne datoriem</translation>
-<translation id="8934982071228289624">Lai varētu saglabāt šo paroli savā kontā, vispirms ierīcē ir jāiestata piekļuves kods.</translation>
 <translation id="894191600409472540">Izveidojiet drošas paroles</translation>
 <translation id="8952559610785099500">Paroles pievienošana</translation>
 <translation id="8953046091948372197">Šeit varēsiet skatīt savas paroles</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index 876835ce..95ee1f1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Само на уредов</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Дали да се затвори {COUNT} неактивна картичка?}one{Дали да се затворат {COUNT} неактивна картичка?}other{Дали да се затворат {COUNT} неактивни картички?}}</translation>
 <translation id="457386861538956877">Повеќе…</translation>
-<translation id="4587235830039045480">Зачувајте ја лозинката на вашата сметка на Google</translation>
 <translation id="4587589328781138893">Сајтови</translation>
 <translation id="4588014171431912783">Поставките за синхронизација ќе се вратат според последниот бекап. <ph name="BEGIN_LINK" />Видете што може да синхронизирате<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Тастатура</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Нагласете текст на сајт</translation>
 <translation id="8917490105272468696">Да, прифаќам</translation>
 <translation id="8928133177108699615">Компјутер</translation>
-<translation id="8934982071228289624">За да ја зачувате лозинкава на вашата сметка, прво мора да поставите лозинка на вашиот уред.</translation>
 <translation id="894191600409472540">Создајте силни лозинки</translation>
 <translation id="8952559610785099500">Додајте лозинка</translation>
 <translation id="8953046091948372197">Вашите лозинки ќе ги најдете тука</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index f3500824..6bb47fd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">ഈ ഉപകരണത്തിൽ മാത്രം</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{സജീവമല്ലാത്ത {COUNT} ടാബ് അടയ്ക്കണോ?}other{സജീവമല്ലാത്ത {COUNT} ടാബുകൾ അടയ്ക്കണോ?}}</translation>
 <translation id="457386861538956877">കൂടുതൽ‍‌...</translation>
-<translation id="4587235830039045480">പാസ്‍വേഡ് നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കുക</translation>
 <translation id="4587589328781138893">സൈറ്റുകള്‍</translation>
 <translation id="4588014171431912783">നിങ്ങളുടെ അവസാനത്തെ ബാക്കപ്പ് അനുസരിച്ച് നിങ്ങളുടെ സമന്വയ ക്രമീകരണം പുനഃസ്ഥാപിക്കും. <ph name="BEGIN_LINK" />നിങ്ങൾക്ക് എന്തൊക്കെ സമന്വയിപ്പിക്കാമെന്ന് കാണുക<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">കീബോഡ്</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">സൈറ്റിലെ ടെക്സ്റ്റ് ഹൈലൈറ്റ് ചെയ്യുക</translation>
 <translation id="8917490105272468696">അതെ, ഞാൻ തയ്യാറാണ്</translation>
 <translation id="8928133177108699615">ഡെസ്‌ക്ടോപ്പ്</translation>
-<translation id="8934982071228289624">നിങ്ങളുടെ അക്കൗണ്ടിൽ ഈ പാസ്‌വേഡ് സംരക്ഷിക്കാൻ, ആദ്യം ഉപകരണത്തിൽ ഒരു പാസ്‌കോഡ് സജ്ജീകരിക്കേണ്ടതുണ്ട്.</translation>
 <translation id="894191600409472540">ശക്തമായ പാസ്‌വേഡുകൾ സൃഷ്‌ടിക്കുക</translation>
 <translation id="8952559610785099500">പാസ്‌വേഡ് ചേർക്കുക</translation>
 <translation id="8953046091948372197">നിങ്ങളുടെ പാസ്‌വേഡുകൾ ഇവിടെ കാണാം</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index 8dde438..dfacbcfd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Зөвхөн энэ төхөөрөмжид</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Идэвхгүй {COUNT} табыг хаах уу?}other{Идэвхгүй {COUNT} табыг хаах уу?}}</translation>
 <translation id="457386861538956877">Илүү ихийг ...</translation>
-<translation id="4587235830039045480">Google Бүртгэлдээ нууц үг хадгална уу</translation>
 <translation id="4587589328781138893">Сайт</translation>
 <translation id="4588014171431912783">Таны синк хийх тохиргоог сүүлийн нөөцлөлтөд тань тулгуурлан сэргээнэ. <ph name="BEGIN_LINK" />Та юу синк хийж болохоо харна уу<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Гар</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Сайт дээрх текстийг тодруулна уу</translation>
 <translation id="8917490105272468696">Тийм, би зөвшөөрч байна</translation>
 <translation id="8928133177108699615">Компьютер</translation>
-<translation id="8934982071228289624">Энэ нууц үгийг бүртгэлдээ хадгалахын тулд та эхлээд төхөөрөмждөө нууц код тохируулах ёстой.</translation>
 <translation id="894191600409472540">Сайн нууц үгнүүд үүсгэнэ үү</translation>
 <translation id="8952559610785099500">Нууц үг нэмэх</translation>
 <translation id="8953046091948372197">Та нууц үгнүүдээ эндээс олно</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 543c6e60..be81b9a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">फक्त या डिव्हाइसवर</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} इनॅक्टिव्ह टॅब बंद करायचा का?}other{{COUNT} इनॅक्टिव्ह टॅब बंद करायचे का?}}</translation>
 <translation id="457386861538956877">अधिक...</translation>
-<translation id="4587235830039045480">तुमच्या Google खाते मध्ये पासवर्ड सेव्ह करा</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">तुमच्या शेवटच्या बॅकअपच्या आधारावर तुमची सिंक सेटिंग्ज रिस्टोअर केली जातील. <ph name="BEGIN_LINK" />तुम्ही काय सिंक करू शकता ते पहा<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">कीबोर्ड</translation>
@@ -1335,7 +1334,6 @@
 <translation id="891658175948553296">साइट वरील मजकूर हायलाइट करा</translation>
 <translation id="8917490105272468696">होय, मला मान्य आहे</translation>
 <translation id="8928133177108699615">डेस्कटॉप</translation>
-<translation id="8934982071228289624">हा पासवर्ड तुमच्या खात्यामध्ये सेव्ह करण्यासाठी, तुम्ही प्रथम तुमच्या डिव्हाइसवर पासकोड सेट करणे आवश्यक आहे.</translation>
 <translation id="894191600409472540">क्लिष्ट पासवर्ड तयार करा</translation>
 <translation id="8952559610785099500">पासवर्ड जोडा</translation>
 <translation id="8953046091948372197">तुमचे पासवर्ड तुम्हाला येथे सापडतील</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index 37a714a3..5f5e3fb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Hanya pada Peranti Ini</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Tutup {COUNT} Tab Tidak Aktif?}other{Tutup {COUNT} Tab Tidak Aktif?}}</translation>
 <translation id="457386861538956877">Lagi...</translation>
-<translation id="4587235830039045480">Simpan kata laluan dalam Google Account anda</translation>
 <translation id="4587589328781138893">Tapak</translation>
 <translation id="4588014171431912783">Tetapan penyegerakan anda akan dipulihkan berdasarkan sandaran terakhir anda. <ph name="BEGIN_LINK" />Lihat Item yang Boleh Anda Segerakkan<ph name="END_LINK" />.</translation>
 <translation id="4592368184551360546">Papan kekunci</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Serlahkan Teks pada Laman</translation>
 <translation id="8917490105272468696">Ya, Saya Ikut Serta</translation>
 <translation id="8928133177108699615">Desktop</translation>
-<translation id="8934982071228289624">Untuk menyimpan kata laluan ini pada akaun anda, anda perlu menetapkan kod laluan pada peranti anda dahulu.</translation>
 <translation id="894191600409472540">Buat kata laluan kukuh</translation>
 <translation id="8952559610785099500">Tambah Kata Laluan</translation>
 <translation id="8953046091948372197">Anda dapat menemukan kata laluan anda di sini</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index 01263b8..e899311 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">ဤစက်တွင်သာ</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{မသုံးသောတဘ် {COUNT} ခု ပိတ်မလား။}other{မသုံးသောတဘ် {COUNT} ခု ပိတ်မလား။}}</translation>
 <translation id="457386861538956877">နောက်ထပ်...</translation>
-<translation id="4587235830039045480">စကားဝှက်ကို သင့် Google Account တွင် သိမ်းရန်</translation>
 <translation id="4587589328781138893">ဝဘ်ဆိုက်များ</translation>
 <translation id="4588014171431912783">သင်နောက်ဆုံး အရန်သိမ်းခြင်းပေါ်မူတည်၍ စင့်ခ်လုပ်ခြင်း ဆက်တင်များကို ပြန်ယူပါမည်။ <ph name="BEGIN_LINK" />စင့်ခ်လုပ်နိုင်သည်များကို ကြည့်ရန်<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">ကီးဘုတ်</translation>
@@ -1333,7 +1332,6 @@
 <translation id="891658175948553296">ဝဘ်ဆိုက်ရှိ စာသားကို မြင်သာထင်သာဖြစ်အောင်လုပ်ပါ</translation>
 <translation id="8917490105272468696">သဘောတူပါသည်</translation>
 <translation id="8928133177108699615">ဒက်စ်တော့</translation>
-<translation id="8934982071228289624">ဤစကားဝှက်ကို သင့်အကောင့်တွင် သိမ်းရန် သင့်စက်တွင် ပထမဆုံး လျှို့ဝှက်ကုဒ် သတ်မှတ်ရမည်။</translation>
 <translation id="894191600409472540">လုံခြုံမှုမြင့်သည့် စကားဝှက်များ ပြုလုပ်ပါ</translation>
 <translation id="8952559610785099500">စကားဝှက် ထည့်ခြင်း</translation>
 <translation id="8953046091948372197">သင့်စကားဝှက်ကို ဤနေရာတွင် တွေ့မည်</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index b318af59..48581bd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">यो डिभाइसमा मात्र</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} निष्क्रिय ट्याब बन्द गर्ने हो?}other{{COUNT} वटा निष्क्रिय ट्याब बन्द गर्ने हो?}}</translation>
 <translation id="457386861538956877">थप...</translation>
-<translation id="4587235830039045480">आफ्नो Google खातामा पासवर्ड सेभ गर्नुहोस्</translation>
 <translation id="4587589328781138893">साइटहरू</translation>
 <translation id="4588014171431912783">तपाईंको पछिल्लो ब्याकअपका आधारमा तपाईंले तय गर्नुभएका सिंकसम्बन्धी सेटिङ रिस्टोर गरिने छ। <ph name="BEGIN_LINK" />तपाईं के कस्ता कुराहरू सिंक गर्न पाउनुहुन्छ भन्ने कुरा हेर्नुहोस्<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">किबोर्ड</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">कुनै साइटमा देखाइएको टेक्स्ट हाइलाइट गर्नुहोस्</translation>
 <translation id="8917490105272468696">हो, म सहमत छु</translation>
 <translation id="8928133177108699615">डेस्कटप</translation>
-<translation id="8934982071228289624">तपाईं आफ्नो डिभाइसको पासकोड सेट गरेपछि मात्र आफ्नो खातामा यो पासवर्ड सेभ गर्न सक्नुहुन्छ।</translation>
 <translation id="894191600409472540">भरपर्दा पासवर्डहरू सिर्जना गर्नुहोस्</translation>
 <translation id="8952559610785099500">पासवर्ड थप्नुहोस्</translation>
 <translation id="8953046091948372197">तपाईंका पासवर्डहरू यहाँ देखिने छन्</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index e5a7158..091ebbd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Alleen op dit apparaat</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} inactief tabblad sluiten?}other{{COUNT} inactieve tabbladen sluiten?}}</translation>
 <translation id="457386861538956877">Meer...</translation>
-<translation id="4587235830039045480">Wachtwoord opslaan in je Google-account</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">Je synchronisatie-instellingen worden hersteld op basis van je laatste back-up. <ph name="BEGIN_LINK" />Bekijken wat je kunt synchroniseren<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Toetsenbord</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Markeer tekst op een site</translation>
 <translation id="8917490105272468696">Ja, aanzetten</translation>
 <translation id="8928133177108699615">Desktop</translation>
-<translation id="8934982071228289624">Als je dit wachtwoord wilt opslaan in je account, moet je eerst een toegangscode instellen op je apparaat.</translation>
 <translation id="894191600409472540">Maak sterke wachtwoorden</translation>
 <translation id="8952559610785099500">Wachtwoord toevoegen</translation>
 <translation id="8953046091948372197">Hier vind je je wachtwoorden</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index d9ef0ce..127aa0f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Bare på denne enheten</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Vil du lukke {COUNT} inaktiv fane?}other{Vil du lukke {COUNT} inaktive faner?}}</translation>
 <translation id="457386861538956877">Mer</translation>
-<translation id="4587235830039045480">Lagre passord i Google-kontoen din</translation>
 <translation id="4587589328781138893">Nettsteder</translation>
 <translation id="4588014171431912783">Synkroniseringsinnstillingene dine gjenopprettes basert på den forrige sikkerhetskopien. <ph name="BEGIN_LINK" />Se hva du kan synkronisere<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tastatur</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Marker tekst på nettsteder</translation>
 <translation id="8917490105272468696">Ja, den er grei</translation>
 <translation id="8928133177108699615">Datamaskin</translation>
-<translation id="8934982071228289624">For å lagre dette passordet i kontoen din må du først angi en adgangskode på enheten din.</translation>
 <translation id="894191600409472540">Lag sterke passord</translation>
 <translation id="8952559610785099500">Legg til et passord</translation>
 <translation id="8953046091948372197">Her finner du passordene dine</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb
index 1145b6f..2f04a69 100644
--- a/ios/chrome/app/strings/resources/ios_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">କେବଳ ଏହି ଡିଭାଇସରେ</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT}ଟି ନିଷ୍କ୍ରିୟ ଟାବକୁ ବନ୍ଦ କରିବେ?}other{{COUNT}ଟି ନିଷ୍କ୍ରିୟ ଟାବକୁ ବନ୍ଦ କରିବେ?}}</translation>
 <translation id="457386861538956877">ଅଧିକ...</translation>
-<translation id="4587235830039045480">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ପାସୱାର୍ଡ ସେଭ କରନ୍ତୁ</translation>
 <translation id="4587589328781138893">ସାଇଟଗୁଡ଼ିକ</translation>
 <translation id="4588014171431912783">ଆପଣଙ୍କ ଗତ ବେକଅପ ଆଧାରରେ ଆପଣଙ୍କର ସିଙ୍କ ସେଟିଂସ ରିଷ୍ଟୋର ହେବ। <ph name="BEGIN_LINK" />ଆପଣ କଣ ସିଙ୍କ କରିପାରିବେ ତାହା ଦେଖନ୍ତୁ<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">କୀବୋର୍ଡ</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">ଏକ ସାଇଟରେ ଟେକ୍ସଟକୁ ହାଇଲାଇଟ କରନ୍ତୁ</translation>
 <translation id="8917490105272468696">ହଁ, ମୁଁ ରାଜି ଅଛି</translation>
 <translation id="8928133177108699615">ଡେସ୍କଟପ</translation>
-<translation id="8934982071228289624">ଆପଣଙ୍କ ଆକାଉଣ୍ଟରେ ଏହି ପାସୱାର୍ଡକୁ ସେଭ କରିବା ପାଇଁ ଆପଣ ପ୍ରଥମେ ଆପଣଙ୍କ ଡିଭାଇସରେ ଏକ ପାସକୋଡ ସେଟ କରିବା ଆବଶ୍ୟକ।</translation>
 <translation id="894191600409472540">ଜଟିଳ ପାସୱାର୍ଡ ତିଆରି କରନ୍ତୁ</translation>
 <translation id="8952559610785099500">ପାସୱାର୍ଡ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="8953046091948372197">ଆପଣ ଏଠାରେ ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକ ପାଇବେ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index 6f3a693..1e9991c5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{ਕੀ {COUNT} ਅਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?}one{ਕੀ {COUNT} ਅਕਿਰਿਆਸ਼ੀਲ ਟੈਬ ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?}other{ਕੀ {COUNT} ਅਕਿਰਿਆਸ਼ੀਲ ਟੈਬਾਂ ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?}}</translation>
 <translation id="457386861538956877">ਹੋਰ...</translation>
-<translation id="4587235830039045480">ਪਾਸਵਰਡ ਨੂੰ ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ</translation>
 <translation id="4587589328781138893">ਸਾਈਟਾਂ</translation>
 <translation id="4588014171431912783">ਤੁਹਾਡੀਆਂ ਸਿੰਕ ਸੈਟਿੰਗਾਂ ਨੂੰ ਤੁਹਾਡੇ ਪਿਛਲੇ ਬੈਕਅੱਪ ਦੇ ਆਧਾਰ 'ਤੇ ਮੁੜ-ਬਹਾਲ ਕੀਤਾ ਜਾਵੇਗਾ। <ph name="BEGIN_LINK" />ਦੇਖੋ ਕਿ ਤੁਸੀਂ ਕਿਸ ਚੀਜ਼ ਦਾ ਸਿੰਕ ਕਰ ਸਕਦੇ ਹੋ<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">ਕੀ-ਬੋਰਡ</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">ਸਾਈਟ 'ਤੇ ਲਿਖਤ ਨੂੰ ਉਜਾਗਰ ਕਰੋ</translation>
 <translation id="8917490105272468696">ਹਾਂ, ਮੈਂ ਸਹਿਮਤ ਹਾਂ</translation>
 <translation id="8928133177108699615">ਡੈਸਕਟਾਪ</translation>
-<translation id="8934982071228289624">ਇਸ ਪਾਸਵਰਡ ਨੂੰ ਆਪਣੇ ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਆਪਣੇ ਡੀਵਾਈਸ 'ਤੇ ਪਾਸਕੋਡ ਸੈੱਟ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।</translation>
 <translation id="894191600409472540">ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਬਣਾਓ</translation>
 <translation id="8952559610785099500">ਪਾਸਵਰਡ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="8953046091948372197">ਤੁਹਾਨੂੰ ਆਪਣੇ ਪਾਸਵਰਡ ਇੱਥੇ ਮਿਲਣਗੇ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index 97060761..b4fdfe8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Tylko na tym urządzeniu</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Zamknąć {COUNT} nieaktywną kartę?}few{Zamknąć {COUNT} nieaktywne karty?}many{Zamknąć {COUNT} nieaktywnych kart?}other{Zamknąć {COUNT} nieaktywnej karty?}}</translation>
 <translation id="457386861538956877">Więcej</translation>
-<translation id="4587235830039045480">Zapisz hasło na koncie Google</translation>
 <translation id="4587589328781138893">Witryny</translation>
 <translation id="4588014171431912783">Ustawienia synchronizacji zostaną przywrócone na podstawie ostatniej kopii zapasowej. <ph name="BEGIN_LINK" />Zobacz, co możesz synchronizować<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Klawiatura</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Zaznaczanie tekstu w witrynie</translation>
 <translation id="8917490105272468696">Tak, zgadzam się</translation>
 <translation id="8928133177108699615">Komputerowy</translation>
-<translation id="8934982071228289624">Aby zapisać to hasło na koncie, musisz najpierw ustawić kod dostępu na urządzeniu.</translation>
 <translation id="894191600409472540">Utwórz silne hasła</translation>
 <translation id="8952559610785099500">Dodaj hasło</translation>
 <translation id="8953046091948372197">Tu znajdziesz swoje zakładki</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
index f4a12851..bfbe797 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Somente neste dispositivo</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Fechar {COUNT} guia inativa?}one{Fechar {COUNT} guia inativa?}other{Fechar {COUNT} guias inativas?}}</translation>
 <translation id="457386861538956877">Mais...</translation>
-<translation id="4587235830039045480">Salve a senha na sua Conta do Google</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">Suas configurações de sincronização vão ser restauradas com base no seu último backup. <ph name="BEGIN_LINK" />Veja o que pode ser sincronizado<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Teclado</translation>
@@ -1335,7 +1334,6 @@
 <translation id="891658175948553296">Destacar texto em um site</translation>
 <translation id="8917490105272468696">Sim</translation>
 <translation id="8928133177108699615">Computador</translation>
-<translation id="8934982071228289624">Para salvar essa senha na sua conta, primeiro defina uma para o dispositivo.</translation>
 <translation id="894191600409472540">Crie senhas fortes</translation>
 <translation id="8952559610785099500">Adicionar senha</translation>
 <translation id="8953046091948372197">Suas senhas vão aparecer aqui</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
index 525d2840..5136d4d16 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Só neste dispositivo</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Fechar {COUNT} separador inativo?}other{Fechar {COUNT} separadores inativos?}}</translation>
 <translation id="457386861538956877">Mais...</translation>
-<translation id="4587235830039045480">Guarde a palavra-passe na sua Conta Google</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">As definições de sincronização vão ser restauradas com base na última cópia de segurança. <ph name="BEGIN_LINK" />Veja o que pode sincronizar<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Teclado</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Realce texto num site</translation>
 <translation id="8917490105272468696">Sim, aceito</translation>
 <translation id="8928133177108699615">Computador</translation>
-<translation id="8934982071228289624">Para guardar esta palavra-passe na sua conta, tem de definir primeiro um código secreto no dispositivo.</translation>
 <translation id="894191600409472540">Crie palavras-passe fortes</translation>
 <translation id="8952559610785099500">Adicione uma palavra-passe</translation>
 <translation id="8953046091948372197">As suas palavras-passe são apresentadas aqui</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index cb6c2b1f..185aeeed 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Numai pe acest dispozitiv</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Închizi {COUNT} filă inactivă?}few{Închizi {COUNT} file inactive?}other{Închizi {COUNT} de file inactive?}}</translation>
 <translation id="457386861538956877">Mai multe...</translation>
-<translation id="4587235830039045480">Salvează parola în Contul Google</translation>
 <translation id="4587589328781138893">Site-uri</translation>
 <translation id="4588014171431912783">Setările de sincronizare vor fi restabilite pe baza ultimului backup. <ph name="BEGIN_LINK" />Află ce poți sincroniza<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tastatură</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Evidențiază textul pe un site</translation>
 <translation id="8917490105272468696">Da, accept</translation>
 <translation id="8928133177108699615">Computer</translation>
-<translation id="8934982071228289624">Pentru a salva parola în cont, mai întâi trebuie să setezi o parolă pe dispozitiv.</translation>
 <translation id="894191600409472540">Creează parole puternice</translation>
 <translation id="8952559610785099500">Adaugă parola</translation>
 <translation id="8953046091948372197">Aici vei vedea parolele</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index 97dd7488..c8dcc892 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Только на этом устройстве</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Закрыть {COUNT} неактивную вкладку?}one{Закрыть {COUNT} неактивную вкладку?}few{Закрыть {COUNT} неактивные вкладки?}many{Закрыть {COUNT} неактивных вкладок?}other{Закрыть {COUNT} неактивной вкладки?}}</translation>
 <translation id="457386861538956877">Ещё...</translation>
-<translation id="4587235830039045480">Сохраните пароль в аккаунте Google.</translation>
 <translation id="4587589328781138893">Сайты</translation>
 <translation id="4588014171431912783">Ваши настройки синхронизации будут восстановлены на основе данных из последней резервной копии. <ph name="BEGIN_LINK" />Какие данные можно синхронизировать<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Клавиатура</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Выделите текст на сайте.</translation>
 <translation id="8917490105272468696">Включить функцию</translation>
 <translation id="8928133177108699615">Версия для компьютера</translation>
-<translation id="8934982071228289624">Чтобы сохранить этот пароль в аккаунте, задайте код-пароль на устройстве.</translation>
 <translation id="894191600409472540">Создайте надежные пароли</translation>
 <translation id="8952559610785099500">Добавление пароля</translation>
 <translation id="8953046091948372197">Здесь будут ваши пароли</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb
index 1d303bbb..90d06dd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">මෙම උපාංගය මත පමණි</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} අක්‍රිය පටිත්තක් වසන්න ද?}one{අක්‍රිය පටිති {COUNT}ක් වසන්න ද?}other{අක්‍රිය පටිති {COUNT}ක් වසන්න ද?}}</translation>
 <translation id="457386861538956877">තව...</translation>
-<translation id="4587235830039045480">ඔබේ Google ගිණුමේ මුරපදය සුරකින්න</translation>
 <translation id="4587589328781138893">අඩවි</translation>
 <translation id="4588014171431912783">ඔබේ අවසන් උපස්ථය මත පදනම්ව ඔබේ සමමුහුර්ත කිරීමේ සැකසීම් ප්‍රතිසාධනය කරනු ලැබේ. <ph name="BEGIN_LINK" />ඔබට සමමුහුර්ත කළ හැකි දේ බලන්න<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">යතුරු පුවරුව</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">අඩවියක පෙළ උද්දීපනය කරන්න</translation>
 <translation id="8917490105272468696">ඔව්, මම කැමතියි</translation>
 <translation id="8928133177108699615">ඩෙස්ක්ටොප්</translation>
-<translation id="8934982071228289624">මෙම මුරපදය ඔබේ ගිණුමේ සුරැකීම සඳහා, ඔබ පළමුව ඔබේ උපාංගයෙහි මුරකේතයක් සැකසිය යුතු වේ.</translation>
 <translation id="894191600409472540">ප්‍රබල මුරපද තනන්න</translation>
 <translation id="8952559610785099500">මුරපදය එක් කරන්න</translation>
 <translation id="8953046091948372197">ඔබ ඔබේ මුරපද මෙතැනින් සොයා ගනියි</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index d4887f3..c7c8bd9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Iba v tomto zariadení</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Chcete zavrieť {COUNT} neaktívnu kartu?}few{Chcete zavrieť {COUNT} neaktívne karty?}many{Close {COUNT} Inactive Tabs?}other{Chcete zavrieť {COUNT} neaktívnych kariet?}}</translation>
 <translation id="457386861538956877">Viac...</translation>
-<translation id="4587235830039045480">Uloženie hesla do účtu Google</translation>
 <translation id="4587589328781138893">Weby</translation>
 <translation id="4588014171431912783">Nastavenia synchronizácie budú obnovené na základe poslednej zálohy. <ph name="BEGIN_LINK" />Čo môžete synchronizovať<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Klávesnica</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Zvýraznite text na webe</translation>
 <translation id="8917490105272468696">Áno, súhlasím</translation>
 <translation id="8928133177108699615">Počítač</translation>
-<translation id="8934982071228289624">Ak chcete uložiť toto heslo vo svojom účte, musíte najprv nastaviť vstupný kód v zariadení.</translation>
 <translation id="894191600409472540">Vytvárajte si silné heslá</translation>
 <translation id="8952559610785099500">Pridanie hesla</translation>
 <translation id="8953046091948372197">Tu nájdete svoje heslá</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index 3fd39d16e..a76f7945 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Samo v tej napravi</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Želite zapreti {COUNT} neaktiven zavihek?}one{Želite zapreti {COUNT} neaktiven zavihek?}two{Želite zapreti {COUNT} neaktivna zavihka?}few{Želite zapreti {COUNT} neaktivne zavihke?}other{Želite zapreti {COUNT} neaktivnih zavihkov?}}</translation>
 <translation id="457386861538956877">Več ...</translation>
-<translation id="4587235830039045480">Shranjevanje gesla v račun Google</translation>
 <translation id="4587589328781138893">Spletna mesta</translation>
 <translation id="4588014171431912783">Nastavitve sinhronizacije bodo obnovljene na podlagi zadnjega varnostnega kopiranja. <ph name="BEGIN_LINK" />Oglejte si, kaj lahko sinhronizirate.<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tipkovnica</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Označite besedilo na spletnem mestu</translation>
 <translation id="8917490105272468696">Da, sem za</translation>
 <translation id="8928133177108699615">Namizje</translation>
-<translation id="8934982071228289624">Če želite shraniti to geslo v računu, morate najprej nastaviti geslo v napravi.</translation>
 <translation id="894191600409472540">Ustvarite zapletena gesla.</translation>
 <translation id="8952559610785099500">Dodajanje gesla</translation>
 <translation id="8953046091948372197">Tukaj bodo prikazana gesla</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
index ef6c0af..01d6e509 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">. Vetëm në këtë pajisje</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Të mbyllet {COUNT} skedë joaktive?}other{Të mbyllen {COUNT} skeda joaktive?}}</translation>
 <translation id="457386861538956877">Më shumë...</translation>
-<translation id="4587235830039045480">Ruaje fjalëkalimin në "Llogarinë tënde të Google"</translation>
 <translation id="4587589328781138893">Sajtet</translation>
 <translation id="4588014171431912783">Cilësimet e tua të sinkronizimit do të restaurohen bazuar në rezervimin tënd të fundit. <ph name="BEGIN_LINK" />Shiko se çfarë mund të sinkronizosh<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tastiera</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Thekso tekstin në një sajt</translation>
 <translation id="8917490105272468696">Po, jam dakord</translation>
 <translation id="8928133177108699615">Desktop</translation>
-<translation id="8934982071228289624">Për ta ruajtur këtë fjalëkalim në llogarinë tënde, në fillim duhet të caktosh një kod kalimi në pajisjen tënde.</translation>
 <translation id="894191600409472540">Krijo fjalëkalime të forta</translation>
 <translation id="8952559610785099500">Shto fjalëkalimin</translation>
 <translation id="8953046091948372197">Këtu do të gjesh fjalëkalimet e tua</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
index f25e68a..92005d8d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Samo na ovom uređaju</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Želite da zatvorite {COUNT} neaktivnu karticu?}one{Želite da zatvorite {COUNT} neaktivnu karticu?}few{Želite da zatvorite {COUNT} neaktivne kartice?}other{Želite da zatvorite {COUNT} neaktivnih kartica?}}</translation>
 <translation id="457386861538956877">Još...</translation>
-<translation id="4587235830039045480">Sačuvajte lozinku na Google nalogu</translation>
 <translation id="4587589328781138893">Sajtovi</translation>
 <translation id="4588014171431912783">Podešavanja sinhronizacije će se vratiti osnovu poslednje rezervne kopije. <ph name="BEGIN_LINK" />Pogledajte šta možete da sinhronizujete<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tastatura</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Istaknite tekst na sajtu</translation>
 <translation id="8917490105272468696">Da, omogući</translation>
 <translation id="8928133177108699615">Računar</translation>
-<translation id="8934982071228289624">Da biste sačuvali ovu lozinku na nalogu, morate prvo da podesite šifru na uređaju.</translation>
 <translation id="894191600409472540">Napravite jake lozinke</translation>
 <translation id="8952559610785099500">Dodajte lozinku</translation>
 <translation id="8953046091948372197">Ovde ćete pronaći lozinke</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index 796a339..31cad57 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Само на овом уређају</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Желите да затворите {COUNT} неактивну картицу?}one{Желите да затворите {COUNT} неактивну картицу?}few{Желите да затворите {COUNT} неактивне картице?}other{Желите да затворите {COUNT} неактивних картица?}}</translation>
 <translation id="457386861538956877">Још...</translation>
-<translation id="4587235830039045480">Сачувајте лозинку на Google налогу</translation>
 <translation id="4587589328781138893">Сајтови</translation>
 <translation id="4588014171431912783">Подешавања синхронизације ће се вратити основу последње резервне копије. <ph name="BEGIN_LINK" />Погледајте шта можете да синхронизујете<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Тастатура</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Истакните текст на сајту</translation>
 <translation id="8917490105272468696">Да, омогући</translation>
 <translation id="8928133177108699615">Рачунар</translation>
-<translation id="8934982071228289624">Да бисте сачували ову лозинку на налогу, морате прво да подесите шифру на уређају.</translation>
 <translation id="894191600409472540">Направите јаке лозинке</translation>
 <translation id="8952559610785099500">Додајте лозинку</translation>
 <translation id="8953046091948372197">Овде ћете пронаћи лозинке</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 687b779..9d05d8c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Bara på den här enheten</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Vill du stänga {COUNT} inaktiv flik?}other{Vill du stänga {COUNT} inaktiva flikar?}}</translation>
 <translation id="457386861538956877">Mer...</translation>
-<translation id="4587235830039045480">Spara lösenord i Google-kontot</translation>
 <translation id="4587589328781138893">Webbplatser</translation>
 <translation id="4588014171431912783">Synkroniseringsinställningarna återställs utifrån den senaste säkerhetskopian. <ph name="BEGIN_LINK" />Se vad du kan synkronisera<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Tangentbord</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Markera text på en webbplats</translation>
 <translation id="8917490105272468696">Ja</translation>
 <translation id="8928133177108699615">Dator</translation>
-<translation id="8934982071228289624">Om du vill spara det här lösenordet i ditt konto måste du först ställa in ett lösenord på enheten.</translation>
 <translation id="894191600409472540">Skapa starka lösenord</translation>
 <translation id="8952559610785099500">Lägg till lösenord</translation>
 <translation id="8953046091948372197">Du hittar dina lösenord här</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 8c56fea..4055d35c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Kwenye Kifaa hiki Pekee</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Ungependa Kufunga Kichupo {COUNT} Kisichotumika?}other{Ungependa Kufunga Vichupo {COUNT} Visivyotumika?}}</translation>
 <translation id="457386861538956877">Zaidi...</translation>
-<translation id="4587235830039045480">Hifadhi nenosiri kwenye Akaunti yako ya Google</translation>
 <translation id="4587589328781138893">Tovuti</translation>
 <translation id="4588014171431912783">Mipangilio yako ya usawazishaji itarejeshwa kulingana na nakala uliyohifadhi mara ya mwisho. <ph name="BEGIN_LINK" />Angalia Maudhui Unayoweza Kusawazisha<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Kibodi</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Angazia Maandishi kwenye Tovuti</translation>
 <translation id="8917490105272468696">Ndiyo, Ninakubali</translation>
 <translation id="8928133177108699615">Kompyuta ya mezani</translation>
-<translation id="8934982071228289624">Ili uhifadhi nenosiri hili kwenye akaunti yako, ni lazima kwanza uweke nambari ya siri kwenye kifaa chako.</translation>
 <translation id="894191600409472540">Unda manenosiri thabiti</translation>
 <translation id="8952559610785099500">Weka Nenosiri</translation>
 <translation id="8953046091948372197">Utaona manenosiri yako hapa</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 904b0268..2687f240 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">இந்தச் சாதனத்தில் மட்டும்</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{செயலில் இல்லாத {COUNT} பக்கத்தை மூடவா?}other{செயலில் இல்லாத {COUNT} பக்கங்களை மூடவா?}}</translation>
 <translation id="457386861538956877">மேலும்...</translation>
-<translation id="4587235830039045480">உங்கள் Google கணக்கில் கடவுச்சொல்லைச் சேமியுங்கள்</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">நீங்கள் கடைசியாக எடுத்த காப்புப் பிரதியின் அடிப்படையில் ஒத்திசைவு அமைப்புகள் மீட்டெடுக்கப்படும். <ph name="BEGIN_LINK" />எதையெல்லாம் ஒத்திசைக்கலாம் என அறிந்துகொள்ளுங்கள்<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">கீபோர்டு</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">தளத்தில் வார்த்தைகளை ஹைலைட் செய்யவும்</translation>
 <translation id="8917490105272468696">ஏற்கிறேன்</translation>
 <translation id="8928133177108699615">டெஸ்க்டாப்</translation>
-<translation id="8934982071228289624">இந்தக் கடவுச்சொல்லை உங்கள் கணக்கில் சேமிக்க, உங்கள் சாதனத்தில் ஒரு கடவுக்குறியீட்டை முதலில் அமைக்க வேண்டும்.</translation>
 <translation id="894191600409472540">வலிமையான கடவுச்சொற்களை உருவாக்குங்கள்</translation>
 <translation id="8952559610785099500">கடவுச்சொல்லைச் சேருங்கள்</translation>
 <translation id="8953046091948372197">உங்கள் கடவுச்சொற்களை இங்கே பார்க்கலாம்</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index c56f25f..32cf003f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">ఈ పరికరంలో మాత్రమే</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} ఇన్‌యాక్టివ్ ట్యాబ్‌ను మూసివేయాలా?}other{{COUNT} ఇన్‌యాక్టివ్ ట్యాబ్‌లను మూసివేయాలా?}}</translation>
 <translation id="457386861538956877">మరిన్ని...</translation>
-<translation id="4587235830039045480">మీ Google ఖాతాలో పాస్‌వర్డ్‌ను సేవ్ చేయండి</translation>
 <translation id="4587589328781138893">సైట్‌లు</translation>
 <translation id="4588014171431912783">మీ చివరి బ్యాకప్ ఆధారంగా మీ సింక్ సెట్టింగ్‌లు రీస్టోర్ చేయబడతాయి. <ph name="BEGIN_LINK" />మీరు వేటినీ సింక్ చేయగలరో చూడండి<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">కీబోర్డ్</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">సైట్‌లో టెక్స్ట్‌ను హైలైట్ చేయండి</translation>
 <translation id="8917490105272468696">సరే, నాకు సమ్మతమే</translation>
 <translation id="8928133177108699615">డెస్క్‌టాప్</translation>
-<translation id="8934982071228289624">ఈ పాస్‌వర్డ్‌ను మీ ఖాతాలో సేవ్ చేయడానికి, ముందు ఖచ్చితంగా మీ పరికరంలో మీరు పాస్‌కోడ్‌ను సెట్ చేయాలి.</translation>
 <translation id="894191600409472540">శక్తివంతమైన పాస్‌వర్డ్‌లను క్రియేట్ చేయండి</translation>
 <translation id="8952559610785099500">పాస్‌వర్డ్‌ను జోడించండి</translation>
 <translation id="8953046091948372197">మీరు మీ పాస్‌వర్డ్‌లను ఇక్కడ చూడవచ్చు</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index 623f4f5..315c477a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">เฉพาะในอุปกรณ์นี้</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{ปิดแท็บที่ไม่ได้ใช้งาน {COUNT} แท็บใช่ไหม}other{ปิดแท็บที่ไม่ได้ใช้งาน {COUNT} แท็บใช่ไหม}}</translation>
 <translation id="457386861538956877">เพิ่มเติม...</translation>
-<translation id="4587235830039045480">บันทึกรหัสผ่านในบัญชี Google</translation>
 <translation id="4587589328781138893">เว็บไซต์</translation>
 <translation id="4588014171431912783">ระบบจะกู้คืนการตั้งค่าการซิงค์ตามการสำรองข้อมูลครั้งล่าสุด <ph name="BEGIN_LINK" />ดูสิ่งที่คุณซิงค์ได้<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">แป้นพิมพ์</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">ไฮไลต์ข้อความในเว็บไซต์</translation>
 <translation id="8917490105272468696">ได้สิ ตกลง</translation>
 <translation id="8928133177108699615">เดสก์ท็อป</translation>
-<translation id="8934982071228289624">หากต้องการบันทึกรหัสผ่านนี้ในบัญชี คุณต้องตั้งรหัสผ่านในอุปกรณ์ก่อน</translation>
 <translation id="894191600409472540">สร้างรหัสผ่านที่รัดกุม</translation>
 <translation id="8952559610785099500">เพิ่มรหัสผ่าน</translation>
 <translation id="8953046091948372197">คุณจะเห็นรหัสผ่านที่นี่</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 8159566..2c9bc59 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Yalnızca Bu Cihazda</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Etkin Olmayan {COUNT} Sekme Kapatılsın mı?}other{Etkin Olmayan {COUNT} Sekme Kapatılsın mı?}}</translation>
 <translation id="457386861538956877">Diğer...</translation>
-<translation id="4587235830039045480">Şifreyi Google Hesabınıza kaydedin</translation>
 <translation id="4587589328781138893">Siteler</translation>
 <translation id="4588014171431912783">Senkronizasyon ayarlarınız, son yedeğinize bağlı olarak geri yüklenecek. <ph name="BEGIN_LINK" />Neleri Senkronize Edebileceğinizi Görün<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Klavye</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Bir Sitedeki Metni Vurgulayın</translation>
 <translation id="8917490105272468696">Evet</translation>
 <translation id="8928133177108699615">Masaüstü</translation>
-<translation id="8934982071228289624">Bu şifreyi hesabınıza kaydetmek için öncelikle cihazınızda bir şifre kodu ayarlamanız gerekir.</translation>
 <translation id="894191600409472540">Güçlü şifreler oluşturun</translation>
 <translation id="8952559610785099500">Şifre Ekleyin</translation>
 <translation id="8953046091948372197">Şifreleriniz burada gösterilir</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index 5efa3eb0..3afb7a4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Лише на цьому пристрої</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Закрити {COUNT} неактивну вкладку?}one{Закрити {COUNT} неактивну вкладку?}few{Закрити {COUNT} неактивні вкладки?}many{Закрити {COUNT} неактивних вкладок?}other{Закрити {COUNT} неактивної вкладки?}}</translation>
 <translation id="457386861538956877">Інші...</translation>
-<translation id="4587235830039045480">Збережіть пароль у своєму обліковому записі Google</translation>
 <translation id="4587589328781138893">Сайти</translation>
 <translation id="4588014171431912783">Налаштування синхронізації буде відновлено на основі даних останньої резервної копії. <ph name="BEGIN_LINK" />Дізнайтесь, які дані можна синхронізувати.<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Клавіатура</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Виділіть текст на сайті</translation>
 <translation id="8917490105272468696">Так</translation>
 <translation id="8928133177108699615">Режим робочого столу</translation>
-<translation id="8934982071228289624">Щоб зберегти цей пароль в обліковому записі, спершу вам потрібно налаштувати код доступу на своєму пристрої.</translation>
 <translation id="894191600409472540">Створіть надійні паролі</translation>
 <translation id="8952559610785099500">Додати пароль</translation>
 <translation id="8953046091948372197">Тут відображатимуться ваші паролі</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
index e73ce370..dc3e4ba1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">صرف اس آلہ پر</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} غیر فعال ٹیب بند کریں؟}other{{COUNT} غیر فعال ٹیبز بند کریں؟}}</translation>
 <translation id="457386861538956877">مزید…</translation>
-<translation id="4587235830039045480">‏اپنے Google اکاؤنٹ میں پاس ورڈ محفوظ کریں</translation>
 <translation id="4587589328781138893">سائٹیں</translation>
 <translation id="4588014171431912783">آپ کی مطابقت پذیری کی ترتیبات آپ کے آخری بیک اپ کی بنیاد پر بحال کی جائیں گی۔ <ph name="BEGIN_LINK" />دیکھیں کہ آپ کیا مطابقت پذیر کر سکتے ہیں<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">کی بورڈ</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">کسی سائٹ پر ٹیکسٹ کو نمایاں کریں</translation>
 <translation id="8917490105272468696">ہاں میں متفق ہوں</translation>
 <translation id="8928133177108699615">ڈیسک ٹاپ</translation>
-<translation id="8934982071228289624">اپنے اکاؤنٹ میں اس پاس ورڈ کو محفوظ کرنے کے لیے آپ کو پہلے اپنے آلے پر پاس کوڈ سیٹ کرنا ہوگا۔</translation>
 <translation id="894191600409472540">مضبوط پاس ورڈز تخلیق کریں</translation>
 <translation id="8952559610785099500">پاس ورڈ شامل کریں</translation>
 <translation id="8953046091948372197">آپ کو اپنے پاس ورڈ یہاں ملیں گے</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index 70c33d3..d6220a2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Faqat shu qurilmada</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{{COUNT} ta nofaol varaq yopilsinmi?}other{{COUNT} ta nofaol varaq yopilsinmi?}}</translation>
 <translation id="457386861538956877">Yana...</translation>
-<translation id="4587235830039045480">Parolni Google hisobingizda saqlang</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4588014171431912783">Sinxronizatsiya sozlamalari oxirgi zaxiraviy fayl asosida tiklanadi. <ph name="BEGIN_LINK" />Nimalarni sinxronlash mumkin<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Klaviatura</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Saytdagi matnni ajratib belgilang</translation>
 <translation id="8917490105272468696">Ha, roziman</translation>
 <translation id="8928133177108699615">Ish stoli</translation>
-<translation id="8934982071228289624">Bu parolni hisobingizga saqlash uchun avval qurilmangizda kodni sozlashingiz kerak.</translation>
 <translation id="894191600409472540">Kuchli parollar yarating</translation>
 <translation id="8952559610785099500">Parol kiritish</translation>
 <translation id="8953046091948372197">Parollaringiz shu yerda chiqadi</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index 0e31774..85a6c593 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Chỉ trên thiết bị này</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Đóng {COUNT} thẻ không hoạt động?}other{Đóng {COUNT} thẻ không hoạt động?}}</translation>
 <translation id="457386861538956877">Thêm...</translation>
-<translation id="4587235830039045480">Lưu mật khẩu trong Tài khoản Google của bạn</translation>
 <translation id="4587589328781138893">Trang web</translation>
 <translation id="4588014171431912783">Chế độ cài đặt đồng bộ hoá sẽ được khôi phục dựa trên lần sao lưu gần đây nhất. <ph name="BEGIN_LINK" />Xem những nội dung bạn có thể đồng bộ hoá<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Bàn phím</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Đánh dấu văn bản trên trang web</translation>
 <translation id="8917490105272468696">Có, tôi đồng ý</translation>
 <translation id="8928133177108699615">Máy tính</translation>
-<translation id="8934982071228289624">Để lưu mật khẩu này trong tài khoản của bạn, trước tiên, bạn phải đặt mật mã trên thiết bị.</translation>
 <translation id="894191600409472540">Tạo mật khẩu mạnh</translation>
 <translation id="8952559610785099500">Thêm mật khẩu</translation>
 <translation id="8953046091948372197">Bạn sẽ thấy mật khẩu ở đây</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
index 1d29385..fcb8ae78 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -578,7 +578,6 @@
 <translation id="4550040941166547650">仅保存在该设备上</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{要关闭 {COUNT} 个闲置标签页吗?}other{要关闭 {COUNT} 个闲置标签页吗?}}</translation>
 <translation id="457386861538956877">更多...</translation>
-<translation id="4587235830039045480">将密码保存在您的 Google 帐号中</translation>
 <translation id="4587589328781138893">网站</translation>
 <translation id="4588014171431912783">系统将根据上次备份来恢复您的同步设置。<ph name="BEGIN_LINK" />查看您可同步的内容<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">键盘</translation>
@@ -1326,7 +1325,6 @@
 <translation id="891658175948553296">在网站上突出显示文字</translation>
 <translation id="8917490105272468696">我同意</translation>
 <translation id="8928133177108699615">桌面版</translation>
-<translation id="8934982071228289624">若要将此密码保存到您的帐号中,您必须先在设备上设置一个用于解锁屏幕的密码。</translation>
 <translation id="894191600409472540">创建安全系数高的密码</translation>
 <translation id="8952559610785099500">添加密码</translation>
 <translation id="8953046091948372197">您的密码会显示在此处</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 6c1e9994..19bbcee 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">只在此裝置上</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{要關閉 {COUNT} 個閒置分頁嗎?}other{要關閉 {COUNT} 個閒置分頁嗎?}}</translation>
 <translation id="457386861538956877">更多語言…</translation>
-<translation id="4587235830039045480">將密碼儲存在您的 Google 帳戶中</translation>
 <translation id="4587589328781138893">網站</translation>
 <translation id="4588014171431912783">系統會根據上次的備份還原同步處理設定。<ph name="BEGIN_LINK" />查看您可同步處理的內容<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">鍵盤</translation>
@@ -1332,7 +1331,6 @@
 <translation id="891658175948553296">突顯網站的文字</translation>
 <translation id="8917490105272468696">係,我同意</translation>
 <translation id="8928133177108699615">桌面模式</translation>
-<translation id="8934982071228289624">如要將此密碼儲存在帳戶中,您必須首先在裝置上設定密碼。</translation>
 <translation id="894191600409472540">建立安全度高的密碼</translation>
 <translation id="8952559610785099500">新增密碼</translation>
 <translation id="8953046091948372197">這裡會顯示您的密碼</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 ffea314..9b8ae82 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -578,7 +578,6 @@
 <translation id="4550040941166547650">僅在這部裝置上</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{要關閉 {COUNT} 個閒置分頁嗎?}other{要關閉 {COUNT} 個閒置分頁嗎?}}</translation>
 <translation id="457386861538956877">更多…</translation>
-<translation id="4587235830039045480">將密碼儲存到 Google 帳戶</translation>
 <translation id="4587589328781138893">網站</translation>
 <translation id="4588014171431912783">系統會根據上次的備份記錄還原同步處理設定。<ph name="BEGIN_LINK" />查看可以同步處理的內容<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">鍵盤</translation>
@@ -1330,7 +1329,6 @@
 <translation id="891658175948553296">醒目顯示網站的文字</translation>
 <translation id="8917490105272468696">是,我同意</translation>
 <translation id="8928133177108699615">電腦模式</translation>
-<translation id="8934982071228289624">如要將這組密碼儲存在帳戶中,請務必先在裝置上設定密碼。</translation>
 <translation id="894191600409472540">建立高強度密碼</translation>
 <translation id="8952559610785099500">新增密碼</translation>
 <translation id="8953046091948372197">這裡會顯示你的密碼</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
index f0435e1..01cbdc2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -580,7 +580,6 @@
 <translation id="4550040941166547650">Kule Divayisi Kuphela</translation>
 <translation id="457292989631956153">{COUNT,plural, =1{Vala Ithebhu Engasebenzi e-{COUNT}?}one{Vala Amathebhu Angasebenzi angu-{COUNT}?}other{Vala Amathebhu Angasebenzi angu-{COUNT}?}}</translation>
 <translation id="457386861538956877">Okuningi...</translation>
-<translation id="4587235830039045480">Londoloza amaphasiwedi ku-akhawunti yakho ye-Google</translation>
 <translation id="4587589328781138893">Amasayithi</translation>
 <translation id="4588014171431912783">Amasethingi akho okuvumelanisa azobuyiselwa ngokusekelwe kusipele sakho sokugcina. <ph name="BEGIN_LINK" />Bona Lokho Ongakuvumelanisa<ph name="END_LINK" /></translation>
 <translation id="4592368184551360546">Ikhibhodi</translation>
@@ -1334,7 +1333,6 @@
 <translation id="891658175948553296">Gqamisa Umbhalo Kusayithi</translation>
 <translation id="8917490105272468696">Yebo, ngingenile</translation>
 <translation id="8928133177108699615">Ideskithophu</translation>
-<translation id="8934982071228289624">Ukuze ulondoloze le phasiwedi ku-akhawunti yakho, kufanele uqale usethe iphasikhodi kudivayisi yakho.</translation>
 <translation id="894191600409472540">Sungula amaphasiwedi aqinile</translation>
 <translation id="8952559610785099500">Engeza Iphasiwedi</translation>
 <translation id="8953046091948372197">Uzothola amabhukhimakhi wakho lapha</translation>
diff --git a/ios/chrome/browser/browsing_data/BUILD.gn b/ios/chrome/browser/browsing_data/BUILD.gn
index 808cac4..8821004 100644
--- a/ios/chrome/browser/browsing_data/BUILD.gn
+++ b/ios/chrome/browser/browsing_data/BUILD.gn
@@ -30,6 +30,8 @@
     "browsing_data_remover_observer_bridge.mm",
     "sessions_storage_util.h",
     "sessions_storage_util.mm",
+    "system_snapshots_cleaner.h",
+    "system_snapshots_cleaner.mm",
   ]
   deps = [
     ":counters",
@@ -110,6 +112,7 @@
     "browsing_data_remover_impl_unittest.mm",
     "browsing_data_remover_observer_bridge_unittest.mm",
     "cache_counter_unittest.cc",
+    "system_snapshots_cleaner_unittest.mm",
   ]
   deps = [
     ":browsing_data",
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
index ef1e9c44..ea7a241 100644
--- a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
+++ b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
@@ -40,6 +40,7 @@
 #import "ios/chrome/browser/browser_state/ios_chrome_io_thread.h"
 #import "ios/chrome/browser/browsing_data/browsing_data_features.h"
 #import "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
+#import "ios/chrome/browser/browsing_data/system_snapshots_cleaner.h"
 #import "ios/chrome/browser/crash_report/crash_helper.h"
 #import "ios/chrome/browser/external_files/external_file_remover.h"
 #import "ios/chrome/browser/external_files/external_file_remover_factory.h"
@@ -58,7 +59,6 @@
 #import "ios/chrome/browser/shared/model/application_context/application_context.h"
 #import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h"
 #import "ios/chrome/browser/signin/account_consistency_service_factory.h"
-#import "ios/chrome/browser/snapshots/snapshots_util.h"
 #import "ios/chrome/browser/web/font_size/font_size_tab_helper.h"
 #import "ios/chrome/browser/webdata_services/web_data_service_factory.h"
 #import "ios/components/security_interstitials/https_only_mode/https_upgrade_service.h"
diff --git a/ios/chrome/browser/snapshots/snapshots_util.h b/ios/chrome/browser/browsing_data/system_snapshots_cleaner.h
similarity index 72%
rename from ios/chrome/browser/snapshots/snapshots_util.h
rename to ios/chrome/browser/browsing_data/system_snapshots_cleaner.h
index 72da53d0..c2cd50f 100644
--- a/ios/chrome/browser/snapshots/snapshots_util.h
+++ b/ios/chrome/browser/browsing_data/system_snapshots_cleaner.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_SNAPSHOTS_SNAPSHOTS_UTIL_H_
-#define IOS_CHROME_BROWSER_SNAPSHOTS_SNAPSHOTS_UTIL_H_
+#ifndef IOS_CHROME_BROWSER_BROWSING_DATA_SYSTEM_SNAPSHOTS_CLEANER_H_
+#define IOS_CHROME_BROWSER_BROWSING_DATA_SYSTEM_SNAPSHOTS_CLEANER_H_
 
 #include <vector>
 
@@ -18,4 +18,4 @@
 // snapshots taken by iOS.
 void GetSnapshotsPaths(std::vector<base::FilePath>* snapshotsPaths);
 
-#endif  // IOS_CHROME_BROWSER_SNAPSHOTS_SNAPSHOTS_UTIL_H_
+#endif  // IOS_CHROME_BROWSER_BROWSING_DATA_SYSTEM_SNAPSHOTS_CLEANER_H_
diff --git a/ios/chrome/browser/snapshots/snapshots_util.mm b/ios/chrome/browser/browsing_data/system_snapshots_cleaner.mm
similarity index 96%
rename from ios/chrome/browser/snapshots/snapshots_util.mm
rename to ios/chrome/browser/browsing_data/system_snapshots_cleaner.mm
index f101e7e..fdec8de 100644
--- a/ios/chrome/browser/snapshots/snapshots_util.mm
+++ b/ios/chrome/browser/browsing_data/system_snapshots_cleaner.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/snapshots/snapshots_util.h"
+#import "ios/chrome/browser/browsing_data/system_snapshots_cleaner.h"
 
 #import <UIKit/UIKit.h>
 
diff --git a/ios/chrome/browser/snapshots/snapshots_util_unittest.mm b/ios/chrome/browser/browsing_data/system_snapshots_cleaner_unittest.mm
similarity index 95%
rename from ios/chrome/browser/snapshots/snapshots_util_unittest.mm
rename to ios/chrome/browser/browsing_data/system_snapshots_cleaner_unittest.mm
index 8cd3a8d..c286163 100644
--- a/ios/chrome/browser/snapshots/snapshots_util_unittest.mm
+++ b/ios/chrome/browser/browsing_data/system_snapshots_cleaner_unittest.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/snapshots/snapshots_util.h"
+#import "ios/chrome/browser/browsing_data/system_snapshots_cleaner.h"
 
 #import <Foundation/Foundation.h>
 #import <UIKit/UIKit.h>
@@ -29,8 +29,9 @@
                            encoding:[NSString defaultCStringEncoding]];
     if ([regex numberOfMatchesInString:string
                                options:0
-                                 range:NSMakeRange(0, [string length])])
+                                 range:NSMakeRange(0, [string length])]) {
       numberOfMatches++;
+    }
   }
   return numberOfMatches == 1;
 }
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index 380754b..39da285 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -1666,6 +1666,10 @@
     {"discover-feed-sport-card", flag_descriptions::kDiscoverFeedSportCardName,
      flag_descriptions::kDiscoverFeedSportCardDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(kDiscoverFeedSportCard)},
+    {"ios-password-auth-on-entry-v2",
+     flag_descriptions::kIOSPasswordAuthOnEntryV2Name,
+     flag_descriptions::kIOSPasswordAuthOnEntryV2Description, flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(password_manager::features::kIOSPasswordAuthOnEntryV2)},
 };
 
 bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
index e7d0c394..b85a22aa 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -607,8 +607,16 @@
 
 const char kIOSPasswordAuthOnEntryName[] = "Password Manager Auth on Entry";
 const char kIOSPasswordAuthOnEntryDescription[] =
-    "Requires Biometric Authentication before showing saved credentials in "
-    "Password Manager.";
+    "Requires Local Authentication before showing saved credentials in "
+    "the Password Manager Main Page. Ignored if 'Password Manager Auth on "
+    "Entry V2' is enabled.";
+
+const char kIOSPasswordAuthOnEntryV2Name[] =
+    "Password Manager Auth on Entry V2";
+const char kIOSPasswordAuthOnEntryV2Description[] =
+    "Requires Local Authentication before showing saved credentials in "
+    "Password Manager subpages. Supersedes `Password Manager Auth on Entry` if "
+    "enabled.";
 
 const char kIOSPasswordCheckupName[] = "Password Checkup";
 const char kIOSPasswordCheckupDescription[] =
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
index 92a21fa..b02d3ed 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -513,11 +513,16 @@
 extern const char kIOSNewPostRestoreExperienceName[];
 extern const char kIOSNewPostRestoreExperienceDescription[];
 
-// Title and description for the flag to require Biometric Authentication before
-// accessing the Password Manager.
+// Title and description for the flag to require Local Authentication before
+// accessing the Password Manager Main Page.
 extern const char kIOSPasswordAuthOnEntryName[];
 extern const char kIOSPasswordAuthOnEntryDescription[];
 
+// Title and description for the flag to require Local Authentication before
+// accessing the any of the Password Manager surfaces.
+extern const char kIOSPasswordAuthOnEntryV2Name[];
+extern const char kIOSPasswordAuthOnEntryV2Description[];
+
 // Title and description for the flag to enabled displaying and managing
 // compromised, weak and reused credentials in the Password Manager.
 extern const char kIOSPasswordCheckupName[];
diff --git a/ios/chrome/browser/passwords/ios_chrome_password_check_manager.h b/ios/chrome/browser/passwords/ios_chrome_password_check_manager.h
index eb185b7..ee22995 100644
--- a/ios/chrome/browser/passwords/ios_chrome_password_check_manager.h
+++ b/ios/chrome/browser/passwords/ios_chrome_password_check_manager.h
@@ -161,7 +161,7 @@
       observed_bulk_leak_check_service_{this};
 
   // Observers to listen to password check changes.
-  base::ObserverList<Observer> observers_;
+  base::ObserverList<Observer, true> observers_;
 
   base::WeakPtrFactory<IOSChromePasswordCheckManager> weak_ptr_factory_{this};
 };
diff --git a/ios/chrome/browser/providers/signin/DIR_METADATA b/ios/chrome/browser/providers/signin/DIR_METADATA
new file mode 100644
index 0000000..e297220
--- /dev/null
+++ b/ios/chrome/browser/providers/signin/DIR_METADATA
@@ -0,0 +1,2 @@
+mixins: "//components/signin/COMMON_METADATA"
+os: IOS
diff --git a/ios/chrome/browser/shared/coordinator/scene/BUILD.gn b/ios/chrome/browser/shared/coordinator/scene/BUILD.gn
index dedcd17..ce3fb74 100644
--- a/ios/chrome/browser/shared/coordinator/scene/BUILD.gn
+++ b/ios/chrome/browser/shared/coordinator/scene/BUILD.gn
@@ -114,7 +114,6 @@
     "//ios/chrome/browser/shared/model/web_state_list",
     "//ios/chrome/browser/shared/public/commands:commands",
     "//ios/chrome/browser/shared/public/features",
-    "//ios/chrome/browser/shared/public/features:system_flags",
     "//ios/chrome/browser/shared/ui/util",
     "//ios/chrome/browser/signin",
     "//ios/chrome/browser/signin:capabilities_types",
diff --git a/ios/chrome/browser/shared/coordinator/scene/scene_controller.mm b/ios/chrome/browser/shared/coordinator/scene/scene_controller.mm
index 38ca115..b059f94 100644
--- a/ios/chrome/browser/shared/coordinator/scene/scene_controller.mm
+++ b/ios/chrome/browser/shared/coordinator/scene/scene_controller.mm
@@ -95,7 +95,6 @@
 #import "ios/chrome/browser/shared/public/commands/show_signin_command.h"
 #import "ios/chrome/browser/shared/public/commands/snackbar_commands.h"
 #import "ios/chrome/browser/shared/public/features/features.h"
-#import "ios/chrome/browser/shared/public/features/system_flags.h"
 #import "ios/chrome/browser/shared/ui/util/top_view_controller.h"
 #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h"
 #import "ios/chrome/browser/signin/authentication_service.h"
@@ -824,9 +823,8 @@
             "Signin.AccountCapabilities.GetFromSystemLibraryDuration."
             "SigninUpgradePromo",
             fetch_duration);
-        if (!experimental_flags::AlwaysDisplayUpgradePromo() &&
-            (fetch_duration > signin::GetWaitThresholdForCapabilities() ||
-             result != CapabilityResult::kTrue)) {
+        if (fetch_duration > signin::GetWaitThresholdForCapabilities() ||
+            result != CapabilityResult::kTrue) {
           return;
         }
         [weakSelf presentSigninUpgradePromo];
@@ -1360,9 +1358,6 @@
   if (self.sceneState.appState.initStage <= InitStageFirstRun) {
     return NO;
   }
-  if (experimental_flags::AlwaysDisplayUpgradePromo()) {
-    return YES;
-  }
   if (!signin::ShouldPresentUserSigninUpgrade(
           self.sceneState.appState.mainBrowserState,
           version_info::GetVersion())) {
diff --git a/ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller.mm b/ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller.mm
index 268aaca..7703caa 100644
--- a/ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller.mm
+++ b/ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller.mm
@@ -141,7 +141,6 @@
   self.imageHasFixedSize = YES;
   self.showsVerticalScrollIndicator = NO;
   self.showDismissBarButton = NO;
-  self.customSpacingAfterImage = 0;
   self.topAlignedLayout = YES;
   self.customScrollViewBottomInsets = 0;
   self.customGradientViewHeight = kCustomGradientViewHeight;
diff --git a/ios/chrome/browser/signin/authentication_service.mm b/ios/chrome/browser/signin/authentication_service.mm
index c9b10d3..f9aea76a3 100644
--- a/ios/chrome/browser/signin/authentication_service.mm
+++ b/ios/chrome/browser/signin/authentication_service.mm
@@ -678,7 +678,10 @@
 
   if (should_prompt && account_filtered_out) {
     FirePrimaryAccountRestricted();
-  } else if (should_prompt) {
+  } else if (should_prompt &&
+             IsFirstSessionAfterDeviceRestore() != signin::Tribool::kTrue) {
+    // If the device is restored, the restore shorty UI will be shown.
+    // Therefore, the reauth UI should be skipped.
     SetReauthPromptForSignInAndSync();
   }
 }
diff --git a/ios/chrome/browser/snapshots/BUILD.gn b/ios/chrome/browser/snapshots/BUILD.gn
index 2945070..c069e2b 100644
--- a/ios/chrome/browser/snapshots/BUILD.gn
+++ b/ios/chrome/browser/snapshots/BUILD.gn
@@ -11,7 +11,6 @@
     "snapshot_generator_delegate.h",
     "snapshot_lru_cache.h",
     "snapshot_tab_helper.h",
-    "snapshots_util.h",
   ]
   sources = [
     "snapshot_browser_agent.mm",
@@ -20,7 +19,6 @@
     "snapshot_generator.mm",
     "snapshot_lru_cache.mm",
     "snapshot_tab_helper.mm",
-    "snapshots_util.mm",
   ]
   deps = [
     "//base",
@@ -58,7 +56,6 @@
     "snapshot_cache_unittest.mm",
     "snapshot_lru_cache_unittest.mm",
     "snapshot_tab_helper_unittest.mm",
-    "snapshots_util_unittest.mm",
   ]
   deps = [
     ":snapshots",
diff --git a/ios/chrome/browser/snapshots/snapshot_browser_agent.mm b/ios/chrome/browser/snapshots/snapshot_browser_agent.mm
index 05f66c4..053af0a 100644
--- a/ios/chrome/browser/snapshots/snapshot_browser_agent.mm
+++ b/ios/chrome/browser/snapshots/snapshot_browser_agent.mm
@@ -94,17 +94,24 @@
   DCHECK(!snapshot_cache_);
   DCHECK(session_identifier.length != 0);
 
+  const std::string identifier = base::SysNSStringToUTF8(session_identifier);
+
+  const base::FilePath& browser_state_path =
+      browser_->GetBrowserState()->GetStatePath();
+
   // The snapshots are stored in a sub-directory of the session storage.
   // TODO(crbug.com/1383087): change this before launching the optimised
   // session storage as the session directory will be renamed.
-  const base::FilePath storage_path =
-      browser_->GetBrowserState()
-          ->GetStatePath()
-          .Append(FILE_PATH_LITERAL("Sessions"))
-          .Append(base::SysNSStringToUTF8(session_identifier))
+  const base::FilePath legacy_path =
+      browser_state_path.Append(FILE_PATH_LITERAL("Sessions"))
+          .Append(identifier)
           .Append(kSnapshots);
 
-  snapshot_cache_ = [[SnapshotCache alloc] initWithStoragePath:storage_path];
+  const base::FilePath storage_path =
+      browser_state_path.Append(kSnapshots).Append(identifier);
+
+  snapshot_cache_ = [[SnapshotCache alloc] initWithStoragePath:storage_path
+                                                    legacyPath:legacy_path];
 }
 
 void SnapshotBrowserAgent::PerformStorageMaintenance() {
diff --git a/ios/chrome/browser/snapshots/snapshot_cache.h b/ios/chrome/browser/snapshots/snapshot_cache.h
index 4e5ec84..09f08ab3 100644
--- a/ios/chrome/browser/snapshots/snapshot_cache.h
+++ b/ios/chrome/browser/snapshots/snapshot_cache.h
@@ -29,8 +29,19 @@
 // managed by this SnapshotCache are stored. `storagePath` is not guaranteed to
 // exist. The contents of `storagePath` are entirely managed by this
 // SnapshotCache.
+//
+// To support renaming the directory where the snapshots are stored, it is
+// possible to pass a non-empty path via `legacyPath`. If present, then it
+// will be moved to `storagePath`.
+//
+// TODO(crbug.com/1383087): Remove when the storage for all users has been
+// migrated.
 - (instancetype)initWithStoragePath:(const base::FilePath&)storagePath
+                         legacyPath:(const base::FilePath&)legacyPath
     NS_DESIGNATED_INITIALIZER;
+
+// Convenience initializer that pass an empty `legacyPath`.
+- (instancetype)initWithStoragePath:(const base::FilePath&)storagePath;
 - (instancetype)init NS_UNAVAILABLE;
 
 // The scale that should be used for snapshots.
diff --git a/ios/chrome/browser/snapshots/snapshot_cache.mm b/ios/chrome/browser/snapshots/snapshot_cache.mm
index 8b924b6b..3bdfb01c 100644
--- a/ios/chrome/browser/snapshots/snapshot_cache.mm
+++ b/ios/chrome/browser/snapshots/snapshot_cache.mm
@@ -314,12 +314,36 @@
   }
 }
 
-void CreateCacheDirectory(const base::FilePath& cache_directory) {
+void CreateCacheDirectory(const base::FilePath& cache_directory,
+                          const base::FilePath& legacy_directory) {
   // This is a NO-OP if the directory already exists.
   if (!base::CreateDirectory(cache_directory)) {
+    const base::File::Error error = base::File::GetLastFileError();
     DLOG(ERROR) << "Error creating snapshot storage: "
-                << cache_directory.AsUTF8Unsafe();
+                << cache_directory.AsUTF8Unsafe() << ": "
+                << base::File::ErrorToString(error);
+    return;
   }
+
+  if (legacy_directory.empty() || !base::DirectoryExists(legacy_directory)) {
+    return;
+  }
+
+  // If `legacy_directory` exists and is a directory, move its content to
+  // `cache_directory` and then delete the directory. As this function is
+  // used to move snapshot file which are not stored recursively, limit
+  // the enumeration to files and do not perform a recursive enumeration.
+  base::FileEnumerator iter(legacy_directory, /*recursive*/ false,
+                            base::FileEnumerator::FILES);
+
+  for (base::FilePath item = iter.Next(); !item.empty(); item = iter.Next()) {
+    base::FilePath to_path = cache_directory;
+    legacy_directory.AppendRelativePath(item, &to_path);
+    base::Move(item, to_path);
+  }
+
+  // Delete the `legacy_directory` once the existing files have been moved.
+  base::DeletePathRecursively(legacy_directory);
 }
 
 UIImage* GreyImageFromCachedImage(const base::FilePath& cache_directory,
@@ -377,7 +401,8 @@
   SEQUENCE_CHECKER(_sequenceChecker);
 }
 
-- (instancetype)initWithStoragePath:(const base::FilePath&)storagePath {
+- (instancetype)initWithStoragePath:(const base::FilePath&)storagePath
+                         legacyPath:(const base::FilePath&)legacyPath {
   DCHECK_CALLED_ON_VALID_SEQUENCE(_sequenceChecker);
   if ((self = [super init])) {
     NSUInteger cacheSize = IsPinnedTabsEnabled()
@@ -390,8 +415,9 @@
     _taskRunner = base::ThreadPool::CreateSequencedTaskRunner(
         {base::MayBlock(), base::TaskPriority::USER_VISIBLE});
 
-    // Must be called after task runner is created.
-    [self createStorageIfNecessary];
+    _taskRunner->PostTask(
+        FROM_HERE,
+        base::BindOnce(CreateCacheDirectory, _cacheDirectory, legacyPath));
 
     _observers = [SnapshotCacheObservers observers];
 
@@ -414,6 +440,10 @@
   return self;
 }
 
+- (instancetype)initWithStoragePath:(const base::FilePath&)storagePath {
+  return [self initWithStoragePath:storagePath legacyPath:base::FilePath()];
+}
+
 - (void)dealloc {
   DCHECK(!_taskRunner) << "-shutdown must be called before -dealloc";
 
@@ -730,17 +760,6 @@
   _taskRunner = nullptr;
 }
 
-#pragma mark - Private methods
-
-- (void)createStorageIfNecessary {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(_sequenceChecker);
-  if (!_taskRunner)
-    return;
-
-  _taskRunner->PostTask(FROM_HERE,
-                        base::BindOnce(CreateCacheDirectory, _cacheDirectory));
-}
-
 @end
 
 @implementation SnapshotCache (TestingAdditions)
diff --git a/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm b/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
index 16cd1aa7..7641624 100644
--- a/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
+++ b/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
@@ -14,7 +14,6 @@
 #import "base/mac/scoped_cftyperef.h"
 #import "base/run_loop.h"
 #import "base/strings/sys_string_conversions.h"
-#import "base/task/thread_pool/thread_pool_instance.h"
 #import "base/time/time.h"
 #import "ios/chrome/browser/snapshots/snapshot_cache_internal.h"
 #import "ios/chrome/browser/snapshots/snapshot_cache_observer.h"
@@ -24,8 +23,18 @@
 #import "testing/gtest_mac.h"
 #import "testing/platform_test.h"
 
-static const NSUInteger kSnapshotCount = 10;
-static const NSUInteger kSnapshotPixelSize = 8;
+namespace {
+
+const NSUInteger kSnapshotCount = 10;
+const NSUInteger kSnapshotPixelSize = 8;
+
+// Constants used to construct path to test the storage migration.
+const base::FilePath::CharType kSnapshots[] = FILE_PATH_LITERAL("Snapshots");
+const base::FilePath::CharType kSessions[] = FILE_PATH_LITERAL("Sessions");
+const base::FilePath::CharType kIdentifier[] = FILE_PATH_LITERAL("Identifier");
+const base::FilePath::CharType kFilename[] = FILE_PATH_LITERAL("Filename.txt");
+
+}  // namespace
 
 @interface FakeSnapshotCacheObserver : NSObject<SnapshotCacheObserver>
 @property(nonatomic, copy) NSString* lastUpdatedID;
@@ -42,15 +51,30 @@
 
 class SnapshotCacheTest : public PlatformTest {
  protected:
-  // Build an array of snapshot IDs and an array of UIImages filled with
-  // random colors.
   void SetUp() override {
     PlatformTest::SetUp();
-    ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
-    snapshotCache_ = [[SnapshotCache alloc]
-        initWithStoragePath:scoped_temp_directory_.GetPath()];
+
     testImages_ = [[NSMutableArray alloc] initWithCapacity:kSnapshotCount];
     snapshotIDs_ = [[NSMutableArray alloc] initWithCapacity:kSnapshotCount];
+  }
+
+  void TearDown() override {
+    ClearDumpedImages();
+    [snapshotCache_ shutdown];
+    snapshotCache_ = nil;
+    PlatformTest::TearDown();
+  }
+
+  // Build an array of snapshot IDs and an array of UIImages filled with
+  // random colors.
+  [[nodiscard]] bool CreateSnapshotCache() {
+    DCHECK(!snapshotCache_);
+    if (!scoped_temp_directory_.CreateUniqueTempDir()) {
+      return false;
+    }
+
+    snapshotCache_ = [[SnapshotCache alloc]
+        initWithStoragePath:scoped_temp_directory_.GetPath()];
 
     CGFloat scale = [snapshotCache_ snapshotScaleForDevice];
 
@@ -62,18 +86,14 @@
           addObject:[NSString stringWithFormat:@"SnapshotID-%" PRIuNS, i]];
     }
 
-    ClearDumpedImages();
+    return true;
   }
 
-  void TearDown() override {
-    ClearDumpedImages();
-    [snapshotCache_ shutdown];
-    snapshotCache_ = nil;
-    PlatformTest::TearDown();
+  SnapshotCache* GetSnapshotCache() {
+    DCHECK(snapshotCache_);
+    return snapshotCache_;
   }
 
-  SnapshotCache* GetSnapshotCache() { return snapshotCache_; }
-
   // Adds a fake snapshot file into `directory` using `snapshot_id` in the
   // filename.
   base::FilePath AddSnapshotFileToDirectory(const base::FilePath directory,
@@ -114,45 +134,54 @@
         }];
   }
 
-  // Flushes all the runloops internally used by the snapshot cache.
-  void FlushRunLoops() {
-    base::ThreadPoolInstance::Get()->FlushForTesting();
-    base::RunLoop().RunUntilIdle();
+  // Flushes all the runloops internally used by the snapshot cache. This is
+  // done by asking to retrieve a non-existent image from disk and blocking
+  // until the callback is invoked.
+  void FlushRunLoops(SnapshotCache* cache) {
+    base::RunLoop run_loop;
+    [cache retrieveImageForSnapshotID:[[NSUUID UUID] UUIDString]
+                             callback:base::CallbackToBlock(
+                                          base::IgnoreArgs<UIImage*>(
+                                              run_loop.QuitClosure()))];
+    run_loop.Run();
   }
 
   // This function removes the snapshots both from dictionary and from disk.
   void ClearDumpedImages() {
-    SnapshotCache* cache = GetSnapshotCache();
+    if (!snapshotCache_) {
+      return;
+    }
 
     NSString* snapshotID;
     for (snapshotID in snapshotIDs_)
-      [cache removeImageWithSnapshotID:snapshotID];
+      [snapshotCache_ removeImageWithSnapshotID:snapshotID];
 
-    FlushRunLoops();
+    FlushRunLoops(snapshotCache_);
     // The above calls to -removeImageWithSnapshotID remove both the color
     // and grey snapshots for each snapshotID, if they are on disk.  However,
     // ensure we also get rid of the grey snapshots in memory.
-    [cache removeGreyCache];
+    [snapshotCache_ removeGreyCache];
 
     __block BOOL foundImage = NO;
     __block NSUInteger numCallbacks = 0;
     for (snapshotID in snapshotIDs_) {
-      base::FilePath path([cache imagePathForSnapshotID:snapshotID]);
+      base::FilePath path([snapshotCache_ imagePathForSnapshotID:snapshotID]);
 
       // Checks that the snapshot is not on disk.
       EXPECT_FALSE(base::PathExists(path));
 
       // Check that the snapshot is not in the dictionary.
-      [cache retrieveImageForSnapshotID:snapshotID
-                               callback:^(UIImage* image) {
-                                 ++numCallbacks;
-                                 if (image)
-                                   foundImage = YES;
-                               }];
+      [snapshotCache_ retrieveImageForSnapshotID:snapshotID
+                                        callback:^(UIImage* image) {
+                                          ++numCallbacks;
+                                          if (image) {
+                                            foundImage = YES;
+                                          }
+                                        }];
     }
 
     // Expect that all the callbacks ran and that none retrieved an image.
-    FlushRunLoops();
+    FlushRunLoops(snapshotCache_);
     EXPECT_EQ([snapshotIDs_ count], numCallbacks);
     EXPECT_FALSE(foundImage);
   }
@@ -166,21 +195,20 @@
   // Loads `count` color images into the cache.  If `waitForFilesOnDisk`
   // is YES, will not return until the images have been written to disk.
   void LoadColorImagesIntoCache(NSUInteger count, bool waitForFilesOnDisk) {
-    SnapshotCache* cache = GetSnapshotCache();
     // Put color images in the cache.
     for (NSUInteger i = 0; i < count; ++i) {
       @autoreleasepool {
         UIImage* image = [testImages_ objectAtIndex:i];
         NSString* snapshotID = [snapshotIDs_ objectAtIndex:i];
-        [cache setImage:image withSnapshotID:snapshotID];
+        [snapshotCache_ setImage:image withSnapshotID:snapshotID];
       }
     }
     if (waitForFilesOnDisk) {
-      FlushRunLoops();
+      FlushRunLoops(snapshotCache_);
       for (NSUInteger i = 0; i < count; ++i) {
         // Check that images are on the disk.
         NSString* snapshotID = [snapshotIDs_ objectAtIndex:i];
-        base::FilePath path([cache imagePathForSnapshotID:snapshotID]);
+        base::FilePath path([snapshotCache_ imagePathForSnapshotID:snapshotID]);
         EXPECT_TRUE(base::PathExists(path));
       }
     }
@@ -189,10 +217,9 @@
   // Waits for the first `count` grey images for `snapshotIDs_` to be placed in
   // the cache.
   void WaitForGreyImagesInCache(NSUInteger count) {
-    SnapshotCache* cache = GetSnapshotCache();
-    FlushRunLoops();
+    FlushRunLoops(snapshotCache_);
     for (NSUInteger i = 0; i < count; i++)
-      EXPECT_TRUE([cache hasGreyImageInMemory:snapshotIDs_[i]]);
+      EXPECT_TRUE([snapshotCache_ hasGreyImageInMemory:snapshotIDs_[i]]);
   }
 
   // Guesses the order of the color channels in the image.
@@ -247,6 +274,7 @@
 // As the snapshots are kept in memory, the same pointer can be retrieved.
 // This test also checks that images are correctly removed from the disk.
 TEST_F(SnapshotCacheTest, Cache) {
+  ASSERT_TRUE(CreateSnapshotCache());
   SnapshotCache* cache = GetSnapshotCache();
 
   NSUInteger expectedCacheSize = MIN(kSnapshotCount, [cache lruCacheMaxSize]);
@@ -278,6 +306,7 @@
 // This test puts all the snapshots in the cache and flushes them to disk.
 // The snapshots are then reloaded from the disk, and the colors are compared.
 TEST_F(SnapshotCacheTest, SaveToDisk) {
+  ASSERT_TRUE(CreateSnapshotCache());
   SnapshotCache* cache = GetSnapshotCache();
 
   // Put all images in the cache.
@@ -286,7 +315,7 @@
     NSString* snapshotID = [snapshotIDs_ objectAtIndex:i];
     [cache setImage:image withSnapshotID:snapshotID];
   }
-  FlushRunLoops();
+  FlushRunLoops(cache);
 
   for (NSUInteger i = 0; i < kSnapshotCount; ++i) {
     // Check that images are on the disk.
@@ -336,6 +365,7 @@
 }
 
 TEST_F(SnapshotCacheTest, Purge) {
+  ASSERT_TRUE(CreateSnapshotCache());
   SnapshotCache* cache = GetSnapshotCache();
 
   // Put all images in the cache.
@@ -351,7 +381,7 @@
   // Purge the cache.
   [cache purgeCacheOlderThan:(base::Time::Now() - base::Hours(1))
                      keeping:liveSnapshotIDs];
-  FlushRunLoops();
+  FlushRunLoops(cache);
 
   // Check that nothing has been deleted.
   for (NSUInteger i = 0; i < kSnapshotCount; ++i) {
@@ -364,7 +394,7 @@
 
   // Purge the cache.
   [cache purgeCacheOlderThan:base::Time::Now() keeping:liveSnapshotIDs];
-  FlushRunLoops();
+  FlushRunLoops(cache);
 
   // Check that the file have been deleted.
   for (NSUInteger i = 0; i < kSnapshotCount; ++i) {
@@ -382,6 +412,7 @@
 // Tests that migration code correctly rename the specified files and leave
 // the other files untouched.
 TEST_F(SnapshotCacheTest, RenameSnapshots) {
+  ASSERT_TRUE(CreateSnapshotCache());
   SnapshotCache* cache = GetSnapshotCache();
 
   // This snapshot will be renamed.
@@ -396,7 +427,7 @@
 
   NSString* new_id = [[NSUUID UUID] UUIDString];
   [cache renameSnapshotsWithIDs:@[ image1_id ] toIDs:@[ new_id ]];
-  FlushRunLoops();
+  FlushRunLoops(cache);
 
   // image1 should have been moved.
   EXPECT_FALSE(base::PathExists(image1_path));
@@ -409,6 +440,7 @@
 // Loads the color images into the cache, and pins two of them.  Ensures that
 // only the two pinned IDs remain in memory after a memory warning.
 TEST_F(SnapshotCacheTest, HandleMemoryWarning) {
+  ASSERT_TRUE(CreateSnapshotCache());
   LoadAllColorImagesIntoCache(true);
 
   SnapshotCache* cache = GetSnapshotCache();
@@ -429,7 +461,7 @@
   EXPECT_FALSE([cache hasImageInMemory:notPinnedID]);
 
   // Wait for the final image to be pulled off disk.
-  FlushRunLoops();
+  FlushRunLoops(cache);
 }
 
 // Tests that createGreyCache creates the grey snapshots in the background,
@@ -439,6 +471,7 @@
 // Disabled on simulators because it sometimes crashes. crbug/421425
 #if !TARGET_IPHONE_SIMULATOR
 TEST_F(SnapshotCacheTest, CreateGreyCache) {
+  ASSERT_TRUE(CreateSnapshotCache());
   LoadAllColorImagesIntoCache(true);
 
   // Request the creation of a grey image cache for all images.
@@ -465,6 +498,7 @@
 // rather than in memory.
 // Disabled due to the greyImage crash.  b/8048597
 TEST_F(SnapshotCacheTest, CreateGreyCacheFromDisk) {
+  ASSERT_TRUE(CreateSnapshotCache());
   LoadAllColorImagesIntoCache(true);
 
   // Remove color images from in-memory cache.
@@ -498,6 +532,7 @@
 // callback of the three requests should be called.
 // Disabled due to the greyImage crash.  b/8048597
 TEST_F(SnapshotCacheTest, MostRecentGreyBlock) {
+  ASSERT_TRUE(CreateSnapshotCache());
   const NSUInteger kNumImages = 3;
   NSMutableArray* snapshotIDs =
       [[NSMutableArray alloc] initWithCapacity:kNumImages];
@@ -544,6 +579,7 @@
 // Test the function used to save a grey copy of a color snapshot fully on a
 // background thread when the application is backgrounded.
 TEST_F(SnapshotCacheTest, GreyImageAllInBackground) {
+  ASSERT_TRUE(CreateSnapshotCache());
   LoadAllColorImagesIntoCache(true);
 
   SnapshotCache* cache = GetSnapshotCache();
@@ -555,7 +591,7 @@
 
   // Waits for the grey images for `snapshotIDs_` to be written to disk, which
   // happens in a background thread.
-  FlushRunLoops();
+  FlushRunLoops(cache);
 
   for (NSString* snapshotID in snapshotIDs_) {
     base::FilePath path([cache greyImagePathForSnapshotID:snapshotID]);
@@ -567,6 +603,7 @@
 // Verifies that image size and scale are preserved when writing and reading
 // from disk.
 TEST_F(SnapshotCacheTest, SizeAndScalePreservation) {
+  ASSERT_TRUE(CreateSnapshotCache());
   SnapshotCache* cache = GetSnapshotCache();
 
   // Create an image with the expected snapshot scale.
@@ -577,7 +614,7 @@
   // is read from disk instead of the in-memory cache.
   NSString* const kSnapshotID = @"foo";
   [cache setImage:image withSnapshotID:kSnapshotID];
-  FlushRunLoops();  // ensure the file is written to disk.
+  FlushRunLoops(cache);  // ensure the file is written to disk.
   TriggerMemoryWarning();
 
   // Retrive the image and have the callback verify the size and scale.
@@ -591,12 +628,13 @@
                           EXPECT_EQ(image.scale, imageFromDisk.scale);
                           callbackComplete = YES;
                         }];
-  FlushRunLoops();
+  FlushRunLoops(cache);
   EXPECT_TRUE(callbackComplete);
 }
 
 // Verifies that retina-scale images are deleted properly.
 TEST_F(SnapshotCacheTest, DeleteRetinaImages) {
+  ASSERT_TRUE(CreateSnapshotCache());
   SnapshotCache* cache = GetSnapshotCache();
   if ([cache snapshotScaleForDevice] != 2.0) {
     return;
@@ -609,7 +647,7 @@
   // is read from disk instead of the in-memory cache.
   NSString* const kSnapshotID = @"foo";
   [cache setImage:image withSnapshotID:kSnapshotID];
-  FlushRunLoops();  // ensure the file is written to disk.
+  FlushRunLoops(cache);  // ensure the file is written to disk.
   TriggerMemoryWarning();
 
   // Verify the file was writted with @2x in the file name.
@@ -618,7 +656,7 @@
 
   // Delete the image.
   [cache removeImageWithSnapshotID:kSnapshotID];
-  FlushRunLoops();  // ensure the file is removed.
+  FlushRunLoops(cache);  // ensure the file is removed.
 
   EXPECT_FALSE(base::PathExists(retinaFile));
 }
@@ -626,18 +664,20 @@
 // Tests that image immediately deletes when calling
 // `-removeImageWithSnapshotID:`.
 TEST_F(SnapshotCacheTest, ImageDeleted) {
+  ASSERT_TRUE(CreateSnapshotCache());
   SnapshotCache* cache = GetSnapshotCache();
   UIImage* image = GenerateRandomImage(0);
   [cache setImage:image withSnapshotID:@"snapshotID"];
   base::FilePath image_path = [cache imagePathForSnapshotID:@"snapshotID"];
   [cache removeImageWithSnapshotID:@"snapshotID"];
   // Give enough time for deletion.
-  FlushRunLoops();
+  FlushRunLoops(cache);
   EXPECT_FALSE(base::PathExists(image_path));
 }
 
 // Tests that all images are deleted when calling `-removeAllImages`.
 TEST_F(SnapshotCacheTest, AllImagesDeleted) {
+  ASSERT_TRUE(CreateSnapshotCache());
   SnapshotCache* cache = GetSnapshotCache();
   UIImage* image = GenerateRandomImage(0);
   [cache setImage:image withSnapshotID:@"snapshotID-1"];
@@ -646,13 +686,14 @@
   base::FilePath image_2_path = [cache imagePathForSnapshotID:@"snapshotID-2"];
   [cache removeAllImages];
   // Give enough time for deletion.
-  FlushRunLoops();
+  FlushRunLoops(cache);
   EXPECT_FALSE(base::PathExists(image_1_path));
   EXPECT_FALSE(base::PathExists(image_2_path));
 }
 
 // Tests that observers are notified when a snapshot is cached and removed.
 TEST_F(SnapshotCacheTest, ObserversNotifiedOnSetAndRemoveImage) {
+  ASSERT_TRUE(CreateSnapshotCache());
   SnapshotCache* cache = GetSnapshotCache();
   FakeSnapshotCacheObserver* observer =
       [[FakeSnapshotCacheObserver alloc] init];
@@ -667,4 +708,114 @@
   EXPECT_NSEQ(snapshotID, observer.lastUpdatedID);
   [cache removeObserver:observer];
 }
+
+// Tests that creating the SnapshotCache migrate an existing legacy cache.
+TEST_F(SnapshotCacheTest, MigrateCache) {
+  ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
+  const base::FilePath root = scoped_temp_directory_.GetPath();
+
+  const base::FilePath storage_path =
+      root.Append(kSnapshots).Append(kIdentifier);
+
+  const base::FilePath legacy_path =
+      root.Append(kSessions).Append(kIdentifier).Append(kSnapshots);
+
+  ASSERT_TRUE(base::CreateDirectory(legacy_path));
+  ASSERT_TRUE(base::WriteFile(legacy_path.Append(kFilename), ""));
+
+  SnapshotCache* cache =
+      [[SnapshotCache alloc] initWithStoragePath:storage_path
+                                      legacyPath:legacy_path];
+
+  FlushRunLoops(cache);
+
+  EXPECT_TRUE(base::DirectoryExists(storage_path));
+  EXPECT_FALSE(base::DirectoryExists(legacy_path));
+
+  // Check that the legacy directory content has been moved.
+  EXPECT_TRUE(base::PathExists(storage_path.Append(kFilename)));
+
+  [cache shutdown];
+}
+
+// Tests that creating the SnapshotCache simply create the cache directory
+// if the legacy path is not specified.
+TEST_F(SnapshotCacheTest, MigrateCache_EmptyLegacyPath) {
+  ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
+  const base::FilePath root = scoped_temp_directory_.GetPath();
+
+  const base::FilePath storage_path =
+      root.Append(kSnapshots).Append(kIdentifier);
+
+  SnapshotCache* cache =
+      [[SnapshotCache alloc] initWithStoragePath:storage_path
+                                      legacyPath:base::FilePath()];
+
+  FlushRunLoops(cache);
+
+  EXPECT_TRUE(base::DirectoryExists(storage_path));
+
+  [cache shutdown];
+}
+
+// Tests that creating the SnapshotCache simply create the cache directory
+// if the legacy path does not exists.
+TEST_F(SnapshotCacheTest, MigrateCache_NoLegacyStorage) {
+  ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
+  const base::FilePath root = scoped_temp_directory_.GetPath();
+
+  const base::FilePath storage_path =
+      root.Append(kSnapshots).Append(kIdentifier);
+
+  const base::FilePath legacy_path =
+      root.Append(kSessions).Append(kIdentifier).Append(kSnapshots);
+
+  ASSERT_FALSE(base::DirectoryExists(legacy_path));
+
+  SnapshotCache* cache =
+      [[SnapshotCache alloc] initWithStoragePath:storage_path
+                                      legacyPath:legacy_path];
+
+  FlushRunLoops(cache);
+
+  EXPECT_TRUE(base::DirectoryExists(storage_path));
+  EXPECT_FALSE(base::DirectoryExists(legacy_path));
+
+  [cache shutdown];
+}
+
+// Tests that creating the SnapshotCache can fail to create the cache
+// directory and that the legacy directory is left untouch in that case.
+TEST_F(SnapshotCacheTest, MigrateCache_FailCreatingCache) {
+  ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
+  const base::FilePath root = scoped_temp_directory_.GetPath();
+
+  const base::FilePath storage_path =
+      root.Append(kSnapshots).Append(kIdentifier);
+
+  const base::FilePath legacy_path =
+      root.Append(kSessions).Append(kIdentifier).Append(kSnapshots);
+
+  ASSERT_TRUE(base::CreateDirectory(legacy_path));
+  ASSERT_TRUE(base::WriteFile(legacy_path.Append(kFilename), ""));
+
+  // Create a file with the same name as the cache directory to
+  // simulate a failure (in real world the failure would be caused
+  // by a disk that is full).
+  ASSERT_TRUE(base::CreateDirectory(storage_path.DirName()));
+  ASSERT_TRUE(base::WriteFile(storage_path, ""));
+
+  SnapshotCache* cache =
+      [[SnapshotCache alloc] initWithStoragePath:storage_path
+                                      legacyPath:base::FilePath()];
+
+  FlushRunLoops(cache);
+
+  EXPECT_FALSE(base::DirectoryExists(storage_path));
+  EXPECT_TRUE(base::DirectoryExists(legacy_path));
+  EXPECT_TRUE(base::PathExists(legacy_path.Append(kFilename)));
+
+  [cache shutdown];
+}
+
 }  // namespace
diff --git a/ios/chrome/browser/translate/fake_translate_infobar_delegate.h b/ios/chrome/browser/translate/fake_translate_infobar_delegate.h
index c2233bad..a08a054f 100644
--- a/ios/chrome/browser/translate/fake_translate_infobar_delegate.h
+++ b/ios/chrome/browser/translate/fake_translate_infobar_delegate.h
@@ -51,7 +51,7 @@
   bool IsTranslatableLanguageByPrefs() const override;
 
  private:
-  base::ObserverList<Observer> observers_;
+  base::ObserverList<Observer, true> observers_;
   std::u16string source_language_;
   std::u16string target_language_;
   bool translatable_language_ = true;
diff --git a/ios/chrome/browser/ui/authentication/signin/BUILD.gn b/ios/chrome/browser/ui/authentication/signin/BUILD.gn
index 5c3d044..153ba9c 100644
--- a/ios/chrome/browser/ui/authentication/signin/BUILD.gn
+++ b/ios/chrome/browser/ui/authentication/signin/BUILD.gn
@@ -54,6 +54,7 @@
     "//ios/chrome/browser/shared/model/browser",
     "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/shared/public/features",
+    "//ios/chrome/browser/shared/public/features:system_flags",
     "//ios/chrome/browser/signin",
     "//ios/chrome/browser/signin:system_identity",
     "//ios/chrome/browser/sync",
diff --git a/ios/chrome/browser/ui/authentication/signin/signin_utils.mm b/ios/chrome/browser/ui/authentication/signin/signin_utils.mm
index 82b7966c..5495678 100644
--- a/ios/chrome/browser/ui/authentication/signin/signin_utils.mm
+++ b/ios/chrome/browser/ui/authentication/signin/signin_utils.mm
@@ -17,6 +17,7 @@
 #import "ios/chrome/browser/shared/model/browser/browser.h"
 #import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_names.h"
+#import "ios/chrome/browser/shared/public/features/system_flags.h"
 #import "ios/chrome/browser/signin/authentication_service.h"
 #import "ios/chrome/browser/signin/authentication_service_factory.h"
 #import "ios/chrome/browser/signin/chrome_account_manager_service.h"
@@ -138,8 +139,10 @@
     return false;
 
   // Used for testing purposes only.
-  if (signin::ForceStartupSigninPromo())
+  if (signin::ForceStartupSigninPromo() ||
+      experimental_flags::AlwaysDisplayUpgradePromo()) {
     return true;
+  }
 
   // Show the promo at most every two major versions.
   NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
diff --git a/ios/chrome/browser/ui/autofill/bottom_sheet/payments_suggestion_bottom_sheet_view_controller.mm b/ios/chrome/browser/ui/autofill/bottom_sheet/payments_suggestion_bottom_sheet_view_controller.mm
index c1a890b..836c5750 100644
--- a/ios/chrome/browser/ui/autofill/bottom_sheet/payments_suggestion_bottom_sheet_view_controller.mm
+++ b/ios/chrome/browser/ui/autofill/bottom_sheet/payments_suggestion_bottom_sheet_view_controller.mm
@@ -29,6 +29,12 @@
 // Default spacing use for the views in the bottom sheet.
 CGFloat const kSpacing = 10;
 
+// Spacing use for the spacing before the logo title in the bottom sheet.
+CGFloat const kSpacingBeforeImage = 16;
+
+// Spacing use for the spacing after the logo title in the bottom sheet.
+CGFloat const kSpacingAfterImage = 4;
+
 // Height of the logo used as the title of the bottom sheet.
 CGFloat const kTitleLogoHeight = 24;
 
@@ -74,6 +80,9 @@
 // YES if the expanded bottom sheet size takes the whole screen.
 @property(nonatomic, assign) BOOL expandSizeTooLarge;
 
+// Keep track of the minimized state height.
+@property(nonatomic, assign) absl::optional<CGFloat> minimizedStateHeight;
+
 @end
 
 @implementation PaymentsSuggestionBottomSheetViewController
@@ -98,7 +107,8 @@
   _tableViewIsMinimized = _creditCardData.count > 2;
 
   self.image = [self titleImage];
-  self.customSpacingBeforeImageIfNoNavigationBar = kSpacing;
+  self.customSpacingBeforeImageIfNoNavigationBar = kSpacingBeforeImage;
+  self.customSpacingAfterImage = kSpacingAfterImage;
   self.subtitleTextStyle = UIFontTextStyleFootnote;
   std::u16string formattedURL =
       url_formatter::FormatUrlForDisplayOmitSchemePathAndTrivialSubdomains(
@@ -130,6 +140,12 @@
     // Make sure the GPay logo matches the new trait collection.
     self.image = [self titleImage];
   }
+
+  if (self.traitCollection.preferredContentSizeCategory !=
+      previousTraitCollection.preferredContentSizeCategory) {
+    self.minimizedStateHeight = absl::nullopt;
+    [self updateHeight];
+  }
 }
 
 - (void)viewIsAppearing:(BOOL)animated {
@@ -147,6 +163,13 @@
   [self.handler viewDidDisappear:animated];
 }
 
+- (CGFloat)initialHeight {
+  if (!self.minimizedStateHeight.has_value()) {
+    self.minimizedStateHeight = [super initialHeight];
+  }
+  return self.minimizedStateHeight.value();
+}
+
 #pragma mark - PaymentsSuggestionBottomSheetConsumer
 
 - (void)setCreditCardData:
@@ -245,8 +268,11 @@
                 ? NativeImage(IDR_AUTOFILL_GOOGLE_PAY_DARK)
                 : NativeImage(IDR_AUTOFILL_GOOGLE_PAY);
 
-    CGFloat ratio = kTitleLogoHeight / image.size.height;
-    CGSize imageSize = CGSizeMake(image.size.width * ratio, kTitleLogoHeight);
+    // Using kTitleLogoHeight (24pt) returns a GPay logo too small, so we are
+    // using 28pt to ressemble the mocks.
+    CGFloat gPayLogoSize = 28;
+    CGFloat ratio = gPayLogoSize / image.size.height;
+    CGSize imageSize = CGSizeMake(image.size.width * ratio, gPayLogoSize);
     UIGraphicsImageRenderer* renderer =
         [[UIGraphicsImageRenderer alloc] initWithSize:imageSize];
     image =
@@ -500,4 +526,10 @@
                              self.expandSizeTooLarge)];
 }
 
+#pragma mark - ConfirmationAlertViewController
+
+- (void)customizeSubtitle:(UITextView*)subtitle {
+  subtitle.textContainerInset = UIEdgeInsetsZero;
+}
+
 @end
diff --git a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
index 414b6e3..fdd6ee6f 100644
--- a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
@@ -1037,6 +1037,10 @@
   _viewControllerDependencies.popupMenuCommandsHandler = nil;
   _viewControllerDependencies.applicationCommandsHandler = nil;
   _viewControllerDependencies.findInPageCommandsHandler = nil;
+  _viewControllerDependencies.urlLoadingBrowserAgent = nil;
+  _viewControllerDependencies.urlLoadingNotifierBrowserAgent = nil;
+  _viewControllerDependencies.tabUsageRecorderBrowserAgent = nil;
+  _viewControllerDependencies.layoutGuideCenter = nil;
   _viewControllerDependencies.voiceSearchController = nil;
   _viewControllerDependencies.safeAreaProvider = nil;
   _viewControllerDependencies.pagePlaceholderBrowserAgent = nil;
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_egtest.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_egtest.mm
index d8d60f28..06ce6c1 100644
--- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_egtest.mm
+++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_egtest.mm
@@ -36,6 +36,7 @@
 #import "ios/chrome/test/earl_grey/chrome_earl_grey_ui.h"
 #import "ios/chrome/test/earl_grey/chrome_matchers.h"
 #import "ios/chrome/test/earl_grey/chrome_test_case.h"
+#import "ios/testing/earl_grey/app_launch_manager.h"
 #import "ios/testing/earl_grey/earl_grey_test.h"
 #import "net/base/mac/url_conversions.h"
 #import "net/test/embedded_test_server/embedded_test_server.h"
@@ -568,7 +569,9 @@
   // Verify that the signin screen is gone.
   [[EarlGrey selectElementWithMatcher:signinView] assertWithMatcher:grey_nil()];
 
-  [self prepareToTestSetUpList];
+  [ChromeEarlGrey closeAllTabs];
+  [ChromeEarlGrey openNewTab];
+
   // Tap the signin item.
   TapView(set_up_list::kSignInItemID);
   // Verify the signin screen appears.
@@ -693,8 +696,9 @@
   [ChromeEarlGrey resetDataForLocalStatePref:
                       prefs::kIosCredentialProviderPromoLastActionTaken];
   [NewTabPageAppInterface resetSetUpListPrefs];
-  [ChromeEarlGrey closeAllTabs];
-  [ChromeEarlGrey openNewTab];
+  AppLaunchConfiguration config = self.appConfigurationForTestCase;
+  config.relaunch_policy = ForceRelaunchByCleanShutdown;
+  [[AppLaunchManager sharedManager] ensureAppLaunchedWithConfiguration:config];
   ScrollToSetUpList();
 
   // SetUpList is visible
@@ -708,8 +712,9 @@
   [ChromeEarlGrey resetDataForLocalStatePref:
                       prefs::kIosCredentialProviderPromoLastActionTaken];
   [NewTabPageAppInterface resetSetUpListPrefs];
-  [ChromeEarlGrey closeAllTabs];
-  [ChromeEarlGrey openNewTab];
+  AppLaunchConfiguration config = self.appConfigurationForTestCase;
+  config.relaunch_policy = ForceRelaunchByCleanShutdown;
+  [[AppLaunchManager sharedManager] ensureAppLaunchedWithConfiguration:config];
 }
 
 // Setup a most visited tile, and open the context menu by long pressing on it.
diff --git a/ios/chrome/browser/ui/content_suggestions/safety_check/BUILD.gn b/ios/chrome/browser/ui/content_suggestions/safety_check/BUILD.gn
index ffda6f8..9a7565c 100644
--- a/ios/chrome/browser/ui/content_suggestions/safety_check/BUILD.gn
+++ b/ios/chrome/browser/ui/content_suggestions/safety_check/BUILD.gn
@@ -10,6 +10,8 @@
     "safety_check_item_view.mm",
     "safety_check_state.h",
     "safety_check_state.mm",
+    "safety_check_view.h",
+    "safety_check_view.mm",
     "types.h",
   ]
   deps = [
@@ -20,6 +22,7 @@
     "//ios/chrome/browser/safety_check:constants",
     "//ios/chrome/browser/shared/ui/symbols",
     "//ios/chrome/browser/shared/ui/util",
+    "//ios/chrome/browser/ui/content_suggestions/cells",
     "//ios/chrome/common",
     "//ios/chrome/common/ui/colors",
     "//ios/chrome/common/ui/table_view:cells_constants",
diff --git a/ios/chrome/browser/ui/content_suggestions/safety_check/constants.h b/ios/chrome/browser/ui/content_suggestions/safety_check/constants.h
index 2d67e2db..5cf6c852 100644
--- a/ios/chrome/browser/ui/content_suggestions/safety_check/constants.h
+++ b/ios/chrome/browser/ui/content_suggestions/safety_check/constants.h
@@ -16,6 +16,7 @@
 extern NSString* const kPasswordItemID;
 extern NSString* const kSafeBrowsingItemID;
 extern NSString* const kDefaultItemID;
+extern NSString* const kSafetyCheckViewID;
 
 }  // namespace safety_check
 
diff --git a/ios/chrome/browser/ui/content_suggestions/safety_check/constants.mm b/ios/chrome/browser/ui/content_suggestions/safety_check/constants.mm
index 50a6723..06aef9e 100644
--- a/ios/chrome/browser/ui/content_suggestions/safety_check/constants.mm
+++ b/ios/chrome/browser/ui/content_suggestions/safety_check/constants.mm
@@ -14,5 +14,7 @@
 constexpr NSString* const kSafeBrowsingItemID =
     @"safety_check::kSafeBrowsingItemID";
 constexpr NSString* const kDefaultItemID = @"safety_check::kDefaultItemID";
+constexpr NSString* const kSafetyCheckViewID =
+    @"safety_check::kSafetyCheckViewID";
 
 }  // namespace safety_check
diff --git a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_item_view.h b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_item_view.h
index 3e352d9..ec9e53e1 100644
--- a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_item_view.h
+++ b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_item_view.h
@@ -9,8 +9,15 @@
 
 enum class SafetyCheckItemType;
 enum class SafetyCheckItemLayoutType;
+@class SafetyCheckItemView;
 @class SafetyCheckState;
 
+// A protocol for handling `SafetyCheckItemView` taps.
+@protocol SafetyCheckItemViewTapDelegate
+// Indicates that the user has tapped the given `view`.
+- (void)didTapSafetyCheckItemView:(SafetyCheckItemView*)view;
+@end
+
 // A view to display an individual check state (list item) in the Safety Check
 // (Magic Stack) module.
 @interface SafetyCheckItemView : UIView
@@ -19,16 +26,22 @@
 // `itemType` and `layoutType`, but without specific insecure credentials
 // information.
 - (instancetype)initWithItemType:(SafetyCheckItemType)itemType
-                   andLayoutType:(SafetyCheckItemLayoutType)layoutType;
+                      layoutType:(SafetyCheckItemLayoutType)layoutType;
 
 // Initialize a SafetyCheckItemView with the given `itemType`, `layoutType`,
 // `weakPasswordsCount`, `reusedPasswordsCount`, and
 // `compromisedPasswordsCount`.
 - (instancetype)initWithItemType:(SafetyCheckItemType)itemType
-                   andLayoutType:(SafetyCheckItemLayoutType)layoutType
-           andWeakPasswordsCount:(NSInteger)weakPasswordsCount
-         andReusedPasswordsCount:(NSInteger)reusedPasswordsCount
-    andCompromisedPasswordsCount:(NSInteger)compromisedPasswordsCount;
+                      layoutType:(SafetyCheckItemLayoutType)layoutType
+              weakPasswordsCount:(NSInteger)weakPasswordsCount
+            reusedPasswordsCount:(NSInteger)reusedPasswordsCount
+       compromisedPasswordsCount:(NSInteger)compromisedPasswordsCount;
+
+// Indicates the type of item.
+@property(nonatomic, readonly) SafetyCheckItemType itemType;
+
+// The object that should receive a message when this view is tapped.
+@property(nonatomic, weak) id<SafetyCheckItemViewTapDelegate> tapDelegate;
 
 @end
 
diff --git a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_item_view.mm b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_item_view.mm
index 1e5697b..3baec1e4 100644
--- a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_item_view.mm
+++ b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_item_view.mm
@@ -89,8 +89,6 @@
 }  // namespace
 
 @implementation SafetyCheckItemView {
-  // The item type.
-  SafetyCheckItemType _itemType;
   // The item layout type.
   SafetyCheckItemLayoutType _layoutType;
   // The number of weak passwords found by the Password check.
@@ -99,24 +97,26 @@
   NSInteger _reusedPasswordsCount;
   // The number of compromised passwords found by the Password check.
   NSInteger _compromisedPasswordsCount;
+  // UI tap gesture recognizer.
+  UITapGestureRecognizer* _tapGestureRecognizer;
 }
 
 - (instancetype)initWithItemType:(SafetyCheckItemType)itemType
-                   andLayoutType:(SafetyCheckItemLayoutType)layoutType {
+                      layoutType:(SafetyCheckItemLayoutType)layoutType {
   self = [self initWithItemType:itemType
-                     andLayoutType:layoutType
-             andWeakPasswordsCount:0
-           andReusedPasswordsCount:0
-      andCompromisedPasswordsCount:0];
+                     layoutType:layoutType
+             weakPasswordsCount:0
+           reusedPasswordsCount:0
+      compromisedPasswordsCount:0];
 
   return self;
 }
 
 - (instancetype)initWithItemType:(SafetyCheckItemType)itemType
-                   andLayoutType:(SafetyCheckItemLayoutType)layoutType
-           andWeakPasswordsCount:(NSInteger)weakPasswordsCount
-         andReusedPasswordsCount:(NSInteger)reusedPasswordsCount
-    andCompromisedPasswordsCount:(NSInteger)compromisedPasswordsCount {
+                      layoutType:(SafetyCheckItemLayoutType)layoutType
+              weakPasswordsCount:(NSInteger)weakPasswordsCount
+            reusedPasswordsCount:(NSInteger)reusedPasswordsCount
+       compromisedPasswordsCount:(NSInteger)compromisedPasswordsCount {
   if (self = [super init]) {
     _itemType = itemType;
     _layoutType = layoutType;
@@ -138,6 +138,12 @@
 
 #pragma mark - Private
 
+- (void)handleTap:(UITapGestureRecognizer*)sender {
+  if (sender.state == UIGestureRecognizerStateEnded) {
+    [self.tapDelegate didTapSafetyCheckItemView:self];
+  }
+}
+
 - (void)createSubviews {
   // Return if the subviews have already been created and added.
   if (!(self.subviews.count == 0)) {
@@ -155,7 +161,7 @@
   NSMutableArray* arrangedSubviews = [[NSMutableArray alloc] init];
 
   SafetyCheckItemIcon* icon = [self iconForItemType:_itemType
-                                      andLayoutType:_layoutType];
+                                         layoutType:_layoutType];
 
   // When the item is displayed in a hero-style layout, the icon is more
   // prominently displayed via an icon container view.
@@ -221,12 +227,19 @@
   if (_layoutType == SafetyCheckItemLayoutType::kCompact) {
     AddSameConstraints(contentStack, self);
   }
+
+  // Set up the tap gesture recognizer.
+  _tapGestureRecognizer =
+      [[UITapGestureRecognizer alloc] initWithTarget:self
+                                              action:@selector(handleTap:)];
+
+  [self addGestureRecognizer:_tapGestureRecognizer];
 }
 
 // Returns the corresponding `SafetyCheckItemIcon*` given an `itemType` and
 // `layoutType`.
 - (SafetyCheckItemIcon*)iconForItemType:(SafetyCheckItemType)itemType
-                          andLayoutType:(SafetyCheckItemLayoutType)layoutType {
+                             layoutType:(SafetyCheckItemLayoutType)layoutType {
   BOOL compactLayout = layoutType == SafetyCheckItemLayoutType::kCompact;
   BOOL inSquare = YES;
 
diff --git a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_state.h b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_state.h
index 6040ec31..4f47073 100644
--- a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_state.h
+++ b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_state.h
@@ -19,9 +19,9 @@
 // `safeBrowsingState`, and `runningState`.
 - (instancetype)
     initWithUpdateChromeState:(UpdateChromeSafetyCheckState)updateChromeState
-             andPasswordState:(PasswordSafetyCheckState)passwordState
-         andSafeBrowsingState:(SafeBrowsingSafetyCheckState)safeBrowsingState
-              andRunningState:(RunningSafetyCheckState)runningState;
+                passwordState:(PasswordSafetyCheckState)passwordState
+            safeBrowsingState:(SafeBrowsingSafetyCheckState)safeBrowsingState
+                 runningState:(RunningSafetyCheckState)runningState;
 
 // The current state of the Update Chrome check.
 @property(nonatomic, readonly) UpdateChromeSafetyCheckState updateChromeState;
diff --git a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_state.mm b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_state.mm
index ccb8ed8..a3404af 100644
--- a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_state.mm
+++ b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_state.mm
@@ -10,9 +10,9 @@
 
 - (instancetype)
     initWithUpdateChromeState:(UpdateChromeSafetyCheckState)updateChromeState
-             andPasswordState:(PasswordSafetyCheckState)passwordState
-         andSafeBrowsingState:(SafeBrowsingSafetyCheckState)safeBrowsingState
-              andRunningState:(RunningSafetyCheckState)runningState {
+                passwordState:(PasswordSafetyCheckState)passwordState
+            safeBrowsingState:(SafeBrowsingSafetyCheckState)safeBrowsingState
+                 runningState:(RunningSafetyCheckState)runningState {
   if (self = [super init]) {
     _updateChromeState = updateChromeState;
     _passwordState = passwordState;
diff --git a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_view.h b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_view.h
new file mode 100644
index 0000000..5fd0a40
--- /dev/null
+++ b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_view.h
@@ -0,0 +1,35 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_SAFETY_CHECK_SAFETY_CHECK_VIEW_H_
+#define IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_SAFETY_CHECK_SAFETY_CHECK_VIEW_H_
+
+#import <UIKit/UIKit.h>
+
+enum class SafetyCheckItemType;
+@class SafetyCheckState;
+
+// A delegate protocol to be implemented by the owner of the SafetyCheckView.
+@protocol SafetyCheckViewDelegate
+
+// Called when a Safety Check item is selected by the user.
+- (void)didSelectSafetyCheckItem:(SafetyCheckItemType)type;
+
+@end
+
+// A view that displays the Safety Check in the Magic Stack.
+//
+// This view shows users the current state of the Update Chrome, Password, and
+// Safe Browsing check.
+@interface SafetyCheckView : UIView
+
+// Initializes the SafetyCheckView with `state`.
+- (instancetype)initWithState:(SafetyCheckState*)state;
+
+// The object that should handle delegate events.
+@property(nonatomic, weak) id<SafetyCheckViewDelegate> delegate;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_CONTENT_SUGGESTIONS_SAFETY_CHECK_SAFETY_CHECK_VIEW_H_
diff --git a/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_view.mm b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_view.mm
new file mode 100644
index 0000000..71afabb
--- /dev/null
+++ b/ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_view.mm
@@ -0,0 +1,214 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_view.h"
+
+#import "ios/chrome/browser/safety_check/ios_chrome_safety_check_manager_constants.h"
+#import "ios/chrome/browser/ui/content_suggestions/cells/multi_row_container_view.h"
+#import "ios/chrome/browser/ui/content_suggestions/safety_check/constants.h"
+#import "ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_item_view.h"
+#import "ios/chrome/browser/ui/content_suggestions/safety_check/safety_check_state.h"
+#import "ios/chrome/browser/ui/content_suggestions/safety_check/types.h"
+#import "ios/chrome/common/ui/util/constraints_ui_util.h"
+
+namespace {
+
+// Returns the number of check issue types found given `state`.
+int CheckIssuesCount(SafetyCheckState* state) {
+  int count = 0;
+
+  if (state.updateChromeState != UpdateChromeSafetyCheckState::kUpToDate) {
+    count++;
+  }
+
+  if (state.safeBrowsingState != SafeBrowsingSafetyCheckState::kSafe) {
+    count++;
+  }
+
+  if (state.passwordState != PasswordSafetyCheckState::kSafe) {
+    count++;
+  }
+
+  return count;
+}
+
+}  // namespace
+
+@interface SafetyCheckView () <SafetyCheckItemViewTapDelegate>
+@end
+
+@implementation SafetyCheckView {
+  SafetyCheckState* _state;
+}
+
+#pragma mark - Public methods
+
+- (instancetype)initWithState:(SafetyCheckState*)state {
+  if (self = [super init]) {
+    _state = state;
+  }
+
+  return self;
+}
+
+#pragma mark - UIView
+
+- (void)willMoveToSuperview:(UIView*)newSuperview {
+  [super willMoveToSuperview:newSuperview];
+
+  [self createSubviews];
+}
+
+#pragma mark - SafetyCheckItemViewTapDelegate
+
+- (void)didTapSafetyCheckItemView:(SafetyCheckItemView*)view {
+  [self.delegate didSelectSafetyCheckItem:view.itemType];
+}
+
+#pragma mark - Private methods
+
+- (void)createSubviews {
+  // Return if the subviews have already been created and added.
+  if (!(self.subviews.count == 0)) {
+    return;
+  }
+
+  self.translatesAutoresizingMaskIntoConstraints = NO;
+  self.accessibilityIdentifier = safety_check::kSafetyCheckViewID;
+
+  // If any of the checks are running, the module should display its running
+  // state.
+  if (_state.runningState == RunningSafetyCheckState::kRunning ||
+      _state.updateChromeState == UpdateChromeSafetyCheckState::kRunning ||
+      _state.passwordState == PasswordSafetyCheckState::kRunning ||
+      _state.safeBrowsingState == SafeBrowsingSafetyCheckState::kRunning) {
+    SafetyCheckItemView* view = [[SafetyCheckItemView alloc]
+        initWithItemType:SafetyCheckItemType::kRunning
+              layoutType:SafetyCheckItemLayoutType::kHero];
+
+    view.tapDelegate = self;
+
+    [self addSubview:view];
+
+    AddSameConstraints(view, self);
+
+    return;
+  }
+
+  // If all checks are in the default state, the module should display the
+  // default state.
+  if (_state.runningState == RunningSafetyCheckState::kDefault &&
+      _state.updateChromeState == UpdateChromeSafetyCheckState::kDefault &&
+      _state.passwordState == PasswordSafetyCheckState::kDefault &&
+      _state.safeBrowsingState == SafeBrowsingSafetyCheckState::kDefault) {
+    SafetyCheckItemView* view = [[SafetyCheckItemView alloc]
+        initWithItemType:SafetyCheckItemType::kDefault
+              layoutType:SafetyCheckItemLayoutType::kHero];
+
+    view.tapDelegate = self;
+
+    [self addSubview:view];
+
+    AddSameConstraints(view, self);
+
+    return;
+  }
+
+  int checkIssuesCount = CheckIssuesCount(_state);
+
+  // Show the "All Safe" state if there are no check issues.
+  if (checkIssuesCount == 0) {
+    SafetyCheckItemView* view = [[SafetyCheckItemView alloc]
+        initWithItemType:SafetyCheckItemType::kAllSafe
+              layoutType:SafetyCheckItemLayoutType::kHero];
+
+    view.tapDelegate = self;
+
+    [self addSubview:view];
+
+    AddSameConstraints(view, self);
+
+    return;
+  }
+
+  if (checkIssuesCount > 1) {
+    NSMutableArray<SafetyCheckItemView*>* safetyCheckItems =
+        [[NSMutableArray alloc] init];
+
+    // Update Chrome check
+    if (_state.updateChromeState != UpdateChromeSafetyCheckState::kUpToDate) {
+      SafetyCheckItemView* updateChromeView = [[SafetyCheckItemView alloc]
+          initWithItemType:SafetyCheckItemType::kUpdateChrome
+                layoutType:SafetyCheckItemLayoutType::kCompact];
+
+      updateChromeView.tapDelegate = self;
+
+      [safetyCheckItems addObject:updateChromeView];
+    }
+
+    // Password check
+    if (_state.passwordState != PasswordSafetyCheckState::kSafe) {
+      SafetyCheckItemView* passwordView = [[SafetyCheckItemView alloc]
+          initWithItemType:SafetyCheckItemType::kPassword
+                layoutType:SafetyCheckItemLayoutType::kCompact];
+
+      passwordView.tapDelegate = self;
+
+      [safetyCheckItems addObject:passwordView];
+    }
+
+    // Safe Browsing check
+    //
+    // NOTE: Don't add the Safe Browsing check if two items already exist in
+    // `safetyCheckItems`. At most, the compact view displays two rows of items.
+    if ([safetyCheckItems count] < 2 &&
+        _state.safeBrowsingState != SafeBrowsingSafetyCheckState::kSafe) {
+      SafetyCheckItemView* safeBrowsingView = [[SafetyCheckItemView alloc]
+          initWithItemType:SafetyCheckItemType::kSafeBrowsing
+                layoutType:SafetyCheckItemLayoutType::kCompact];
+
+      safeBrowsingView.tapDelegate = self;
+
+      [safetyCheckItems addObject:safeBrowsingView];
+    }
+
+    MultiRowContainerView* multiRowContainer =
+        [[MultiRowContainerView alloc] initWithViews:safetyCheckItems];
+
+    [self addSubview:multiRowContainer];
+
+    AddSameConstraints(multiRowContainer, self);
+
+    return;
+  }
+
+  // Show hero-cell view for single check issue.
+  SafetyCheckItemView* view;
+
+  if (_state.updateChromeState != UpdateChromeSafetyCheckState::kUpToDate) {
+    view = [[SafetyCheckItemView alloc]
+        initWithItemType:SafetyCheckItemType::kUpdateChrome
+              layoutType:SafetyCheckItemLayoutType::kHero];
+  }
+
+  if (_state.passwordState != PasswordSafetyCheckState::kSafe) {
+    view = [[SafetyCheckItemView alloc]
+        initWithItemType:SafetyCheckItemType::kPassword
+              layoutType:SafetyCheckItemLayoutType::kHero];
+  }
+
+  if (_state.safeBrowsingState != SafeBrowsingSafetyCheckState::kSafe) {
+    view = [[SafetyCheckItemView alloc]
+        initWithItemType:SafetyCheckItemType::kSafeBrowsing
+              layoutType:SafetyCheckItemLayoutType::kHero];
+  }
+
+  view.tapDelegate = self;
+
+  [self addSubview:view];
+
+  AddSameConstraints(view, self);
+}
+
+@end
diff --git a/ios/chrome/browser/ui/content_suggestions/set_up_list/BUILD.gn b/ios/chrome/browser/ui/content_suggestions/set_up_list/BUILD.gn
index 21f4345..74a12fa 100644
--- a/ios/chrome/browser/ui/content_suggestions/set_up_list/BUILD.gn
+++ b/ios/chrome/browser/ui/content_suggestions/set_up_list/BUILD.gn
@@ -75,6 +75,7 @@
   ]
   deps = [
     "//base",
+    "//ios/chrome/browser/first_run",
     "//ios/chrome/browser/ntp:set_up_list_prefs",
     "//ios/chrome/browser/ui/first_run:utils",
   ]
diff --git a/ios/chrome/browser/ui/content_suggestions/set_up_list/utils.mm b/ios/chrome/browser/ui/content_suggestions/set_up_list/utils.mm
index 831723cc..3fe1f0a 100644
--- a/ios/chrome/browser/ui/content_suggestions/set_up_list/utils.mm
+++ b/ios/chrome/browser/ui/content_suggestions/set_up_list/utils.mm
@@ -5,6 +5,7 @@
 #import "ios/chrome/browser/ui/content_suggestions/set_up_list/utils.h"
 
 #import "base/time/time.h"
+#import "ios/chrome/browser/first_run/first_run.h"
 #import "ios/chrome/browser/ntp/set_up_list_prefs.h"
 #import "ios/chrome/browser/ui/first_run/first_run_util.h"
 
@@ -14,6 +15,9 @@
   if (set_up_list_prefs::IsSetUpListDisabled(local_state)) {
     return false;
   }
+  if (FirstRun::IsChromeFirstRun()) {
+    return false;
+  }
   // Check if we are within 14 days of FRE
   absl::optional<base::Time> first_run_time = GetFirstRunTime();
   if (!first_run_time) {
diff --git a/ios/chrome/browser/ui/first_run/signin/DIR_METADATA b/ios/chrome/browser/ui/first_run/signin/DIR_METADATA
new file mode 100644
index 0000000..e297220
--- /dev/null
+++ b/ios/chrome/browser/ui/first_run/signin/DIR_METADATA
@@ -0,0 +1,2 @@
+mixins: "//components/signin/COMMON_METADATA"
+os: IOS
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator.mm
index 0bf37c4..e45e6ae 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/passwords/password_infobar_banner_overlay_mediator.mm
@@ -54,9 +54,10 @@
 #pragma mark - InfobarOverlayRequestMediator
 
 - (void)bannerInfobarButtonWasPressed:(UIButton*)sender {
-  // Check if request was cancelled, to avoid crash below.
-  if (!self.config) {
-    DUMP_WILL_BE_CHECK(self.config);
+  // This can happen if the user quickly navigates to another website while the
+  // banner is still appearing, causing the banner to be triggered before being
+  // removed.
+  if (!self.passwordDelegate) {
     return;
   }
 
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/sync_error/sync_error_infobar_banner_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_banner/sync_error/sync_error_infobar_banner_overlay_mediator.mm
index d9297e2..d2939ba 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/sync_error/sync_error_infobar_banner_overlay_mediator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/sync_error/sync_error_infobar_banner_overlay_mediator.mm
@@ -44,6 +44,13 @@
 #pragma mark - InfobarOverlayRequestMediator
 
 - (void)bannerInfobarButtonWasPressed:(UIButton*)sender {
+  // This can happen if the user quickly navigates to another website while the
+  // banner is still appearing, causing the banner to be triggered before being
+  // removed.
+  if (!self.syncErrorDelegate) {
+    return;
+  }
+
   self.syncErrorDelegate->Accept();
 
   [self dismissOverlay];
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/tab_pickup/tab_pickup_infobar_banner_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_banner/tab_pickup/tab_pickup_infobar_banner_overlay_mediator.mm
index 8a8385a..85d770f 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/tab_pickup/tab_pickup_infobar_banner_overlay_mediator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/tab_pickup/tab_pickup_infobar_banner_overlay_mediator.mm
@@ -50,6 +50,13 @@
 #pragma mark - InfobarOverlayRequestMediator
 
 - (void)bannerInfobarButtonWasPressed:(UIButton*)sender {
+  // This can happen if the user quickly navigates to another website while the
+  // banner is still appearing, causing the banner to be triggered before being
+  // removed.
+  if (!self.tabPickupDelegate) {
+    return;
+  }
+
   self.tabPickupDelegate->OpenDistantTab();
 
   [self dismissOverlay];
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/translate/translate_infobar_banner_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_banner/translate/translate_infobar_banner_overlay_mediator.mm
index f62ea39..dcd96652 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/translate/translate_infobar_banner_overlay_mediator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/translate/translate_infobar_banner_overlay_mediator.mm
@@ -51,9 +51,10 @@
 #pragma mark - InfobarOverlayRequestMediator
 
 - (void)bannerInfobarButtonWasPressed:(UIButton*)sender {
-  // Check if request was cancelled, to avoid crash below.
-  if (!self.config) {
-    DUMP_WILL_BE_CHECK(self.config);
+  // This can happen if the user quickly navigates to another website while the
+  // banner is still appearing, causing the banner to be triggered before being
+  // removed.
+  if (!self.translateDelegate) {
     return;
   }
 
diff --git a/ios/chrome/browser/ui/passwords/bottom_sheet/password_suggestion_bottom_sheet_view_controller.mm b/ios/chrome/browser/ui/passwords/bottom_sheet/password_suggestion_bottom_sheet_view_controller.mm
index 6be44a3a..e7c58fe 100644
--- a/ios/chrome/browser/ui/passwords/bottom_sheet/password_suggestion_bottom_sheet_view_controller.mm
+++ b/ios/chrome/browser/ui/passwords/bottom_sheet/password_suggestion_bottom_sheet_view_controller.mm
@@ -99,25 +99,21 @@
   }
 }
 
+- (void)traitCollectionDidChange:(UITraitCollection*)previousTraitCollection {
+  [super traitCollectionDidChange:previousTraitCollection];
+
+  if (self.traitCollection.preferredContentSizeCategory !=
+      previousTraitCollection.preferredContentSizeCategory) {
+    [self updateHeightConstraints];
+  }
+}
+
 - (void)viewIsAppearing:(BOOL)animated {
 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 170000
   [super viewIsAppearing:animated];
 #endif
 
-  if (_suggestions.count) {
-    [self.view layoutIfNeeded];
-    // Update height constraints for the table view.
-    CGFloat fullHeight =
-        [self computeTableViewHeightForCellCount:_suggestions.count];
-    if (fullHeight > 0) {
-      _fullHeightConstraint.constant = fullHeight;
-    }
-    CGFloat minimizedHeight = [self
-        computeTableViewHeightForCellCount:[self initialNumberOfVisibleCells]];
-    if (minimizedHeight > 0) {
-      _minimizedHeightConstraint.constant = minimizedHeight;
-    }
-  }
+  [self updateHeightConstraints];
 }
 
 - (void)viewWillDisappear:(BOOL)animated {
@@ -389,6 +385,24 @@
   return height;
 }
 
+// Updates the bottom sheet's height constraints.
+- (void)updateHeightConstraints {
+  if (_suggestions.count) {
+    [self.view layoutIfNeeded];
+    // Update height constraints for the table view.
+    CGFloat fullHeight =
+        [self computeTableViewHeightForCellCount:_suggestions.count];
+    if (fullHeight > 0) {
+      _fullHeightConstraint.constant = fullHeight;
+    }
+    CGFloat minimizedHeight = [self
+        computeTableViewHeightForCellCount:[self initialNumberOfVisibleCells]];
+    if (minimizedHeight > 0) {
+      _minimizedHeightConstraint.constant = minimizedHeight;
+    }
+  }
+}
+
 // Layouts the cell for the table view with the password form suggestion at the
 // specific index path.
 - (TableViewURLCell*)layoutCell:(TableViewURLCell*)cell
diff --git a/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_mediator.mm b/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_mediator.mm
index 7f28789..b7ce884 100644
--- a/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_mediator.mm
+++ b/ios/chrome/browser/ui/settings/google_services/manage_sync_settings_mediator.mm
@@ -1182,10 +1182,10 @@
           ? [model sectionForSectionIdentifier:AccountSectionIdentifier] + 1
           : 0;
   if (!errorSectionAlreadyExists) {
-    [model insertSectionWithIdentifier:SyncErrorsSectionIdentifier
-                               atIndex:syncErrorSectionIndex];
     if (self.syncAccountState == SyncSettingsAccountState::kSignedIn &&
         type.value() != SyncDisabledByAdministratorErrorItemType) {
+      [model insertSectionWithIdentifier:SyncErrorsSectionIdentifier
+                                 atIndex:syncErrorSectionIndex];
       // For signed in not syncing users, the sync error item will be preceded
       // by a descriptive message item.
       [model addItem:[self createSyncErrorMessageItem:GetAccountErrorUIInfo(
@@ -1195,6 +1195,8 @@
       [model addItem:self.syncErrorItem
           toSectionWithIdentifier:SyncErrorsSectionIdentifier];
     } else if (self.syncAccountState != SyncSettingsAccountState::kSignedIn) {
+      [model insertSectionWithIdentifier:SyncErrorsSectionIdentifier
+                                 atIndex:syncErrorSectionIndex];
       [model addItem:self.syncErrorItem
           toSectionWithIdentifier:SyncErrorsSectionIdentifier];
     }
diff --git a/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.h b/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.h
index 7259ec8f..610d347 100644
--- a/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.h
+++ b/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.h
@@ -19,6 +19,9 @@
 // The accessibility identifier of the compromised warning.
 extern NSString* const kCompromisedWarningId;
 
+// The accessibility identifier of the password sharing button.
+extern NSString* const kPasswordShareButtonId;
+
 // UI items for password details
 typedef NS_ENUM(NSInteger, PasswordDetailsItemType) {
   PasswordDetailsItemTypeWebsite = kItemTypeEnumZero,
diff --git a/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.mm b/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.mm
index d650299..5ec82e0 100644
--- a/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.mm
+++ b/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.mm
@@ -11,3 +11,5 @@
     @"kMovePasswordToAccountButtonId";
 
 NSString* const kCompromisedWarningId = @"CompromisedWarningId";
+
+NSString* const kPasswordShareButtonId = @"PasswordShareButtonId";
diff --git a/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_controller.mm b/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_controller.mm
index f6c0986..8ddbd57 100644
--- a/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_controller.mm
@@ -231,6 +231,7 @@
                 style:UIBarButtonItemStylePlain
                target:self
                action:@selector(onShareButtonPressed)];
+    shareButton.accessibilityIdentifier = kPasswordShareButtonId;
     self.navigationItem.rightBarButtonItems =
         @[ self.navigationItem.rightBarButtonItem, shareButton ];
   }
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm b/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm
index faa84dd..8175e4a 100644
--- a/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm
+++ b/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm
@@ -404,9 +404,8 @@
 // Various tests for the main Password Manager UI.
 @interface PasswordManagerTestCase : ChromeTestCase
 
-- (GREYElementInteraction*)
-    interactionForSinglePasswordEntryWithDomain:(NSString*)domain
-                                       username:(NSString*)username;
+- (GREYElementInteraction*)interactionForSinglePasswordEntryWithDomain:
+    (NSString*)domain;
 
 // Matcher for the websites in Password Details view.
 // `websites` should be in the format "website1, website2,..." with `websiteN`
@@ -434,9 +433,8 @@
   return YES;
 }
 
-- (GREYElementInteraction*)
-    interactionForSinglePasswordEntryWithDomain:(NSString*)domain
-                                       username:(NSString*)username {
+- (GREYElementInteraction*)interactionForSinglePasswordEntryWithDomain:
+    (NSString*)domain {
   // With notes enabled authentication is required before interacting with
   // password details.
   if ([self notesEnabled]) {
@@ -444,8 +442,6 @@
                                       ReauthenticationResult::kSuccess];
   }
 
-  // With grouping enabled, discard the username; it's only shown on the details
-  // page.
   // ID, not label because the latter might contain an extra label for the
   // "local password icon" and most tests don't care about it.
   return GetInteractionForListItem(ButtonWithAccessibilityID(domain),
@@ -549,12 +545,16 @@
             (testOpenPasswordManagerWithWithoutPasscodeSet)]) {
     config.features_enabled.push_back(
         password_manager::features::kIOSPasswordAuthOnEntry);
+    config.features_enabled.push_back(
+        password_manager::features::kIOSPasswordAuthOnEntryV2);
   }
 
   if ([self isRunningTest:@selector
             (testPasswordManagerVisitMetricWithoutAuthRequired)]) {
     config.features_disabled.push_back(
         password_manager::features::kIOSPasswordAuthOnEntry);
+    config.features_disabled.push_back(
+        password_manager::features::kIOSPasswordAuthOnEntryV2);
   }
 
   return config;
@@ -574,8 +574,7 @@
       performAction:grey_tap()];
 
   // Inspect "password details" view.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
   [ChromeEarlGrey verifyAccessibilityForCurrentScreen];
   [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
@@ -600,8 +599,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   // Check the snackbar in case of successful reauthentication.
@@ -644,8 +642,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   if (![self notesEnabled]) {
@@ -681,8 +678,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [PasswordSettingsAppInterface mockReauthenticationModuleExpectedResult:
@@ -715,8 +711,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   CopyPasswordDetailWithID(IDS_IOS_SHOW_PASSWORD_VIEW_USERNAME);
@@ -741,8 +736,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   CopyPasswordDetailWithInteraction(GetInteractionForPasswordDetailItem(
@@ -770,8 +764,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   if (![self notesEnabled]) {
@@ -798,8 +791,7 @@
                   @"Stored password was not removed from PasswordStore.");
 
   // Also verify that the removed password is no longer in the list.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       assertWithMatcher:grey_not(grey_sufficientlyVisible())];
 
   // Finally, verify that the Add button is visible and enabled, because there
@@ -822,8 +814,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   if (![self notesEnabled]) {
@@ -857,8 +848,7 @@
                   @"Stored password was not removed from PasswordStore.");
 
   // Also verify that the removed password is no longer in the list.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       assertWithMatcher:grey_not(grey_sufficientlyVisible())];
 
   // Finally, verify that the Add button is visible and enabled, because there
@@ -884,8 +874,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   if (![self notesEnabled]) {
@@ -912,8 +901,7 @@
                   @"Stored password was not removed from PasswordStore.");
 
   // Also verify that the removed password is no longer in the list.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       assertWithMatcher:grey_not(grey_sufficientlyVisible())];
 
   // Verify blocked sites are still there.
@@ -945,8 +933,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   if (![self notesEnabled]) {
@@ -976,8 +963,7 @@
                   @"Stored password was not removed from PasswordStore.");
 
   // Also verify that the removed password is no longer in the list.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       assertWithMatcher:grey_not(grey_sufficientlyVisible())];
 
   // Finally, verify that the Add button is visible and enabled, because there
@@ -1086,8 +1072,7 @@
       assertWithMatcher:grey_not(grey_sufficientlyVisible())];
 
   // Verify existing saved password is still in the list.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       assertWithMatcher:grey_sufficientlyVisible()];
 
   [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
@@ -1103,8 +1088,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   if (![self notesEnabled]) {
@@ -1139,8 +1123,7 @@
       performAction:grey_tap()];
   [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
       performAction:grey_tap()];
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       assertWithMatcher:grey_sufficientlyVisible()];
 
   [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
@@ -1159,8 +1142,7 @@
 
   TapNavigationBarEditButton();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   // Check that the current view is not the detail view, by failing to locate
@@ -1182,8 +1164,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   // Tap the password cell to display the context menu.
@@ -1231,8 +1212,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"federated username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   // Check that the Site and Username are present and correct.
@@ -1278,8 +1258,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [[EarlGrey
@@ -1322,8 +1301,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [[EarlGrey
@@ -1367,8 +1345,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [[EarlGrey
@@ -1412,8 +1389,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   TapNavigationBarEditButton();
@@ -1496,8 +1472,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"federated username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [[EarlGrey
@@ -1566,8 +1541,7 @@
         performAction:grey_tap()];
 
     // Check the stored items. Scroll down if needed.
-    [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                              username:@"concrete username"]
+    [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
         assertWithMatcher:grey_notNil()];
   }
 
@@ -1620,8 +1594,7 @@
   TapNavigationBarEditButton();
 
   // Select password entry to be removed.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [[EarlGrey selectElementWithMatcher:DeleteButtonAtBottom()]
@@ -1658,8 +1631,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [PasswordSettingsAppInterface mockReauthenticationModuleCanAttempt:NO];
@@ -1689,8 +1661,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [PasswordSettingsAppInterface mockReauthenticationModuleCanAttempt:NO];
@@ -1792,8 +1763,7 @@
   TapNavigationBarEditButton();
 
   // Select password entry to be removed.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [[EarlGrey selectElementWithMatcher:DeleteButtonAtBottom()]
@@ -1886,12 +1856,10 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example11.com"
-                                            username:@"user1"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example11.com"]
       assertWithMatcher:grey_notNil()];
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"
-                                            username:@"user2"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"]
       assertWithMatcher:grey_notNil()];
   [GetInteractionForPasswordEntry(@"exclude1.com")
       assertWithMatcher:grey_notNil()];
@@ -1903,11 +1871,9 @@
   [[EarlGrey selectElementWithMatcher:SearchTextField()]
       performAction:grey_replaceText(@"2")];
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example11.com"
-                                            username:@"user1"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example11.com"]
       assertWithMatcher:grey_nil()];
-  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"
-                                            username:@"user2"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"]
       assertWithMatcher:grey_notNil()];
   [GetInteractionForPasswordEntry(@"exclude1.com")
       assertWithMatcher:grey_nil()];
@@ -1944,11 +1910,9 @@
   TapNavigationBarEditButton();
 
   // Select all.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example11.com"
-                                            username:@"user1"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example11.com"]
       performAction:grey_tap()];
-  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"
-                                            username:@"user2"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"]
       performAction:grey_tap()];
 
   [GetInteractionForPasswordEntry(@"exclude1.com") performAction:grey_tap()];
@@ -1965,11 +1929,9 @@
   [ChromeEarlGreyUI waitForAppToIdle];
 
   // All should be gone.
-  [[self interactionForSinglePasswordEntryWithDomain:@"example11.com"
-                                            username:@"user1"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example11.com"]
       assertWithMatcher:grey_nil()];
-  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"
-                                            username:@"user2"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"]
       assertWithMatcher:grey_nil()];
   [GetInteractionForPasswordEntry(@"exclude1.com")
       assertWithMatcher:grey_nil()];
@@ -2051,8 +2013,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   // Check the snackbar in case of successful reauthentication.
@@ -2104,8 +2065,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   // Check the snackbar in case of successful reauthentication.
@@ -2143,8 +2103,7 @@
   [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
       performAction:grey_tap()];
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"new username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       assertWithMatcher:grey_notNil()];
 
   [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
@@ -2166,8 +2125,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username1"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   // Check the snackbar in case of successful reauthentication.
@@ -2210,8 +2168,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   // Check the snackbar in case of successful reauthentication.
@@ -2347,8 +2304,7 @@
   [[EarlGrey selectElementWithMatcher:AddPasswordSaveButton()]
       performAction:grey_tap()];
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"new username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [PasswordSettingsAppInterface mockReauthenticationModuleExpectedResult:
@@ -2448,8 +2404,7 @@
       performAction:grey_tap()];
 
   // The newly created credential exists.
-  [[self interactionForSinglePasswordEntryWithDomain:@"zexample.com"
-                                            username:@"zconcrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"zexample.com"]
       performAction:grey_tap()];
 
   [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
@@ -2511,8 +2466,7 @@
   [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
       performAction:grey_tap()];
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"new username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       assertWithMatcher:grey_notNil()];
 
   [[EarlGrey selectElementWithMatcher:SettingsMenuBackButton()]
@@ -2638,8 +2592,7 @@
   [[EarlGrey selectElementWithMatcher:AddPasswordSaveButton()]
       performAction:grey_tap()];
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"new username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   if (![self notesEnabled]) {
@@ -2741,8 +2694,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   // Check the snackbar in case of successful reauthentication.
@@ -2777,8 +2729,7 @@
 
   OpenPasswordManager();
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"
-                                            username:@"concrete username"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
       performAction:grey_tap()];
 
   [GetInteractionForPasswordDetailItem(ShowPasswordButton())
@@ -2813,8 +2764,7 @@
   // Make sure the cell is loaded properly before tapping on it.
   ConditionBlock condition = ^{
     NSError* error = nil;
-    [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"
-                                              username:@"user2"]
+    [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"]
         assertWithMatcher:grey_sufficientlyVisible()
                     error:&error];
     return error == nil;
@@ -2824,8 +2774,7 @@
                  base::test::ios::kWaitForUIElementTimeout, condition),
              @"Waiting for the cell to load");
 
-  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"
-                                            username:@"user2"]
+  [[self interactionForSinglePasswordEntryWithDomain:@"example12.com"]
       performAction:grey_tap()];
 
   // Metric: Passwords in the password manager.
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_ui_features.h b/ios/chrome/browser/ui/settings/password/password_manager_ui_features.h
index 88bb95d0..433042e8 100644
--- a/ios/chrome/browser/ui/settings/password/password_manager_ui_features.h
+++ b/ios/chrome/browser/ui/settings/password/password_manager_ui_features.h
@@ -16,6 +16,11 @@
 // Helper function returning the status of `kIOSPasswordAuthOnEntry`.
 bool IsAuthOnEntryEnabled();
 
+BASE_DECLARE_FEATURE(kIOSPasswordAuthOnEntryV2);
+
+// Helper function returning the status of `kIOSPasswordAuthOnEntry2`.
+bool IsAuthOnEntryV2Enabled();
+
 }  // namespace password_manager::features
 
 #endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_MANAGER_UI_FEATURES_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_ui_features.mm b/ios/chrome/browser/ui/settings/password/password_manager_ui_features.mm
index f789fc7c..b6ee8a90 100644
--- a/ios/chrome/browser/ui/settings/password/password_manager_ui_features.mm
+++ b/ios/chrome/browser/ui/settings/password/password_manager_ui_features.mm
@@ -5,8 +5,8 @@
 #import "ios/chrome/browser/ui/settings/password/password_manager_ui_features.h"
 
 namespace password_manager::features {
-// When enabled, biometric authentication (Face ID, Touch ID or Passcode) is
-// required to view saved credentials in the Password Manager.
+// When enabled, local authentication (Face ID, Touch ID or Passcode) is
+// required to view saved credentials in the Password Manager Main Page.
 BASE_FEATURE(kIOSPasswordAuthOnEntry,
              "IOSPasswordAuthOnEntry",
              base::FEATURE_DISABLED_BY_DEFAULT);
@@ -14,4 +14,15 @@
 bool IsAuthOnEntryEnabled() {
   return base::FeatureList::IsEnabled(kIOSPasswordAuthOnEntry);
 }
+
+// When enabled, local authentication (Face ID, Touch ID or Passcode) is
+// required to view saved credentials in all Password Manager Surfaces.
+BASE_FEATURE(kIOSPasswordAuthOnEntryV2,
+             "IOSPasswordAuthOnEntryV2",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
+bool IsAuthOnEntryV2Enabled() {
+  return base::FeatureList::IsEnabled(kIOSPasswordAuthOnEntryV2);
+}
+
 }  // namespace password_manager::features
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn b/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn
index 93d142c..bff0217 100644
--- a/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn
@@ -6,6 +6,8 @@
   sources = [
     "family_picker_coordinator.h",
     "family_picker_coordinator.mm",
+    "family_picker_mediator.h",
+    "family_picker_mediator.mm",
     "password_picker_coordinator.h",
     "password_picker_coordinator.mm",
     "password_sharing_coordinator.h",
@@ -30,6 +32,7 @@
 
 source_set("password_sharing_ui") {
   sources = [
+    "family_picker_consumer.h",
     "family_picker_view_controller.h",
     "family_picker_view_controller.mm",
     "password_picker_view_controller.h",
@@ -55,3 +58,19 @@
     "//ui/base",
   ]
 }
+
+source_set("eg2_tests") {
+  configs += [ "//build/config/ios:xctest_config" ]
+  testonly = true
+  sources = [ "password_sharing_egtest.mm" ]
+  deps = [
+    "//components/password_manager/core/common:features",
+    "//ios/chrome/browser/signin:fake_system_identity",
+    "//ios/chrome/browser/ui/authentication:eg_test_support+eg2",
+    "//ios/chrome/browser/ui/settings/password:eg2_tests",
+    "//ios/chrome/browser/ui/settings/password:eg_test_support+eg2",
+    "//ios/chrome/browser/ui/settings/password/password_details:password_details_table_view_constants",
+    "//ios/chrome/test/earl_grey:eg_test_support+eg2",
+    "//ios/testing/earl_grey:eg_test_support+eg2",
+  ]
+}
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_consumer.h b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_consumer.h
new file mode 100644
index 0000000..4047f9a
--- /dev/null
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_consumer.h
@@ -0,0 +1,18 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_FAMILY_PICKER_CONSUMER_H_
+#define IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_FAMILY_PICKER_CONSUMER_H_
+
+@class RecipientInfoForIOSDisplay;
+
+// Provides potential password sharing recipients of the user.
+@protocol FamilyPickerConsumer <NSObject>
+
+// Sets array of potential recipients to be displayed in the family picker view.
+- (void)setRecipients:(NSArray<RecipientInfoForIOSDisplay*>*)recipients;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_FAMILY_PICKER_CONSUMER_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_coordinator.h b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_coordinator.h
index 72f5372..d8451ba 100644
--- a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_coordinator.h
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_coordinator.h
@@ -7,14 +7,21 @@
 
 #import "ios/chrome/browser/shared/coordinator/chrome_coordinator/chrome_coordinator.h"
 
+@class RecipientInfoForIOSDisplay;
+
 // This coordinator presents a list of Google Family members of a user that
 // initiated sharing a password and allows choosing recipients.
 @interface FamilyPickerCoordinator : ChromeCoordinator
 
-- (instancetype)initWithBaseViewController:(UIViewController*)viewController
-                                   browser:(Browser*)browser
+- (instancetype)
+    initWithBaseViewController:(UIViewController*)viewController
+                       browser:(Browser*)browser
+                    recipients:(NSArray<RecipientInfoForIOSDisplay*>*)recipients
     NS_DESIGNATED_INITIALIZER;
 
+- (instancetype)initWithBaseViewController:(UIViewController*)viewController
+                                   browser:(Browser*)browser NS_UNAVAILABLE;
+
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_FAMILY_PICKER_COORDINATOR_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_coordinator.mm b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_coordinator.mm
index 71d73c4..5f23c17 100644
--- a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_coordinator.mm
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_coordinator.mm
@@ -6,9 +6,13 @@
 
 #import "ios/chrome/browser/shared/ui/table_view/table_view_navigation_controller.h"
 #import "ios/chrome/browser/shared/ui/table_view/table_view_utils.h"
+#import "ios/chrome/browser/ui/settings/password/password_sharing/family_picker_mediator.h"
 #import "ios/chrome/browser/ui/settings/password/password_sharing/family_picker_view_controller.h"
+#import "ios/chrome/browser/ui/settings/password/password_sharing/recipient_info.h"
 
-@interface FamilyPickerCoordinator ()
+@interface FamilyPickerCoordinator () {
+  NSArray<RecipientInfoForIOSDisplay*>* _recipients;
+}
 
 // The navigation controller displaying the view controller.
 @property(nonatomic, strong)
@@ -17,13 +21,22 @@
 // Main view controller for this coordinator.
 @property(nonatomic, strong) FamilyPickerViewController* viewController;
 
+// Main mediator for this coordinator.
+@property(nonatomic, strong) FamilyPickerMediator* mediator;
+
 @end
 
 @implementation FamilyPickerCoordinator
 
 - (instancetype)initWithBaseViewController:(UIViewController*)viewController
-                                   browser:(Browser*)browser {
+                                   browser:(Browser*)browser
+                                recipients:
+                                    (NSArray<RecipientInfoForIOSDisplay*>*)
+                                        recipients {
   self = [super initWithBaseViewController:viewController browser:browser];
+  if (self) {
+    _recipients = recipients;
+  }
   return self;
 }
 
@@ -32,6 +45,8 @@
 
   self.viewController =
       [[FamilyPickerViewController alloc] initWithStyle:ChromeTableViewStyle()];
+  self.mediator = [[FamilyPickerMediator alloc] initWithRecipients:_recipients];
+  self.mediator.consumer = self.viewController;
   self.navigationController =
       [[TableViewNavigationController alloc] initWithTable:self.viewController];
   [self.navigationController
@@ -51,7 +66,11 @@
 }
 
 - (void)stop {
+  [self.viewController.presentingViewController
+      dismissViewControllerAnimated:YES
+                         completion:nil];
   self.viewController = nil;
+  self.mediator = nil;
 }
 
 @end
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_mediator.h b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_mediator.h
new file mode 100644
index 0000000..f551de1
--- /dev/null
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_mediator.h
@@ -0,0 +1,28 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_FAMILY_PICKER_MEDIATOR_H_
+#define IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_FAMILY_PICKER_MEDIATOR_H_
+
+#import <Foundation/Foundation.h>
+
+@class RecipientInfoForIOSDisplay;
+
+@protocol FamilyPickerConsumer;
+
+// This mediator passes display information about potential password sharing
+// recipients of the user to its consumer.
+@interface FamilyPickerMediator : NSObject
+
+- (instancetype)initWithRecipients:
+    (NSArray<RecipientInfoForIOSDisplay*>*)recipients NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+// Consumer of this mediator.
+@property(nonatomic, weak) id<FamilyPickerConsumer> consumer;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_FAMILY_PICKER_MEDIATOR_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_mediator.mm b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_mediator.mm
new file mode 100644
index 0000000..ef3a99c
--- /dev/null
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_mediator.mm
@@ -0,0 +1,36 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/settings/password/password_sharing/family_picker_mediator.h"
+
+#import "ios/chrome/browser/ui/settings/password/password_sharing/family_picker_consumer.h"
+#import "ios/chrome/browser/ui/settings/password/password_sharing/recipient_info.h"
+
+@interface FamilyPickerMediator () {
+  NSArray<RecipientInfoForIOSDisplay*>* _recipients;
+}
+
+@end
+
+@implementation FamilyPickerMediator
+
+- (instancetype)initWithRecipients:
+    (NSArray<RecipientInfoForIOSDisplay*>*)recipients {
+  self = [super init];
+  if (self) {
+    _recipients = recipients;
+  }
+  return self;
+}
+
+- (void)setConsumer:(id<FamilyPickerConsumer>)consumer {
+  if (_consumer == consumer) {
+    return;
+  }
+
+  _consumer = consumer;
+  [_consumer setRecipients:_recipients];
+}
+
+@end
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_view_controller.h b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_view_controller.h
index f734b92..23c043e 100644
--- a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_view_controller.h
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_view_controller.h
@@ -6,9 +6,11 @@
 #define IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_FAMILY_PICKER_VIEW_CONTROLLER_H_
 
 #import "ios/chrome/browser/shared/ui/table_view/chrome_table_view_controller.h"
+#import "ios/chrome/browser/ui/settings/password/password_sharing/family_picker_consumer.h"
 
 // Presents the list of Google Family members of a user.
-@interface FamilyPickerViewController : ChromeTableViewController
+@interface FamilyPickerViewController
+    : ChromeTableViewController <FamilyPickerConsumer>
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_FAMILY_PICKER_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_view_controller.mm b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_view_controller.mm
index 8e8bb76f..5379452a 100644
--- a/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/family_picker_view_controller.mm
@@ -31,10 +31,9 @@
 
 }  // namespace
 
-@interface FamilyPickerViewController () {
-  // List of password sharing recipients that the user can pick from.
-  NSArray<RecipientInfoForIOSDisplay*>* _recipients;
-}
+@interface FamilyPickerViewController ()
+
+@property(nonatomic, strong) NSArray<RecipientInfoForIOSDisplay*>* recipients;
 
 @end
 
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_coordinator.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_coordinator.mm
index aaf6057..876a4eb3 100644
--- a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_coordinator.mm
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_coordinator.mm
@@ -89,12 +89,14 @@
             (NSArray<RecipientInfoForIOSDisplay*>*)familyMembers
                   withStatus:(const FetchFamilyMembersRequestStatus&)status {
   // TODO(crbug.com/1463882): Add handling multiple credential groups.
+  // TODO(crbug.com/1463882): Add EG tests for the whole flow.
   switch (status) {
     case FetchFamilyMembersRequestStatus::kSuccess:
       [self.familyPickerCoordinator stop];
       self.familyPickerCoordinator = [[FamilyPickerCoordinator alloc]
           initWithBaseViewController:self.viewController
-                             browser:self.browser];
+                             browser:self.browser
+                          recipients:familyMembers];
       [self.familyPickerCoordinator start];
       break;
     case FetchFamilyMembersRequestStatus::kNoFamily:
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm
new file mode 100644
index 0000000..b725d03
--- /dev/null
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm
@@ -0,0 +1,102 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "components/password_manager/core/common/password_manager_features.h"
+#import "ios/chrome/browser/signin/fake_system_identity.h"
+#import "ios/chrome/browser/ui/authentication/signin_earl_grey_ui_test_util.h"
+#import "ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.h"
+#import "ios/chrome/browser/ui/settings/password/password_manager_egtest_utils.h"
+#import "ios/chrome/browser/ui/settings/password/password_settings_app_interface.h"
+#import "ios/chrome/test/earl_grey/chrome_earl_grey.h"
+#import "ios/chrome/test/earl_grey/chrome_earl_grey_ui.h"
+#import "ios/chrome/test/earl_grey/chrome_matchers.h"
+#import "ios/chrome/test/earl_grey/chrome_test_case.h"
+#import "ios/testing/earl_grey/earl_grey_test.h"
+
+using password_manager_test_utils::kScrollAmount;
+using password_manager_test_utils::OpenPasswordManager;
+using password_manager_test_utils::SavePasswordForm;
+
+// Test case for the Password Sharing flow.
+@interface PasswordSharingTestCase : ChromeTestCase
+
+- (GREYElementInteraction*)interactionForSinglePasswordEntryWithDomain:
+    (NSString*)domain;
+
+@end
+
+@implementation PasswordSharingTestCase
+
+- (GREYElementInteraction*)interactionForSinglePasswordEntryWithDomain:
+    (NSString*)domain {
+  return [[EarlGrey
+      selectElementWithMatcher:grey_allOf(grey_accessibilityID(domain),
+                                          grey_accessibilityTrait(
+                                              UIAccessibilityTraitButton),
+                                          grey_sufficientlyVisible(), nil)]
+         usingSearchAction:grey_scrollInDirection(kGREYDirectionDown,
+                                                  kScrollAmount)
+      onElementWithMatcher:grey_accessibilityID(kPasswordsTableViewId)];
+}
+
+- (AppLaunchConfiguration)appConfigurationForTestCase {
+  AppLaunchConfiguration config;
+  config.relaunch_policy = NoForceRelaunchAndResetState;
+
+  if ([self isRunningTest:@selector
+            (testShareButtonVisibilityWithSharingDisabled)]) {
+    config.features_disabled.push_back(
+        password_manager::features::kSendPasswords);
+  } else {
+    config.features_enabled.push_back(
+        password_manager::features::kSendPasswords);
+  }
+
+  return config;
+}
+
+- (void)setUp {
+  [super setUp];
+
+  FakeSystemIdentity* fakeIdentity = [FakeSystemIdentity fakeIdentity1];
+  [SigninEarlGreyUI signinWithFakeIdentity:fakeIdentity enableSync:YES];
+
+  // Mock successful reauth for opening the Password Manager.
+  [PasswordSettingsAppInterface setUpMockReauthenticationModule];
+  [PasswordSettingsAppInterface mockReauthenticationModuleExpectedResult:
+                                    ReauthenticationResult::kSuccess];
+}
+
+- (void)tearDown {
+  [PasswordSettingsAppInterface removeMockReauthenticationModule];
+  [super tearDown];
+}
+
+- (void)testShareButtonVisibilityWithSharingDisabled {
+  SavePasswordForm();
+
+  OpenPasswordManager();
+
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
+      performAction:grey_tap()];
+
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(kPasswordShareButtonId)]
+      assertWithMatcher:grey_not(grey_sufficientlyVisible())];
+}
+
+- (void)testShareButtonVisibilityWithSharingEnabled {
+  SavePasswordForm();
+
+  OpenPasswordManager();
+
+  [[self interactionForSinglePasswordEntryWithDomain:@"example.com"]
+      performAction:grey_tap()];
+
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(kPasswordShareButtonId)]
+      assertWithMatcher:grey_sufficientlyVisible()];
+}
+
+@end
diff --git a/ios/chrome/browser/ui/settings/password/passwords_coordinator.mm b/ios/chrome/browser/ui/settings/password/passwords_coordinator.mm
index 73b0ad3..31a0451 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_coordinator.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_coordinator.mm
@@ -197,7 +197,8 @@
   self.mediator.consumer = self.passwordsViewController;
 
   BOOL startBlockedForReauth =
-      password_manager::features::IsAuthOnEntryEnabled();
+      password_manager::features::IsAuthOnEntryEnabled() ||
+      password_manager::features::IsAuthOnEntryV2Enabled();
   // Disable animation when content will be blocked for reauth to prevent
   // flickering in navigation bar.
   [self.baseNavigationController pushViewController:self.passwordsViewController
diff --git a/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.mm b/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.mm
index b6e3db7..8f967bf 100644
--- a/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.mm
+++ b/ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.mm
@@ -335,6 +335,14 @@
             UIFontTextStyleHeadline,
             self.traitCollection.preferredContentSizeCategory,
             UIContentSizeCategoryExtraExtraExtraLarge);
+    if (self.secondaryActionString) {
+      self.secondaryActionButton.titleLabel.font =
+          [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
+    }
+    if (self.tertiaryActionString) {
+      self.tertiaryActionButton.titleLabel.font =
+          [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
+    }
   }
 
   // Update constraints for different size classes.
diff --git a/ios/chrome/test/earl_grey2/BUILD.gn b/ios/chrome/test/earl_grey2/BUILD.gn
index d1bbc3c..9f1b6851 100644
--- a/ios/chrome/test/earl_grey2/BUILD.gn
+++ b/ios/chrome/test/earl_grey2/BUILD.gn
@@ -140,6 +140,7 @@
     "//ios/chrome/browser/ui/settings/notifications/tracking_price:eg2_tests",
     "//ios/chrome/browser/ui/settings/password:eg2_tests",
     "//ios/chrome/browser/ui/settings/password/password_checkup:eg2_tests",
+    "//ios/chrome/browser/ui/settings/password/password_sharing:eg2_tests",
     "//ios/chrome/browser/ui/settings/password/passwords_in_other_apps:eg2_tests",
     "//ios/chrome/browser/ui/settings/privacy:eg2_tests",
     "//ios/chrome/browser/ui/settings/privacy/lockdown_mode:eg2_tests",
diff --git a/ios/chrome/test/providers/signin/DIR_METADATA b/ios/chrome/test/providers/signin/DIR_METADATA
new file mode 100644
index 0000000..e297220
--- /dev/null
+++ b/ios/chrome/test/providers/signin/DIR_METADATA
@@ -0,0 +1,2 @@
+mixins: "//components/signin/COMMON_METADATA"
+os: IOS
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_bs.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_bs.xtb
index 15b91af..5bb3da74 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_bs.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_bs.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">Brze radnje</translation>
 <translation id="6330929932864892436">Pretraživanje ili pisanje URL-a</translation>
 <translation id="6336802729091778259">Igra Dinosaur u Chromeu</translation>
+<translation id="6400175403219850910">Upravitelj zaporki</translation>
 <translation id="6663288906398689853">Pretražite</translation>
 <translation id="6691821786147477657">Pokrenite novo pretraživanje ili otvorite najposjećenije web lokacije s početne stranice iPada.</translation>
 <translation id="6721566127904256183">Najposjećenije web lokacije se prikazuju ovdje.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_fil.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_fil.xtb
index bb7cd7f..85dafa1 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_fil.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_fil.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">Mga Mabilisang Pagkilos</translation>
 <translation id="6330929932864892436">Maghanap o Mag-type ng URL</translation>
 <translation id="6336802729091778259">Larong Chrome Dino</translation>
+<translation id="6400175403219850910">Password Manager</translation>
 <translation id="6663288906398689853">Maghanap</translation>
 <translation id="6691821786147477657">Magsimula ng bagong paghahanap o buksan ang iyong mga pinakabinibisitang site mula sa homepage ng iPad mo.</translation>
 <translation id="6721566127904256183">Lalabas dito ang iyong mga pinakamadalas na bisitahing site.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_hr.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_hr.xtb
index a5e796c..38707b81 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_hr.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_hr.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">Brze radnje</translation>
 <translation id="6330929932864892436">Pretražite ili upišite URL</translation>
 <translation id="6336802729091778259">Igra Dinosaur na Chromeu</translation>
+<translation id="6400175403219850910">Upravitelj zaporki</translation>
 <translation id="6663288906398689853">Pretraživanje</translation>
 <translation id="6691821786147477657">Pokrenite novo pretraživanje ili otvorite najposjećenije web-lokacije na početnoj stranici iPada.</translation>
 <translation id="6721566127904256183">Ovdje će se prikazivati web-lokacije koje najčešće posjećujete.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_hu.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_hu.xtb
index 6a254bfe..3c964c5 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_hu.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_hu.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">Gyorsműveletek</translation>
 <translation id="6330929932864892436">Keressen, vagy írjon be URL-t</translation>
 <translation id="6336802729091778259">A Chrome dinós játéka</translation>
+<translation id="6400175403219850910">Jelszókezelő</translation>
 <translation id="6663288906398689853">Keresés</translation>
 <translation id="6691821786147477657">Új keresést indíthat, vagy megnyithatja a leggyakrabban felkeresett webhelyeket az iPad kezdőlapjáról.</translation>
 <translation id="6721566127904256183">Legtöbbet látogatott webhelyei itt láthatók.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ka.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ka.xtb
index 3b08de46..797bade2 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ka.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ka.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">სწრაფი ქმედებები</translation>
 <translation id="6330929932864892436">მოიძიეთ ან აკრიფეთ URL</translation>
 <translation id="6336802729091778259">Chrome დინოზავრის თამაში</translation>
+<translation id="6400175403219850910">პაროლების მმართველი</translation>
 <translation id="6663288906398689853">ძიება</translation>
 <translation id="6691821786147477657">წამოიწყეთ ახალი ძიება, ან გახსენით თქვენ მიერ ყველაზე ხშირად მონახულებადი საიტები თქვენი iPad-ის მთავარი გვერდიდან.</translation>
 <translation id="6721566127904256183">აქ გამოჩნდება ხშირად მონახულებული საიტები.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_km.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_km.xtb
index 88c6fda9..bc3f478 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_km.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_km.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">សកម្មភាពរហ័ស</translation>
 <translation id="6330929932864892436">ស្វែងរក ឬវាយបញ្ចូល URL</translation>
 <translation id="6336802729091778259">ហ្គេមដាយណូស័រ Chrome</translation>
+<translation id="6400175403219850910">កម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់</translation>
 <translation id="6663288906398689853">ស្វែងរក</translation>
 <translation id="6691821786147477657">ចាប់ផ្ដើម​ការស្វែងរកថ្មី ឬបើក​គេហទំព័រ​ដែលអ្នកបានចូលមើល​ច្រើនបំផុត​ពីទំព័រដើម iPad របស់អ្នក។</translation>
 <translation id="6721566127904256183">គេហទំព័រ​ដែលអ្នក​ចូលមើល​ញឹកញាប់បំផុត​នឹង​បង្ហាញនៅទីនេះ។</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_lt.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_lt.xtb
index 1f33320..1d69fb0 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_lt.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_lt.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">Spartieji veiksmai</translation>
 <translation id="6330929932864892436">Ieškokite arba įveskite URL</translation>
 <translation id="6336802729091778259">„Chrome“ dinozauro žaidimas</translation>
+<translation id="6400175403219850910">Slaptažodžių tvarkyklė</translation>
 <translation id="6663288906398689853">Paieška</translation>
 <translation id="6691821786147477657">Pradėkite naują paiešką arba atidarykite dažniausiai lankomas svetaines „iPad“ pagrindiniame puslapyje.</translation>
 <translation id="6721566127904256183">Lankomiausios svetainės bus rodomos čia.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ml.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ml.xtb
index 2af0ae5..d3785483 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ml.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ml.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">ദ്രുത നടപടികൾ</translation>
 <translation id="6330929932864892436">തിരയുക അല്ലെങ്കിൽ URL ടൈപ്പ് ചെയ്യുക</translation>
 <translation id="6336802729091778259">Chrome ദിനോസർ ഗെയിം</translation>
+<translation id="6400175403219850910">Password Manager</translation>
 <translation id="6663288906398689853">തിരയുക</translation>
 <translation id="6691821786147477657">ഒരു പുതിയ തിരയൽ ആരംഭിക്കൂ അല്ലെങ്കിൽ നിങ്ങളുടെ iPad-ന്റെ ഹോംപേജിൽ നിന്ന് ഏറ്റവും കൂടുതൽ സന്ദർശിച്ച സൈറ്റുകൾ തുറക്കൂ.</translation>
 <translation id="6721566127904256183">കൂടുതൽ സന്ദർശിച്ച സൈറ്റുകൾ ഇവിടെ കാണാം.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ms.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ms.xtb
index be02334f..e1c1bb8 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ms.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ms.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">Tindakan Pantas</translation>
 <translation id="6330929932864892436">Cari atau Taip URL</translation>
 <translation id="6336802729091778259">Permainan Dino Chrome</translation>
+<translation id="6400175403219850910">Password Manager</translation>
 <translation id="6663288906398689853">Cari</translation>
 <translation id="6691821786147477657">Mulakan carian baharu atau buka laman yang paling kerap anda lawati daripada halaman utama iPad anda.</translation>
 <translation id="6721566127904256183">Laman paling kerap dilawati dipaparkan di sini.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_pl.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_pl.xtb
index 23df2c35..2684f2c 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_pl.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_pl.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">Szybkie działania</translation>
 <translation id="6330929932864892436">Wyszukaj lub wpisz URL</translation>
 <translation id="6336802729091778259">Gra z dinozaurem w Chrome</translation>
+<translation id="6400175403219850910">Menedżer haseł</translation>
 <translation id="6663288906398689853">Wyszukiwanie</translation>
 <translation id="6691821786147477657">Rozpocznij nowe wyszukiwanie lub otwórz najczęściej odwiedzane witryny na stronie głównej na iPadzie.</translation>
 <translation id="6721566127904256183">Tu zobaczysz często otwierane strony.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_pt-PT.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_pt-PT.xtb
index 968e242a..3f7bb6f0 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_pt-PT.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_pt-PT.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">Ações rápidas</translation>
 <translation id="6330929932864892436">Pesquisar ou introduzir URL</translation>
 <translation id="6336802729091778259">Jogo Chrome Dino</translation>
+<translation id="6400175403219850910">Gestor de Palavras-passe</translation>
 <translation id="6663288906398689853">Pesquisa</translation>
 <translation id="6691821786147477657">Inicie uma nova pesquisa ou abra os seus sites mais visitados a partir da página inicial do iPad.</translation>
 <translation id="6721566127904256183">Os sites mais visitados aparecem aqui.</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ur.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ur.xtb
index e2858a4..08a075b3 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ur.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ur.xtb
@@ -24,6 +24,7 @@
 <translation id="6179961764474023795">فوری کارروائیاں</translation>
 <translation id="6330929932864892436">‏URL تلاش یا ٹائپ کریں</translation>
 <translation id="6336802729091778259">‏Chrome ڈائنوسار گیم</translation>
+<translation id="6400175403219850910">پاس ورڈ مینیجر</translation>
 <translation id="6663288906398689853">تلاش کریں</translation>
 <translation id="6691821786147477657">‏نئی تلاش شروع کریں یا اپنے iPad ہوم پیج سے اپنی سب سے زیادہ ملاحظہ کردہ سائٹس کو کھولیں۔</translation>
 <translation id="6721566127904256183">آپ کی سب سے زیادہ ملاحظہ کردہ سائٹس یہاں دکھائی دیں گی۔</translation>
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins
index 8251b42f..5088e8c 100644
--- a/net/http/transport_security_state_static.pins
+++ b/net/http/transport_security_state_static.pins
@@ -43,9 +43,9 @@
 #   hash function for preloaded entries again (we have already done so once).
 #
 
-# Last updated: 2023-08-10 12:55 UTC
+# Last updated: 2023-08-11 12:54 UTC
 PinsListTimestamp
-1691672121
+1691758445
 
 TestSPKI
 sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/net/http/transport_security_state_static_pins.json b/net/http/transport_security_state_static_pins.json
index 81c8d21..2cbe9fc 100644
--- a/net/http/transport_security_state_static_pins.json
+++ b/net/http/transport_security_state_static_pins.json
@@ -31,7 +31,7 @@
 // the 'static_spki_hashes' and 'bad_static_spki_hashes' fields in 'pinsets'
 // refer to, and the timestamp at which the pins list was last updated.
 //
-// Last updated: 2023-08-10 12:55 UTC
+// Last updated: 2023-08-11 12:54 UTC
 //
 {
   "pinsets": [
diff --git a/services/tracing/BUILD.gn b/services/tracing/BUILD.gn
index 710f070..836cdad 100644
--- a/services/tracing/BUILD.gn
+++ b/services/tracing/BUILD.gn
@@ -133,7 +133,9 @@
   }
 
   if (is_fuchsia) {
-    sources += [ "public/cpp/fuchsia_perfetto_producer_connector_unittest.cc" ]
+    sources += [
+      "public/cpp/perfetto/fuchsia_perfetto_producer_connector_unittest.cc",
+    ]
     deps += [
       "//net",
       "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.tracing.perfetto:fuchsia.tracing.perfetto_cpp",
diff --git a/services/tracing/public/cpp/fuchsia_perfetto_producer_connector_unittest.cc b/services/tracing/public/cpp/perfetto/fuchsia_perfetto_producer_connector_unittest.cc
similarity index 99%
rename from services/tracing/public/cpp/fuchsia_perfetto_producer_connector_unittest.cc
rename to services/tracing/public/cpp/perfetto/fuchsia_perfetto_producer_connector_unittest.cc
index ec5a3ad..cb747b8 100644
--- a/services/tracing/public/cpp/fuchsia_perfetto_producer_connector_unittest.cc
+++ b/services/tracing/public/cpp/perfetto/fuchsia_perfetto_producer_connector_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright 2022 The Chromium Authors. All rights reserved.
+// Copyright 2022 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/services/tracing/public/cpp/perfetto/perfetto_tracing_backend.cc b/services/tracing/public/cpp/perfetto/perfetto_tracing_backend.cc
index 378bf00..ecce1271 100644
--- a/services/tracing/public/cpp/perfetto/perfetto_tracing_backend.cc
+++ b/services/tracing/public/cpp/perfetto/perfetto_tracing_backend.cc
@@ -270,6 +270,9 @@
           this, producer_task_runner);
     }
 
+    shared_memory_arbiter_->SetDirectSMBPatchingSupportedByService();
+    shared_memory_arbiter_->EnableDirectSMBPatching();
+
     mojo::PendingRemote<mojom::ProducerClient> client_remote;
     mojo::PendingRemote<mojom::ProducerHost> host_remote;
     auto client_receiver = client_remote.InitWithNewPipeAndPassReceiver();
diff --git a/testing/android/docs/README.md b/testing/android/docs/README.md
index 2701a83..19693a46 100644
--- a/testing/android/docs/README.md
+++ b/testing/android/docs/README.md
@@ -15,7 +15,7 @@
   - **writing tests**
     - [... write an instrumentation test?](/testing/android/docs/instrumentation.md)
     - [... write a JUnit or Robolectric test?](/testing/android/docs/junit.md)
-    - [... write a test that needs to mock native calls?](/base/android/jni_generator/README.md#testing-mockable-natives)
+    - [... write a test that needs to mock native calls?](/third_party/jni_zero/README.md#testing-mockable-natives)
   - **running tests**
     - [... run a gtest?](/testing/android/docs/android_test_instructions.md#gtests)
     - [... run an instrumentation test?](/testing/android/docs/android_test_instructions.md#instrumentation-tests)
diff --git a/testing/buildbot/filters/ios.content_browsertests.filter b/testing/buildbot/filters/ios.content_browsertests.filter
index 14173649..2438a76 100644
--- a/testing/buildbot/filters/ios.content_browsertests.filter
+++ b/testing/buildbot/filters/ios.content_browsertests.filter
@@ -205,6 +205,11 @@
 # and fallback ID.
 -BFCachedRenderWidgetHostViewBrowserTest.BFCachedPageResizedWhileHiddenShouldNotHavePreservedFallback
 
+# TODO(https://crbug.com/1472026): `WCImpl::GetSize()` should be replaced by
+# `WC::GetRenderWidgetHostView()->GetViewBounds()`; `ui::GrabViewSnapshot` isn't
+# implemented for IOS.
+-RenderFrameHostImplBrowserTestWithBFCacheAndViewTransition.NewContentTimeoutIsSetWhenLeavingBFCacheWithViewTransition
+
 # TODO(crbug.com/1466927): unexpected level of support for codec.
 -MediaCanPlayTypeTest.CodecSupportTest_mp4
 
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 95a1d03..4611f81 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -10314,6 +10314,22 @@
             ]
         }
     ],
+    "OnBeginFrameThrottleVideo": [
+        {
+            "platforms": [
+                "android",
+                "android_webview"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled_08072023",
+                    "enable_features": [
+                        "OnBeginFrameThrottleVideo"
+                    ]
+                }
+            ]
+        }
+    ],
     "OneGroupPerRenderer": [
         {
             "platforms": [
@@ -10676,6 +10692,21 @@
             ]
         }
     ],
+    "ParentalControlsOnIOS": [
+        {
+            "platforms": [
+                "ios"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "FilterWebsitesForSupervisedUsersOnDesktopAndIOS"
+                    ]
+                }
+            ]
+        }
+    ],
     "ParentalControlsOnLinuxMacWindows": [
         {
             "platforms": [
@@ -11042,25 +11073,6 @@
             ]
         }
     ],
-    "PasswordsImportM2": [
-        {
-            "platforms": [
-                "chromeos",
-                "chromeos_lacros",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "PasswordsImportM2"
-                    ]
-                }
-            ]
-        }
-    ],
     "Path2DPaintCache": [
         {
             "platforms": [
@@ -11350,25 +11362,6 @@
             ]
         }
     ],
-    "PersistentOriginTrials": [
-        {
-            "platforms": [
-                "android",
-                "android_webview",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "PersistentOriginTrials"
-                    ]
-                }
-            ]
-        }
-    ],
     "PolicyLogsPageIOS": [
         {
             "platforms": [
@@ -14327,38 +14320,6 @@
             ]
         }
     ],
-    "StylusPointerAdjustment": [
-        {
-            "platforms": [
-                "android",
-                "android_webview"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "StylusPointerAdjustment"
-                    ]
-                }
-            ]
-        }
-    ],
-    "StylusRichGestures": [
-        {
-            "platforms": [
-                "android",
-                "android_webview"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled_20230313",
-                    "enable_features": [
-                        "StylusRichGestures"
-                    ]
-                }
-            ]
-        }
-    ],
     "SubprocessMetricsAsync": [
         {
             "platforms": [
@@ -14781,29 +14742,6 @@
             ]
         }
     ],
-    "TextEmbeddingModelValidation": [
-        {
-            "platforms": [
-                "android",
-                "chromeos",
-                "chromeos_lacros",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled_20230724",
-                    "params": {
-                        "TextEmbedding": "true"
-                    },
-                    "enable_features": [
-                        "PageContentAnnotationsValidation"
-                    ]
-                }
-            ]
-        }
-    ],
     "ThemeProviderColorProviderRedirection": [
         {
             "platforms": [
@@ -15272,6 +15210,31 @@
             ]
         }
     ],
+    "UseBoringSSLForRandBytes": [
+        {
+            "platforms": [
+                "android",
+                "chromeos",
+                "chromeos_lacros",
+                "fuchsia",
+                "ios",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "UseBoringSSLForRandBytes"
+                    ],
+                    "disable_features": [
+                        "UseGetrandomForRandBytes"
+                    ]
+                }
+            ]
+        }
+    ],
     "UseClientGmbInterface": [
         {
             "platforms": [
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index f47df928..eb1addd 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -339,9 +339,9 @@
 // using that new epoch's topics. The time chosen is a per-site random point in
 // time between [calculation time, calculation time + max duration).
 const base::FeatureParam<base::TimeDelta>
-    kBrowsingTopicsMaxEpochIntroductionDelay{
-        &kBrowsingTopicsParameters,
-        "browsing_topics_max_epoch_introduction_delay", base::Days(2)};
+    kBrowsingTopicsMaxEpochIntroductionDelay{&kBrowsingTopicsParameters,
+                                             "max_epoch_introduction_delay",
+                                             base::Days(2)};
 // How many epochs (weeks) of API usage data (i.e. topics observations) will be
 // based off for the filtering of topics for a calling context.
 const base::FeatureParam<int>
@@ -379,7 +379,7 @@
 // Comma separated Topic IDs to be blocked. Descendant topics of each blocked
 // topic will be blocked as well.
 const base::FeatureParam<std::string> kBrowsingTopicsDisabledTopicsList{
-    &kBrowsingTopicsParameters, "browsing_topics_disabled_topics_list", ""};
+    &kBrowsingTopicsParameters, "disabled_topics_list", ""};
 
 // Enables the deprecatedBrowsingTopics XHR attribute. For this feature to take
 // effect, the main Topics feature has to be enabled first (i.e.
@@ -1300,6 +1300,10 @@
              "PrefetchPrivacyChanges",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+BASE_FEATURE(kPreloadingHeuristicsMLModel,
+             "PreloadingHeuristicsMLModel",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 BASE_FEATURE(kPrerender2InNewTab,
              "Prerender2InNewTab",
              base::FEATURE_DISABLED_BY_DEFAULT);
@@ -1761,11 +1765,11 @@
 
 BASE_FEATURE(kStylusPointerAdjustment,
              "StylusPointerAdjustment",
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 BASE_FEATURE(kStylusRichGestures,
              "StylusRichGestures",
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 // TODO(mahesh.ma): Enable for supported Android versions once feature is ready.
 BASE_FEATURE(kStylusWritingToInput,
diff --git a/third_party/blink/common/frame/frame_visual_properties_mojom_traits.cc b/third_party/blink/common/frame/frame_visual_properties_mojom_traits.cc
index 131de1d..5e87b39 100644
--- a/third_party/blink/common/frame/frame_visual_properties_mojom_traits.cc
+++ b/third_party/blink/common/frame/frame_visual_properties_mojom_traits.cc
@@ -23,13 +23,17 @@
       !data.ReadLocalFrameSize(&out->local_frame_size) ||
       !data.ReadRootWidgetWindowSegments(&out->root_widget_window_segments) ||
       !data.ReadLocalSurfaceId(&out->local_surface_id) ||
-      data.page_scale_factor() <= 0 || data.compositing_scale_factor() <= 0)
+      data.page_scale_factor() <= 0 || data.compositing_scale_factor() <= 0 ||
+      data.cursor_accessibility_scale_factor() < 1.f) {
     return false;
+  }
   out->auto_resize_enabled = data.auto_resize_enabled();
   out->capture_sequence_number = data.capture_sequence_number();
   out->zoom_level = data.zoom_level();
   out->page_scale_factor = data.page_scale_factor();
   out->compositing_scale_factor = data.compositing_scale_factor();
+  out->cursor_accessibility_scale_factor =
+      data.cursor_accessibility_scale_factor();
   out->is_pinch_gesture_active = data.is_pinch_gesture_active();
   return true;
 }
diff --git a/third_party/blink/common/widget/visual_properties.cc b/third_party/blink/common/widget/visual_properties.cc
index 72c4b48..0d39e2c 100644
--- a/third_party/blink/common/widget/visual_properties.cc
+++ b/third_party/blink/common/widget/visual_properties.cc
@@ -32,6 +32,8 @@
          zoom_level == other.zoom_level &&
          page_scale_factor == other.page_scale_factor &&
          compositing_scale_factor == other.compositing_scale_factor &&
+         cursor_accessibility_scale_factor ==
+             other.cursor_accessibility_scale_factor &&
          root_widget_window_segments == other.root_widget_window_segments &&
          is_pinch_gesture_active == other.is_pinch_gesture_active &&
          window_controls_overlay_rect == other.window_controls_overlay_rect;
diff --git a/third_party/blink/common/widget/visual_properties_mojom_traits.cc b/third_party/blink/common/widget/visual_properties_mojom_traits.cc
index 4bb2ef7..7a80bce 100644
--- a/third_party/blink/common/widget/visual_properties_mojom_traits.cc
+++ b/third_party/blink/common/widget/visual_properties_mojom_traits.cc
@@ -25,8 +25,10 @@
       !data.ReadLocalSurfaceId(&out->local_surface_id) ||
       !data.ReadRootWidgetWindowSegments(&out->root_widget_window_segments) ||
       !data.ReadWindowControlsOverlayRect(&out->window_controls_overlay_rect) ||
-      data.page_scale_factor() <= 0 || data.compositing_scale_factor() <= 0)
+      data.page_scale_factor() <= 0 || data.compositing_scale_factor() <= 0 ||
+      data.cursor_accessibility_scale_factor() < 1) {
     return false;
+  }
   out->auto_resize_enabled = data.auto_resize_enabled();
   out->scroll_focused_node_into_view = data.scroll_focused_node_into_view();
   out->is_fullscreen_granted = data.is_fullscreen_granted();
@@ -35,6 +37,8 @@
   out->zoom_level = data.zoom_level();
   out->page_scale_factor = data.page_scale_factor();
   out->compositing_scale_factor = data.compositing_scale_factor();
+  out->cursor_accessibility_scale_factor =
+      data.cursor_accessibility_scale_factor();
   out->is_pinch_gesture_active = data.is_pinch_gesture_active();
   out->virtual_keyboard_resize_height_physical_px =
       data.virtual_keyboard_resize_height_physical_px();
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
index e631625b..9c45b4e1 100644
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -717,6 +717,10 @@
 
 BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kPrefetchPrivacyChanges);
 
+// If enabled, the machine learning model will be employed to predict the next
+// click for speculation-rule based pre-loadings.
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kPreloadingHeuristicsMLModel);
+
 // Enables the same-origin main frame navigation in a prerendered page.
 // See https://crbug.com/1239281.
 BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kPrerender2MainFrameNavigation);
diff --git a/third_party/blink/public/common/frame/frame_visual_properties.h b/third_party/blink/public/common/frame/frame_visual_properties.h
index 53fe2557..5c026bd 100644
--- a/third_party/blink/public/common/frame/frame_visual_properties.h
+++ b/third_party/blink/public/common/frame/frame_visual_properties.h
@@ -34,6 +34,7 @@
   double zoom_level = 0;
   float page_scale_factor = 1.f;
   float compositing_scale_factor = 1.f;
+  float cursor_accessibility_scale_factor = 1.f;
   gfx::Size visible_viewport_size;
   gfx::Size min_size_for_auto_resize;
   gfx::Size max_size_for_auto_resize;
diff --git a/third_party/blink/public/common/frame/frame_visual_properties_mojom_traits.h b/third_party/blink/public/common/frame/frame_visual_properties_mojom_traits.h
index b6166ed..d040bb3 100644
--- a/third_party/blink/public/common/frame/frame_visual_properties_mojom_traits.h
+++ b/third_party/blink/public/common/frame/frame_visual_properties_mojom_traits.h
@@ -50,6 +50,12 @@
     return r.compositing_scale_factor;
   }
 
+  static float cursor_accessibility_scale_factor(
+      const blink::FrameVisualProperties& r) {
+    DCHECK_GE(r.cursor_accessibility_scale_factor, 1.f);
+    return r.cursor_accessibility_scale_factor;
+  }
+
   static const gfx::Size& visible_viewport_size(
       const blink::FrameVisualProperties& r) {
     return r.visible_viewport_size;
diff --git a/third_party/blink/public/common/widget/visual_properties.h b/third_party/blink/public/common/widget/visual_properties.h
index 3976640..e9b0df8c 100644
--- a/third_party/blink/public/common/widget/visual_properties.h
+++ b/third_party/blink/public/common/widget/visual_properties.h
@@ -123,6 +123,9 @@
   // account the transform from child frame space to main frame space.
   float compositing_scale_factor = 1.f;
 
+  // The OS cursor accessibility scale factor.
+  float cursor_accessibility_scale_factor = 1.f;
+
   // The logical segments of the root widget, in widget-relative DIPs. This
   // property is set by the root RenderWidget in the renderer process, then
   // propagated to child local frame roots via RenderFrameProxy/
diff --git a/third_party/blink/public/common/widget/visual_properties_mojom_traits.h b/third_party/blink/public/common/widget/visual_properties_mojom_traits.h
index 0ee9e77..1b21c6d 100644
--- a/third_party/blink/public/common/widget/visual_properties_mojom_traits.h
+++ b/third_party/blink/public/common/widget/visual_properties_mojom_traits.h
@@ -95,6 +95,12 @@
     return r.compositing_scale_factor;
   }
 
+  static float cursor_accessibility_scale_factor(
+      const blink::VisualProperties& r) {
+    DCHECK_GE(r.cursor_accessibility_scale_factor, 1.f);
+    return r.cursor_accessibility_scale_factor;
+  }
+
   static const std::vector<gfx::Rect>& root_widget_window_segments(
       const blink::VisualProperties& r) {
     return r.root_widget_window_segments;
diff --git a/third_party/blink/public/mojom/frame/frame_visual_properties.mojom b/third_party/blink/public/mojom/frame/frame_visual_properties.mojom
index 8d9f059b..17b48b8 100644
--- a/third_party/blink/public/mojom/frame/frame_visual_properties.mojom
+++ b/third_party/blink/public/mojom/frame/frame_visual_properties.mojom
@@ -39,6 +39,9 @@
   // account the transform from child frame space to main frame space.
   float compositing_scale_factor = 1;
 
+  // The OS cursor accessibility scale factor.
+  float cursor_accessibility_scale_factor = 1;
+
   // The size of the area of the widget that is visible to the user, in DIPs.
   // The visible area may be empty if the visible area does not intersect with
   // the widget, for example in the case of a child frame that is entirely
diff --git a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
index 57f19d52..56ab16b 100644
--- a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
+++ b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
@@ -3960,6 +3960,9 @@
   kORBBlockWithOnLoadButWithoutOnErrorEventHandler = 4620,
   kORBBlockWithOnLoadAndOnErrorEventHandler = 4621,
   kORBBlockWithAnyEventHandler = 4622,
+  kV8RTCEncodedVideoFrame_SetMetadata_Method = 4623,
+  kV8RTCEncodedVideoFrame_SetTimestamp_Method = 4624,
+  kV8RTCEncodedAudioFrame_SetTimestamp_Method = 4625,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/public/mojom/widget/visual_properties.mojom b/third_party/blink/public/mojom/widget/visual_properties.mojom
index 3c10634..91b15e4 100644
--- a/third_party/blink/public/mojom/widget/visual_properties.mojom
+++ b/third_party/blink/public/mojom/widget/visual_properties.mojom
@@ -83,6 +83,9 @@
   // account the transform from child frame space to main frame space.
   float compositing_scale_factor = 1;
 
+  // The OS cursor accessibility scale factor.
+  float cursor_accessibility_scale_factor = 1;
+
   // The logical segments of the root widget, in widget-relative DIPs. This
   // property is set by the root RenderWidget in the renderer process, then
   // propagated to child local frame roots via RenderFrameProxy/
diff --git a/third_party/blink/public/strings/translations/blink_strings_es-419.xtb b/third_party/blink/public/strings/translations/blink_strings_es-419.xtb
index 9d1388e..7d7a5293 100644
--- a/third_party/blink/public/strings/translations/blink_strings_es-419.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_es-419.xtb
@@ -164,7 +164,7 @@
 <translation id="8613126697340063924">controlar la reproducción remota</translation>
 <translation id="8634971699417195529">Mostrar el selector de meses</translation>
 <translation id="8637593834423658414">1.75</translation>
-<translation id="8668988909814782445">Unión de líneas</translation>
+<translation id="8668988909814782445">Ajustar líneas</translation>
 <translation id="8750798805984357768">Selecciona una de estas opciones.</translation>
 <translation id="8845239796550121995">Transmitiendo a tu TV</translation>
 <translation id="8875657656876809964">Error de reproducción de video</translation>
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni
index bf3fd063..26cbb250 100644
--- a/third_party/blink/renderer/bindings/generated_in_modules.gni
+++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
@@ -3086,6 +3086,8 @@
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_out.h",
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_transaction_options.cc",
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_transaction_options.h",
+    "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_transmit_options.cc",
+    "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_transmit_options.h",
   ]
   generated_enumeration_sources_in_modules += [
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_access_mode.cc",
diff --git a/third_party/blink/renderer/core/dom/node_move_scope.h b/third_party/blink/renderer/core/dom/node_move_scope.h
index 15c39310..22eefda 100644
--- a/third_party/blink/renderer/core/dom/node_move_scope.h
+++ b/third_party/blink/renderer/core/dom/node_move_scope.h
@@ -27,7 +27,9 @@
   // mutation events have listeners. Or something like that.
   NodeMoveScopeItem(Node& destination_root, NodeMoveScopeType type)
       : destination_root_(destination_root),
-        all_parts_lists_clean_(type != NodeMoveScopeType::kOther),
+        all_parts_lists_clean_(type != NodeMoveScopeType::kOther &&
+                               !destination_root.GetDocument().HasListenerType(
+                                   Document::kDOMMutationEventListener)),
         prepending_children_(type ==
                              NodeMoveScopeType::kInsertBeforeAllChildren) {
     DCHECK(RuntimeEnabledFeatures::DOMPartsAPIEnabled());
diff --git a/third_party/blink/renderer/core/dom/part_root.cc b/third_party/blink/renderer/core/dom/part_root.cc
index 5a30d2a..f06ec0e 100644
--- a/third_party/blink/renderer/core/dom/part_root.cc
+++ b/third_party/blink/renderer/core/dom/part_root.cc
@@ -75,59 +75,66 @@
 // PartRoot (from FirstIncludedChildNode to LastIncludedChildNode), and collect
 // any Parts we find. If we find a ChildNodePart (or other PartRoot), we ignore
 // Parts until we exit the Partroot.
-// TODO(crbug.com/1453291) Future optimization: just skip the Node
-// traversal directly to the LastIncludedChildNode and avoid looping through
-// the descendants.)
 HeapDeque<Member<Part>>& PartRoot::RebuildPartsList() {
   DCHECK(cached_parts_list_dirty_);
-
   auto& ordered_parts = *MakeGarbageCollected<HeapDeque<Member<Part>>>();
-
   // Then traverse the tree under the root container and add parts in the order
   // they're found in the tree, and for the same Node, in the order they were
   // constructed.
-  Node* child = FirstIncludedChildNode();
-  Node* last_child = LastIncludedChildNode();
-  if (!child || !last_child) {
+  Node* node = FirstIncludedChildNode();
+  if (!node || !LastIncludedChildNode()) {
     return ordered_parts;
   }
-  bool done = false;
-  Part* inside_sub_root = nullptr;
-  while (!done) {
-    for (auto& descendant : NodeTraversal::InclusiveDescendantsOf(*child)) {
-      if (auto* parts = descendant.GetDOMParts()) {
-        for (Part* part : *parts) {
-          PartRoot* part_root = part->GetAsPartRoot();
-          if (part_root == this) {
-            // Skip the PartRoot itself.
-            continue;
-          }
-          if (inside_sub_root) {
-            if (inside_sub_root == part) {
-              // We just exited the other side of the ChildNodePart.
-              DCHECK_EQ(part_root->LastIncludedChildNode(), &descendant);
-              inside_sub_root = nullptr;
-            }
-            continue;
-          }
-          if (part->NodeToSortBy() != descendant) {
-            continue;
-          }
-          if (!part->IsValid()) {
-            continue;
-          }
-          DCHECK(!base::Contains(ordered_parts, part));
-          ordered_parts.push_back(part);
-          if (!inside_sub_root && part_root) {
-            // We just entered a PartRoot - ignore further parts until we
-            // traverse the end node of this PartRoot.
-            inside_sub_root = part;
-          }
+  Node* end_node = LastIncludedChildNode()->nextSibling();
+  enum class NestedPartRoot {
+    kNone,
+    kAtStart,
+    kAtEnd
+  } nested_part_root = NestedPartRoot::kNone;
+  while (node != end_node) {
+    Node* next_node = NodeTraversal::Next(*node);
+    if (auto* parts = node->GetDOMParts()) {
+      // If we were previously at the start of a nested root, we're now at the
+      // end.
+      nested_part_root = nested_part_root == NestedPartRoot::kAtStart
+                             ? NestedPartRoot::kAtEnd
+                             : NestedPartRoot::kNone;
+      for (Part* part : *parts) {
+        if (!part->IsValid()) {
+          continue;
         }
+        if (PartRoot* part_root = part->GetAsPartRoot()) {
+          // Skip the PartRoot itself.
+          if (part_root == this) {
+            continue;
+          }
+          // TODO(crbug.com/1453291) It's still possible to construct two
+          // overlapping ChildNodeParts, e.g. both with the same endpoints,
+          // overlapping endpoints, or adjoining endpoings (previous==next).
+          // Eventually that should not be legal. Until then, ignore the second
+          // and subsequent nested part roots we find. When such parts are no
+          // longer legal, |nested_part_root| can be removed.
+          if (nested_part_root != NestedPartRoot::kNone) {
+            continue;
+          }
+          // We just entered a contained PartRoot; we should be at the
+          // FirstIncludedChildNode. Skip all descendants of this PartRoot and
+          // move to the last included child. Make sure to process any other
+          // Parts that are on the endpoint Nodes.
+          DCHECK_EQ(part_root->FirstIncludedChildNode(), node);
+          DCHECK_EQ(part_root->LastIncludedChildNode()->parentNode(),
+                    node->parentNode());
+          next_node = part_root->LastIncludedChildNode();
+          nested_part_root = NestedPartRoot::kAtStart;
+        }
+        if (part->NodeToSortBy() != node) {
+          continue;
+        }
+        DCHECK(!base::Contains(ordered_parts, part));
+        ordered_parts.push_back(part);
       }
     }
-    done = child == last_child;
-    child = child->nextSibling();
+    node = next_node;
   }
   return ordered_parts;
 }
diff --git a/third_party/blink/renderer/core/frame/remote_frame.cc b/third_party/blink/renderer/core/frame/remote_frame.cc
index d90939b..e5d0e24 100644
--- a/third_party/blink/renderer/core/frame/remote_frame.cc
+++ b/third_party/blink/renderer/core/frame/remote_frame.cc
@@ -955,6 +955,8 @@
           pending_visual_properties_.page_scale_factor ||
       sent_visual_properties_->compositing_scale_factor !=
           pending_visual_properties_.compositing_scale_factor ||
+      sent_visual_properties_->cursor_accessibility_scale_factor !=
+          pending_visual_properties_.cursor_accessibility_scale_factor ||
       sent_visual_properties_->is_pinch_gesture_active !=
           pending_visual_properties_.is_pinch_gesture_active ||
       sent_visual_properties_->visible_viewport_size !=
@@ -1075,6 +1077,11 @@
   SynchronizeVisualProperties();
 }
 
+void RemoteFrame::CursorAccessibilityScaleFactorChanged(float scale_factor) {
+  pending_visual_properties_.cursor_accessibility_scale_factor = scale_factor;
+  SynchronizeVisualProperties();
+}
+
 void RemoteFrame::EnableAutoResize(const gfx::Size& min_size,
                                    const gfx::Size& max_size) {
   pending_visual_properties_.auto_resize_enabled = true;
diff --git a/third_party/blink/renderer/core/frame/remote_frame.h b/third_party/blink/renderer/core/frame/remote_frame.h
index 912d94da1..9585ac3d 100644
--- a/third_party/blink/renderer/core/frame/remote_frame.h
+++ b/third_party/blink/renderer/core/frame/remote_frame.h
@@ -149,6 +149,8 @@
   void DidChangeVisibleViewportSize(const gfx::Size& visible_viewport_size);
   // Called when the local root's capture sequence number has changed.
   void UpdateCaptureSequenceNumber(uint32_t sequence_number);
+  // Called when the cursor accessibility scale factor changed.
+  void CursorAccessibilityScaleFactorChanged(float scale_factor);
 
   const String& UniqueName() const { return unique_name_; }
   const FrameVisualProperties& GetPendingVisualPropertiesForTesting() const {
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
index ac0f2c1..5d96455 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
@@ -1717,6 +1717,24 @@
         /*is_pinch_gesture_active=*/false);
   }
 
+  EventHandler& event_handler = local_root_->GetFrame()->GetEventHandler();
+  if (event_handler.cursor_accessibility_scale_factor() !=
+      visual_properties.cursor_accessibility_scale_factor) {
+    ForEachLocalFrameControlledByWidget(
+        local_root_->GetFrame(), [&](WebLocalFrameImpl* local_frame) {
+          local_frame->GetFrame()
+              ->GetEventHandler()
+              .set_cursor_accessibility_scale_factor(
+                  visual_properties.cursor_accessibility_scale_factor);
+        });
+    // Propagate changes down to any child RemoteFrames.
+    ForEachRemoteFrameControlledByWidget(
+        [scale_factor = visual_properties.cursor_accessibility_scale_factor](
+            RemoteFrame* remote_frame) {
+          remote_frame->CursorAccessibilityScaleFactorChanged(scale_factor);
+        });
+  }
+
   // TODO(crbug.com/939118): This code path where scroll_focused_node_into_view
   // is set is used only for WebView, crbug 939118 tracks fixing webviews to
   // not use scroll_focused_node_into_view.
diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_party/blink/renderer/core/input/event_handler.cc
index 6bf7ed1..5c1ad74 100644
--- a/third_party/blink/renderer/core/input/event_handler.cc
+++ b/third_party/blink/renderer/core/input/event_handler.cc
@@ -70,6 +70,7 @@
 #include "third_party/blink/renderer/core/input/event_handling_util.h"
 #include "third_party/blink/renderer/core/input/input_device_capabilities.h"
 #include "third_party/blink/renderer/core/input_type_names.h"
+#include "third_party/blink/renderer/core/layout/geometry/physical_offset.h"
 #include "third_party/blink/renderer/core/layout/hit_test_request.h"
 #include "third_party/blink/renderer/core/layout/hit_test_result.h"
 #include "third_party/blink/renderer/core/layout/layout_embedded_content.h"
@@ -107,9 +108,11 @@
 #include "ui/gfx/geometry/point_conversions.h"
 #include "ui/gfx/geometry/point_f.h"
 #include "ui/gfx/geometry/rect.h"
+#include "ui/gfx/geometry/rect_conversions.h"
 #include "ui/gfx/geometry/size.h"
 #include "ui/gfx/geometry/size_conversions.h"
 #include "ui/gfx/geometry/size_f.h"
+
 namespace blink {
 
 namespace {
@@ -575,43 +578,14 @@
         continue;
       }
 
-      gfx::Point hot_spot = cursor.HotSpot();
-      // For large cursors below the max size, limit their ability to cover UI
-      // elements by removing them when they are not fully contained by the
-      // visual viewport. Careful, we need to make sure to translate coordinate
-      // spaces if we are in an OOPIF.
-      //
-      // TODO(csharrison): Consider sending a fallback cursor in the IPC to the
-      // browser process so we can do that calculation there instead, this would
-      // ensure even a compromised renderer could not obscure browser UI with a
-      // large cursor. Also, consider augmenting the intervention to drop the
-      // cursor for iframes if the cursor image obscures content in the parent
-      // frame.
-      if (size.width() > kMaximumCursorSizeWithoutFallback ||
-          size.height() > kMaximumCursorSizeWithoutFallback) {
-        PhysicalOffset cursor_offset =
-            frame_->ContentLayoutObject()->LocalToAncestorPoint(
-                location.Point(),
-                nullptr,  // no ancestor maps all the way up the hierarchy
-                kTraverseDocumentBoundaries | kApplyRemoteMainFrameTransform) -
-            PhysicalOffset(hot_spot);
-        PhysicalRect cursor_rect(cursor_offset,
-                                 PhysicalSize::FromSizeFFloor(size));
-        PhysicalRect frame_rect(page->GetVisualViewport().VisibleContentRect());
-        frame_->ContentLayoutObject()->MapToVisualRectInAncestorSpace(
-            nullptr, frame_rect);
-        if (!frame_rect.Contains(cursor_rect)) {
-          continue;
-        }
-      }
+      const float device_scale_factor =
+          page->GetChromeClient().GetScreenInfo(*frame_).device_scale_factor;
 
       // If the image is an SVG, then adjust the scale to reflect the device
       // scale factor so that the SVG can be rasterized in the native
       // resolution and scaled down to the correct size for the cursor.
       scoped_refptr<Image> svg_image_holder;
       if (auto* svg_image = DynamicTo<SVGImage>(image)) {
-        const float device_scale_factor =
-            page->GetChromeClient().GetScreenInfo(*frame_).device_scale_factor;
         scale *= device_scale_factor;
         // Re-scale back from DIP to device pixels.
         size.Scale(scale);
@@ -626,12 +600,59 @@
       }
 
       // Convert from DIP to physical pixels.
-      hot_spot = gfx::ScaleToRoundedPoint(hot_spot, scale);
+      gfx::Point hot_spot = gfx::ScaleToRoundedPoint(cursor.HotSpot(), scale);
 
       const bool hot_spot_specified = cursor.HotSpotSpecified();
-      return ui::Cursor::NewCustom(
+      ui::Cursor custom_cursor = ui::Cursor::NewCustom(
           image->AsSkBitmapForCurrentFrame(kRespectImageOrientation),
           DetermineHotSpot(*image, hot_spot_specified, hot_spot), scale);
+
+      // For large cursors below the max size, limit their ability to cover UI
+      // elements by removing them when they are not fully contained by the
+      // visual viewport. Careful, we need to make sure to translate coordinate
+      // spaces if we are in an OOPIF.
+      //
+      // TODO(csharrison): Consider sending a fallback cursor in the IPC to the
+      // browser process so we can do that calculation there instead, this would
+      // ensure even a compromised renderer could not obscure browser UI with a
+      // large cursor. Also, consider augmenting the intervention to drop the
+      // cursor for iframes if the cursor image obscures content in the parent
+      // frame.
+      gfx::SizeF custom_bitmap_size(custom_cursor.custom_bitmap().width(),
+                                    custom_cursor.custom_bitmap().height());
+      custom_bitmap_size.Scale(1.f / custom_cursor.image_scale_factor());
+      if (custom_bitmap_size.width() > kMaximumCursorSizeWithoutFallback ||
+          custom_bitmap_size.height() > kMaximumCursorSizeWithoutFallback) {
+        PhysicalOffset ancestor_location =
+            frame_->ContentLayoutObject()->LocalToAncestorPoint(
+                location.Point(),
+                nullptr,  // no ancestor maps all the way up the hierarchy
+                kTraverseDocumentBoundaries | kApplyRemoteMainFrameTransform);
+
+        // Check the cursor rect with device and accessibility scaling applied.
+        const float scale_factor =
+            cursor_accessibility_scale_factor_ *
+            (image->IsSVGImage() ? 1.f : device_scale_factor);
+        gfx::SizeF scaled_size(custom_bitmap_size);
+        scaled_size.Scale(scale_factor);
+        gfx::PointF scaled_hot_spot(custom_cursor.custom_hotspot());
+        scaled_hot_spot.Scale(scale_factor /
+                              custom_cursor.image_scale_factor());
+        PhysicalRect cursor_rect(
+            ancestor_location -
+                PhysicalOffset::FromPointFFloor(scaled_hot_spot),
+            PhysicalSize::FromSizeFFloor(scaled_size));
+
+        PhysicalRect frame_rect(page->GetVisualViewport().VisibleContentRect());
+        frame_->ContentLayoutObject()->MapToVisualRectInAncestorSpace(
+            nullptr, frame_rect);
+
+        if (!frame_rect.Contains(cursor_rect)) {
+          continue;
+        }
+      }
+
+      return custom_cursor;
     }
   }
 
diff --git a/third_party/blink/renderer/core/input/event_handler.h b/third_party/blink/renderer/core/input/event_handler.h
index c29de17..5413558 100644
--- a/third_party/blink/renderer/core/input/event_handler.h
+++ b/third_party/blink/renderer/core/input/event_handler.h
@@ -270,6 +270,13 @@
 
   void UpdateCursor();
 
+  float cursor_accessibility_scale_factor() const {
+    return cursor_accessibility_scale_factor_;
+  }
+  void set_cursor_accessibility_scale_factor(float scale) {
+    cursor_accessibility_scale_factor_ = scale;
+  }
+
   Element* GetElementUnderMouse();
 
   Element* CurrentTouchDownElement();
@@ -419,6 +426,8 @@
 
   double max_mouse_moved_duration_;
 
+  float cursor_accessibility_scale_factor_ = 1.f;
+
   HeapTaskRunnerTimer<EventHandler> active_interval_timer_;
 
   // last_show_press_timestamp_ prevents the active state rewrited by
diff --git a/third_party/blink/renderer/core/input/event_handler_test.cc b/third_party/blink/renderer/core/input/event_handler_test.cc
index b71af808..d47fc19 100644
--- a/third_party/blink/renderer/core/input/event_handler_test.cc
+++ b/third_party/blink/renderer/core/input/event_handler_test.cc
@@ -2275,14 +2275,13 @@
         <!DOCTYPE html>
         <style>
         div {
-          width: 300px;
-          height: 100px;
-          cursor: url('100x100.png') 100 100, auto;
+          width: 100vw;
+          height: 100vh;
+          cursor: url('100x100.png') 50 50, auto;
         }
         </style>
         <div>foo</div>
       )HTML");
-
   GetDocument().UpdateStyleAndLayoutTree();
 
   scoped_refptr<SharedBuffer> img =
@@ -2291,33 +2290,55 @@
 
   Compositor().BeginFrame();
 
-  // Move the cursor so no part of it intersects the viewport.
-  {
-    WebMouseEvent mouse_move_event(
-        WebMouseEvent::Type::kMouseMove, gfx::PointF(101, 101),
-        gfx::PointF(101, 101), WebPointerProperties::Button::kNoButton, 0, 0,
-        WebInputEvent::GetStaticTimeStampForTests());
-    GetDocument().GetFrame()->GetEventHandler().HandleMouseMoveEvent(
-        mouse_move_event, Vector<WebMouseEvent>(), Vector<WebMouseEvent>());
+  EventHandler& event_handler = GetDocument().GetFrame()->GetEventHandler();
 
+  struct TestCase {
+    gfx::PointF point;
+    bool custom_expected;
+    float cursor_accessibility_scale_factor = 1.f;
+    float device_scale_factor = 1.f;
+    std::string ToString() const {
+      return base::StringPrintf(
+          "point: (%s), cursor-scale: %g, device-scale: %g, custom?: %d",
+          point.ToString().c_str(), cursor_accessibility_scale_factor,
+          device_scale_factor, custom_expected);
+    }
+  } test_cases[] = {
+      // Test top left and bottom right, within viewport.
+      {gfx::PointF(60, 60), true},
+      {gfx::PointF(740, 540), true},
+      // Test top left and bottom right, beyond viewport.
+      {gfx::PointF(40, 40), false},
+      {gfx::PointF(760, 560), false},
+      // Test a larger cursor accessibility scale factor. crbug.com/1455005
+      {gfx::PointF(110, 110), true, 2.f},
+      {gfx::PointF(690, 490), true, 2.f},
+      {gfx::PointF(90, 90), false, 2.f},
+      {gfx::PointF(710, 510), false, 2.f},
+      // Test a larger display device scale factor. crbug.com/1357442
+      {gfx::PointF(110, 110), true, 1.f, 2.f},
+      {gfx::PointF(690, 490), true, 1.f, 2.f},
+      {gfx::PointF(90, 90), false, 1.f, 2.f},
+      {gfx::PointF(710, 510), false, 1.f, 2.f},
+  };
+  for (const TestCase& test_case : test_cases) {
+    SCOPED_TRACE(test_case.ToString());
+    DeviceEmulationParams params;
+    params.device_scale_factor = test_case.device_scale_factor;
+    WebView().EnableDeviceEmulation(params);
+    event_handler.set_cursor_accessibility_scale_factor(
+        test_case.cursor_accessibility_scale_factor);
+    WebMouseEvent mouse_move_event(
+        WebMouseEvent::Type::kMouseMove, test_case.point, test_case.point,
+        WebPointerProperties::Button::kNoButton, 0, 0,
+        WebInputEvent::GetStaticTimeStampForTests());
+    event_handler.HandleMouseMoveEvent(mouse_move_event, {}, {});
     const ui::Cursor& cursor =
         GetDocument().GetFrame()->GetChromeClient().LastSetCursorForTesting();
-    EXPECT_EQ(ui::mojom::blink::CursorType::kCustom, cursor.type());
-  }
-
-  // Now, move the cursor so that it intersects the visual viewport. The cursor
-  // should be removed.
-  {
-    WebMouseEvent mouse_move_event(
-        WebMouseEvent::Type::kMouseMove, gfx::PointF(99, 99),
-        gfx::PointF(99, 99), WebPointerProperties::Button::kNoButton, 0, 0,
-        WebInputEvent::GetStaticTimeStampForTests());
-    GetDocument().GetFrame()->GetEventHandler().HandleMouseMoveEvent(
-        mouse_move_event, Vector<WebMouseEvent>(), Vector<WebMouseEvent>());
-
-    const ui::Cursor& cursor =
-        GetDocument().GetFrame()->GetChromeClient().LastSetCursorForTesting();
-    EXPECT_EQ(ui::mojom::blink::CursorType::kPointer, cursor.type());
+    const ui::mojom::blink::CursorType expected_type =
+        test_case.custom_expected ? ui::mojom::blink::CursorType::kCustom
+                                  : ui::mojom::blink::CursorType::kPointer;
+    EXPECT_EQ(expected_type, cursor.type());
   }
 }
 
diff --git a/third_party/blink/renderer/extensions/chromeos/system_extensions/managed_device_health_services/DIR_METADATA b/third_party/blink/renderer/extensions/chromeos/system_extensions/managed_device_health_services/DIR_METADATA
index af9b11a..9d53917 100644
--- a/third_party/blink/renderer/extensions/chromeos/system_extensions/managed_device_health_services/DIR_METADATA
+++ b/third_party/blink/renderer/extensions/chromeos/system_extensions/managed_device_health_services/DIR_METADATA
@@ -7,6 +7,6 @@
 #   https://source.chromium.org/chromium/infra/infra/+/master:go/src/infra/tools/dirmd/proto/dir_metadata.proto
 
 buganizer {
-  component_id: 1256717  # ChromeOS > Software > Commercial (Enterprise) > OEM Services
+  component_id: 982097  # ChromeOS > Platform > Enablement > Health
 }
-team_email: "chromeos-oem-services@google.com"
+team_email: "cros-tdm-tpe-eng@google.com"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.idl b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.idl
index 6935de5d..13079c3 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.idl
@@ -14,6 +14,6 @@
   [RuntimeEnabled=RTCEncodedAudioFrameClone, RaisesException]
   RTCEncodedAudioFrame clone();
     stringifier;
-  [RuntimeEnabled=RTCEncodedFrameSetMetadata, RaisesException] void
+  [RuntimeEnabled=RTCEncodedFrameSetMetadata, Measure, RaisesException] void
   setTimestamp(unsigned long timestamp);
 };
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.idl b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.idl
index b86c6b4..ee793a5f 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.idl
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.idl
@@ -18,9 +18,9 @@
     readonly attribute unsigned long timestamp;  // RTP timestamp.
     attribute ArrayBuffer data;
     RTCEncodedVideoFrameMetadata getMetadata();
-    [RuntimeEnabled=RTCEncodedFrameSetMetadata, RaisesException]
+    [RuntimeEnabled=RTCEncodedFrameSetMetadata, Measure, RaisesException]
     void setMetadata(RTCEncodedVideoFrameMetadata metadata);
-    [RuntimeEnabled=RTCEncodedFrameSetMetadata, RaisesException] void
+    [RuntimeEnabled=RTCEncodedFrameSetMetadata, Measure, RaisesException] void
     setTimestamp(unsigned long timestamp);
     [RuntimeEnabled=RTCEncodedVideoFrameClone, RaisesException] RTCEncodedVideoFrame clone();
     stringifier;
diff --git a/third_party/blink/renderer/modules/smart_card/smart_card_connection.cc b/third_party/blink/renderer/modules/smart_card/smart_card_connection.cc
index 1f3cb9a..12a801f7 100644
--- a/third_party/blink/renderer/modules/smart_card/smart_card_connection.cc
+++ b/third_party/blink/renderer/modules/smart_card/smart_card_connection.cc
@@ -12,6 +12,7 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_protocol.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_transaction_callback.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_transaction_options.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_transmit_options.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
 #include "third_party/blink/renderer/modules/smart_card/smart_card_cancel_algorithm.h"
 #include "third_party/blink/renderer/modules/smart_card/smart_card_context.h"
@@ -46,6 +47,18 @@
   }
 }
 
+device::mojom::blink::SmartCardProtocol ToMojoSmartCardProtocol(
+    const V8SmartCardProtocol& protocol) {
+  switch (protocol.AsEnum()) {
+    case blink::V8SmartCardProtocol::Enum::kRaw:
+      return device::mojom::blink::SmartCardProtocol::kRaw;
+    case blink::V8SmartCardProtocol::Enum::kT0:
+      return device::mojom::blink::SmartCardProtocol::kT0;
+    case blink::V8SmartCardProtocol::Enum::kT1:
+      return device::mojom::blink::SmartCardProtocol::kT1;
+  }
+}
+
 absl::optional<V8SmartCardConnectionState::Enum> ToV8ConnectionState(
     SmartCardConnectionState state,
     SmartCardProtocol protocol) {
@@ -306,6 +319,7 @@
 
 ScriptPromise SmartCardConnection::transmit(ScriptState* script_state,
                                             const DOMArrayPiece& send_buffer,
+                                            SmartCardTransmitOptions* options,
                                             ExceptionState& exception_state) {
   if (!smart_card_context_->EnsureNoOperationInProgress(exception_state) ||
       !EnsureConnection(exception_state)) {
@@ -318,6 +332,17 @@
     return ScriptPromise();
   }
 
+  device::mojom::blink::SmartCardProtocol protocol = active_protocol_;
+  if (options->hasProtocol()) {
+    protocol = ToMojoSmartCardProtocol(options->protocol());
+  }
+
+  if (protocol == device::mojom::blink::SmartCardProtocol::kUndefined) {
+    exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
+                                      "No active protocol.");
+    return ScriptPromise();
+  }
+
   auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(
       script_state, exception_state.GetContext());
   SetOperationInProgress(resolver);
@@ -327,7 +352,7 @@
                      static_cast<wtf_size_t>(send_buffer.ByteLength()));
 
   connection_->Transmit(
-      active_protocol_, send_vector,
+      protocol, send_vector,
       WTF::BindOnce(&SmartCardConnection::OnDataResult, WrapPersistent(this),
                     WrapPersistent(resolver)));
 
diff --git a/third_party/blink/renderer/modules/smart_card/smart_card_connection.h b/third_party/blink/renderer/modules/smart_card/smart_card_connection.h
index c8792e0..c7feaa0 100644
--- a/third_party/blink/renderer/modules/smart_card/smart_card_connection.h
+++ b/third_party/blink/renderer/modules/smart_card/smart_card_connection.h
@@ -19,6 +19,7 @@
 
 class SmartCardContext;
 class SmartCardTransactionOptions;
+class SmartCardTransmitOptions;
 class V8SmartCardDisposition;
 class V8SmartCardTransactionCallback;
 
@@ -41,6 +42,7 @@
                            ExceptionState& exception_state);
   ScriptPromise transmit(ScriptState* script_state,
                          const DOMArrayPiece& send_buffer,
+                         SmartCardTransmitOptions* options,
                          ExceptionState& exception_state);
   ScriptPromise status(ScriptState* script_state,
                        ExceptionState& exception_state);
diff --git a/third_party/blink/renderer/modules/smart_card/smart_card_connection.idl b/third_party/blink/renderer/modules/smart_card/smart_card_connection.idl
index 3b4ffc8c..c3003a8 100644
--- a/third_party/blink/renderer/modules/smart_card/smart_card_connection.idl
+++ b/third_party/blink/renderer/modules/smart_card/smart_card_connection.idl
@@ -15,6 +15,10 @@
   AbortSignal signal;
 };
 
+dictionary SmartCardTransmitOptions {
+  SmartCardProtocol protocol;
+};
+
 callback SmartCardTransactionCallback = Promise<SmartCardDisposition?> ();
 
 [
@@ -27,7 +31,8 @@
   Promise<void> disconnect(optional SmartCardDisposition disposition = "leave");
 
   [CallWith=ScriptState, RaisesException]
-  Promise<ArrayBuffer> transmit(BufferSource sendBuffer);
+  Promise<ArrayBuffer> transmit(BufferSource sendBuffer,
+    optional SmartCardTransmitOptions options = {});
 
   [CallWith=ScriptState, RaisesException]
   Promise<SmartCardConnectionStatus> status();
diff --git a/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py b/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py
index 2d0957e..f0fc87b 100644
--- a/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py
+++ b/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py
@@ -271,7 +271,6 @@
         runner_options.binary_args.extend([
             '--host-resolver-rules='
             'MAP nonexistent.*.test ~NOTFOUND, MAP *.test 127.0.0.1',
-            '--disable-field-trial-config',
         ])
 
         if self.options.product != 'content_shell':
diff --git a/third_party/blink/web_tests/PRESUBMIT.py b/third_party/blink/web_tests/PRESUBMIT.py
index c70d2d1..d4bc027 100644
--- a/third_party/blink/web_tests/PRESUBMIT.py
+++ b/third_party/blink/web_tests/PRESUBMIT.py
@@ -2,7 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-"""LayoutTests/ presubmit script for Blink.
+"""web_tests/ presubmit script for Blink.
 
 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
 for more details about the presubmit API built into gcl.
@@ -455,6 +455,46 @@
     return results
 
 
+def _CheckNewVirtualSuitesForOwners(input_api, output_api):
+    """Suggest that new virtual test suites have OWNERS responsible for them."""
+    # TODO(crbug.com/1380165): Once all virtual suites adopt "owners", consider
+    # making the field mandatory. In that case, we don't need to access the
+    # change contents and can promote this check to `lint_test_expectations.py`.
+    vts_path = input_api.os_path.join(input_api.PresubmitLocalPath(),
+                                      'VirtualTestSuites')
+    for affected_file in input_api.AffectedFiles():
+        if affected_file.AbsoluteLocalPath() != vts_path:
+            continue
+        old_contents = ''.join(affected_file.OldContents())
+        new_contents = ''.join(affected_file.NewContents())
+        try:
+            old_suites = _FilterForSuites(input_api.json.loads(old_contents))
+            new_suites = _FilterForSuites(input_api.json.loads(new_contents))
+            old_suite_names = {suite['prefix'] for suite in old_suites}
+            new_ownerless_suites = []
+            for suite in new_suites:
+                prefix, owners = suite['prefix'], suite.get('owners', [])
+                if prefix not in old_suite_names and not owners:
+                    new_ownerless_suites.append(prefix)
+            if new_ownerless_suites:
+                return [
+                    output_api.PresubmitPromptWarning(
+                        'Consider specifying "owners" (a list of emails) '
+                        'for the virtual suites added by this patch:',
+                        new_ownerless_suites),
+                ]
+        except (ValueError, KeyError):
+            # Invalid JSON or missing required fields will be detected by
+            # `lint_test_expectations.py`.
+            pass
+        break
+    return []
+
+
+def _FilterForSuites(suites):
+    return [suite for suite in suites if not isinstance(suite, str)]
+
+
 def CheckChangeOnUpload(input_api, output_api):
     results = []
     results.extend(_CheckTestharnessResults(input_api, output_api))
@@ -468,6 +508,7 @@
     results.extend(_CheckForExtraVirtualBaselines(input_api, output_api))
     results.extend(_CheckWebViewExpectations(input_api, output_api))
     results.extend(_CheckForDoctypeHTML(input_api, output_api))
+    results.extend(_CheckNewVirtualSuitesForOwners(input_api, output_api))
     return results
 
 
@@ -481,4 +522,5 @@
     results.extend(_CheckForExtraVirtualBaselines(input_api, output_api))
     results.extend(_CheckWebViewExpectations(input_api, output_api))
     results.extend(_CheckForDoctypeHTML(input_api, output_api))
+    results.extend(_CheckNewVirtualSuitesForOwners(input_api, output_api))
     return results
diff --git a/third_party/blink/web_tests/PRESUBMIT_test.py b/third_party/blink/web_tests/PRESUBMIT_test.py
index 009ff22..7fa6a78 100755
--- a/third_party/blink/web_tests/PRESUBMIT_test.py
+++ b/third_party/blink/web_tests/PRESUBMIT_test.py
@@ -5,6 +5,7 @@
 
 import fnmatch
 import functools
+import json
 import unittest
 import sys
 import os
@@ -136,6 +137,64 @@
         self.assertEqual(1, len(messages))
         self.assertEqual("warning", messages[0].type)
 
+    def testIgnoreUnchangedOrOwnedVirtualSuites(self):
+        old_suites = [
+            'ignore this comment',
+            {
+                'prefix': 'existing-ownerless-suite',
+                'expires': 'Jan 1, 3000',
+            },
+        ]
+        new_suites = [
+            'ignore this comment',
+            {
+                'prefix': 'existing-ownerless-suite',
+                'expires': 'Jan 1, 3000',
+            },
+            {
+                'prefix': 'new-owned-suite',
+                'owners': ['someone@chromium.org'],
+                'expires': 'Jan 1, 3000',
+            },
+        ]
+        mock_vts_config = MockAffectedFile(
+            '/chromium/src/third_party/blink/web_tests/VirtualTestSuites',
+            json.dumps(new_suites), json.dumps(old_suites))
+        input_api = MockInputApi()
+        input_api.os_path = posixpath
+        input_api.presubmit_local_path = '/chromium/src/third_party/blink/web_tests'
+        input_api.files = [mock_vts_config]
+        messages = PRESUBMIT._CheckNewVirtualSuitesForOwners(
+            input_api, MockOutputApi())
+        self.assertEqual(messages, [])
+
+    def testCheckForNewOwnerlessVirtualSuites(self):
+        old_suites = []
+        new_suites = [
+            {
+                'prefix': 'new-temporary-suite',
+                'expires': 'Jan 1, 3000',
+            },
+            {
+                'prefix': 'new-permanent-suite',
+                'expires': 'never',
+            },
+        ]
+        mock_vts_config = MockAffectedFile(
+            '/chromium/src/third_party/blink/web_tests/VirtualTestSuites',
+            json.dumps(new_suites), json.dumps(old_suites))
+        input_api = MockInputApi()
+        input_api.os_path = posixpath
+        input_api.presubmit_local_path = '/chromium/src/third_party/blink/web_tests'
+        input_api.files = [mock_vts_config]
+        messages = PRESUBMIT._CheckNewVirtualSuitesForOwners(
+            input_api, MockOutputApi())
+        self.assertEqual(1, len(messages))
+        self.assertEqual('warning', messages[0].type)
+        self.assertRegex(messages[0].message, 'Consider specifying "owners"')
+        self.assertEqual(['new-temporary-suite', 'new-permanent-suite'],
+                         messages[0].items)
+
 
 if __name__ == "__main__":
     unittest.main()
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 4f1e308..5c8d632 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -2741,9 +2741,7 @@
 crbug.com/626703 external/wpt/css/css-fonts/parsing/font-variant-invalid.html [ Crash ]
 
 # ====== New tests from wpt-importer added here ======
-crbug.com/626703 [ Win10.20h2 ] external/wpt/css/css-contain/content-visibility/content-visibility-085.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-contain/content-visibility/content-visibility-085.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-contain/content-visibility/content-visibility-085.html [ Failure ]
+crbug.com/626703 external/wpt/css/css-contain/content-visibility/content-visibility-085.html [ Failure ]
 crbug.com/626703 [ Mac12 ] virtual/prefetch/external/wpt/speculation-rules/prefetch/out-of-document-rule-set.https.html?include=RelativeUrlForSpeculationRulesSet [ Timeout ]
 crbug.com/626703 [ Mac ] external/wpt/css/motion/offset-path-url-003.html [ Failure ]
 crbug.com/626703 external/wpt/css/motion/offset-path-url-008.html [ Failure ]
diff --git a/third_party/blink/web_tests/external/wpt/FileAPI/BlobURL/cross-partition.tentative.https.html.ini b/third_party/blink/web_tests/external/wpt/FileAPI/BlobURL/cross-partition.tentative.https.html.ini
index eb7eb82..cafce20 100644
--- a/third_party/blink/web_tests/external/wpt/FileAPI/BlobURL/cross-partition.tentative.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/FileAPI/BlobURL/cross-partition.tentative.https.html.ini
@@ -1,9 +1,12 @@
 [cross-partition.tentative.https.html]
   [Blob URL shouldn't be revocable from a cross-partition dedicated worker]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Blob URL shouldn't be revocable from a cross-partition iframe]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Blob URL shouldn't be revocable from a cross-partition shared worker]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fetch/corb/response_block.tentative.https.html.ini b/third_party/blink/web_tests/external/wpt/fetch/corb/response_block.tentative.https.html.ini
index 88568d4..1887ee1 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/corb/response_block.tentative.https.html.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/corb/response_block.tentative.https.html.ini
@@ -1,6 +1,7 @@
 [response_block.tentative.https.html]
   [ORB: Expect error response from <script> fetch.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [ORB: Expect error response from fetch().]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/fenced-frame.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/fenced-frame.tentative.https.window.js.ini
index 5f152ae..750e83d 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/private-network-access/fenced-frame.tentative.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fetch/private-network-access/fenced-frame.tentative.https.window.js.ini
@@ -1,13 +1,4 @@
 [fenced-frame.tentative.https.window.html]
-  [local to local: no preflight required.]
-    expected: FAIL
-
-  [local to private: no preflight required.]
-    expected: FAIL
-
-  [local to public: no preflight required.]
-    expected: FAIL
-
   [private to local: failed because fenced frames are incompatible with PNA.]
     expected: FAIL
 
@@ -20,12 +11,6 @@
   [private to local: missing PNA header.]
     expected: FAIL
 
-  [private to private: no preflight required.]
-    expected: FAIL
-
-  [private to public: no preflight required.]
-    expected: FAIL
-
   [public to local: failed because fenced frames are incompatible with PNA.]
     expected: FAIL
 
@@ -50,9 +35,6 @@
   [public to private: missing PNA header.]
     expected: FAIL
 
-  [public to public: no preflight required.]
-    expected: FAIL
-
   [treat-as-public-address to local (same-origin): fenced frame embedder initiated navigation has opaque origin.]
     expected: FAIL
 
@@ -68,9 +50,6 @@
   [treat-as-public-address to local: missing PNA header.]
     expected: FAIL
 
-  [treat-as-public-address to local: optional preflight]
-    expected: FAIL
-
   [treat-as-public-address to private: failed because fenced frames are incompatible with PNA.]
     expected: FAIL
 
@@ -82,6 +61,3 @@
 
   [treat-as-public-address to private: missing PNA header.]
     expected: FAIL
-
-  [treat-as-public-address to public: no preflight required.]
-    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/auction-config.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/auction-config.https.sub.window.js.ini
index b8fe518..614b3f2b 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/auction-config.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/auction-config.https.sub.window.js.ini
@@ -1,69 +1,92 @@
 [auction-config.https.sub.window.html]
   [auctionSignals is invalid as JSON]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [component auctions are not allowed with interestGroupBuyers]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [component auctions are not allowed within component auctions]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [decisionLogicUrl is cross-origin with seller]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [decisionLogicUrl is invalid]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [directFromSellerSignals has nonempty query]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [directFromSellerSignals is cross-origin with seller]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [directFromSellerSignals is invalid]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [interestGroupBuyer is invalid]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [interestGroupBuyer is not https]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [no buyers => no winners]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [only one interestGroupBuyer is invalid]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [only one interestGroupBuyer is not https]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [perBuyerExperimentGroupIds has invalid URL in a key]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [perBuyerGroupLimits has invalid URL in a key]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [perBuyerPrioritySignals has a value with a key with prefix "browserSignals"]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [perBuyerPrioritySignals has invalid URL in a key]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [perBuyerSignals has invalid URL in a key]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [perBuyerSignals value is invalid as JSON]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [seller is not an https URL]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [sellerSignals is invalid as JSON]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [trustedScoringSignalsUrl is cross-origin with seller]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [trustedScoringSignalsUrl is invalid]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/fetch-ad-auction-headers-insecure-context.tentative.http.html.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/fetch-ad-auction-headers-insecure-context.tentative.http.html.ini
index b1bc8a1a..dec9266 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/fetch-ad-auction-headers-insecure-context.tentative.http.html.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/fetch-ad-auction-headers-insecure-context.tentative.http.html.ini
@@ -1,3 +1,4 @@
 [fetch-ad-auction-headers-insecure-context.tentative.http.html]
   [test fetch(<url>, {adAuctionHeaders: true}) in insecure context]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/generate-bid-recency.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/generate-bid-recency.https.sub.window.js.ini
index 989f1f0..2cb624b4 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/generate-bid-recency.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/generate-bid-recency.https.sub.window.js.ini
@@ -1,3 +1,4 @@
 [generate-bid-recency.https.sub.window.html]
   [Check recency in generateBid() is below a certain threshold and rounded to multiple of 100 milliseconds.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/join-leave-ad-interest-group.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/join-leave-ad-interest-group.https.sub.window.js.ini
index d489c13..ed4e8ae4 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/join-leave-ad-interest-group.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/join-leave-ad-interest-group.https.sub.window.js.ini
@@ -1,267 +1,356 @@
 [join-leave-ad-interest-group.https.sub.window.html]
   [Interest group duration of -600.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Interest group duration.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Interest group test with overwritten duration of -600.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Interest group test with overwritten duration.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: Largest possible interest group dictionary]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: Oversized interest group dictionary]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":false,"interestGroup":null}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":false,"interestGroup":{"name":"default name"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":false,"interestGroup":{"owner":"http://web-platform.test:8444","name":"default name"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":false,"interestGroup":{"owner":"https://web-platform.test:8444"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":false,"interestGroup":{"owner":"wss://web-platform.test:8444","name":"default name"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":false,"interestGroup":{"owner":"www.web-platform.test","name":"default name"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":false,"interestGroup":{"owner":null,"name":"default name"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":false,"interestGroup":{}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":5}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":[{"1":[2,3\],"metadata":[{"a":"b"},"c"\]}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":[{}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":{}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":5}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":[{"1":[2,3\],"metadata":[{"a":"b"},"c"\]}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":[{}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":{}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingLogicUrl":"data:text/javascript,Foo"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingLogicUrl":"https://www.web-platform.test/foo.js"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingWasmHelperUrl":"data:application/wasm,Foo"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingWasmHelperUrl":"https://www.web-platform.test/foo.js"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","dailyUpdateUrl":"data:application/wasm,Foo"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","dailyUpdateUrl":"https://www.web-platform.test/foo.js"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","prioritySignalsOverrides":1}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","prioritySignalsOverrides":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","prioritySignalsOverrides":{"a":"apple"}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","priorityVector":1}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","priorityVector":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","priorityVector":{"a":"apple"}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","trustedBiddingSignalsKeys":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","trustedBiddingSignalsKeys":{}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","trustedBiddingSignalsUrl":"data:application/json,{}"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":false,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","trustedBiddingSignalsUrl":"https://www.web-platform.test/foo.js"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":""}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":[\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":[{"renderUrl":"https://somewhere.test/","metadata":null,"someOtherField":"foo"}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":[{"renderUrl":"https://somewhere.test/","metadata":null}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":[{"renderUrl":"https://somewhere.test/"},{"renderUrl":"https://elsewhere.test/"}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","adComponents":[{"renderUrl":"https://somewhere.test/"}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":[\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":[{"renderUrl":"https://somewhere.test/","metadata":null,"someOtherField":"foo"}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":[{"renderUrl":"https://somewhere.test/","metadata":null}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":[{"renderUrl":"https://somewhere.test/"},{"renderUrl":"https://somewhere-else.test/"}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","ads":[{"renderUrl":"https://somewhere.test/"}\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingLogicUrl":"https://web-platform.test:8444/foo.js"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingLogicUrl":"relative/path"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingLogicUrl":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingWasmHelperUrl":"https://web-platform.test:8444/foo.js"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingWasmHelperUrl":"relative/path"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","biddingWasmHelperUrl":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","dailyUpdateUrl":"https://web-platform.test:8444/foo.js"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","dailyUpdateUrl":"relative/path"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","dailyUpdateUrl":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","enableBiddingSignalsPrioritization":false}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","enableBiddingSignalsPrioritization":true}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","executionMode":"compatibility"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","executionMode":"groupByOrigin"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","executionMode":"unknownValuesAreValid"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","extra":false,"fields":{"do":"not"},"matter":"at","all":[3,4,5\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","priority":-1.5}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","priority":0}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","priority":1}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","prioritySignalsOverrides":{"a":1,"b":-4.5,"a.b":0}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","prioritySignalsOverrides":{"a":1}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","prioritySignalsOverrides":{}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","priorityVector":{"a":1,"b":-4.5,"a.b":0}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","priorityVector":{"a":1}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","priorityVector":{}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","trustedBiddingSignalsKeys":["a",4,"Foo"\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","trustedBiddingSignalsKeys":[\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","trustedBiddingSignalsUrl":"https://web-platform.test:8444/foo.js"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","trustedBiddingSignalsUrl":"relative/path"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","trustedBiddingSignalsUrl":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","userBiddingSignals":"foo"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","userBiddingSignals":15}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","userBiddingSignals":[5,"foo",[-6.4,{"a":"b"}\]\]}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","userBiddingSignals":null}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name","userBiddingSignals":{"a":[5,"foo",{"b":-6.4}\]}}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join and leave interest group: {"expectJoinSucces":true,"expectLeaveSucces":true,"interestGroup":{"owner":"https://web-platform.test:8444","name":"default name"}}]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Join same interest group overwrites old matching group.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Leave an interest group that was never joined.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Leaving interest group actually leaves interest group.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/no-winner.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/no-winner.https.sub.window.js.ini
index 5a9d0bb6..f9e9334 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/no-winner.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/no-winner.https.sub.window.js.ini
@@ -1,114 +1,152 @@
 [no-winner.https.sub.window.html]
   [Bidding logic script: error=bad-allow-fledge]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: error=close-connection]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: error=fledge-not-allowed]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: error=http-error]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: error=no-allow-fledge]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: error=no-body]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: error=no-content-type]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: error=no-generateBid]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: error=wrong-content-type]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=This does not compile]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=return "Foo";]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=return 5;]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=return interestGroup.ads[0\].renderUrl;]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=return {bid: 1, render: "https://not-in-ads-array.test/"};]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=return {bid: 1};]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=return {bid:-1, render: interestGroup.ads[0\].renderUrl};]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=return {bid:0, render: interestGroup.ads[0\].renderUrl};]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=return {render: interestGroup.ads[0\].renderUrl};]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=throw 1;]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Bidding logic script: generateBid=while(1);]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: error=bad-allow-fledge]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: error=close-connection]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: error=fledge-not-allowed]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: error=http-error]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: error=no-allow-fledge]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: error=no-body]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: error=no-content-type]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: error=no-scoreAd]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: error=wrong-content-type]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: scoreAd=This does not compile]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: scoreAd=return "Foo";]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: scoreAd=return -1;]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: scoreAd=return 0;]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: scoreAd=return {desirability: "Foo"};]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: scoreAd=return {desirability: -1};]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: scoreAd=return {desirability: 0};]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: scoreAd=throw 1;]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Decision logic script: scoreAd=while(1);]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/register-ad-beacon.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/register-ad-beacon.https.sub.window.js.ini
index 786171f..fc04a573 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/register-ad-beacon.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/register-ad-beacon.https.sub.window.js.ini
@@ -1,36 +1,48 @@
 [register-ad-beacon.https.sub.window.html]
   [Buyer calls registerAdBeacon() multiple times.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Buyer calls registerAdBeacon() with multiple beacons.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Buyer calls registerAdBeacon(), beacon sent with body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Buyer calls registerAdBeacon().]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Buyer calls registerAdBeacon(). reportEvent() called twice.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller and buyer call registerAdBeacon() with separate reportEvent() calls.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller and buyer call registerAdBeacon() with shared reportEvent() call.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller calls registerAdBeacon() multiple times.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller calls registerAdBeacon() with multiple beacons.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller calls registerAdBeacon(), beacon sent with body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller calls registerAdBeacon().]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller calls registerAdBeacon(). reportEvent() called twice.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/reporting-arguments.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/reporting-arguments.https.sub.window.js.ini
index e43b6d5..4e4bbddd 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/reporting-arguments.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/reporting-arguments.https.sub.window.js.ini
@@ -1,60 +1,80 @@
 [reporting-arguments.https.sub.window.html]
   [Seller passes array to bidder.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller passes number to bidder.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller passes object to bidder.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller passes string to bidder.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.bid test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.dataVersion test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.desirability test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.highestScoringOtherBid with no other interest groups test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.highestScoringOtherBid with other bids.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.highestScoringOtherBid with other groups that do not bid.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.interestGroupName test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.madeHighestScoringOtherBid with group that did not bid.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.madeHighestScoringOtherBid with no other bids.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.madeHighestScoringOtherBid with other bid.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.modifiedBid test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.renderUrl test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.seller test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.topLevelSeller and browserSignals.componentSeller test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.topLevelSellerSignals test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [browserSignals.topWindowHostname test.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/round-a-value.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/round-a-value.https.sub.window.js.ini
index e68fd1e..90235d7 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/round-a-value.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/round-a-value.https.sub.window.js.ini
@@ -1,6 +1,7 @@
 [round-a-value.https.sub.window.html]
   [Check adCost is stochastically rounded with 8 bit mantissa and exponent.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Check bid is stochastically rounded with 8 bit mantissa and exponent.]
     expected: FAIL
@@ -12,16 +13,21 @@
     expected: FAIL
 
   [Value is ignored as a non-valid floating-point number.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Value is rounded to -0 if value is greater than 0 and its exponent is less than -128.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Value is rounded to -Infinity if value is less than 0 and its exponent is greater than 127.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Value is rounded to 0 if value is greater than 0 and its exponent is less than -128.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Value is rounded to Infinity if value is greater than 0 and its exponent is greater than 127.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/send-report-to.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/send-report-to.https.sub.window.js.ini
index d3ca367..5946ba4 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/send-report-to.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/send-report-to.https.sub.window.js.ini
@@ -1,30 +1,40 @@
 [send-report-to.https.sub.window.html]
   [Bidder calls sendReportTo() twice, which throws an exception.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Both send reports, seller passes nothing to bidder.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Only bidder sends a report]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Only bidder sends a report, seller has no reportResult() method]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Only bidder sends a report, seller passes a message to bidder]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Only bidder sends a report, seller throws an exception]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Only seller sends a report]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Only seller sends a report, bidder has no reportWin() method]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Only seller sends a report, bidder throws an exception]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Seller calls sendReportTo() twice, which throws an exception.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/trusted-bidding-signals.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/trusted-bidding-signals.https.sub.window.js.ini
index 6c422a9..94f7717 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/trusted-bidding-signals.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/trusted-bidding-signals.https.sub.window.js.ini
@@ -1,138 +1,184 @@
 [trusted-bidding-signals.https.sub.window.html]
   [No trustedBiddingSignalsKeys or trustedBiddingSignalsUrl.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals receives empty interest group name.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals receives empty string key.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals receives escaped interest group name.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals receives escaped key.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals receives hostname field.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals receives interest group name.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals receives null key.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response does not allow fledge.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has Data-Version and no trustedBiddingSignalsKeys.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has Data-Version with leading 0.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has a number value for key.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has array value for key.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has decimal in Data-Version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has hex Data-Version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has key not in trustedBiddingSignalsKeys.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has max Data-Version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has min Data-Version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has multiple keys.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has negative Data-Version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has no Ad-Auction-Allowed header.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has no Data-Version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has no body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has no content-type.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has no keys object.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has no keys.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has null value for key.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has numeric Data-Version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has object value for key.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has space in Data-Version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has string value for key.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has too large Data-Version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has wrong Ad-Auction-Allowed header.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response has wrong content-type.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response in invalid JSON object.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response is HTTP 404 error.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response is a JSON array.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response is not JSON.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response keys is incorrectly an array.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response with Data-Version and JSON array body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response with Data-Version and double JSON object body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response with Data-Version and empty body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted bidding signals response with Data-Version and invalid keys entry]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [trustedBiddingSignalsKeys but no trustedBiddingSignalsUrl.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [trustedBiddingSignalsUrl closes the connection without sending anything.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [trustedBiddingSignalsUrl without trustedBiddingSignalsKeys.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/fledge/tentative/trusted-scoring-signals.https.sub.window.js.ini b/third_party/blink/web_tests/external/wpt/fledge/tentative/trusted-scoring-signals.https.sub.window.js.ini
index 23fcbe8..92561fa 100644
--- a/third_party/blink/web_tests/external/wpt/fledge/tentative/trusted-scoring-signals.https.sub.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/fledge/tentative/trusted-scoring-signals.https.sub.window.js.ini
@@ -1,174 +1,148 @@
 [trusted-scoring-signals.https.sub.window.html]
   [No trustedScoringSignalsUrl.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals closes the connection without sending anything.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals multiple renderURLs.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals receives hostname field.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response does not allow FLEDGE.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has a number value for renderURL.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has a string value for renderURL.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has an array value for renderURL.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has an object value for renderURL.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has data-version and JSON array body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has data-version and double JSON object body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has data-version and empty body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has data-version and no renderURLs.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has data-version with leading 0.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has decimal in Data-Version.]
     expected:
-      if (product == "content_shell") and (os == "mac") and (port == "mac13"): PASS
-      if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS
-      if product == "chrome": PASS
-      FAIL
-
-  [Trusted scoring signals response has decimal in data-version.]
-    expected: FAIL
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has hex Data-Version.]
     expected:
-      if (product == "content_shell") and (os == "mac") and (port == "mac13"): PASS
-      if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS
-      if product == "chrome": PASS
-      FAIL
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has max Data-Version.]
     expected:
-      if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS
-      if (product == "content_shell") and (os == "mac") and (port == "mac13"): PASS
-      if product == "chrome": PASS
-      FAIL
-
-  [Trusted scoring signals response has max data-version.]
-    expected: FAIL
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has min Data-Version.]
     expected:
-      if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS
-      if (product == "content_shell") and (os == "mac") and (port == "mac13"): PASS
-      if product == "chrome": PASS
-      FAIL
-
-  [Trusted scoring signals response has min data-version.]
-    expected: FAIL
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has negative Data-Version.]
     expected:
-      if (product == "content_shell") and (os == "mac") and (port == "mac13"): PASS
-      if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS
-      if product == "chrome": PASS
-      FAIL
-
-  [Trusted scoring signals response has negative data-version.]
-    expected: FAIL
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has no Ad-Auction-Allowed header.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has no Data-Version.]
     expected:
-      if (product == "content_shell") and (os == "mac") and (port == "mac13"): PASS
-      if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS
-      if product == "chrome": PASS
-      FAIL
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has no body.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has no content-type.]
-    expected: FAIL
-
-  [Trusted scoring signals response has no data-version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has no renderUrl object.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has no renderUrls.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has null value for renderURL.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has renderURL not in response.]
-    expected: FAIL
-
-  [Trusted scoring signals response has space hax data-version.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has space in Data-Version.]
     expected:
-      if (product == "content_shell") and (os == "mac") and (port == "mac13"): PASS
-      if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS
-      if product == "chrome": PASS
-      FAIL
-
-  [Trusted scoring signals response has space in data-version.]
-    expected: FAIL
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has too large Data-Version.]
     expected:
-      if (product == "content_shell") and (os == "mac") and (port == "mac13"): PASS
-      if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS
-      if product == "chrome": PASS
-      FAIL
-
-  [Trusted scoring signals response has too large data-version.]
-    expected: FAIL
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has valid Data-Version.]
     expected:
-      if (product == "content_shell") and (os == "mac") and (port == "mac13"): PASS
-      if (product == "content_shell") and (os == "win") and (port == "win10.20h2"): PASS
-      if product == "chrome": PASS
-      FAIL
-
-  [Trusted scoring signals response has valid data-version.]
-    expected: FAIL
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has wrong Ad-Auction-Allowed header.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response has wrong content-type.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response is HTTP 404 error.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response is a JSON array.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response is invalid JSON object.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals response is not JSON.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Trusted scoring signals with escaped renderURL.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/fenced-frame-bypass.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/fenced-frame-bypass.tentative.https.window.js.ini
index bda4de0..99afa88 100644
--- a/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/fenced-frame-bypass.tentative.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/fenced-frame-bypass.tentative.https.window.js.ini
@@ -1,2 +1,5 @@
 [fenced-frame-bypass.tentative.https.window.html]
-  expected: ERROR
+  expected:
+    if product == "chrome": ERROR
+  [fenced-frame-bypass]
+    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/fenced-frame.tentative.https.window.js.ini b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/fenced-frame.tentative.https.window.js.ini
index 8ec2906..4e6ac14 100644
--- a/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/fenced-frame.tentative.https.window.js.ini
+++ b/third_party/blink/web_tests/external/wpt/html/anonymous-iframe/fenced-frame.tentative.https.window.js.ini
@@ -1,2 +1,5 @@
 [fenced-frame.tentative.https.window.html]
-  expected: ERROR
+  expected:
+    if product == "chrome": ERROR
+  [FencedFrame within a credentialless iframe is not credentialless]
+    expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini
index 7fcef55..b6d703e 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini
@@ -3,7 +3,8 @@
     expected: FAIL
 
   [Stylesheet loading using <link> with wrong Content-Type, cross-origin, and nosniff]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Stylesheet loading using <link> with wrong Content-Type, same-origin, and no nosniff]
     expected: FAIL
@@ -12,7 +13,8 @@
     expected: FAIL
 
   [Stylesheet loading using @import with wrong Content-Type, cross-origin, and nosniff]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Stylesheet loading using @import with wrong Content-Type, same-origin, and no nosniff]
     expected: FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks.html.ini
index 4851fe7..fb36a56 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks.html.ini
@@ -3,10 +3,12 @@
     expected: FAIL
 
   [Stylesheet loading using <link> with wrong Content-Type, cross-origin, and nosniff]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Stylesheet loading using @import with wrong Content-Type, cross-origin, and no nosniff]
     expected: FAIL
 
   [Stylesheet loading using @import with wrong Content-Type, cross-origin, and nosniff]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-quirks.html.ini b/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-quirks.html.ini
index 6dfb591..9a24e11 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-quirks.html.ini
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/document-metadata/the-link-element/link-style-error-quirks.html.ini
@@ -3,10 +3,12 @@
     expected: FAIL
 
   [Stylesheet loading using <link> with wrong Content-Type, cross-origin, and nosniff]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
 
   [Stylesheet loading using @import with wrong Content-Type, cross-origin, and no nosniff]
     expected: FAIL
 
   [Stylesheet loading using @import with wrong Content-Type, cross-origin, and nosniff]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image-gif.tentative.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image-gif.tentative.html.ini
index b73f4f1..8eb91f3d 100644
--- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image-gif.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image-gif.tentative.html.ini
@@ -1,3 +1,4 @@
 [observe-animated-image-gif.tentative.html]
   [Same origin animated image is observable and has a first frame.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image-webp.tentative.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image-webp.tentative.html.ini
index b851244..6f27f2d 100644
--- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image-webp.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image-webp.tentative.html.ini
@@ -1,3 +1,5 @@
 [observe-animated-image-webp.tentative.html]
   [Same origin animated image is observable and has a first frame.]
-    expected: FAIL
+    expected:
+      if (product == "content_shell") and (os == "win") and (port == "win11"): FAIL
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image.tentative.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image.tentative.html.ini
index 6354864..a302f80 100644
--- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-animated-image.tentative.html.ini
@@ -1,3 +1,5 @@
 [observe-animated-image.tentative.html]
   [Same origin animated image is observable and has a first frame.]
-    expected: FAIL
+    expected:
+      if (product == "content_shell") and (os == "mac") and (port == "mac10.15"): FAIL
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-cross-origin-tao-animated-image.tentative.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-cross-origin-tao-animated-image.tentative.html.ini
index 80563bc7..bf899e5 100644
--- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-cross-origin-tao-animated-image.tentative.html.ini
+++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/animated/observe-cross-origin-tao-animated-image.tentative.html.ini
@@ -1,3 +1,4 @@
 [observe-cross-origin-tao-animated-image.tentative.html]
   [Same origin animated image is observable and has a first frame.]
-    expected: FAIL
+    expected:
+      if product == "chrome": FAIL
diff --git a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/video-data-uri.html.ini b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/video-data-uri.html.ini
index 255a79f..7a57000 100644
--- a/third_party/blink/web_tests/external/wpt/largest-contentful-paint/video-data-uri.html.ini
+++ b/third_party/blink/web_tests/external/wpt/largest-contentful-paint/video-data-uri.html.ini
@@ -1,4 +1,6 @@
 [video-data-uri.html]
-  expected: TIMEOUT
+  expected:
+    if product == "chrome": TIMEOUT
   [Video of data URI src should trigger an LCP entry to be emitted.]
-    expected: TIMEOUT
+    expected:
+      if product == "chrome": TIMEOUT
diff --git a/third_party/jni_zero/README.md b/third_party/jni_zero/README.md
index 01b0741..9647e2e 100644
--- a/third_party/jni_zero/README.md
+++ b/third_party/jni_zero/README.md
@@ -48,7 +48,7 @@
 ### Calling Java -> Native
 
 - Declare methods using a nested interface annotated with `@NativeMethods`.
-- The JNI annotation processor generates a class named `${OriginalClassName}Jni`
+- The `generate_jni` rule generates a class named `${OriginalClassName}Jni`
   with a `get()` method that returns an implementation of the annotated
   interface. The C++ function that it routes to is the same as if it would be
   in the legacy method.
@@ -60,10 +60,14 @@
 
 To add JNI to a class:
 
-1. Enable the JNI processor by adding to your `android_library` target:
+1. Find or add a `generate_jni` target with your .java file, then add this
+   `generate_jni` target to your `srcjar_deps` of your `android_library` target:
    ```python
-   annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
-   deps = [ "//base:jni_java" ]
+   generate_jni("abcd_jni")
+   ...
+   android_library("abcd_java") {
+   ...
+     srcjar_deps = [ ":abcd_jni" ]
    ```
 2. Create a nested-interface annotated with `@NativeMethods` that contains
    the declaration of the corresponding static methods you wish to have
@@ -98,7 +102,7 @@
   }
 
   void callNatives() {
-    // MyClassJni is generated by the JNI annotation processor.
+    // MyClassJni is generated by the generate_jni rule.
     // Storing MyClassJni.get() in a field defeats some of the desired R8
     // optimizations, but local variables are fine.
     Natives jni = MyClassJni.get();
@@ -274,4 +278,4 @@
 ## Changing `jni_generator`
 
  * Python tests live in `integration_tests.py`
- * A working demo app exists as `//base/android/jni_generator:sample_jni_apk`
+ * A working demo app exists as `//third_party/jni_zero/samples:sample_jni_apk`
diff --git a/third_party/win_build_output/README.chromium b/third_party/win_build_output/README.chromium
index 49979fb..1ef779e 100644
--- a/third_party/win_build_output/README.chromium
+++ b/third_party/win_build_output/README.chromium
@@ -1,4 +1,5 @@
 Name: Checked in build outputs generated on Windows.
+URL: -
 Version: -
 Revision: -
 License: BSD 3-clause
diff --git a/third_party/zlib/contrib/minizip/README.chromium b/third_party/zlib/contrib/minizip/README.chromium
index c6d4d7c..9c780f9 100644
--- a/third_party/zlib/contrib/minizip/README.chromium
+++ b/third_party/zlib/contrib/minizip/README.chromium
@@ -16,5 +16,5 @@
   https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT section 4.6.9.
   (see crrev.com/1002476)
 
-- Check for overly long filename or comment in zipOpenNewFileInZip4_64
-  (crbug.com/1470539).
+- Check for overly long filename, comment, or extra field in
+  zipOpenNewFileInZip4_64 (crbug.com/1470539).
diff --git a/third_party/zlib/contrib/minizip/zip.c b/third_party/zlib/contrib/minizip/zip.c
index 313b80945..f21d4954 100644
--- a/third_party/zlib/contrib/minizip/zip.c
+++ b/third_party/zlib/contrib/minizip/zip.c
@@ -1088,6 +1088,11 @@
         return ZIP_PARAMERROR;
     if ((comment!=NULL) && (strlen(comment)>0xffff))
         return ZIP_PARAMERROR;
+    // The extra field length must fit in 16 bits. If the member also requires
+    // a Zip64 extra block, that will also need to fit within that 16-bit
+    // length, but that will be checked for later.
+    if ((size_extrafield_local>0xffff) || (size_extrafield_global>0xffff))
+        return ZIP_PARAMERROR;
 
     zi = (zip64_internal*)file;
 
diff --git a/third_party/zlib/contrib/tests/utils_unittest.cc b/third_party/zlib/contrib/tests/utils_unittest.cc
index a09cd63..7270d0af 100644
--- a/third_party/zlib/contrib/tests/utils_unittest.cc
+++ b/third_party/zlib/contrib/tests/utils_unittest.cc
@@ -1084,3 +1084,57 @@
   EXPECT_EQ(unzGoToNextFile(uzf), UNZ_END_OF_LIST_OF_FILE);
   EXPECT_EQ(unzClose(uzf), UNZ_OK);
 }
+
+TEST(ZlibTest, ZipExtraFieldSize) {
+  // Check that minizip rejects zip members with too large extra fields.
+
+  std::string extra_field;
+  extra_field.append("\x12\x34");  // Header ID.
+  extra_field.append("\xfb\xff");  // Data size (not including the header).
+  extra_field.append(UINT16_MAX - 4, 'a');
+
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  base::FilePath zip_file = temp_dir.GetPath().AppendASCII("extrafield.zip");
+
+  zipFile zf = zipOpen(zip_file.AsUTF8Unsafe().c_str(), APPEND_STATUS_CREATE);
+  ASSERT_NE(zf, nullptr);
+
+  // Adding a member with 2^16 byte extra field should work.
+  EXPECT_EQ(zipOpenNewFileInZip(zf, "a", nullptr, extra_field.data(),
+                                extra_field.size(), extra_field.data(),
+                                extra_field.size(), nullptr, Z_DEFLATED,
+                                Z_DEFAULT_COMPRESSION),
+            ZIP_OK);
+  EXPECT_EQ(zipWriteInFileInZip(zf, "1", 1), ZIP_OK);
+  EXPECT_EQ(zipCloseFileInZip(zf), ZIP_OK);
+
+  // More then 2^16 bytes doesn't work. Neither for size_extrafield_local, nor
+  // size_extrafield_global.
+  std::string extra_field_long = extra_field + 'x';
+  EXPECT_EQ(
+      zipOpenNewFileInZip(zf, "b", nullptr, nullptr, 0, extra_field_long.data(),
+                          extra_field_long.size(), nullptr, Z_DEFLATED,
+                          Z_DEFAULT_COMPRESSION),
+      ZIP_PARAMERROR);
+  EXPECT_EQ(zipOpenNewFileInZip(zf, "b", nullptr, extra_field_long.data(),
+                                extra_field_long.size(), nullptr, 0, nullptr,
+                                Z_DEFLATED, Z_DEFAULT_COMPRESSION),
+            ZIP_PARAMERROR);
+
+  EXPECT_EQ(zipClose(zf, nullptr), ZIP_OK);
+
+  // Check that the data can be read back.
+  unzFile uzf = unzOpen(zip_file.AsUTF8Unsafe().c_str());
+  ASSERT_NE(uzf, nullptr);
+  char buf[UINT16_MAX + 1] = {0};
+
+  ASSERT_EQ(unzGoToFirstFile(uzf), UNZ_OK);
+  ASSERT_EQ(unzGetCurrentFileInfo(uzf, nullptr, nullptr, 0, buf,
+                                  sizeof(buf) - 1, nullptr, 0),
+            UNZ_OK);
+  EXPECT_EQ(std::string(buf), extra_field);
+
+  EXPECT_EQ(unzGoToNextFile(uzf), UNZ_END_OF_LIST_OF_FILE);
+  EXPECT_EQ(unzClose(uzf), UNZ_OK);
+}
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 3fcf7801..364f08a 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -35242,6 +35242,7 @@
       label="ACCESSIBILITY_PRIVATE_ON_SELECT_TO_SPEAK_CONTEXT_MENU_CLICKED"/>
   <int value="535" label="DESK_EVENTS_ON_DESK_REMOVAL_UNDONE"/>
   <int value="536" label="READING_LIST_ON_ENTRY_ADDED"/>
+  <int value="537" label="OS_DIAGNOSTICS_ON_ROUTINE_INITIALIZED"/>
 </enum>
 
 <enum name="ExtensionFileWriteResult">
@@ -43496,6 +43497,9 @@
   <int value="4620" label="ORBBlockWithOnLoadButWithoutOnErrorEventHandler"/>
   <int value="4621" label="ORBBlockWithOnLoadAndOnErrorEventHandler"/>
   <int value="4622" label="ORBBlockWithAnyEventHandler"/>
+  <int value="4623" label="V8RTCEncodedVideoFrame_SetMetadata_Method"/>
+  <int value="4624" label="V8RTCEncodedVideoFrame_SetTimestamp_Method"/>
+  <int value="4625" label="V8RTCEncodedAudioFrame_SetTimestamp_Method"/>
 </enum>
 
 <enum name="FeaturePolicyAllowlistType">
@@ -60839,7 +60843,6 @@
   <int value="-1557527869" label="LoadingWithMojo:disabled"/>
   <int value="-1556805396" label="ScreenshotsForAndroidV2:enabled"/>
   <int value="-1555616901" label="ShoppingListTrackByDefault:disabled"/>
-  <int value="-1555510175" label="PasswordImport:enabled"/>
   <int value="-1555375841" label="FedCmRpContext:enabled"/>
   <int value="-1554921134"
       label="OmniboxRemoveSuggestionHeaderChevron:disabled"/>
@@ -64657,7 +64660,6 @@
   <int value="366524741"
       label="ArcTrackpadScrollTouchscreenEmulation:disabled"/>
   <int value="366860338" label="InternalServerSideSpeechRecognition:enabled"/>
-  <int value="367063319" label="PasswordImport:disabled"/>
   <int value="368224960" label="FedCmRpContext:disabled"/>
   <int value="368854020" label="ash-screen-rotation-animation"/>
   <int value="369301993" label="PrinterStatus:enabled"/>
@@ -66324,7 +66326,6 @@
   <int value="1228115769" label="SiteCharacteristicsDatabase:disabled"/>
   <int value="1229299518" label="SingleTabMode:disabled"/>
   <int value="1229388323" label="AutofillEnableGoogleIssuedCard:disabled"/>
-  <int value="1229574191" label="PasswordsImportM2:enabled"/>
   <int value="1230018793" label="enable-dom-distiller"/>
   <int value="1230555479"
       label="AutofillEnableUnmaskCardRequestSetInstrumentId:disabled"/>
@@ -67612,7 +67613,6 @@
   <int value="1865068568" label="disable-audio-support-for-desktop-share"/>
   <int value="1865211159" label="ShelfStackedHotseat:disabled"/>
   <int value="1865799183" label="javascript-harmony"/>
-  <int value="1865908358" label="PasswordsImportM2:disabled"/>
   <int value="1865963858" label="tls13-variant"/>
   <int value="1866079109" label="team-drives"/>
   <int value="1866280482" label="SearchHistoryLink:disabled"/>
diff --git a/tools/metrics/histograms/metadata/accessibility/histograms.xml b/tools/metrics/histograms/metadata/accessibility/histograms.xml
index 1111bc7..57c035b 100644
--- a/tools/metrics/histograms/metadata/accessibility/histograms.xml
+++ b/tools/metrics/histograms/metadata/accessibility/histograms.xml
@@ -2422,6 +2422,9 @@
 
 <histogram name="DomDistiller.Time.ActivelyViewingArticleBeforeDistilling"
     units="ms" expires_after="2021-08-19">
+  <obsolete>
+    Removed in M118.
+  </obsolete>
   <owner>katie@chromium.org</owner>
   <owner>chrome-a11y-core@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/storage/histograms.xml b/tools/metrics/histograms/metadata/storage/histograms.xml
index 84d2d68..c7485ff 100644
--- a/tools/metrics/histograms/metadata/storage/histograms.xml
+++ b/tools/metrics/histograms/metadata/storage/histograms.xml
@@ -400,49 +400,6 @@
   </summary>
 </histogram>
 
-<histogram name="Storage.FileSystemAccess.PersistedPermissions.Age.{Type}"
-    units="ms" expires_after="2024-05-01">
-  <owner>asully@chromium.org</owner>
-  <owner>src/content/browser/file_system_access/OWNERS</owner>
-  <summary>
-    Age of a persisted permission when attempting to auto-grant via this
-    permission.
-  </summary>
-  <token key="Type">
-    <variant name="NonPWA" summary="Origins which are not installed PWAs"/>
-    <variant name="PWA" summary="Origins with installed PWAs"/>
-  </token>
-</histogram>
-
-<histogram name="Storage.FileSystemAccess.PersistedPermissions.Count"
-    units="paths" expires_after="2024-05-01">
-  <owner>asully@chromium.org</owner>
-  <owner>src/content/browser/file_system_access/OWNERS</owner>
-  <summary>
-    Number of paths with permissions being persisted via the File System Access
-    API. This is recorded shortly after instantiation of a new
-    ChromeFileSystemAccessPermissionContext, as well as sampled periodically via
-    a RepeatingTimer every 3 hours. See
-    ChromeFileSystemAccessPermissionContext::UpdatePersistedPermissions() and
-    its call sites for details.
-  </summary>
-</histogram>
-
-<histogram
-    name="Storage.FileSystemAccess.PersistedPermissions.SweepTime.{Type}"
-    units="ms" expires_after="2024-05-01">
-  <owner>asully@chromium.org</owner>
-  <owner>src/content/browser/file_system_access/OWNERS</owner>
-  <summary>
-    Time taken to sweep persisted permissions to automatically renew permissions
-    with active grants or revoke permissions which have expired.
-  </summary>
-  <token key="Type">
-    <variant name="All" summary="Update all persisted permissions"/>
-    <variant name="Origin" summary="Update one origin's persisted permissions"/>
-  </token>
-</histogram>
-
 <histogram
     name="Storage.FileSystemAccess.{OpType}PermissionRequestOutcome.{EntryType}"
     enum="FileSystemAccessPermissionRequestOutcome" expires_after="2024-05-01">
diff --git a/tools/perf/core/benchmark_runner.py b/tools/perf/core/benchmark_runner.py
index e38a002..1809cd9 100644
--- a/tools/perf/core/benchmark_runner.py
+++ b/tools/perf/core/benchmark_runner.py
@@ -26,7 +26,7 @@
   # Mac perf testers have a different behaviour when this environment var is
   # set i.e. Chrome is started using 'open' command. See crbug/1454294
   if platform.system() == 'Darwin':
-    os.environ["START_BROWSER_WITH_DEFAULT_PRIORITY"] = True
+    os.environ['START_BROWSER_WITH_DEFAULT_PRIORITY'] = '1'
 
   run_return_code = command_line.RunCommand(options)
   process_return_code = results_processor.ProcessResults(options)
diff --git a/tools/typescript/validate_tsconfig.py b/tools/typescript/validate_tsconfig.py
index f0726b1..ac04871 100644
--- a/tools/typescript/validate_tsconfig.py
+++ b/tools/typescript/validate_tsconfig.py
@@ -128,6 +128,7 @@
       'chrome/browser/resources/ntp4',
       'chrome/test/data/webui',
       'chrome/test/data/webui/chromeos',
+      'chrome/test/data/webui/cr_components/chromeos',
       'chrome/test/data/webui/settings/chromeos',
       # TODO(https://crbug.com/1002798): Migrate Mojo bindings to TypeScript and
       # remove exception.
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index 121d8798..cda1666e0 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -316,6 +316,8 @@
       "cocoa/command_dispatcher.mm",
       "cocoa/constrained_window/constrained_window_animation.h",
       "cocoa/constrained_window/constrained_window_animation.mm",
+      "cocoa/cursor_accessibility_scale_factor_observer.h",
+      "cocoa/cursor_accessibility_scale_factor_observer.mm",
       "cocoa/cursor_utils.h",
       "cocoa/cursor_utils.mm",
       "cocoa/defaults_utils.h",
diff --git a/ui/base/cocoa/cursor_accessibility_scale_factor_observer.h b/ui/base/cocoa/cursor_accessibility_scale_factor_observer.h
new file mode 100644
index 0000000..5b72ebe
--- /dev/null
+++ b/ui/base/cocoa/cursor_accessibility_scale_factor_observer.h
@@ -0,0 +1,19 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_BASE_COCOA_CURSOR_ACCESSIBILITY_SCALE_FACTOR_OBSERVER_H_
+#define UI_BASE_COCOA_CURSOR_ACCESSIBILITY_SCALE_FACTOR_OBSERVER_H_
+
+#import <Foundation/Foundation.h>
+
+#include "base/component_export.h"
+
+// An observer for macOS's accessibility pointer size user preference.
+COMPONENT_EXPORT(UI_BASE)
+@interface CursorAccessibilityScaleFactorObserver : NSObject
+// `handler` is invoked when the user preference changes.
+- (instancetype)initWithHandler:(void (^)())handler;
+@end
+
+#endif  // UI_BASE_COCOA_CURSOR_ACCESSIBILITY_SCALE_FACTOR_OBSERVER_H_
diff --git a/ui/base/cocoa/cursor_accessibility_scale_factor_observer.mm b/ui/base/cocoa/cursor_accessibility_scale_factor_observer.mm
new file mode 100644
index 0000000..dbf50ef
--- /dev/null
+++ b/ui/base/cocoa/cursor_accessibility_scale_factor_observer.mm
@@ -0,0 +1,36 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/base/cocoa/cursor_accessibility_scale_factor_observer.h"
+
+@implementation CursorAccessibilityScaleFactorObserver {
+  void (^_handler)() __strong;
+  NSUserDefaults* __strong _defaults;
+}
+
+- (instancetype)initWithHandler:(void (^)())handler {
+  self = [super init];
+  if (self) {
+    _handler = handler;
+    _defaults =
+        [[NSUserDefaults alloc] initWithSuiteName:@"com.apple.universalaccess"];
+    [_defaults addObserver:self
+                forKeyPath:@"mouseDriverCursorSize"
+                   options:0
+                   context:nullptr];
+  }
+  return self;
+}
+
+- (void)dealloc {
+  [_defaults removeObserver:self forKeyPath:@"mouseDriverCursorSize"];
+}
+
+- (void)observeValueForKeyPath:(NSString*)keyPath
+                      ofObject:(id)object
+                        change:(NSDictionary*)change
+                       context:(void*)context {
+  _handler();
+}
+@end
diff --git a/ui/base/cocoa/cursor_utils.h b/ui/base/cocoa/cursor_utils.h
index eabafcf..f241f10 100644
--- a/ui/base/cocoa/cursor_utils.h
+++ b/ui/base/cocoa/cursor_utils.h
@@ -5,16 +5,27 @@
 #ifndef UI_BASE_COCOA_CURSOR_UTILS_H_
 #define UI_BASE_COCOA_CURSOR_UTILS_H_
 
-#import <AppKit/AppKit.h>
-
 #include "base/component_export.h"
 
+#ifdef __OBJC__
+@class NSCursor;
+#endif  // __OBJC__
+
 namespace ui {
 
 class Cursor;
 
+#ifdef __OBJC__
 COMPONENT_EXPORT(UI_BASE)
 NSCursor* GetNativeCursor(const ui::Cursor& cursor);
+#endif  // __OBJC__
+
+// Returns macOS's accessibility pointer size user preference. The OS renders
+// larger Chrome and web content cursors using this scale factor (1.0 - 4.0).
+// Note: Renderers and other sandboxed processes get stale NSDefault values.
+// This returns a cached value unless `force_update` is true.
+COMPONENT_EXPORT(UI_BASE)
+float GetCursorAccessibilityScaleFactor(bool force_update = false);
 
 }  // namespace ui
 
diff --git a/ui/base/cocoa/cursor_utils.mm b/ui/base/cocoa/cursor_utils.mm
index 9fb639d..1c2d8c2 100644
--- a/ui/base/cocoa/cursor_utils.mm
+++ b/ui/base/cocoa/cursor_utils.mm
@@ -7,6 +7,8 @@
 #import <AppKit/AppKit.h>
 #include <stdint.h>
 
+#include <algorithm>
+
 #include "base/check.h"
 #include "base/mac/mac_util.h"
 #include "base/mac/scoped_cftyperef.h"
@@ -271,4 +273,16 @@
   return nil;
 }
 
+float GetCursorAccessibilityScaleFactor(bool force_update) {
+  static absl::optional<float> scale;
+  if (!scale.has_value() || force_update) {
+    NSUserDefaults* defaults =
+        [[NSUserDefaults alloc] initWithSuiteName:@"com.apple.universalaccess"];
+    // This may be 0 in tests, but the expected production range is [1.0, 4.0].
+    scale =
+        std::clamp([defaults floatForKey:@"mouseDriverCursorSize"], 1.f, 4.f);
+  }
+  return scale.value();
+}
+
 }  // namespace ui
diff --git a/ui/gfx/render_text.h b/ui/gfx/render_text.h
index 3c78525..678bc9cb 100644
--- a/ui/gfx/render_text.h
+++ b/ui/gfx/render_text.h
@@ -949,7 +949,7 @@
   // BreakList positions are stored with text indices, not display indices.
   // TODO(msw): Expand to support cursor, selection, background, etc. colors.
   BreakList<SkColor> colors_{kPlaceholderColor};
-  BreakList<BaselineStyle> baselines_{NORMAL_BASELINE};
+  BreakList<BaselineStyle> baselines_{BaselineStyle::kNormalBaseline};
   BreakList<int> font_size_overrides_{0};
   BreakList<Font::Weight> weights_{Font::Weight::NORMAL};
   internal::StyleArray styles_;
diff --git a/ui/gfx/render_text_harfbuzz.cc b/ui/gfx/render_text_harfbuzz.cc
index 058f26b..c559cca 100644
--- a/ui/gfx/render_text_harfbuzz.cc
+++ b/ui/gfx/render_text_harfbuzz.cc
@@ -899,23 +899,23 @@
   if (font_size == 0)
     font_size = font.GetFontSize();
   baseline_offset = 0;
-  if (baseline_type != NORMAL_BASELINE) {
+  if (baseline_type != BaselineStyle::kNormalBaseline) {
     // Calculate a slightly smaller font. The ratio here is somewhat arbitrary.
     // Proportions from 5/9 to 5/7 all look pretty good.
     const float ratio = 5.0f / 9.0f;
     font_size = base::ClampRound(font.GetFontSize() * ratio);
     switch (baseline_type) {
-      case SUPERSCRIPT:
+      case BaselineStyle::kSuperscript:
         baseline_offset = font.GetCapHeight() - font.GetHeight();
         break;
-      case SUPERIOR:
+      case BaselineStyle::kSuperior:
         baseline_offset =
             base::ClampRound(font.GetCapHeight() * ratio) - font.GetCapHeight();
         break;
-      case SUBSCRIPT:
+      case BaselineStyle::kSubscript:
         baseline_offset = font.GetHeight() - font.GetBaseline();
         break;
-      case INFERIOR:  // Fall through.
+      case BaselineStyle::kInferior:  // Fall through.
       default:
         break;
     }
diff --git a/ui/gfx/render_text_harfbuzz.h b/ui/gfx/render_text_harfbuzz.h
index ba983b3..0b207d6 100644
--- a/ui/gfx/render_text_harfbuzz.h
+++ b/ui/gfx/render_text_harfbuzz.h
@@ -106,7 +106,7 @@
     Font::Weight weight = Font::Weight::NORMAL;
     int font_size = 0;
     int baseline_offset = 0;
-    int baseline_type = 0;
+    BaselineStyle baseline_type = BaselineStyle::kNormalBaseline;
     bool italic = false;
     bool strike = false;
     bool underline = false;
diff --git a/ui/gfx/render_text_unittest.cc b/ui/gfx/render_text_unittest.cc
index 4a234b6..4edfbf3 100644
--- a/ui/gfx/render_text_unittest.cc
+++ b/ui/gfx/render_text_unittest.cc
@@ -678,7 +678,8 @@
   const char16_t* const cases[] = {kWeak, kLtr, u"Hello", kRtl, u"", u""};
   for (size_t i = 0; i < std::size(cases); ++i) {
     EXPECT_TRUE(test_api()->colors().EqualsValueForTesting(kPlaceholderColor));
-    EXPECT_TRUE(test_api()->baselines().EqualsValueForTesting(NORMAL_BASELINE));
+    EXPECT_TRUE(test_api()->baselines().EqualsValueForTesting(
+        BaselineStyle::kNormalBaseline));
     EXPECT_TRUE(test_api()->font_size_overrides().EqualsValueForTesting(0));
     for (size_t style = 0; style < static_cast<int>(TEXT_STYLE_COUNT); ++style)
       EXPECT_TRUE(test_api()->styles()[style].EqualsValueForTesting(false));
@@ -691,13 +692,14 @@
   RenderText* render_text = GetRenderText();
   const SkColor color = SK_ColorGREEN;
   render_text->SetColor(color);
-  render_text->SetBaselineStyle(SUPERSCRIPT);
+  render_text->SetBaselineStyle(BaselineStyle::kSuperscript);
   render_text->SetWeight(Font::Weight::BOLD);
   render_text->SetStyle(TEXT_STYLE_UNDERLINE, false);
   const char16_t* const cases[] = {kWeak, kLtr, u"Hello", kRtl, u"", u""};
   for (size_t i = 0; i < std::size(cases); ++i) {
     EXPECT_TRUE(test_api()->colors().EqualsValueForTesting(color));
-    EXPECT_TRUE(test_api()->baselines().EqualsValueForTesting(SUPERSCRIPT));
+    EXPECT_TRUE(test_api()->baselines().EqualsValueForTesting(
+        BaselineStyle::kSuperscript));
     EXPECT_TRUE(
         test_api()->weights().EqualsValueForTesting(Font::Weight::BOLD));
     EXPECT_TRUE(
@@ -722,7 +724,7 @@
 
   // Apply a ranged color and style and check the resulting breaks.
   render_text->ApplyColor(SK_ColorGREEN, Range(1, 4));
-  render_text->ApplyBaselineStyle(SUPERIOR, Range(2, 4));
+  render_text->ApplyBaselineStyle(BaselineStyle::kSuperior, Range(2, 4));
   render_text->ApplyWeight(Font::Weight::BOLD, Range(2, 5));
   render_text->ApplyFontSizeOverride(kTestFontSizeOverride, Range(5, 7));
 
@@ -730,7 +732,9 @@
       {{0, kPlaceholderColor}, {1, SK_ColorGREEN}, {4, kPlaceholderColor}}));
 
   EXPECT_TRUE(test_api()->baselines().EqualsForTesting(
-      {{0, NORMAL_BASELINE}, {2, SUPERIOR}, {4, NORMAL_BASELINE}}));
+      {{0, BaselineStyle::kNormalBaseline},
+       {2, BaselineStyle::kSuperior},
+       {4, BaselineStyle::kNormalBaseline}}));
 
   EXPECT_TRUE(test_api()->font_size_overrides().EqualsForTesting(
       {{0, 0}, {5, kTestFontSizeOverride}, {7, 0}}));
@@ -743,8 +747,9 @@
   // Ensure that setting a value overrides the ranged values.
   render_text->SetColor(SK_ColorBLUE);
   EXPECT_TRUE(test_api()->colors().EqualsValueForTesting(SK_ColorBLUE));
-  render_text->SetBaselineStyle(SUBSCRIPT);
-  EXPECT_TRUE(test_api()->baselines().EqualsValueForTesting(SUBSCRIPT));
+  render_text->SetBaselineStyle(BaselineStyle::kSubscript);
+  EXPECT_TRUE(
+      test_api()->baselines().EqualsValueForTesting(BaselineStyle::kSubscript));
   render_text->SetWeight(Font::Weight::NORMAL);
   EXPECT_TRUE(
       test_api()->weights().EqualsValueForTesting(Font::Weight::NORMAL));
@@ -753,11 +758,13 @@
   // should be used instead of the text length for the range end)
   const size_t text_length = render_text->text().length();
   render_text->ApplyColor(SK_ColorGREEN, Range(0, text_length));
-  render_text->ApplyBaselineStyle(SUPERIOR, Range(0, text_length));
+  render_text->ApplyBaselineStyle(BaselineStyle::kSuperior,
+                                  Range(0, text_length));
   render_text->ApplyWeight(Font::Weight::BOLD, Range(2, text_length));
 
   EXPECT_TRUE(test_api()->colors().EqualsForTesting({{0, SK_ColorGREEN}}));
-  EXPECT_TRUE(test_api()->baselines().EqualsForTesting({{0, SUPERIOR}}));
+  EXPECT_TRUE(test_api()->baselines().EqualsForTesting(
+      {{0, BaselineStyle::kSuperior}}));
   EXPECT_TRUE(test_api()->weights().EqualsForTesting(
       {{0, Font::Weight::NORMAL}, {2, Font::Weight::BOLD}}));
 
@@ -988,7 +995,7 @@
   // Setup basic functionality.
   render_text->SetText(u"abcd");
   render_text->ApplyColor(SK_ColorGREEN, Range(0, 1));
-  render_text->ApplyBaselineStyle(SUPERSCRIPT, Range(1, 2));
+  render_text->ApplyBaselineStyle(BaselineStyle::kSuperscript, Range(1, 2));
   render_text->ApplyStyle(TEXT_STYLE_UNDERLINE, true, Range(2, 3));
   render_text->ApplyFontSizeOverride(20, Range(3, 4));
   // Verify basic functionality.
@@ -996,7 +1003,9 @@
       {0, SK_ColorGREEN}, {1, kPlaceholderColor}};
   EXPECT_TRUE(test_api()->colors().EqualsForTesting(expected_color));
   const std::vector<std::pair<size_t, BaselineStyle>> expected_baseline = {
-      {0, NORMAL_BASELINE}, {1, SUPERSCRIPT}, {2, NORMAL_BASELINE}};
+      {0, BaselineStyle::kNormalBaseline},
+      {1, BaselineStyle::kSuperscript},
+      {2, BaselineStyle::kNormalBaseline}};
   EXPECT_TRUE(test_api()->baselines().EqualsForTesting(expected_baseline));
   const std::vector<std::pair<size_t, bool>> expected_style = {
       {0, false}, {2, true}, {3, false}};
@@ -7434,10 +7443,10 @@
   for (auto* string : kTestStrings) {
     paint_canvas.clear(SkColors::kWhite);
     render_text->SetText(base::UTF8ToUTF16(string));
-    render_text->ApplyBaselineStyle(SUPERSCRIPT, Range(1, 2));
-    render_text->ApplyBaselineStyle(SUPERIOR, Range(3, 4));
-    render_text->ApplyBaselineStyle(INFERIOR, Range(5, 6));
-    render_text->ApplyBaselineStyle(SUBSCRIPT, Range(7, 8));
+    render_text->ApplyBaselineStyle(BaselineStyle::kSuperscript, Range(1, 2));
+    render_text->ApplyBaselineStyle(BaselineStyle::kSuperior, Range(3, 4));
+    render_text->ApplyBaselineStyle(BaselineStyle::kInferior, Range(5, 6));
+    render_text->ApplyBaselineStyle(BaselineStyle::kSubscript, Range(7, 8));
     const Size string_size = render_text->GetStringSize();
     render_text->SetWeight(Font::Weight::BOLD);
     render_text->SetDisplayRect(
diff --git a/ui/gfx/text_constants.h b/ui/gfx/text_constants.h
index 2c0b459..08423ad 100644
--- a/ui/gfx/text_constants.h
+++ b/ui/gfx/text_constants.h
@@ -105,12 +105,12 @@
 //   |        |--------+------------+-----------|             |
 //   |        | descent                         | SUBSCRIPT   |
 //   +--------+---------------------------------+-------------+
-enum BaselineStyle {
-  NORMAL_BASELINE = 0,
-  SUPERSCRIPT,  // e.g. a mathematical exponent would be superscript.
-  SUPERIOR,     // e.g. 8th, the "th" would be superior script.
-  INFERIOR,     // e.g. 1/2, the "2" would be inferior ("1" is superior).
-  SUBSCRIPT,    // e.g. H2O, the "2" would be subscript.
+enum class BaselineStyle {
+  kNormalBaseline = 0,
+  kSuperscript,  // e.g. a mathematical exponent would be superscript.
+  kSuperior,     // e.g. 8th, the "th" would be superior script.
+  kInferior,     // e.g. 1/2, the "2" would be inferior ("1" is superior).
+  kSubscript,    // e.g. H2O, the "2" would be subscript.
 };
 
 // Elision behaviors of text that exceeds constrained dimensions.
diff --git a/ui/gtk/native_theme_gtk.cc b/ui/gtk/native_theme_gtk.cc
index bf99ae3..7fd62e0 100644
--- a/ui/gtk/native_theme_gtk.cc
+++ b/ui/gtk/native_theme_gtk.cc
@@ -140,12 +140,15 @@
 
   // Update the preferred contrast settings for the NativeThemeAura instance and
   // notify its observers about the change.
-  ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForNativeUi();
-  native_theme->SetPreferredContrast(
-      UserHasContrastPreference()
-          ? ui::NativeThemeBase::PreferredContrast::kMore
-          : ui::NativeThemeBase::PreferredContrast::kNoPreference);
-  native_theme->NotifyOnNativeThemeUpdated();
+  for (ui::NativeTheme* native_theme :
+       {ui::NativeTheme::GetInstanceForNativeUi(),
+        ui::NativeTheme::GetInstanceForWeb()}) {
+    native_theme->SetPreferredContrast(
+        UserHasContrastPreference()
+            ? ui::NativeThemeBase::PreferredContrast::kMore
+            : ui::NativeThemeBase::PreferredContrast::kNoPreference);
+    native_theme->NotifyOnNativeThemeUpdated();
+  }
 }
 
 void NativeThemeGtk::OnThemeChanged(GtkSettings* settings,
diff --git a/ui/views/examples/toggle_button_example.cc b/ui/views/examples/toggle_button_example.cc
index 4e37a99e..25db952 100644
--- a/ui/views/examples/toggle_button_example.cc
+++ b/ui/views/examples/toggle_button_example.cc
@@ -17,6 +17,8 @@
 
 namespace views::examples {
 
+constexpr int kLayoutInset = 8;
+
 ToggleButtonExample::ToggleButtonExample()
     : ExampleBase(
           l10n_util::GetStringUTF8(IDS_TOGGLE_BUTTON_SELECT_LABEL).c_str()) {}
@@ -24,7 +26,9 @@
 ToggleButtonExample::~ToggleButtonExample() = default;
 
 void ToggleButtonExample::CreateExampleView(View* container) {
-  auto layout = std::make_unique<BoxLayout>(BoxLayout::Orientation::kVertical);
+  auto layout =
+      std::make_unique<BoxLayout>(BoxLayout::Orientation::kVertical,
+                                  gfx::Insets(kLayoutInset), kLayoutInset);
   layout->set_cross_axis_alignment(BoxLayout::CrossAxisAlignment::kCenter);
   container->SetLayoutManager(std::move(layout));
   container