diff --git a/DEPS b/DEPS
index 2d164b4..cb97b96 100644
--- a/DEPS
+++ b/DEPS
@@ -177,7 +177,7 @@
   # luci-go CIPD package version.
   # Make sure the revision is uploaded by infra-packagers builder.
   # https://ci.chromium.org/p/infra-internal/g/infra-packagers/console
-  'luci_go': 'git_revision:e03dc36a7374fdf2331886695fa8b13457e15b92',
+  'luci_go': 'git_revision:d7393d163ecb11c44626b3b221f86efdd2861565',
 
   # This can be overridden, e.g. with custom_vars, to build clang from HEAD
   # instead of downloading the prebuilt pinned revision.
@@ -209,7 +209,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '33ec6113161421cdff80c8923fd07a48dad8e2bc',
+  'skia_revision': 'd977fdecc63406243a2ff698fa63a5b07a13d593',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -221,7 +221,7 @@
   # 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': '25b53ceb65b767b99b264ba0ac3cadb120591a81',
+  'angle_revision': 'cb69b46adf8cd393786620e454f35391c7bbbda5',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -256,7 +256,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling NaCl
   # and whatever else without interference from each other.
-  'nacl_revision': '011aec9bc487783aef0745c5acf08d480853f81f',
+  'nacl_revision': '0a8e07a6bb7d505b677349c0977f44ab33a46861',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling freetype
   # and whatever else without interference from each other.
@@ -288,7 +288,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': '49793c241621d181172fd0c39d0dd4e4e0953315',
+  'devtools_frontend_revision': '2a1eac282becd3bea1cebbeb973f39d3b8667ab7',
   # 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.
@@ -328,7 +328,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': 'c2a281862153d192636fb6d9742d6d2a409b1d97',
+  'dawn_revision': '82ba34a94114de8ac9de252607da255ffcd69b51',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -946,7 +946,7 @@
   # Tools used when building Chrome for Chrome OS. This affects both the Simple
   # Chrome workflow, as well as the chromeos-chrome ebuild.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '61d3e2686160e388c3fcc083e2b6776a5b4b524d',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '750eabec1c1b61628f65836c6f8a070b262d99f5',
       'condition': 'checkout_chromeos',
   },
 
@@ -966,7 +966,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'f5c054ce5345942142ebb925896a16f28609060f',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'b073879ad6a0867654a36e951a37467a9e8efe8c',
 
   'src/third_party/devtools-frontend/src':
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
@@ -1349,7 +1349,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '022251faee35ed4b87d88a0e6afa9b99f97dfded',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '5e76bff1ab36ae7b07baa0ee2cad749954312590',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1427,7 +1427,7 @@
       'packages': [
           {
               'package': 'fuchsia/third_party/aemu/linux-amd64',
-              'version': 'KMQBSqcXw7u61OKLUonbaZeROpW1KXX9tM-8Klzxus8C'
+              'version': 'UbJ5WKeCpti3a2tT_h2wS1sh_OeOd-s0-O6_rlN0zcAC'
           },
       ],
       'condition': 'host_os == "linux" and checkout_fuchsia',
@@ -1446,7 +1446,7 @@
   },
 
   'src/third_party/re2/src':
-    Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + 'bc423653fdf28618554da96e1532662d1e33eaca',
+    Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + 'aa4563370444e604995ff5fba93e25858f266b79',
 
   'src/third_party/r8': {
       'packages': [
@@ -1560,10 +1560,10 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'a0b8774ce8cec1dc8f4308810bf05eb8867c62de',
 
   'src/third_party/webgpu-cts/src':
-    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'd2919ff0b500ae09892bf4b9c1fe63ec4cfce1ae',
+    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'a03bb38c0e771a0b404753b8e65250e98719870f',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'fe2063ebc711db718b24254ff0d11a6c9385f766',
+    Var('webrtc_git') + '/src.git' + '@' + '46f5c11e4f4a87ccd9c36c03d121f93ed5d4ea0e',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1624,7 +1624,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@152df769d78a98549f8a2a72eb7efe732916354c',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@e241fd0a109c28d5e31e236746b4b7b991d4c778',
     'condition': 'checkout_src_internal',
   },
 
@@ -1643,7 +1643,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': 'g2_Qdwwt0MMlXHZ2f6Rthgq1FP20L2kR3uIe45UH6K0C',
+        'version': 'y8-6tGJu-D6OyurI4SfALgaMfByNLgl34jxV7nRr51IC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -1654,7 +1654,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/media_app/app',
-        'version': 'KyVL1d9X2vzj47MlkKfC8zjBOq-8V4xrVGyl7-oXIhsC',
+        'version': 'j6hO70ROAGdcqAjaXYNmExcooolx1Upi19E0kjSLcdcC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/WATCHLISTS b/WATCHLISTS
index 0ec6893..37a6d08e 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -993,7 +993,6 @@
                   'chrome/browser/chromeos/extensions/file_manager|' \
                   'chrome/browser/chromeos/extensions/file_system_provider|' \
                   'chrome/browser/chromeos/file_manager|' \
-                  'chrome/browser/chromeos/file_system_provider|' \
                   'chrome/browser/drive|' \
                   'chrome/test/data/extensions/api_test/file_system_provider|' \
                   'components/drive|' \
@@ -1006,7 +1005,6 @@
     'fsp': {
       'filepath': 'chrome/browser/ash/file_system_provider|' \
                   'chrome/browser/chromeos/extensions/file_system_provider|' \
-                  'chrome/browser/chromeos/file_system_provider|' \
                   'chrome/test/data/extensions/api_test/file_system_provider'
     },
     'fuchsia': {
@@ -1688,7 +1686,6 @@
     },
     'smb': {
       'filepath': 'chrome/browser/ash/file_system_provider' \
-                  '|chrome/browser/chromeos/file_system_provider'\
                   '|chrome/browser/chromeos/smb_client'\
                   '|chromeos/dbus/fake_smb_provider_client'\
                   '|chromeos/dbus/smb_provider_client',
diff --git a/android_webview/docs/test-instructions.md b/android_webview/docs/test-instructions.md
index d2d595e..f8f4e33 100644
--- a/android_webview/docs/test-instructions.md
+++ b/android_webview/docs/test-instructions.md
@@ -119,6 +119,29 @@
 To run page cycler tests instead, use the `system_webview_shell_page_cycler_apk`
 target and test runner in the steps above.
 
+### UI tests
+
+Like [layout and page cycler tests](#Layout-tests-and-page-cycler-tests),
+WebView UI tests use the WebView installed on the system (and will automatically
+compile and install the `system_webview_apk` target). Unlike those tests
+however, this test suite _does not_ depend on the system WebView shell app, so
+the setup is simpler. You will still need to follow the [full build
+instructions](build-instructions.md) to correctly configure the
+`system_webview_apk` target, but will not need to worry about compiling the
+WebView shell (and do not need to worry about https://crbug.com/1205665).
+
+```sh
+# Build (this also compiles system_webview_apk)
+$ autoninja -C out/Default webview_ui_test_app_test_apk
+
+# Run layout tests (installs the test APK and system_webview_apk and also
+# switches your WebView provider)
+$ out/Default/bin/run_webview_ui_test_app_test_apk
+
+# Print both Java and C++ log messages to the console (optional):
+$ adb logcat
+```
+
 ### Useful test runner options
 
 #### Debugging flaky tests
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index 4f87b63..543e3bc 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -273,6 +273,8 @@
     "autotest_private_api_utils.cc",
     "bluetooth_devices_observer.cc",
     "bluetooth_devices_observer.h",
+    "bubble/bubble_utils.cc",
+    "bubble/bubble_utils.h",
     "cancel_mode.cc",
     "cancel_mode.h",
     "capture_mode/capture_label_view.cc",
@@ -1109,6 +1111,8 @@
     "system/message_center/unified_message_center_view.h",
     "system/message_center/unified_message_list_view.cc",
     "system/message_center/unified_message_list_view.h",
+    "system/microphone_mute/microphone_mute_notification_controller.cc",
+    "system/microphone_mute/microphone_mute_notification_controller.h",
     "system/model/clock_model.cc",
     "system/model/clock_model.h",
     "system/model/clock_observer.h",
@@ -2064,6 +2068,7 @@
     "assistant/ui/main_stage/suggestion_chip_view_unittest.cc",
     "assistant/util/deep_link_util_unittest.cc",
     "assistant/util/resource_util_unittest.cc",
+    "bubble/bubble_utils_unittest.cc",
     "capture_mode/capture_mode_unittests.cc",
     "capture_mode/video_file_handler_unittest.cc",
     "child_accounts/parent_access_controller_impl_unittest.cc",
@@ -2259,6 +2264,7 @@
     "system/message_center/unified_message_center_bubble_unittest.cc",
     "system/message_center/unified_message_center_view_unittest.cc",
     "system/message_center/unified_message_list_view_unittest.cc",
+    "system/microphone_mute/microphone_mute_notification_controller_unittest.cc",
     "system/nearby_share/nearby_share_feature_pod_controller_unittest.cc",
     "system/network/active_network_icon_unittest.cc",
     "system/network/auto_connect_notifier_unittest.cc",
diff --git a/ash/accessibility/chromevox/touch_exploration_controller.cc b/ash/accessibility/chromevox/touch_exploration_controller.cc
index b0f5176..ad2db38 100644
--- a/ash/accessibility/chromevox/touch_exploration_controller.cc
+++ b/ash/accessibility/chromevox/touch_exploration_controller.cc
@@ -1218,7 +1218,7 @@
   if (!container)
     return false;
 
-  return container->id() == kShellWindowId_ArcVirtualKeyboardContainer;
+  return container->GetId() == kShellWindowId_ArcVirtualKeyboardContainer;
 }
 
 bool TouchExplorationController::ShouldEnableVolumeSlideGesture(
diff --git a/ash/app_list/app_list_presenter_delegate_impl.cc b/ash/app_list/app_list_presenter_delegate_impl.cc
index 6c6d494..f7a1467 100644
--- a/ash/app_list/app_list_presenter_delegate_impl.cc
+++ b/ash/app_list/app_list_presenter_delegate_impl.cc
@@ -14,15 +14,12 @@
 #include "ash/app_list/views/app_list_view.h"
 #include "ash/app_list/views/contents_view.h"
 #include "ash/app_list/views/search_box_view.h"
-#include "ash/capture_mode/capture_mode_controller.h"
+#include "ash/bubble/bubble_utils.h"
 #include "ash/constants/ash_switches.h"
 #include "ash/keyboard/ui/keyboard_ui_controller.h"
 #include "ash/public/cpp/app_list/app_list_switches.h"
 #include "ash/public/cpp/ash_features.h"
-#include "ash/public/cpp/ash_switches.h"
 #include "ash/public/cpp/shelf_types.h"
-#include "ash/public/cpp/shell_window_ids.h"
-#include "ash/root_window_controller.h"
 #include "ash/shelf/back_button.h"
 #include "ash/shelf/home_button.h"
 #include "ash/shelf/hotseat_widget.h"
@@ -208,36 +205,14 @@
 
 void AppListPresenterDelegateImpl::EventFilter::ProcessLocatedEvent(
     ui::LocatedEvent* event) {
-  // Users in a capture session may be trying to capture the app list.
-  if (features::IsCaptureModeEnabled() &&
-      CaptureModeController::Get()->IsActive()) {
+  // Check the general rules for closing bubbles.
+  if (!bubble_utils::ShouldCloseBubbleForEvent(*event))
     return;
-  }
 
   aura::Window* target = static_cast<aura::Window*>(event->target());
   if (!target)
     return;
 
-  // If the event happened on a menu, then the event should not close the app
-  // list.
-  RootWindowController* root_controller =
-      RootWindowController::ForWindow(target);
-  if (root_controller) {
-    aura::Window* menu_container =
-        root_controller->GetContainer(kShellWindowId_MenuContainer);
-    if (menu_container->Contains(target))
-      return;
-    aura::Window* keyboard_container =
-        root_controller->GetContainer(kShellWindowId_VirtualKeyboardContainer);
-    if (keyboard_container->Contains(target))
-      return;
-
-    aura::Window* settings_bubble_container =
-        root_controller->GetContainer(kShellWindowId_SettingBubbleContainer);
-    if (settings_bubble_container->Contains(target))
-      return;
-  }
-
   // If the event happened on the home button's widget, it'll get handled by the
   // button.
   Shelf* shelf = Shelf::ForWindow(target);
@@ -264,6 +239,7 @@
   aura::Window* window = view_->GetWidget()->GetNativeView()->parent();
   if (window->Contains(target))
     return;
+
   // Try to close an open folder window: return if an open folder view was
   // closed successfully.
   if (presenter_->HandleCloseOpenFolder())
@@ -318,6 +294,8 @@
     ui::GestureEvent* event) {
   controller_->SetKeyboardTraversalMode(false);
 
+  // Checks tap types instead of ui::ET_TOUCH_PRESSED so that swipes on the
+  // shelf do not close the launcher. https://crbug.com/750274
   if (event->type() == ui::ET_GESTURE_TAP ||
       event->type() == ui::ET_GESTURE_TWO_FINGER_TAP ||
       event->type() == ui::ET_GESTURE_LONG_PRESS) {
diff --git a/ash/app_list/app_list_presenter_impl.cc b/ash/app_list/app_list_presenter_impl.cc
index 7e19a41..95aa2e4a 100644
--- a/ash/app_list/app_list_presenter_impl.cc
+++ b/ash/app_list/app_list_presenter_impl.cc
@@ -242,7 +242,7 @@
 bool AppListPresenterImpl::IsAtLeastPartiallyVisible() const {
   const auto* window = GetWindow();
   return window &&
-         window->occlusion_state() == aura::Window::OcclusionState::VISIBLE;
+         window->GetOcclusionState() == aura::Window::OcclusionState::VISIBLE;
 }
 
 bool AppListPresenterImpl::GetTargetVisibility() const {
@@ -414,10 +414,10 @@
 
   int gained_focus_container_id = kShellWindowId_Invalid;
   if (gained_focus) {
-    gained_focus_container_id = gained_focus->id();
+    gained_focus_container_id = gained_focus->GetId();
     const aura::Window* container = ash::GetContainerForWindow(gained_focus);
     if (container)
-      gained_focus_container_id = container->id();
+      gained_focus_container_id = container->GetId();
   }
   aura::Window* applist_window = view_->GetWidget()->GetNativeView();
   const aura::Window* applist_container = applist_window->parent();
diff --git a/ash/app_list/bubble/app_list_bubble_event_filter.cc b/ash/app_list/bubble/app_list_bubble_event_filter.cc
index e10b089..f60cbed 100644
--- a/ash/app_list/bubble/app_list_bubble_event_filter.cc
+++ b/ash/app_list/bubble/app_list_bubble_event_filter.cc
@@ -4,6 +4,7 @@
 
 #include "ash/app_list/bubble/app_list_bubble_event_filter.h"
 
+#include "ash/bubble/bubble_utils.h"
 #include "ash/shell.h"
 #include "base/callback.h"
 #include "base/check.h"
@@ -41,10 +42,9 @@
 
 void AppListBubbleEventFilter::ProcessPressedEvent(
     const ui::LocatedEvent& event) {
-  // TODO(https://crbug.com/1204554): Exclude events during capture mode.
-  // TODO(https://crbug.com/1204554): Exclude accessibility autoclick bubble.
-  // TODO(https://crbug.com/1204554): Exclude events that shouldn't close the
-  // bubble, like tap-typing on virtual keyboard.
+  // Check the general rules for closing bubbles.
+  if (!bubble_utils::ShouldCloseBubbleForEvent(event))
+    return;
 
   gfx::Point event_location = event.target()
                                   ? event.target()->GetScreenLocation(event)
diff --git a/ash/app_list/views/apps_grid_view.cc b/ash/app_list/views/apps_grid_view.cc
index ca30e21a..6132ee522 100644
--- a/ash/app_list/views/apps_grid_view.cc
+++ b/ash/app_list/views/apps_grid_view.cc
@@ -1122,7 +1122,11 @@
     if (view != drag_view_) {
       view->SetBoundsRect(view_model_.ideal_bounds(i));
     } else {
-      view->SetSize(GetTileViewSize(GetAppListConfig(), cardified_state_));
+      // If the drag view size changes, make sure it has the same center.
+      gfx::Rect bounds = view->bounds();
+      bounds.ClampToCenteredSize(
+          GetTileViewSize(GetAppListConfig(), cardified_state_));
+      view->SetBoundsRect(bounds);
     }
   }
   if (cardified_state_) {
diff --git a/ash/app_list/views/apps_grid_view_unittest.cc b/ash/app_list/views/apps_grid_view_unittest.cc
index 30df0a5..9363ca51 100644
--- a/ash/app_list/views/apps_grid_view_unittest.cc
+++ b/ash/app_list/views/apps_grid_view_unittest.cc
@@ -128,7 +128,7 @@
 // Find the window with type WINDOW_TYPE_MENU and returns the firstly found one.
 // Returns nullptr if no such window exists.
 aura::Window* FindMenuWindow(aura::Window* root) {
-  if (root->type() == aura::client::WINDOW_TYPE_MENU)
+  if (root->GetType() == aura::client::WINDOW_TYPE_MENU)
     return root;
   for (auto* child : root->children()) {
     auto* menu_in_child = FindMenuWindow(child);
@@ -2349,7 +2349,7 @@
   EXPECT_TRUE(folder_item->FindChildItem(second_item_id));
 }
 
-TEST_P(AppsGridViewDragAndDropTestNoCardifiedState, MouseDragFlipToNextPage) {
+TEST_P(AppsGridViewDragAndDropTest, MouseDragFlipToNextPage) {
   // Create 3 full pages of apps.
   model_->PopulateApps(3 * GetTilesPerPage());
   gfx::Point item_center = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
@@ -2375,8 +2375,7 @@
   EndDrag(apps_grid_view_, /*cancel=*/true);
 }
 
-TEST_P(AppsGridViewDragAndDropTestNoCardifiedState,
-       MouseDragFlipToPreviousPage) {
+TEST_P(AppsGridViewDragAndDropTest, MouseDragFlipToPreviousPage) {
   // Create 3 full pages of apps.
   model_->PopulateApps(3 * GetTilesPerPage());
   // Select the last page.
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 2d12621..166f317 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -3076,6 +3076,17 @@
         An application is using your microphone
       </message>
 
+      <!-- Strings for microphone mute switch notification -->
+      <message name="IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_TITLE" desc="Title for a notification shown to the users when an app tries to use the microphone while the microphone mute switch, which disables microphone input, is turned on">
+        Microphone is off
+      </message>
+      <message name="IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE" desc="Message for a notification shown to the users when an app tries to use the microphone while the microphone mute switch, which disables microphone input, is turned on">
+        An app is trying to access the microphone. Turn off the microphone mute switch to allow access.
+      </message>
+      <message name="IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE_WITH_APP_NAME" desc="Message for a notification shown to the users when an app tries to use the microphone while the microphone mute switch, which disables microphone input, is turned on">
+        <ph name="APP_NAME">$1<ex>Parallels Desktop</ex></ph> is trying to access the microphone. Turn off the microphone mute switch to allow access.
+      </message>
+
       <message name="IDS_ASH_MESSAGE_CENTER_UNLOCK_TO_PERFORM_ACTION" desc="The short message to encourage user to unlock the device so that Chrome OS can perform the notification action selected by user after unlocking.">
         Unlock device to perform the notification action
       </message>
diff --git a/ash/ash_strings_grd/IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE.png.sha1 b/ash/ash_strings_grd/IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE.png.sha1
new file mode 100644
index 0000000..3515496
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE.png.sha1
@@ -0,0 +1 @@
+9c446eb6a1dad02fe31d366910b57b4942c684f7
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE_WITH_APP_NAME.png.sha1 b/ash/ash_strings_grd/IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE_WITH_APP_NAME.png.sha1
new file mode 100644
index 0000000..7b28a10
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE_WITH_APP_NAME.png.sha1
@@ -0,0 +1 @@
+e7b83d22230b704fa74103296c0151d9b263be81
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_TITLE.png.sha1 b/ash/ash_strings_grd/IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_TITLE.png.sha1
new file mode 100644
index 0000000..7b28a10
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_TITLE.png.sha1
@@ -0,0 +1 @@
+e7b83d22230b704fa74103296c0151d9b263be81
\ No newline at end of file
diff --git a/ash/bubble/README.md b/ash/bubble/README.md
new file mode 100644
index 0000000..d8b0165
--- /dev/null
+++ b/ash/bubble/README.md
@@ -0,0 +1,14 @@
+# //ash/bubble
+
+Bubbles are widgets with rounded corners. They appear over the main workspace
+content. Most bubbles are dismissed when the user clicks outside their bounds,
+similar to a menu.
+
+Example bubbles:
+
+*   System tray (quick settings)
+*   Phone hub
+*   Bubble app list
+
+This directory contains shared code for bubbles. Individual bubbles should be
+implemented in other directories, like `//ash/app_list`, `//ash/system`, etc.
diff --git a/ash/bubble/bubble_utils.cc b/ash/bubble/bubble_utils.cc
new file mode 100644
index 0000000..51149c2
--- /dev/null
+++ b/ash/bubble/bubble_utils.cc
@@ -0,0 +1,64 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/bubble/bubble_utils.h"
+
+#include "ash/capture_mode/capture_mode_util.h"
+#include "ash/public/cpp/shell_window_ids.h"
+#include "ash/root_window_controller.h"
+#include "ash/shell.h"
+#include "base/check.h"
+#include "ui/aura/window.h"
+#include "ui/events/event.h"
+#include "ui/events/types/event_type.h"
+
+namespace ash {
+namespace bubble_utils {
+
+bool ShouldCloseBubbleForEvent(const ui::LocatedEvent& event) {
+  // Should only be called for "press" type events.
+  DCHECK(event.type() == ui::ET_MOUSE_PRESSED ||
+         event.type() == ui::ET_TOUCH_PRESSED ||
+         event.type() == ui::ET_GESTURE_LONG_PRESS ||
+         event.type() == ui::ET_GESTURE_TAP ||
+         event.type() == ui::ET_GESTURE_TWO_FINGER_TAP)
+      << event.type();
+
+  // Users in a capture session may be trying to capture the bubble.
+  if (capture_mode_util::IsCaptureModeActive())
+    return false;
+
+  aura::Window* target = static_cast<aura::Window*>(event.target());
+  if (!target)
+    return false;
+
+  RootWindowController* root_controller =
+      RootWindowController::ForWindow(target);
+  if (!root_controller)
+    return false;
+
+  // Bubbles can spawn menus, so don't close for clicks inside menus.
+  aura::Window* menu_container =
+      root_controller->GetContainer(kShellWindowId_MenuContainer);
+  if (menu_container->Contains(target))
+    return false;
+
+  // Taps on virtual keyboard should not close bubbles.
+  aura::Window* keyboard_container =
+      root_controller->GetContainer(kShellWindowId_VirtualKeyboardContainer);
+  if (keyboard_container->Contains(target))
+    return false;
+
+  // Touch text selection controls should not close bubbles.
+  // https://crbug.com/1165938
+  aura::Window* settings_bubble_container =
+      root_controller->GetContainer(kShellWindowId_SettingBubbleContainer);
+  if (settings_bubble_container->Contains(target))
+    return false;
+
+  return true;
+}
+
+}  // namespace bubble_utils
+}  // namespace ash
diff --git a/ash/bubble/bubble_utils.h b/ash/bubble/bubble_utils.h
new file mode 100644
index 0000000..aee494c7
--- /dev/null
+++ b/ash/bubble/bubble_utils.h
@@ -0,0 +1,26 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_BUBBLE_BUBBLE_UTILS_H_
+#define ASH_BUBBLE_BUBBLE_UTILS_H_
+
+#include "ash/ash_export.h"
+
+namespace ui {
+class LocatedEvent;
+}  // namespace ui
+
+namespace ash {
+namespace bubble_utils {
+
+// Returns false if `event` should not close a bubble. Returns true if `event`
+// should close a bubble, or if more processing is required. Callers may also
+// need to check for a click on the view that spawned the bubble (otherwise the
+// bubble will close and immediately reopen).
+ASH_EXPORT bool ShouldCloseBubbleForEvent(const ui::LocatedEvent& event);
+
+}  // namespace bubble_utils
+}  // namespace ash
+
+#endif  // ASH_BUBBLE_BUBBLE_UTILS_H_
diff --git a/ash/bubble/bubble_utils_unittest.cc b/ash/bubble/bubble_utils_unittest.cc
new file mode 100644
index 0000000..082eb09
--- /dev/null
+++ b/ash/bubble/bubble_utils_unittest.cc
@@ -0,0 +1,68 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/bubble/bubble_utils.h"
+
+#include "ash/capture_mode/capture_mode_controller.h"
+#include "ash/capture_mode/capture_mode_metrics.h"
+#include "ash/root_window_controller.h"
+#include "ash/shell.h"
+#include "ash/test/ash_test_base.h"
+#include "base/time/time.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/aura/window.h"
+#include "ui/events/event.h"
+#include "ui/events/types/event_type.h"
+
+namespace ash {
+namespace {
+
+// Creates a mouse event with a given event `target`.
+ui::MouseEvent CreateEventWithTarget(aura::Window* target) {
+  ui::MouseEvent event(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
+                       base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON,
+                       ui::EF_LEFT_MOUSE_BUTTON);
+  ui::Event::DispatcherApi(&event).set_target(target);
+  return event;
+}
+
+using BubbleUtilsTest = AshTestBase;
+
+TEST_F(BubbleUtilsTest, EventClosesBubble) {
+  std::unique_ptr<aura::Window> window = CreateTestWindow();
+  ui::MouseEvent event = CreateEventWithTarget(window.get());
+
+  EXPECT_TRUE(bubble_utils::ShouldCloseBubbleForEvent(event));
+}
+
+TEST_F(BubbleUtilsTest, EventInCaptureModeDoesNotCloseBubble) {
+  auto* controller = CaptureModeController::Get();
+  controller->Start(CaptureModeEntryType::kAccelTakePartialScreenshot);
+
+  std::unique_ptr<aura::Window> window = CreateTestWindow();
+  ui::MouseEvent event = CreateEventWithTarget(window.get());
+
+  EXPECT_FALSE(bubble_utils::ShouldCloseBubbleForEvent(event));
+}
+
+TEST_F(BubbleUtilsTest, EventInContainerDoesNotCloseBubble) {
+  const int kTestCases[] = {kShellWindowId_MenuContainer,
+                            kShellWindowId_VirtualKeyboardContainer,
+                            kShellWindowId_SettingBubbleContainer};
+  for (int container_id : kTestCases) {
+    // Create a window and place it in the appropriate container.
+    std::unique_ptr<aura::Window> window = CreateTestWindow();
+    window->set_owned_by_parent(false);
+    Shell::GetPrimaryRootWindowController()
+        ->GetContainer(container_id)
+        ->AddChild(window.get());
+
+    ui::MouseEvent event = CreateEventWithTarget(window.get());
+    EXPECT_FALSE(bubble_utils::ShouldCloseBubbleForEvent(event))
+        << container_id;
+  }
+}
+
+}  // namespace
+}  // namespace ash
diff --git a/ash/capture_mode/capture_mode_controller.h b/ash/capture_mode/capture_mode_controller.h
index b17f8c9..75c9752 100644
--- a/ash/capture_mode/capture_mode_controller.h
+++ b/ash/capture_mode/capture_mode_controller.h
@@ -64,7 +64,9 @@
   bool enable_audio_recording() const { return enable_audio_recording_; }
   bool is_recording_in_progress() const { return is_recording_in_progress_; }
 
-  // Returns true if a capture mode session is currently active.
+  // Returns true if a capture mode session is currently active. If you only
+  // need to call this method, but don't need the rest of the controller, use
+  // capture_mode_util::IsCaptureModeActive().
   bool IsActive() const;
 
   // Sets the capture source/type, which will be applied to an ongoing capture
diff --git a/ash/capture_mode/capture_mode_util.cc b/ash/capture_mode/capture_mode_util.cc
index d16e344..e11681d 100644
--- a/ash/capture_mode/capture_mode_util.cc
+++ b/ash/capture_mode/capture_mode_util.cc
@@ -5,7 +5,9 @@
 #include "ash/capture_mode/capture_mode_util.h"
 
 #include "ash/accessibility/accessibility_controller_impl.h"
+#include "ash/capture_mode/capture_mode_controller.h"
 #include "ash/capture_mode/stop_recording_button_tray.h"
+#include "ash/public/cpp/ash_features.h"
 #include "ash/root_window_controller.h"
 #include "ash/shell.h"
 #include "base/check.h"
@@ -18,6 +20,11 @@
 
 namespace capture_mode_util {
 
+bool IsCaptureModeActive() {
+  return features::IsCaptureModeEnabled() &&
+         CaptureModeController::Get()->IsActive();
+}
+
 gfx::Point GetLocationForFineTunePosition(const gfx::Rect& rect,
                                           FineTunePosition position) {
   switch (position) {
diff --git a/ash/capture_mode/capture_mode_util.h b/ash/capture_mode/capture_mode_util.h
index b41bc73a..b7767a3c 100644
--- a/ash/capture_mode/capture_mode_util.h
+++ b/ash/capture_mode/capture_mode_util.h
@@ -23,6 +23,11 @@
 
 namespace capture_mode_util {
 
+// Returns true if the capture mode feature is enabled and capture mode is
+// active. This method allows callers to avoid including the full header for
+// CaptureModeController, which has many transitive includes.
+bool IsCaptureModeActive();
+
 // Retrieves the point on the |rect| associated with |position|.
 ASH_EXPORT gfx::Point GetLocationForFineTunePosition(const gfx::Rect& rect,
                                                      FineTunePosition position);
diff --git a/ash/capture_mode/capture_window_observer.cc b/ash/capture_mode/capture_window_observer.cc
index b1882b30..82a1ebb 100644
--- a/ash/capture_mode/capture_window_observer.cc
+++ b/ash/capture_mode/capture_window_observer.cc
@@ -41,7 +41,7 @@
 
   // Don't capture wallpaper window.
   if (window && window->parent() &&
-      window->parent()->id() == kShellWindowId_WallpaperContainer) {
+      window->parent()->GetId() == kShellWindowId_WallpaperContainer) {
     window = nullptr;
   }
 
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc
index dd9211c..2b842dd2 100644
--- a/ash/constants/ash_features.cc
+++ b/ash/constants/ash_features.cc
@@ -365,7 +365,7 @@
 // Enables or disables handle of `closeView` message from Gaia. The message is
 // supposed to end the flow.
 const base::Feature kGaiaCloseViewMessage{"GaiaCloseViewMessage",
-                                          base::FEATURE_DISABLED_BY_DEFAULT};
+                                          base::FEATURE_ENABLED_BY_DEFAULT};
 
 // Enables the Gaia reauth endpoint with deleted user customization page.
 const base::Feature kGaiaReauthEndpoint{"GaiaReauthEndpoint",
@@ -474,6 +474,11 @@
 const base::Feature kLanguageSettingsUpdate2{"LanguageSettingsUpdate2",
                                              base::FEATURE_DISABLED_BY_DEFAULT};
 
+// Enables notification of when a microphone-using app is launched while the
+// microphone is muted.
+const base::Feature kMicMuteNotifications{"MicMuteNotifications",
+                                          base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Controls whether to enable the requirement of a minimum chrome version on the
 // device through the policy DeviceMinimumVersion. If the requirement is
 // not met and the warning time in the policy has expired, the user is
@@ -853,6 +858,10 @@
   return base::FeatureList::IsEnabled(kKerberosSettingsSection);
 }
 
+bool IsMicMuteNotificationsEnabled() {
+  return base::FeatureList::IsEnabled(kMicMuteNotifications);
+}
+
 bool IsMinimumChromeVersionEnabled() {
   return base::FeatureList::IsEnabled(kMinimumChromeVersion);
 }
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h
index 1811096..1fd6479 100644
--- a/ash/constants/ash_features.h
+++ b/ash/constants/ash_features.h
@@ -218,6 +218,8 @@
 COMPONENT_EXPORT(ASH_CONSTANTS)
 extern const base::Feature kMediaAppVideoControls;
 COMPONENT_EXPORT(ASH_CONSTANTS)
+extern const base::Feature kMicMuteNotifications;
+COMPONENT_EXPORT(ASH_CONSTANTS)
 extern const base::Feature kMinimumChromeVersion;
 COMPONENT_EXPORT(ASH_CONSTANTS)
 extern const base::Feature kMultilingualTyping;
@@ -373,6 +375,7 @@
 COMPONENT_EXPORT(ASH_CONSTANTS)
 bool IsInstantTetheringBackgroundAdvertisingSupported();
 COMPONENT_EXPORT(ASH_CONSTANTS) bool IsKerberosSettingsSectionEnabled();
+COMPONENT_EXPORT(ASH_CONSTANTS) bool IsMicMuteNotificationsEnabled();
 COMPONENT_EXPORT(ASH_CONSTANTS) bool IsMinimumChromeVersionEnabled();
 COMPONENT_EXPORT(ASH_CONSTANTS) bool IsNetworkingInDiagnosticsAppEnabled();
 COMPONENT_EXPORT(ASH_CONSTANTS) bool IsNewOobeLayoutEnabled();
diff --git a/ash/content/scanning/resources/scanning_app.js b/ash/content/scanning/resources/scanning_app.js
index db155c7..79735ff 100644
--- a/ash/content/scanning/resources/scanning_app.js
+++ b/ash/content/scanning/resources/scanning_app.js
@@ -33,7 +33,7 @@
 import {afterNextRender, html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {getScanService} from './mojo_interface_provider.js';
-import {AppState, ScannerArr, ScannerCapabilitiesResponse, ScannerInfo, ScannerSetting, ScanSettings} from './scanning_app_types.js';
+import {AppState, MAX_NUM_SAVED_SCANNERS, ScannerArr, ScannerCapabilitiesResponse, ScannerInfo, ScannerSetting, ScanSettings} from './scanning_app_types.js';
 import {colorModeFromString, fileTypeFromString, getScannerDisplayName, pageSizeFromString, tokenToString} from './scanning_app_util.js';
 import {ScanningBrowserProxy, ScanningBrowserProxyImpl, SelectedPath} from './scanning_browser_proxy.js';
 
@@ -907,11 +907,28 @@
       this.savedScanSettings_.scanners[scannerIndex] = newScannerSetting;
     }
 
+    if (this.savedScanSettings_.scanners.length > MAX_NUM_SAVED_SCANNERS) {
+      this.evictScannersFromScanSettings_();
+    }
+
     this.browserProxy_.saveScanSettings(
         JSON.stringify(this.savedScanSettings_));
   },
 
   /**
+   * Sort the saved settings scanners array so the oldest scanners are moved to
+   * the back then dropped.
+   * @private
+   */
+  evictScannersFromScanSettings_() {
+    this.savedScanSettings_.scanners.sort((firstScanner, secondScanner) => {
+      return new Date(secondScanner.lastScanDate) -
+          new Date(firstScanner.lastScanDate);
+    });
+    this.savedScanSettings_.scanners.splice(MAX_NUM_SAVED_SCANNERS);
+  },
+
+  /**
    * @return {!ScannerSetting}
    * @private
    */
diff --git a/ash/content/scanning/resources/scanning_app_types.js b/ash/content/scanning/resources/scanning_app_types.js
index 446ff7f..fcab60a 100644
--- a/ash/content/scanning/resources/scanning_app_types.js
+++ b/ash/content/scanning/resources/scanning_app_types.js
@@ -32,6 +32,12 @@
 };
 
 /**
+ * Maximum number of scanners allowed in saved scan settings.
+ * @const {number}
+ */
+export const MAX_NUM_SAVED_SCANNERS = 20;
+
+/**
  * @typedef {!Array<!ash.scanning.mojom.Scanner>}
  */
 export let ScannerArr;
diff --git a/ash/debug.cc b/ash/debug.cc
index c2e81055..fe6e5a7 100644
--- a/ash/debug.cc
+++ b/ash/debug.cc
@@ -63,18 +63,20 @@
       window->layer()->GetSubpixelOffset();
   *out << indent_str;
   *out << name << " (" << window << ")"
-       << " type=" << window->type();
-  int window_id = window->id();
+       << " type=" << window->GetType();
+  int window_id = window->GetId();
   if (window_id != aura::Window::kInitialId)
     *out << " id=" << window_id;
   if (window->GetProperty(kWindowStateKey))
     *out << " " << WindowState::Get(window)->GetStateType();
   *out << ((window == active_window) ? " [active]" : "")
        << ((window == focused_window) ? " [focused]" : "")
-       << (window->transparent() ? " [transparent]" : "")
+       << (window->GetTransparent() ? " [transparent]" : "")
        << (window->IsVisible() ? " [visible]" : "") << " "
-       << (window->occlusion_state() != aura::Window::OcclusionState::UNKNOWN
-               ? aura::Window::OcclusionStateToString(window->occlusion_state())
+       << (window->GetOcclusionState() != aura::Window::OcclusionState::UNKNOWN
+               ? base::UTF16ToUTF8(aura::Window::OcclusionStateToString(
+                                       window->GetOcclusionState()))
+                     .c_str()
                : "")
        << " " << window->bounds().ToString();
   if (!subpixel_position_offset.IsZero())
diff --git a/ash/display/display_highlight_controller.cc b/ash/display/display_highlight_controller.cc
index d06a8a4..a701434 100644
--- a/ash/display/display_highlight_controller.cc
+++ b/ash/display/display_highlight_controller.cc
@@ -56,7 +56,7 @@
       views::CreateSolidBorder(highlight_thickness, kHighlightColor));
 
   auto* window = highlight_widget->GetNativeWindow();
-  window->set_id(kShellWindowId_DisplayIdentificationHighlightWindow);
+  window->SetId(kShellWindowId_DisplayIdentificationHighlightWindow);
   ::wm::SetWindowVisibilityAnimationTransition(window, ::wm::ANIMATE_NONE);
 
   MagnificationController* magnification_controller =
diff --git a/ash/display/screen_position_controller_unittest.cc b/ash/display/screen_position_controller_unittest.cc
index 4c045a8d..18030146 100644
--- a/ash/display/screen_position_controller_unittest.cc
+++ b/ash/display/screen_position_controller_unittest.cc
@@ -44,7 +44,7 @@
     window_->SetType(aura::client::WINDOW_TYPE_NORMAL);
     window_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(window_.get());
-    window_->set_id(1);
+    window_->SetId(1);
   }
 
   void TearDown() override {
diff --git a/ash/keyboard/arc/arc_virtual_keyboard_container_layout_manager.cc b/ash/keyboard/arc/arc_virtual_keyboard_container_layout_manager.cc
index 0d5b6668..941de66 100644
--- a/ash/keyboard/arc/arc_virtual_keyboard_container_layout_manager.cc
+++ b/ash/keyboard/arc/arc_virtual_keyboard_container_layout_manager.cc
@@ -13,7 +13,7 @@
     ArcVirtualKeyboardContainerLayoutManager(aura::Window* parent)
     : arc_ime_window_parent_container_(parent) {
   DCHECK(arc_ime_window_parent_container_);
-  DCHECK_EQ(arc_ime_window_parent_container_->id(),
+  DCHECK_EQ(arc_ime_window_parent_container_->GetId(),
             kShellWindowId_ArcImeWindowParentContainer);
 }
 
@@ -26,7 +26,7 @@
 
 void ArcVirtualKeyboardContainerLayoutManager::OnWindowAddedToLayout(
     aura::Window* child) {
-  if (child->id() == kShellWindowId_ArcVirtualKeyboardContainer)
+  if (child->GetId() == kShellWindowId_ArcVirtualKeyboardContainer)
     SetChildBounds(child, arc_ime_window_parent_container_->bounds());
 }
 
diff --git a/ash/keyboard/ui/keyboard_util.cc b/ash/keyboard/ui/keyboard_util.cc
index 133c2e8..7a322237 100644
--- a/ash/keyboard/ui/keyboard_util.cc
+++ b/ash/keyboard/ui/keyboard_util.cc
@@ -27,9 +27,12 @@
 }
 
 void SetOrClearEnableFlag(KeyboardEnableFlag flag, bool enabled) {
-  auto* controller = KeyboardUIController::Get();
-  if (!controller)
+  // This function can get called asynchronously after the instance has been
+  // destroyed, so return early if there is no instance.
+  if (!KeyboardUIController::HasInstance())
     return;
+
+  auto* controller = KeyboardUIController::Get();
   if (enabled)
     controller->SetEnableFlag(flag);
   else
diff --git a/ash/keyboard/virtual_keyboard_container_layout_manager.cc b/ash/keyboard/virtual_keyboard_container_layout_manager.cc
index cab025f..ce8dc09 100644
--- a/ash/keyboard/virtual_keyboard_container_layout_manager.cc
+++ b/ash/keyboard/virtual_keyboard_container_layout_manager.cc
@@ -23,7 +23,7 @@
 
 void VirtualKeyboardContainerLayoutManager::OnWindowAddedToLayout(
     aura::Window* child) {
-  if (child->id() == kShellWindowId_VirtualKeyboardContainer)
+  if (child->GetId() == kShellWindowId_VirtualKeyboardContainer)
     SetChildBounds(child, ime_window_parent_container_->bounds());
 }
 
diff --git a/ash/keyboard/virtual_keyboard_controller.cc b/ash/keyboard/virtual_keyboard_controller.cc
index c7f0b99..3a1ebd22 100644
--- a/ash/keyboard/virtual_keyboard_controller.cc
+++ b/ash/keyboard/virtual_keyboard_controller.cc
@@ -33,11 +33,15 @@
 void ResetVirtualKeyboard() {
   keyboard::SetKeyboardEnabledFromShelf(false);
 
-  // Reset the keyset after disabling the virtual keyboard to prevent the IME
-  // extension from accidentally loading the default keyset while it's shutting
-  // down. See https://crbug.com/875456.
-  Shell::Get()->ime_controller()->OverrideKeyboardKeyset(
-      chromeos::input_method::ImeKeyset::kNone);
+  // This function can get called asynchronously after the shell has been
+  // destroyed, so check for an instance.
+  if (Shell::HasInstance()) {
+    // Reset the keyset after disabling the virtual keyboard to prevent the IME
+    // extension from accidentally loading the default keyset while it's
+    // shutting down. See https://crbug.com/875456.
+    Shell::Get()->ime_controller()->OverrideKeyboardKeyset(
+        chromeos::input_method::ImeKeyset::kNone);
+  }
 }
 
 }  // namespace
diff --git a/ash/login/ui/lock_screen_media_controls_view.cc b/ash/login/ui/lock_screen_media_controls_view.cc
index c173f9b..0e5a784 100644
--- a/ash/login/ui/lock_screen_media_controls_view.cc
+++ b/ash/login/ui/lock_screen_media_controls_view.cc
@@ -130,6 +130,7 @@
     case MediaSessionAction::kToggleMicrophone:
     case MediaSessionAction::kToggleCamera:
     case MediaSessionAction::kHangUp:
+    case MediaSessionAction::kRaise:
       NOTREACHED();
       break;
   }
diff --git a/ash/metrics/demo_session_metrics_recorder.cc b/ash/metrics/demo_session_metrics_recorder.cc
index 3c64e99..c180e24 100644
--- a/ash/metrics/demo_session_metrics_recorder.cc
+++ b/ash/metrics/demo_session_metrics_recorder.cc
@@ -387,7 +387,7 @@
     return;
 
   // Don't count popup windows.
-  if (gained_active->type() != aura::client::WINDOW_TYPE_NORMAL)
+  if (gained_active->GetType() != aura::client::WINDOW_TYPE_NORMAL)
     return;
 
   AppType app_type = GetAppType(gained_active);
@@ -467,7 +467,7 @@
     return;
   }
 
-  DemoModeApp app = window->type() == aura::client::WINDOW_TYPE_NORMAL
+  DemoModeApp app = window->GetType() == aura::client::WINDOW_TYPE_NORMAL
                         ? GetAppFromWindow(window)
                         : DemoModeApp::kOtherWindow;
   RecordActiveAppSample(app);
diff --git a/ash/projector/projector_controller_impl.cc b/ash/projector/projector_controller_impl.cc
index 861f87f..e561826 100644
--- a/ash/projector/projector_controller_impl.cc
+++ b/ash/projector/projector_controller_impl.cc
@@ -10,7 +10,6 @@
 #include "ash/public/cpp/projector/projector_session.h"
 #include "ash/shell.h"
 #include "base/strings/utf_string_conversions.h"
-#include "ui/aura/window.h"
 
 namespace ash {
 
@@ -63,11 +62,6 @@
     ui_controller_->CloseToolbar();
 }
 
-void ProjectorControllerImpl::StartProjectorSession(SourceType scope,
-                                                    aura::Window* window) {
-  // TODO(https://crbug.com/1185262): Start projector session.
-}
-
 bool ProjectorControllerImpl::IsEligible() const {
   return is_speech_recognition_available_;
 }
diff --git a/ash/projector/projector_controller_impl.h b/ash/projector/projector_controller_impl.h
index ddc50bce..453400a 100644
--- a/ash/projector/projector_controller_impl.h
+++ b/ash/projector/projector_controller_impl.h
@@ -40,7 +40,6 @@
       const base::Optional<std::vector<base::TimeDelta>>& word_offsets,
       bool is_final) override;
   void SetProjectorToolsVisible(bool is_visible) override;
-  void StartProjectorSession(SourceType scope, aura::Window* window) override;
   bool IsEligible() const override;
 
   // Sets Caption bubble state to become opened/closed.
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn
index bcd34e2..22de3b2 100644
--- a/ash/public/cpp/BUILD.gn
+++ b/ash/public/cpp/BUILD.gn
@@ -192,6 +192,8 @@
     "message_center/arc_notifications_host_initializer.h",
     "metrics_util.cc",
     "metrics_util.h",
+    "microphone_mute_notification_delegate.cc",
+    "microphone_mute_notification_delegate.h",
     "move_to_desks_menu_delegate.cc",
     "move_to_desks_menu_delegate.h",
     "nearby_share_controller.h",
diff --git a/ash/public/cpp/ash_features.cc b/ash/public/cpp/ash_features.cc
index 9001f84a..246f2ce 100644
--- a/ash/public/cpp/ash_features.cc
+++ b/ash/public/cpp/ash_features.cc
@@ -67,9 +67,6 @@
 const base::Feature kHideArcMediaNotifications{
     "HideArcMediaNotifications", base::FEATURE_ENABLED_BY_DEFAULT};
 
-const base::Feature kInteractiveWindowCycleList{
-    "InteractiveWindowCycleList", base::FEATURE_ENABLED_BY_DEFAULT};
-
 const base::Feature kManagedDeviceUIRedesign{"ManagedDeviceUIRedesign",
                                              base::FEATURE_ENABLED_BY_DEFAULT};
 
@@ -208,10 +205,6 @@
       kLockScreenHideSensitiveNotificationsSupport);
 }
 
-bool IsInteractiveWindowCycleListEnabled() {
-  return base::FeatureList::IsEnabled(kInteractiveWindowCycleList);
-}
-
 bool IsManagedDeviceUIRedesignEnabled() {
   return base::FeatureList::IsEnabled(kManagedDeviceUIRedesign);
 }
diff --git a/ash/public/cpp/ash_features.h b/ash/public/cpp/ash_features.h
index 5e91f1a..03e77687 100644
--- a/ash/public/cpp/ash_features.h
+++ b/ash/public/cpp/ash_features.h
@@ -84,11 +84,6 @@
 // TODO(beccahughes): Remove after launch. (https://crbug.com/897836)
 ASH_PUBLIC_EXPORT extern const base::Feature kHideArcMediaNotifications;
 
-// Enables more ways to interact with the window cycle list, i.e. mouse, touch,
-// gestures, and alternate keys.
-// TODO(chinsenj): Remove this when the feature is fully launched.
-ASH_PUBLIC_EXPORT extern const base::Feature kInteractiveWindowCycleList;
-
 // Enables using arrow keys for display arrangement in display settings page.
 ASH_PUBLIC_EXPORT extern const base::Feature
     kKeyboardBasedDisplayArrangementInSettings;
@@ -218,8 +213,6 @@
 
 ASH_PUBLIC_EXPORT bool IsLockScreenNotificationsEnabled();
 
-ASH_PUBLIC_EXPORT bool IsInteractiveWindowCycleListEnabled();
-
 ASH_PUBLIC_EXPORT bool IsManagedDeviceUIRedesignEnabled();
 
 ASH_PUBLIC_EXPORT bool IsLockScreenInlineReplyEnabled();
diff --git a/ash/public/cpp/microphone_mute_notification_delegate.cc b/ash/public/cpp/microphone_mute_notification_delegate.cc
new file mode 100644
index 0000000..c3083fd
--- /dev/null
+++ b/ash/public/cpp/microphone_mute_notification_delegate.cc
@@ -0,0 +1,33 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/public/cpp/microphone_mute_notification_delegate.h"
+
+#include "base/check.h"
+#include "base/check_op.h"
+
+namespace ash {
+
+namespace {
+
+MicrophoneMuteNotificationDelegate* g_instance = nullptr;
+
+}  // namespace
+
+// static
+MicrophoneMuteNotificationDelegate* MicrophoneMuteNotificationDelegate::Get() {
+  return g_instance;
+}
+
+MicrophoneMuteNotificationDelegate::MicrophoneMuteNotificationDelegate() {
+  DCHECK(!g_instance);
+  g_instance = this;
+}
+
+MicrophoneMuteNotificationDelegate::~MicrophoneMuteNotificationDelegate() {
+  DCHECK_EQ(this, g_instance);
+  g_instance = nullptr;
+}
+
+}  // namespace ash
diff --git a/ash/public/cpp/microphone_mute_notification_delegate.h b/ash/public/cpp/microphone_mute_notification_delegate.h
new file mode 100644
index 0000000..bdd31a4
--- /dev/null
+++ b/ash/public/cpp/microphone_mute_notification_delegate.h
@@ -0,0 +1,37 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_PUBLIC_CPP_MICROPHONE_MUTE_NOTIFICATION_DELEGATE_H_
+#define ASH_PUBLIC_CPP_MICROPHONE_MUTE_NOTIFICATION_DELEGATE_H_
+
+#include <string>
+
+#include "ash/public/cpp/ash_public_export.h"
+#include "base/optional.h"
+
+namespace ash {
+
+// This delegate exists so that code relevant to microphone mute notifications
+// under //ash can call back into //chrome.  The actual delegate instance is
+// owned and constructed by code in //chrome during startup.
+class ASH_PUBLIC_EXPORT MicrophoneMuteNotificationDelegate {
+ public:
+  static MicrophoneMuteNotificationDelegate* Get();
+
+  // Returns an optional string with:
+  //
+  // No value, if no app is accessing the mic
+  // Empty value, if an app is accessing the mic but no name could be determined
+  // Non-empty value, if an app is accessing the mic and a name could be
+  // determined
+  virtual base::Optional<std::u16string> GetAppAccessingMicrophone() = 0;
+
+ protected:
+  MicrophoneMuteNotificationDelegate();
+  virtual ~MicrophoneMuteNotificationDelegate();
+};
+
+}  // namespace ash
+
+#endif  // ASH_PUBLIC_CPP_MICROPHONE_MUTE_NOTIFICATION_DELEGATE_H_
diff --git a/ash/public/cpp/projector/projector_controller.h b/ash/public/cpp/projector/projector_controller.h
index aaca488..84435cd 100644
--- a/ash/public/cpp/projector/projector_controller.h
+++ b/ash/public/cpp/projector/projector_controller.h
@@ -10,13 +10,8 @@
 #include "ash/public/cpp/ash_public_export.h"
 #include "base/time/time.h"
 
-namespace aura {
-class Window;
-}
-
 namespace ash {
 
-enum class SourceType;
 class ProjectorClient;
 
 // Interface to control projector in ash.
@@ -47,11 +42,6 @@
   // Sets projector toolbar visibility.
   virtual void SetProjectorToolsVisible(bool is_visible) = 0;
 
-  // Starts a projector session. If scope is SourceType::kUnset, window may be
-  // null.
-  virtual void StartProjectorSession(SourceType scope,
-                                     aura::Window* window) = 0;
-
   // Returns true if Projector is eligible to start a new session.
   virtual bool IsEligible() const = 0;
 };
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index 9982b7c..3f8e7693 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -111,7 +111,7 @@
 bool IsInShelfContainer(aura::Window* container) {
   if (!container)
     return false;
-  int id = container->id();
+  int id = container->GetId();
   if (id == ash::kShellWindowId_ShelfContainer ||
       id == ash::kShellWindowId_ShelfBubbleContainer) {
     return true;
@@ -553,7 +553,7 @@
   if (window) {
     aura::Window* window_container = GetContainerForWindow(window);
     if (window_container &&
-        window_container->id() >= kShellWindowId_LockScreenContainer) {
+        window_container->GetId() >= kShellWindowId_LockScreenContainer) {
       modal_container = GetContainer(kShellWindowId_LockSystemModalContainer);
     } else {
       modal_container = GetContainer(kShellWindowId_SystemModalContainer);
@@ -1234,7 +1234,7 @@
   aura::Window* window =
       new aura::Window(nullptr, aura::client::WINDOW_TYPE_UNKNOWN);
   window->Init(ui::LAYER_NOT_DRAWN);
-  window->set_id(window_id);
+  window->SetId(window_id);
   window->SetName(name);
   parent->AddChild(window);
   if (window_id != kShellWindowId_UnparentedControlContainer)
diff --git a/ash/root_window_controller_unittest.cc b/ash/root_window_controller_unittest.cc
index ec222d6..bd9b7e4 100644
--- a/ash/root_window_controller_unittest.cc
+++ b/ash/root_window_controller_unittest.cc
@@ -177,7 +177,7 @@
   EXPECT_EQ(root_windows[1],
             unparented_control->GetNativeView()->GetRootWindow());
   EXPECT_EQ(kShellWindowId_UnparentedControlContainer,
-            unparented_control->GetNativeView()->parent()->id());
+            unparented_control->GetNativeView()->parent()->GetId());
 
   // Make sure a window that will delete itself when losing focus
   // will not crash.
@@ -243,7 +243,7 @@
   EXPECT_EQ(root_windows[0],
             unparented_control->GetNativeView()->GetRootWindow());
   EXPECT_EQ(kShellWindowId_UnparentedControlContainer,
-            unparented_control->GetNativeView()->parent()->id());
+            unparented_control->GetNativeView()->parent()->GetId());
 }
 
 TEST_F(RootWindowControllerTest, MoveWindows_Modal) {
@@ -289,7 +289,7 @@
 
   views::Widget* lock_screen =
       CreateModalWidgetWithParent(gfx::Rect(10, 10, 100, 100), lock_container);
-  lock_screen->GetNativeWindow()->set_id(kLockScreenWindowId);
+  lock_screen->GetNativeWindow()->SetId(kLockScreenWindowId);
   lock_screen->SetFullscreen(true);
 
   ASSERT_EQ(lock_screen->GetNativeWindow(),
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc
index 6f474c77..e6ab9ec 100644
--- a/ash/shelf/shelf_layout_manager.cc
+++ b/ash/shelf/shelf_layout_manager.cc
@@ -147,7 +147,7 @@
 // Returns true if the window is in the app list window container.
 bool IsAppListWindow(const aura::Window* window) {
   const aura::Window* parent = window->parent();
-  return parent && parent->id() == kShellWindowId_AppListContainer;
+  return parent && parent->GetId() == kShellWindowId_AppListContainer;
 }
 
 int GetOffset(int offset, bool from_touchpad) {
diff --git a/ash/shell_tab_handler.cc b/ash/shell_tab_handler.cc
index 6f1590b..8ef79a2 100644
--- a/ash/shell_tab_handler.cc
+++ b/ash/shell_tab_handler.cc
@@ -4,7 +4,7 @@
 
 #include "shell_tab_handler.h"
 
-#include "ash/capture_mode/capture_mode_controller.h"
+#include "ash/capture_mode/capture_mode_util.h"
 #include "ash/focus_cycler.h"
 #include "ash/public/cpp/ash_features.h"
 #include "ash/shelf/shelf.h"
@@ -30,10 +30,8 @@
   }
 
   // Capture session will process their own tab events.
-  if (features::IsCaptureModeEnabled() &&
-      CaptureModeController::Get()->IsActive()) {
+  if (capture_mode_util::IsCaptureModeActive())
     return;
-  }
 
   aura::Window* root_window_for_new_windows =
       Shell::GetRootWindowForNewWindows();
diff --git a/ash/shell_unittest.cc b/ash/shell_unittest.cc
index d27fce9..14e8023 100644
--- a/ash/shell_unittest.cc
+++ b/ash/shell_unittest.cc
@@ -87,7 +87,7 @@
     for (aura::Window* child : current_window->children())
       window_queue.push(child);
 
-    const int id = current_window->id();
+    const int id = current_window->GetId();
 
     // Skip windows with no IDs.
     if (id == aura::Window::kInitialId)
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb
index a4bcf27..65ff900f 100644
--- a/ash/strings/ash_strings_as.xtb
+++ b/ash/strings/ash_strings_as.xtb
@@ -140,6 +140,7 @@
 <translation id="2079504693865562705">শ্বেল্‌ফত এপ্‌ লুকুৱাওক</translation>
 <translation id="2083190527011054446">শুভৰাত্ৰি <ph name="GIVEN_NAME" />,</translation>
 <translation id="209965399369889474">নেটৱৰ্কৰ সৈতে সংযুক্ত হৈ নাই</translation>
+<translation id="2108303511227308752">কীব’ৰ্ডৰ শ্বৰ্টকাট অল্ট + বেকস্পেচটো সলনি হৈছে। ডিলিট কীটো ব্যৱহাৰ কৰিবলৈ, <ph name="LAUNCHER_KEY_NAME" /> কীটো + বেকস্পেচ টিপক।</translation>
 <translation id="2126242104232412123">নতুন ডেস্ক</translation>
 <translation id="2127372758936585790">কম শক্তিৰ চ্চাৰ্জাৰ</translation>
 <translation id="2132302418721800944">পূৰ্ণ স্ক্ৰীন ৰেকৰ্ড কৰক</translation>
@@ -366,6 +367,7 @@
 <translation id="4021716437419160885">তললৈ স্ক্ৰল কৰক</translation>
 <translation id="4028481283645788203">অধিক সুৰক্ষাৰ বাবে পাছৱর্ডৰ আৱশ্যক</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="403337028234783023">কীব’ৰ্ডৰ শ্বৰ্টকাট <ph name="LAUNCHER_KEY_NAME" /> + নাম্বাৰটো সলনি হৈছে। এফ-কীসমূহ ব্যৱহাৰ কৰিবলৈ, <ph name="LAUNCHER_KEY_NAME" /> কীটো + ওপৰৰ শাৰীৰ এটা কী টিপক।</translation>
 <translation id="4042660782729322247">আপুনি নিজৰ স্ক্রীণখন শ্বেয়াৰ কৰি আছে</translation>
 <translation id="4057003836560082631"><ph name="TOTAL_COUNT" /> টাৰ ভিতৰত <ph name="INDEX" /> নম্বৰ ব্ৰাউজাৰ টেব। <ph name="SITE_TITLE" />, <ph name="SITE_URL" /></translation>
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{এটা এপৰ বাবে অফ}one{#টা এপৰ বাবে অফ}other{#টা এপৰ বাবে অফ}}</translation>
@@ -391,6 +393,7 @@
 <translation id="425364040945105958">ছিম নাই</translation>
 <translation id="4261870227682513959">জাননীৰ ছেটিং দেখুৱাওক। জাননী অফ আছে</translation>
 <translation id="4269883910223712419">এই ডিভাইচটোৰ প্ৰশাসকে এইকেইটা কাৰ্য কৰিব পাৰে:</translation>
+<translation id="4274537685965975248">কীব’ৰ্ডৰ শ্বৰ্টকাট কণ্ট্ৰ'ল+ অল্ট + ডাউন এৰ'টো সলনি হৈছে। এণ্ড কীটো ব্যৱহাৰ কৰিবলৈ, <ph name="LAUNCHER_KEY_NAME" /> কীটো + ৰাইট এৰ' টিপক।</translation>
 <translation id="4279490309300973883">প্ৰতিবিম্বকৰণ</translation>
 <translation id="4285498937028063278">আনপিন কৰক</translation>
 <translation id="4294319844246081198">সুপ্ৰভাত <ph name="GIVEN_NAME" />,</translation>
@@ -399,6 +402,7 @@
 <translation id="4303223480529385476">বিভিন্ন স্থিতি দেখুওৱা ঠাই বিস্তাৰ কৰক</translation>
 <translation id="4321179778687042513">Ctrl</translation>
 <translation id="4321776623976362024">আপুনি হাই কনট্ৰাষ্টৰ বাবে কীব’ৰ্ডৰ শ্বৰ্টকাটত টিপিছে৷ আপুনি এইটো অন কৰিব বিচাৰেনে?</translation>
+<translation id="4322742403972824594">কীব’ৰ্ডৰ শ্বৰ্টকাট কণ্ট্ৰ'ল+ অল্ট + আপ এৰ'টো সলনি হৈছে। হ'ম কীটো ব্যৱহাৰ কৰিবলৈ, <ph name="LAUNCHER_KEY_NAME" /> কীটো + লেফ্ট এৰ' টিপক।</translation>
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4333628967105022692">একাধিক ব্যৱহাৰকাৰী ছাইন ইন হৈ থকাৰ সময়ত Lacrosএ কাম নকৰে।</translation>
 <translation id="4338109981321384717">বিবৰ্ধক কাঁচ</translation>
@@ -416,6 +420,7 @@
 <translation id="4445159312344259901">আনলক কৰিবলৈ ছাইন ইন কৰক</translation>
 <translation id="4449692009715125625">{NUM_NOTIFICATIONS,plural, =1{১ টা গুৰুত্বপূৰ্ণ জাননী}one{# টা গুৰুত্বপূৰ্ণ জাননী}other{# টা গুৰুত্বপূৰ্ণ জাননী}}</translation>
 <translation id="4450893287417543264">পুনৰ নেদেখুৱাব</translation>
+<translation id="4451374464530248585">কীব’ৰ্ডৰ শ্বৰ্টকাট অল্ট + ডাউন এৰ'টো সলনি হৈছে। পেজ ডাউন কীটো ব্যৱহাৰ কৰিবলৈ, <ph name="LAUNCHER_KEY_NAME" /> কীটো + ডাউন এৰ' টিপক।</translation>
 <translation id="445864333228800152">শুভ সন্ধ্যা,</translation>
 <translation id="4458688154122353284">স্ক্ৰীন ৰেকৰ্ডিং কৰা বন্ধ কৰক</translation>
 <translation id="4472575034687746823">আৰম্ভ কৰক</translation>
@@ -707,6 +712,7 @@
 <translation id="6919251195245069855">আপোনাৰ স্মার্ট কার্ডখন চিনাক্ত কৰিব পৰা নগ'ল। আকৌ চেষ্টা কৰক।</translation>
 <translation id="6945221475159498467">বাছনি কৰক</translation>
 <translation id="6961121602502368900">কৰ্মস্থানৰ প্ৰ’ফাইলত নীৰৱ ফ’ন উপলব্ধ নহয়</translation>
+<translation id="6961840794482373852">কীব’ৰ্ডৰ শ্বৰ্টকাট অল্ট + আপ এৰ'টো সলনি হৈছে। পেজ আপ কীটো ব্যৱহাৰ কৰিবলৈ, <ph name="LAUNCHER_KEY_NAME" /> কীটো + আপ এৰ' টিপক।</translation>
 <translation id="6965382102122355670">ঠিক আছে</translation>
 <translation id="6972754398087986839">আৰম্ভ কৰক</translation>
 <translation id="6981982820502123353">সাধ্য সুবিধাসমূহ</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb
index 573726f1..9068a145 100644
--- a/ash/strings/ash_strings_az.xtb
+++ b/ash/strings/ash_strings_az.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" /> üçün məlumat dialoqunu açın</translation>
 <translation id="1153356358378277386">Birləşmiş cihazlar</translation>
 <translation id="1165712434476988950">Güncəlləməni tətbiq etmək üçün cihazı yenidən başlatmaq tələb olunur.</translation>
+<translation id="1170240434488307589">Cihaz mikrofon düyməsi səssiz edilib.</translation>
 <translation id="1175572348579024023">Sürüşdürün</translation>
 <translation id="1178581264944972037">Durdurun</translation>
 <translation id="1181037720776840403">Silin</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">Daxiletmə üsulları administrator tərəfindən konfiqurasiya edilir.</translation>
 <translation id="1747827819627189109">Ekrandakı klaviaturanı aktiv edin</translation>
 <translation id="1761222317188459878">Şəbəkə bağlantısını aktiv edin. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705"><ph name="LAUNCHER_KEY_NAME" /> + Nöqtə klaviatura qısayolu dəyişib. "Daxil et" düyməsindən istifadə etmək üçün <ph name="LAUNCHER_KEY_NAME" /> + Shift + Geri düyməsini basın.</translation>
 <translation id="1771761307086386028">Sağa sürüşdürün</translation>
 <translation id="1782199038061388045">tərcümə</translation>
 <translation id="1787955149152357925">Deaktiv</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb
index e8abf8e..4582098 100644
--- a/ash/strings/ash_strings_be.xtb
+++ b/ash/strings/ash_strings_be.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006">Адкрыць дыялогавае акно інфармацыі аб уліковым запісе "<ph name="USER_NAME" />"</translation>
 <translation id="1153356358378277386">Спалучаныя прылады</translation>
 <translation id="1165712434476988950">Каб прымяніць абнаўленне, трэба перазапусціць прыладу.</translation>
+<translation id="1170240434488307589">Кнопка мікрафона прылады адключана.</translation>
 <translation id="1175572348579024023">Прагартаць</translation>
 <translation id="1178581264944972037">Прыпыніць</translation>
 <translation id="1181037720776840403">Выдаліць</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">Метады ўводу наладжаны адміністратарам.</translation>
 <translation id="1747827819627189109">Экранная клавіятура ўключана</translation>
 <translation id="1761222317188459878">Уключыць або выключыць падключэнне да сеткі. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705">Змянілася прызначэнне спалучэння клавіш <ph name="LAUNCHER_KEY_NAME" /> + кропка. Каб выканаць дзеянне клавішы Insert, націсніце <ph name="LAUNCHER_KEY_NAME" /> + Shift + Backspace.</translation>
 <translation id="1771761307086386028">Прагартаць управа</translation>
 <translation id="1782199038061388045">пераклад</translation>
 <translation id="1787955149152357925">Выключана</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index 37a8b67..75fbf62 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" />-এর জন্য অ্যাকাউন্টের তথ্য সহ ডায়ালগ খুলুন</translation>
 <translation id="1153356358378277386">যুক্ত করা ডিভাইসগুলি</translation>
 <translation id="1165712434476988950">আপটেড প্রয়োগ করতে ডিভাইস রিস্টার্ট করুন।</translation>
+<translation id="1170240434488307589">ডিভাইসের মাইক্রোফোন বোতাম মিউট করা আছে।</translation>
 <translation id="1175572348579024023">স্ক্রল করুন</translation>
 <translation id="1178581264944972037">বিরতি</translation>
 <translation id="1181037720776840403">সরান</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">আপনার প্রশাসক ইনপুটের পদ্ধতিগুলি কনফিগার করে।</translation>
 <translation id="1747827819627189109">অন-স্ক্রিন কীবোর্ড সক্ষম করা রয়েছে</translation>
 <translation id="1761222317188459878">নেটওয়ার্ক কানেকশন টগল করুন। <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705"><ph name="LAUNCHER_KEY_NAME" /> + পিরিয়ড কীবোর্ড শর্টকাট পরিবর্তিত হয়েছে। Insert বোতাম ব্যবহার করার জন্য, <ph name="LAUNCHER_KEY_NAME" /> বোতাম + Shift + Backspace প্রেস করুন।</translation>
 <translation id="1771761307086386028">ডান দিকে স্ক্রল করুন</translation>
 <translation id="1782199038061388045">অনুবাদ</translation>
 <translation id="1787955149152357925">বন্ধ আছে</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index 4d62cb6..65f427d8 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006">Otevřít dialogové okno s informacemi o účtu <ph name="USER_NAME" /></translation>
 <translation id="1153356358378277386">Spárovaná zařízení</translation>
 <translation id="1165712434476988950">K použití aktualizace je potřeba restartovat zařízení.</translation>
+<translation id="1170240434488307589">Tlačítko mikrofonu zařízení je deaktivováno.</translation>
 <translation id="1175572348579024023">Posunout</translation>
 <translation id="1178581264944972037">Pozastavit</translation>
 <translation id="1181037720776840403">Odebrat</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">Metody zadávání nastavuje váš administrátor.</translation>
 <translation id="1747827819627189109">Softwarová klávesnice je aktivována</translation>
 <translation id="1761222317188459878">Přepnout připojení k síti. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705">Klávesová zkratka <ph name="LAUNCHER_KEY_NAME" /> + tečka se změnila. Pokud chcete použít klávesu Insert, stiskněte klávesu <ph name="LAUNCHER_KEY_NAME" /> + Shift + Backspace.</translation>
 <translation id="1771761307086386028">Posunout doprava</translation>
 <translation id="1782199038061388045">překlad</translation>
 <translation id="1787955149152357925">Vyp</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb
index 7964702..52195bc 100644
--- a/ash/strings/ash_strings_eu.xtb
+++ b/ash/strings/ash_strings_eu.xtb
@@ -142,7 +142,7 @@
 <translation id="2079504693865562705">Ezkutatu aplikazioak apaletik</translation>
 <translation id="2083190527011054446">Gabon, <ph name="GIVEN_NAME" />:</translation>
 <translation id="209965399369889474">Ez zaude sarera konektatuta</translation>
-<translation id="2108303511227308752">Alt + Atzera tekla lasterbidea aldatu egin da. "Ezabatu" tekla erabiltzeko, sakatu <ph name="LAUNCHER_KEY_NAME" /> tekla + "Atzera" tekla.</translation>
+<translation id="2108303511227308752">Alt + Atzera tekla lasterbidea aldatu egin da. "Ezabatu" tekla erabiltzeko, sakatu <ph name="LAUNCHER_KEY_NAME" /> tekla + Atzera tekla.</translation>
 <translation id="2126242104232412123">Lan-eremu berria</translation>
 <translation id="2127372758936585790">Potentzia txikiko kargagailua</translation>
 <translation id="2132302418721800944">Grabatu pantaila osoa</translation>
@@ -397,7 +397,7 @@
 <translation id="425364040945105958">Ez dago SIM txartelik</translation>
 <translation id="4261870227682513959">Erakutsi jakinarazpen-ezarpenak. Desaktibatuta daude jakinarazpenak.</translation>
 <translation id="4269883910223712419">Gailuaren administratzaileak honako hauek egin ditzake:</translation>
-<translation id="4274537685965975248">Ktrl + Alt + behera egiteko gezi-tekla lasterbidea aldatu egin da. "Amaiera" tekla erabiltzeko, sakatu <ph name="LAUNCHER_KEY_NAME" /> tekla + eskuinera egiteko gezi-tekla.</translation>
+<translation id="4274537685965975248">Ktrl + Alt + behera egiteko gezi-tekla lasterbidea aldatu egin da. Amaiera tekla erabiltzeko, sakatu <ph name="LAUNCHER_KEY_NAME" /> tekla + eskuinera egiteko gezi-tekla.</translation>
 <translation id="4279490309300973883">Islatzen</translation>
 <translation id="4285498937028063278">Desainguratu</translation>
 <translation id="4294319844246081198">Egun on, <ph name="GIVEN_NAME" />:</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index f127e46..42ff2d1 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006">Avaa tietoikkuna: <ph name="USER_NAME" /></translation>
 <translation id="1153356358378277386">Laiteparit</translation>
 <translation id="1165712434476988950">Laite on käynnistettävä uudelleen, jotta päivitys voidaan ottaa käyttöön.</translation>
+<translation id="1170240434488307589">Laitteen mikrofonipainike on mykistetty.</translation>
 <translation id="1175572348579024023">Vieritä</translation>
 <translation id="1178581264944972037">Tauko</translation>
 <translation id="1181037720776840403">Poista</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">Järjestelmänvalvoja on määrittänyt syöttötavat.</translation>
 <translation id="1747827819627189109">Ruutunäppäimistö otettiin käyttöön</translation>
 <translation id="1761222317188459878">Laita verkkoyhteys päälle tai pois päältä. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705">Pikanäppäinyhdistelmä <ph name="LAUNCHER_KEY_NAME" /> + piste on muuttunut. Jos haluat käyttää Insert-näppäintä, paina <ph name="LAUNCHER_KEY_NAME" /> + vaihto + askelpalautin.</translation>
 <translation id="1771761307086386028">Vieritä oikealle</translation>
 <translation id="1782199038061388045">käännös</translation>
 <translation id="1787955149152357925">Pois päältä</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index f21f78ff..ba56f1c 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -371,7 +371,7 @@
 <translation id="4021716437419160885">नीचे स्क्रोल करें</translation>
 <translation id="4028481283645788203">ज़्यादा सुरक्षा के लिए पासवर्ड की ज़रूरत है</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
-<translation id="403337028234783023"><ph name="LAUNCHER_KEY_NAME" /> + Number कीबोर्ड शॉर्टकट बदल गया है. F बटन का इस्तेमाल करने के लिए, <ph name="LAUNCHER_KEY_NAME" /> बटन + ऊपर की लाइन का एक बटन दबाएं.</translation>
+<translation id="403337028234783023"><ph name="LAUNCHER_KEY_NAME" /> + Number कीबोर्ड शॉर्टकट बदल गया है. F बटन का इस्तेमाल करने के लिए, <ph name="LAUNCHER_KEY_NAME" /> बटन + ऊपर की लाइन का कोई एक बटन दबाएं.</translation>
 <translation id="4042660782729322247">आप अपनी स्क्रीन शेयर कर रहे हैं</translation>
 <translation id="4057003836560082631"><ph name="TOTAL_COUNT" /> ब्राउज़र टैब में से टैब <ph name="INDEX" />. <ph name="SITE_TITLE" />, <ph name="SITE_URL" /></translation>
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{बंद, एक ऐप}one{बंद, # ऐप}other{बंद, # ऐप}}</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index a4c32300..979ad34 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -142,7 +142,7 @@
 <translation id="2079504693865562705">הסתרת האפליקציות במדף</translation>
 <translation id="2083190527011054446">לילה טוב <ph name="GIVEN_NAME" />,</translation>
 <translation id="209965399369889474">לא מחובר לרשת</translation>
-<translation id="2108303511227308752">‏מקשי הקיצור Alt + ‏Backspace השתנו. כדי להשתמש במקש Delete, יש להקיש על המקש <ph name="LAUNCHER_KEY_NAME" /> + מקש Backspace.</translation>
+<translation id="2108303511227308752">‏מקשי הקיצור Alt + ‏Backspace הוחלפו. כדי לדמות את הפעולה של המקש Delete, יש להקיש על המקש <ph name="LAUNCHER_KEY_NAME" /> + המקש Backspace.</translation>
 <translation id="2126242104232412123">שולחן עבודה חדש</translation>
 <translation id="2127372758936585790">מטען בעל מתח נמוך</translation>
 <translation id="2132302418721800944">הקלטה של מסך מלא</translation>
@@ -370,7 +370,7 @@
 <translation id="4021716437419160885">גלילה למטה</translation>
 <translation id="4028481283645788203">יש להזין סיסמה כדי לענות על דרישות האבטחה המוגברות</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
-<translation id="403337028234783023">‏מקשי הקיצור <ph name="LAUNCHER_KEY_NAME" /> + ספרה השתנו. כדי להשתמש במקשי ה-F, יש להקיש על המקש <ph name="LAUNCHER_KEY_NAME" /> + מקש כלשהו בשורה העליונה של המקלדת.</translation>
+<translation id="403337028234783023">‏מקשי הקיצור <ph name="LAUNCHER_KEY_NAME" /> + ספרה הוחלפו. כדי לדמות את הפעולה של מקשי ה-F, יש להקיש על המקש <ph name="LAUNCHER_KEY_NAME" /> + מקש כלשהו בשורה העליונה של המקלדת.</translation>
 <translation id="4042660782729322247">המסך שלך משותף</translation>
 <translation id="4057003836560082631">כרטיסייה <ph name="INDEX" /> מתוך <ph name="TOTAL_COUNT" /> בדפדפן. <ph name="SITE_TITLE" />, <ph name="SITE_URL" /></translation>
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{מושבת לאפליקציה אחת}two{מושבת ל-2 אפליקציות}many{מושבת ל-# אפליקציות}other{מושבת ל-# אפליקציות}}</translation>
@@ -396,7 +396,7 @@
 <translation id="425364040945105958">‏אין כרטיס SIM</translation>
 <translation id="4261870227682513959">צפייה בהגדרות של הודעות. ההודעות מושבתות</translation>
 <translation id="4269883910223712419">מנהל המכשיר הזה יכול:</translation>
-<translation id="4274537685965975248">‏מקשי הקיצור Ctrl ‏+ ‏Alt + חץ למטה השתנו. כדי להשתמש במקש End, יש להקיש על <ph name="LAUNCHER_KEY_NAME" /> + החץ ימינה.</translation>
+<translation id="4274537685965975248">‏מקשי הקיצור Ctrl ‏+ ‏Alt + חץ למטה הוחלפו. כדי לדמות את הפעולה של המקש End, יש להקיש על <ph name="LAUNCHER_KEY_NAME" /> + החץ ימינה.</translation>
 <translation id="4279490309300973883">שיקוף</translation>
 <translation id="4285498937028063278">ביטול הצמדה</translation>
 <translation id="4294319844246081198">בוקר טוב <ph name="GIVEN_NAME" />,</translation>
@@ -405,7 +405,7 @@
 <translation id="4303223480529385476">הרחבה של אזור הסטטוס</translation>
 <translation id="4321179778687042513">ctrl</translation>
 <translation id="4321776623976362024">הקשת על מקש הקיצור של ניגודיות גבוהה. להפעיל אותה?</translation>
-<translation id="4322742403972824594">‏מקשי הקיצור Ctrl ‏+ ‏Alt + חץ למעלה השתנו. כדי להשתמש במקש Home, יש להקיש על <ph name="LAUNCHER_KEY_NAME" /> + החץ שמאלה.</translation>
+<translation id="4322742403972824594">‏מקשי הקיצור Ctrl ‏+ ‏Alt + חץ למעלה הוחלפו. כדי לדמות את הפעולה של המקש Home, יש להקיש על <ph name="LAUNCHER_KEY_NAME" /> + החץ שמאלה.</translation>
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4333628967105022692">‏אין תמיכה בדפדפן Lacros כאשר יש כמה משתמשים מחוברים.</translation>
 <translation id="4338109981321384717">זכוכית מגדלת</translation>
@@ -423,7 +423,7 @@
 <translation id="4445159312344259901">יש להיכנס כדי לבטל את הנעילה</translation>
 <translation id="4449692009715125625">{NUM_NOTIFICATIONS,plural, =1{התראה חשובה אחת}two{# התראות חשובות}many{# התראות חשובות}other{# התראות חשובות}}</translation>
 <translation id="4450893287417543264">אין להציג שוב</translation>
-<translation id="4451374464530248585">‏מקשי הקיצור Alt + חץ למטה השתנו. כדי להשתמש במקש Page Down, יש להקיש על <ph name="LAUNCHER_KEY_NAME" /> + החץ למטה.</translation>
+<translation id="4451374464530248585">‏מקשי הקיצור Alt + חץ למטה הוחלפו. כדי לדמות את הפעולה של המקש Page Down, יש להקיש על <ph name="LAUNCHER_KEY_NAME" /> + החץ למטה.</translation>
 <translation id="445864333228800152">ערב טוב,</translation>
 <translation id="4458688154122353284">הפסקה של הקלטת המסך</translation>
 <translation id="4472575034687746823">תחילת העבודה</translation>
@@ -715,7 +715,7 @@
 <translation id="6919251195245069855">לא ניתן היה לזהות את הכרטיס החכם שלך. יש לנסות שוב.</translation>
 <translation id="6945221475159498467">בחירה</translation>
 <translation id="6961121602502368900">השתקת הטלפון לא זמינה בפרופיל העבודה</translation>
-<translation id="6961840794482373852">‏מקשי הקיצור Alt + חץ למעלה השתנו. כדי להשתמש במקש Page Up, יש להקיש על <ph name="LAUNCHER_KEY_NAME" /> + החץ למעלה.</translation>
+<translation id="6961840794482373852">‏מקשי הקיצור Alt + חץ למעלה הוחלפו. כדי לדמות את הפעולה של המקש Page Up, יש להקיש על <ph name="LAUNCHER_KEY_NAME" /> + החץ למעלה.</translation>
 <translation id="6965382102122355670">אישור</translation>
 <translation id="6972754398087986839">תחילת העבודה</translation>
 <translation id="6981982820502123353">נגישות</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 0388e6b4..47b25c8 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" /> の情報ダイアログを開きます</translation>
 <translation id="1153356358378277386">ペア設定されたデバイス</translation>
 <translation id="1165712434476988950">アップデートを適用するにはデバイスの再起動が必要です。</translation>
+<translation id="1170240434488307589">デバイスのマイクボタンはミュートされています。</translation>
 <translation id="1175572348579024023">スクロール</translation>
 <translation id="1178581264944972037">一時停止</translation>
 <translation id="1181037720776840403">削除</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">入力方法は管理者によって設定されています。</translation>
 <translation id="1747827819627189109">画面キーボードが有効です</translation>
 <translation id="1761222317188459878">ネットワーク接続を切り替えます。<ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705">キーボード ショートカット「<ph name="LAUNCHER_KEY_NAME" />+ピリオド」が変更されました。Insert キーを使用するには、<ph name="LAUNCHER_KEY_NAME" />+Shift+Backspace キーを押してください。</translation>
 <translation id="1771761307086386028">右にスクロール</translation>
 <translation id="1782199038061388045">翻訳</translation>
 <translation id="1787955149152357925">オフ</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb
index d631433..5128eee 100644
--- a/ash/strings/ash_strings_kk.xtb
+++ b/ash/strings/ash_strings_kk.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" /> есептік жазбасы туралы ақпарат диалогтік терезесін ашу</translation>
 <translation id="1153356358378277386">Жұпталған құрылғылар</translation>
 <translation id="1165712434476988950">Жаңарту күшіне енуі үшін, құрылғыны қайта іске қосу қажет.</translation>
+<translation id="1170240434488307589">Құрылғы микрофонының дыбысы өшірілді.</translation>
 <translation id="1175572348579024023">Айналдыру</translation>
 <translation id="1178581264944972037">Кідірту</translation>
 <translation id="1181037720776840403">Өшіру</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">Енгізу әдістерін әкімші конфигурациялайды.</translation>
 <translation id="1747827819627189109">Экрандық пернетақта қосылды</translation>
 <translation id="1761222317188459878">Желі байланысын қосу/өшіру. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705"><ph name="LAUNCHER_KEY_NAME" /> + нүкте пернелер тіркесімінің функциясы өзгерді. Insert пернесінің әрекетін орындау үшін <ph name="LAUNCHER_KEY_NAME" /> + Shift + Backspace пернелер тіркесімін басыңыз.</translation>
 <translation id="1771761307086386028">Оңға айналдыру</translation>
 <translation id="1782199038061388045">аударма</translation>
 <translation id="1787955149152357925">Өшірулі</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb
index 6b139d5..d68ad07a 100644
--- a/ash/strings/ash_strings_km.xtb
+++ b/ash/strings/ash_strings_km.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006">បើក​ប្រអប់ព័ត៌មាន​សម្រាប់ <ph name="USER_NAME" /></translation>
 <translation id="1153356358378277386">ឧបករណ៍​ដែល​បាន​ផ្គូផ្គង</translation>
 <translation id="1165712434476988950">តម្រូវឱ្យ​ចាប់ផ្ដើម​ឧបករណ៍​ឡើងវិញ ដើម្បី​អនុវត្ត​កំណែថ្មី​។</translation>
+<translation id="1170240434488307589">ប៊ូតុងមីក្រូហ្វូន​របស់ឧបករណ៍ត្រូវ​បានបិទសំឡេង។</translation>
 <translation id="1175572348579024023">រំកិល</translation>
 <translation id="1178581264944972037">ផ្អាក</translation>
 <translation id="1181037720776840403">ដកចេញ</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">វិធីសាស្ត្រ​បញ្ចូលត្រូវ​បានកំណត់​រចនាសម្ព័ន្ធ​ដោយ​អ្នកគ្រប់គ្រង​របស់អ្នក។</translation>
 <translation id="1747827819627189109">ក្តារចុចលើអេក្រង់បានបើកដំណើរការ</translation>
 <translation id="1761222317188459878">បិទ/បើក​ការតភ្ជាប់​បណ្ដាញ។ <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705">បានប្ដូរ​ផ្លូវកាត់ក្ដារចុច <ph name="LAUNCHER_KEY_NAME" /> + Period។ ដើម្បីប្រើគ្រាប់ចុច Insert សូមចុចគ្រាប់ចុច <ph name="LAUNCHER_KEY_NAME" /> + Shift + Backspace។</translation>
 <translation id="1771761307086386028">រំកិល​ទៅស្តាំ</translation>
 <translation id="1782199038061388045">ការបកប្រែ</translation>
 <translation id="1787955149152357925">បិទ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index de2bd48..f1ce20e 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" /> 정보 대화상자 열기</translation>
 <translation id="1153356358378277386">페어링된 기기</translation>
 <translation id="1165712434476988950">업데이트를 적용하려면 기기를 다시 시작해야 합니다.</translation>
+<translation id="1170240434488307589">기기 마이크 버튼이 음소거되었습니다.</translation>
 <translation id="1175572348579024023">스크롤</translation>
 <translation id="1178581264944972037">일시중지</translation>
 <translation id="1181037720776840403">삭제</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">입력 방법은 관리자가 설정합니다.</translation>
 <translation id="1747827819627189109">터치 키보드 사용 설정됨</translation>
 <translation id="1761222317188459878">네트워크 연결을 전환합니다. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705"><ph name="LAUNCHER_KEY_NAME" /> + 마침표 단축키가 변경되었습니다. Insert 키를 사용하려면 <ph name="LAUNCHER_KEY_NAME" /> 키 + Shift + Backspace 키를 누르세요.</translation>
 <translation id="1771761307086386028">오른쪽으로 스크롤</translation>
 <translation id="1782199038061388045">번역</translation>
 <translation id="1787955149152357925">꺼짐</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
index beae1a8..25436f99 100644
--- a/ash/strings/ash_strings_ky.xtb
+++ b/ash/strings/ash_strings_ky.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" /> үчүн маалымат диалогун ачуу</translation>
 <translation id="1153356358378277386">Жупташкан түзмөктөр</translation>
 <translation id="1165712434476988950">Жаңыртууну иштетүү үчүн түзмөктү өчүрүп күйгүзүү талап кылынат.</translation>
+<translation id="1170240434488307589">Түзмөктөгү микрофон баскычы өчүрүлдү.</translation>
 <translation id="1175572348579024023">Сыдыруу</translation>
 <translation id="1178581264944972037">Бир азга токтотуу</translation>
 <translation id="1181037720776840403">Алып салуу</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">Киргизүү ыкмасы администратор тарабынан конфигурацияланат.</translation>
 <translation id="1747827819627189109">Экрандагы баскычтоп күйгүзүлдү</translation>
 <translation id="1761222317188459878">Тармакка туташууну өчүрүү/күйгүзүү. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705"><ph name="LAUNCHER_KEY_NAME" /> + Period баскычтарынын айкалышы өзгөрдү. Insert баскычын колдонуу үчүн <ph name="LAUNCHER_KEY_NAME" /> баскычын + Shift + Backspace баскычтарын басыңыз.</translation>
 <translation id="1771761307086386028">Оңго сыдыруу</translation>
 <translation id="1782199038061388045">котормосу</translation>
 <translation id="1787955149152357925">Өчүк</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 58f67425..8680403 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" /> എന്നതിനുള്ള വിവരങ്ങളുടെ ഡയലോഗ് തുറക്കുക</translation>
 <translation id="1153356358378277386">ജോടിയാക്കിയ ഉപകരണങ്ങൾ</translation>
 <translation id="1165712434476988950">അപ്‌ഡേറ്റ് ബാധകമാക്കാൻ ഉപകരണം റീസ്‌റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്.</translation>
+<translation id="1170240434488307589">ഉപകരണത്തിന്റെ മൈക്രോഫോൺ ബട്ടൺ മ്യൂട്ട് ചെയ്‌തിരിക്കുന്നു.</translation>
 <translation id="1175572348579024023">സ്‌ക്രോൾ ചെയ്യുക</translation>
 <translation id="1178581264944972037">അല്പംനിര്‍ത്തൂ</translation>
 <translation id="1181037720776840403">നീക്കംചെയ്യൂ</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">ഇൻപുട്ട് രീതികൾ കോൺഫിഗർ ചെയ്യുന്നത് നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്ററാണ്.</translation>
 <translation id="1747827819627189109">ഓൺ‌ സ്‌ക്രീൻ കീ‌ബോർഡ് പ്രവർത്തനക്ഷമമാക്കി</translation>
 <translation id="1761222317188459878">നെറ്റ്‌വർക്ക് കണക്ഷൻ മാറ്റുക. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705"><ph name="LAUNCHER_KEY_NAME" /> + പീരിയഡ് കീബോർഡ് കുറുക്കുവഴി മാറിയിട്ടുണ്ട്. Insert കീ ഉപയോഗിക്കാൻ, <ph name="LAUNCHER_KEY_NAME" /> കീ+ Shift + Backspace അമർത്തുക.</translation>
 <translation id="1771761307086386028">വലത്തോട്ട് സ്ക്രോൾ ചെയ്യുക</translation>
 <translation id="1782199038061388045">വിവർത്തനം</translation>
 <translation id="1787955149152357925">ഓഫാണ്</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index 33829d4e..1f6dbce 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" /> साठी माहिती डायलॉग उघडा</translation>
 <translation id="1153356358378277386">जोडलेली डिव्हाइस</translation>
 <translation id="1165712434476988950">अपडेट लागू करण्यासाठी डिव्हाइस रीस्टार्ट करणे आवश्यक आहे.</translation>
+<translation id="1170240434488307589">डिव्हाइसच्या मायक्रोफोनचे बटण म्यूट केले आहे.</translation>
 <translation id="1175572348579024023">स्क्रोल करा</translation>
 <translation id="1178581264944972037">विराम द्या</translation>
 <translation id="1181037720776840403">काढून टाका</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">तुमच्या ॲडमिनिस्ट्रेटरद्वारे कॉंफिगर केलेल्या इनपुट पद्धती.</translation>
 <translation id="1747827819627189109">ऑन-स्क्रीन कीबोर्ड सक्षम</translation>
 <translation id="1761222317188459878">नेटवर्क कनेक्शन टॉगल करा. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705"><ph name="LAUNCHER_KEY_NAME" /> + पीरियड कीबोर्ड शॉर्टकट बदलला आहे. Insert की वापरण्यासाठी, <ph name="LAUNCHER_KEY_NAME" /> की + Shift + Backspace दाबा.</translation>
 <translation id="1771761307086386028">उजवीकडे स्क्रोल करा</translation>
 <translation id="1782199038061388045">भाषांतर</translation>
 <translation id="1787955149152357925">बंद करा</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb
index 5b6ce61..b3b7db84 100644
--- a/ash/strings/ash_strings_ne.xtb
+++ b/ash/strings/ash_strings_ne.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" /> को जानकारीको डायलग खोल्नुहोस्</translation>
 <translation id="1153356358378277386">कनेक्ट गरिएका डिभाइस</translation>
 <translation id="1165712434476988950">यो अपडेट लागू गर्न डिभाइस रिस्टार्ट गर्नु पर्ने हुन्छ।</translation>
+<translation id="1170240434488307589">डिभाइसमा रहेको माइक्रोफोन बटन म्युट छ।</translation>
 <translation id="1175572348579024023">स्क्रोल गर्नुहोस्</translation>
 <translation id="1178581264944972037">पज गर्नुहोस्</translation>
 <translation id="1181037720776840403">हटाउनुहोस्</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">तपाईंको प्रशासकले इनपुट विधिहरूको कन्फिगर गर्नुभएको हो।</translation>
 <translation id="1747827819627189109">अन-स्क्रिन किबोर्ड सक्षम गरियो</translation>
 <translation id="1761222317188459878">नेटवर्क जडान टगल गर्नुहोस्। <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705"><ph name="LAUNCHER_KEY_NAME" /> + पिरियड किबोर्ड सर्टकट परिवर्तन गरिएको छ। Insert की प्रयोग गर्न <ph name="LAUNCHER_KEY_NAME" /> की + Shift + Backspace थिच्नुहोस्।</translation>
 <translation id="1771761307086386028">दायाँतिर स्क्रोल गर्नुहोस्</translation>
 <translation id="1782199038061388045">अनुवाद</translation>
 <translation id="1787955149152357925">अफ छ</translation>
@@ -792,7 +794,7 @@
 <translation id="7607002721634913082">रोकिएको छ</translation>
 <translation id="7618774594543487847">तटस्थ</translation>
 <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation>
-<translation id="7633755430369750696">नजिकैका यन्त्रसँग सेयर गर्ने सुविधासम्बन्धी सेटिङ देखाउनुहोस्।</translation>
+<translation id="7633755430369750696">नजिकैका डिभाइससँग सेयर गर्ने सुविधासम्बन्धी सेटिङ देखाउनुहोस्।</translation>
 <translation id="7641938616688887143">रेकर्ड गर्नुहोस्</translation>
 <translation id="7642647758716480637"><ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" /> को सेटिङ खोल्नुहोस्</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (मालिक)</translation>
@@ -985,7 +987,7 @@
 <translation id="9105450214093926548">Lacros ब्राउजर चलिरहेका बेला अर्का प्रयोगकर्ताले साइन इन गर्न मिल्दैन। कृपया Lacros मा अर्को ब्राउजर प्रोफाइल प्रयोग गर्नुहोस् वा Lacros बन्द गरी फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="9133335900048457298">संरक्षित सामग्री रेकर्ड गर्न मिल्दैन</translation>
 <translation id="9151726767154816831">अद्यावधिक गर्न रिस्टार्ट गरी powerwash गर्नुहोस्</translation>
-<translation id="9166331175924255663">नजिकैका यन्त्रसँग सेयर गर्ने सुविधाको उच्च भिजिबिलिटी टगल गर्नुहोस्।</translation>
+<translation id="9166331175924255663">नजिकैका डिभाइससँग सेयर गर्ने सुविधाको उच्च भिजिबिलिटी टगल गर्नुहोस्।</translation>
 <translation id="9168436347345867845">यो कार्य पछि गर्नुहोस्‌</translation>
 <translation id="9179259655489829027">यस सुविधाले तपाईंलाई पासवर्ड प्रविष्ट नगरिकनै साइन इन भएका जुनसुकै प्रयोगकर्तामाथि द्रुत रूपमा पहुँच राख्न दिन्छ।आफूले विश्वास गर्ने खाताहरूमा मात्र यो सुविधाको प्रयोग गर्नुहोस्।</translation>
 <translation id="9183456764293710005">फुल स्क्रिन म्याग्निफायर</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb
index 9dcd433..af8e2a2 100644
--- a/ash/strings/ash_strings_or.xtb
+++ b/ash/strings/ash_strings_or.xtb
@@ -140,6 +140,7 @@
 <translation id="2079504693865562705">ସେଲ୍ଫରେ ଥିବା ଆପଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ</translation>
 <translation id="2083190527011054446">ଶୁଭ ରାତ୍ରି <ph name="GIVEN_NAME" />,</translation>
 <translation id="209965399369889474">ନେଟ୍‌ୱାର୍କ ସହିତ ସଂଯୁକ୍ତ ହୋଇ ନାହିଁ</translation>
+<translation id="2108303511227308752">Alt + Backspace କୀବୋର୍ଡ ସର୍ଟକଟ୍ ବଦଳି ଯାଇଛି। Delete କୀକୁ ବ୍ୟବହାର କରିବା ପାଇଁ, <ph name="LAUNCHER_KEY_NAME" /> କୀ + Backspace ଦବାନ୍ତୁ।</translation>
 <translation id="2126242104232412123">ନୂଆ ଡେସ୍କ</translation>
 <translation id="2127372758936585790">କମ୍-ଶକ୍ତି ବିଶିଷ୍ଟ ଚାର୍ଜର୍</translation>
 <translation id="2132302418721800944">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍ ରେକର୍ଡ କରନ୍ତୁ</translation>
@@ -367,6 +368,7 @@
 <translation id="4021716437419160885">ତଳକୁ ସ୍କ୍ରୋଲ୍ କରନ୍ତୁ</translation>
 <translation id="4028481283645788203">ଅଧିକ ସୁରକ୍ଷା ପାଇଁ ପାସୱାର୍ଡ ଆବଶ୍ୟକ</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="403337028234783023"><ph name="LAUNCHER_KEY_NAME" /> + Number କୀବୋର୍ଡ ସର୍ଟକଟ୍ ବଦଳି ଯାଇଛି। F-କୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିବା ପାଇଁ, <ph name="LAUNCHER_KEY_NAME" /> କୀ ଶୀର୍ଷ ଧାଡ଼ିରେ ଥିବା ଏକ କୀକୁ ଦବାନ୍ତୁ।</translation>
 <translation id="4042660782729322247">ଆପଣ, ଆପଣଙ୍କର ସ୍କ୍ରିନ୍ ସେୟାର୍ କରୁଛନ୍ତି</translation>
 <translation id="4057003836560082631"><ph name="TOTAL_COUNT" />ଟିରୁ <ph name="INDEX" /> ନମ୍ବର ବ୍ରାଉଜର୍ ଟାବ୍। <ph name="SITE_TITLE" />, <ph name="SITE_URL" /></translation>
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{ଏକ ଆପ୍ ପାଇଁ ବନ୍ଦ ଅଛି}other{#ଟି ଆପ୍ସ ପାଇଁ ବନ୍ଦ ଅଛି}}</translation>
@@ -392,6 +394,7 @@
 <translation id="425364040945105958">କୌଣସି SIM ନାହିଁ</translation>
 <translation id="4261870227682513959">ବିଜ୍ଞପ୍ତି ସେଟିଂସ୍ ଦେଖାନ୍ତୁ। ବିଜ୍ଞପ୍ତି ବନ୍ଦ ଅଛି</translation>
 <translation id="4269883910223712419">ଏହା କରିବାକୁ ଏହି ଡିଭାଇସ୍‌ର ବ୍ୟବସ୍ଥାପକଙ୍କ କ୍ଷମତା ରହିଛି:</translation>
+<translation id="4274537685965975248">Ctrl + Alt + ତଳ ତୀର କୀବୋର୍ଡ ସର୍ଟକଟ୍ ବଦଳି ଯାଇଛି। End କୀକୁ ବ୍ୟବହାର କରିବା ପାଇଁ, <ph name="LAUNCHER_KEY_NAME" /> କୀ + ଡାହାଣ ତୀର କୀ ଦବାନ୍ତୁ।</translation>
 <translation id="4279490309300973883">ପ୍ରତିଫଳନ</translation>
 <translation id="4285498937028063278">ଅନ୍‌ପିନ୍ କରନ୍ତୁ</translation>
 <translation id="4294319844246081198">ସୁପ୍ରଭାତ <ph name="GIVEN_NAME" />,</translation>
@@ -400,6 +403,7 @@
 <translation id="4303223480529385476">ସ୍ଥିତି କ୍ଷେତ୍ର ବିସ୍ତାର କରନ୍ତୁ</translation>
 <translation id="4321179778687042513">ctrl</translation>
 <translation id="4321776623976362024">ଉଚ୍ଚ କଣ୍ଟ୍ରାଷ୍ଟ ପାଇଁ ଆପଣ କୀବୋର୍ଡ ସର୍ଟକଟ୍‍ ଦବାଇଛନ୍ତି। ଆପଣ ଏହାକୁ ଚାଲୁ କରିବାକୁ ଚାହୁଁଛନ୍ତି କି?</translation>
+<translation id="4322742403972824594">Ctrl + Alt + ଉପର ତୀର କୀବୋର୍ଡ ସର୍ଟକଟ୍ ବଦଳି ଯାଇଛି। Home କୀକୁ ବ୍ୟବହାର କରିବା ପାଇଁ, <ph name="LAUNCHER_KEY_NAME" /> କୀ + ବାମ ତୀର କୀ ଦବାନ୍ତୁ।</translation>
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4333628967105022692">ଏକାଧିକ ଉପଯୋଗକର୍ତ୍ତା ସାଇନ୍ ଇନ୍ କରିଥିବା ସମୟରେ Lacros ବ୍ରାଉଜର୍ ସମର୍ଥିତ ନୁହେଁ।</translation>
 <translation id="4338109981321384717">ମାଗ୍ନିଫାଇଂ ଗ୍ଲାସ୍</translation>
@@ -417,6 +421,7 @@
 <translation id="4445159312344259901">ଅନଲକ କରିବାକୁ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation>
 <translation id="4449692009715125625">{NUM_NOTIFICATIONS,plural, =1{1ଟି ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ ବିଜ୍ଞପ୍ତି}other{#ଟି ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ ବିଜ୍ଞପ୍ତି}}</translation>
 <translation id="4450893287417543264">ଆଉ ଦେଖାନ୍ତୁ ନାହିଁ</translation>
+<translation id="4451374464530248585">Alt + ତଳ ତୀର କୀବୋର୍ଡ ସର୍ଟକଟ୍ ବଦଳି ଯାଇଛି। Page Down କୀକୁ ବ୍ୟବହାର କରିବା ପାଇଁ, <ph name="LAUNCHER_KEY_NAME" /> କୀ + ତଳ ତୀର କୀ ଦବାନ୍ତୁ।</translation>
 <translation id="445864333228800152">ଶୁଭ ସନ୍ଧ୍ୟା,</translation>
 <translation id="4458688154122353284">ସ୍କ୍ରିନ୍ ରେକର୍ଡିଂ ବନ୍ଦ କରନ୍ତୁ</translation>
 <translation id="4472575034687746823">ଆରମ୍ଭ କରନ୍ତୁ</translation>
@@ -708,6 +713,7 @@
 <translation id="6919251195245069855">ଆପଣଙ୍କର ସ୍ମାର୍ଟ କାର୍ଡକୁ ଚିହ୍ନଟ କରିପାରୁ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="6945221475159498467">ଚୟନ କରନ୍ତୁ</translation>
 <translation id="6961121602502368900">ୱାର୍କ ପ୍ରୋଫାଇଲରେ ସାଇଲେନ୍ସ ଫୋନ୍ ଫିଚର୍ ଉପଲବ୍ଧ ନାହିଁ</translation>
+<translation id="6961840794482373852">Alt + ଉପର ତୀର କୀବୋର୍ଡ ସର୍ଟକଟ୍ ବଦଳି ଯାଇଛି। Page Up କୀକୁ ବ୍ୟବହାର କରିବା ପାଇଁ, <ph name="LAUNCHER_KEY_NAME" /> କୀ + ଉପର ତୀର କୀ ଦବାନ୍ତୁ।</translation>
 <translation id="6965382102122355670">ଓକେ ବଟନ୍</translation>
 <translation id="6972754398087986839">ଆରମ୍ଭ କରନ୍ତୁ</translation>
 <translation id="6981982820502123353">ଆକ୍ସେସିବିଲିଟୀ</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index 3abd135f..96759d17 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -140,6 +140,7 @@
 <translation id="2079504693865562705">ஆப்ஸை ஷெல்ஃபில் மறைக்கும்</translation>
 <translation id="2083190527011054446">இரவு வணக்கம் <ph name="GIVEN_NAME" />,</translation>
 <translation id="209965399369889474">நெட்வொர்க்குடன் இணைக்கப்படவில்லை</translation>
+<translation id="2108303511227308752">இந்தக் கீபோர்டு ஷார்ட்கட் மாற்றப்பட்டுள்ளது: Alt + Backspace. Delete பட்டனைப் பயன்படுத்த, <ph name="LAUNCHER_KEY_NAME" /> பட்டன் + backspace பட்டனை அழுத்தவும்.</translation>
 <translation id="2126242104232412123">புதிய டெஸ்க்</translation>
 <translation id="2127372758936585790">குறைந்த சக்திகொண்ட சார்ஜர்</translation>
 <translation id="2132302418721800944">முழுத்திரையையும் ரெக்கார்டு செய்யும்</translation>
@@ -367,6 +368,7 @@
 <translation id="4021716437419160885">கீழே நகர்த்து</translation>
 <translation id="4028481283645788203">மேலும் பாதுகாப்பிற்குக் கடவுச்சொல் அவசியம்</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="403337028234783023">இந்தக் கீபோர்டு ஷார்ட்கட் மாற்றப்பட்டுள்ளது: <ph name="LAUNCHER_KEY_NAME" /> + எண். F பட்டன்களைப் பயன்படுத்த, <ph name="LAUNCHER_KEY_NAME" /> பட்டன் + மேல் வரிசையில் உள்ள ஒரு பட்டனை அழுத்தவும்.</translation>
 <translation id="4042660782729322247">திரையைப் பகிர்ந்துள்ளீர்கள்</translation>
 <translation id="4057003836560082631">உலாவி தாவல் <ph name="INDEX" />/<ph name="TOTAL_COUNT" />. <ph name="SITE_TITLE" />, <ph name="SITE_URL" /></translation>
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{ஒரு ஆப்ஸுக்கு ஆஃப்}other{# ஆப்ஸுக்கு ஆஃப்}}</translation>
@@ -392,6 +394,7 @@
 <translation id="425364040945105958">சிம் இல்லை</translation>
 <translation id="4261870227682513959">அறிவிப்பு அமைப்புகளைக் காண்பிக்கும். அறிவிப்புகள் முடக்கப்பட்டுள்ளன</translation>
 <translation id="4269883910223712419">இந்தச் சாதனத்தின் நிர்வாகி இவற்றைச் செய்ய முடியும்:</translation>
+<translation id="4274537685965975248">இந்தக் கீபோர்டு ஷார்ட்கட் மாற்றப்பட்டுள்ளது: Ctrl + Alt + கீழ்நோக்கிய அம்புக்குறி. End பட்டனைப் பயன்படுத்த, <ph name="LAUNCHER_KEY_NAME" /> பட்டன் + வலது அம்புக்குறி பட்டனை அழுத்தவும்.</translation>
 <translation id="4279490309300973883">பிரதிபலிக்கிறது</translation>
 <translation id="4285498937028063278">பிரித்தெடு</translation>
 <translation id="4294319844246081198">காலை வணக்கம் <ph name="GIVEN_NAME" />,</translation>
@@ -400,6 +403,7 @@
 <translation id="4303223480529385476">நிலைப் பகுதியை விரிவாக்கும்</translation>
 <translation id="4321179778687042513">ctrl</translation>
 <translation id="4321776623976362024">உயர் ஒளி மாறுபாட்டின் கீபோர்டு ஷார்ட்கட்டை அழுத்தியுள்ளீர்கள். அதை இயக்க விரும்புகிறீர்களா?</translation>
+<translation id="4322742403972824594">இந்தக் கீபோர்டு ஷார்ட்கட் மாற்றப்பட்டுள்ளது: Ctrl + Alt + மேல்நோக்கிய அம்புக்குறி. Home பட்டனைப் பயன்படுத்த, <ph name="LAUNCHER_KEY_NAME" /> பட்டன் + இடது அம்புக்குறி பட்டனை அழுத்தவும்.</translation>
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4333628967105022692">பல பயனர்கள் உள்நுழைந்திருக்கும்போது Lacros உலாவியைப் பயன்படுத்த இயலாது.</translation>
 <translation id="4338109981321384717">உருப்பெருக்கி</translation>
@@ -417,6 +421,7 @@
 <translation id="4445159312344259901">அன்லாக் செய்ய உள்நுழைக</translation>
 <translation id="4449692009715125625">{NUM_NOTIFICATIONS,plural, =1{ஒரு முக்கியமான அறிவிப்பு}other{# முக்கியமான அறிவிப்புகள்}}</translation>
 <translation id="4450893287417543264">மீண்டும் காட்டாதே</translation>
+<translation id="4451374464530248585">இந்தக் கீபோர்டு ஷார்ட்கட் மாற்றப்பட்டுள்ளது: Alt + கீழ்நோக்கிய அம்புக்குறி. Page Down பட்டனைப் பயன்படுத்த, <ph name="LAUNCHER_KEY_NAME" /> பட்டன் + கீழ்நோக்கிய அம்புக்குறி பட்டனை அழுத்தவும்.</translation>
 <translation id="445864333228800152">மாலை வணக்கம்,</translation>
 <translation id="4458688154122353284">ஸ்கிரீனை ரெக்கார்டு செய்வதை நிறுத்து</translation>
 <translation id="4472575034687746823">தொடங்குக</translation>
@@ -708,6 +713,7 @@
 <translation id="6919251195245069855">உங்கள் ஸ்மார்ட் கார்டை அடையாளம் காண முடியவில்லை. மீண்டும் முயலவும்.</translation>
 <translation id="6945221475159498467">தேர்ந்தெடு</translation>
 <translation id="6961121602502368900">பணிக் கணக்கின் மூலம், மொபைலை நிசப்தமாக்குதல் அம்சத்தைப் பயன்படுத்த முடியாது</translation>
+<translation id="6961840794482373852">இந்தக் கீபோர்டு ஷார்ட்கட் மாற்றப்பட்டுள்ளது: Alt + மேல்நோக்கிய அம்புக்குறி. Page Up பட்டனைப் பயன்படுத்த, <ph name="LAUNCHER_KEY_NAME" /> பட்டன் + மேல்நோக்கிய அம்புக்குறி பட்டனை அழுத்தவும்.</translation>
 <translation id="6965382102122355670">சரி</translation>
 <translation id="6972754398087986839">தொடங்குக</translation>
 <translation id="6981982820502123353">அணுகல் தன்மை</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index 88eaf6a..a85ddf8 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -140,6 +140,7 @@
 <translation id="2079504693865562705">షెల్ఫ్‌లో ఉన్న యాప్‌లను దాచు</translation>
 <translation id="2083190527011054446">శుభరాత్రి <ph name="GIVEN_NAME" />,</translation>
 <translation id="209965399369889474">నెట్‌వర్క్‌కు కనెక్ట్ కాలేదు</translation>
+<translation id="2108303511227308752">Alt + బ్యాక్‌స్పేస్ కీబోర్డ్ షార్ట్‌కట్ మార్చబడింది. తొలగింపు కీని ఉపయోగించడానికి, <ph name="LAUNCHER_KEY_NAME" /> కీ +బ్యాక్‌స్పేస్‌ను నొక్కండి.</translation>
 <translation id="2126242104232412123">కొత్త డెస్క్</translation>
 <translation id="2127372758936585790">తక్కువ-పవర్ గల ఛార్జర్</translation>
 <translation id="2132302418721800944">ఫుల్ స్క్రీన్‌ను రికార్డ్ చేయండి</translation>
@@ -368,6 +369,7 @@
 <translation id="4021716437419160885">కిందికి స్క్రోల్ చేయి</translation>
 <translation id="4028481283645788203">మరింత సెక్యూరిటీ కోసం పాస్‌వర్డ్‌ కావాలి</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="403337028234783023"><ph name="LAUNCHER_KEY_NAME" /> + నంబర్ కీబోర్డ్ షార్ట్‌కట్ మార్చబడింది. F-కీలను ఉపయోగించడానికి, <ph name="LAUNCHER_KEY_NAME" /> కీ + ఎగువ అడ్డు వరుసలోని కీను నొక్కండి.</translation>
 <translation id="4042660782729322247">మీరు మీ స్క్రీన్‌ను షేర్ చేస్తున్నారు</translation>
 <translation id="4057003836560082631"><ph name="TOTAL_COUNT" />లో <ph name="INDEX" />వ బ్రౌజర్ ట్యాబ్. <ph name="SITE_TITLE" />, <ph name="SITE_URL" /></translation>
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{ఒక యాప్‌కు ఆఫ్}other{# యాప్‌లకు ఆఫ్}}</translation>
@@ -393,6 +395,7 @@
 <translation id="425364040945105958">SIM లేదు</translation>
 <translation id="4261870227682513959">నోటిఫికేషన్ సెట్టింగ్‌లను చూపుతుంది. నోటిఫికేషన్‌లు ఆఫ్ చేయబడి ఉన్నాయి</translation>
 <translation id="4269883910223712419">ఈ పరికర నిర్వాహకుడికి వీటిని చేయగల సామర్థ్యం ఉంది:</translation>
+<translation id="4274537685965975248">Ctrl + Alt + కింది వైపు బాణం కీబోర్డ్ షార్ట్‌కట్ మార్చబడింది. ముగింపు కీని ఉపయోగించడానికి, <ph name="LAUNCHER_KEY_NAME" /> కీ + కుడి వైపు బాణం కీను నొక్కండి.</translation>
 <translation id="4279490309300973883">మిర్రరింగ్</translation>
 <translation id="4285498937028063278">అన్‌పిన్ చేయి</translation>
 <translation id="4294319844246081198">శుభోదయం <ph name="GIVEN_NAME" />,</translation>
@@ -401,6 +404,7 @@
 <translation id="4303223480529385476">స్టేటస్ ప్రాంతాన్ని విస్తరించండి</translation>
 <translation id="4321179778687042513">ctrl</translation>
 <translation id="4321776623976362024">మీరు అధిక కాంట్రాస్ట్‌ కోసం కీబోర్డ్ షార్ట్‌కట్‌ను నొక్కారు. మీరు దీన్ని ఆన్ చేయాలనుకుంటున్నారా?</translation>
+<translation id="4322742403972824594">Ctrl + Alt +పై వైపు బాణం కీబోర్డ్ షార్ట్‌కట్ మార్చబడింది. హోమ్ కీని ఉపయోగించడానికి, <ph name="LAUNCHER_KEY_NAME" /> కీ + ఎడమ వైపు బాణం కీను నొక్కండి.</translation>
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4333628967105022692">పలు యూజర్‌లు సైన్ ఇన్ చేసి ఉన్నప్పుడు Lacros కు సపోర్ట్ లేదు .</translation>
 <translation id="4338109981321384717">భూతద్దం</translation>
@@ -418,6 +422,7 @@
 <translation id="4445159312344259901">అన్‌లాక్ కోసం సైన్ ఇన్ చేయండి</translation>
 <translation id="4449692009715125625">{NUM_NOTIFICATIONS,plural, =1{1 ముఖ్యమైన నోటిఫికేషన్}other{# ముఖ్యమైన నోటిఫికేషన్‌లు}}</translation>
 <translation id="4450893287417543264">మళ్లీ చూపవద్దు</translation>
+<translation id="4451374464530248585">Alt + కింది వైపు బాణం కీబోర్డ్ షార్ట్‌కట్ మార్చబడింది. పేజీ కింది కీని ఉపయోగించడానికి, <ph name="LAUNCHER_KEY_NAME" /> కీ + కింది వైపు బాణం కీను నొక్కండి.</translation>
 <translation id="445864333228800152">గుడ్ ఈవెనింగ్,</translation>
 <translation id="4458688154122353284">స్క్రీన్ రికార్డింగ్‌ను ఆపివేయి</translation>
 <translation id="4472575034687746823">ప్రారంభించండి</translation>
@@ -709,6 +714,7 @@
 <translation id="6919251195245069855">మీ స్మార్ట్ కార్డ్‌ను గుర్తించడం సాధ్యం కాలేదు. మళ్ళీ ప్రయత్నించండి.</translation>
 <translation id="6945221475159498467">ఎంచుకోండి</translation>
 <translation id="6961121602502368900">వర్క్ ప్రొఫైల్‌లో ఫోన్‌ను సైలెంట్‌లో పెట్టే ఫీచర్ అందుబాటులో లేదు</translation>
+<translation id="6961840794482373852">Alt +పై వైపు బాణం కీబోర్డ్ షార్ట్‌కట్ మార్చబడింది. పేజీ పై కీని ఉపయోగించడానికి, <ph name="LAUNCHER_KEY_NAME" /> కీ + పై వైపు బాణం కీను నొక్కండి.</translation>
 <translation id="6965382102122355670">సరే</translation>
 <translation id="6972754398087986839">ప్రారంభించండి</translation>
 <translation id="6981982820502123353">యాక్సెసిబిలిటీ</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index f653b3e5..dc61d32c 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006">เปิดกล่องโต้ตอบข้อมูลของ <ph name="USER_NAME" /></translation>
 <translation id="1153356358378277386">อุปกรณ์ที่จับคู่</translation>
 <translation id="1165712434476988950">ต้องรีสตาร์ทอุปกรณ์เพื่อใช้การอัปเดต</translation>
+<translation id="1170240434488307589">ไมโครโฟนของอุปกรณ์ปิดเสียงอยู่</translation>
 <translation id="1175572348579024023">เลื่อน</translation>
 <translation id="1178581264944972037">หยุดชั่วคราว</translation>
 <translation id="1181037720776840403">นำออก</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">ผู้ดูแลระบบเป็นคนกำหนดค่าวิธีการป้อนข้อมูล</translation>
 <translation id="1747827819627189109">เปิดใช้แป้นพิมพ์บนหน้าจออยู่</translation>
 <translation id="1761222317188459878">เปิด/ปิดการเชื่อมต่อเครือข่าย <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705">มีการเปลี่ยนแปลงแป้นพิมพ์ลัด <ph name="LAUNCHER_KEY_NAME" /> + จุด หากต้องการใช้แป้น Insert ให้กดแป้น <ph name="LAUNCHER_KEY_NAME" /> + Shift + Backspace</translation>
 <translation id="1771761307086386028">เลื่อนไปทางขวา</translation>
 <translation id="1782199038061388045">การแปล</translation>
 <translation id="1787955149152357925">ปิด</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index b09991b..f2944bd 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006">Відкрити вікно з інформацією про обліковий запис <ph name="USER_NAME" /></translation>
 <translation id="1153356358378277386">Підключені пристрої</translation>
 <translation id="1165712434476988950">Щоб застосувати оновлення, потрібно перезапустити пристрій.</translation>
+<translation id="1170240434488307589">Мікрофон пристрою вимкнено.</translation>
 <translation id="1175572348579024023">Прокрутити</translation>
 <translation id="1178581264944972037">Пауза</translation>
 <translation id="1181037720776840403">Видалити</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">Адміністратор налаштував методи введення.</translation>
 <translation id="1747827819627189109">Екранну клавіатуру ввімкнено</translation>
 <translation id="1761222317188459878">Увімкнути/вимкнути з’єднання з мережею. <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705">Комбінацію клавіш <ph name="LAUNCHER_KEY_NAME" /> + крапка змінено. Щоб скористатися клавішею Insert, натисніть <ph name="LAUNCHER_KEY_NAME" /> + Shift + Backspace.</translation>
 <translation id="1771761307086386028">Прокрутити праворуч</translation>
 <translation id="1782199038061388045">переклад</translation>
 <translation id="1787955149152357925">Вимкнено</translation>
diff --git a/ash/strings/ash_strings_ur.xtb b/ash/strings/ash_strings_ur.xtb
index 0b53a33..db42354 100644
--- a/ash/strings/ash_strings_ur.xtb
+++ b/ash/strings/ash_strings_ur.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006"><ph name="USER_NAME" /> کیلئے معلومات کا ڈائلاگ کھولیں</translation>
 <translation id="1153356358378277386">جوڑا بنائے ہوئے آلات</translation>
 <translation id="1165712434476988950">اپ ڈیٹ لاگو کرنے کیلئے آلے کو ری سٹارٹ کرنا درکار ہے۔</translation>
+<translation id="1170240434488307589">آلے کا مائیکروفون خاموش کیا ہوا ہے۔</translation>
 <translation id="1175572348579024023">اسکرول کریں</translation>
 <translation id="1178581264944972037">موقوف کریں</translation>
 <translation id="1181037720776840403">ہٹائیں</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">ان پٹ کے طریقے آپ کے منتظم کے ذریعے کنفیگر کئے جاتے ہیں۔</translation>
 <translation id="1747827819627189109">آن اسکرین کی بورڈ فعال ہے</translation>
 <translation id="1761222317188459878">نیٹ ورک کنکشن ٹوگل کریں۔ <ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705">‏Period + <ph name="LAUNCHER_KEY_NAME" /> کی بورڈ شارٹ کٹ تبدیل ہو گیا ہے۔ انسرٹ کلید کا استعمال کرنے کیلئے <ph name="LAUNCHER_KEY_NAME" /> کلید + شفٹ + بیک اسپیس کو دبائیں۔</translation>
 <translation id="1771761307086386028">دائیں اسکرول کریں</translation>
 <translation id="1782199038061388045">ترجمہ</translation>
 <translation id="1787955149152357925">آف</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index f2d711d..7b97535 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -140,6 +140,7 @@
 <translation id="2079504693865562705">隐藏任务栏中的应用</translation>
 <translation id="2083190527011054446"><ph name="GIVEN_NAME" />,晚安!</translation>
 <translation id="209965399369889474">未连接到网络</translation>
+<translation id="2108303511227308752">键盘快捷键“Alt + 退格键”已更改。若要使用 Delete 键,请按<ph name="LAUNCHER_KEY_NAME" />键 + 退格键。</translation>
 <translation id="2126242104232412123">新桌面</translation>
 <translation id="2127372758936585790">低功率充电器</translation>
 <translation id="2132302418721800944">录制整个屏幕</translation>
@@ -367,6 +368,7 @@
 <translation id="4021716437419160885">向下滚动</translation>
 <translation id="4028481283645788203">需要输入密码以增强安全性</translation>
 <translation id="4032485810211612751"><ph name="HOURS" />:<ph name="MINUTES" />:<ph name="SECONDS" /></translation>
+<translation id="403337028234783023">键盘快捷键“<ph name="LAUNCHER_KEY_NAME" /> + 数字键”已更改。若要使用功能键,请按<ph name="LAUNCHER_KEY_NAME" />键 + 顶排的某个键。</translation>
 <translation id="4042660782729322247">您正在共享屏幕</translation>
 <translation id="4057003836560082631">第 <ph name="INDEX" /> 个浏览器标签页,共 <ph name="TOTAL_COUNT" /> 个。<ph name="SITE_TITLE" />,<ph name="SITE_URL" /></translation>
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{对 1 个应用关闭}other{对 # 个应用关闭}}</translation>
@@ -392,6 +394,7 @@
 <translation id="425364040945105958">无 SIM 卡</translation>
 <translation id="4261870227682513959">显示通知设置。通知已关闭</translation>
 <translation id="4269883910223712419">此设备的管理员能够:</translation>
+<translation id="4274537685965975248">键盘快捷键“Ctrl + Alt + 向下键”已更改。若要使用 End 键,请按<ph name="LAUNCHER_KEY_NAME" />键 + 向右键。</translation>
 <translation id="4279490309300973883">正在镜像</translation>
 <translation id="4285498937028063278">取消固定</translation>
 <translation id="4294319844246081198"><ph name="GIVEN_NAME" />,上午好!</translation>
@@ -400,6 +403,7 @@
 <translation id="4303223480529385476">展开状态区</translation>
 <translation id="4321179778687042513">ctrl</translation>
 <translation id="4321776623976362024">您按下了高对比度的键盘快捷键。要开启这项功能吗?</translation>
+<translation id="4322742403972824594">键盘快捷键“Ctrl + Alt + 向上键”已更改。若要使用 Home 键,请按<ph name="LAUNCHER_KEY_NAME" />键 + 向左键。</translation>
 <translation id="4331809312908958774">Chrome 操作系统</translation>
 <translation id="4333628967105022692">当有多个用户登录时,Lacros 不受支持。</translation>
 <translation id="4338109981321384717">放大镜</translation>
@@ -417,6 +421,7 @@
 <translation id="4445159312344259901">登录即可解锁</translation>
 <translation id="4449692009715125625">{NUM_NOTIFICATIONS,plural, =1{1 条重要通知}other{# 条重要通知}}</translation>
 <translation id="4450893287417543264">不再显示</translation>
+<translation id="4451374464530248585">键盘快捷键“Alt + 向下键”已更改。若要使用 Page Down 键,请按<ph name="LAUNCHER_KEY_NAME" />键 + 向下键。</translation>
 <translation id="445864333228800152">晚上好!</translation>
 <translation id="4458688154122353284">停止屏幕录制</translation>
 <translation id="4472575034687746823">开始使用</translation>
@@ -708,6 +713,7 @@
 <translation id="6919251195245069855">无法识别您的智能卡,请重试。</translation>
 <translation id="6945221475159498467">选择</translation>
 <translation id="6961121602502368900">工作资料不支持“将手机设为静音”功能</translation>
+<translation id="6961840794482373852">键盘快捷键“Alt + 向上键”已更改。若要使用 Page Up 键,请按<ph name="LAUNCHER_KEY_NAME" />键 + 向上键。</translation>
 <translation id="6965382102122355670">确定</translation>
 <translation id="6972754398087986839">开始使用</translation>
 <translation id="6981982820502123353">无障碍</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 59f605b5..d28afa8e 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -24,6 +24,7 @@
 <translation id="1148499908455722006">開啟「<ph name="USER_NAME" />」的資訊對話方塊</translation>
 <translation id="1153356358378277386">配對裝置</translation>
 <translation id="1165712434476988950">必須重新啟動裝置才能套用更新。</translation>
+<translation id="1170240434488307589">裝置麥克風已靜音。</translation>
 <translation id="1175572348579024023">捲動</translation>
 <translation id="1178581264944972037">暫停</translation>
 <translation id="1181037720776840403">移除</translation>
@@ -100,6 +101,7 @@
 <translation id="1746730358044914197">輸入法是由你的管理員所設定。</translation>
 <translation id="1747827819627189109">螢幕小鍵盤已啟用</translation>
 <translation id="1761222317188459878">切換網路連線設定。<ph name="STATE_TEXT" /></translation>
+<translation id="1768366657309696705">「<ph name="LAUNCHER_KEY_NAME" />鍵 + 句號鍵」的鍵盤快速鍵已變更。如要使用 Insert 鍵,請按下<ph name="LAUNCHER_KEY_NAME" />鍵 + Shift + Backspace 鍵。</translation>
 <translation id="1771761307086386028">向右捲動</translation>
 <translation id="1782199038061388045">翻譯</translation>
 <translation id="1787955149152357925">關閉</translation>
diff --git a/ash/system/media/unified_media_controls_view.cc b/ash/system/media/unified_media_controls_view.cc
index f878db6..adab88c 100644
--- a/ash/system/media/unified_media_controls_view.cc
+++ b/ash/system/media/unified_media_controls_view.cc
@@ -87,6 +87,7 @@
     case MediaSessionAction::kToggleMicrophone:
     case MediaSessionAction::kToggleCamera:
     case MediaSessionAction::kHangUp:
+    case MediaSessionAction::kRaise:
       NOTREACHED();
       break;
   }
diff --git a/ash/system/microphone_mute/microphone_mute_notification_controller.cc b/ash/system/microphone_mute/microphone_mute_notification_controller.cc
new file mode 100644
index 0000000..93397fa
--- /dev/null
+++ b/ash/system/microphone_mute/microphone_mute_notification_controller.cc
@@ -0,0 +1,105 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/system/microphone_mute/microphone_mute_notification_controller.h"
+
+#include <cstdint>
+#include <string>
+
+#include "ash/public/cpp/microphone_mute_notification_delegate.h"
+#include "ash/public/cpp/notification_utils.h"
+#include "ash/strings/grit/ash_strings.h"
+#include "base/strings/utf_string_conversions.h"
+#include "components/vector_icons/vector_icons.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/message_center/message_center.h"
+#include "ui/message_center/public/cpp/notification.h"
+
+namespace ash {
+
+// static
+const char MicrophoneMuteNotificationController::kNotificationId[] =
+    "ash://microphone_mute";
+
+MicrophoneMuteNotificationController::MicrophoneMuteNotificationController() {
+  audio_observation_.Observe(CrasAudioHandler::Get());
+}
+
+MicrophoneMuteNotificationController::~MicrophoneMuteNotificationController() =
+    default;
+
+void MicrophoneMuteNotificationController::OnInputMuteChanged(bool mute_on) {
+  // Catches the case where the mic is muted while a mic-using app is running.
+  mic_mute_on_ = mute_on;
+  MaybeShowNotification();
+}
+
+void MicrophoneMuteNotificationController::MaybeShowNotification() {
+  if (mic_mute_on_) {
+    base::Optional<std::u16string> app_name =
+        MicrophoneMuteNotificationDelegate::Get()->GetAppAccessingMicrophone();
+    if (app_name.has_value() || HaveActiveInputStreams()) {
+      GenerateMicrophoneMuteNotification(app_name);
+      return;
+    }
+  }
+
+  RemoveMicrophoneMuteNotification();
+}
+
+void MicrophoneMuteNotificationController::GenerateMicrophoneMuteNotification(
+    const base::Optional<std::u16string>& app_name) {
+  std::unique_ptr<message_center::Notification> notification =
+      CreateSystemNotification(
+          message_center::NOTIFICATION_TYPE_SIMPLE, kNotificationId,
+          GetNotificationTitle(), GetNotificationMessage(app_name),
+          /*display_source=*/std::u16string(), GURL(),
+          message_center::NotifierId(
+              message_center::NotifierType::SYSTEM_COMPONENT, kNotificationId),
+          message_center::RichNotificationData(), nullptr,
+          vector_icons::kSettingsIcon,
+          message_center::SystemNotificationWarningLevel::NORMAL);
+
+  message_center::MessageCenter::Get()->AddNotification(
+      std::move(notification));
+}
+
+std::u16string MicrophoneMuteNotificationController::GetNotificationMessage(
+    const base::Optional<std::u16string>& app_name) const {
+  return !app_name.value_or(u"").empty()
+             ? l10n_util::GetStringFUTF16(
+                   IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE_WITH_APP_NAME,
+                   app_name.value())
+             : l10n_util::GetStringUTF16(
+                   IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_MESSAGE);
+}
+
+std::u16string MicrophoneMuteNotificationController::GetNotificationTitle()
+    const {
+  return l10n_util::GetStringUTF16(
+      IDS_MICROPHONE_MUTE_SWITCH_ON_NOTIFICATION_TITLE);
+}
+
+void MicrophoneMuteNotificationController::RemoveMicrophoneMuteNotification() {
+  message_center::MessageCenter::Get()->RemoveNotification(kNotificationId,
+                                                           /*by_user=*/false);
+}
+
+bool MicrophoneMuteNotificationController::HaveActiveInputStreams() {
+  base::flat_map<CrasAudioHandler::ClientType, uint32_t> input_streams =
+      CrasAudioHandler::Get()->GetNumberOfInputStreamsWithPermission();
+  for (auto& per_client_type_count : input_streams) {
+    if (per_client_type_count.second > 0)
+      return true;
+  }
+  return false;
+}
+
+void MicrophoneMuteNotificationController::
+    OnNumberOfInputStreamsWithPermissionChanged() {
+  // Catches the case where a mic-using app is launched while the mic is muted.
+  MaybeShowNotification();
+}
+
+}  // namespace ash
diff --git a/ash/system/microphone_mute/microphone_mute_notification_controller.h b/ash/system/microphone_mute/microphone_mute_notification_controller.h
new file mode 100644
index 0000000..aad82c9
--- /dev/null
+++ b/ash/system/microphone_mute/microphone_mute_notification_controller.h
@@ -0,0 +1,79 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_SYSTEM_MICROPHONE_MUTE_MICROPHONE_MUTE_NOTIFICATION_CONTROLLER_H_
+#define ASH_SYSTEM_MICROPHONE_MUTE_MICROPHONE_MUTE_NOTIFICATION_CONTROLLER_H_
+
+#include <string>
+
+#include "ash/ash_export.h"
+#include "ash/components/audio/cras_audio_handler.h"
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "base/scoped_observation.h"
+
+namespace ash {
+
+// Controller class to manage microphone mute notifications. This
+// notification shows up when the user launches an app that uses the microphone
+// while the microphone is muted.
+class ASH_EXPORT MicrophoneMuteNotificationController
+    : public ash::CrasAudioHandler::AudioObserver {
+ public:
+  MicrophoneMuteNotificationController();
+  MicrophoneMuteNotificationController(
+      const MicrophoneMuteNotificationController&) = delete;
+  MicrophoneMuteNotificationController& operator=(
+      const MicrophoneMuteNotificationController&) = delete;
+  ~MicrophoneMuteNotificationController() override;
+
+  // Shows the microphone muted notification if it needs to be shown.
+  void MaybeShowNotification();
+
+  // ash::CrasAudioHandler::AudioObserver:
+  void OnInputMuteChanged(bool mute_on) override;
+  void OnNumberOfInputStreamsWithPermissionChanged() override;
+
+ private:
+  friend class MicrophoneMuteNotificationControllerTest;
+
+  // Creates a notification for telling the user they're attempting to use the
+  // mic while the mis is muted.
+  void GenerateMicrophoneMuteNotification(
+      const base::Optional<std::u16string>& app_name);
+
+  // Mic mute notification title.
+  std::u16string GetNotificationTitle() const;
+
+  // Mic mute notification body.
+  std::u16string GetNotificationMessage(
+      const base::Optional<std::u16string>& app_name) const;
+
+  // Takes down the mic mute notification.
+  void RemoveMicrophoneMuteNotification();
+
+  // Returns true if we have any active input stream with permission, of any
+  // client type.  See
+  // ash::CrasAudioClient::NumberOfInputStreamsWithPermissionChanged() for more
+  // details.
+  bool HaveActiveInputStreams();
+
+  static const char kNotificationId[];
+
+  // A value of true means the mic is muted.
+  bool mic_mute_on_ = false;
+
+  base::ScopedObservation<ash::CrasAudioHandler,
+                          AudioObserver,
+                          &ash::CrasAudioHandler::AddAudioObserver,
+                          &ash::CrasAudioHandler::RemoveAudioObserver>
+      audio_observation_{this};
+
+  base::WeakPtrFactory<MicrophoneMuteNotificationController> weak_ptr_factory_{
+      this};
+};
+
+}  // namespace ash
+
+#endif  // ASH_SYSTEM_MICROPHONE_MUTE_MICROPHONE_MUTE_NOTIFICATION_CONTROLLER_H_
diff --git a/ash/system/microphone_mute/microphone_mute_notification_controller_unittest.cc b/ash/system/microphone_mute/microphone_mute_notification_controller_unittest.cc
new file mode 100644
index 0000000..09dd731
--- /dev/null
+++ b/ash/system/microphone_mute/microphone_mute_notification_controller_unittest.cc
@@ -0,0 +1,144 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <memory>
+#include <string>
+
+#include "ash/constants/ash_features.h"
+#include "ash/public/cpp/microphone_mute_notification_delegate.h"
+#include "ash/system/microphone_mute/microphone_mute_notification_controller.h"
+#include "ash/test/ash_test_base.h"
+#include "base/check.h"
+#include "base/optional.h"
+#include "base/strings/utf_string_conversions.h"
+#include "base/test/scoped_feature_list.h"
+#include "chromeos/dbus/audio/fake_cras_audio_client.h"
+#include "ui/message_center/message_center.h"
+#include "ui/message_center/public/cpp/notification.h"
+#include "ui/message_center/public/cpp/notification_types.h"
+
+namespace ash {
+
+class FakeMicrophoneMuteNotificationDelegate
+    : public MicrophoneMuteNotificationDelegate {
+ public:
+  base::Optional<std::u16string> GetAppAccessingMicrophone() override {
+    return app_name_;
+  }
+
+  void SetAppAccessingMicrophone(
+      const base::Optional<std::u16string> app_name) {
+    app_name_ = app_name;
+  }
+
+  base::Optional<std::u16string> app_name_;
+};
+
+class MicrophoneMuteNotificationControllerTest : public AshTestBase {
+ public:
+  MicrophoneMuteNotificationControllerTest() {
+    scoped_feature_list_.InitAndEnableFeature(features::kMicMuteNotifications);
+  }
+  ~MicrophoneMuteNotificationControllerTest() override = default;
+
+  // AshTestBase:
+  void SetUp() override {
+    AshTestBase::SetUp();
+    controller_ = std::make_unique<MicrophoneMuteNotificationController>();
+    delegate_ = std::make_unique<FakeMicrophoneMuteNotificationDelegate>();
+  }
+
+  void TearDown() override {
+    controller_.reset();
+    delegate_.reset();
+    AshTestBase::TearDown();
+  }
+
+ protected:
+  message_center::Notification* GetNotification() {
+    const message_center::NotificationList::Notifications& notifications =
+        message_center::MessageCenter::Get()->GetVisibleNotifications();
+    for (auto* notification : notifications) {
+      if (notification->id() ==
+          MicrophoneMuteNotificationController::kNotificationId) {
+        return notification;
+      }
+    }
+    return nullptr;
+  }
+
+  void MuteMicrophone() { CrasAudioHandler::Get()->SetInputMute(true); }
+
+  void UnMuteMicrophone() { CrasAudioHandler::Get()->SetInputMute(false); }
+
+  void SetNumberOfActiveInputStreams(int number_of_active_input_streams) {
+    chromeos::FakeCrasAudioClient::Get()->SetActiveInputStreamsWithPermission(
+        {{"CRAS_CLIENT_TYPE_CHROME", number_of_active_input_streams}});
+  }
+
+  void LaunchApp(base::Optional<std::u16string> app_name) {
+    delegate_->SetAppAccessingMicrophone(app_name);
+    controller_->OnNumberOfInputStreamsWithPermissionChanged();
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+  std::unique_ptr<MicrophoneMuteNotificationController> controller_;
+  std::unique_ptr<FakeMicrophoneMuteNotificationDelegate> delegate_;
+};
+
+TEST_F(MicrophoneMuteNotificationControllerTest, SimpleMuteUnMute) {
+  // No notification initially.
+  EXPECT_FALSE(GetNotification());
+
+  // Or when we mute.
+  MuteMicrophone();
+  EXPECT_FALSE(GetNotification());
+
+  // Or when we unmute.
+  UnMuteMicrophone();
+  EXPECT_FALSE(GetNotification());
+}
+
+TEST_F(MicrophoneMuteNotificationControllerTest, LaunchAppNotUsingMicrophone) {
+  // No notification initially.
+  EXPECT_FALSE(GetNotification());
+
+  // No notification when we unmute.
+  UnMuteMicrophone();
+  EXPECT_FALSE(GetNotification());
+
+  // Launch an app that's not using the mic, should be no notification.
+  LaunchApp(base::nullopt);
+  SetNumberOfActiveInputStreams(0);
+  EXPECT_FALSE(GetNotification());
+
+  // Mute the mic, still no notification because no app is using the mic.
+  MuteMicrophone();
+  EXPECT_FALSE(GetNotification());
+}
+
+TEST_F(MicrophoneMuteNotificationControllerTest, LaunchAppUsingMicrophone) {
+  // No notification initially.
+  EXPECT_FALSE(GetNotification());
+
+  // No notification when we unmute.
+  UnMuteMicrophone();
+  EXPECT_FALSE(GetNotification());
+
+  // Mute the mic, still no notification.
+  MuteMicrophone();
+  EXPECT_FALSE(GetNotification());
+
+  // Launch an app that's using the mic, should now be a notification.
+  LaunchApp(u"junior");
+  SetNumberOfActiveInputStreams(1);
+  EXPECT_TRUE(GetNotification());
+
+  // Unmute again, notification goes down.
+  UnMuteMicrophone();
+  EXPECT_FALSE(GetNotification());
+}
+
+}  // namespace ash
diff --git a/ash/system/system_notification_controller.cc b/ash/system/system_notification_controller.cc
index 5885104..4a37d349 100644
--- a/ash/system/system_notification_controller.cc
+++ b/ash/system/system_notification_controller.cc
@@ -5,9 +5,11 @@
 #include "ash/system/system_notification_controller.h"
 
 #include "ash/constants/ash_features.h"
+#include "ash/public/cpp/ash_features.h"
 #include "ash/system/caps_lock_notification_controller.h"
 #include "ash/system/cast/cast_notification_controller.h"
 #include "ash/system/gesture_education/gesture_education_notification_controller.h"
+#include "ash/system/microphone_mute/microphone_mute_notification_controller.h"
 #include "ash/system/network/auto_connect_notifier.h"
 #include "ash/system/network/cellular_setup_notifier.h"
 #include "ash/system/network/wifi_toggle_notification_controller.h"
@@ -43,7 +45,11 @@
       session_limit_(std::make_unique<SessionLimitNotificationController>()),
       tracing_(std::make_unique<TracingNotificationController>()),
       update_(std::make_unique<UpdateNotificationController>()),
-      wifi_toggle_(std::make_unique<WifiToggleNotificationController>()) {}
+      wifi_toggle_(std::make_unique<WifiToggleNotificationController>()) {
+  if (features::IsMicMuteNotificationsEnabled()) {
+    microphone_mute_ = std::make_unique<MicrophoneMuteNotificationController>();
+  }
+}
 
 SystemNotificationController::~SystemNotificationController() = default;
 
diff --git a/ash/system/system_notification_controller.h b/ash/system/system_notification_controller.h
index 19ef219..555f7f6 100644
--- a/ash/system/system_notification_controller.h
+++ b/ash/system/system_notification_controller.h
@@ -17,6 +17,7 @@
 class GestureEducationNotificationController;
 class CastNotificationController;
 class CellularSetupNotifier;
+class MicrophoneMuteNotificationController;
 class PowerNotificationController;
 class ScreenSecurityNotificationController;
 class SessionLimitNotificationController;
@@ -40,6 +41,7 @@
   const std::unique_ptr<CellularSetupNotifier> cellular_setup_notifier_;
   const std::unique_ptr<GestureEducationNotificationController>
       gesture_education_;
+  std::unique_ptr<MicrophoneMuteNotificationController> microphone_mute_;
   const std::unique_ptr<PowerNotificationController> power_;
   const std::unique_ptr<ScreenSecurityNotificationController> screen_security_;
   const std::unique_ptr<SessionLimitNotificationController> session_limit_;
diff --git a/ash/system/tray/tray_event_filter.cc b/ash/system/tray/tray_event_filter.cc
index 7d83cae..0ac5ba49 100644
--- a/ash/system/tray/tray_event_filter.cc
+++ b/ash/system/tray/tray_event_filter.cc
@@ -4,7 +4,7 @@
 
 #include "ash/system/tray/tray_event_filter.h"
 
-#include "ash/capture_mode/capture_mode_controller.h"
+#include "ash/capture_mode/capture_mode_util.h"
 #include "ash/public/cpp/ash_features.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
@@ -57,10 +57,8 @@
 
 void TrayEventFilter::ProcessPressedEvent(const ui::LocatedEvent& event) {
   // Users in a capture session may be trying to capture tray bubble(s).
-  if (features::IsCaptureModeEnabled() &&
-      CaptureModeController::Get()->IsActive()) {
+  if (capture_mode_util::IsCaptureModeActive())
     return;
-  }
 
   // The hit target window for the virtual keyboard isn't the same as its
   // views::Widget.
@@ -69,8 +67,10 @@
       views::Widget::GetTopLevelWidgetForNativeView(target);
   const aura::Window* container =
       target ? GetContainerForWindow(target) : nullptr;
+  // TODO(https://crbug.com/1208083): Replace some of this logic with
+  // bubble_utils::ShouldCloseBubbleForEvent().
   if (target && container) {
-    const int container_id = container->id();
+    const int container_id = container->GetId();
     // Don't process events that occurred inside an embedded menu, for example
     // the right-click menu in a popup notification.
     if (container_id == kShellWindowId_MenuContainer)
@@ -78,7 +78,7 @@
     // Don't process events that occurred inside a popup notification
     // from message center.
     if (container_id == kShellWindowId_ShelfContainer &&
-        target->type() == aura::client::WINDOW_TYPE_POPUP &&
+        target->GetType() == aura::client::WINDOW_TYPE_POPUP &&
         target_widget->GetName() ==
             AshMessagePopupCollection::kMessagePopupWidgetName) {
       return;
@@ -107,7 +107,7 @@
     // |bounds| so that events located outside the bubble's visual bounds are
     // treated as outside of the bubble.
     int bubble_container_id =
-        GetContainerForWindow(bubble_widget->GetNativeWindow())->id();
+        GetContainerForWindow(bubble_widget->GetNativeWindow())->GetId();
     if (Shell::Get()->tablet_mode_controller()->InTabletMode() &&
         bubble_container_id == kShellWindowId_SettingBubbleContainer) {
       bounds.Intersect(bubble_widget->GetWorkAreaBoundsInScreen());
diff --git a/ash/test/test_widget_builder.cc b/ash/test/test_widget_builder.cc
index 1d255a3..12fb9eee 100644
--- a/ash/test/test_widget_builder.cc
+++ b/ash/test/test_widget_builder.cc
@@ -87,6 +87,13 @@
   return *this;
 }
 
+TestWidgetBuilder& TestWidgetBuilder::SetShowState(
+    ui::WindowShowState show_state) {
+  DCHECK(!built_);
+  widget_init_params_.show_state = show_state;
+  return *this;
+}
+
 TestWidgetBuilder& TestWidgetBuilder::SetWindowId(int window_id) {
   DCHECK(!built_);
   window_id_ = window_id;
@@ -113,7 +120,7 @@
       views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
   widget->Init(std::move(widget_init_params_));
   if (window_id_ != aura::Window::kInitialId)
-    widget->GetNativeWindow()->set_id(window_id_);
+    widget->GetNativeWindow()->SetId(window_id_);
   if (show_)
     widget->Show();
   return widget;
@@ -128,7 +135,7 @@
       views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET;
   widget->Init(std::move(widget_init_params_));
   if (window_id_ != aura::Window::kInitialId)
-    widget->GetNativeWindow()->set_id(window_id_);
+    widget->GetNativeWindow()->SetId(window_id_);
   if (show_)
     widget->Show();
   return widget;
diff --git a/ash/test/test_widget_builder.h b/ash/test/test_widget_builder.h
index 726b7e19..d66812b 100644
--- a/ash/test/test_widget_builder.h
+++ b/ash/test/test_widget_builder.h
@@ -11,6 +11,7 @@
 #include "base/compiler_specific.h"
 #include "ui/aura/window.h"
 #include "ui/base/class_property.h"
+#include "ui/base/ui_base_types.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/views/widget/widget.h"
 
@@ -36,6 +37,7 @@
   TestWidgetBuilder& SetParent(aura::Window* parent);
   TestWidgetBuilder& SetContext(aura::Window* context);
   TestWidgetBuilder& SetActivatable(bool activatable);
+  TestWidgetBuilder& SetShowState(ui::WindowShowState show_state);
 
   // Sets the window property to be set on the window of a widget.
   template <typename T>
diff --git a/ash/test/test_window_builder.cc b/ash/test/test_window_builder.cc
index 0fb416ae..9816b6c4 100644
--- a/ash/test/test_window_builder.cc
+++ b/ash/test/test_window_builder.cc
@@ -101,7 +101,7 @@
   window->Init(layer_type_);
   window->AcquireAllPropertiesFrom(std::move(init_properties_));
   if (window_id_ != aura::Window::kInitialId)
-    window->set_id(window_id_);
+    window->SetId(window_id_);
   if (parent_) {
     if (!bounds_.IsEmpty())
       window->SetBounds(bounds_);
diff --git a/ash/utility/screenshot_controller.cc b/ash/utility/screenshot_controller.cc
index 9a33540..fd86d7f 100644
--- a/ash/utility/screenshot_controller.cc
+++ b/ash/utility/screenshot_controller.cc
@@ -75,7 +75,7 @@
 bool IsTopLevelWindow(aura::Window* window) {
   if (!window)
     return false;
-  if (window->type() == aura::client::WINDOW_TYPE_CONTROL ||
+  if (window->GetType() == aura::client::WINDOW_TYPE_CONTROL ||
       !window->delegate()) {
     return false;
   }
@@ -507,8 +507,9 @@
   while (selected && !IsTopLevelWindow(selected))
     selected = selected->parent();
 
-  if (selected->parent()->id() == kShellWindowId_WallpaperContainer ||
-      selected->parent()->id() == kShellWindowId_LockScreenWallpaperContainer)
+  if (selected->parent()->GetId() == kShellWindowId_WallpaperContainer ||
+      selected->parent()->GetId() ==
+          kShellWindowId_LockScreenWallpaperContainer)
     selected = nullptr;
 
   SetSelectedWindow(selected);
diff --git a/ash/wallpaper/wallpaper_widget_controller.cc b/ash/wallpaper/wallpaper_widget_controller.cc
index f99ff2e..e854b17c4 100644
--- a/ash/wallpaper/wallpaper_widget_controller.cc
+++ b/ash/wallpaper/wallpaper_widget_controller.cc
@@ -98,7 +98,7 @@
 void WallpaperWidgetController::OnImplicitAnimationsCompleted() {
   StopAnimating();
   wallpaper_view_->SetLockShieldEnabled(
-      wallpaper_view_->GetWidget()->GetNativeWindow()->parent()->id() ==
+      wallpaper_view_->GetWidget()->GetNativeWindow()->parent()->GetId() ==
       kShellWindowId_LockScreenWallpaperContainer);
   RunAnimationEndCallbacks();
 }
diff --git a/ash/wm/OWNERS b/ash/wm/OWNERS
index 1d109f8..bfadd66 100644
--- a/ash/wm/OWNERS
+++ b/ash/wm/OWNERS
@@ -1,2 +1,3 @@
 mukai@chromium.org
 xdai@chromium.org
+sammiequon@chromium.org
diff --git a/ash/wm/always_on_top_controller.cc b/ash/wm/always_on_top_controller.cc
index 44abb615..c2e1adc 100644
--- a/ash/wm/always_on_top_controller.cc
+++ b/ash/wm/always_on_top_controller.cc
@@ -97,8 +97,8 @@
 }
 
 void AlwaysOnTopController::ReparentWindow(aura::Window* window) {
-  DCHECK(window->type() == aura::client::WINDOW_TYPE_NORMAL ||
-         window->type() == aura::client::WINDOW_TYPE_POPUP);
+  DCHECK(window->GetType() == aura::client::WINDOW_TYPE_NORMAL ||
+         window->GetType() == aura::client::WINDOW_TYPE_POPUP);
   aura::Window* container = GetContainer(window);
   if (window->parent() != container &&
       !window->GetProperty(kDisallowReparentKey))
diff --git a/ash/wm/always_on_top_controller_unittest.cc b/ash/wm/always_on_top_controller_unittest.cc
index 4e7bac9b..17a8c32 100644
--- a/ash/wm/always_on_top_controller_unittest.cc
+++ b/ash/wm/always_on_top_controller_unittest.cc
@@ -100,7 +100,7 @@
   aura::Window* container =
       always_on_top_controller->GetContainer(always_on_top_window.get());
   ASSERT_TRUE(container);
-  EXPECT_EQ(kShellWindowId_AlwaysOnTopContainer, container->id());
+  EXPECT_EQ(kShellWindowId_AlwaysOnTopContainer, container->GetId());
 }
 
 TEST_F(AlwaysOnTopControllerTest, PipContainerReturnedForFloatingPipWindow) {
@@ -122,7 +122,7 @@
   aura::Window* container =
       always_on_top_controller->GetContainer(pip_window.get());
   ASSERT_TRUE(container);
-  EXPECT_EQ(kShellWindowId_PipContainer, container->id());
+  EXPECT_EQ(kShellWindowId_PipContainer, container->GetId());
 }
 
 TEST_F(AlwaysOnTopControllerTest,
@@ -138,7 +138,7 @@
   aura::Window* container =
       always_on_top_controller->GetContainer(window.get());
   ASSERT_TRUE(container);
-  EXPECT_EQ(desks_util::GetActiveDeskContainerId(), container->id());
+  EXPECT_EQ(desks_util::GetActiveDeskContainerId(), container->GetId());
 }
 
 TEST_F(AlwaysOnTopControllerTest,
@@ -149,20 +149,20 @@
   window->SetProperty(aura::client::kZOrderingKey,
                       ui::ZOrderLevel::kFloatingWindow);
 
-  EXPECT_EQ(kShellWindowId_AlwaysOnTopContainer, window->parent()->id());
+  EXPECT_EQ(kShellWindowId_AlwaysOnTopContainer, window->parent()->GetId());
 
   WindowState* window_state = WindowState::Get(window.get());
   const WMEvent enter_pip(WM_EVENT_PIP);
   window_state->OnWMEvent(&enter_pip);
   EXPECT_TRUE(window_state->IsPip());
 
-  EXPECT_EQ(kShellWindowId_PipContainer, window->parent()->id());
+  EXPECT_EQ(kShellWindowId_PipContainer, window->parent()->GetId());
 
   const WMEvent enter_normal(WM_EVENT_NORMAL);
   window_state->OnWMEvent(&enter_normal);
   EXPECT_FALSE(window_state->IsPip());
 
-  EXPECT_EQ(kShellWindowId_AlwaysOnTopContainer, window->parent()->id());
+  EXPECT_EQ(kShellWindowId_AlwaysOnTopContainer, window->parent()->GetId());
 }
 
 }  // namespace ash
diff --git a/ash/wm/ash_focus_rules.cc b/ash/wm/ash_focus_rules.cc
index 9b0b8597..8667912 100644
--- a/ash/wm/ash_focus_rules.cc
+++ b/ash/wm/ash_focus_rules.cc
@@ -10,6 +10,7 @@
 #include "ash/shell_delegate.h"
 #include "ash/wm/container_finder.h"
 #include "ash/wm/desks/desks_util.h"
+#include "ash/wm/full_restore/full_restore_controller.h"
 #include "ash/wm/mru_window_tracker.h"
 #include "ash/wm/window_state.h"
 #include "base/containers/contains.h"
@@ -25,7 +26,7 @@
 bool BelongsToContainerWithEqualOrGreaterId(const aura::Window* window,
                                             int container_id) {
   for (; window; window = window->parent()) {
-    if (window->id() >= container_id)
+    if (window->GetId() >= container_id)
       return true;
   }
   return false;
@@ -33,7 +34,7 @@
 
 bool BelongsToContainerWithId(const aura::Window* window, int container_id) {
   for (; window; window = window->parent()) {
-    if (window->id() == container_id)
+    if (window->GetId() == container_id)
       return true;
   }
   return false;
@@ -65,11 +66,11 @@
 
   // The window must exist within a container that supports activation.
   // The window cannot be blocked by a modal transient.
-  return base::Contains(activatable_container_ids_, window->parent()->id());
+  return base::Contains(activatable_container_ids_, window->parent()->GetId());
 }
 
 bool AshFocusRules::SupportsChildActivation(const aura::Window* window) const {
-  return base::Contains(activatable_container_ids_, window->id());
+  return base::Contains(activatable_container_ids_, window->GetId());
 }
 
 bool AshFocusRules::IsWindowConsideredVisibleForActivation(
@@ -93,7 +94,7 @@
 
   const aura::Window* const parent = window->parent();
   return desks_util::IsDeskContainer(parent) ||
-         parent->id() == kShellWindowId_LockScreenContainer;
+         parent->GetId() == kShellWindowId_LockScreenContainer;
 }
 
 bool AshFocusRules::CanActivateWindow(const aura::Window* window) const {
@@ -104,6 +105,12 @@
   if (window->GetProperty(full_restore::kLaunchedFromFullRestoreKey))
     return false;
 
+  // Special case during Full Restore that prevents the app list from being
+  // activated during tablet mode if the topmost window of any root window is a
+  // Full Restore'd window. See http://crbug/1202923.
+  if (!FullRestoreController::CanActivateAppList(window))
+    return false;
+
   if (!BaseFocusRules::CanActivateWindow(window))
     return false;
 
diff --git a/ash/wm/ash_focus_rules_unittest.cc b/ash/wm/ash_focus_rules_unittest.cc
index 8ad03c1..148d7087 100644
--- a/ash/wm/ash_focus_rules_unittest.cc
+++ b/ash/wm/ash_focus_rules_unittest.cc
@@ -144,7 +144,7 @@
     aura::Window* root_window = Shell::GetPrimaryRootWindow();
     aura::Window* container = Shell::GetContainer(root_window, container_id);
     aura::Window* window = new aura::Window(nullptr);
-    window->set_id(0);
+    window->SetId(0);
     window->SetType(aura::client::WINDOW_TYPE_NORMAL);
     window->Init(ui::LAYER_TEXTURED);
     window->Show();
diff --git a/ash/wm/container_finder.cc b/ash/wm/container_finder.cc
index 4852650..499c66a 100644
--- a/ash/wm/container_finder.cc
+++ b/ash/wm/container_finder.cc
@@ -29,7 +29,7 @@
 bool HasTransientParentWindow(const aura::Window* window) {
   const aura::Window* transient_parent = ::wm::GetTransientParent(window);
   return transient_parent &&
-         transient_parent->type() != aura::client::WINDOW_TYPE_UNKNOWN;
+         transient_parent->GetType() != aura::client::WINDOW_TYPE_UNKNOWN;
 }
 
 aura::Window* GetSystemModalContainer(aura::Window* root,
@@ -57,7 +57,7 @@
 
   // Otherwise those that originate from LockScreen container and above are
   // placed in the screen lock modal container.
-  int window_container_id = transient_parent->parent()->id();
+  int window_container_id = transient_parent->parent()->GetId();
   if (window_container_id < kShellWindowId_LockScreenContainer)
     return root->GetChildById(kShellWindowId_SystemModalContainer);
   return root->GetChildById(kShellWindowId_LockSystemModalContainer);
@@ -75,7 +75,7 @@
 aura::Window* GetContainerForWindow(aura::Window* window) {
   aura::Window* parent = window->parent();
   // The first parent with an explicit shell window ID is the container.
-  while (parent && parent->id() == kShellWindowId_Invalid)
+  while (parent && parent->GetId() == kShellWindowId_Invalid)
     parent = parent->parent();
   return parent;
 }
@@ -91,7 +91,7 @@
     target_root = FindContainerRoot(bounds_in_screen);
   }
 
-  switch (window->type()) {
+  switch (window->GetType()) {
     case aura::client::WINDOW_TYPE_NORMAL:
     case aura::client::WINDOW_TYPE_POPUP:
       if (window->GetProperty(aura::client::kModalKey) == ui::MODAL_TYPE_SYSTEM)
@@ -108,8 +108,8 @@
       return target_root->GetChildById(
           kShellWindowId_DragImageAndTooltipContainer);
     default:
-      NOTREACHED() << "Window " << window->id() << " has unhandled type "
-                   << window->type();
+      NOTREACHED() << "Window " << window->GetId() << " has unhandled type "
+                   << window->GetType();
       break;
   }
   return nullptr;
diff --git a/ash/wm/container_finder_unittest.cc b/ash/wm/container_finder_unittest.cc
index a02aeb4..8124b1b8 100644
--- a/ash/wm/container_finder_unittest.cc
+++ b/ash/wm/container_finder_unittest.cc
@@ -24,12 +24,12 @@
   aura::Window* window = widget->GetNativeWindow();
 
   // The window itself is not a container.
-  EXPECT_EQ(kShellWindowId_Invalid, window->id());
+  EXPECT_EQ(kShellWindowId_Invalid, window->GetId());
 
   // Container lookup finds the default container.
   aura::Window* container = GetContainerForWindow(window);
   ASSERT_TRUE(container);
-  EXPECT_EQ(desks_util::GetActiveDeskContainerId(), container->id());
+  EXPECT_EQ(desks_util::GetActiveDeskContainerId(), container->GetId());
 }
 
 }  // namespace ash
diff --git a/ash/wm/default_state.cc b/ash/wm/default_state.cc
index 6f28dca..2bb478d9 100644
--- a/ash/wm/default_state.cc
+++ b/ash/wm/default_state.cc
@@ -77,7 +77,7 @@
         window_state->window()->GetRootWindow()) {
       aura::Window* new_container =
           new_root_controller->GetRootWindow()->GetChildById(
-              window_state->window()->parent()->id());
+              window_state->window()->parent()->GetId());
       new_container->AddChild(window_state->window());
     }
   }
diff --git a/ash/wm/desks/desk.cc b/ash/wm/desks/desk.cc
index 8def6cb..013a7e7 100644
--- a/ash/wm/desks/desk.cc
+++ b/ash/wm/desks/desk.cc
@@ -79,7 +79,7 @@
   // The desks bar widget is an activatable window placed in the active desk's
   // container, therefore it should be allowed to move outside of its desk when
   // its desk is removed.
-  if (window->id() == kShellWindowId_DesksBarWindow)
+  if (window->GetId() == kShellWindowId_DesksBarWindow)
     return true;
 
   // We never move transient descendants directly, this is taken care of by
@@ -161,7 +161,7 @@
  public:
   DeskContainerObserver(Desk* owner, aura::Window* container)
       : owner_(owner), container_(container) {
-    DCHECK_EQ(container_->id(), owner_->container_id());
+    DCHECK_EQ(container_->GetId(), owner_->container_id());
     container->AddObserver(this);
   }
 
@@ -487,7 +487,7 @@
   DCHECK(this != target_desk);
   // The desks bar should not be allowed to move individually to another desk.
   // Only as part of `MoveWindowsToDesk()` when the desk is removed.
-  DCHECK_NE(window->id(), kShellWindowId_DesksBarWindow);
+  DCHECK_NE(window->GetId(), kShellWindowId_DesksBarWindow);
 
   {
     ScopedWindowPositionerDisabler window_positioner_disabler;
@@ -636,7 +636,7 @@
                                      display::Screen::GetScreen()
                                          ->GetDisplayNearestWindow(target_root)
                                          .id());
-    DCHECK_EQ(target_desk->container_id_, window->parent()->id());
+    DCHECK_EQ(target_desk->container_id_, window->parent()->GetId());
   }
 }
 
diff --git a/ash/wm/desks/desks_bar_view.cc b/ash/wm/desks/desks_bar_view.cc
index a86963d..4b2dbeaf8 100644
--- a/ash/wm/desks/desks_bar_view.cc
+++ b/ash/wm/desks/desks_bar_view.cc
@@ -8,6 +8,7 @@
 #include <iterator>
 #include <utility>
 
+#include "ash/keyboard/ui/keyboard_ui_controller.h"
 #include "ash/public/cpp/ash_features.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/public/cpp/window_properties.h"
@@ -27,9 +28,12 @@
 #include "ash/wm/overview/overview_grid.h"
 #include "ash/wm/overview/overview_highlight_controller.h"
 #include "ash/wm/overview/overview_session.h"
+#include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "base/containers/contains.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/aura/window.h"
+#include "ui/events/devices/device_data_manager.h"
+#include "ui/events/devices/input_device.h"
 #include "ui/events/event_observer.h"
 #include "ui/events/types/event_type.h"
 #include "ui/views/event_monitor.h"
@@ -92,6 +96,16 @@
   settings.SetTweenType(gfx::Tween::ACCEL_20_DECEL_60);
 }
 
+// Checks whether there are any external keyboards.
+bool HasExternalKeyboard() {
+  for (const ui::InputDevice& device :
+       ui::DeviceDataManager::GetInstance()->GetKeyboardDevices()) {
+    if (device.type != ui::InputDeviceType::INPUT_DEVICE_INTERNAL)
+      return true;
+  }
+  return false;
+}
+
 }  // namespace
 
 // -----------------------------------------------------------------------------
@@ -342,7 +356,7 @@
   widget->Init(std::move(params));
 
   auto* window = widget->GetNativeWindow();
-  window->set_id(kShellWindowId_DesksBarWindow);
+  window->SetId(kShellWindowId_DesksBarWindow);
   ::wm::SetWindowVisibilityAnimationTransition(window, ::wm::ANIMATE_NONE);
 
   return widget;
@@ -768,6 +782,13 @@
     if (highlight_controller->IsFocusHighlightVisible())
       highlight_controller->MoveHighlightToView(newly_added_name_view);
 
+    // If we're in tablet mode and there are no external keyboards, open up the
+    // virtual keyboard.
+    if (Shell::Get()->tablet_mode_controller()->InTabletMode() &&
+        !HasExternalKeyboard()) {
+      keyboard::KeyboardUIController::Get()->ShowKeyboard(/*lock=*/false);
+    }
+
     should_name_nudge_ = false;
   }
 
diff --git a/ash/wm/desks/desks_unittests.cc b/ash/wm/desks/desks_unittests.cc
index aac6fac..a870869d 100644
--- a/ash/wm/desks/desks_unittests.cc
+++ b/ash/wm/desks/desks_unittests.cc
@@ -8,6 +8,8 @@
 #include "ash/app_list/app_list_controller_impl.h"
 #include "ash/display/screen_orientation_controller.h"
 #include "ash/display/screen_orientation_controller_test_api.h"
+#include "ash/keyboard/ui/keyboard_ui_controller.h"
+#include "ash/keyboard/ui/test/keyboard_test_util.h"
 #include "ash/multi_user/multi_user_window_manager_impl.h"
 #include "ash/public/cpp/ash_features.h"
 #include "ash/public/cpp/ash_pref_names.h"
@@ -84,6 +86,9 @@
 #include "ui/display/display.h"
 #include "ui/display/screen.h"
 #include "ui/display/test/display_manager_test_api.h"
+#include "ui/events/devices/device_data_manager.h"
+#include "ui/events/devices/device_data_manager_test_api.h"
+#include "ui/events/devices/input_device.h"
 #include "ui/events/event_constants.h"
 #include "ui/events/gesture_detection/gesture_configuration.h"
 #include "ui/events/test/event_generator.h"
@@ -339,6 +344,11 @@
       : AshTestBase(time) {}
   ~DesksTest() override = default;
 
+  void SetUp() override {
+    AshTestBase::SetUp();
+    SetVirtualKeyboardEnabled(true);
+  }
+
   void SendKey(ui::KeyboardCode key_code, int flags = 0) {
     auto* generator = GetEventGenerator();
     generator->PressKey(key_code, flags);
@@ -5501,6 +5511,64 @@
   }
 }
 
+// Tests that when the user is in tablet mode, the virtual keyboard is opened
+// during name nudges.
+TEST_F(DesksTest, NameNudgesTabletMode) {
+  TabletModeControllerTestApi().EnterTabletMode();
+
+  // Tablet mode requires at least two desks so create one.
+  NewDesk();
+  ASSERT_EQ(2u, DesksController::Get()->desks().size());
+
+  // Start overview.
+  auto* overview_controller = Shell::Get()->overview_controller();
+  overview_controller->StartOverview();
+  ASSERT_TRUE(overview_controller->InOverviewSession());
+
+  // Setup an internal keyboard and an external keyboard.
+  ui::DeviceDataManagerTestApi().SetKeyboardDevices(
+      std::vector<ui::InputDevice>{
+          {1, ui::INPUT_DEVICE_INTERNAL, "internal keyboard"},
+          {2, ui::INPUT_DEVICE_USB, "external keyboard"}});
+  auto* device_data_manager = ui::DeviceDataManager::GetInstance();
+  auto keyboard_devices = device_data_manager->GetKeyboardDevices();
+  ASSERT_EQ(2u, keyboard_devices.size());
+
+  // Tap the new desk button. There should be a new DeskNameView that is created
+  // and the virtual keyboard should not be shown because there is at least one
+  // external keyboard attached.
+  auto* event_generator = GetEventGenerator();
+  const auto* desks_bar_view =
+      GetOverviewGridForRoot(Shell::GetPrimaryRootWindow())->desks_bar_view();
+  GestureTapOnView(desks_bar_view->expanded_state_new_desk_button(),
+                   event_generator);
+  EXPECT_FALSE(keyboard::KeyboardUIController::Get()->IsKeyboardVisible());
+  EXPECT_EQ(3u, desks_bar_view->mini_views().size());
+  auto* desk_name_view = desks_bar_view->mini_views()[2]->desk_name_view();
+  EXPECT_TRUE(desk_name_view->HasFocus());
+  EXPECT_EQ(std::u16string(), desk_name_view->GetText());
+
+  // Reset the devices and make it so there's only an internal keyboard.
+  ui::DeviceDataManagerTestApi().SetKeyboardDevices(
+      std::vector<ui::InputDevice>{
+          {1, ui::INPUT_DEVICE_INTERNAL, "internal keyboard"},
+      });
+  keyboard_devices = device_data_manager->GetKeyboardDevices();
+  ASSERT_EQ(1u, keyboard_devices.size());
+
+  // Tap the new desk button again. There should be a new DeskNameView that is
+  // created and the virtual keyboard should be shown.
+  ui::DeviceDataManagerTestApi().SetKeyboardDevices({});
+  GestureTapOnView(desks_bar_view->expanded_state_new_desk_button(),
+                   event_generator);
+  ASSERT_TRUE(keyboard::WaitUntilShown());
+  EXPECT_TRUE(keyboard::KeyboardUIController::Get()->IsKeyboardVisible());
+  EXPECT_EQ(4u, desks_bar_view->mini_views().size());
+  desk_name_view = desks_bar_view->mini_views()[3]->desk_name_view();
+  EXPECT_TRUE(desk_name_view->HasFocus());
+  EXPECT_EQ(std::u16string(), desk_name_view->GetText());
+}
+
 // A test class that uses a mock time test environment.
 class DesksMockTimeTest : public DesksTest {
  public:
diff --git a/ash/wm/desks/desks_util.cc b/ash/wm/desks/desks_util.cc
index a6c4600..fbcb9e5f 100644
--- a/ash/wm/desks/desks_util.cc
+++ b/ash/wm/desks/desks_util.cc
@@ -92,7 +92,7 @@
 
 bool IsDeskContainer(const aura::Window* container) {
   DCHECK(container);
-  return IsDeskContainerId(container->id());
+  return IsDeskContainerId(container->GetId());
 }
 
 bool IsDeskContainerId(int id) {
@@ -115,7 +115,7 @@
 
 ASH_EXPORT bool IsActiveDeskContainer(const aura::Window* container) {
   DCHECK(container);
-  return container->id() == GetActiveDeskContainerId();
+  return container->GetId() == GetActiveDeskContainerId();
 }
 
 aura::Window* GetActiveDeskContainerForRoot(aura::Window* root) {
@@ -128,14 +128,14 @@
 
   const int active_desk_id = GetActiveDeskContainerId();
   aura::Window* desk_container = GetDeskContainerForContext(window);
-  return desk_container && desk_container->id() == active_desk_id;
+  return desk_container && desk_container->GetId() == active_desk_id;
 }
 
 aura::Window* GetDeskContainerForContext(aura::Window* context) {
   DCHECK(context);
 
   while (context) {
-    if (IsDeskContainerId(context->id()))
+    if (IsDeskContainerId(context->GetId()))
       return context;
 
     context = context->parent();
diff --git a/ash/wm/drag_window_controller.cc b/ash/wm/drag_window_controller.cc
index 0e9c124..75235be9 100644
--- a/ash/wm/drag_window_controller.cc
+++ b/ash/wm/drag_window_controller.cc
@@ -113,7 +113,7 @@
     params.name = "DragWindow";
     params.activatable = views::Widget::InitParams::Activatable::kNo;
     params.accept_events = false;
-    const int parent_id = original_window->parent()->id();
+    const int parent_id = original_window->parent()->GetId();
     params.parent = root_window_->GetChildById(parent_id);
 
     widget_ = std::make_unique<views::Widget>();
@@ -130,7 +130,7 @@
         /*show_non_client_view=*/true));
 
     aura::Window* window = widget_->GetNativeWindow();
-    window->set_id(kShellWindowId_PhantomWindow);
+    window->SetId(kShellWindowId_PhantomWindow);
     window->SetProperty(aura::client::kAnimationsDisabledKey, true);
     gfx::Rect bounds = original_window->bounds();
     ::wm::ConvertRectToScreen(original_window->parent(), &bounds);
diff --git a/ash/wm/drag_window_resizer_unittest.cc b/ash/wm/drag_window_resizer_unittest.cc
index 21aa2d808..c8f743cb 100644
--- a/ash/wm/drag_window_resizer_unittest.cc
+++ b/ash/wm/drag_window_resizer_unittest.cc
@@ -82,7 +82,7 @@
     window_->SetType(aura::client::WINDOW_TYPE_NORMAL);
     window_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(window_.get());
-    window_->set_id(1);
+    window_->SetId(1);
 
     always_on_top_window_ = std::make_unique<aura::Window>(&delegate2_);
     always_on_top_window_->SetType(aura::client::WINDOW_TYPE_NORMAL);
@@ -90,7 +90,7 @@
                                        ui::ZOrderLevel::kFloatingWindow);
     always_on_top_window_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(always_on_top_window_.get());
-    always_on_top_window_->set_id(2);
+    always_on_top_window_->SetId(2);
 
     system_modal_window_ = std::make_unique<aura::Window>(&delegate3_);
     system_modal_window_->SetType(aura::client::WINDOW_TYPE_NORMAL);
@@ -98,20 +98,20 @@
                                       ui::MODAL_TYPE_SYSTEM);
     system_modal_window_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(system_modal_window_.get());
-    system_modal_window_->set_id(3);
+    system_modal_window_->SetId(3);
 
     transient_child_ = new aura::Window(&delegate4_);
     transient_child_->SetType(aura::client::WINDOW_TYPE_NORMAL);
     transient_child_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(transient_child_);
-    transient_child_->set_id(4);
+    transient_child_->SetId(4);
 
     transient_parent_ = std::make_unique<aura::Window>(&delegate5_);
     transient_parent_->SetType(aura::client::WINDOW_TYPE_NORMAL);
     transient_parent_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(transient_parent_.get());
     ::wm::AddTransientChild(transient_parent_.get(), transient_child_);
-    transient_parent_->set_id(5);
+    transient_parent_->SetId(5);
   }
 
   void TearDown() override {
diff --git a/ash/wm/full_restore/full_restore_controller.cc b/ash/wm/full_restore/full_restore_controller.cc
index 3cf6e12..afabaf3 100644
--- a/ash/wm/full_restore/full_restore_controller.cc
+++ b/ash/wm/full_restore/full_restore_controller.cc
@@ -8,9 +8,11 @@
 
 #include "ash/app_list/app_list_controller_impl.h"
 #include "ash/public/cpp/app_types.h"
+#include "ash/public/cpp/ash_features.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/public/cpp/window_properties.h"
 #include "ash/shell.h"
+#include "ash/wm/desks/desks_util.h"
 #include "ash/wm/mru_window_tracker.h"
 #include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "ash/wm/window_state.h"
@@ -132,6 +134,38 @@
   return g_instance;
 }
 
+// static
+bool FullRestoreController::CanActivateAppList(const aura::Window* window) {
+  auto* tablet_mode_controller = Shell::Get()->tablet_mode_controller();
+  if (!tablet_mode_controller || !tablet_mode_controller->InTabletMode())
+    return true;
+
+  auto* app_list_controller = Shell::Get()->app_list_controller();
+  if (!app_list_controller || app_list_controller->GetWindow() != window)
+    return true;
+
+  for (auto* root_window : Shell::GetAllRootWindows()) {
+    auto active_desk_children =
+        desks_util::GetActiveDeskContainerForRoot(root_window)->children();
+
+    // Find the topmost unminimized window.
+    auto topmost_visible_iter = active_desk_children.rbegin();
+    while (topmost_visible_iter != active_desk_children.rend() &&
+           WindowState::Get(*topmost_visible_iter)->IsMinimized()) {
+      topmost_visible_iter = std::next(topmost_visible_iter);
+    }
+
+    if (topmost_visible_iter != active_desk_children.rend() &&
+        (*topmost_visible_iter)
+            ->GetProperty(full_restore::kLaunchedFromFullRestoreKey)) {
+      DCHECK(features::IsFullRestoreEnabled());
+      return false;
+    }
+  }
+
+  return true;
+}
+
 void FullRestoreController::SaveWindow(WindowState* window_state) {
   SaveWindowImpl(window_state, /*activation_index=*/base::nullopt);
 }
@@ -303,7 +337,7 @@
 
   // Only apps whose parent is a certain container can be saved.
   if (!window->parent() ||
-      !base::Contains(kAppParentContainers, window->parent()->id())) {
+      !base::Contains(kAppParentContainers, window->parent()->GetId())) {
     return;
   }
 
diff --git a/ash/wm/full_restore/full_restore_controller.h b/ash/wm/full_restore/full_restore_controller.h
index fb1fcd5..64ed1c1 100644
--- a/ash/wm/full_restore/full_restore_controller.h
+++ b/ash/wm/full_restore/full_restore_controller.h
@@ -50,6 +50,15 @@
   // Shell.
   static FullRestoreController* Get();
 
+  // When windows are restored, they're restored inactive so during tablet mode
+  // a window may be restored above the app list while the app list is still
+  // active. To prevent this situation, the app list is deactivated and this
+  // function should be called when determining the next focus target to prevent
+  // the app list from being reactivated. Returns true if we're in tablet mode,
+  // |window| is the window for the app list, and the topmost window of any
+  // active desk container is a restored window.
+  static bool CanActivateAppList(const aura::Window* window);
+
   // Calls SaveWindowImpl for |window_state|. The activation index will be
   // calculated in SaveWindowImpl.
   void SaveWindow(WindowState* window_state);
diff --git a/ash/wm/full_restore/full_restore_controller_unittest.cc b/ash/wm/full_restore/full_restore_controller_unittest.cc
index 245e712..98ade25 100644
--- a/ash/wm/full_restore/full_restore_controller_unittest.cc
+++ b/ash/wm/full_restore/full_restore_controller_unittest.cc
@@ -5,6 +5,7 @@
 #include "ash/wm/full_restore/full_restore_controller.h"
 
 #include "ash/accelerators/accelerator_controller_impl.h"
+#include "ash/app_list/app_list_controller_impl.h"
 #include "ash/public/cpp/ash_features.h"
 #include "ash/screen_util.h"
 #include "ash/shelf/hotseat_widget.h"
@@ -109,7 +110,9 @@
       int32_t activation_index,
       const gfx::Rect& bounds = gfx::Rect(200, 200),
       aura::Window* root_window = Shell::GetPrimaryRootWindow(),
-      base::Optional<int32_t> restore_window_id = base::nullopt) {
+      base::Optional<int32_t> restore_window_id = base::nullopt,
+      chromeos::WindowStateType window_state_type =
+          chromeos::WindowStateType::kNormal) {
     // Full restore widgets are inactive when created as we do not want to take
     // activation from a possible activated window, and we want to stack them in
     // a certain order.
@@ -119,6 +122,7 @@
         .SetBounds(bounds)
         .SetShow(false)
         .SetContext(root_window)
+        .SetShowState(chromeos::ToWindowShowState(window_state_type))
         .SetWindowProperty(full_restore::kActivationIndexKey,
                            new int32_t(activation_index))
         .SetWindowProperty(full_restore::kLaunchedFromFullRestoreKey, true);
@@ -132,7 +136,8 @@
     views::Widget* widget = widget_builder.BuildOwnedByNativeWidget();
     SetResizable(widget);
     FullRestoreController::Get()->OnWidgetInitialized(widget);
-    widget->Show();
+    if (window_state_type != chromeos::WindowStateType::kMinimized)
+      widget->Show();
     return widget;
   }
 
@@ -148,9 +153,11 @@
         fake_full_restore_file_[restore_window_id].info.get();
     const gfx::Rect bounds = info->current_bounds.value_or(gfx::Rect(200, 200));
     const int32_t activation_index = info->activation_index.value_or(-1);
+    const auto window_state_type =
+        info->window_state_type.value_or(chromeos::WindowStateType::kNormal);
     return CreateTestFullRestoredWidget(activation_index, bounds,
                                         Shell::GetPrimaryRootWindow(),
-                                        restore_window_id);
+                                        restore_window_id, window_state_type);
   }
 
   void VerifyStackingOrder(aura::Window* parent,
@@ -869,16 +876,57 @@
   TabletModeControllerTestApi().EnterTabletMode();
   HotseatWidget* hotseat_widget = GetPrimaryShelf()->hotseat_widget();
   EXPECT_EQ(HotseatState::kShownHomeLauncher, hotseat_widget->state());
+  auto* app_list_widget = views::Widget::GetWidgetForNativeWindow(
+      Shell::Get()->app_list_controller()->GetWindow());
+  ASSERT_TRUE(app_list_widget->IsActive());
 
-  // Add an entry and restore it. The widget should be visible and the hotseat
-  // should now be hidden.
+  // Add two entries, where the window highest on the z-order is minimized.
+  // Restore both entries. The hotseat should now be hidden.
   AddEntryToFakeFile(/*restore_window_id=*/1, gfx::Rect(200, 200),
-                     chromeos::WindowStateType::kNormal);
-  views::Widget* restored_widget =
+                     chromeos::WindowStateType::kMinimized,
+                     /*activation_index=*/1);
+  AddEntryToFakeFile(/*restore_window_id=*/2, gfx::Rect(200, 200),
+                     chromeos::WindowStateType::kNormal,
+                     /*activation_index=*/2);
+  views::Widget* restored_widget_1 =
       CreateTestFullRestoredWidgetFromRestoreId(/*restore_window_id=*/1);
-  EXPECT_TRUE(restored_widget->IsVisible());
+  views::Widget* restored_widget_2 =
+      CreateTestFullRestoredWidgetFromRestoreId(/*restore_window_id=*/2);
+  EXPECT_FALSE(restored_widget_1->IsVisible());
+  EXPECT_TRUE(restored_widget_2->IsVisible());
+  EXPECT_FALSE(restored_widget_1->IsActive());
+  EXPECT_FALSE(restored_widget_2->IsActive());
   EXPECT_EQ(HotseatState::kHidden, hotseat_widget->state());
-  // TODO(chinsenj|sammiequon): Ensure that the app list is deactivated here.
+  EXPECT_FALSE(app_list_widget->IsActive());
+}
+
+// Tests that the app list isn't deactivated when all restored windows are
+// minimized.
+TEST_F(FullRestoreControllerTest,
+       AppListNotDeactivatedWhenAllWindowsMinimized) {
+  // Enter tablet mode and ensure the app list is active.
+  TabletModeControllerTestApi().EnterTabletMode();
+  auto* app_list_widget = views::Widget::GetWidgetForNativeWindow(
+      Shell::Get()->app_list_controller()->GetWindow());
+  ASSERT_TRUE(app_list_widget->IsActive());
+
+  // Create multiple minimized entries and restore them. The app list should
+  // still be active.
+  AddEntryToFakeFile(/*restore_window_id=*/1, gfx::Rect(200, 200),
+                     chromeos::WindowStateType::kMinimized,
+                     /*activation_index=*/1);
+  AddEntryToFakeFile(/*restore_window_id=*/2, gfx::Rect(200, 200),
+                     chromeos::WindowStateType::kMinimized,
+                     /*activation_index=*/2);
+  views::Widget* restored_widget_1 =
+      CreateTestFullRestoredWidgetFromRestoreId(/*restore_window_id=*/1);
+  views::Widget* restored_widget_2 =
+      CreateTestFullRestoredWidgetFromRestoreId(/*restore_window_id=*/2);
+  EXPECT_FALSE(restored_widget_1->IsVisible());
+  EXPECT_FALSE(restored_widget_2->IsVisible());
+  EXPECT_FALSE(restored_widget_1->IsActive());
+  EXPECT_FALSE(restored_widget_2->IsActive());
+  EXPECT_TRUE(app_list_widget->IsActive());
 }
 
 }  // namespace ash
diff --git a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl.cc b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl.cc
index 5a67018..bdfe6ff 100644
--- a/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl.cc
+++ b/ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl.cc
@@ -157,7 +157,7 @@
 void BackGestureContextualNudgeControllerImpl::MaybeShowNudgeUi(
     aura::Window* window) {
   if ((!nudge_ || !nudge_->ShouldNudgeCountAsShown()) &&
-      window->type() == aura::client::WINDOW_TYPE_NORMAL &&
+      window->GetType() == aura::client::WINDOW_TYPE_NORMAL &&
       !window->is_destroying() &&
       Shell::Get()->shell_delegate()->CanGoBack(window) &&
       CanShowNudge(nullptr)) {
diff --git a/ash/wm/gestures/back_gesture/test_back_gesture_contextual_nudge_delegate.cc b/ash/wm/gestures/back_gesture/test_back_gesture_contextual_nudge_delegate.cc
index 5178ed2..75e4d0db 100644
--- a/ash/wm/gestures/back_gesture/test_back_gesture_contextual_nudge_delegate.cc
+++ b/ash/wm/gestures/back_gesture/test_back_gesture_contextual_nudge_delegate.cc
@@ -19,7 +19,7 @@
 
 void TestBackGestureContextualNudgeDelegate::MaybeStartTrackingNavigation(
     aura::Window* window) {
-  if (window->type() == aura::client::WindowType::WINDOW_TYPE_NORMAL)
+  if (window->GetType() == aura::client::WindowType::WINDOW_TYPE_NORMAL)
     controller_->NavigationEntryChanged(window);
 }
 
diff --git a/ash/wm/mru_window_tracker.cc b/ash/wm/mru_window_tracker.cc
index 6e9e43d..e21a261 100644
--- a/ash/wm/mru_window_tracker.cc
+++ b/ash/wm/mru_window_tracker.cc
@@ -134,7 +134,7 @@
         if (active_desk_only) {
           // If only the active desk's MRU windows are requested, then exclude
           // children of the non-active desks' containers.
-          const int parent_id = window->parent()->id();
+          const int parent_id = window->parent()->GetId();
           if (desks_util::IsDeskContainerId(parent_id) &&
               parent_id != active_desk_id) {
             continue;
diff --git a/ash/wm/mru_window_tracker_unittest.cc b/ash/wm/mru_window_tracker_unittest.cc
index 811210673..942ca2d4 100644
--- a/ash/wm/mru_window_tracker_unittest.cc
+++ b/ash/wm/mru_window_tracker_unittest.cc
@@ -136,7 +136,7 @@
   delegate->SetModalType(ui::MODAL_TYPE_SYSTEM);
   std::unique_ptr<views::Widget> modal =
       CreateTestWidget(delegate.release(), kShellWindowId_Invalid);
-  EXPECT_EQ(modal.get()->GetNativeView()->parent()->id(),
+  EXPECT_EQ(modal.get()->GetNativeView()->parent()->GetId(),
             kShellWindowId_SystemModalContainer);
 
   window_list = BuildMruWindowList();
diff --git a/ash/wm/overview/overview_controller_unittest.cc b/ash/wm/overview/overview_controller_unittest.cc
index 979d970..2358600e 100644
--- a/ash/wm/overview/overview_controller_unittest.cc
+++ b/ash/wm/overview/overview_controller_unittest.cc
@@ -181,8 +181,8 @@
 };
 
 void WaitForOcclusionStateChange(aura::Window* window) {
-  auto current_state = window->occlusion_state();
-  while (window->occlusion_state() == current_state)
+  auto current_state = window->GetOcclusionState();
+  while (window->GetOcclusionState() == current_state)
     base::RunLoop().RunUntilIdle();
 }
 
@@ -320,59 +320,59 @@
 
   window1->TrackOcclusionState();
   window2->TrackOcclusionState();
-  EXPECT_EQ(OcclusionState::OCCLUDED, window1->occlusion_state());
-  EXPECT_EQ(OcclusionState::VISIBLE, window2->occlusion_state());
+  EXPECT_EQ(OcclusionState::OCCLUDED, window1->GetOcclusionState());
+  EXPECT_EQ(OcclusionState::VISIBLE, window2->GetOcclusionState());
 
   // Enter with windows.
   Shell::Get()->overview_controller()->StartOverview();
-  EXPECT_EQ(OcclusionState::OCCLUDED, window1->occlusion_state());
-  EXPECT_EQ(OcclusionState::VISIBLE, window2->occlusion_state());
+  EXPECT_EQ(OcclusionState::OCCLUDED, window1->GetOcclusionState());
+  EXPECT_EQ(OcclusionState::VISIBLE, window2->GetOcclusionState());
 
   observer.WaitForStartingAnimationComplete();
   // Occlusion tracking is paused.
-  EXPECT_EQ(OcclusionState::OCCLUDED, window1->occlusion_state());
-  EXPECT_EQ(OcclusionState::VISIBLE, window2->occlusion_state());
+  EXPECT_EQ(OcclusionState::OCCLUDED, window1->GetOcclusionState());
+  EXPECT_EQ(OcclusionState::VISIBLE, window2->GetOcclusionState());
   WaitForOcclusionStateChange(window1.get());
-  EXPECT_EQ(OcclusionState::VISIBLE, window1->occlusion_state());
+  EXPECT_EQ(OcclusionState::VISIBLE, window1->GetOcclusionState());
 
   // Exit with windows.
   Shell::Get()->overview_controller()->EndOverview();
-  EXPECT_EQ(OcclusionState::VISIBLE, window1->occlusion_state());
-  EXPECT_EQ(OcclusionState::VISIBLE, window2->occlusion_state());
+  EXPECT_EQ(OcclusionState::VISIBLE, window1->GetOcclusionState());
+  EXPECT_EQ(OcclusionState::VISIBLE, window2->GetOcclusionState());
   observer.WaitForEndingAnimationComplete();
-  EXPECT_EQ(OcclusionState::VISIBLE, window1->occlusion_state());
-  EXPECT_EQ(OcclusionState::VISIBLE, window2->occlusion_state());
+  EXPECT_EQ(OcclusionState::VISIBLE, window1->GetOcclusionState());
+  EXPECT_EQ(OcclusionState::VISIBLE, window2->GetOcclusionState());
   WaitForOcclusionStateChange(window1.get());
-  EXPECT_EQ(OcclusionState::OCCLUDED, window1->occlusion_state());
+  EXPECT_EQ(OcclusionState::OCCLUDED, window1->GetOcclusionState());
 
   observer.Reset();
 
   // Enter again.
   Shell::Get()->overview_controller()->StartOverview();
-  EXPECT_EQ(OcclusionState::OCCLUDED, window1->occlusion_state());
-  EXPECT_EQ(OcclusionState::VISIBLE, window2->occlusion_state());
+  EXPECT_EQ(OcclusionState::OCCLUDED, window1->GetOcclusionState());
+  EXPECT_EQ(OcclusionState::VISIBLE, window2->GetOcclusionState());
   auto* active = window_util::GetActiveWindow();
   EXPECT_EQ(window2.get(), active);
 
   observer.WaitForStartingAnimationComplete();
 
   // Window 1 is still occluded because tracker is paused.
-  EXPECT_EQ(OcclusionState::OCCLUDED, window1->occlusion_state());
-  EXPECT_EQ(OcclusionState::VISIBLE, window2->occlusion_state());
+  EXPECT_EQ(OcclusionState::OCCLUDED, window1->GetOcclusionState());
+  EXPECT_EQ(OcclusionState::VISIBLE, window2->GetOcclusionState());
 
   WaitForOcclusionStateChange(window1.get());
-  EXPECT_EQ(OcclusionState::VISIBLE, window1->occlusion_state());
+  EXPECT_EQ(OcclusionState::VISIBLE, window1->GetOcclusionState());
 
   wm::ActivateWindow(window1.get());
   observer.WaitForEndingAnimationComplete();
 
   // Windows are visible because tracker is paused.
   EXPECT_FALSE(Shell::Get()->overview_controller()->InOverviewSession());
-  EXPECT_EQ(OcclusionState::VISIBLE, window2->occlusion_state());
-  EXPECT_EQ(OcclusionState::VISIBLE, window1->occlusion_state());
+  EXPECT_EQ(OcclusionState::VISIBLE, window2->GetOcclusionState());
+  EXPECT_EQ(OcclusionState::VISIBLE, window1->GetOcclusionState());
   WaitForOcclusionStateChange(window2.get());
-  EXPECT_EQ(OcclusionState::VISIBLE, window1->occlusion_state());
-  EXPECT_EQ(OcclusionState::OCCLUDED, window2->occlusion_state());
+  EXPECT_EQ(OcclusionState::VISIBLE, window1->GetOcclusionState());
+  EXPECT_EQ(OcclusionState::OCCLUDED, window2->GetOcclusionState());
 }
 
 // Tests that PIP windows are not shown in overview.
diff --git a/ash/wm/overview/overview_highlight_controller_unittest.cc b/ash/wm/overview/overview_highlight_controller_unittest.cc
index b7fc2b3..e5b38ff 100644
--- a/ash/wm/overview/overview_highlight_controller_unittest.cc
+++ b/ash/wm/overview/overview_highlight_controller_unittest.cc
@@ -143,8 +143,8 @@
       // TODO(flackr): Add a more readable error message by constructing a
       // string from the window IDs.
       const int index = index_path_for_direction[key_index][i];
-      EXPECT_EQ(GetOverviewHighlightedWindow()->id(),
-                overview_windows[index - 1]->GetWindow()->id());
+      EXPECT_EQ(GetOverviewHighlightedWindow()->GetId(),
+                overview_windows[index - 1]->GetWindow()->GetId());
     }
     ToggleOverview();
   }
diff --git a/ash/wm/overview/overview_session.cc b/ash/wm/overview/overview_session.cc
index e1c6a5a8..27edf73 100644
--- a/ash/wm/overview/overview_session.cc
+++ b/ash/wm/overview/overview_session.cc
@@ -717,7 +717,7 @@
     return;
 
   // Activating the Desks bar should not end overview.
-  if (gained_active && gained_active->id() == kShellWindowId_DesksBarWindow)
+  if (gained_active && gained_active->GetId() == kShellWindowId_DesksBarWindow)
     return;
 
   if (DesksController::Get()->AreDesksBeingModified()) {
diff --git a/ash/wm/overview/overview_session_unittest.cc b/ash/wm/overview/overview_session_unittest.cc
index 3619c05..bd3d0e1 100644
--- a/ash/wm/overview/overview_session_unittest.cc
+++ b/ash/wm/overview/overview_session_unittest.cc
@@ -548,9 +548,9 @@
   ToggleOverview();
   const std::vector<std::unique_ptr<OverviewItem>>& overview1 =
       GetOverviewItemsForRoot(0);
-  EXPECT_EQ(1, overview1[0]->GetWindow()->id());
-  EXPECT_EQ(3, overview1[1]->GetWindow()->id());
-  EXPECT_EQ(2, overview1[2]->GetWindow()->id());
+  EXPECT_EQ(1, overview1[0]->GetWindow()->GetId());
+  EXPECT_EQ(3, overview1[1]->GetWindow()->GetId());
+  EXPECT_EQ(2, overview1[2]->GetWindow()->GetId());
   ToggleOverview();
 
   // Activate the second window.
@@ -560,9 +560,9 @@
       GetOverviewItemsForRoot(0);
 
   // The order should be MRU.
-  EXPECT_EQ(2, overview2[0]->GetWindow()->id());
-  EXPECT_EQ(1, overview2[1]->GetWindow()->id());
-  EXPECT_EQ(3, overview2[2]->GetWindow()->id());
+  EXPECT_EQ(2, overview2[0]->GetWindow()->GetId());
+  EXPECT_EQ(1, overview2[1]->GetWindow()->GetId());
+  EXPECT_EQ(3, overview2[2]->GetWindow()->GetId());
   ToggleOverview();
 }
 
diff --git a/ash/wm/overview/overview_utils.cc b/ash/wm/overview/overview_utils.cc
index b4923ef8..9d6ee25 100644
--- a/ash/wm/overview/overview_utils.cc
+++ b/ash/wm/overview/overview_utils.cc
@@ -145,7 +145,7 @@
     // Ignore other window types when computing bounding box of overview target
     // item.
     if (window_iter != window &&
-        window_iter->type() != aura::client::WINDOW_TYPE_NORMAL) {
+        window_iter->GetType() != aura::client::WINDOW_TYPE_NORMAL) {
       continue;
     }
     gfx::RectF target_bounds(window_iter->GetTargetBounds());
diff --git a/ash/wm/overview/scoped_overview_transform_window.cc b/ash/wm/overview/scoped_overview_transform_window.cc
index 4d5d997..99dd92d 100644
--- a/ash/wm/overview/scoped_overview_transform_window.cc
+++ b/ash/wm/overview/scoped_overview_transform_window.cc
@@ -352,7 +352,7 @@
     // If there are regular windows in the transient ancestor tree, all those
     // windows are shown in the same overview item and the header is not masked.
     if (window != window_ &&
-        window->type() == aura::client::WINDOW_TYPE_NORMAL) {
+        window->GetType() == aura::client::WINDOW_TYPE_NORMAL) {
       return 0;
     }
   }
diff --git a/ash/wm/session_state_animator_impl.cc b/ash/wm/session_state_animator_impl.cc
index c77e180..eb2f98ba 100644
--- a/ash/wm/session_state_animator_impl.cc
+++ b/ash/wm/session_state_animator_impl.cc
@@ -267,7 +267,7 @@
     };
     if (non_lock_screen_containers) {
       for (aura::Window* window : non_lock_screen_containers->children()) {
-        if ((base::Contains(ContainersToAnimate, window->id()) ||
+        if ((base::Contains(ContainersToAnimate, window->GetId()) ||
              desks_util::IsActiveDeskContainer(window))) {
           containers->push_back(window);
         }
diff --git a/ash/wm/session_state_animator_impl_unittest.cc b/ash/wm/session_state_animator_impl_unittest.cc
index ec8766d9..b355ffd 100644
--- a/ash/wm/session_state_animator_impl_unittest.cc
+++ b/ash/wm/session_state_animator_impl_unittest.cc
@@ -16,12 +16,12 @@
 namespace {
 
 bool ParentHasWindowWithId(const aura::Window* window, int id) {
-  return window->parent()->id() == id;
+  return window->parent()->GetId() == id;
 }
 
 bool ContainersHaveWindowWithId(const aura::Window::Windows windows, int id) {
   for (const aura::Window* window : windows) {
-    if (window->id() == id)
+    if (window->GetId() == id)
       return true;
   }
   return false;
diff --git a/ash/wm/switchable_windows.cc b/ash/wm/switchable_windows.cc
index 221380d0..b783290 100644
--- a/ash/wm/switchable_windows.cc
+++ b/ash/wm/switchable_windows.cc
@@ -58,7 +58,7 @@
   if (!window)
     return false;
 
-  return base::Contains(GetSwitchableContainerIds(), window->id());
+  return base::Contains(GetSwitchableContainerIds(), window->GetId());
 }
 
 }  // namespace ash
diff --git a/ash/wm/system_modal_container_layout_manager.cc b/ash/wm/system_modal_container_layout_manager.cc
index 5d1ddfe..9c88e62 100644
--- a/ash/wm/system_modal_container_layout_manager.cc
+++ b/ash/wm/system_modal_container_layout_manager.cc
@@ -81,9 +81,9 @@
 
 void SystemModalContainerLayoutManager::OnWindowAddedToLayout(
     aura::Window* child) {
-  DCHECK(child->type() == aura::client::WINDOW_TYPE_NORMAL ||
-         child->type() == aura::client::WINDOW_TYPE_POPUP);
-  DCHECK(container_->id() != kShellWindowId_LockSystemModalContainer ||
+  DCHECK(child->GetType() == aura::client::WINDOW_TYPE_NORMAL ||
+         child->GetType() == aura::client::WINDOW_TYPE_POPUP);
+  DCHECK(container_->GetId() != kShellWindowId_LockSystemModalContainer ||
          Shell::Get()->session_controller()->IsUserSessionBlocked());
   // Since this is for SystemModal, there is no good reason to add windows
   // other than MODAL_TYPE_NONE or MODAL_TYPE_SYSTEM. DCHECK to avoid simple
@@ -183,7 +183,7 @@
 // static
 bool SystemModalContainerLayoutManager::IsModalBackground(
     aura::Window* window) {
-  int id = window->parent()->id();
+  int id = window->parent()->GetId();
   if (id != kShellWindowId_SystemModalContainer &&
       id != kShellWindowId_LockSystemModalContainer)
     return false;
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.cc b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
index 7264f3f..bd35a92 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
@@ -714,7 +714,7 @@
     return false;
   }
 
-  return window->type() == aura::client::WINDOW_TYPE_NORMAL;
+  return window->GetType() == aura::client::WINDOW_TYPE_NORMAL;
 }
 
 void TabletModeWindowManager::AddWindowCreationObservers() {
diff --git a/ash/wm/toplevel_window_event_handler.cc b/ash/wm/toplevel_window_event_handler.cc
index 205ba62..57956f95 100644
--- a/ash/wm/toplevel_window_event_handler.cc
+++ b/ash/wm/toplevel_window_event_handler.cc
@@ -44,7 +44,7 @@
   // the tab strip is full and hitting the caption area is difficult. We check
   // the window type and the state type so that we do not steal touches from the
   // web contents.
-  if (window->type() != aura::client::WINDOW_TYPE_NORMAL ||
+  if (window->GetType() != aura::client::WINDOW_TYPE_NORMAL ||
       !WindowState::Get(window) ||
       !WindowState::Get(window)->IsNormalOrSnapped()) {
     return false;
diff --git a/ash/wm/toplevel_window_event_handler_unittest.cc b/ash/wm/toplevel_window_event_handler_unittest.cc
index f56181fa..c88f457 100644
--- a/ash/wm/toplevel_window_event_handler_unittest.cc
+++ b/ash/wm/toplevel_window_event_handler_unittest.cc
@@ -112,7 +112,7 @@
   aura::Window* CreateWindow(int hittest_code) {
     TestWindowDelegate* d1 = new TestWindowDelegate(hittest_code);
     aura::Window* w1 = new aura::Window(d1, aura::client::WINDOW_TYPE_NORMAL);
-    w1->set_id(1);
+    w1->SetId(1);
     w1->Init(ui::LAYER_TEXTURED);
     aura::Window* parent = Shell::GetContainer(
         Shell::GetPrimaryRootWindow(), desks_util::GetActiveDeskContainerId());
diff --git a/ash/wm/window_cycle/window_cycle_controller_unittest.cc b/ash/wm/window_cycle/window_cycle_controller_unittest.cc
index 459436e..1c62d2e 100644
--- a/ash/wm/window_cycle/window_cycle_controller_unittest.cc
+++ b/ash/wm/window_cycle/window_cycle_controller_unittest.cc
@@ -223,6 +223,18 @@
       waiter.Wait();
   }
 
+  void Scroll(float x_offset, float y_offset, int fingers) {
+    GetEventGenerator()->ScrollSequence(
+        gfx::Point(), base::TimeDelta::FromMilliseconds(5),
+        GetOffsetX(x_offset), GetOffsetY(y_offset), /*steps=*/100, fingers);
+  }
+
+  void MouseWheelScroll(int delta_x, int delta_y, int num_of_times) {
+    auto* generator = GetEventGenerator();
+    for (int i = 0; i < num_of_times; i++)
+      generator->MoveMouseWheel(delta_x, delta_y);
+  }
+
  private:
   std::unique_ptr<ShelfViewTestAPI> shelf_view_test_;
 
@@ -712,56 +724,6 @@
   EXPECT_EQ(0, event_count.GetKeyEventCountAndReset());
 }
 
-// While the UI is active, mouse events are captured.
-TEST_F(WindowCycleControllerTest, MouseEventsCaptured) {
-  if (features::IsInteractiveWindowCycleListEnabled())
-    return;
-
-  // Set up a second root window
-  UpdateDisplay("1000x600,600x400");
-  aura::Window::Windows root_windows = Shell::GetAllRootWindows();
-  ASSERT_EQ(2U, root_windows.size());
-
-  // This delegate allows the window to receive mouse events.
-  aura::test::TestWindowDelegate delegate;
-  std::unique_ptr<Window> w0(CreateTestWindowInShellWithDelegate(
-      &delegate, 0, gfx::Rect(0, 0, 100, 100)));
-  std::unique_ptr<Window> w1(CreateTestWindowInShellWithId(1));
-  EventCounter event_count;
-  w0->AddPreTargetHandler(&event_count);
-  w1->SetTargetHandler(&event_count);
-  ui::test::EventGenerator* generator = GetEventGenerator();
-  wm::ActivateWindow(w0.get());
-
-  // Events get through while not cycling.
-  generator->MoveMouseToCenterOf(w0.get());
-  generator->ClickLeftButton();
-  EXPECT_LT(0, event_count.GetMouseEventCountAndReset());
-
-  // Start cycling.
-  WindowCycleController* controller = Shell::Get()->window_cycle_controller();
-  controller->HandleCycleWindow(
-      WindowCycleController::WindowCyclingDirection::kForward);
-
-  // Mouse events not over the cycle view don't get through.
-  generator->PressLeftButton();
-  EXPECT_EQ(0, event_count.GetMouseEventCountAndReset());
-
-  // Although releases do, regardless of mouse position.
-  generator->ReleaseLeftButton();
-  EXPECT_LT(0, event_count.GetMouseEventCountAndReset());
-
-  // Stop cycling: once again, events get through.
-  CompleteCycling(controller);
-  generator->ClickLeftButton();
-  EXPECT_LT(0, event_count.GetMouseEventCountAndReset());
-
-  // Click somewhere on the second root window.
-  generator->MoveMouseToCenterOf(root_windows[1]);
-  generator->ClickLeftButton();
-  EXPECT_EQ(0, event_count.GetMouseEventCountAndReset());
-}
-
 // Tests that we can cycle past fullscreen windows: https://crbug.com/622396.
 // Fullscreen windows are special in that they are allowed to handle alt+tab
 // keypresses, which means the window cycle event filter should not handle
@@ -1068,44 +1030,9 @@
   EXPECT_EQ(2u, GetWindows(controller).size());
 }
 
-class InteractiveWindowCycleControllerTest : public WindowCycleControllerTest {
- public:
-  InteractiveWindowCycleControllerTest() = default;
-  InteractiveWindowCycleControllerTest(
-      const InteractiveWindowCycleControllerTest&) = delete;
-  InteractiveWindowCycleControllerTest& operator=(
-      const InteractiveWindowCycleControllerTest&) = delete;
-  ~InteractiveWindowCycleControllerTest() override = default;
-
-  // WindowCycleControllerTest:
-  void SetUp() override {
-    scoped_feature_list_.InitAndEnableFeature(
-        features::kInteractiveWindowCycleList);
-    WindowCycleControllerTest::SetUp();
-  }
-
-  void Scroll(float x_offset, float y_offset, int fingers) {
-    GetEventGenerator()->ScrollSequence(
-        gfx::Point(), base::TimeDelta::FromMilliseconds(5),
-        GetOffsetX(x_offset), GetOffsetY(y_offset), /*steps=*/100, fingers);
-  }
-
-  void MouseWheelScroll(int delta_x, int delta_y, int num_of_times) {
-    auto* generator = GetEventGenerator();
-    for (int i = 0; i < num_of_times; i++)
-      generator->MoveMouseWheel(delta_x, delta_y);
-  }
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
-};
-
 // Tests that when the cycle view is not open, the event filter does not check
 // whether events occur within the cycle view.
-// TODO(chinsenj): Add this to WindowCycleControllerTest.MouseEventsCaptured
-// after feature launch.
-TEST_F(InteractiveWindowCycleControllerTest,
-       MouseEventWhenCycleViewDoesNotExist) {
+TEST_F(WindowCycleControllerTest, MouseEventWhenCycleViewDoesNotExist) {
   aura::test::TestWindowDelegate delegate;
   std::unique_ptr<Window> w0(CreateTestWindowInShellWithDelegate(
       &delegate, 0, gfx::Rect(0, 0, 100, 100)));
@@ -1131,7 +1058,7 @@
 // The items in the list should not move, only the focus ring.
 // If a user clicks on an item, it should complete cycling and activate
 // the hovered item.
-TEST_F(InteractiveWindowCycleControllerTest, MouseHoverAndSelect) {
+TEST_F(WindowCycleControllerTest, MouseHoverAndSelect) {
   std::unique_ptr<Window> w0 = CreateTestWindow();
   std::unique_ptr<Window> w1 = CreateTestWindow();
   std::unique_ptr<Window> w2 = CreateTestWindow();
@@ -1184,7 +1111,7 @@
 
 // Tests that the left and right keys cycle after the cycle list has been
 // initialized.
-TEST_F(InteractiveWindowCycleControllerTest, LeftRightCycle) {
+TEST_F(WindowCycleControllerTest, LeftRightCycle) {
   std::unique_ptr<Window> w0 = CreateTestWindow();
   std::unique_ptr<Window> w1 = CreateTestWindow();
   std::unique_ptr<Window> w2 = CreateTestWindow();
@@ -1221,7 +1148,7 @@
 
 // Tests that pressing the space key, pressing the enter key, or releasing the
 // alt key during window cycle confirms a selection.
-TEST_F(InteractiveWindowCycleControllerTest, KeysConfirmSelection) {
+TEST_F(WindowCycleControllerTest, KeysConfirmSelection) {
   std::unique_ptr<Window> w0 = CreateTestWindow();
   std::unique_ptr<Window> w1 = CreateTestWindow();
   std::unique_ptr<Window> w2 = CreateTestWindow();
@@ -1259,7 +1186,7 @@
 
 // Tests that pressing the enter key or space key really quickly doesn't crash.
 // See crbug.com/1187242.
-TEST_F(InteractiveWindowCycleControllerTest, RapidConfirmSelection) {
+TEST_F(WindowCycleControllerTest, RapidConfirmSelection) {
   std::unique_ptr<Window> w0 = CreateTestWindow();
   std::unique_ptr<Window> w1 = CreateTestWindow();
   std::unique_ptr<Window> w2 = CreateTestWindow();
@@ -1303,7 +1230,7 @@
 // Tests that mouse events are filtered until the mouse is actually used,
 // preventing the mouse from unexpectedly triggering events.
 // See crbug.com/1143275.
-TEST_F(InteractiveWindowCycleControllerTest, FilterMouseEventsUntilUsed) {
+TEST_F(WindowCycleControllerTest, FilterMouseEventsUntilUsed) {
   std::unique_ptr<Window> w0 = CreateTestWindow();
   std::unique_ptr<Window> w1 = CreateTestWindow();
   std::unique_ptr<Window> w2 = CreateTestWindow();
@@ -1351,8 +1278,7 @@
 
 // When a user has the window cycle list open and clicks outside of it, it
 // should cancel cycling.
-TEST_F(InteractiveWindowCycleControllerTest,
-       MousePressOutsideOfListCancelsCycling) {
+TEST_F(WindowCycleControllerTest, MousePressOutsideOfListCancelsCycling) {
   std::unique_ptr<Window> w0 = CreateTestWindow();
   std::unique_ptr<Window> w1 = CreateTestWindow();
   std::unique_ptr<Window> w2 = CreateTestWindow();
@@ -1374,8 +1300,7 @@
 
 // When the user has one window open, the window cycle view isn't shown. In this
 // case we should not eat mouse events.
-TEST_F(InteractiveWindowCycleControllerTest,
-       MouseEventsNotEatenWhenCycleViewNotVisible) {
+TEST_F(WindowCycleControllerTest, MouseEventsNotEatenWhenCycleViewNotVisible) {
   std::unique_ptr<Window> w0 = CreateTestWindow();
   EventCounter event_count;
   w0->AddPreTargetHandler(&event_count);
@@ -1395,7 +1320,7 @@
 }
 
 // Tests three finger horizontal scroll gesture to move selection left or right.
-TEST_F(InteractiveWindowCycleControllerTest,
+TEST_F(WindowCycleControllerTest,
        ThreeFingerHorizontalScrollInWindowCycleList) {
   const gfx::Rect bounds(0, 0, 400, 400);
   std::unique_ptr<aura::Window> window1 = CreateTestWindow(bounds);
@@ -1453,8 +1378,7 @@
 }
 
 // Tests two finger horizontal scroll gesture to move selection left or right.
-TEST_F(InteractiveWindowCycleControllerTest,
-       TwoFingerHorizontalScrollInWindowCycleList) {
+TEST_F(WindowCycleControllerTest, TwoFingerHorizontalScrollInWindowCycleList) {
   const gfx::Rect bounds(0, 0, 400, 400);
   std::unique_ptr<aura::Window> window1 = CreateTestWindow(bounds);
   std::unique_ptr<aura::Window> window2 = CreateTestWindow(bounds);
@@ -1493,8 +1417,7 @@
 }
 
 // Tests mouse wheel scroll gesture to move selection left or right.
-TEST_F(InteractiveWindowCycleControllerTest,
-       MouseWheelScrollInWindowCycleList) {
+TEST_F(WindowCycleControllerTest, MouseWheelScrollInWindowCycleList) {
   const gfx::Rect bounds(0, 0, 400, 400);
   std::unique_ptr<aura::Window> window1 = CreateTestWindow(bounds);
   std::unique_ptr<aura::Window> window2 = CreateTestWindow(bounds);
@@ -1532,7 +1455,7 @@
 
 // Tests that swiping up closes window cycle if it's open and starts overview
 // mode.
-TEST_F(InteractiveWindowCycleControllerTest, VerticalScroll) {
+TEST_F(WindowCycleControllerTest, VerticalScroll) {
   std::unique_ptr<aura::Window> window1 = CreateTestWindow();
   std::unique_ptr<aura::Window> window2 = CreateTestWindow();
   const float vertical_scroll = 2 * WmGestureHandler::kVerticalThresholdDp;
@@ -1567,7 +1490,7 @@
 }
 
 // Tests that touch continuous scrolls for the window cycle list.
-TEST_F(InteractiveWindowCycleControllerTest, TouchScroll) {
+TEST_F(WindowCycleControllerTest, TouchScroll) {
   const gfx::Rect bounds(0, 0, 200, 200);
   std::unique_ptr<aura::Window> window5 = CreateTestWindow(bounds);
   std::unique_ptr<aura::Window> window4 = CreateTestWindow(bounds);
@@ -1659,7 +1582,7 @@
 
 // When a user taps on an item, it should set the focus ring to that item. After
 // they release their finger it should confirm the selection.
-TEST_F(InteractiveWindowCycleControllerTest, TapSelect) {
+TEST_F(WindowCycleControllerTest, TapSelect) {
   std::unique_ptr<aura::Window> w0 = CreateTestWindow();
   std::unique_ptr<aura::Window> w1 = CreateTestWindow();
   std::unique_ptr<aura::Window> w2 = CreateTestWindow();
@@ -1728,7 +1651,7 @@
 }
 
 class ReverseGestureWindowCycleControllerTest
-    : public InteractiveWindowCycleControllerTest {
+    : public WindowCycleControllerTest {
  public:
   ReverseGestureWindowCycleControllerTest() = default;
   ReverseGestureWindowCycleControllerTest(
diff --git a/ash/wm/window_cycle/window_cycle_event_filter.cc b/ash/wm/window_cycle/window_cycle_event_filter.cc
index 579620a3..6824cbb 100644
--- a/ash/wm/window_cycle/window_cycle_event_filter.cc
+++ b/ash/wm/window_cycle/window_cycle_event_filter.cc
@@ -6,7 +6,6 @@
 
 #include "ash/accelerators/debug_commands.h"
 #include "ash/display/screen_ash.h"
-#include "ash/public/cpp/ash_features.h"
 #include "ash/public/cpp/ash_pref_names.h"
 #include "ash/session/session_controller_impl.h"
 #include "ash/shell.h"
@@ -81,7 +80,7 @@
   if (!has_user_used_mouse_)
     SetHasUserUsedMouse(event);
 
-  if (features::IsInteractiveWindowCycleListEnabled() && has_user_used_mouse_) {
+  if (has_user_used_mouse_) {
     WindowCycleController* window_cycle_controller =
         Shell::Get()->window_cycle_controller();
     const bool cycle_list_is_visible =
@@ -127,22 +126,7 @@
 }
 
 void WindowCycleEventFilter::OnGestureEvent(ui::GestureEvent* event) {
-  if (features::IsInteractiveWindowCycleListEnabled()) {
-    ProcessGestureEvent(event);
-  } else {
-    // Prevent any form of tap from doing anything while the Alt+Tab UI is
-    // active.
-    if (event->type() == ui::ET_GESTURE_TAP ||
-        event->type() == ui::ET_GESTURE_DOUBLE_TAP ||
-        event->type() == ui::ET_GESTURE_TAP_CANCEL ||
-        event->type() == ui::ET_GESTURE_TAP_DOWN ||
-        event->type() == ui::ET_GESTURE_TAP_UNCONFIRMED ||
-        event->type() == ui::ET_GESTURE_TWO_FINGER_TAP ||
-        event->type() == ui::ET_GESTURE_LONG_PRESS ||
-        event->type() == ui::ET_GESTURE_LONG_TAP) {
-      event->StopPropagation();
-    }
-  }
+  ProcessGestureEvent(event);
 }
 
 void WindowCycleEventFilter::HandleTriggerKey(ui::KeyEvent* event) {
@@ -166,7 +150,6 @@
 bool WindowCycleEventFilter::IsTriggerKey(ui::KeyEvent* event) const {
   const ui::KeyboardCode key_code = event->key_code();
   const bool interactive_trigger_key =
-      features::IsInteractiveWindowCycleListEnabled() &&
       (key_code == ui::VKEY_LEFT || key_code == ui::VKEY_RIGHT);
 
   const bool nav_trigger_key =
@@ -182,9 +165,8 @@
 }
 
 bool WindowCycleEventFilter::IsExitKey(ui::KeyEvent* event) const {
-  return features::IsInteractiveWindowCycleListEnabled() &&
-         (event->key_code() == ui::VKEY_RETURN ||
-          event->key_code() == ui::VKEY_SPACE);
+  return event->key_code() == ui::VKEY_RETURN ||
+         event->key_code() == ui::VKEY_SPACE;
 }
 
 bool WindowCycleEventFilter::ShouldRepeatKey(ui::KeyEvent* event) const {
@@ -311,7 +293,7 @@
 bool WindowCycleEventFilter::ProcessEventImpl(int finger_count,
                                               float delta_x,
                                               float delta_y) {
-  if (!scroll_data_ || !features::IsInteractiveWindowCycleListEnabled())
+  if (!scroll_data_)
     return false;
 
   if (finger_count != 2 && finger_count != 3) {
@@ -346,10 +328,8 @@
 bool WindowCycleEventFilter::CycleWindowCycleList(int finger_count,
                                                   float scroll_x,
                                                   float scroll_y) {
-  if (!features::IsInteractiveWindowCycleListEnabled() ||
-      (finger_count != 2 && finger_count != 3)) {
+  if (finger_count != 2 && finger_count != 3)
     return false;
-  }
 
   auto* window_cycle_controller = Shell::Get()->window_cycle_controller();
   if (!window_cycle_controller->IsCycling() ||
diff --git a/ash/wm/window_cycle/window_cycle_list.cc b/ash/wm/window_cycle/window_cycle_list.cc
index 92a3219..88a87fc2 100644
--- a/ash/wm/window_cycle/window_cycle_list.cc
+++ b/ash/wm/window_cycle/window_cycle_list.cc
@@ -658,20 +658,17 @@
       x_offset = base::ClampToRange(x_offset, minimum_x, 0);
 
       // If the user has dragged, offset the container based on how much they
-      // have dragged.
-      if (features::IsInteractiveWindowCycleListEnabled()) {
-        // Cap |horizontal_distance_dragged_| based on the available distance
-        // from the container to the left and right boundaries.
-        float clamped_horizontal_distance_dragged =
-            base::ClampToRange(horizontal_distance_dragged_,
-                               static_cast<float>(minimum_x - x_offset),
-                               static_cast<float>(-x_offset));
-        if (horizontal_distance_dragged_ != clamped_horizontal_distance_dragged)
-          EndFling();
+      // have dragged. Cap |horizontal_distance_dragged_| based on the available
+      // distance from the container to the left and right boundaries.
+      float clamped_horizontal_distance_dragged =
+          base::ClampToRange(horizontal_distance_dragged_,
+                             static_cast<float>(minimum_x - x_offset),
+                             static_cast<float>(-x_offset));
+      if (horizontal_distance_dragged_ != clamped_horizontal_distance_dragged)
+        EndFling();
 
-        horizontal_distance_dragged_ = clamped_horizontal_distance_dragged;
-        x_offset += horizontal_distance_dragged_;
-      }
+      horizontal_distance_dragged_ = clamped_horizontal_distance_dragged;
+      x_offset += horizontal_distance_dragged_;
     }
     content_container_bounds.set_x(x_offset);
 
diff --git a/ash/wm/window_dimmer_unittest.cc b/ash/wm/window_dimmer_unittest.cc
index 72750b5..67a9c88 100644
--- a/ash/wm/window_dimmer_unittest.cc
+++ b/ash/wm/window_dimmer_unittest.cc
@@ -22,12 +22,12 @@
   bottom_window->TrackOcclusionState();
   WindowDimmer dimmer(root_window);
   EXPECT_EQ(aura::Window::OcclusionState::VISIBLE,
-            bottom_window->occlusion_state());
+            bottom_window->GetOcclusionState());
   // Sanity check: An opaque window on top of |bottom_window| occludes it.
   aura::test::CreateTestWindow(SK_ColorWHITE, 2, root_window->bounds(),
                                root_window);
   EXPECT_EQ(aura::Window::OcclusionState::OCCLUDED,
-            bottom_window->occlusion_state());
+            bottom_window->GetOcclusionState());
 }
 
 }  // namespace ash
diff --git a/ash/wm/window_finder.cc b/ash/wm/window_finder.cc
index 783da81..3abe8e0 100644
--- a/ash/wm/window_finder.cc
+++ b/ash/wm/window_finder.cc
@@ -57,9 +57,9 @@
   if (!window->IsVisible())
     return nullptr;
 
-  if (window->id() == ash::kShellWindowId_PhantomWindow ||
-      window->id() == ash::kShellWindowId_OverlayContainer ||
-      window->id() == ash::kShellWindowId_MouseCursorContainer)
+  if (window->GetId() == ash::kShellWindowId_PhantomWindow ||
+      window->GetId() == ash::kShellWindowId_OverlayContainer ||
+      window->GetId() == ash::kShellWindowId_MouseCursorContainer)
     return nullptr;
 
   if (IsTopLevelWindow(window)) {
diff --git a/ash/wm/window_mirror_view_unittest.cc b/ash/wm/window_mirror_view_unittest.cc
index 5865c52..7bb31f6 100644
--- a/ash/wm/window_mirror_view_unittest.cc
+++ b/ash/wm/window_mirror_view_unittest.cc
@@ -24,7 +24,7 @@
   aura::Window* widget_window = widget->GetNativeWindow();
   widget_window->TrackOcclusionState();
   EXPECT_EQ(aura::Window::OcclusionState::HIDDEN,
-            widget_window->occlusion_state());
+            widget_window->GetOcclusionState());
 
   auto mirror_widget = CreateTestWidget();
   auto mirror_view = std::make_unique<WindowMirrorView>(
@@ -35,7 +35,7 @@
   // Even though the widget is hidden, the occlusion state is considered
   // visible. This is to ensure renderers still produce content.
   EXPECT_EQ(aura::Window::OcclusionState::VISIBLE,
-            widget_window->occlusion_state());
+            widget_window->GetOcclusionState());
 }
 
 // Tests that a mirror view that mirrors a window with an existing transform
diff --git a/ash/wm/window_modality_controller_unittest.cc b/ash/wm/window_modality_controller_unittest.cc
index f827a610..4e9382a62 100644
--- a/ash/wm/window_modality_controller_unittest.cc
+++ b/ash/wm/window_modality_controller_unittest.cc
@@ -29,7 +29,7 @@
 
 bool ValidateStacking(aura::Window* parent, int ids[], int count) {
   for (int i = 0; i < count; ++i) {
-    if (parent->children().at(i)->id() != ids[i])
+    if (parent->children().at(i)->GetId() != ids[i])
       return false;
   }
   return true;
@@ -258,17 +258,17 @@
   // Parent w2 to w1. It should get parented to the parent of w1.
   ::wm::AddTransientChild(w1.get(), w2.get());
   ASSERT_EQ(2U, w1->parent()->children().size());
-  EXPECT_EQ(-2, w1->parent()->children().at(1)->id());
+  EXPECT_EQ(-2, w1->parent()->children().at(1)->GetId());
 
   // Request the modal transient window for w1, it should be w2.
   wt = ::wm::GetModalTransient(w1.get());
   ASSERT_NE(nullptr, wt);
-  EXPECT_EQ(-2, wt->id());
+  EXPECT_EQ(-2, wt->GetId());
 
   // Request the modal transient window for w11, it should also be w2.
   wt = ::wm::GetModalTransient(w11.get());
   ASSERT_NE(nullptr, wt);
-  EXPECT_EQ(-2, wt->id());
+  EXPECT_EQ(-2, wt->GetId());
 }
 
 // Verifies we generate a capture lost when showing a modal window.
diff --git a/ash/wm/window_positioner.cc b/ash/wm/window_positioner.cc
index b4d8c609..087ee37c 100644
--- a/ash/wm/window_positioner.cc
+++ b/ash/wm/window_positioner.cc
@@ -176,7 +176,7 @@
     while (::wm::GetTransientParent(window))
       window = ::wm::GetTransientParent(window);
     if (window != exclude &&
-        window->type() == aura::client::WINDOW_TYPE_NORMAL &&
+        window->GetType() == aura::client::WINDOW_TYPE_NORMAL &&
         window->GetRootWindow() == root_window && window->TargetVisibility() &&
         WindowState::Get(window)->GetWindowPositionManaged()) {
       if (found && found != window) {
diff --git a/ash/wm/window_positioning_utils.cc b/ash/wm/window_positioning_utils.cc
index c5c0b95..32bc668 100644
--- a/ash/wm/window_positioning_utils.cc
+++ b/ash/wm/window_positioning_utils.cc
@@ -136,7 +136,7 @@
     DCHECK(dst_root);
     aura::Window* dst_container = nullptr;
     if (dst_root != window->GetRootWindow()) {
-      int container_id = window->parent()->id();
+      int container_id = window->parent()->GetId();
       // All containers that use screen coordinates must have valid window ids.
       DCHECK_GE(container_id, 0);
       // Don't move modal background.
diff --git a/ash/wm/window_preview_view.cc b/ash/wm/window_preview_view.cc
index 6462f05..40fce58 100644
--- a/ash/wm/window_preview_view.cc
+++ b/ash/wm/window_preview_view.cc
@@ -153,7 +153,7 @@
   DCHECK(!unparented_transient_children_.contains(window));
   DCHECK(!window->HasObserver(this));
 
-  if (window->type() == aura::client::WINDOW_TYPE_POPUP)
+  if (window->GetType() == aura::client::WINDOW_TYPE_POPUP)
     return;
 
   if (!window->HasObserver(this))
diff --git a/ash/wm/window_state.cc b/ash/wm/window_state.cc
index 96b2d5b..c6c5a89 100644
--- a/ash/wm/window_state.cc
+++ b/ash/wm/window_state.cc
@@ -67,7 +67,7 @@
 
 bool IsToplevelContainer(aura::Window* window) {
   DCHECK(window);
-  int container_id = window->id();
+  int container_id = window->GetId();
   // ArcVirtualKeyboard is implemented as a exo window which requires
   // WindowState to manage its state.
   return IsActivatableShellWindowId(container_id) ||
@@ -148,7 +148,7 @@
   for (aura::Window* transient_child : ::wm::GetTransientChildren(window)) {
     if (!transient_child->parent())
       continue;
-    const int container_id = transient_child->parent()->id();
+    const int container_id = transient_child->parent()->GetId();
     DCHECK_GE(container_id, 0);
     aura::Window* container = dst_root->GetChildById(container_id);
     if (container->Contains(transient_child))
@@ -866,7 +866,7 @@
   if (state)
     return state;
 
-  if (window->type() == aura::client::WINDOW_TYPE_CONTROL)
+  if (window->GetType() == aura::client::WINDOW_TYPE_CONTROL)
     return nullptr;
 
   DCHECK(window->parent());
@@ -979,7 +979,7 @@
                                         const gfx::Rect& new_bounds,
                                         ui::PropertyChangeReason reason) {
   DCHECK_EQ(this->window(), window);
-  if (window_->transparent() && IsNormalStateType() &&
+  if (window_->GetTransparent() && IsNormalStateType() &&
       window_->GetProperty(ash::kWindowManagerManagesOpacityKey)) {
     window_->SetOpaqueRegionsForOcclusion({gfx::Rect(new_bounds.size())});
   }
diff --git a/ash/wm/window_state_unittest.cc b/ash/wm/window_state_unittest.cc
index 82b26bc..cf9953d 100644
--- a/ash/wm/window_state_unittest.cc
+++ b/ash/wm/window_state_unittest.cc
@@ -802,45 +802,45 @@
   std::unique_ptr<aura::Window> window = CreateAppWindow();
   WindowState* window_state = WindowState::Get(window.get());
   EXPECT_TRUE(window_state->IsNormalStateType());
-  EXPECT_TRUE(window->transparent());
+  EXPECT_TRUE(window->GetTransparent());
 
   window_state->Maximize();
   EXPECT_TRUE(window_state->IsMaximized());
-  EXPECT_FALSE(window->transparent());
+  EXPECT_FALSE(window->GetTransparent());
 
   window_state->Restore();
   EXPECT_TRUE(window_state->IsNormalStateType());
-  EXPECT_TRUE(window->transparent());
+  EXPECT_TRUE(window->GetTransparent());
 
   window_state->Minimize();
   EXPECT_TRUE(window_state->IsMinimized());
-  EXPECT_FALSE(window->transparent());
+  EXPECT_FALSE(window->GetTransparent());
 
   window_state->Unminimize();
   EXPECT_TRUE(window_state->IsNormalStateType());
-  EXPECT_TRUE(window->transparent());
+  EXPECT_TRUE(window->GetTransparent());
 
   ToggleFullScreen(window_state, nullptr);
   ASSERT_TRUE(window_state->IsFullscreen());
-  EXPECT_FALSE(window->transparent());
+  EXPECT_FALSE(window->GetTransparent());
 
   window_state->Restore();
   EXPECT_TRUE(window_state->IsNormalStateType());
-  EXPECT_TRUE(window->transparent());
+  EXPECT_TRUE(window->GetTransparent());
 
   const WMEvent snap_left(WM_EVENT_SNAP_LEFT);
   window_state->OnWMEvent(&snap_left);
-  EXPECT_FALSE(window->transparent());
+  EXPECT_FALSE(window->GetTransparent());
 
   window_state->Restore();
-  EXPECT_TRUE(window->transparent());
+  EXPECT_TRUE(window->GetTransparent());
 
   const WMEvent snap_right(WM_EVENT_SNAP_RIGHT);
   window_state->OnWMEvent(&snap_left);
-  EXPECT_FALSE(window->transparent());
+  EXPECT_FALSE(window->GetTransparent());
 
   window_state->OnWMEvent(&snap_left);
-  EXPECT_FALSE(window->transparent());
+  EXPECT_FALSE(window->GetTransparent());
 }
 
 // TODO(skuhne): Add more unit test to verify the correctness for the restore
diff --git a/ash/wm/window_util.cc b/ash/wm/window_util.cc
index a1bac11..af7a806 100644
--- a/ash/wm/window_util.cc
+++ b/ash/wm/window_util.cc
@@ -111,7 +111,7 @@
 }
 
 bool IsWindowUserPositionable(aura::Window* window) {
-  return window->type() == aura::client::WINDOW_TYPE_NORMAL;
+  return window->GetType() == aura::client::WINDOW_TYPE_NORMAL;
 }
 
 void PinWindow(aura::Window* window, bool trusted) {
@@ -152,7 +152,7 @@
 
   // Moves |window| to the given |root| window's corresponding container.
   aura::Window* container = RootWindowController::ForWindow(root)->GetContainer(
-      window->parent()->id());
+      window->parent()->GetId());
   if (!container)
     return false;
 
@@ -213,7 +213,7 @@
   // but there will be a flicker as the target window changes. Also exclude
   // unselectable windows such as extension popups.
   for (auto* parent = window->parent(); parent; parent = parent->parent()) {
-    if (parent->id() == kShellWindowId_AppListContainer)
+    if (parent->GetId() == kShellWindowId_AppListContainer)
       return true;
   }
 
@@ -403,7 +403,7 @@
     // Ignore other window types when computing bounding box of overview target
     // item.
     if (window != transformed_window &&
-        window->type() != aura::client::WINDOW_TYPE_NORMAL) {
+        window->GetType() != aura::client::WINDOW_TYPE_NORMAL) {
       continue;
     }
     gfx::RectF window_bounds(window->GetTargetBounds());
diff --git a/ash/wm/window_util_unittest.cc b/ash/wm/window_util_unittest.cc
index 3ad032b..8026f74 100644
--- a/ash/wm/window_util_unittest.cc
+++ b/ash/wm/window_util_unittest.cc
@@ -145,7 +145,7 @@
   const int64_t original_display_id =
       screen->GetDisplayNearestWindow(window.get()).id();
   EXPECT_EQ(screen->GetPrimaryDisplay().id(), original_display_id);
-  const int original_container_id = window->parent()->id();
+  const int original_container_id = window->parent()->GetId();
   const aura::Window* original_root = window->GetRootWindow();
 
   ASSERT_EQ(2, screen->GetNumDisplays());
@@ -154,13 +154,13 @@
   EXPECT_TRUE(MoveWindowToDisplay(window.get(), secondary_display_id));
   EXPECT_EQ(secondary_display_id,
             screen->GetDisplayNearestWindow(window.get()).id());
-  EXPECT_EQ(original_container_id, window->parent()->id());
+  EXPECT_EQ(original_container_id, window->parent()->GetId());
   EXPECT_NE(original_root, window->GetRootWindow());
 
   EXPECT_TRUE(MoveWindowToDisplay(window.get(), original_display_id));
   EXPECT_EQ(original_display_id,
             screen->GetDisplayNearestWindow(window.get()).id());
-  EXPECT_EQ(original_container_id, window->parent()->id());
+  EXPECT_EQ(original_container_id, window->parent()->GetId());
   EXPECT_EQ(original_root, window->GetRootWindow());
 }
 
diff --git a/ash/wm/workspace/backdrop_controller.cc b/ash/wm/workspace/backdrop_controller.cc
index 244aeac6..40915856 100644
--- a/ash/wm/workspace/backdrop_controller.cc
+++ b/ash/wm/workspace/backdrop_controller.cc
@@ -296,7 +296,7 @@
     if (window == backdrop_window_)
       continue;
 
-    if (window->type() != aura::client::WINDOW_TYPE_NORMAL)
+    if (window->GetType() != aura::client::WINDOW_TYPE_NORMAL)
       continue;
 
     auto* window_state = WindowState::Get(window);
@@ -442,7 +442,7 @@
   // To disallow the MRU list from picking this window up it should not be
   // activateable.
   params.activatable = views::Widget::InitParams::Activatable::kNo;
-  DCHECK_NE(kShellWindowId_Invalid, container_->id());
+  DCHECK_NE(kShellWindowId_Invalid, container_->GetId());
   params.parent = container_;
   params.init_properties_container.SetProperty(kHideInOverviewKey, true);
   params.init_properties_container.SetProperty(kForceVisibleInMiniViewKey,
@@ -674,7 +674,7 @@
   // recursive calls to UpdateBackdrop() from the WorkspaceLayoutManager caused
   // by the backdrop itself, even though we avoid recursion here via
   // |pause_update_|.
-  return window->type() != aura::client::WINDOW_TYPE_POPUP &&
+  return window->GetType() != aura::client::WINDOW_TYPE_POPUP &&
          (!backdrop_ || window != backdrop_->GetNativeWindow());
 }
 
diff --git a/ash/wm/workspace/phantom_window_controller.cc b/ash/wm/workspace/phantom_window_controller.cc
index 59eff46..a52db50 100644
--- a/ash/wm/workspace/phantom_window_controller.cc
+++ b/ash/wm/workspace/phantom_window_controller.cc
@@ -84,7 +84,7 @@
   phantom_widget->Init(std::move(params));
   phantom_widget->SetVisibilityChangedAnimationsEnabled(false);
   aura::Window* phantom_widget_window = phantom_widget->GetNativeWindow();
-  phantom_widget_window->set_id(kShellWindowId_PhantomWindow);
+  phantom_widget_window->SetId(kShellWindowId_PhantomWindow);
   phantom_widget->SetBounds(bounds_in_screen);
   // TODO(sky): I suspect this is never true, verify that.
   if (phantom_widget_window->parent() == window_->parent()) {
diff --git a/ash/wm/workspace/workspace_layout_manager.cc b/ash/wm/workspace/workspace_layout_manager.cc
index 52147cd..3da37075 100644
--- a/ash/wm/workspace/workspace_layout_manager.cc
+++ b/ash/wm/workspace/workspace_layout_manager.cc
@@ -142,7 +142,7 @@
 void WorkspaceLayoutManager::OnWindowResized() {}
 
 void WorkspaceLayoutManager::OnWindowAddedToLayout(aura::Window* child) {
-  DCHECK_NE(aura::client::WINDOW_TYPE_CONTROL, child->type());
+  DCHECK_NE(aura::client::WINDOW_TYPE_CONTROL, child->GetType());
   WindowState* window_state = WindowState::Get(child);
   WMEvent event(WM_EVENT_ADDED_TO_WORKSPACE);
   window_state->OnWMEvent(&event);
@@ -320,7 +320,7 @@
   } else if (key == aura::client::kVisibleOnAllWorkspacesKey) {
     auto* desks_controller = Shell::Get()->desks_controller();
 
-    if (window->type() != aura::client::WindowType::WINDOW_TYPE_NORMAL ||
+    if (window->GetType() != aura::client::WindowType::WINDOW_TYPE_NORMAL ||
         window->GetProperty(aura::client::kZOrderingKey) !=
             ui::ZOrderLevel::kNormal) {
       return;
diff --git a/ash/wm/workspace/workspace_window_resizer.cc b/ash/wm/workspace/workspace_window_resizer.cc
index 9fad79b..c89f4568 100644
--- a/ash/wm/workspace/workspace_window_resizer.cc
+++ b/ash/wm/workspace/workspace_window_resizer.cc
@@ -468,7 +468,7 @@
   if (parent &&
       // TODO(afakhry): Maybe use switchable containers?
       (desks_util::IsDeskContainer(parent) ||
-       parent->id() == kShellWindowId_AlwaysOnTopContainer)) {
+       parent->GetId() == kShellWindowId_AlwaysOnTopContainer)) {
     window_resizer = WorkspaceWindowResizer::Create(window_state, {});
   } else {
     window_resizer = DefaultWindowResizer::Create(window_state);
diff --git a/ash/wm/workspace/workspace_window_resizer_unittest.cc b/ash/wm/workspace/workspace_window_resizer_unittest.cc
index 4df9fe36..6361946 100644
--- a/ash/wm/workspace/workspace_window_resizer_unittest.cc
+++ b/ash/wm/workspace/workspace_window_resizer_unittest.cc
@@ -97,25 +97,25 @@
     window_->SetType(aura::client::WINDOW_TYPE_NORMAL);
     window_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(window_.get());
-    window_->set_id(1);
+    window_->SetId(1);
 
     window2_ = std::make_unique<aura::Window>(&delegate2_);
     window2_->SetType(aura::client::WINDOW_TYPE_NORMAL);
     window2_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(window2_.get());
-    window2_->set_id(2);
+    window2_->SetId(2);
 
     window3_ = std::make_unique<aura::Window>(&delegate3_);
     window3_->SetType(aura::client::WINDOW_TYPE_NORMAL);
     window3_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(window3_.get());
-    window3_->set_id(3);
+    window3_->SetId(3);
 
     window4_ = std::make_unique<aura::Window>(&delegate4_);
     window4_->SetType(aura::client::WINDOW_TYPE_NORMAL);
     window4_->Init(ui::LAYER_NOT_DRAWN);
     ParentWindowInPrimaryRootWindow(window4_.get());
-    window4_->set_id(4);
+    window4_->SetId(4);
   }
 
   void TearDown() override {
@@ -136,7 +136,7 @@
     for (aura::Window::Windows::const_reverse_iterator i = windows.rbegin();
          i != windows.rend(); ++i) {
       if (*i == window_.get() || *i == window2_.get() || *i == window3_.get()) {
-        result.push_back((*i)->id());
+        result.push_back((*i)->GetId());
       }
     }
     return result;
diff --git a/base/allocator/partition_allocator/partition_root.h b/base/allocator/partition_allocator/partition_root.h
index 0311c1b4..67077c38 100644
--- a/base/allocator/partition_allocator/partition_root.h
+++ b/base/allocator/partition_allocator/partition_root.h
@@ -1054,7 +1054,7 @@
 #if BUILDFLAG(USE_BACKUP_REF_PTR)
   if (allow_ref_count) {
     PA_DCHECK(features::IsPartitionAllocGigaCageEnabled());
-    if (LIKELY(!IsDirectMappedBucket(slot_span->bucket)) {
+    if (LIKELY(!IsDirectMappedBucket(slot_span->bucket))) {
       auto* ref_count = internal::PartitionRefCountPointer(slot_start);
       // If there are no more references to the allocation, it can be freed
       // immediately. Otherwise, defer the operation and zap the memory to turn
diff --git a/base/files/file_util.h b/base/files/file_util.h
index 0457a266..bd987501 100644
--- a/base/files/file_util.h
+++ b/base/files/file_util.h
@@ -471,11 +471,14 @@
 BASE_EXPORT bool AllocateFileRegion(File* file, int64_t offset, size_t size);
 #endif
 
-// Appends |data| to |filename|.  Returns true iff |size| bytes of |data| were
-// written to |filename|.
+// Appends |data| to |filename|.  Returns true iff |data| were written to
+// |filename|.
 BASE_EXPORT bool AppendToFile(const FilePath& filename,
-                              const char* data,
-                              int size);
+                              span<const uint8_t> data);
+
+// AppendToFile() variant that takes a StringPiece so callers don't have to do
+// manual conversions from a char span to a uint8_t span.
+BASE_EXPORT bool AppendToFile(const FilePath& filename, StringPiece data);
 
 // Gets the current working directory for the process.
 BASE_EXPORT bool GetCurrentDirectory(FilePath* path);
diff --git a/base/files/file_util_posix.cc b/base/files/file_util_posix.cc
index b03c88e7..d1977e4 100644
--- a/base/files/file_util_posix.cc
+++ b/base/files/file_util_posix.cc
@@ -977,7 +977,13 @@
 
 #if !defined(OS_NACL_NONSFI)
 
-bool AppendToFile(const FilePath& filename, const char* data, int size) {
+bool AppendToFile(const FilePath& filename, span<const uint8_t> data) {
+  return AppendToFile(
+      filename,
+      StringPiece(reinterpret_cast<const char*>(data.data()), data.size()));
+}
+
+bool AppendToFile(const FilePath& filename, StringPiece data) {
   ScopedBlockingCall scoped_blocking_call(FROM_HERE, BlockingType::MAY_BLOCK);
   bool ret = true;
   int fd = HANDLE_EINTR(open(filename.value().c_str(), O_WRONLY | O_APPEND));
@@ -987,7 +993,8 @@
   }
 
   // This call will either write all of the data or return false.
-  if (!WriteFileDescriptor(fd, data, size)) {
+  int size = checked_cast<int>(data.size());
+  if (!WriteFileDescriptor(fd, data.data(), size)) {
     VPLOG(1) << "Error while writing to file " << filename.value();
     ret = false;
   }
diff --git a/base/files/file_util_unittest.cc b/base/files/file_util_unittest.cc
index bede597..102ea7a 100644
--- a/base/files/file_util_unittest.cc
+++ b/base/files/file_util_unittest.cc
@@ -3048,9 +3048,9 @@
   FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt")));
 
   std::string data("hello");
-  EXPECT_FALSE(AppendToFile(foobar, data.c_str(), data.size()));
+  EXPECT_FALSE(AppendToFile(foobar, data));
   EXPECT_TRUE(WriteFile(foobar, data));
-  EXPECT_TRUE(AppendToFile(foobar, data.c_str(), data.size()));
+  EXPECT_TRUE(AppendToFile(foobar, data));
 
   const std::wstring read_content = ReadTextFile(foobar);
   EXPECT_EQ(L"hellohello", read_content);
diff --git a/base/files/file_util_win.cc b/base/files/file_util_win.cc
index 9766c165..74a6424 100644
--- a/base/files/file_util_win.cc
+++ b/base/files/file_util_win.cc
@@ -953,18 +953,25 @@
   return -1;
 }
 
-bool AppendToFile(const FilePath& filename, const char* data, int size) {
+bool AppendToFile(const FilePath& filename, span<const uint8_t> data) {
+  return AppendToFile(
+      filename,
+      StringPiece(reinterpret_cast<const char*>(data.data()), data.size()));
+}
+
+bool AppendToFile(const FilePath& filename, StringPiece data) {
   ScopedBlockingCall scoped_blocking_call(FROM_HERE, BlockingType::MAY_BLOCK);
   win::ScopedHandle file(CreateFile(filename.value().c_str(), FILE_APPEND_DATA,
-                                    0, NULL, OPEN_EXISTING, 0, NULL));
+                                    0, nullptr, OPEN_EXISTING, 0, nullptr));
   if (!file.IsValid()) {
     VPLOG(1) << "CreateFile failed for path " << filename.value();
     return false;
   }
 
   DWORD written;
-  BOOL result = ::WriteFile(file.Get(), data, size, &written, NULL);
-  if (result && static_cast<int>(written) == size)
+  DWORD size = checked_cast<DWORD>(data.size());
+  BOOL result = ::WriteFile(file.Get(), data.data(), size, &written, nullptr);
+  if (result && written == size)
     return true;
 
   if (!result) {
diff --git a/base/strings/string_piece.h b/base/strings/string_piece.h
index 92eaf8fc..307065d 100644
--- a/base/strings/string_piece.h
+++ b/base/strings/string_piece.h
@@ -212,8 +212,6 @@
     v.length_ = length;
   }
 
-  size_type capacity() const { return length_; }
-
   constexpr size_type copy(CharT* dest,
                            size_type count,
                            size_type pos = 0) const {
diff --git a/base/strings/string_piece_unittest.cc b/base/strings/string_piece_unittest.cc
index 0246c7a..db284e3e 100644
--- a/base/strings/string_piece_unittest.cc
+++ b/base/strings/string_piece_unittest.cc
@@ -193,8 +193,7 @@
   ASSERT_EQ(d.data(), nullptr);
   ASSERT_EQ(d.begin(), d.end());
 
-  ASSERT_GE(a.max_size(), a.capacity());
-  ASSERT_GE(a.capacity(), a.size());
+  ASSERT_GE(a.max_size(), a.size());
 }
 
 TYPED_TEST(CommonStringPieceTest, CheckFind) {
diff --git a/base/test/trace_to_file.cc b/base/test/trace_to_file.cc
index 5ada1d00..547305f 100644
--- a/base/test/trace_to_file.cc
+++ b/base/test/trace_to_file.cc
@@ -66,11 +66,11 @@
 
 void TraceToFile::AppendFileFooter() {
   const char str[] = "]}";
-  AppendToFile(path_, str, static_cast<int>(strlen(str)));
+  AppendToFile(path_, str);
 }
 
 void TraceToFile::TraceOutputCallback(const std::string& data) {
-  bool ret = AppendToFile(path_, data.c_str(), static_cast<int>(data.size()));
+  bool ret = AppendToFile(path_, data);
   DCHECK(ret);
 }
 
diff --git a/base/values.cc b/base/values.cc
index b99de01..5318d5e 100644
--- a/base/values.cc
+++ b/base/values.cc
@@ -1472,7 +1472,7 @@
   if (!GetDictionary(subdict_path, &subdict))
     return false;
   result = subdict->RemovePath(path.substr(delimiter_position + 1), out_value);
-  if (result && subdict->empty())
+  if (result && subdict->DictEmpty())
     RemoveKey(subdict_path);
 
   return result;
diff --git a/base/values.h b/base/values.h
index 9263350f..3f8d95a8 100644
--- a/base/values.h
+++ b/base/values.h
@@ -657,6 +657,7 @@
   size_t size() const { return dict().size(); }
 
   // Returns whether the dictionary is empty.
+  // DEPRECATED, use `Value::DictEmpty()` instead.
   bool empty() const { return dict().empty(); }
 
   // Clears any current contents of this dictionary.
diff --git a/base/values_unittest.cc b/base/values_unittest.cc
index c86980e..90c7db3 100644
--- a/base/values_unittest.cc
+++ b/base/values_unittest.cc
@@ -1533,11 +1533,11 @@
   std::string key = "test";
   DictionaryValue dict;
   dict.Set(key, std::make_unique<Value>());
-  EXPECT_FALSE(dict.empty());
+  EXPECT_FALSE(dict.DictEmpty());
   EXPECT_FALSE(dict.DictEmpty());
   EXPECT_EQ(1U, dict.DictSize());
   dict.DictClear();
-  EXPECT_TRUE(dict.empty());
+  EXPECT_TRUE(dict.DictEmpty());
   EXPECT_TRUE(dict.DictEmpty());
   EXPECT_EQ(0U, dict.DictSize());
 }
@@ -1697,7 +1697,7 @@
   EXPECT_TRUE(dict.RemovePath("a.long.key.path", &removed_item));
   ASSERT_TRUE(removed_item);
   EXPECT_TRUE(removed_item->is_bool());
-  EXPECT_TRUE(dict.empty());
+  EXPECT_TRUE(dict.DictEmpty());
 }
 
 TEST(ValuesTest, DeepCopy) {
@@ -2044,7 +2044,7 @@
   root->SetWithoutPathExpansion("a.b.c.d.e",
                                 std::make_unique<DictionaryValue>());
   root = root->DeepCopyWithoutEmptyChildren();
-  EXPECT_TRUE(root->empty());
+  EXPECT_TRUE(root->DictEmpty());
 
   // Make sure we don't prune too much.
   root->SetBoolKey("bool", true);
diff --git a/build/android/pylib/gtest/gtest_test_instance.py b/build/android/pylib/gtest/gtest_test_instance.py
index 56c346b6..452e414 100644
--- a/build/android/pylib/gtest/gtest_test_instance.py
+++ b/build/android/pylib/gtest/gtest_test_instance.py
@@ -285,8 +285,16 @@
     name, value = openstack.pop()
 
     if 'expected' in value and 'actual' in value:
-      result_type = base_test_result.ResultType.PASS if value[
-          'actual'] == 'PASS' else base_test_result.ResultType.FAIL
+      if value['actual'] == 'PASS':
+        result_type = base_test_result.ResultType.PASS
+      elif value['actual'] == 'SKIP':
+        result_type = base_test_result.ResultType.SKIP
+      elif value['actual'] == 'CRASH':
+        result_type = base_test_result.ResultType.CRASH
+      elif value['actual'] == 'TIMEOUT':
+        result_type = base_test_result.ResultType.TIMEOUT
+      else:
+        result_type = base_test_result.ResultType.FAIL
       results.append(base_test_result.BaseTestResult(name, result_type))
     else:
       openstack += [("%s.%s" % (name, k), v) for k, v in six.iteritems(value)]
diff --git a/build/android/pylib/gtest/gtest_test_instance_test.py b/build/android/pylib/gtest/gtest_test_instance_test.py
index bb093c74..d5d2004 100755
--- a/build/android/pylib/gtest/gtest_test_instance_test.py
+++ b/build/android/pylib/gtest/gtest_test_instance_test.py
@@ -281,6 +281,37 @@
                       actual[0].GetName())
     self.assertEquals(base_test_result.ResultType.PASS, actual[0].GetType())
 
+  def testParseGTestJSON_skippedTest_example(self):
+    raw_json = """
+      {
+        "tests": {
+          "mojom_tests": {
+            "parse": {
+              "ast_unittest": {
+                "ASTTest": {
+                  "testNodeBase": {
+                    "expected": "SKIP",
+                    "actual": "SKIP",
+                  }
+                }
+              }
+            }
+          }
+        },
+        "interrupted": false,
+        "path_delimiter": ".",
+        "version": 3,
+        "seconds_since_epoch": 1406662283.764424,
+        "num_failures_by_type": {
+          "SKIP": 1
+        },
+      }"""
+    actual = gtest_test_instance.ParseGTestJSON(raw_json)
+    self.assertEquals(1, len(actual))
+    self.assertEquals('mojom_tests.parse.ast_unittest.ASTTest.testNodeBase',
+                      actual[0].GetName())
+    self.assertEquals(base_test_result.ResultType.SKIP, actual[0].GetType())
+
   def testTestNameWithoutDisabledPrefix_disabled(self):
     test_name_list = [
       'A.DISABLED_B',
diff --git a/build/android/pylib/results/json_results.py b/build/android/pylib/results/json_results.py
index 48ea42c..3397d15e 100644
--- a/build/android/pylib/results/json_results.py
+++ b/build/android/pylib/results/json_results.py
@@ -126,7 +126,7 @@
   """
 
   tests = {}
-  counts = {'PASS': 0, 'FAIL': 0}
+  counts = {'PASS': 0, 'FAIL': 0, 'SKIP': 0, 'CRASH': 0, 'TIMEOUT': 0}
 
   for test_run_result in test_run_results:
     if isinstance(test_run_result, list):
@@ -143,8 +143,16 @@
 
       element['expected'] = 'PASS'
 
-      result = 'PASS' if r.GetType(
-      ) == base_test_result.ResultType.PASS else 'FAIL'
+      if r.GetType() == base_test_result.ResultType.PASS:
+        result = 'PASS'
+      elif r.GetType() == base_test_result.ResultType.SKIP:
+        result = 'SKIP'
+      elif r.GetType() == base_test_result.ResultType.CRASH:
+        result = 'CRASH'
+      elif r.GetType() == base_test_result.ResultType.TIMEOUT:
+        result = 'TIMEOUT'
+      else:
+        result = 'FAIL'
 
       if 'actual' in element:
         element['actual'] += ' ' + result
diff --git a/build/android/pylib/results/json_results_test.py b/build/android/pylib/results/json_results_test.py
index 12cd067..f9d88149 100755
--- a/build/android/pylib/results/json_results_test.py
+++ b/build/android/pylib/results/json_results_test.py
@@ -222,9 +222,10 @@
     self.assertEquals(
         'PASS', results_dict['tests']['test']['package']['TestName']['actual'])
 
-    # Note: technically a missing entry counts as zero.
+    self.assertTrue('FAIL' not in results_dict['num_failures_by_type']
+                    or results_dict['num_failures_by_type']['FAIL'] == 0)
+    self.assertIn('PASS', results_dict['num_failures_by_type'])
     self.assertEquals(1, results_dict['num_failures_by_type']['PASS'])
-    self.assertEquals(0, results_dict['num_failures_by_type']['FAIL'])
 
   def testGenerateJsonTestResultFormatDict_failedResult(self):
     result = base_test_result.BaseTestResult('test.package.TestName',
@@ -246,12 +247,40 @@
     self.assertEquals(
         True,
         results_dict['tests']['test']['package']['TestName']['is_unexpected'])
-    self.assertEquals(2, len(results_dict['num_failures_by_type']))
 
-    # Note: technically a missing entry counts as zero.
-    self.assertEquals(0, results_dict['num_failures_by_type']['PASS'])
+    self.assertTrue('PASS' not in results_dict['num_failures_by_type']
+                    or results_dict['num_failures_by_type']['PASS'] == 0)
+    self.assertIn('FAIL', results_dict['num_failures_by_type'])
     self.assertEquals(1, results_dict['num_failures_by_type']['FAIL'])
 
+  def testGenerateJsonTestResultFormatDict_skippedResult(self):
+    result = base_test_result.BaseTestResult('test.package.TestName',
+                                             base_test_result.ResultType.SKIP)
+
+    all_results = base_test_result.TestRunResults()
+    all_results.AddResult(result)
+
+    results_dict = json_results.GenerateJsonTestResultFormatDict([all_results],
+                                                                 False)
+    self.assertEquals(1, len(results_dict['tests']))
+    self.assertEquals(1, len(results_dict['tests']['test']))
+    self.assertEquals(1, len(results_dict['tests']['test']['package']))
+    self.assertEquals(
+        'PASS',
+        results_dict['tests']['test']['package']['TestName']['expected'])
+    self.assertEquals(
+        'FAIL', results_dict['tests']['test']['package']['TestName']['actual'])
+    self.assertEquals(
+        True,
+        results_dict['tests']['test']['package']['TestName']['is_unexpected'])
+
+    self.assertTrue('FAIL' not in results_dict['num_failures_by_type']
+                    or results_dict['num_failures_by_type']['FAIL'] == 0)
+    self.assertTrue('PASS' not in results_dict['num_failures_by_type']
+                    or results_dict['num_failures_by_type']['PASS'] == 0)
+    self.assertIn('SKIP', results_dict['num_failures_by_type'])
+    self.assertEquals(1, results_dict['num_failures_by_type']['SKIP'])
+
   def testGenerateJsonTestResultFormatDict_failedResultWithRetry(self):
     result_1 = base_test_result.BaseTestResult('test.package.TestName',
                                                base_test_result.ResultType.FAIL)
@@ -281,12 +310,11 @@
         True,
         results_dict['tests']['test']['package']['TestName']['is_unexpected'])
 
-    # Note: technically a missing entry counts as zero.
-    self.assertEquals(2, len(results_dict['num_failures_by_type']))
-    self.assertEquals(0, results_dict['num_failures_by_type']['PASS'])
-
+    self.assertTrue('PASS' not in results_dict['num_failures_by_type']
+                    or results_dict['num_failures_by_type']['PASS'] == 0)
     # According to the spec: If a test was run more than once, only the first
     # invocation's result is included in the totals.
+    self.assertIn('FAIL', results_dict['num_failures_by_type'])
     self.assertEquals(1, results_dict['num_failures_by_type']['FAIL'])
 
 
diff --git a/build/chromeos/test_runner.py b/build/chromeos/test_runner.py
index c669e356..b5280a1b 100755
--- a/build/chromeos/test_runner.py
+++ b/build/chromeos/test_runner.py
@@ -420,7 +420,10 @@
       # Use dateutil to parse the timestamps since datetime can't handle
       # nanosecond precision.
       duration = dateutil.parser.parse(end) - dateutil.parser.parse(start)
-      duration_ms = duration.total_seconds() * 1000
+      # If the duration is negative, Tast has likely reported an incorrect
+      # duration. See https://issuetracker.google.com/issues/187973541. Round
+      # up to 0 in that case to avoid confusing RDB.
+      duration_ms = max(duration.total_seconds() * 1000, 0)
       if bool(test['skipReason']):
         result = base_test_result.ResultType.SKIP
       elif errors:
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 7d45713..e7a3d1f 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1623,10 +1623,6 @@
 
           # TODO(https://crbug.com/1050281): Clean up, enable.
           "-Wno-non-c-typedef-for-linkage",
-
-          # TODO(https://crbug.com/1208419): Possibly reenable if the warning
-          # becomes usable again upstream.
-          "-Wno-null-pointer-arithmetic",
         ]
 
         cflags_c += [
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 048a632..c4ba435 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-4.20210512.2.1
+4.20210513.1.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 048a632..c4ba435 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-4.20210512.2.1
+4.20210513.1.1
diff --git a/build/lacros/test_runner.py b/build/lacros/test_runner.py
index 44ea131..982c045 100755
--- a/build/lacros/test_runner.py
+++ b/build/lacros/test_runner.py
@@ -271,7 +271,9 @@
     args (dict): Args for this script.
     forward_args (dict): Args to be forwarded to the test command.
   """
-  if args.ash_chrome_path:
+  if args.ash_chrome_path_override:
+    ash_chrome_file = args.ash_chrome_path_override
+  elif args.ash_chrome_path:
     ash_chrome_file = args.ash_chrome_path
   else:
     ash_chrome_version = (args.ash_chrome_version
@@ -458,6 +460,16 @@
       type=str,
       help='Path to an locally built ash-chrome to use for testing.')
 
+  # This is for version skew testing. The current CI/CQ builder builds
+  # an ash chrome and pass it using --ash-chrome-path. In order to use the same
+  # builder for version skew testing, we use a new argument to override
+  # the ash chrome.
+  test_parser.add_argument(
+      '--ash-chrome-path-override',
+      type=str,
+      help='The same as --ash-chrome-path. But this will override '
+      '--ash-chrome-path or --ash-chrome-version if any of these '
+      'arguments exist.')
   args = arg_parser.parse_known_args()
   return args[0].func(args[0], args[1])
 
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index e6284e9d..c025067 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -1169,6 +1169,7 @@
     "//chrome/browser/android/webapps/launchpad:javatests",
     "//chrome/browser/attribution_reporting/android:factory_java",
     "//chrome/browser/attribution_reporting/android:java",
+    "//chrome/browser/attribution_reporting/android/internal:javatests",
     "//chrome/browser/banners/android:java",
     "//chrome/browser/browser_controls/android:java",
     "//chrome/browser/commerce/merchant_viewer/android:javatests",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/SaveAddressProfilePrompt.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/SaveAddressProfilePrompt.java
index df5744d..eed5ecd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/SaveAddressProfilePrompt.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/SaveAddressProfilePrompt.java
@@ -162,6 +162,7 @@
 
     private void onEdited(AutofillAddress autofillAddress) {
         mController.onUserEdited(autofillAddress.getProfile());
+        mModalDialogManager.dismissDialog(mDialogModel, DialogDismissalCause.ACTION_ON_CONTENT);
     }
 
     private void onDismiss(@DialogDismissalCause int dismissalCause) {
@@ -172,6 +173,7 @@
             case DialogDismissalCause.NEGATIVE_BUTTON_CLICKED:
                 mController.onUserDeclined();
                 break;
+            case DialogDismissalCause.ACTION_ON_CONTENT:
             default:
                 // No explicit user decision.
                 break;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
index ede29bd..8bf7584 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
@@ -205,11 +205,7 @@
                     MarginLayoutParamsCompat.getMarginStart(urlActionContainerLayoutParams)
                     + MarginLayoutParamsCompat.getMarginEnd(urlActionContainerLayoutParams);
         }
-        // Include the space which the URL bar will be translated post-layout into the end
-        // margin so the URL bar doesn't overlap with the URL actions container when focused.
-        if (mStatusCoordinator.isSearchEngineStatusIconVisible() && hasFocus()) {
-            urlContainerMarginEnd += mStatusCoordinator.getEndPaddingPixelSizeOnFocusDelta();
-        }
+        urlContainerMarginEnd += mStatusCoordinator.getAdditionalUrlContainerMarginEnd();
         return urlContainerMarginEnd;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java
index 21730e10..5b039a5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java
@@ -307,6 +307,13 @@
         mMediator.updateLocationBarIconForDefaultMatchCategory(defaultMatchIsSearch);
     }
 
+    /** Returns the additional end margin for the url container. */
+    public int getAdditionalUrlContainerMarginEnd() {
+        return mMediator.shouldDisplaySearchEngineIcon() && isSearchEngineStatusIconVisible()
+                ? getEndPaddingPixelSizeOnFocusDelta()
+                : 0;
+    }
+
     public void destroy() {
         mMediator.destroy();
         mLocationBarDataProvider.removeObserver(this);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java
index 33020c47..310f948f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java
@@ -524,12 +524,12 @@
      * Returns whether the search engine icon should be displayed in the current context. This is
      * independent from alpha/visibility.
      */
-    @VisibleForTesting
     boolean shouldDisplaySearchEngineIcon() {
         boolean showIconWhenFocused = mUrlHasFocus && mShowStatusIconWhenUrlFocused;
         boolean showIconOnNTP =
                 UrlUtilities.isCanonicalizedNTPUrl(mLocationBarDataProvider.getCurrentUrl())
-                && !mLocationBarDataProvider.isLoading() && !mIsTablet;
+                && !mLocationBarDataProvider.isLoading() && !mIsTablet
+                && (mUrlHasFocus || mUrlFocusPercent > 0);
 
         return mSearchEngineLogoUtils.shouldShowSearchEngineLogo(
                        mLocationBarDataProvider.isIncognito())
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/status/StatusMediatorUnitTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/status/StatusMediatorUnitTest.java
index baa80cce..14b24044 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/status/StatusMediatorUnitTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/status/StatusMediatorUnitTest.java
@@ -182,7 +182,7 @@
         mMediator.setUrlHasFocus(false);
         mMediator.setShowIconsWhenUrlFocused(true);
         Assert.assertTrue(mModel.get(StatusProperties.SHOW_STATUS_ICON));
-        Assert.assertTrue(mMediator.shouldDisplaySearchEngineIcon());
+        Assert.assertFalse(mMediator.shouldDisplaySearchEngineIcon());
     }
 
     @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelperTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelperTest.java
index bbf452b6..ee949c36 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelperTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelperTest.java
@@ -18,6 +18,7 @@
 import org.chromium.base.test.params.ParameterizedCommandLineFlags.Switches;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.CriteriaHelper;
+import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.Restriction;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
@@ -94,6 +95,7 @@
     @Test
     @MediumTest
     @Restriction(StartupPaintPreviewHelperTestRunner.RESTRICTION_TYPE_KEEP_ACTIVITIES)
+    @DisabledTest(message = "https://crbug.com/1208305 & https://crbug.com/1208542")
     public void testDisplayOnStartup() throws ExecutionException {
         mActivityTestRule.startMainActivityWithURL(
                 mActivityTestRule.getTestServer().getURL(TEST_URL));
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp
index 5e6d933..e518d76 100644
--- a/chrome/app/chromeos_strings.grdp
+++ b/chrome/app/chromeos_strings.grdp
@@ -303,8 +303,11 @@
   <message name="IDS_CELLULAR_SETUP_FINAL_PAGE_ERROR_MESSAGE" desc="Message displayed under title in final screen of cellular setup when ChromeOS encountered an error completing activation.">
     An error occured during activation.
   </message>
+  <message name="IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_SUCCESS_HEADER" desc="Header displayed at the top of the success screen of the eSIM installation flow that tells user that a new eSIM profile has been added.">
+    Network added
+  </message>
   <message name="IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_MESSAGE" desc="Message displayed under title in final success screen of eSIM cellular setup that tells user that their profile has been activated.">
-    Profile has been added successfully. This connection will be available to all users of this device.
+    This mobile network will be available to all users on this device
   </message>
   <message name="IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_ERROR_MESSAGE" desc="Message displayed under title in final screen of eSIM cellular setup when ChromeOS encountered an error installing eSIM profiles.">
     Couldn't install eSIM profile. For help, please contact your carrier.
@@ -5227,6 +5230,35 @@
     Looking for file shares
   </message>
 
+  <!-- Strings for the VM status page (chrome://vm). -->
+  <message name="IDS_VM_STATUS_INDEX_PAGE_TITLE" desc="The title for the VM (virtual machine) status index page. This string is used both for the heading and the page title.">
+    VM status
+  </message>
+  <message name="IDS_VM_STATUS_PAGE_TITLE" desc="The title for the VM (virtual machine) status page of a particular product (e.g. 'Parallels Desktop' or 'Crostini').">
+    <ph name="VM_NAME">$1<ex>Parallels Desktop</ex></ph> status
+  </message>
+  <message name="IDS_VM_STATUS_PAGE_PASS_LABEL" desc="Status indicating that we passed a check that is required for running the software.">
+    Pass
+  </message>
+  <message name="IDS_VM_STATUS_PAGE_FAIL_LABEL" desc="Status indicating that we failed a check that is required for running the software.">
+    Fail
+  </message>
+  <message name="IDS_VM_STATUS_PAGE_NOT_APPLICABLE_LABEL" desc="Status indicating that a check required for running the software does not apply or could not be checked.">
+    N/A
+  </message>
+  <message name="IDS_VM_STATUS_PAGE_NOT_ENABLED_MESSAGE" desc="A message to tell the user why the VM (virtual machine) either cannot be installed or is not installed.">
+    Not enabled: <ph name="REASON">$1<ex>Drallion is not supported</ex></ph>
+  </message>
+  <message name="IDS_VM_STATUS_PAGE_REQUIREMENT_LABEL" desc="The heading for the 'requirement' column in a VM status page table. The requirement column specifies the requirements for running a VM (virtual machine).">
+    Requirement
+  </message>
+  <message name="IDS_VM_STATUS_PAGE_STATUS_LABEL" desc="The heading for the 'status' column in a VM status page table. The status can be either 'pass', 'fail', or 'N/A'.">
+    Status
+  </message>
+  <message name="IDS_VM_STATUS_PAGE_EXPLANATION_LABEL" desc="The heading for the 'explanation' column in a VM status page table. This column provides additional information for checks that have failed.">
+    Explanation
+  </message>
+
   <!-- Strings for Plugin VM -->
   <message name="IDS_PLUGIN_VM_APP_NAME" desc="Product name for 'Parallels Desktop'. Should not be translated as it is a third party name." translateable="false">
     Parallels Desktop
diff --git a/chrome/app/chromeos_strings_grdp/IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_MESSAGE.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_MESSAGE.png.sha1
index 13a54bf..5ace131 100644
--- a/chrome/app/chromeos_strings_grdp/IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_MESSAGE.png.sha1
+++ b/chrome/app/chromeos_strings_grdp/IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_MESSAGE.png.sha1
@@ -1 +1 @@
-442e2d96d04c94b03081fe9f1e0914cc2a12aaa3
\ No newline at end of file
+3d5c3a1e9227daedfdb55a007463621b90923379
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_SUCCESS_HEADER.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_SUCCESS_HEADER.png.sha1
new file mode 100644
index 0000000..5ace131
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_SUCCESS_HEADER.png.sha1
@@ -0,0 +1 @@
+3d5c3a1e9227daedfdb55a007463621b90923379
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_INDEX_PAGE_TITLE.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_INDEX_PAGE_TITLE.png.sha1
new file mode 100644
index 0000000..2a633ee
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_INDEX_PAGE_TITLE.png.sha1
@@ -0,0 +1 @@
+c6fe83130073f0fc0bbe5784d17b57d7196842ec
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_EXPLANATION_LABEL.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_EXPLANATION_LABEL.png.sha1
new file mode 100644
index 0000000..5a0134d7
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_EXPLANATION_LABEL.png.sha1
@@ -0,0 +1 @@
+b3535ba37d75f47e13c780a9d268574b33004162
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_FAIL_LABEL.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_FAIL_LABEL.png.sha1
new file mode 100644
index 0000000..5a0134d7
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_FAIL_LABEL.png.sha1
@@ -0,0 +1 @@
+b3535ba37d75f47e13c780a9d268574b33004162
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_NOT_APPLICABLE_LABEL.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_NOT_APPLICABLE_LABEL.png.sha1
new file mode 100644
index 0000000..5a0134d7
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_NOT_APPLICABLE_LABEL.png.sha1
@@ -0,0 +1 @@
+b3535ba37d75f47e13c780a9d268574b33004162
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_NOT_ENABLED_MESSAGE.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_NOT_ENABLED_MESSAGE.png.sha1
new file mode 100644
index 0000000..5a0134d7
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_NOT_ENABLED_MESSAGE.png.sha1
@@ -0,0 +1 @@
+b3535ba37d75f47e13c780a9d268574b33004162
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_PASS_LABEL.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_PASS_LABEL.png.sha1
new file mode 100644
index 0000000..5a0134d7
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_PASS_LABEL.png.sha1
@@ -0,0 +1 @@
+b3535ba37d75f47e13c780a9d268574b33004162
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_REQUIREMENT_LABEL.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_REQUIREMENT_LABEL.png.sha1
new file mode 100644
index 0000000..5a0134d7
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_REQUIREMENT_LABEL.png.sha1
@@ -0,0 +1 @@
+b3535ba37d75f47e13c780a9d268574b33004162
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_STATUS_LABEL.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_STATUS_LABEL.png.sha1
new file mode 100644
index 0000000..5a0134d7
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_STATUS_LABEL.png.sha1
@@ -0,0 +1 @@
+b3535ba37d75f47e13c780a9d268574b33004162
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_TITLE.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_TITLE.png.sha1
new file mode 100644
index 0000000..5a0134d7
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_VM_STATUS_PAGE_TITLE.png.sha1
@@ -0,0 +1 @@
+b3535ba37d75f47e13c780a9d268574b33004162
\ No newline at end of file
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index b6b52e77..d79e937 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -7597,12 +7597,6 @@
       <message name="IDS_SHARING_REMOTE_COPY_NOTIFICATION_DESCRIPTION" desc="Second line of text displayed in a Remote Copy notification.">
         Press <ph name="MODIFIER_KEY_DESCRIPTION">$1<ex>Ctrl+V</ex></ph> to paste
       </message>
-      <message name="IDS_SHARING_REMOTE_COPY_NOTIFICATION_PREPARING_DOWNLOAD" desc="Subtext shown in a Remote Copy notification while preparing the image download.">
-        Preparing download
-      </message>
-      <message name="IDS_SHARING_REMOTE_COPY_NOTIFICATION_PROCESSING_IMAGE" desc="Subtext shown in a Remote Copy notification while processing the received image.">
-        Processing image
-      </message>
       <message name="IDS_OMNIBOX_TOOLTIP_SMS_REMOTE_FETCHER" translateable="false" desc="The label of item for sms remote fetcher in the omnibox for showing device name when one device is available.">
         Tap the notification on <ph name="DEVICE_NAME">$1<ex>Jimmy's Pixel</ex></ph> to verify your phone number
       </message>
@@ -9961,9 +9955,6 @@
       <message name="IDS_DESKTOP_MEDIA_PICKER_MULTIPLE_SCREEN_NAME" desc="Name for screens in the desktop media picker UI when there are multiple monitors.">
         {SCREEN_INDEX, plural, =1{Screen #} other{Screen #}}
       </message>
-      <message name="IDS_DESKTOP_MEDIA_PRESENTER_TOOLS" desc="Text for the checkbox on window picker dialog, when checked the presenter tools will be shown.">
-        Presenter Tools
-      </message>
       <if expr="toolkit_views">
         <message name="IDS_DESKTOP_MEDIA_PICKER_SOURCE_TYPE_THIS_TAB" desc="Text for one of the dialog-tabs on the media picker dialog. This dialog-tab controls sharing the current tab.">
           This Tab
diff --git a/chrome/app/generated_resources_grd/IDS_DESKTOP_MEDIA_PRESENTER_TOOLS.png.sha1 b/chrome/app/generated_resources_grd/IDS_DESKTOP_MEDIA_PRESENTER_TOOLS.png.sha1
deleted file mode 100644
index f901b3d..0000000
--- a/chrome/app/generated_resources_grd/IDS_DESKTOP_MEDIA_PRESENTER_TOOLS.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3e57c68c4a76ecccc8037a51cd2a3c4fbc5d0648
\ No newline at end of file
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index b6a0f263..f6271b90 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Stel verstekafskopbladsy terug?</translation>
 <translation id="1388253969141979417">Mag jou mikrofoon gebruik</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> sal herbegin wanneer opdaterings voltooi is.</translation>
-<translation id="138900021244932468">Geen profiele is ontdek nie. Skandeer QR-kode met toestelkamera of voer die aktiveringkode in wat jou diensverskaffer verskaf het om 'n nuwe netwerk op te stel.</translation>
 <translation id="139013308650923562">Mag lettertipes wat op jou toestel geïnstalleer is, gebruik</translation>
 <translation id="1390548061267426325">Maak as gewone oortjie oop</translation>
 <translation id="1393283411312835250">Son en wolke</translation>
@@ -5930,6 +5929,7 @@
 <translation id="7506541170099744506">Jou <ph name="DEVICE_TYPE" /> is suksesvol ingeskryf vir ondernemingbestuur.</translation>
 <translation id="7507207699631365376">Lees hierdie verskaffer se <ph name="BEGIN_LINK" />privaatheidsbeleid<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Statusreageerder se sertifikaat</translation>
+<translation id="7509246181739783082">Verifieer jou identiteit</translation>
 <translation id="7513029293694390567">Meld outomaties aan by webwerwe wat gebergde eiebewyse gebruik. As dit gedeaktiveer is, sal jy elke keer vir bevestiging gevra word voordat jy by 'n webwerf aanmeld.</translation>
 <translation id="7514239104543605883">Kopieer na jou toestel toe</translation>
 <translation id="7514365320538308">Laai af</translation>
@@ -6461,7 +6461,6 @@
 <translation id="8061091456562007989">Verander dit terug</translation>
 <translation id="8061991877177392872">Dit lyk of jy Voice Match met jou Assistent op 'n ander toestel opgestel het. Hierdie vorige opnames is gebruik om 'n stemmodel op hierdie toestel te maak.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 vel papier}other{{COUNT} velle papier}}</translation>
-<translation id="8062879968880283306">Skandeer QR-kode met toestelkamera of voer die aktiveringkode in wat jou diensverskaffer verskaf het.</translation>
 <translation id="8063235345342641131">Verstek- groen avatar</translation>
 <translation id="8063535366119089408">Bekyk lêer</translation>
 <translation id="8064279191081105977">Groep <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6882,7 +6881,6 @@
 <translation id="8551588720239073785">Datum- en tydinstellings</translation>
 <translation id="8553342806078037065">Bestuur ander mense</translation>
 <translation id="8554899698005018844">Geen taal nie</translation>
-<translation id="8555195867496021627">Geen beskikbare e-SIM-profiele nie. Laai 'n nuwe profiel <ph name="BEGIN_LINK" />hier<ph name="END_LINK" /> af.</translation>
 <translation id="8557022314818157177">Hou aan om jou sekuriteitsleutel te raak totdat jou vingerafdruk vasgevang is</translation>
 <translation id="8557930019681227453">Manifes</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Maak almal in &amp;nuwe venster oop}=1{Maak in &amp;nuwe venster oop}other{Maak almal ({COUNT}) in &amp;nuwe venster oop}}</translation>
@@ -7062,7 +7060,6 @@
 <translation id="8743164338060742337">Netwerk <ph name="NETWORK_INDEX" /> van <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> seinsterkte <ph name="SIGNAL_STRENGTH" />%, bestuur deur jou administrateur, koppel</translation>
 <translation id="8746654918629346731">Jy het reeds "<ph name="EXTENSION_NAME" />" versoek</translation>
 <translation id="874689135111202667">{0,plural, =1{Laai een lêer na hierdie werf op?}other{Laai # lêers na hierdie werf op?}}</translation>
-<translation id="8749556627204742888">Jy deel hierdie netwerk met ander gebruikers van hierdie toestel.</translation>
 <translation id="8749805710397399240">Kan nie na jou skerm toe uitsaai nie. Gaan die Skermopnemer-toestemming in Stelselvoorkeure na.</translation>
 <translation id="8749863574775030885">Gaan by USB-toestelle van 'n onbekende verskaffer in</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> wil aan 'n seriepoort koppel</translation>
@@ -7124,7 +7121,6 @@
 <translation id="8808744862003883508">Jy kan al die uitbreidings wat in Chrome geïnstalleer is op hierdie bladsy sien.</translation>
 <translation id="8809147117840417135">Liggroenblou</translation>
 <translation id="8811862054141704416">Crostini-mikrofoontoegang</translation>
-<translation id="8812552797690463522">Hierdie netwerk is met jou gedeel.</translation>
 <translation id="8812593354822910461">Vee ook blaaierdata uit (<ph name="URL" />), wat jou by <ph name="DOMAIN" /> kan afmeld. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Herinner my later</translation>
 <translation id="8813698869395535039">Kan nie by <ph name="USERNAME" /> aanmeld nie</translation>
@@ -7336,7 +7332,6 @@
 <translation id="9021662811137657072">Virus bespeur</translation>
 <translation id="902236149563113779">Werwe spoor gewoonlik jou kameraposisie na vir AR-kenmerke, soos speletjies of voorafwaarskuwingaanwysings</translation>
 <translation id="9022847679183471841">Hierdie rekening word reeds op hierdie rekenaar deur <ph name="AVATAR_NAME" /> gebruik.</translation>
-<translation id="9023009238991294202">Ander gebruikers van hierdie toestel kan hierdie netwerk gebruik.</translation>
 <translation id="9023015617655685412">Boekmerk hierdie oortjie …</translation>
 <translation id="9023909777842748145">As jy hierdie kenmerk afskakel, beïnvloed dit nie jou toestel se vermoë om die inligting te stuur wat nodig is vir noodsaaklike dienste soos stelselopdaterings en sekuriteit nie.</translation>
 <translation id="9024127637873500333">Maak in nuwe oortjie oop</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 89db7510..2b6661e 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -357,7 +357,6 @@
 <translation id="138784436342154190">ነባሪ የጅምር ገጽ ወደነበረበት ገጽ ይመለስ?</translation>
 <translation id="1388253969141979417">ማይክሮፎንዎን እንደሚጠቀሙበት ተፈቅዷል</translation>
 <translation id="1388728792929436380">ዝማኔዎች ሲጠናቀቁ <ph name="DEVICE_TYPE" /> ዳግም ይነሳል።</translation>
-<translation id="138900021244932468">ምንም መገለጫዎች አልተገኙም። አዲስ አውታረ መረብን ለማዋቀር የመሣሪያ ካሜራን በመጠቀም QR ኮድ ይቃኙ ወይም በአገልግሎት አቅራቢዎ የተሰጠዎትን የማግበሪያ ኮድ ያስገቡ።</translation>
 <translation id="139013308650923562">በእርስዎ መሣሪያ ላይ የተገጠሙ ቅርጸ-ቁምፊዎችን እንዲጠቀሙ ተፈቅዷል</translation>
 <translation id="1390548061267426325">እንደ መደበኛ ትር ክፈት</translation>
 <translation id="1393283411312835250">ፀሐይ እና ደመናዎች</translation>
@@ -5919,6 +5918,7 @@
 <translation id="7506541170099744506">የእርስዎ <ph name="DEVICE_TYPE" /> በተሳካ ሁኔታ ለድርጅት አስተዳደር ተመዝግቧል።</translation>
 <translation id="7507207699631365376">የዚህን አቅራቢ <ph name="BEGIN_LINK" />የግላዊነት መመሪያ<ph name="END_LINK" /> ይመልከቱ</translation>
 <translation id="7507930499305566459">የሁኔታ መላሽ ሰርቲፍኬት</translation>
+<translation id="7509246181739783082">ማንነትዎን ያረጋግጡ</translation>
 <translation id="7513029293694390567">የተከማቹ ምስክርነቶችን በመጠቀም በራስ-ሰር ወደ ድር ጣቢያዎች ይግቡ። ከተሰናከለ ወደ አንድ ድር ጣቢያ ከመግባትዎ በፊት ሁልጊዜ ማረጋገጫ እንዲሰጡ ይጠየቃሉ።</translation>
 <translation id="7514239104543605883">ወደ መሣሪያዎ ይቅዱ</translation>
 <translation id="7514365320538308">አውርድ</translation>
@@ -6456,7 +6456,6 @@
 <translation id="8061091456562007989">መልሰው ይቀይሩት</translation>
 <translation id="8061991877177392872">አስቀድመው በሌላ መሣሪያ ላይ በእርስዎ ረዳት Voice Matchን ያቀናበሩ ይመስላሉ። እነዚህ ቀዳሚ ቀረጻዎች በዚህ መሣሪያ ላይ የድምፅ ሞዴል ለመስራት ጥቅም ላይ ውለው ነበር።</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 የወረቀት ሉህ}one{{COUNT} የወረቀት ሉሆች}other{{COUNT} የወረቀት ሉሆች}}</translation>
-<translation id="8062879968880283306">የመሣሪያ ካሜራን በመጠቀም የQR ኮድ ይቃኙ ወይም በእርስዎ አገልግሎት አቅራቢ የተሰጠዎትን የማግበሪያ ኮድ ያስገቡ።</translation>
 <translation id="8063235345342641131">ነባሪ አረንጓዴ አምሳያ</translation>
 <translation id="8063535366119089408">ፋይል ይመልከቱ</translation>
 <translation id="8064279191081105977">ቡድን <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6876,7 +6875,6 @@
 <translation id="8551588720239073785">የቀን እና የጊዜ ቅንብሮች</translation>
 <translation id="8553342806078037065">ሌሎች ሰዎችን አቀናብር</translation>
 <translation id="8554899698005018844">ምንም ቋንቋ</translation>
-<translation id="8555195867496021627">የሚገኙ የኢሲም መገለጫዎች የሉም። <ph name="BEGIN_LINK" />እዚህ<ph name="END_LINK" /> አዲስ መገለጫ ያውርዱ።</translation>
 <translation id="8557022314818157177">የጣት አሻራዎ እስኪመዘገብ ድረስ የደህንነት ቁልፍዎን መንካቱን ይቀጥሉ</translation>
 <translation id="8557930019681227453">ዝርዝር ሰነድ</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{ሁሉንም በ&amp;አዲስ መስኮት ውስጥ ክፈት}=1{በ&amp;አዲስ መስኮት ውስጥ ክፈት}one{ሁሉንም ({COUNT}) በ&amp;አዲስ መስኮት ውስጥ ክፈት}other{ሁሉንም ({COUNT}) በ&amp;አዲስ መስኮት ውስጥ ክፈት}}</translation>
@@ -7056,7 +7054,6 @@
 <translation id="8743164338060742337">አውታረ መረብ <ph name="NETWORK_INDEX" /> ከ<ph name="NETWORK_COUNT" />፣ <ph name="NETWORK_NAME" /> <ph name="NETWORK_PROVIDER_NAME" />፣ የሲግናል ጥንካሬ <ph name="SIGNAL_STRENGTH" />%፣ በአስተዳዳሪ የሚተዳደር፣ ተገናኝ</translation>
 <translation id="8746654918629346731">«<ph name="EXTENSION_NAME" />»ን አስቀድመው ጠይቀዋል</translation>
 <translation id="874689135111202667">{0,plural, =1{አንድ ፋይል ወደዚህ ጣቢያ ይሰቀል?}one{# ፋይሎች ወደዚህ ጣቢያ ይሰቀሉ?}other{# ፋይሎች ወደዚህ ጣቢያ ይሰቀሉ?}}</translation>
-<translation id="8749556627204742888">ይህን አውታረ መረብ ለሌሎች የዚህ መሣሪያ ተጠቃሚዎች እያጋሩ ነው።</translation>
 <translation id="8749805710397399240">የእርስዎን ማያ ገጽ cast ማድረግ አልተቻለም። በሥርዓት ምርጫዎች ውስጥ የማያ ገጽ መቅጃ ፈቃድን ይፈትሹ።</translation>
 <translation id="8749863574775030885">ካልታወቀ አቅራቢ የመጡ የዩኤስቢ መሣሪያዎችን ይደርሳል</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ወደ ተከታታይ ወደብ ማገናኘት ይፈልጋል</translation>
@@ -7119,7 +7116,6 @@
 <translation id="8808744862003883508">በዚህ ገጽ ላይ፣ ሁሉንም በChrome ውስጥ የተጫኑ ቅጥያዎች ማየት ይችላሉ።</translation>
 <translation id="8809147117840417135">ፈካ ያለ መካከለኛ አረንጓዴ</translation>
 <translation id="8811862054141704416">የCrostini ማይክሮፎን መዳረሻ</translation>
-<translation id="8812552797690463522">ይህ አውታረ መረብ ለእርስዎ ተጋርቷል።</translation>
 <translation id="8812593354822910461">እርስዎን ከ<ph name="DOMAIN" /> ሊያስወጣዎት የሚችለውን የአሰሳ ውሂብ (<ph name="URL" />) በተጨማሪ ያጽዱ። <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">ቆይተህ አስታውሰኝ</translation>
 <translation id="8813698869395535039">ወደ <ph name="USERNAME" /> መግባት አልተቻለም</translation>
@@ -7331,7 +7327,6 @@
 <translation id="9021662811137657072">ቫይረስ ተገኝቷል</translation>
 <translation id="902236149563113779">ጣቢያዎች እንደ ካሜራዎች ወይም ትኩረት የሚሰጣቸው አቅጣጫዎች ላሉት የኤአር ባህሪዎች የካሜራዎን አቀማመጥ ይከታተላሉ</translation>
 <translation id="9022847679183471841">ይህ መለያ አስቀድሞ በዚህ ኮምፒውተር ላይ በ<ph name="AVATAR_NAME" /> ጥቅም ላይ እየዋለ ነው።</translation>
-<translation id="9023009238991294202">ሌሎች የዚህ መሣሪያ ተጠቃሚዎች ይህን አውታረ መረብ መጠቀም ይችላሉ</translation>
 <translation id="9023015617655685412">ይህን ትር ዕልባት ያድርጉት...</translation>
 <translation id="9023909777842748145">ይህን ባሕሪ ማጥፋት መሣሪያዎ እንደ የሥርዓት ዝማኔዎች እና ደህንነት ላሉ አስፈላጊ አገልግሎቶች የሚያስፈልገውን መረጃ የመላክ ችሎታው ላይ ተጽዕኖ አያሳርፍም።</translation>
 <translation id="9024127637873500333">&amp;በአዲስ ትር ውስጥ ክፈት</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 09e1087..5faaecd 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -360,7 +360,6 @@
 <translation id="138784436342154190">هل تريد استعادة صفحة بدء التشغيل التلقائية؟</translation>
 <translation id="1388253969141979417">المواقع الإلكترونية التي يُسمح لها باستخدام الميكروفون</translation>
 <translation id="1388728792929436380">ستتم إعادة تشغيل جهاز <ph name="DEVICE_TYPE" /> عند اكتمال التحديثات.</translation>
-<translation id="138900021244932468">لم يتم العثور على أي ملفات تعريفية. لإعداد شبكة جديدة، عليك مسح رمز الاستجابة السريعة ضوئيًا باستخدام كاميرا الجهاز أو إدخال رمز التفعيل المُقدَّم من مشغِّل شبكة الجوّال.</translation>
 <translation id="139013308650923562">المواقع الإلكترونية التي يُسمح لها باستخدام أشكال الخط المثبَّتة على جهازك</translation>
 <translation id="1390548061267426325">فتح كعلامة تبويب عادية</translation>
 <translation id="1393283411312835250">الشمس والسحاب</translation>
@@ -5903,6 +5902,7 @@
 <translation id="7506541170099744506">لقد تم تسجيل جهاز <ph name="DEVICE_TYPE" /> بنجاح لإدارة المؤسسة.</translation>
 <translation id="7507207699631365376">الاطّلاع على <ph name="BEGIN_LINK" />سياسة خصوصية<ph name="END_LINK" /> مقدّم الخدمة</translation>
 <translation id="7507930499305566459">شهادة الاستجابة للحالة</translation>
+<translation id="7509246181739783082">إثبات هويتك</translation>
 <translation id="7513029293694390567">يمكنك تسجيل الدخول تلقائيًا إلى المواقع الإلكترونية باستخدام بيانات الاعتماد المخزّنة. وعندما تكون هذه الميزة غير مفعّلة، سيُطلب منك التحقّق من بيانات الاعتماد في كل مرة قبل تسجيل الدخول إلى موقع إلكتروني.</translation>
 <translation id="7514239104543605883">نسخ إلى جهازك</translation>
 <translation id="7514365320538308">تنزيل</translation>
@@ -6435,7 +6435,6 @@
 <translation id="8061091456562007989">العودة إلى الإعدادات السابقة</translation>
 <translation id="8061991877177392872">‏يبدو أنه سبق لك إعداد ميزة Voice Match في خدمة "مساعد Google" على جهاز آخر. أمّا بالنسبة إلى التسجيلات الصوتية السابقة، فقد تم استخدامها لإنشاء نموذج صوتي على هذا الجهاز.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ورقة واحدة}zero{{COUNT} ورقة}two{ورقتان ({COUNT})}few{{COUNT} أوراق}many{{COUNT} ورقة}other{{COUNT} ورقة}}</translation>
-<translation id="8062879968880283306">يمكنك مسح رمز الاستجابة السريعة ضوئيًا باستخدام كاميرا الجهاز أو إدخال رمز التفعيل المُقدَّم من مشغِّل شبكة الجوّال.</translation>
 <translation id="8063235345342641131">الصورة الرمزية التلقائية الخضراء</translation>
 <translation id="8063535366119089408">قراءة الملف</translation>
 <translation id="8064279191081105977">مجموعة <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6856,7 +6855,6 @@
 <translation id="8551588720239073785">إعدادات التاريخ والوقت</translation>
 <translation id="8553342806078037065">إدارة الأشخاص الآخرين</translation>
 <translation id="8554899698005018844">بدون لغة</translation>
-<translation id="8555195867496021627">‏ما مِن ملفات شخصية متوفِّرة لشريحة eSIM. ويمكنك تنزيل ملف شخصي جديد <ph name="BEGIN_LINK" />هنا<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">يُرجى الاستمرار في لمس مفتاح الأمان إلى أن يتم حِفظ بصمة الإصبع.</translation>
 <translation id="8557930019681227453">البيان</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{فتح كل العناوين في &amp;نافذة جديدة}=1{فتح في &amp;نافذة جديدة}two{فتح كِلا العنوانَين ({COUNT}) في &amp;نافذة جديدة}few{فتح كل الـ ({COUNT}) عناوين في &amp;نافذة جديدة}many{فتح كل الـ ({COUNT}) عنوانًا في &amp;نافذة جديدة}other{فتح كل الـ ({COUNT}) عنوان في &amp;نافذة جديدة}}</translation>
@@ -7036,7 +7034,6 @@
 <translation id="8743164338060742337">الشبكة <ph name="NETWORK_INDEX" /> من <ph name="NETWORK_COUNT" />، <ph name="NETWORK_NAME" />، <ph name="NETWORK_PROVIDER_NAME" />، قوة الإشارة <ph name="SIGNAL_STRENGTH" />%، يدير المشرف هذه الشبكة، الاتصال</translation>
 <translation id="8746654918629346731">لقد سبق أن طلبت "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{هل تريد تحميل ملف واحد إلى هذا الموقع؟}zero{هل تريد تحميل # ملف إلى هذا الموقع؟}two{هل تريد تحميل ملفين (#) إلى هذا الموقع؟}few{هل تريد تحميل # ملفات إلى هذا الموقع؟}many{هل تريد تحميل # ملفًا إلى هذا الموقع؟}other{هل تريد تحميل # ملف إلى هذا الموقع؟}}</translation>
-<translation id="8749556627204742888">تتم مشاركة هذه الشبكة مع مستخدمين آخرين لهذا الجهاز.</translation>
 <translation id="8749805710397399240">يتعذّر إرسال محتوى شاشتك. يُرجى التحقّق من إذن "تسجيل الشاشة" في قسم "الإعدادات المفضّلة للنظام".</translation>
 <translation id="8749863574775030885">‏الدخول إلى أجهزة USB من مورد غير معروف</translation>
 <translation id="8750155211039279868">يجب ربط <ph name="ORIGIN" /> بمنفذ تسلسلي</translation>
@@ -7102,7 +7099,6 @@
 <translation id="8808744862003883508">‏يمكنك الاطّلاع في هذه الصفحة على جميع الإضافات المثبّتة في Chrome.</translation>
 <translation id="8809147117840417135">أزرق مخضر فاتح</translation>
 <translation id="8811862054141704416">‏الوصول إلى ميكروفون نظام التشغيل Crostini</translation>
-<translation id="8812552797690463522">تتم مشاركة هذه الشبكة معك.</translation>
 <translation id="8812593354822910461">سيؤدي محو بيانات تصفّح (<ph name="URL" />) أيضًا إلى تسجيل خروجك من <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">تذكيري لاحقًا</translation>
 <translation id="8813698869395535039">يتعذر تسجيل الدخول إلى <ph name="USERNAME" /></translation>
@@ -7314,7 +7310,6 @@
 <translation id="9021662811137657072">تم اكتشاف فيروس</translation>
 <translation id="902236149563113779">تتبّع المواقع الإلكترونية عادةً موضع الكاميرا لتتيح ميزات الواقع المعزّز، مثل اتجاهات الألعاب أو التنبيه.</translation>
 <translation id="9022847679183471841">يتم الآن استخدام هذا الحساب فعلاً على هذا الكمبيوتر من قبل <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">يمكن للمستخدمين الآخرين لهذا الجهاز استخدام هذه الشبكة.</translation>
 <translation id="9023015617655685412">وضع إشارة مرجعية لعلامة التبويب هذه</translation>
 <translation id="9023909777842748145">لن يؤثر إيقاف هذه الميزة في قدرة جهازك على إرسال المعلومات اللازمة للحصول على خدمات ضرورية مثل تحديثات النظام والأمان.</translation>
 <translation id="9024127637873500333">&amp;فتح في علامة تبويب جديدة</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index d40fb91..6b2c575 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -62,6 +62,7 @@
 <translation id="1066613507389053689">Chrome OS আপডে’ট কৰাৰ আৱশ্যক</translation>
 <translation id="1067048845568873861">সৃষ্টি কৰা হ’ল</translation>
 <translation id="1067922213147265141">অন্য Google সেৱা</translation>
+<translation id="1069355737714877171"><ph name="PROFILE_NAME" /> নামৰ ই-ছিমৰ প্ৰ'ফাইলটো আঁতৰাওক</translation>
 <translation id="1070377999570795893">আপোনাৰ কম্পিউটাৰৰ অন্য প্ৰ’গামে যোগ কৰা এক্সটেনশ্বনে Chrome কার্যপ্ৰণালী সলনি কৰিব পাৰে।
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -993,6 +994,7 @@
 আপুনি নিজৰ ডিভাইচত Family Link এপ্‌টো ইনষ্টল কৰি এই একাউণ্টটোৰ ছেটিংসমূহ পৰিচালনা কৰিব পাৰে।  আমি এটা মেইলৰ জৰিয়তে আপোনালৈ নির্দেশনাৱলী পঠিয়াইছোঁ।</translation>
 <translation id="2040460856718599782">ওঁহ!  আপোনাৰ বিশ্বাসযোগ্যতা প্ৰমাণ কৰোঁতে কিবা ভুল হ’ল।  অনুগ্ৰহ কৰি আপোনাৰ ছাইন ইন কৰা ক্ৰেডেনশ্বিয়েলসমূহ ভালদৰে পৰীক্ষা কৰি আকৌ চেষ্টা কৰক।</translation>
 <translation id="2044014337866019681">ছেশ্বনটো আনলক কৰিবলৈ অনুগ্ৰহ কৰি আপুনি <ph name="ACCOUNT" /> সত্যাপন কৰি থকাটো নিশ্চিত কৰক।</translation>
+<translation id="2044023416777079300">ম’ডেমটো পঞ্জীয়ন কৰা নাই</translation>
 <translation id="204497730941176055">Microsoft Certificate Template Name</translation>
 <translation id="2045117674524495717">কীব’ৰ্ডৰ শ্বৰ্টকাটৰ সহায়ক</translation>
 <translation id="2045969484888636535">কুকি অৱৰোধ কৰি থাকক</translation>
@@ -3106,6 +3108,7 @@
 <translation id="4364830672918311045">জাননী দেখুওৱা</translation>
 <translation id="4366138410738374926">প্ৰিণ্ট কৰা আৰম্ভ হৈছে</translation>
 <translation id="4370975561335139969">আপুনি দিয়া ইমেইল আৰু পাছৱৰ্ড মিলা নাই</translation>
+<translation id="4373966964907728675">ডেস্কটপ কাষ্ট কৰি থকা হৈছে</translation>
 <translation id="4374831787438678295">Linux ইনষ্টলাৰ</translation>
 <translation id="4375035964737468845">ডাউনল'ড হোৱা ফাইলসমূহ খোলক</translation>
 <translation id="4376226992615520204">অৱস্থান অফ কৰা আছে</translation>
@@ -4091,6 +4094,7 @@
 <translation id="5486261815000869482">পাছৱৰ্ড নিশ্চিত কৰক</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" />এ <ph name="TAB_NAME" />ৰ সৈতে আপোনাৰ স্ক্ৰীণ শ্বেয়াৰ কৰি আছে।</translation>
 <translation id="5486561344817861625">ছিমুলে’ট ব্ৰাউজাৰ ৰিষ্টাৰ্ট</translation>
+<translation id="5487460042548760727">প্ৰ'ফাইলটোৰ নাম <ph name="PROFILE_NAME" />লৈ সলনি কৰক</translation>
 <translation id="5487521232677179737">ডেটা মচক</translation>
 <translation id="5488093641312826914">’<ph name="COPIED_ITEM_NAME" />’ প্ৰতিলিপি কৰা হ’ল</translation>
 <translation id="5488508217173274228">ছিংক কৰা ডেটাৰ এনক্ৰিপশ্বন সম্পৰ্কীয় বিকল্পসমূহ</translation>
@@ -4830,6 +4834,7 @@
 <translation id="6308937455967653460">লিং&amp;কটো এইবুলি ছেভ কৰক...</translation>
 <translation id="6309443618838462258">আপোনাৰ প্ৰশাসকে এই ইনপুট পদ্ধতিটো ব্যৱহাৰ কৰাৰ অনুমতি নিদিয়ে</translation>
 <translation id="6309510305002439352">মাইক্ৰ'ফ'ন অফ কৰা হ'ল</translation>
+<translation id="6310141306111263820">ই-ছিমৰ প্ৰ'ফাইল ইনষ্টল কৰিব পৰা নগ'ল। সহায়ৰ বাবে, অনুগ্ৰহ কৰি আপোনাৰ বাহকৰ সৈতে যোগাযোগ কৰক।</translation>
 <translation id="6311220991371174222">আপোনাৰ প্ৰফাইল খোলোঁতে কিবা ভুল হোৱাৰ বাবে Chrome আৰম্ভ কৰিব নোৱাৰি। Chrome ৰিষ্টার্ট কৰিবলৈ চেষ্টা কৰক।</translation>
 <translation id="6312403991423642364">অজ্ঞাত নেটৱর্কৰ আসোঁৱাহ</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{১ দিন পূর্বে সুৰক্ষা পৰীক্ষা চলোৱা হৈছিল}one{{NUM_DAYS} দিন পূর্বে সুৰক্ষা পৰীক্ষা চলোৱা হৈছিল}other{{NUM_DAYS} দিন পূর্বে সুৰক্ষা পৰীক্ষা চলোৱা হৈছিল}}</translation>
@@ -5896,6 +5901,7 @@
 <translation id="7506541170099744506">আপোনাৰ <ph name="DEVICE_TYPE" />ক এণ্টাৰপ্ৰাইজ পৰিচালনাৰ বাবে পঞ্জীয়ন কৰা হৈছে।</translation>
 <translation id="7507207699631365376">এই প্ৰদানকাৰীৰ <ph name="BEGIN_LINK" />গোপনীয়তাৰ নীতি<ph name="END_LINK" /> চাওক</translation>
 <translation id="7507930499305566459">স্থিতি উত্তৰদাতাৰ প্ৰমাণপত্ৰ</translation>
+<translation id="7509246181739783082">আপোনাৰ পৰিচয় সত্যাপন কৰক</translation>
 <translation id="7513029293694390567">ষ্ট’ৰ কৰি থোৱা ক্ৰিডেনশ্বিয়েল ব্যৱহাৰ কৰি ৱেবছাইটত স্বয়ংক্রিয়ভাৱে ছাইন ইন কৰক। যদি অক্ষম কৰি ৰখা হয় তেন্তে প্ৰতিবাৰ কোনো ৱেবছাইটত ছাইন ইন কৰাৰ সময়ত আপোনাক নিশ্চিত কৰিবলৈ কোৱা হ’ব।</translation>
 <translation id="7514239104543605883">আপোনাৰ ডিভাইচটোলৈ প্ৰতিলিপি কৰক</translation>
 <translation id="7514365320538308">ডাউনল'ড কৰক</translation>
@@ -5960,6 +5966,7 @@
 <translation id="7582582252461552277">এই নেটৱর্কক অগ্ৰাধিকাৰ দিয়ক</translation>
 <translation id="7582844466922312471">ম’বাইল ডেটা</translation>
 <translation id="7583948862126372804">গণনা</translation>
+<translation id="7586051298768394542">কথনৰ ফাইল ডাউনল’ড কৰিব নোৱাৰি। আপোনাৰ কণ্ঠস্বৰ Googleলৈ পঠিয়াই শ্ৰুতিলিখনে কাম কৰি থাকিব।</translation>
 <translation id="7586498138629385861">Chromeৰ এপ্‌সমূহ খোলা থাকিলে Chrome চলি থাকিব।</translation>
 <translation id="7589461650300748890">অহ অলপ সাৱধান হওক।</translation>
 <translation id="7593653750169415785">আপুনি কেইবাবাৰো জাননীসমূহ প্ৰত্যাখ্যান কৰাৰ কাৰণে স্বয়ংক্ৰিয়ভাৱে অৱৰোধ কৰা হৈছে</translation>
@@ -6424,7 +6431,6 @@
 <translation id="8061091456562007989">এইটো পুনৰ সলনি কৰক</translation>
 <translation id="8061991877177392872">আপুনি ইতিমধ্যে অন্য এটা ডিভাইচত আপোনাৰ Assistantৰ সৈতে Voice Match সুবিধাটো ছেট আপ কৰিছে যেন লাগিছে। এই পূৰ্বৰ ৰেকৰ্ডিংসমূহ এই ডিভাইচটোত এটা কণ্ঠধ্বনিৰ মডেল বনাবলৈ ব্যৱহাৰ কৰা হৈছে।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{১ খন কাগজ}one{{COUNT} খন কাগজ}other{{COUNT} খন কাগজ}}</translation>
-<translation id="8062879968880283306">ডিভাইচৰ কেমেৰা ব্যৱহাৰ কৰি কিউআৰ ক’ড স্কেন কৰক অথবা আপোনাৰ বাহকে প্ৰদান কৰা সক্ৰিয়কৰণৰ ক’ডটো দিয়ক।</translation>
 <translation id="8063235345342641131">ডিফ'ল্ট সেউজীয়া অৱতাৰ</translation>
 <translation id="8063535366119089408">ফাইল চাওক</translation>
 <translation id="8064279191081105977">গোট <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6548,6 +6554,7 @@
 <translation id="8191230140820435481">আপোনাৰ এপ্‌, এক্সটেনশ্বন ,আৰু থীম পৰিচালনা কৰক</translation>
 <translation id="8195027750202970175">ডিস্কত থকা ঠাই</translation>
 <translation id="8198323535106903877">আমি আপোনাৰ বাবে সেই <ph name="NUMBER_OF_APPS" />টা এপ্‌ ইনষ্টল কৰিম</translation>
+<translation id="8198456017687137612">টেব কাষ্ট কৰি থকা হৈছে</translation>
 <translation id="8199300056570174101">নেটৱৰ্ক (সেৱা) আৰু ডিভাইচৰ বৈশিষ্ট্য</translation>
 <translation id="8200772114523450471">পুনৰ আৰম্ভ কৰক</translation>
 <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" />ৰ এলবামসমূহ বাছনি কৰক</translation>
@@ -6843,7 +6850,6 @@
 <translation id="8551588720239073785">তাৰিখ আৰু সময়ৰ ছেটিংসমূহ</translation>
 <translation id="8553342806078037065">অন্য লোকসকলক পৰিচালনা কৰক</translation>
 <translation id="8554899698005018844">কোনো ভাষা নাই</translation>
-<translation id="8555195867496021627">কোনো ই-ছিমৰ প্ৰ'ফাইল উপলব্ধ নহয়। <ph name="BEGIN_LINK" />ইয়াত<ph name="END_LINK" /> এটা নতুন প্ৰ'ফাইল ডাউনল'ড কৰক।</translation>
 <translation id="8557022314818157177">আপোনাৰ ফিংগাৰপ্ৰিণ্টটো কেপশ্বাৰ নকৰা পর্যন্ত আপোনাৰ সুৰক্ষা চাবিটো স্পৰ্শ কৰি থাকক</translation>
 <translation id="8557930019681227453">মেনিফেষ্ট</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{সকলো &amp;নতুন ৱিণ্ড’ত খোলক}=1{&amp;নতুন ৱিণ্ড’ত খোলক}one{সকলো ({COUNT} টা) &amp;নতুন ৱিণ্ড’ত খোলক}other{সকলো ({COUNT} টা) &amp;নতুন ৱিণ্ড’ত খোলক}}</translation>
@@ -7023,7 +7029,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" /> টা নেটৱৰ্কৰ <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />%, আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে, সংযোগ কৰক</translation>
 <translation id="8746654918629346731">আপুনি ইতিমধ্যে "<ph name="EXTENSION_NAME" />"ৰ বাবে অনুৰোধ কৰিছে</translation>
 <translation id="874689135111202667">{0,plural, =1{এই ছাইটটোত এটা ফাইল ল’ড কৰিবনে?}one{এই ছাইটটোত #টা ফাইল ল’ড কৰিবনে?}other{এই ছাইটটোত #টা ফাইল ল’ড কৰিবনে?}}</translation>
-<translation id="8749556627204742888">আপুনি এই ডিভাইচটোৰ অন্য ব্যৱহাৰকাৰীসকলৰ সৈতে এই নেটৱর্কটো শ্বেয়াৰ কৰি আছে।</translation>
 <translation id="8749805710397399240">আপোনাৰ স্ক্ৰীনখন কাষ্ট কৰিব পৰা নগ’ল। ছিষ্টেমৰ অগ্ৰাধিকাৰসমূহত স্ক্ৰীন ৰেকৰ্ড কৰাৰ অনুমতিটো পৰীক্ষা কৰক।</translation>
 <translation id="8749863574775030885">কোনো অজ্ঞাত বিক্ৰেতাৰ জৰিয়তে USB ডিভাইচৰ এক্সেছ পাওক</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" />এ এটা ছিৰিয়েল প’ৰ্টৰ সৈতে সংযোগ হ’ব বিচাৰে</translation>
@@ -7086,7 +7091,6 @@
 <translation id="8808744862003883508">এই পৃষ্ঠাখনত আপুনি Chromeত ইনষ্টল হৈ থকা সকলো এক্সটেনশ্বন চাব পাৰে।</translation>
 <translation id="8809147117840417135">পাতল নীলা</translation>
 <translation id="8811862054141704416">Crostiniৰ মাইক্র’ফ’নৰ এক্সেছ</translation>
-<translation id="8812552797690463522">এই নেটৱর্কটো আপোনাৰ সৈতে শ্বেয়াৰ কৰা হৈছে।</translation>
 <translation id="8812593354822910461">লগতে ব্ৰাউজিঙৰ ডেটাও (<ph name="URL" />) মচক যিয়ে আপোনাক <ph name="DOMAIN" />ৰ পৰা ছাইন আউট কৰাব। <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">মোক পাছত মনত পেলাই দিব</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" />ত ছাইন ইন কৰিব নোৱাৰি</translation>
@@ -7131,6 +7135,7 @@
 <translation id="8847523528195140327">ক’ভাৰটো বন্ধ কৰিলে ছাইন আউট কৰক</translation>
 <translation id="8847988622838149491">USB</translation>
 <translation id="8849001918648564819">লুকুওৱা হৈছে</translation>
+<translation id="8849219423513870962"><ph name="PROFILE_NAME" /> নামৰ ই-ছিম প্ৰ'ফাইল আঁতৰোৱাটো বাতিল কৰক</translation>
 <translation id="8850251000316748990">অধিক চাওক...</translation>
 <translation id="885246833287407341">API ফাংশ্বনৰ যুক্তিসমূহ</translation>
 <translation id="8853586775156634952">এই কাৰ্ডখন কেৱল এই ডিভাইচটোতহে ছেভ কৰা হ'ব</translation>
@@ -7297,7 +7302,6 @@
 <translation id="9021662811137657072">ভাইৰাছ ধৰা পৰিছে</translation>
 <translation id="902236149563113779">ছাইটসমূহে সচৰাচৰ গে'মসমূহ অথবা হে'ডছ-আপ দিক্-নিৰ্দেশনাৰ দৰে ARৰ সুবিধাসমূহৰ বাবে আপোনাৰ কেমেৰা ট্ৰেক কৰে</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" />এ এই কম্পিউটাৰত ইতিমধ্যেই এই একাউণ্টটো ব্যৱহাৰ কৰি আছে।</translation>
-<translation id="9023009238991294202">এই ডিভাইচৰ অন্য ব্যৱহাৰকাৰীয়ে এই নেটৱর্ক ব্যৱহাৰ কৰিব পাৰে।</translation>
 <translation id="9023015617655685412">এই টেবটো বুকমার্ক কৰক...</translation>
 <translation id="9023909777842748145">এই সুবিধাটো বন্ধ কৰিলেও ছিষ্টেম আপডে'ট আৰু সুৰক্ষাৰ দৰে অত্যাৱশ্যকীয় সেৱাসমূহৰ বাবে দৰকাৰী তথ্য আপোনাৰ ডিভাইচটোৱে তথ্য পঠিয়াব পৰাৰ ক্ষেত্ৰত কোনো প্ৰভাৱ নেপেলায়।</translation>
 <translation id="9024127637873500333">&amp;নতুন টেবত খোলক</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index 76034663..b59eb99 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -354,7 +354,6 @@
 <translation id="138784436342154190">Defolt başlanğıc səhifə bərpa edilsin?</translation>
 <translation id="1388253969141979417">Mikrofonunuzdan istifadə etməyə icazə verilib</translation>
 <translation id="1388728792929436380">Güncəlləmələr tamamlanan kimi <ph name="DEVICE_TYPE" /> cihazı yenidən başladılacaq.</translation>
-<translation id="138900021244932468">Profil tapılmadı. Yeni bir şəbəkə ayarlamaq üçün cihazın kamerasını istifadə edərək QR kodunu skanlayın və ya operatorunuz tərəfindən verilən aktivasiya kodunu daxil edin.</translation>
 <translation id="139013308650923562">Cihazınızda quraşdırılmış şriftləri istifadə etmək icazəsi verilir</translation>
 <translation id="1390548061267426325">Adi panel kimi açın</translation>
 <translation id="1393283411312835250">Günəş və buludlar</translation>
@@ -511,6 +510,7 @@
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" quraşdırıldı</translation>
 <translation id="1546280085599573572">Bu artırma əsas səhifə düyməsinə kliklədiyiniz zaman hansı səhifənin göstərildiyini dəyişdi</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> aşağıdakı imkanlara malik <ph name="EXTENSION_TYPE" /> quraşdırmaq istəyir:</translation>
+<translation id="1547808936554660006">Başa düşürəm ki, formatladıqda quraşdırılmış eSIM profilləri silinməyəcək</translation>
 <translation id="1549275686094429035">ARC Aktivdir</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> daxil olmaq istəyir. Fayllarınızı dəyişə və ya silə bilər.</translation>
 <translation id="1552301827267621511">"<ph name="EXTENSION_NAME" />" artırması axtarış sistemini <ph name="SEARCH_PROVIDER_DOMAIN" /> seçiminə dəyişib</translation>
@@ -545,6 +545,7 @@
 <translation id="1588438908519853928">Normal</translation>
 <translation id="158849752021629804">Ev şəbəkəsi lazımdır</translation>
 <translation id="1588870296199743671">Linki bununla açın:</translation>
+<translation id="1588919647604819635">Sağ düymə ilə toxunma kartı</translation>
 <translation id="1589055389569595240">Orfoqrafiya və Qrammatikanı göstərin</translation>
 <translation id="1591679663873027990">Parallels Desktop'a USB cihazlarına giriş icazəsi verin. Parallels Desktop USB cihazı silindikdən sonra onu yadda saxlamayacaq.</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> ADB sazlamasını deaktiv edib, bu da <ph name="DEVICE_TYPE" /> cihazınızı sıfırlayacaq. Yenidən başlamazdan əvvəl fayllarınızı yedəkləyin.</translation>
@@ -980,6 +981,7 @@
 
 Cihazda Family Link tətbiqini quraşdırmaqla bu hesabın ayarlarını idarə edə bilərsiniz.  Təlimatları e-məktubla göndərdik.</translation>
 <translation id="2040460856718599782">Sizi doğrulayan zaman xəta oldu. Giriş kredensiallarınızı yoxlayın və yenidən cəhd edin.</translation>
+<translation id="2042279886444479655">Aktiv profillər</translation>
 <translation id="2044014337866019681">Seansı blokdan çıxarmaq üçün <ph name="ACCOUNT" /> hesabını doğruladığınıza əmin olun.</translation>
 <translation id="2044023416777079300">Modem qeydiyyatdan keçirilməyib</translation>
 <translation id="204497730941176055">Microsoft Sertifikat Şablon adı</translation>
@@ -1321,6 +1323,7 @@
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> cihazınız müəssisə idarəetməsi üçün uğurla qeydiyyatdan keçdi, amma aktiv və məkan məlumatlarını göndərmək uğursuz oldu. Bu məlumatı cihaz üçün Admin konsolunuzdan əl ilə daxil edin.</translation>
 <translation id="2396387085693598316">Admininiz "<ph name="EXTENSION_NAME" />" artırmasını bloklayıb</translation>
 <translation id="2396783860772170191">4 rəqəmli kodu daxil edin (0000-9999)</translation>
+<translation id="2398546389094871088">Cihazınızı formatladıqda eSIM profilləriniz silinməyəcək. Bu profilləri manual silmək üçün <ph name="LINK_BEGIN" />Mobil Ayarlara<ph name="LINK_END" /> keçin.</translation>
 <translation id="2399699884460174994">Bildirişlər aktiv edildi</translation>
 <translation id="2399939490305346086">Təhlükəsizlik açarının giriş datası</translation>
 <translation id="2400664245143453337">Dərhal güncəlləmə tələb edilir</translation>
@@ -1736,6 +1739,7 @@
 <translation id="2844809857160214557">Çap işlərinə baxın və idarə edin</translation>
 <translation id="2845382757467349449">Həmişə Əlfəcin Panelini Göstərin</translation>
 <translation id="284805635805850872">Zərərli proqram təminatı silinsin?</translation>
+<translation id="2849035674501872372">Axtarış</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">Silmək alınmadı</translation>
 <translation id="2849936225196189499">Kritik</translation>
@@ -2047,6 +2051,7 @@
 <translation id="3189187154924005138">Böyük kursor</translation>
 <translation id="3190558889382726167">Yadda saxlanılmış Parol</translation>
 <translation id="3192947282887913208">Audio Fayllar</translation>
+<translation id="3197453258332670132">Sağ düymə ilə toxunduqda və ya basıb saxladıqda mətn seçiminizlə əlaqəli məlumatlar göstərilsin</translation>
 <translation id="3199127022143353223">Serverlər</translation>
 <translation id="3201422919974259695">Əlçatan USB cihazları burada görünəcək.</translation>
 <translation id="3202131003361292969">Yol</translation>
@@ -2068,6 +2073,7 @@
 <translation id="3223531857777746191">Sıfırlama Düyməsi</translation>
 <translation id="3225084153129302039">Defolt bənövşəyi avatar</translation>
 <translation id="3225319735946384299">Kodu İmzalaması</translation>
+<translation id="3226487301970807183">Sol yan panelə keçin</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3233271424239923319">Linux tətbiq və fayllarını yedəkləyin</translation>
 <translation id="3238192140106069382">Qoşulur və doğrulanır</translation>
@@ -2337,6 +2343,7 @@
 <translation id="3515983984924808886">Sıfırlamanı təsdiq etmək üçün təhlükəsizlik açarınıza yenidən toxunun. PIN kod daxil olmaqla təhlükəsizlik açarında saxlanılan bütün məlumatlar silinəcək.</translation>
 <translation id="3518985090088779359">Qəbul edin və davam edin</translation>
 <translation id="3519564332031442870">Çap Server Xidməti</translation>
+<translation id="3519938335881974273">Səhifəni yadda saxlama formatı:</translation>
 <translation id="3521606918211282604">Disk ölçüsünü dəyişin</translation>
 <translation id="3522088408596898827">Diskdə boş yer çox azdır. Diskdə yer boşaldın və yenidən cəhd edin.</translation>
 <translation id="3524965460886318643">Eksport Fəaliyyətləri</translation>
@@ -2360,6 +2367,7 @@
 <translation id="3550593477037018652">Mobil şəbəkəni ayırın</translation>
 <translation id="3550915441744863158">Chrome avtomatik güncəlləşdiyi üçün həmişə son versiyada olur.</translation>
 <translation id="3551320343578183772">Paneli qapadın</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">Çıxışda təmizləndi</translation>
 <translation id="3554493885489666172">Cihazınız <ph name="PROFILE_NAME" /> tərəfindən idarə olunur. Administratorlar bu cihazda istənilən profildəki dataya giriş edə bilərlər.</translation>
 <translation id="3555812735919707620">Artırmanı silin</translation>
@@ -2412,6 +2420,7 @@
 <translation id="3604713164406837697">Divar kağızını dəyişin</translation>
 <translation id="3605780360466892872">Buttondown</translation>
 <translation id="3608576286259426129">İstifadəçi şəkil önizləməsi</translation>
+<translation id="3609277884604412258">Cəld axtarış</translation>
 <translation id="3610369246614755442">Dok havalandırması texniki baxışdan keçirilməlidir</translation>
 <translation id="361106536627977100">Flaş data</translation>
 <translation id="3611655097742243705">Daha çox tətbiq tapmaq üçün Play Marketə baş çəkin</translation>
@@ -3353,6 +3362,7 @@
 <translation id="4636682061478263818">Disk faylları</translation>
 <translation id="4636930964841734540">İnfo</translation>
 <translation id="4637083375689622795">Daha çox əməliyyat, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">Kameranı yenidən istifadə edin</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{Mətn}other{# mətn}}</translation>
 <translation id="4638930039313743000">ADB sazlamasını aktiv edin</translation>
 <translation id="4641539339823703554">Chrome sistem vaxtını ayarlaya bilmədi. Aşağıda vaxtı yoxlayın və gərək olduğu halda düzəldin.</translation>
@@ -4103,6 +4113,7 @@
 <translation id="5499313591153584299">Bu fayl kompüteriniz üçün zərərli ola bilər.</translation>
 <translation id="5499453227627332024">Linux Konteyneriniz üçün təkmilləşdirmə əlçatandır. Daha sonra Ayarlar tətbiqində də təkmilləşdirə bilərsiniz.</translation>
 <translation id="5500709606820808700">Təhlükəsizlik yoxlanışı bu gün icra olunub</translation>
+<translation id="5501322521654567960">Sol yan panel</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> cihazından <ph name="ATTACHMENTS" /> almaq alınmadı}other{<ph name="DEVICE_NAME" /> cihazından <ph name="ATTACHMENTS" /> almaq alınmadı}}</translation>
 <translation id="5502500733115278303">Firefox'dan import edilib</translation>
 <translation id="5502915260472117187">Uşaq</translation>
@@ -5312,6 +5323,7 @@
 <translation id="6856348640027512653">Virtual reallıq cihazlarından və ya datasından istifadə etmək icazəsi verilməyib</translation>
 <translation id="6856459657722366306"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> şəbəkə, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, Siqnal Gücü <ph name="SIGNAL_STRENGTH" />%, Detallar</translation>
 <translation id="6856623341093082836">Sensor ekranın dəqiqliyini quraşdırın və tənzimləyin</translation>
+<translation id="6857145580237920905">Formatlamadan əvvəl eSIM profillərini silin</translation>
 <translation id="6857699260879628349">Konfiqurasiya məlumatını əldə edin</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> san</translation>
 <translation id="6860097299815761905">Proksi ayarları...</translation>
@@ -5893,6 +5905,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> cihazınız sahibkarlıq idarəçiliyi üçün uğurla qeydiyyatdan keçdi.</translation>
 <translation id="7507207699631365376">Bu təminatçının <ph name="BEGIN_LINK" />məxfilik siyasətinə<ph name="END_LINK" /> baxın</translation>
 <translation id="7507930499305566459">Status Responder Certificate</translation>
+<translation id="7509246181739783082">Kimliyinizi doğrulayın</translation>
 <translation id="7513029293694390567">Yadda saxlanmış kredensialları istifadə edərək veb saytlara avtomatik qoşulun. Əgər funksiya deaktivdirsə, hər dəfə veb sayta daxil olmadan əvvəl təsdiqləmə tələb ediləcək.</translation>
 <translation id="7514239104543605883">Cihazınıza kopyalayın</translation>
 <translation id="7514365320538308">Endirmə</translation>
@@ -6424,7 +6437,6 @@
 <translation id="8061091456562007989">Əvvəlki ayarları qaytarın</translation>
 <translation id="8061991877177392872">Görünür, başqa cihazda Assistentiniz ilə Voice Match ayarlamısınız. Əvvəlki səs yazmaları bu cihazda səs modeli yaratmaq üçün istifadə edilib.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 vərəq}other{{COUNT} vərəq}}</translation>
-<translation id="8062879968880283306">Cihazın kamerası ilə QR kodu skanlayın və ya operatorun təmin etdiyi aktivasiya kodunu daxil edin.</translation>
 <translation id="8063235345342641131">Defolt yaşıl avatar</translation>
 <translation id="8063535366119089408">Fayla baxın</translation>
 <translation id="8064279191081105977">Qrup <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6844,7 +6856,6 @@
 <translation id="8551588720239073785">Tarix və vaxt ayarları</translation>
 <translation id="8553342806078037065">Digər insanları idarə edin</translation>
 <translation id="8554899698005018844">Dil yoxdur</translation>
-<translation id="8555195867496021627">Əlçatan eSIM profili yoxdur. <ph name="BEGIN_LINK" />Burada<ph name="END_LINK" /> yeni profil endirin.</translation>
 <translation id="8557022314818157177">Barmaq iziniz oxunanadək təhlükəsizlik açarına toxunmağa davam edin</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Hamısını &amp;Yeni Pəncərədə Açın}=1{&amp;Yeni Pəncərədə Açın}other{Hamısını ({COUNT}) &amp;Yeni Pəncərədə Açın}}</translation>
@@ -7024,7 +7035,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> şəbəkə, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> Siqnal Gücü <ph name="SIGNAL_STRENGTH" />%, Administratorunuz tərəfindən idarə olunur, Qoşulun</translation>
 <translation id="8746654918629346731">Artıq "<ph name="EXTENSION_NAME" />" üçün sorğu göndərmisiniz</translation>
 <translation id="874689135111202667">{0,plural, =1{Bir fayl sayta yüklənsin?}other{# fayl sayta yüklənsin?}}</translation>
-<translation id="8749556627204742888">Bu şəbəkəni bu cihazın digər istifadəçiləri ilə paylaşırsınız.</translation>
 <translation id="8749805710397399240">Ekranınızı yayımlamaq mümkün deyil. Sistem Tərcihlərində Ekran Yazma icazəsini yoxlayın.</translation>
 <translation id="8749863574775030885">Naməlum vendordan USB cihazlara giriş</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> silsilə porta qoşulmaq istəyir</translation>
@@ -7084,7 +7094,6 @@
 <translation id="8808744862003883508">Bu səhifədə Chrome'da quraşdırılmış bütün artırmaları görə bilərsiniz.</translation>
 <translation id="8809147117840417135">Açıq-firuzəyi</translation>
 <translation id="8811862054141704416">Crostini mikrofona girişi</translation>
-<translation id="8812552797690463522">Bu şəbəkə sizinlə paylaşılır.</translation>
 <translation id="8812593354822910461">Həmçinin baxış datasını (<ph name="URL" />) silin, bunun nəticəsində <ph name="DOMAIN" /> ünvanından çıxacaqsınız. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Sonra xatırladın</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> istifadəçi adına daxil ola bilməz</translation>
@@ -7296,7 +7305,6 @@
 <translation id="9021662811137657072">Virus aşkar edildi</translation>
 <translation id="902236149563113779">Saytlar adətən oyunlar və ya xəbərdarlıq edici istiqamətlər kimi AR xüsusiyyətləri üçün kamera mövqeyinizi izləyir</translation>
 <translation id="9022847679183471841">Bu hesab bu kompüterdə artıq <ph name="AVATAR_NAME" /> tərəfindən istifadə olunur.</translation>
-<translation id="9023009238991294202">Bu cihazın digər istifadəçiləri şəbəkədən istifadə edə bilər.</translation>
 <translation id="9023015617655685412">Bu tabı əlfəcinlərə əlavə edin...</translation>
 <translation id="9023909777842748145">Bu xüsusiyyəti söndürmək cihazınızın sistem yeniləmələri və təhlükəsizlik kimi vacib xidmətlər üçün lazım olan məlumatları göndərmə imkanına təsir göstərmir.</translation>
 <translation id="9024127637873500333">Yeni paneldə açın</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 00356ed..82918cb 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">Аднавіць стандартную пачатковую старонку?</translation>
 <translation id="1388253969141979417">Дазволена выкарыстоўваць мікрафон</translation>
 <translation id="1388728792929436380">Пасля завяршэння абнаўлення прылада "<ph name="DEVICE_TYPE" />" перазапусціцца.</translation>
-<translation id="138900021244932468">Профіляў не выяўлена. Каб наладзіць новую сетку, адсканіруйце QR-код камерай прылады або ўвядзіце код актывацыі, атрыманы ад аператара.</translation>
 <translation id="139013308650923562">Сайты, якім дазволена выкарыстоўваць шрыфты, усталяваныя на прыладзе</translation>
 <translation id="1390548061267426325">Адкрыць у звычайнай укладцы</translation>
 <translation id="1393283411312835250">Сонца і аблокі</translation>
@@ -516,6 +515,7 @@
 <translation id="1545775234664667895">Усталявана тэма "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">Пашырэнне змяніла старонку, якая адкрываецца пры націсканні кнопкі галоўнай старонкі.</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> хоча ўсталяваць пашырэнне <ph name="EXTENSION_TYPE" />, якое зможа:</translation>
+<translation id="1547808936554660006">Я разумею, што, калі я выкарыстаю Powerwash, усталяваныя профілі eSIM-карты выдалены не будуць</translation>
 <translation id="1549275686094429035">Тэхналогія ARC уключана</translation>
 <translation id="1549788673239553762">Праграма "<ph name="APP_NAME" />" запытвае доступ да <ph name="VOLUME_NAME" />. Яна можа змяніць або выдаліць вашы файлы.</translation>
 <translation id="1552301827267621511">Пашырэнне "<ph name="EXTENSION_NAME" />" зрабіла стандартнай пошукавай сістэмай наступную: <ph name="SEARCH_PROVIDER_DOMAIN" /></translation>
@@ -552,6 +552,7 @@
 <translation id="1588438908519853928">Звычайны</translation>
 <translation id="158849752021629804">Патрабуецца хатняя сетка</translation>
 <translation id="1588870296199743671">Адкрыць спасылку з дапамогай...</translation>
+<translation id="1588919647604819635">Картка пры націсканні правай кнопкай мышы</translation>
 <translation id="1589055389569595240">Паказваць парады па правапісе і граматыцы</translation>
 <translation id="1591679663873027990">Дазволіць Parallels Desktop доступ да прылад USB. Parallels Desktop не захавае даных пра прыладу USB пасля яе вымання.</translation>
 <translation id="1592074621872221573">Сайт <ph name="MANAGER" /> выключыў адладку ADB, што прывядзе да скіду налад прылады <ph name="DEVICE_TYPE" />. Зрабіце рэзервовыя копіі файлаў перад яе перазапускам.</translation>
@@ -987,6 +988,7 @@
 
 Для кіравання наладамі ўліковага запісу можна ўсталяваць на прыладу праграму Family Link.  Мы адправілі вам інструкцыі па электроннай пошце.</translation>
 <translation id="2040460856718599782">Памылка!  Падчас аўтэнтыфікацыі нешта пайшло не так.  Праверце ўліковыя даныя і паўтарыце спробу.</translation>
+<translation id="2042279886444479655">Актыўныя профілі</translation>
 <translation id="2044014337866019681">Каб разблакіраваць сеанс, вы павінны спраўдзіць уліковы запіс <ph name="ACCOUNT" />.</translation>
 <translation id="2044023416777079300">Мадэм не зарэгістраваны</translation>
 <translation id="204497730941176055">Назва шаблона сертыфіката Microsoft</translation>
@@ -1325,6 +1327,7 @@
 <translation id="2395616325548404795">Ваша прылада <ph name="DEVICE_TYPE" /> паспяхова зарэгістравана для карпаратыўнага кіравання, але не адправіла інфармацыю аб аб'екце ўласнасці і месцазнаходжанні. Увядзіце гэту інфармацыю пра прыладу ўручную на кансолі адміністратара.</translation>
 <translation id="2396387085693598316">Адміністратар заблакіраваў пашырэнне "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="2396783860772170191">Увядзіце 4-значны PIN-код (0000–9999)</translation>
+<translation id="2398546389094871088">Пры выкарыстанні функцыі Powerwash для скіду налад профілі eSIM-карты не выдаляюцца. Іх можна выдаліць уручную ў <ph name="LINK_BEGIN" />наладах мабільнай прылады<ph name="LINK_END" />.</translation>
 <translation id="2399699884460174994">Апавяшчэнні ўключаны</translation>
 <translation id="2399939490305346086">Уліковыя даныя ключа бяспекі</translation>
 <translation id="2400664245143453337">Патрабуецца неадкладнае абнаўленне</translation>
@@ -1741,6 +1744,7 @@
 <translation id="2844809857160214557">Прагляд заданняў друку і кіраванне імі</translation>
 <translation id="2845382757467349449">Заўсёды паказваць панэль закладак</translation>
 <translation id="284805635805850872">Выдаліць шкоднае праграмнае забеспячэнне?</translation>
+<translation id="2849035674501872372">Знайсці</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">Не ўдалося выканаць ачыстку</translation>
 <translation id="2849936225196189499">Крытычна важнае</translation>
@@ -2052,6 +2056,7 @@
 <translation id="3189187154924005138">Вялікі курсор</translation>
 <translation id="3190558889382726167">Пароль захаваны</translation>
 <translation id="3192947282887913208">Аўдыяфайлы</translation>
+<translation id="3197453258332670132">Па націсканні правай кнопкай мышы або доўгім націсканні паказваць звязаную інфармацыю пра вылучаны вамі тэкст</translation>
 <translation id="3199127022143353223">Серверы</translation>
 <translation id="3201422919974259695">Тут з'явяцца даступныя прылады USB.</translation>
 <translation id="3202131003361292969">Шлях</translation>
@@ -2073,6 +2078,7 @@
 <translation id="3223531857777746191">Кнопка "Скінуць"</translation>
 <translation id="3225084153129302039">Стандартны фіялетавы аватар</translation>
 <translation id="3225319735946384299">Падпісванне кода</translation>
+<translation id="3226487301970807183">Паказаць або схаваць бакавую панэль злева</translation>
 <translation id="3227137524299004712">Мікрафон</translation>
 <translation id="3233271424239923319">Стварыць рэзервовую копію файлаў і праграм Linux</translation>
 <translation id="3238192140106069382">Ідзе падключэнне і спраўджанне</translation>
@@ -2342,6 +2348,7 @@
 <translation id="3515983984924808886">Каб пацвердзіць скід, дакраніцеся да ключа бяспекі яшчэ раз. Уся захаваная на ключы бяспекі інфармацыя, у тым ліку яго PIN-код, будзе выдалена.</translation>
 <translation id="3518985090088779359">Прыняць і працягнуць</translation>
 <translation id="3519564332031442870">Серверны сэрвіс друку</translation>
+<translation id="3519938335881974273">Захаваць старонку як...</translation>
 <translation id="3521606918211282604">Змяніць памер дыска</translation>
 <translation id="3522088408596898827">Вельмі мала месца на дыску. Вызваліце месца на дыску і паўтарыце спробу.</translation>
 <translation id="3524965460886318643">Экспартаваць дзеянні</translation>
@@ -2365,6 +2372,7 @@
 <translation id="3550593477037018652">Выключыць сотавую сетку</translation>
 <translation id="3550915441744863158">Chrome абнаўляецца аўтаматычна, таму ў вас заўсёды будзе ўсталявана апошняя версія</translation>
 <translation id="3551320343578183772">Закрыць укладку</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">Будзе выдалены пры выхадзе</translation>
 <translation id="3554493885489666172">Гэтай прыладай кіруе <ph name="PROFILE_NAME" />. Адміністратары маюць доступ да даных ва ўсіх профілях на гэтай прыладзе.</translation>
 <translation id="3555812735919707620">Выдаліць пашырэнне</translation>
@@ -2417,6 +2425,7 @@
 <translation id="3604713164406837697">Змяніць шпалеры</translation>
 <translation id="3605780360466892872">Бізнесмен</translation>
 <translation id="3608576286259426129">Папярэдні прагляд відарыса карыстальніка</translation>
+<translation id="3609277884604412258">Хуткі пошук</translation>
 <translation id="3610369246614755442">Вентылятару док-станцыі патрабуецца абслугоўванне</translation>
 <translation id="361106536627977100">Даныя Flash</translation>
 <translation id="3611655097742243705">Больш праграм можна знайсці ў Краме Play</translation>
@@ -3360,6 +3369,7 @@
 <translation id="4636682061478263818">Файлы на Дыску</translation>
 <translation id="4636930964841734540">Інфармацыя</translation>
 <translation id="4637083375689622795">Іншыя дзеянні, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">Выкарыстаць камеру яшчэ раз</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{Тэкст}one{# тэкст}few{# тэксты}many{# тэкстаў}other{# тэксту}}</translation>
 <translation id="4638930039313743000">Уключыць адладку ADB</translation>
 <translation id="4641539339823703554">Браўзеру Chrome не ўдалося задаць сістэмны час. Праверце ўказаны ніжэй час і пры неабходнасці выправіце яго.</translation>
@@ -4108,6 +4118,7 @@
 <translation id="5499313591153584299">Гэты файл можа нанесці шкоду вашаму камп'ютару.</translation>
 <translation id="5499453227627332024">Для кантэйнера Linux ёсць абнаўленне. Усталяваць абнаўленне можна будзе і пазней – з праграмы "Налады".</translation>
 <translation id="5500709606820808700">Праверка бяспекі выконвалася сёння</translation>
+<translation id="5501322521654567960">Бакавая панэль злева</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}one{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}few{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}many{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}other{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}}</translation>
 <translation id="5502500733115278303">Імпартаваныя з браўзера Firefox</translation>
 <translation id="5502915260472117187">Дзіця</translation>
@@ -5316,6 +5327,7 @@
 <translation id="6856348640027512653">Не маюць дазволу выкарыстоўваць даныя або прылады віртуальнай рэальнасці</translation>
 <translation id="6856459657722366306">Сетка <ph name="NETWORK_INDEX" /> з <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, магутнасць сігналу – <ph name="SIGNAL_STRENGTH" />%, падрабязныя звесткі</translation>
 <translation id="6856623341093082836">Наладзіць і адрэгуляваць дакладнасць сэнсарнага экрана</translation>
+<translation id="6857145580237920905">Перш чым выкарыстаць Powerwash, выдаліце профілі eSIM-карты</translation>
 <translation id="6857699260879628349">Паглядзець інфармацыю аб канфігурацыі</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> с</translation>
 <translation id="6860097299815761905">Налады проксі-сервера...</translation>
@@ -5760,6 +5772,7 @@
 <translation id="7361297102842600584">Націсніце правай клавішай мышы, каб запусціць <ph name="PLUGIN_NAME" /></translation>
 <translation id="7362387053578559123">Сайты могуць запытваць дазвол на падключэнне да прылад з Bluetooth</translation>
 <translation id="7364591875953874521">Доступ запытаны</translation>
+<translation id="7364745943115323529">Трансліраваць...</translation>
 <translation id="7364796246159120393">Выбраць файл</translation>
 <translation id="7365076891350562061">Памер манітора</translation>
 <translation id="7366316827772164604">Ідзе пошук прылад паблізу…</translation>
@@ -5896,6 +5909,7 @@
 <translation id="7506541170099744506">Ваша прылада (<ph name="DEVICE_TYPE" />) паспяхова зарэгістравана для карпаратыўнага кіравання.</translation>
 <translation id="7507207699631365376">Азнаёміцца з <ph name="BEGIN_LINK" />палітыкай прыватнасці<ph name="END_LINK" /> гэтага пастаўшчыка</translation>
 <translation id="7507930499305566459">Сертыфікат паведамлення аб стане</translation>
+<translation id="7509246181739783082">Спраўдзіце сваю асобу</translation>
 <translation id="7513029293694390567">Аўтаматычна ўваходзіць на вэб-сайты, выкарыстоўваючы захаваныя ўліковыя даныя. Калі функцыя выключана, ад вас будзе патрабавацца пацвярджэнне пры кожным уваходзе ва ўліковы запіс на вэб-сайце.</translation>
 <translation id="7514239104543605883">Скапіраваць на прыладу</translation>
 <translation id="7514365320538308">Спампаваць</translation>
@@ -6427,7 +6441,6 @@
 <translation id="8061091456562007989">Вярнуць ранейшыя налады</translation>
 <translation id="8061991877177392872">Здаецца, вы ўжо наладзілі работу функцыі Voice Match з Памочнікам на іншай прыладзе. Зробленыя пры наладцы запісы былі выкарыстаны для стварэння галасавой мадэлі на гэтай прыладзе.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 аркуш паперы}one{{COUNT} аркуш паперы}few{{COUNT} аркушы паперы}many{{COUNT} аркушаў паперы}other{{COUNT} аркуша паперы}}</translation>
-<translation id="8062879968880283306">Адсканіруйце QR-код камерай прылады або ўвядзіце код актывацыі, дадзены аператарам.</translation>
 <translation id="8063235345342641131">Стандартны зялёны аватар</translation>
 <translation id="8063535366119089408">Прагледзець файл</translation>
 <translation id="8064279191081105977">Група "<ph name="GROUP_NAME" />" – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6848,7 +6861,6 @@
 <translation id="8551588720239073785">Налады даты і часу</translation>
 <translation id="8553342806078037065">Іншыя карыстальнікі</translation>
 <translation id="8554899698005018844">Мова не выбрана</translation>
-<translation id="8555195867496021627">Даступных профіляў eSIM няма. Спампуйце новы профіль <ph name="BEGIN_LINK" />тут<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Каб дадаць адбітак пальца, націскайце на ключ бяспекі</translation>
 <translation id="8557930019681227453">Маніфест</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Адкрыць усе ў &amp;новым акне}=1{Адкрыць у &amp;новым акне}one{Адкрыць усе ({COUNT}) у &amp;новым акне}few{Адкрыць усе ({COUNT}) у &amp;новым акне}many{Адкрыць усе ({COUNT}) у &amp;новым акне}other{Адкрыць усе ({COUNT}) у &amp;новым акне}}</translation>
@@ -7028,7 +7040,6 @@
 <translation id="8743164338060742337">Сетка <ph name="NETWORK_INDEX" /> з <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, магутнасць сігналу – <ph name="SIGNAL_STRENGTH" />%, знаходзіцца пад кіраваннем адміністратара, падключыцеся да сеткі</translation>
 <translation id="8746654918629346731">Вы ўжо зрабілі запыт на ўсталяванне пашырэння "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Запампаваць адзін файл на гэты сайт?}one{Запампаваць # файл на гэты сайт?}few{Запампаваць # файлы на гэты сайт?}many{Запампаваць # файлаў на гэты сайт?}other{Запампаваць # файла на гэты сайт?}}</translation>
-<translation id="8749556627204742888">Вы абагульваеце гэту сетку з іншымі карыстальнікамі гэтай прылады.</translation>
 <translation id="8749805710397399240">Не ўдалося трансліраваць ваш экран. Праверце наяўнасць дазволу на запіс экрана ў наладах System Preferences.</translation>
 <translation id="8749863574775030885">Доступ да USB-прылад ад невядомага пастаўшчыка</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> хоча падключыцца да серыйнага порта</translation>
@@ -7093,7 +7104,6 @@
 <translation id="8808744862003883508">На гэтай старонцы можна бачыць усе ўсталяваныя ў Chrome пашырэнні.</translation>
 <translation id="8809147117840417135">Светла-бірузовы</translation>
 <translation id="8811862054141704416">Доступ да мікрафона ў Crostini</translation>
-<translation id="8812552797690463522">Гэта сетка абагулена з вамі.</translation>
 <translation id="8812593354822910461">Таксама выдаліць гісторыю праглядаў сайта (<ph name="URL" />), што можа прывесці да выхаду з уліковага запісу на дамене <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Нагадаць пазней</translation>
 <translation id="8813698869395535039">Не ўдаецца ўвайсці ва ўліковы запіс <ph name="USERNAME" /></translation>
@@ -7305,7 +7315,6 @@
 <translation id="9021662811137657072">Выяўлены вірус</translation>
 <translation id="902236149563113779">Сайты звычайна адсочваюць становішча камеры для функцый дапоўненай рэальнасці (напрыклад, для гульняў або ўказання маршрутаў)</translation>
 <translation id="9022847679183471841">Гэты ўліковы запіс ужо выкарыстоўваецца на гэтым камп'ютары карыстальнікам <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Іншыя карыстальнікі прылады могуць выкарыстоўваць гэту сетку.</translation>
 <translation id="9023015617655685412">Дадаць гэту ўкладку ў закладкі...</translation>
 <translation id="9023909777842748145">Выключэнне гэтай функцыі не ўплывае на адпраўку прыладай інфармацыі, неабходнай для працы асноўных сэрвісаў, такіх як абнаўленне сістэмы і бяспека прылады.</translation>
 <translation id="9024127637873500333">&amp;Адкрыць у новай укладцы</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index d01b7642f..6d736739 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Да се възстанови ли стандартната страница при стартиране?</translation>
 <translation id="1388253969141979417">Сайтове с разрешение за използване на микрофона ви</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> ще се рестартира, когато актуализациите завършат.</translation>
-<translation id="138900021244932468">Не бяха открити потребителски профили. За да настроите нова мрежа, сканирайте QR кода с камерата на устройството или въведете кода за активиране, предоставен от оператора ви.</translation>
 <translation id="139013308650923562">Разрешено е използването на шрифтовете, инсталирани на устройството ви</translation>
 <translation id="1390548061267426325">Отваряне като нормален раздел</translation>
 <translation id="1393283411312835250">Слънце и облаци</translation>
@@ -5927,6 +5926,7 @@
 <translation id="7506541170099744506">Устройството ви <ph name="DEVICE_TYPE" /> е успешно записано за корпоративно управление.</translation>
 <translation id="7507207699631365376">Вижте <ph name="BEGIN_LINK" />декларацията за поверителност<ph name="END_LINK" /> на този доставчик</translation>
 <translation id="7507930499305566459">Сертификат за състоянието на респондер</translation>
+<translation id="7509246181739783082">Потвърждаване на самоличността ви</translation>
 <translation id="7513029293694390567">Автоматично влизане в уебсайтове посредством съхраняваните идентификационни данни. Ако е деактивирано, ще се иска потвърждение от вас преди всяко влизане в профил в уебсайт.</translation>
 <translation id="7514239104543605883">Копиране на устройството ви</translation>
 <translation id="7514365320538308">Изтегляне</translation>
@@ -6459,7 +6459,6 @@
 <translation id="8061091456562007989">Възстановяване на настройките</translation>
 <translation id="8061991877177392872">Изглежда, че вече сте настроили Voice Match за Асистент на друго устройство. Предишните записи бяха използвани за създаване на гласов модел на това устройство.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 лист хартия}other{{COUNT} листа хартия}}</translation>
-<translation id="8062879968880283306">Сканирайте QR кода с камерата на устройството или въведете кода за активиране, предоставен от оператора ви.</translation>
 <translation id="8063235345342641131">Стандартен зелен аватар</translation>
 <translation id="8063535366119089408">Преглед на файла</translation>
 <translation id="8064279191081105977">Група <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6880,7 +6879,6 @@
 <translation id="8551588720239073785">Настройки за дата и час</translation>
 <translation id="8553342806078037065">Управление на другите хора</translation>
 <translation id="8554899698005018844">Без език</translation>
-<translation id="8555195867496021627">Няма профили за електронни SIM карти. Изтеглете нов <ph name="BEGIN_LINK" />оттук<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Продължете да докосвате ключа за сигурност, докато отпечатъкът ви бъде записан</translation>
 <translation id="8557930019681227453">Манифест</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Отваряне на всички в &amp;нов прозорец}=1{Отваряне в &amp;нов прозорец}other{Отваряне на всички ({COUNT}) в &amp;нов прозорец}}</translation>
@@ -7060,7 +7058,6 @@
 <translation id="8743164338060742337">Мрежа <ph name="NETWORK_INDEX" /> от <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, сила на сигнала <ph name="SIGNAL_STRENGTH" />%, управлява се от администратора ви, свързване</translation>
 <translation id="8746654918629346731">Вече заявихте <ph name="EXTENSION_NAME" /></translation>
 <translation id="874689135111202667">{0,plural, =1{Искате ли да качите един файл на този сайт?}other{Искате ли да качите # файла на този сайт?}}</translation>
-<translation id="8749556627204742888">Споделяте тази мрежа с други потребители на устройството.</translation>
 <translation id="8749805710397399240">Предаването на екрана не е възможно. Проверете разрешението за записване на екрана в системните предпочитания.</translation>
 <translation id="8749863574775030885">Достъп до USB устройства от неизвестен доставчик</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> иска да се свърже със сериен порт</translation>
@@ -7122,7 +7119,6 @@
 <translation id="8808744862003883508">На тази страница можете да видите всички разширения, инсталирани в Chrome.</translation>
 <translation id="8809147117840417135">Светло синьо-зелено</translation>
 <translation id="8811862054141704416">Достъп на Crostini до микрофона</translation>
-<translation id="8812552797690463522">Тази мрежа е споделена с вас.</translation>
 <translation id="8812593354822910461">Също така изчистване на данните за сърфирането (<ph name="URL" />), при което ще бъде прекратена сесията ви в(ъв) <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Напомняне по-късно</translation>
 <translation id="8813698869395535039">Не мога да вляза в профила <ph name="USERNAME" /></translation>
@@ -7334,7 +7330,6 @@
 <translation id="9021662811137657072">Открит е вирус</translation>
 <translation id="902236149563113779">Сайтовете обикновено проследяват позицията на камерата ви, за да осигуряват функции за AR, например за игри или упътвания, които указват посоката на движение</translation>
 <translation id="9022847679183471841">Профилът вече се използва на този компютър от <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Другите потребители на устройството могат да използват тази мрежа.</translation>
 <translation id="9023015617655685412">Запазване на отметка към този раздел...</translation>
 <translation id="9023909777842748145">Изключването на тази функция няма да засегне възможността на устройството ви да изпраща информацията, необходима за получаването на основни услуги, като системни актуализации и подобрения в сигурността.</translation>
 <translation id="9024127637873500333">&amp;Отваряне в нов раздел</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 82bfe57f..0324bad 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">ডিফল্ট শুরুর পৃষ্ঠা পুনরুদ্ধার করবেন?</translation>
 <translation id="1388253969141979417">মাইক্রোফোন ব্যবহার করার অনুমতি দেওয়া হয়েছে</translation>
 <translation id="1388728792929436380">আপডেট সম্পূর্ণ হলে, <ph name="DEVICE_TYPE" /> রিস্টার্ট করা হবে।</translation>
-<translation id="138900021244932468">কোনও প্রোফাইল পাওয়া যায়নি। নতুন নেটওয়ার্ক সেট আপ করতে, ডিভাইস ক্যামেরা ব্যবহার করে QR কোড স্ক্যান করুন অথবা পরিষেবা প্রদানকারীর থেকে পাওয়া অ্যাক্টিভেশন কোড লিখুন।</translation>
 <translation id="139013308650923562">সাইটকে আপনার ডিভাইসে ইনস্টল করা ফন্ট ব্যবহার করতে দেয়</translation>
 <translation id="1390548061267426325">নিয়মিত ট্যাব রূপে খুলুন</translation>
 <translation id="1393283411312835250">সূর্য ও ক্লাউড</translation>
@@ -517,6 +516,7 @@
 <translation id="1545775234664667895">ইনস্টল হওয়া থিম "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">আপনি হোম বোতাম ক্লিক করলে কোন পৃষ্ঠা দেখানো হবে তা এই এক্সটেনশনটি পরিবর্তন করেছে।</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> একটি <ph name="EXTENSION_TYPE" /> ইনস্টল করতে চাইছে যা এগুলি করতে পারে:</translation>
+<translation id="1547808936554660006">আমি এটি বুঝেছি যে ইনস্টল করা ই-সিম প্রোফাইল পাওয়ারওয়াশের ফলে সরে যাবে না</translation>
 <translation id="1549275686094429035">ARC চালু করা হয়েছে</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> অ্যাক্সেস করতে চায়৷ এটি আপনার ফাইলগুলিকে মডিফাই করতে বা মুছে ফেলতে পারে৷</translation>
 <translation id="1552301827267621511">"<ph name="EXTENSION_NAME" />" এক্সটেনশনের মাধ্যমে ডিফল্ট সার্চ ইঞ্জিনকে ওভাররাইড করা হয়েছে এবং এখন <ph name="SEARCH_PROVIDER_DOMAIN" />-এর মাধ্যমে কন্ট্রোল করা হচ্ছে</translation>
@@ -553,6 +553,7 @@
 <translation id="1588438908519853928">সাধারণ</translation>
 <translation id="158849752021629804">হোম নেটওয়ার্কের প্রয়োজন</translation>
 <translation id="1588870296199743671">এর সাথে লিঙ্ক খুলুন...</translation>
+<translation id="1588919647604819635">কার্ডের উপরে ডানদিকের বোতামে ক্লিক করুন</translation>
 <translation id="1589055389569595240">বানান এবং ব্যাকরণ দেখান</translation>
 <translation id="1591679663873027990">Parallels Desktop-কে ইউএসবি ডিভাইস অ্যাক্সেস করার অনুমতি দিন। সরিয়ে দেওয়ার পরে, Parallels Desktop-এর কাছে কোনও ইউএসবি ডিভাইসের তথ্য সেভ করা থাকবে না।</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> ADB ডিবাগিং বন্ধ করে দিয়েছে, এর ফলে আপনার <ph name="DEVICE_TYPE" /> রিসেট হয়ে যাবে। রিস্টার্ট করার আগে আপনার ফাইলের ব্যাক-আপ নিন।</translation>
@@ -997,6 +998,7 @@
 
 আপনি ডিভাইসে Family Link অ্যাপ ইনস্টল করে এই অ্যাকাউন্টের সেটিংস ম্যানেজ করতে পারেন।  আপনার ইমেল আইডিতে আমরা নির্দেশাবলী পাঠিয়েছি।</translation>
 <translation id="2040460856718599782">ওহো! আপনার যাচাইকরণের সময় কিছু ত্রুটি হয়েছিল৷ অনুগ্রহ করে আপনার লগ-ইন ক্রেডেনশিয়াল পরীক্ষা করে আবার চেষ্টা করুন৷</translation>
+<translation id="2042279886444479655">অ্যাক্টিভ প্রোফাইল</translation>
 <translation id="2044014337866019681">সেশন আনলক করতে, <ph name="ACCOUNT" /> যাচাই করছেন কিনা ভাল করে দেখে নিন।</translation>
 <translation id="2044023416777079300">মোডেম রেজিস্টার করা নেই</translation>
 <translation id="204497730941176055">Microsoft সার্টিফিকেট টেম্পলেট নাম</translation>
@@ -1338,6 +1340,7 @@
 <translation id="2395616325548404795">আপনার <ph name="DEVICE_TYPE" /> কে এন্টারপ্রাইজ পরিচালনার জন্য সফলভাবে নথিভুক্ত করা হয়েছে, কিন্তু এর সম্পদ এবং অবস্থানের তথ্য পাঠানো ব্যর্থ হয়েছে৷ অনুগ্রহ করে এই ডিভাইসের জন্য আপনার অ্যাডমিন কনসোল থেকে নিজে এই তথ্য লিখুন৷</translation>
 <translation id="2396387085693598316">আপনার অ্যাডমিন "<ph name="EXTENSION_NAME" />" ব্লক করে দিয়েছেন</translation>
 <translation id="2396783860772170191">৪ সংখ্যার পিন লিখুন (০০০০-৯৯৯৯)</translation>
+<translation id="2398546389094871088">ডিভাইস পাওয়ারওয়াশ করলে, আপনার ই-সিম প্রোফাইল সরে যাবে না। এই প্রোফাইলগুলি ম্যানুয়ালি সরিয়ে দিতে, <ph name="LINK_BEGIN" />মোবাইল সেটিংস<ph name="LINK_END" /> বিকল্পে যান।</translation>
 <translation id="2399699884460174994">বিজ্ঞপ্তি চালু করা হয়েছে</translation>
 <translation id="2399939490305346086">নিরাপত্তা কীয়ের সাইন-ইন ডেটা</translation>
 <translation id="2400664245143453337">খুব তাড়াতাড়ি আপডেট করা দরকার</translation>
@@ -1753,6 +1756,7 @@
 <translation id="2844809857160214557">প্রিন্ট করার কাজগুলি দেখুন ও ম্যানেজ করুন</translation>
 <translation id="2845382757467349449">সবসময় বুকমার্কস বার দেখান</translation>
 <translation id="284805635805850872">ক্ষতিকর সফ্টওয়্যার সরাবেন?</translation>
+<translation id="2849035674501872372">খুঁজে দেখা</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">মোছা যায়নি</translation>
 <translation id="2849936225196189499">জটিল</translation>
@@ -2064,6 +2068,7 @@
 <translation id="3189187154924005138">বড় কার্সর</translation>
 <translation id="3190558889382726167">পাসওয়ার্ড সংরক্ষিত</translation>
 <translation id="3192947282887913208">অডিও ফাইল</translation>
+<translation id="3197453258332670132">ডানদিকের বোতামে ক্লিক করলে বা অনেকক্ষণ প্রেস করে ধরে রাখলে, আপনার বেছে নেওয়া টেক্সটের ব্যাপারে তথ্য দেখা যায়</translation>
 <translation id="3199127022143353223">সার্ভারসমূহ</translation>
 <translation id="3201422919974259695">উপলভ্য ইউএসবি ডিভাইসগুলি এখানে দেখা যাবে।</translation>
 <translation id="3202131003361292969">পাথ</translation>
@@ -2085,6 +2090,7 @@
 <translation id="3223531857777746191">রিসেট করার বোতাম</translation>
 <translation id="3225084153129302039">ডিফল্ট রক্তবর্ণ অবতার</translation>
 <translation id="3225319735946384299">Code Signing</translation>
+<translation id="3226487301970807183">বাঁদিক বরাবর অ্যালাইন থাকা সাইড প্যানেল টগল করুন</translation>
 <translation id="3227137524299004712">মাইক্রোফোন</translation>
 <translation id="3233271424239923319">Linux অ্যাপ ও ফাইল ব্যাক-আপ করুন</translation>
 <translation id="3238192140106069382">কানেক্ট এবং যাচাই করা হচ্ছে</translation>
@@ -2354,6 +2360,7 @@
 <translation id="3515983984924808886">রিসেট করা কনফার্ম করতে আপনার নিরাপত্তা কী আবার টাচ করুন। পিন সহ নিরাপত্তা কীয়ে সেভ করা সব তথ্য মুছে যাবে।</translation>
 <translation id="3518985090088779359">স্বীকার করুন ও অবিরত রাখুন</translation>
 <translation id="3519564332031442870">প্রিন্ট সম্পর্কিত ব্যাকএন্ড পরিষেবা</translation>
+<translation id="3519938335881974273">এই হিসেবে পৃষ্ঠা সেভ করুন...</translation>
 <translation id="3521606918211282604">ডিস্ক সাইজ পরিবর্তন করুন</translation>
 <translation id="3522088408596898827">ডিস্কে জায়গা খুবই কম আছে। ডিস্কে জায়গা খালি করে আবার চেষ্টা করুন।</translation>
 <translation id="3524965460886318643">এক্সপোর্ট অ্যাক্টিভিটি</translation>
@@ -2377,6 +2384,7 @@
 <translation id="3550593477037018652">মোবাইল নেটওয়ার্ক ডিসকানেক্ট করুন</translation>
 <translation id="3550915441744863158">Chrome অটোমেটিক আপডেট হয় তাই আপনি সবসময় নবীনতম ভার্সনটি পান</translation>
 <translation id="3551320343578183772">ট্যাব বন্ধ করুন</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">'বেরিয়ে আসুন' থেকে সাফ করা হয়েছে</translation>
 <translation id="3554493885489666172">আপনার ডিভাইস <ph name="PROFILE_NAME" /> ম্যানেজ করে। এই ডিভাইসের যেকোনও প্রোফাইলের ডেটা অ্যাডমিনিস্ট্রেটর অ্যাক্সেস করতে পারবেন।</translation>
 <translation id="3555812735919707620">এক্সটেনশন সরান</translation>
@@ -2429,6 +2437,7 @@
 <translation id="3604713164406837697">ওয়ালপেপার পরিবর্তন করুন</translation>
 <translation id="3605780360466892872">বটনডাউন</translation>
 <translation id="3608576286259426129">ব্যবহারকারীর ছবির পূর্বদৃশ্য</translation>
+<translation id="3609277884604412258">কুইক সার্চ</translation>
 <translation id="3610369246614755442">ডকিং স্টেশনের ফ্যান সার্ভিসিং করতে হবে</translation>
 <translation id="361106536627977100">ফ্ল্যাশ ডেটা</translation>
 <translation id="3611655097742243705">অ্যাপ ডাউনলোড করতে Play Store দেখুন</translation>
@@ -3372,6 +3381,7 @@
 <translation id="4636682061478263818">Drive ফাইল</translation>
 <translation id="4636930964841734540">তথ্য</translation>
 <translation id="4637083375689622795">আরও বিকল্প, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">আবার ক্যামেরা ব্যবহার করুন</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{টেক্সট}one{#টি টেক্সট}other{#টি টেক্সট}}</translation>
 <translation id="4638930039313743000">ADB ডিবাগিং চালু করতে চান</translation>
 <translation id="4641539339823703554">Chrome সিস্টেমের সময় সেট করতে পারেনি। অনুগ্রহ করে নিচে সময় চেক করুন এবং প্রয়োজনে এটি সংশোধন করুন।</translation>
@@ -4122,6 +4132,7 @@
 <translation id="5499313591153584299">এই ফাইলটি আপনার কম্পিউটারের জন্য ক্ষতিকারক হতে পারে৷</translation>
 <translation id="5499453227627332024">Linux কন্টেনারের আপগ্রেড ভার্সন এখন উপলভ্য। 'সেটিংস' অ্যাপ থেকে পরে এটি আপগ্রেড করে নিতে পারবেন।</translation>
 <translation id="5500709606820808700">আজ নিরাপত্তা সংক্রান্ত পরীক্ষা চালানো হয়েছে</translation>
+<translation id="5501322521654567960">বাঁদিক বরাবর অ্যালাইন করা সাইড প্যানেল</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> থেকে <ph name="ATTACHMENTS" /> পাওয়া যায়নি}one{<ph name="DEVICE_NAME" /> থেকে <ph name="ATTACHMENTS" /> পাওয়া যায়নি}other{<ph name="DEVICE_NAME" /> থেকে <ph name="ATTACHMENTS" /> পাওয়া যায়নি}}</translation>
 <translation id="5502500733115278303">Firefox থেকে আমদানি করা</translation>
 <translation id="5502915260472117187">বাচ্চার জন্য ডিভাইস সেট আপ করুন</translation>
@@ -5334,6 +5345,7 @@
 <translation id="6856348640027512653">ভার্চুয়াল রিয়েলিটি ডিভাইস অথবা ডেটা ব্যবহার করার অনুমতি নেই</translation>
 <translation id="6856459657722366306"><ph name="NETWORK_COUNT" />টির মধ্যে <ph name="NETWORK_INDEX" /> নম্বর নেটওয়ার্ক, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, সিগন্যাল ক্ষমতা <ph name="SIGNAL_STRENGTH" />%, বিবরণ</translation>
 <translation id="6856623341093082836">আপনার টাচস্ক্রীনের যথার্থতা সেট-আপ ও অ্যাডজাস্ট করুন</translation>
+<translation id="6857145580237920905">পাওয়ারওয়াশের আগে ই-সিম প্রোফাইল সরিয়ে দিন</translation>
 <translation id="6857699260879628349">কনফিগারেশনের তথ্য পান</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> সে</translation>
 <translation id="6860097299815761905">প্রক্সি সেটিংস...</translation>
@@ -5915,6 +5927,7 @@
 <translation id="7506541170099744506">আপনার <ph name="DEVICE_TYPE" /> এন্টারপ্রাইজ পরিচালনার জন্য সফলভাবে নথিভুক্ত হয়েছে।</translation>
 <translation id="7507207699631365376">এই পরিষেবা প্রদানকারীর <ph name="BEGIN_LINK" />গোপনীয়তা নীতি<ph name="END_LINK" /> দেখুন</translation>
 <translation id="7507930499305566459">স্থিতি প্রতিক্রিয়া সার্টিফিকেট</translation>
+<translation id="7509246181739783082">আপনার পরিচয় যাচাই করুন</translation>
 <translation id="7513029293694390567">সঞ্চিত সার্টিফিকেট ব্যবহার করে ওয়েবসাইটে অটোমেটিক সাইন-ইন করুন। এটি বন্ধ থাকলে, প্রতিবারই একটি ওয়েবসাইটে সাইন-ইনের সময় আপনাকে যাচাইকরণের জন্য বলা হবে।</translation>
 <translation id="7514239104543605883">আপনার ডিভাইসে কপি করুন</translation>
 <translation id="7514365320538308">ডাউনলোড করুন</translation>
@@ -6446,7 +6459,6 @@
 <translation id="8061091456562007989">এটিকে আগের অবস্থায় ফিরিয়ে নিয়ে যান</translation>
 <translation id="8061991877177392872">মনে হচ্ছে আপনি অন্য কোনও ডিভাইসে Assistant-এর সাথে আগেই Voice Match সেট আপ করে ফেলেছেন। আগের এই সব রেকর্ডিং এই ডিভাইসে ভয়েস মডেল তৈরি করার জন্য ব্যবহার করা হয়েছে।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{১ শিট কাগজ}one{{COUNT} শিট কাগজ}other{{COUNT} শিট কাগজ}}</translation>
-<translation id="8062879968880283306">আপনার ডিভাইসের ক্যামেরা ব্যবহার করে QR কোড স্ক্যান করুন অথবা আপনার পরিষেবা প্রদানকারীর কাছ থেকে পাওয়া অ্যাক্টিভেশন কোডটি লিখুন।</translation>
 <translation id="8063235345342641131">ডিফল্ট সবুজ অবতার</translation>
 <translation id="8063535366119089408">ফাইল দেখুন</translation>
 <translation id="8064279191081105977">গ্রুপ <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6866,7 +6878,6 @@
 <translation id="8551588720239073785">তারিখ ও সময়ের সেটিংস</translation>
 <translation id="8553342806078037065">অন্যান্য ব্যক্তিদের পরিচালনা করুন</translation>
 <translation id="8554899698005018844">কোনও ভাষা নেই</translation>
-<translation id="8555195867496021627">কোনও ই-সিম (eSIM) প্রোফাইল উপলভ্য নেই। নতুন প্রোফাইল <ph name="BEGIN_LINK" />এখানে<ph name="END_LINK" /> ডাউনলোড করুন।</translation>
 <translation id="8557022314818157177">আপনার আঙ্গুলের ছাপ ক্যাপচার না করা পর্যন্ত 'নিরাপত্তা কী'-তে টাচ করতে থাকুন</translation>
 <translation id="8557930019681227453">ম্যানিফেস্ট</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{সবকটি &amp;নতুন উইন্ডোতে খুলুন}=1{&amp;নতুন উইন্ডোতে খুলুন}one{সবকটি ({COUNT}টি) &amp;নতুন উইন্ডোতে খুলুন}other{সবকটি ({COUNT}টি) &amp;নতুন উইন্ডোতে খুলুন}}</translation>
@@ -7046,7 +7057,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" />টির মধ্যে <ph name="NETWORK_INDEX" /> নম্বর নেটওয়ার্ক, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, সিগন্যাল ক্ষমতা <ph name="SIGNAL_STRENGTH" />%, আপনার অ্যাডমিনিস্ট্রেটর ম্যানেজ করে, কানেক্ট করুন</translation>
 <translation id="8746654918629346731">আপনি "<ph name="EXTENSION_NAME" />"-এর জন্য ইতিমধ্যেই অনুরোধ করেছেন</translation>
 <translation id="874689135111202667">{0,plural, =1{এই সাইটে একটি ফাইল আপলোড করবেন?}one{এই সাইটে #টি ফাইল আপলোড করবেন?}other{এই সাইটে #টি ফাইল আপলোড করবেন?}}</translation>
-<translation id="8749556627204742888">আপনি নেটওয়ার্কটি এই ডিভাইসের অন্য ব্যবহাকারীদের সাথে শেয়ার করছেন।</translation>
 <translation id="8749805710397399240">আপনার স্ক্রিন কাস্ট করা যাচ্ছে না। 'সিস্টেম অভিরুচি' বিকল্পে 'স্ক্রিন রেকর্ডিং' অনুমতি চেক করুন।</translation>
 <translation id="8749863574775030885">একটি অজানা বিক্রেতা থেকে USB ডিভাইস অ্যাক্সেস করুন</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> সিরিয়াল পোর্টে কানেক্ট করতে চাইছে</translation>
@@ -7109,7 +7119,6 @@
 <translation id="8808744862003883508">Chrome-এ ইনস্টল করা সব এক্সটেনশন আপনি এই পৃষ্ঠাতে দেখতে পাবেন।</translation>
 <translation id="8809147117840417135">হালকা নীলাভ সবুজ</translation>
 <translation id="8811862054141704416">Crostini-তে মাইক্রোফোনের অ্যাক্সেস</translation>
-<translation id="8812552797690463522">নেটওয়ার্কটি আপনার সাথে শেয়ার করা হয়েছে।</translation>
 <translation id="8812593354822910461">এছাড়াও ব্রাউজিং ডেটা (<ph name="URL" />) মুছে দিলে আপনি <ph name="DOMAIN" /> থেকে সাইন-আউট হয়ে যাবেন। <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">আমাকে পরে মনে করানো হোক</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" />এ সাইন-ইন করা যাচ্ছে না</translation>
@@ -7321,7 +7330,6 @@
 <translation id="9021662811137657072">ভাইরাস শনাক্ত হয়েছে</translation>
 <translation id="902236149563113779">'এ আর (AR)' ফিচারের জন্য সাইট সাধারণত আপনার ক্যামেরার পজিশন, যেমন গেমস অথবা হেড-আপ ডাইরেকশন ট্র্যাক করে</translation>
 <translation id="9022847679183471841">এই অ্যাকাউন্টটি ইতিমধ্যে এই কম্পিউটারে <ph name="AVATAR_NAME" /> দ্বারা ব্যবহৃত হচ্ছে।</translation>
-<translation id="9023009238991294202">এই ডিভাইসের অন্যান্য ব্যবহারকারীরা এই নেটওয়ার্ক ব্যবহার করতে পারেন।</translation>
 <translation id="9023015617655685412">এই ট্যাব বুকমার্ক করুন...</translation>
 <translation id="9023909777842748145">এই ফিচারটি বন্ধ করে দিলেও, সিস্টেম আপডেট এবং নিরাপত্তার মতো প্রয়োজনীয় পরিষেবার জন্য গুরুত্বপূ্র্ণ তথ্য পাঠানোর আপনার ডিভাইসের যে ক্ষমতা সেটি প্রভাবিত হয় না।</translation>
 <translation id="9024127637873500333">&amp;নতুন ট্যাবে খুলুন</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 0bfb657..4e2cd44 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -360,7 +360,6 @@
 <translation id="138784436342154190">Vratiti zadanu stranicu za pokretanje?</translation>
 <translation id="1388253969141979417">Dozvoljeno je korištenje vašeg mikrofona</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> će se ponovo pokrenuti kada se završe ažuriranja.</translation>
-<translation id="138900021244932468">Nijedan profil nije otkriven. Da postavite novu mrežu, skenirajte QR kôd pomoću kamere uređaja ili unesite kôd za aktivaciju koji pruža vaš mobilni operater.</translation>
 <translation id="139013308650923562">Dozvoljeno je koristiti fontove instalirane na uređaju</translation>
 <translation id="1390548061267426325">Otvori kao običnu karticu</translation>
 <translation id="1393283411312835250">Sunce i oblaci</translation>
@@ -5927,6 +5926,7 @@
 <translation id="7506541170099744506">Vaš uređaj <ph name="DEVICE_TYPE" /> je uspješno prijavljen za upravljanje koje vrši preduzeće.</translation>
 <translation id="7507207699631365376">Pogledajte <ph name="BEGIN_LINK" />pravila privatnosti<ph name="END_LINK" /> pružaoca usluga</translation>
 <translation id="7507930499305566459">Potvrda automatskog odgovora statusa</translation>
+<translation id="7509246181739783082">Potvrdite identitet</translation>
 <translation id="7513029293694390567">Automatsko prijavljivanje na web lokacije korištenjem pohranjenih akreditiva. Ako onemogućite, od vas će se tražiti potvrda prilikom svake prijave na web lokaciju.</translation>
 <translation id="7514239104543605883">Kopirajte na svoj uređaj</translation>
 <translation id="7514365320538308">Preuzmi</translation>
@@ -6459,7 +6459,6 @@
 <translation id="8061091456562007989">Promijeni na prethodno</translation>
 <translation id="8061991877177392872">Izgleda da ste već postavili Voice Match s Asistentom na drugom uređaju. Ti prethodni snimci su korišteni za izradu modela glasa na ovom uređaju.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 list papira}one{{COUNT} list papira}few{{COUNT} lista papira}other{{COUNT} listova papira}}</translation>
-<translation id="8062879968880283306">Skenirajte QR kôd kamerom uređaja ili unesite kôd za aktivaciju koji pruža vaš mobilni operater.</translation>
 <translation id="8063235345342641131">Zadani zeleni avatar</translation>
 <translation id="8063535366119089408">Pregledaj fajl</translation>
 <translation id="8064279191081105977">Grupa <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6880,7 +6879,6 @@
 <translation id="8551588720239073785">Postavke datuma i vremena</translation>
 <translation id="8553342806078037065">Upravljaj drugim osobama</translation>
 <translation id="8554899698005018844">Nema jezika</translation>
-<translation id="8555195867496021627">Nije dostupan nijedan eSIM profil. Preuzmite novi profil <ph name="BEGIN_LINK" />ovdje.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Nastavite dodirivati sigurnosni ključ dok se otisak prsta ne snimi</translation>
 <translation id="8557930019681227453">Deklaracija</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Otvori sve u &amp;novom prozoru}=1{Otvori u &amp;novom prozoru}one{Otvori sve ({COUNT}) u &amp;novom prozoru}few{Otvori sve ({COUNT}) u &amp;novom prozoru}other{Otvori sve ({COUNT}) u &amp;novom prozoru}}</translation>
@@ -7060,7 +7058,6 @@
 <translation id="8743164338060742337">Mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> jačina signala <ph name="SIGNAL_STRENGTH" />%, upravlja vaš administrator, poveži</translation>
 <translation id="8746654918629346731">Već ste zatražili ekstenziju "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Otpremiti 1 fajl na ovu web lokaciju?}one{Otpremiti # fajl na ovu web lokaciju?}few{Otpremiti # fajla na ovu web lokaciju?}other{Otpremiti # fajlova na ovu web lokaciju?}}</translation>
-<translation id="8749556627204742888">Ovu mrežu dijelite s drugim korisnicima ovog uređaja.</translation>
 <translation id="8749805710397399240">Nije moguće emitirati vaš ekran. Provjerite odobrenje za Snimač ekrana u Postavkama sistema.</translation>
 <translation id="8749863574775030885">Pristupi USB uređajima od nepoznatog dobavljača</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> se želi povezati na serijski priključak</translation>
@@ -7124,7 +7121,6 @@
 <translation id="8808744862003883508">Na ovoj stranici možete vidjeti sve ekstenzije koje su instalirane na Chromeu.</translation>
 <translation id="8809147117840417135">Svijetlotirkizna</translation>
 <translation id="8811862054141704416">Pristup mikrofonu na Crostiniju</translation>
-<translation id="8812552797690463522">Ova mreža se dijeli s vama.</translation>
 <translation id="8812593354822910461">Također obrišite podatke pregledanja (<ph name="URL" />), što vas može odjaviti s domene <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Podsjeti me kasnije</translation>
 <translation id="8813698869395535039">Nije se moguće prijaviti na <ph name="USERNAME" /></translation>
@@ -7336,7 +7332,6 @@
 <translation id="9021662811137657072">Otkriven je virus</translation>
 <translation id="902236149563113779">Web lokacije obično prate položaj kamere radi funkcija AR-a, kao što su igre ili smjernice u visini očiju</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> već koristi ovaj račun na ovom računaru.</translation>
-<translation id="9023009238991294202">Drugi korisnici ovog uređaja mogu upotrebljavati ovu mrežu.</translation>
 <translation id="9023015617655685412">Označi ovu karticu…</translation>
 <translation id="9023909777842748145">Ako isključite ovu funkciju, uređaj će i dalje moći slati informacije potrebne za osnovne usluge kao što su ažuriranja sistema i sigurnost.</translation>
 <translation id="9024127637873500333">&amp;Otvaranje u novoj kartici</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 782d174d..689935b 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">Vols restaurar la pàgina d'arrencada predeterminada?</translation>
 <translation id="1388253969141979417">Amb permís per utilitzar el micròfon</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> es reiniciarà quan les actualitzacions s'hagin completat.</translation>
-<translation id="138900021244932468">No s'ha detectat cap perfil. Per configurar una xarxa nova, escaneja el codi QR amb la càmera del dispositiu o introdueix el codi d'activació que t'ha proporcionat l'operador.</translation>
 <translation id="139013308650923562">Amb permís per utilitzar els tipus de lletra instal·lats al teu dispositiu</translation>
 <translation id="1390548061267426325">Obre com a pestanya normal</translation>
 <translation id="1393283411312835250">Sol i núvols</translation>
@@ -5913,6 +5912,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> s'ha inscrit correctament a la gestió empresarial.</translation>
 <translation id="7507207699631365376">Consulta la <ph name="BEGIN_LINK" />política de privadesa<ph name="END_LINK" /> d'aquest proveïdor</translation>
 <translation id="7507930499305566459">Certificat de resposta d'estat</translation>
+<translation id="7509246181739783082">Verifica la teva identitat</translation>
 <translation id="7513029293694390567">Inicia la sessió automàticament als llocs web amb les credencials emmagatzemades. Si la funció està desactivada, se't demanarà sempre que confirmis les credencials per iniciar la sessió en un lloc web.</translation>
 <translation id="7514239104543605883">Copia-ho al dispositiu</translation>
 <translation id="7514365320538308">Baixa</translation>
@@ -6445,7 +6445,6 @@
 <translation id="8061091456562007989">Torna-ho a canviar</translation>
 <translation id="8061991877177392872">Sembla que ja has configurat Voice Match amb l'Assistent en un altre dispositiu. Aquestes gravacions anteriors s'han utilitzat per crear un model de veu en aquest dispositiu.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 full de paper}other{{COUNT} fulls de paper}}</translation>
-<translation id="8062879968880283306">Escaneja el codi QR amb la càmera del dispositiu o introdueix el codi d'activació que t'ha proporcionat l'operador.</translation>
 <translation id="8063235345342641131">Avatar verd predeterminat</translation>
 <translation id="8063535366119089408">Mostra el fitxer</translation>
 <translation id="8064279191081105977">Grup <ph name="GROUP_NAME" />; <ph name="GROUP_CONTENTS" />; <ph name="COLLAPSED_STATE" /></translation>
@@ -6866,7 +6865,6 @@
 <translation id="8551588720239073785">Configuració de data i hora</translation>
 <translation id="8553342806078037065">Gestiona altres usuaris</translation>
 <translation id="8554899698005018844">Cap idioma</translation>
-<translation id="8555195867496021627">No hi ha cap perfil d'eSIM disponible. <ph name="BEGIN_LINK" />Baixa'n un de nou<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Continua tocant la clau de seguretat fins que es capturi l'empremta digital</translation>
 <translation id="8557930019681227453">Fitxer de manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Obre-les totes en una finestra &amp;nova}=1{Obre en una finestra &amp;nova}other{Obre-les totes ({COUNT}) en una finestra &amp;nova}}</translation>
@@ -7046,7 +7044,6 @@
 <translation id="8743164338060742337">Xarxa <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SIGNAL_STRENGTH" />% d'intensitat del senyal del proveïdor <ph name="NETWORK_PROVIDER_NAME" />, gestionada per l'administrador, connecta</translation>
 <translation id="8746654918629346731">Ja has sol·licitat "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Vols penjar 1 fitxer a aquest lloc web?}other{Vols penjar # fitxers a aquest lloc web?}}</translation>
-<translation id="8749556627204742888">Estàs compartint aquesta xarxa amb altres usuaris d'aquest dispositiu.</translation>
 <translation id="8749805710397399240">No es pot emetre la teva pantalla. Comprova els permisos de gravació de pantalla a les preferències del sistema.</translation>
 <translation id="8749863574775030885">Accedir a dispositius USB d'un proveïdor desconegut</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> vol connectar-se a un port en sèrie</translation>
@@ -7108,7 +7105,6 @@
 <translation id="8808744862003883508">En aquesta pàgina pots veure totes les extensions instal·lades a Chrome.</translation>
 <translation id="8809147117840417135">Verd blavós clar</translation>
 <translation id="8811862054141704416">Accés al micròfon de Crostini</translation>
-<translation id="8812552797690463522">Aquesta xarxa està compartida amb tu.</translation>
 <translation id="8812593354822910461">Esborra també les dades de navegació (<ph name="URL" />). En fer-ho, se't tancarà la sessió del domini <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Recorda-m'ho més tard</translation>
 <translation id="8813698869395535039">No es pot iniciar la sessió a <ph name="USERNAME" /></translation>
@@ -7320,7 +7316,6 @@
 <translation id="9021662811137657072">S'ha detectat un virus</translation>
 <translation id="902236149563113779">Els llocs web solen fer un seguiment de la posició de la càmera per a funcions de realitat augmentada, com ara jocs o indicacions en pantalles de visualització frontal</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ja utilitza aquest compte en aquest equip.</translation>
-<translation id="9023009238991294202">Els altres usuaris d'aquest dispositiu poden utilitzar aquesta xarxa.</translation>
 <translation id="9023015617655685412">Afegeix aquesta pestanya a les adreces d'interès...</translation>
 <translation id="9023909777842748145">Si aquesta funció es desactiva, no afectarà la capacitat del dispositiu d'enviar la informació necessària per rebre serveis bàsics, com ara seguretat i actualitzacions del sistema.</translation>
 <translation id="9024127637873500333">&amp;Obre en una pestanya nova</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 14a4a03..112f03e 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Obnovit výchozí počáteční stránku?</translation>
 <translation id="1388253969141979417">Povolení používat váš mikrofon</translation>
 <translation id="1388728792929436380">Po dokončení aktualizací se <ph name="DEVICE_TYPE" /> restartuje.</translation>
-<translation id="138900021244932468">Nebyly objeveny žádné profily. Pokud chcete nastavit novou síť, pomocí kamery zařízení naskenujte QR kód nebo zadejte aktivační kód dodaný operátorem.</translation>
 <translation id="139013308650923562">Mohou používat písma nainstalovaná ve vašem zařízení</translation>
 <translation id="1390548061267426325">Otevřít jako běžnou kartu</translation>
 <translation id="1393283411312835250">Slunce a mraky</translation>
@@ -515,6 +514,7 @@
 <translation id="1545775234664667895">Nainstalován motiv <ph name="THEME_NAME" /></translation>
 <translation id="1546280085599573572">Toto rozšíření změnilo stránku, která se zobrazí po kliknutí na tlačítko Domovská stránka.</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> chce nainstalovat <ph name="EXTENSION_TYPE" />, které může:</translation>
+<translation id="1547808936554660006">Vím, že nainstalované profily eSIM se neodstraní resetováním do továrního nastavení</translation>
 <translation id="1549275686094429035">Povoleno ARC</translation>
 <translation id="1549788673239553762">Aplikace <ph name="APP_NAME" /> chce získat přístup ke svazku <ph name="VOLUME_NAME" />. Bude moci upravit nebo smazat vaše soubory.</translation>
 <translation id="1552301827267621511">Rozšíření <ph name="EXTENSION_NAME" /> změnilo poskytovatele vyhledávání na <ph name="SEARCH_PROVIDER_DOMAIN" /></translation>
@@ -551,6 +551,7 @@
 <translation id="1588438908519853928">Normální</translation>
 <translation id="158849752021629804">Je potřeba domácí síť</translation>
 <translation id="1588870296199743671">Otevřít odkaz pomocí...</translation>
+<translation id="1588919647604819635">Kliknutí na kartu pravým tlačítkem</translation>
 <translation id="1589055389569595240">Zobrazit pravopis a gramatiku</translation>
 <translation id="1591679663873027990">Udělte nástroji Parallels Desktop oprávnění k přístupu k zařízením USB. Po odebrání si Parallels Desktop nebude zařízení USB pamatovat.</translation>
 <translation id="1592074621872221573">Web <ph name="MANAGER" /> deaktivoval ladění ADB, a vaše zařízení <ph name="DEVICE_TYPE" /> proto bude resetováno. Před restartováním zálohujte soubory.</translation>
@@ -985,6 +986,7 @@
 
 Chcete-li spravovat nastavení tohoto účtu, nainstalujte si do zařízení aplikaci Family Link.  Pokyny jsme vám odeslali e-mailem.</translation>
 <translation id="2040460856718599782">Jejda! Při ověřování vaší totožnosti došlo k chybě. Zkontrolujte prosím identifikační údaje a zkuste to znovu.</translation>
+<translation id="2042279886444479655">Aktivní profily</translation>
 <translation id="2044014337866019681">Pokud tuto relaci chcete odemknout, zkontrolujte, zda ověřujete účet <ph name="ACCOUNT" />.</translation>
 <translation id="2044023416777079300">Modem není zaregistrován</translation>
 <translation id="204497730941176055">Název šablony certifikátu Microsoft</translation>
@@ -1323,6 +1325,7 @@
 <translation id="2395616325548404795">Vaše zařízení <ph name="DEVICE_TYPE" /> bylo úspěšně zaregistrováno do podnikové správy, ale neodeslalo informace o položce a umístění. Zadejte prosím tyto informace pro toto zařízení ručně z administrátorské konzole.</translation>
 <translation id="2396387085693598316">Administrátor rozšíření <ph name="EXTENSION_NAME" /> zablokoval</translation>
 <translation id="2396783860772170191">Zadejte čtyřmístný kód PIN (0000–9999)</translation>
+<translation id="2398546389094871088">Resetování zařízení do továrního nastavení neodstraní profily eSIM karty. Profily musíte odstranit ručně v <ph name="LINK_BEGIN" />nastavení pro mobilní zařízení<ph name="LINK_END" />.</translation>
 <translation id="2399699884460174994">Oznámení jsou zapnutá</translation>
 <translation id="2399939490305346086">Přihlašovací údaje na bezpečnostním klíči</translation>
 <translation id="2400664245143453337">Je vyžadována okamžitá aktualizace</translation>
@@ -1738,6 +1741,7 @@
 <translation id="2844809857160214557">Zobrazení a správa tiskových úloh</translation>
 <translation id="2845382757467349449">&amp;Vždy zobrazovat lištu záložek</translation>
 <translation id="284805635805850872">Odstranit škodlivý software?</translation>
+<translation id="2849035674501872372">Podívat se nahoru</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">Vyčištění se nezdařilo</translation>
 <translation id="2849936225196189499">Kritické</translation>
@@ -2048,6 +2052,7 @@
 <translation id="3189187154924005138">Velký kurzor</translation>
 <translation id="3190558889382726167">Heslo uloženo</translation>
 <translation id="3192947282887913208">Zvukové soubory</translation>
+<translation id="3197453258332670132">Zobrazit kliknutím pravým tlačítkem nebo dlouhým stisknutím informace o vybraném textu</translation>
 <translation id="3199127022143353223">Servery</translation>
 <translation id="3201422919974259695">Zde se budou zobrazovat dostupná zařízení USB.</translation>
 <translation id="3202131003361292969">Cesta</translation>
@@ -2069,6 +2074,7 @@
 <translation id="3223531857777746191">Tlačítko Resetovat</translation>
 <translation id="3225084153129302039">Výchozí nachový avatar</translation>
 <translation id="3225319735946384299">Podepisování kódu</translation>
+<translation id="3226487301970807183">Přepnout panel na levé straně</translation>
 <translation id="3227137524299004712">Mikrofon</translation>
 <translation id="3233271424239923319">Zálohovat aplikace a soubory systému Linux</translation>
 <translation id="3238192140106069382">Připojování a ověřování</translation>
@@ -2338,6 +2344,7 @@
 <translation id="3515983984924808886">Potvrďte reset tím, že se znovu dotknete bezpečnostního klíče. Všechny informace uložené na bezpečnostním klíči, včetně kódu PIN, se vymažou.</translation>
 <translation id="3518985090088779359">PŘIJMOUT A POKRAČOVAT</translation>
 <translation id="3519564332031442870">Tisková back-endová služba</translation>
+<translation id="3519938335881974273">Uložit stránku jako…</translation>
 <translation id="3521606918211282604">Změnit velikost disku</translation>
 <translation id="3522088408596898827">Na disku je kriticky málo místa. Uvolněte místo a zkuste to znovu.</translation>
 <translation id="3524965460886318643">Exportovat aktivity</translation>
@@ -2361,6 +2368,7 @@
 <translation id="3550593477037018652">Odpojit mobilní síť</translation>
 <translation id="3550915441744863158">Chrome se automaticky aktualizuje, abyste měli vždy nejnovější verzi</translation>
 <translation id="3551320343578183772">Zavřít kartu</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">Při ukončení se vymaže</translation>
 <translation id="3554493885489666172">Toto zařízení spravuje organizace <ph name="PROFILE_NAME" />. K datům ve všech profilech v tomto zařízení mají přístup administrátoři.</translation>
 <translation id="3555812735919707620">Odstranit rozšíření</translation>
@@ -2413,6 +2421,7 @@
 <translation id="3604713164406837697">Změnit tapetu</translation>
 <translation id="3605780360466892872">Manažer</translation>
 <translation id="3608576286259426129">Náhled obrázku uživatele</translation>
+<translation id="3609277884604412258">Rychlé vyhledávání</translation>
 <translation id="3610369246614755442">Větrák doku vyžaduje servis</translation>
 <translation id="361106536627977100">Data Flash</translation>
 <translation id="3611655097742243705">Navštivte Obchod Play, kde najdete další aplikace</translation>
@@ -3355,6 +3364,7 @@
 <translation id="4636682061478263818">Soubory na Disku</translation>
 <translation id="4636930964841734540">Informace</translation>
 <translation id="4637083375689622795">Další akce, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">Použít fotoaparát znovu</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{Text}few{# texty}many{# textu}other{# textů}}</translation>
 <translation id="4638930039313743000">Zapnout ladění ADB</translation>
 <translation id="4641539339823703554">Chromu se nepodařilo nastavit systémový čas. Zkontrolujte čas níže a v případě potřeby jej opravte.</translation>
@@ -4105,6 +4115,7 @@
 <translation id="5499313591153584299">Tento soubor může poškodit váš počítač.</translation>
 <translation id="5499453227627332024">K dispozici je upgrade kontejneru Linuxu. Upgrade také můžete spustit později v Nastavení.</translation>
 <translation id="5500709606820808700">Bezpečnostní kontrola proběhla dnes</translation>
+<translation id="5501322521654567960">Panel na levé straně</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{Přijetí dat (<ph name="ATTACHMENTS" />) ze zařízení <ph name="DEVICE_NAME" /> se nezdařilo}few{Přijetí dat (<ph name="ATTACHMENTS" />) ze zařízení <ph name="DEVICE_NAME" /> se nezdařilo}many{Přijetí dat (<ph name="ATTACHMENTS" />) ze zařízení <ph name="DEVICE_NAME" /> se nezdařilo}other{Přijetí dat (<ph name="ATTACHMENTS" />) ze zařízení <ph name="DEVICE_NAME" /> se nezdařilo}}</translation>
 <translation id="5502500733115278303">Importováno z Firefoxu</translation>
 <translation id="5502915260472117187">Dítě</translation>
@@ -5315,6 +5326,7 @@
 <translation id="6856348640027512653">Zákaz používat zařízení a data pro virtuální realitu</translation>
 <translation id="6856459657722366306">Síť <ph name="NETWORK_INDEX" /> z <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, síla signálu: <ph name="SIGNAL_STRENGTH" /> %, podrobnosti</translation>
 <translation id="6856623341093082836">Nastavit a upravit přesnost dotykové obrazovky</translation>
+<translation id="6857145580237920905">Odstraňte profily eSIM karty před resetováním do továrního nastavení</translation>
 <translation id="6857699260879628349">Zobrazit konfigurační údaje</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> s</translation>
 <translation id="6860097299815761905">Nastavení proxy serveru...</translation>
@@ -5895,6 +5907,7 @@
 <translation id="7506541170099744506">Vaše zařízení <ph name="DEVICE_TYPE" /> bylo úspěšně zaregistrováno do podnikové správy.</translation>
 <translation id="7507207699631365376">Zobrazit <ph name="BEGIN_LINK" />zásady ochrany soukromí<ph name="END_LINK" /> tohoto poskytovatele</translation>
 <translation id="7507930499305566459">Certifikát stavového odpovídače</translation>
+<translation id="7509246181739783082">Ověření identity</translation>
 <translation id="7513029293694390567">Přihlašovat se na weby automaticky pomocí uložených identifikačních údajů. Když je tato funkce vypnutá, budete před každým přihlášením na web požádáni o potvrzení.</translation>
 <translation id="7514239104543605883">Kopírovat do zařízení</translation>
 <translation id="7514365320538308">Stáhnout</translation>
@@ -6427,7 +6440,6 @@
 <translation id="8061091456562007989">Vrátit změnu</translation>
 <translation id="8061991877177392872">Funkci rozpoznání hlasu Voice Match jste u Asistenta už zřejmě nastavili v jiném zařízení. Dřívější nahrávky byly použity k vytvoření hlasového modelu v tomto zařízení.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 list papíru}few{{COUNT} listy papíru}many{{COUNT} listu papíru}other{{COUNT} listů papíru}}</translation>
-<translation id="8062879968880283306">Pomocí fotoaparátu zařízení naskenujte QR kód nebo zadejte aktivační kód, který vám poskytl operátor.</translation>
 <translation id="8063235345342641131">Výchozí zelený avatar</translation>
 <translation id="8063535366119089408">Zobrazit soubor</translation>
 <translation id="8064279191081105977">Skupina <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6843,7 +6855,6 @@
 <translation id="8551588720239073785">Nastavení data a času</translation>
 <translation id="8553342806078037065">Spravovat ostatní uživatele</translation>
 <translation id="8554899698005018844">Žádný jazyk</translation>
-<translation id="8555195867496021627">Nejsou k dispozici žádné profily eSIM. Nový profil si můžete stáhnout <ph name="BEGIN_LINK" />zde<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Dotýkejte se bezpečnostního klíče, dokud se nesejme otisk prstu.</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Otevřít vše v &amp;novém okně}=1{Otevřít v &amp;novém okně}few{Otevřít vše ({COUNT}) v &amp;novém okně}many{Otevřít vše ({COUNT}) v &amp;novém okně}other{Otevřít vše ({COUNT}) v &amp;novém okně}}</translation>
@@ -7023,7 +7034,6 @@
 <translation id="8743164338060742337">Síť <ph name="NETWORK_INDEX" /> z <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, síla signálu: <ph name="SIGNAL_STRENGTH" /> %, spravováno administrátorem, připojit</translation>
 <translation id="8746654918629346731">O rozšíření <ph name="EXTENSION_NAME" /> jste již požádali</translation>
 <translation id="874689135111202667">{0,plural, =1{Nahrát jeden soubor na tento web?}few{Nahrát # soubory na tento web?}many{Nahrát # souboru na tento web?}other{Nahrát # souborů na tento web?}}</translation>
-<translation id="8749556627204742888">Tuto síť sdílet s ostatními uživateli tohoto zařízení.</translation>
 <translation id="8749805710397399240">Stránku nelze odeslat. Zkontrolujte oprávnění Záznam obrazovky v Předvolbách systému.</translation>
 <translation id="8749863574775030885">Přístup k zařízením USB od neznámého dodavatele</translation>
 <translation id="8750155211039279868">Web <ph name="ORIGIN" /> se chce připojit k sériovému portu</translation>
@@ -7087,7 +7097,6 @@
 <translation id="8808744862003883508">Na této stránce naleznete všechna rozšíření nainstalovaná v Chromu.</translation>
 <translation id="8809147117840417135">Světle tyrkysová</translation>
 <translation id="8811862054141704416">Přístup Crostini k mikrofonu</translation>
-<translation id="8812552797690463522">Tato síť je s vámi sdílena.</translation>
 <translation id="8812593354822910461">Také vymazat údaje o prohlížení (<ph name="URL" />), což může vést k odhlášení z domény <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Připomenout později</translation>
 <translation id="8813698869395535039">Přihlášení k účtu <ph name="USERNAME" /> se nezdařilo</translation>
@@ -7299,7 +7308,6 @@
 <translation id="9021662811137657072">Byl nalezen virus</translation>
 <translation id="902236149563113779">Weby obvykle sledují pozici kamery pro účely funkcí rozšířené reality, jako jsou hry nebo průhledové displeje</translation>
 <translation id="9022847679183471841">Tento účet již v tomto počítači používá uživatel <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Tuto síť mohou používat ostatní uživatelé tohoto zařízení.</translation>
 <translation id="9023015617655685412">Přidat tuto kartu do záložek...</translation>
 <translation id="9023909777842748145">Vypnutí této funkce nemá vliv na schopnost zařízení odesílat informace, které potřebuje pro základní služby, jako jsou aktualizace systému a zabezpečení.</translation>
 <translation id="9024127637873500333">&amp;Otevřít v nové kartě</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index eaf88af..c0819a0 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">Vil du gendanne standardopstartssiden?</translation>
 <translation id="1388253969141979417">Har tilladelse til at bruge din mikrofon</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> genstartes, når opdateringerne er fuldført.</translation>
-<translation id="138900021244932468">Der blev ikke fundet nogen profiler. Du kan konfigurere et nyt netværk ved at scanne QR-koden med kameraet på enheden eller ved at angive den aktiveringskode, du fik af dit mobilselskab.</translation>
 <translation id="139013308650923562">Har tilladelse til at bruge de skrifttyper, der er installeret på din enhed</translation>
 <translation id="1390548061267426325">Åbn som almindelig fane</translation>
 <translation id="1393283411312835250">Sol og skyer</translation>
@@ -3807,7 +3806,7 @@
 <translation id="5133483819862530305">Fra solnedgang til solopgang</translation>
 <translation id="5135085122826131075">Få adgang til din Google-assistent, når du siger "Hey Google".</translation>
 <translation id="5135533361271311778">Bogmærkeelementet blev ikke oprettet.</translation>
-<translation id="5136343472380336530">Sørg for, at begge enheder er låst op, er i nærheden af hinanden, og at både Bluetooth er aktiveret. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation>
+<translation id="5136343472380336530">Sørg for, at begge enheder er låst op, er i nærheden af hinanden og har Bluetooth aktiveret. <ph name="LINK_BEGIN" />Få flere oplysninger<ph name="LINK_END" /></translation>
 <translation id="5137501176474113045">Slet dette element</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> Søgning</translation>
 <translation id="5139823398361067371">Angiv pinkoden til din sikkerhedsnøgle. Hvis du ikke kender pinkoden, skal du nulstille sikkerhedsnøglen.</translation>
@@ -5930,6 +5929,7 @@
 <translation id="7506541170099744506">Din <ph name="DEVICE_TYPE" /> er tilmeldt virksomhedsadministration.</translation>
 <translation id="7507207699631365376">Se denne udbyders <ph name="BEGIN_LINK" />privatlivspolitik<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Certifikat for statussvar</translation>
+<translation id="7509246181739783082">Bekræft din identitet</translation>
 <translation id="7513029293694390567">Log automatisk ind på websites ved hjælp af gemte loginoplysninger. Hvis funktionen er slået fra, bliver du bedt om bekræftelse, hver gang du vil logge ind på et website.</translation>
 <translation id="7514239104543605883">Kopiér til din enhed</translation>
 <translation id="7514365320538308">Download</translation>
@@ -6461,7 +6461,6 @@
 <translation id="8061091456562007989">Skift tilbage</translation>
 <translation id="8061991877177392872">Det ser ud til, at du allerede har konfigureret Voice Match med Google-assistenten på en anden enhed. Disse tidligere optagelser blev brugt til at oprette en stemmemodel på denne enhed.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 ark papir}one{{COUNT} ark papir}other{{COUNT} ark papir}}</translation>
-<translation id="8062879968880283306">Scan QR-koden ved hjælp af kameraet på enheden, eller angiv aktiveringskoden fra dit mobilselskab.</translation>
 <translation id="8063235345342641131">Grøn standardavatar</translation>
 <translation id="8063535366119089408">Se fil</translation>
 <translation id="8064279191081105977">Gruppe <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6882,7 +6881,6 @@
 <translation id="8551588720239073785">Indstillinger for dato og tid</translation>
 <translation id="8553342806078037065">Administrer andre personer</translation>
 <translation id="8554899698005018844">Intet sprog</translation>
-<translation id="8555195867496021627">Der er ingen tilgængelige eSIM-profiler. Download en ny profil <ph name="BEGIN_LINK" />her<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Bliv ved med at røre din sikkerhedsnøgle, indtil dit fingeraftryk er registreret</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Åbn alle i &amp;nyt vindue}=1{Åbn i &amp;nyt vindue}one{Åbn ({COUNT}) i &amp;nyt vindue}other{Åbn alle ({COUNT}) i &amp;nyt vindue}}</translation>
@@ -7062,7 +7060,6 @@
 <translation id="8743164338060742337">Netværk <ph name="NETWORK_INDEX" /> af <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, signalstyrke <ph name="SIGNAL_STRENGTH" /> %, administreret af din administrator, opret forbindelse</translation>
 <translation id="8746654918629346731">Du har allerede anmodet om "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Vil du uploade én fil til dette website?}one{Vil du uploade # fil til dette website?}other{Vil du uploade # filer til dette website?}}</translation>
-<translation id="8749556627204742888">Du deler dette netværk med andre brugere af enheden.</translation>
 <translation id="8749805710397399240">Din skærm kan ikke castes. Tjek tilladelsen for skærmoptagelse under Systempræferencer.</translation>
 <translation id="8749863574775030885">Få adgang til USB-enheder fra en ukendt leverandør</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> anmoder om at oprette forbindelse til en seriel port</translation>
@@ -7126,7 +7123,6 @@
 <translation id="8808744862003883508">På denne side kan du se alle de udvidelser, der er installeret i Chrome.</translation>
 <translation id="8809147117840417135">Lys turkis</translation>
 <translation id="8811862054141704416">Adgang til mikrofonen i Crostini</translation>
-<translation id="8812552797690463522">Dette netværk er delt med dig.</translation>
 <translation id="8812593354822910461">Ryd også browserdata (<ph name="URL" />), hvilket muligvis logger dig ud af <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Påmind mig senere</translation>
 <translation id="8813698869395535039">Det var ikke muligt at logge ind på <ph name="USERNAME" /></translation>
@@ -7338,7 +7334,6 @@
 <translation id="9021662811137657072">Der er fundet en virus</translation>
 <translation id="902236149563113779">Websites registrerer normalt din kameraposition til AR-formål såsom spil eller overlejrede rutevejledninger</translation>
 <translation id="9022847679183471841">Denne konto bruges allerede på denne computer af <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Andre brugere af denne enhed kan bruge dette netværk.</translation>
 <translation id="9023015617655685412">Tilføj denne fane som bogmærke...</translation>
 <translation id="9023909777842748145">Deaktivering af denne funktion påvirker ikke enhedens evne til at sende oplysninger, der skal bruges til vigtige tjenester som f.eks. systemopdateringer og sikkerhed.</translation>
 <translation id="9024127637873500333">&amp;Åbn på ny fane</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 03fec50..26e0abd 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">"Beim Start"-Standardseite wiederherstellen?</translation>
 <translation id="1388253969141979417">Dürfen mein Mikrofon verwenden</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> wird neu gestartet, wenn die Updates abgeschlossen sind.</translation>
-<translation id="138900021244932468">Es wurden keine Profile gefunden. Wenn Sie ein neues Netzwerk einrichten möchten, scannen Sie den QR-Code mit der Kamera Ihres Geräts oder geben Sie den von Ihrem Mobilfunkanbieter zur Verfügung gestellten Aktivierungscode ein.</translation>
 <translation id="139013308650923562">Darf auf meinem Gerät installierte Schriftarten verwenden</translation>
 <translation id="1390548061267426325">In normalem Tab öffnen</translation>
 <translation id="1393283411312835250">Sonne und Wolken</translation>
@@ -5891,6 +5890,7 @@
 <translation id="7506541170099744506">Ihr <ph name="DEVICE_TYPE" /> wurde erfolgreich für die Unternehmensverwaltung angemeldet.</translation>
 <translation id="7507207699631365376"><ph name="BEGIN_LINK" />Datenschutzerklärung<ph name="END_LINK" /> dieses Dienstanbieters ansehen</translation>
 <translation id="7507930499305566459">Zertifikat für Statusantwortdienst</translation>
+<translation id="7509246181739783082">Identität bestätigen</translation>
 <translation id="7513029293694390567">Sie werden mithilfe gespeicherter Anmeldedaten automatisch auf Websites angemeldet. Wenn diese Funktion deaktiviert ist, werden Sie bei jeder Anmeldung auf einer Website nach einer Bestätigung gefragt.</translation>
 <translation id="7514239104543605883">Auf mein Gerät kopieren</translation>
 <translation id="7514365320538308">Herunterladen</translation>
@@ -6423,7 +6423,6 @@
 <translation id="8061091456562007989">Änderung rückgängig machen</translation>
 <translation id="8061991877177392872">Sie haben Voice Match schon auf einem anderen Gerät mit Assistant eingerichtet. Diese vorherigen Aufnahmen wurden verwendet, um ein Sprachmodell auf diesem Gerät zu erstellen.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 Blatt Papier}other{{COUNT} Blätter Papier}}</translation>
-<translation id="8062879968880283306">Scannen Sie den QR-Code mit der Kamera Ihres Geräts oder geben Sie den von Ihrem Mobilfunkanbieter angegebenen Aktivierungscode ein.</translation>
 <translation id="8063235345342641131">Grüner Standardavatar</translation>
 <translation id="8063535366119089408">Datei ansehen</translation>
 <translation id="8064279191081105977">Gruppe <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6843,7 +6842,6 @@
 <translation id="8551588720239073785">Datums- und Uhrzeiteinstellungen</translation>
 <translation id="8553342806078037065">Andere Personen verwalten</translation>
 <translation id="8554899698005018844">Keine Sprache</translation>
-<translation id="8555195867496021627">Keine verfügbaren eSIM-Profile. <ph name="BEGIN_LINK" />Neues Profil herunterladen<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Berühren Sie mehrmals den Fingerabdrucksensor auf Ihrem Sicherheitsschlüssel, bis der Fingerabdruck gespeichert ist</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Alle in &amp;neuem Fenster öffnen}=1{In &amp;neuem Fenster öffnen}other{Alle ({COUNT}) in &amp;neuem Fenster öffnen}}</translation>
@@ -7023,7 +7021,6 @@
 <translation id="8743164338060742337">Netzwerk <ph name="NETWORK_INDEX" /> von <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, Signalstärke bei <ph name="SIGNAL_STRENGTH" /> %, von Ihrem Administrator verwaltet, Verbinden</translation>
 <translation id="8746654918629346731">Sie haben bereits "<ph name="EXTENSION_NAME" />" angefordert</translation>
 <translation id="874689135111202667">{0,plural, =1{Soll eine Datei auf diese Website hochgeladen werden?}other{Sollen # Dateien auf diese Website hochgeladen werden?}}</translation>
-<translation id="8749556627204742888">Dieses Netzwerk ist für andere Nutzer dieses Geräts freigegeben.</translation>
 <translation id="8749805710397399240">Der Bildschirm kann nicht übertragen werden. Prüfen Sie in den Systemeinstellungen die Berechtigung "Bildschirmaufzeichnung".</translation>
 <translation id="8749863574775030885">Auf USB-Geräte von einem unbekannten Anbieter zugreifen</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> möchte eine Verbindung mit einem seriellen Port herstellen</translation>
@@ -7085,7 +7082,6 @@
 <translation id="8808744862003883508">Auf dieser Seite sehen Sie alle in Chrome installierten Erweiterungen.</translation>
 <translation id="8809147117840417135">Helles Blaugrün</translation>
 <translation id="8811862054141704416">Crostini-Mikrofonzugriff</translation>
-<translation id="8812552797690463522">Dieses Netzwerk ist für Sie freigegeben.</translation>
 <translation id="8812593354822910461">Auch Browserdaten (<ph name="URL" />) löschen, wodurch Sie von <ph name="DOMAIN" /> abgemeldet werden. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Später erinnern</translation>
 <translation id="8813698869395535039">Anmeldung unter <ph name="USERNAME" /> nicht möglich</translation>
@@ -7297,7 +7293,6 @@
 <translation id="9021662811137657072">Virus gefunden</translation>
 <translation id="902236149563113779">Websites verfolgen Ihre Kameraposition normalerweise, um AR-Funktionen beispielsweise in Spielen oder die Wegbeschreibung auf dem Display umzusetzen</translation>
 <translation id="9022847679183471841">Dieses Konto wird auf diesem Computer bereits von "<ph name="AVATAR_NAME" />" verwendet.</translation>
-<translation id="9023009238991294202">Andere Nutzer des Geräts können dieses Netzwerk verwenden.</translation>
 <translation id="9023015617655685412">Lesezeichen für diesen Tab erstellen…</translation>
 <translation id="9023909777842748145">Wenn Sie diese Funktion deaktivieren, kann Ihr Gerät weiterhin Informationen senden, die für grundlegende Dienste wie Systemupdates und ‑sicherheit erforderlich sind.</translation>
 <translation id="9024127637873500333">In &amp;neuem Tab öffnen</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index d7209a7e..7516f8e 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Επαναφορά προεπιλεγμένης σελίδας εκκίνησης;</translation>
 <translation id="1388253969141979417">Επιτρέπεται να χρησιμοποιούν το μικρόφωνό σας</translation>
 <translation id="1388728792929436380">Όταν ολοκληρωθούν οι ενημερώσεις, θα γίνει επανεκκίνηση της συσκευής (<ph name="DEVICE_TYPE" />).</translation>
-<translation id="138900021244932468">Δεν βρέθηκαν προφίλ. Για να ρυθμίσετε ένα νέο δίκτυο, σαρώστε τον κωδικό QR χρησιμοποιώντας την κάμερα της συσκευής ή εισαγάγετε τον κωδικό ενεργοποίησης που παρέχει η εταιρεία κινητής τηλεφωνίας.</translation>
 <translation id="139013308650923562">Να επιτρέπεται η χρήση των γραμματοσειρών που είναι εγκατεστημένες στη συσκευή σας</translation>
 <translation id="1390548061267426325">Άνοιγμα σε κανονική καρτέλα</translation>
 <translation id="1393283411312835250">Ήλιος και σύννεφα</translation>
@@ -5930,6 +5929,7 @@
 <translation id="7506541170099744506">Η συσκευή <ph name="DEVICE_TYPE" /> εγγράφηκε με επιτυχία για διαχείριση επιχειρήσεων.</translation>
 <translation id="7507207699631365376">Δείτε την <ph name="BEGIN_LINK" />πολιτική απορρήτου<ph name="END_LINK" /> του παρόχου</translation>
 <translation id="7507930499305566459">Πιστοποιητικό απόκρισης κατάστασης</translation>
+<translation id="7509246181739783082">Επαλήθευση της ταυτότητάς σας</translation>
 <translation id="7513029293694390567">Αυτόματη σύνδεση σε ιστοτόπους με χρήση αποθηκευμένων διαπιστευτηρίων. Όταν η λειτουργία είναι απενεργοποιημένη, θα σας ζητείται επιβεβαίωση κάθε φορά που προσπαθείτε να συνδεθείτε σε έναν ιστότοπο.</translation>
 <translation id="7514239104543605883">Αντιγραφή στη συσκευή σας</translation>
 <translation id="7514365320538308">Λήψη</translation>
@@ -6462,7 +6462,6 @@
 <translation id="8061091456562007989">Αναίρεση αλλαγής</translation>
 <translation id="8061991877177392872">Φαίνεται πως έχετε ήδη ρυθμίσει το Voice Match με τον Βοηθό σας σε κάποια άλλη συσκευή. Αυτές οι προηγούμενες εγγραφές χρησιμοποιήθηκαν για τη δημιουργία ενός φωνητικού μοντέλου σε αυτήν τη συσκευή.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 φύλλο χαρτιού}other{{COUNT} φύλλα χαρτιού}}</translation>
-<translation id="8062879968880283306">Σαρώστε τον κωδικό QR με την κάμερα της συσκευής ή καταχωρίστε τον κωδικό ενεργοποίησης που παρέχεται από την εταιρεία κινητής τηλεφωνίας.</translation>
 <translation id="8063235345342641131">Προεπιλεγμένο πράσινο avatar</translation>
 <translation id="8063535366119089408">Προβολή αρχείου</translation>
 <translation id="8064279191081105977">Ομάδα <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6883,7 +6882,6 @@
 <translation id="8551588720239073785">Ρυθμίσεις ημερομηνίας και ώρας</translation>
 <translation id="8553342806078037065">Διαχείριση άλλων ατόμων</translation>
 <translation id="8554899698005018844">Καμία γλώσσα</translation>
-<translation id="8555195867496021627">Δεν υπάρχουν διαθέσιμα προφίλ eSIM. Κατεβάστε ένα νέο προφίλ <ph name="BEGIN_LINK" />εδώ.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Συνεχίστε να αγγίζετε το κλειδί ασφαλείας σας μέχρι να καταγραφεί το δακτυλικό σας αποτύπωμα.</translation>
 <translation id="8557930019681227453">Μανιφέστο</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Άνοιγμα όλων σε &amp;νέο παράθυρο}=1{Άνοιγμα σε &amp;νέο παράθυρο}other{Άνοιγμα όλων ({COUNT}) σε &amp;νέο παράθυρο}}</translation>
@@ -7063,7 +7061,6 @@
 <translation id="8743164338060742337">Δίκτυο <ph name="NETWORK_INDEX" /> από <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> Ισχύς σήματος <ph name="SIGNAL_STRENGTH" />%, Διαχειριζόμενο από τον διαχειριστή σας, Σύνδεση</translation>
 <translation id="8746654918629346731">Υποβλήθηκε ήδη αίτημα για την επέκταση <ph name="EXTENSION_NAME" />.</translation>
 <translation id="874689135111202667">{0,plural, =1{Θέλετε να ανεβάσετε ένα αρχείο σε αυτόν τον ιστότοπο;}other{Θέλετε να ανεβάσετε # αρχεία σε αυτόν τον ιστότοπο;}}</translation>
-<translation id="8749556627204742888">Μοιράζεστε αυτό το δίκτυο με άλλους χρήστες αυτής της συσκευής.</translation>
 <translation id="8749805710397399240">Δεν είναι δυνατή η μετάδοση της οθόνης σας. Ελέγξτε την άδεια Εγγραφή οθόνης στις προτιμήσεις συστήματος.</translation>
 <translation id="8749863574775030885">Πρόσβαση σε συσκευές USB από έναν άγνωστο πάροχο υπηρεσιών</translation>
 <translation id="8750155211039279868">Το <ph name="ORIGIN" /> θέλει να συνδεθεί σε μια σειριακή θύρα</translation>
@@ -7123,7 +7120,6 @@
 <translation id="8808744862003883508">Σε αυτήν τη σελίδα μπορείτε να δείτε όλες τις επεκτάσεις που είναι εγκατεστημένες στο Chrome.</translation>
 <translation id="8809147117840417135">Ανοιχτό γαλαζοπράσινο</translation>
 <translation id="8811862054141704416">Πρόσβαση μικροφώνου Crostini</translation>
-<translation id="8812552797690463522">Γίνεται κοινή χρήση αυτού του δικτύου με εσάς.</translation>
 <translation id="8812593354822910461">Επίσης, διαγράψτε δεδομένα περιήγησης (<ph name="URL" />) τα οποία θα σας αποσυνδέσουν από τον τομέα <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Υπενθύμιση αργότερα</translation>
 <translation id="8813698869395535039">Δεν είναι δυνατή η σύνδεση στο <ph name="USERNAME" /></translation>
@@ -7335,7 +7331,6 @@
 <translation id="9021662811137657072">Εντοπίστηκε ιός</translation>
 <translation id="902236149563113779">Οι ιστότοποι παρακολουθούν συνήθως τη θέση της κάμεράς σας στο πλαίσιο των λειτουργιών AR, όπως τα παιχνίδια ή η παροχή καθοδήγησης.</translation>
 <translation id="9022847679183471841">Αυτός ο λογαριασμός χρησιμοποιείται ήδη σε αυτόν τον υπολογιστή από τον χρήστη <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Άλλοι χρήστες της συσκευής μπορούν να χρησιμοποιούν αυτό το δίκτυο.</translation>
 <translation id="9023015617655685412">Προσθήκη αυτής της καρτέλας στους σελιδοδείκτες…</translation>
 <translation id="9023909777842748145">Η απενεργοποίηση αυτής της λειτουργίας δεν επηρεάζει τη δυνατότητα της συσκευής να στέλνει τις πληροφορίες που απαιτούνται για βασικές υπηρεσίες, όπως είναι οι ενημερώσεις συστήματος και η ασφάλεια.</translation>
 <translation id="9024127637873500333">Άνοιγμα σε &amp;Νέα Καρτέλα</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 9289255..33a90cf6 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Restore default start-up page?</translation>
 <translation id="1388253969141979417">Allowed to use your microphone</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> will restart when updates are complete.</translation>
-<translation id="138900021244932468">No profiles were discovered. To set up a new network, scan the QR code using the device camera or enter the activation code provided by your operator.</translation>
 <translation id="139013308650923562">Allowed to use fonts installed on your device</translation>
 <translation id="1390548061267426325">Open as a standard tab</translation>
 <translation id="1393283411312835250">Sun and clouds</translation>
@@ -5929,6 +5928,7 @@
 <translation id="7506541170099744506">Your <ph name="DEVICE_TYPE" /> has successfully been enrolled for enterprise management.</translation>
 <translation id="7507207699631365376">See this provider's <ph name="BEGIN_LINK" />privacy policy<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Status Responder Certificate</translation>
+<translation id="7509246181739783082">Verify your identity</translation>
 <translation id="7513029293694390567">Automatically sign in to websites using stored credentials. If disabled, you will be asked for confirmation every time before signing in to a website.</translation>
 <translation id="7514239104543605883">Copy to your device</translation>
 <translation id="7514365320538308">Download</translation>
@@ -6461,7 +6461,6 @@
 <translation id="8061091456562007989">Change it back</translation>
 <translation id="8061991877177392872">It looks as though you've already set up Voice Match with your Assistant on another device. These previous recordings were used to make a voice model on this device.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 sheet of paper}other{{COUNT} sheets of paper}}</translation>
-<translation id="8062879968880283306">Scan QR code using device camera or enter activation code provided by your operator.</translation>
 <translation id="8063235345342641131">Default green avatar</translation>
 <translation id="8063535366119089408">View file</translation>
 <translation id="8064279191081105977">Group <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6882,7 +6881,6 @@
 <translation id="8551588720239073785">Date and time settings</translation>
 <translation id="8553342806078037065">Manage other people</translation>
 <translation id="8554899698005018844">No language</translation>
-<translation id="8555195867496021627">No available eSIM profiles. Download a new profile <ph name="BEGIN_LINK" />here.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Keep touching your security key until your fingerprint is captured</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Open all in &amp;new window}=1{Open in &amp;new window}other{Open all ({COUNT}) in &amp;new window}}</translation>
@@ -7062,7 +7060,6 @@
 <translation id="8743164338060742337">Network <ph name="NETWORK_INDEX" /> of <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> signal strength <ph name="SIGNAL_STRENGTH" />%, managed by your administrator, connect</translation>
 <translation id="8746654918629346731">You already requested '<ph name="EXTENSION_NAME" />'</translation>
 <translation id="874689135111202667">{0,plural, =1{Upload one file to this site?}other{Upload # files to this site?}}</translation>
-<translation id="8749556627204742888">You are sharing this network with other users of this device.</translation>
 <translation id="8749805710397399240">Unable to cast your screen. Check the Screen recording permission in system preferences.</translation>
 <translation id="8749863574775030885">Access USB devices from an unknown vendor</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> wants to connect to a serial port</translation>
@@ -7124,7 +7121,6 @@
 <translation id="8808744862003883508">On this page you can see all the extensions installed in Chrome.</translation>
 <translation id="8809147117840417135">Light teal</translation>
 <translation id="8811862054141704416">Crostini microphone access</translation>
-<translation id="8812552797690463522">This network is shared with you.</translation>
 <translation id="8812593354822910461">Also clear browsing data (<ph name="URL" />) which will sign you out of <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Remind me later</translation>
 <translation id="8813698869395535039">Can't sign in to <ph name="USERNAME" /></translation>
@@ -7336,7 +7332,6 @@
 <translation id="9021662811137657072">Virus detected</translation>
 <translation id="902236149563113779">Sites usually track your camera position for AR features, like games or heads-up directions</translation>
 <translation id="9022847679183471841">This account is already being used on this computer by <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Other users of this device can use this network.</translation>
 <translation id="9023015617655685412">Bookmark this tab...</translation>
 <translation id="9023909777842748145">Turning off this feature doesn't affect your device's ability to send the information needed for essential services such as system updates and security.</translation>
 <translation id="9024127637873500333">&amp;Open in New Tab</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 50f1218..35d4c8d 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">¿Deseas restaurar la página de inicio predeterminada?</translation>
 <translation id="1388253969141979417">Puede usar el micrófono</translation>
 <translation id="1388728792929436380">Cuando se completen las actualizaciones, se reiniciará el dispositivo <ph name="DEVICE_TYPE" />.</translation>
-<translation id="138900021244932468">No se encontraron perfiles. Para configurar una red nueva, escanea el código QR con la cámara del dispositivo o ingresa el código de activación que te brinde tu proveedor.</translation>
 <translation id="139013308650923562">Pueden usar las fuentes instaladas en el dispositivo</translation>
 <translation id="1390548061267426325">Abrir como pestaña normal</translation>
 <translation id="1393283411312835250">Sol y nubes</translation>
@@ -5910,6 +5909,7 @@
 <translation id="7506541170099744506">Tu dispositivo <ph name="DEVICE_TYPE" /> se inscribió correctamente para la administración empresarial.</translation>
 <translation id="7507207699631365376">Consulta la <ph name="BEGIN_LINK" />Política de Privacidad<ph name="END_LINK" /> de este proveedor</translation>
 <translation id="7507930499305566459">Certificado del respondedor de estado</translation>
+<translation id="7509246181739783082">Verifica tu identidad</translation>
 <translation id="7513029293694390567">Accede automáticamente a los sitios web con las credenciales almacenadas. Si la función está inhabilitada, deberás confirmar siempre tu identidad para acceder a un sitio web.</translation>
 <translation id="7514239104543605883">Copiar a tu dispositivo</translation>
 <translation id="7514365320538308">Descargar</translation>
@@ -6442,7 +6442,6 @@
 <translation id="8061091456562007989">Deshacer el cambio</translation>
 <translation id="8061991877177392872">Parece que ya configuraste Voice Match con tu Asistente en otro dispositivo. Se usaron las grabaciones anteriores para crear un modelo de voz en este dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 hoja de papel}other{{COUNT} hojas de papel}}</translation>
-<translation id="8062879968880283306">Escanea el código QR con la cámara del dispositivo o ingresa el código de activación que te brindó tu proveedor.</translation>
 <translation id="8063235345342641131">Avatar verde predeterminado</translation>
 <translation id="8063535366119089408">Ver el archivo</translation>
 <translation id="8064279191081105977">Grupo <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6863,7 +6862,6 @@
 <translation id="8551588720239073785">Configuración de fecha y hora</translation>
 <translation id="8553342806078037065">Administrar otras personas</translation>
 <translation id="8554899698005018844">Ningún idioma</translation>
-<translation id="8555195867496021627">No hay perfiles de eSIM disponibles. Descarga uno nuevo <ph name="BEGIN_LINK" />aquí<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Continúa tocando la llave de seguridad hasta que se capture tu huella dactilar</translation>
 <translation id="8557930019681227453">Manifiesto</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Abrir todo en una ventana &amp;nueva}=1{Abrir en una ventana &amp;nueva}other{Abrir todo ({COUNT}) en una ventana &amp;nueva}}</translation>
@@ -7043,7 +7041,6 @@
 <translation id="8743164338060742337">Red <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" />%, administrada por tu administrador, conectar</translation>
 <translation id="8746654918629346731">Ya solicitaste "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{¿Deseas cargar un archivo a este sitio?}other{¿Deseas cargar # archivos a este sitio?}}</translation>
-<translation id="8749556627204742888">Compartes esta red con otros usuarios de este dispositivo.</translation>
 <translation id="8749805710397399240">No se puede transmitir tu pantalla. Revisa el permiso de grabación de pantallas en las preferencias del sistema.</translation>
 <translation id="8749863574775030885">Acceder a dispositivos USB de un proveedor desconocido</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> quiere conectarse a un puerto en serie</translation>
@@ -7105,7 +7102,6 @@
 <translation id="8808744862003883508">En esta página, podrás ver todas las extensiones instaladas en Chrome.</translation>
 <translation id="8809147117840417135">Verde azulado claro</translation>
 <translation id="8811862054141704416">Acceso al micrófono en Crostini</translation>
-<translation id="8812552797690463522">Se comparte esta red contigo.</translation>
 <translation id="8812593354822910461">Borrar también los datos de navegación (<ph name="URL" />), lo que implicará salir de <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Recordarme más tarde</translation>
 <translation id="8813698869395535039">No se puede acceder a <ph name="USERNAME" /></translation>
@@ -7317,7 +7313,6 @@
 <translation id="9021662811137657072">Virus detectado</translation>
 <translation id="902236149563113779">Por lo general los sitios registran la posición de la cámara para habilitar funciones de RA, ya sea en juegos o para proporcionar instrucciones sobre cómo llegar.</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ya está usando esta cuenta en esta computadora.</translation>
-<translation id="9023009238991294202">Otros usuarios de este dispositivo pueden usar esta red.</translation>
 <translation id="9023015617655685412">Agregar esta pestaña a favoritos…</translation>
 <translation id="9023909777842748145">Desactivar esta función no afectará la capacidad de tu dispositivo de enviar la información necesaria para servicios esenciales, como seguridad y actualizaciones del sistema.</translation>
 <translation id="9024127637873500333">&amp;Abrir en una nueva pestaña</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index e5b344c..dd7bb987 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">¿Restaurar la página de inicio predeterminada?</translation>
 <translation id="1388253969141979417">Puede usar tu micrófono</translation>
 <translation id="1388728792929436380">El <ph name="DEVICE_TYPE" /> se reiniciará cuando se hayan completado las actualizaciones.</translation>
-<translation id="138900021244932468">No se ha encontrado ningún perfil. Para configurar una nueva red, escanea el código QR con la cámara del dispositivo o introduce el código de activación proporcionado por tu operador.</translation>
 <translation id="139013308650923562">Permitir que se usen las fuentes instaladas en tu dispositivo</translation>
 <translation id="1390548061267426325">Abrir como pestaña normal</translation>
 <translation id="1393283411312835250">Sol y nubes</translation>
@@ -988,7 +987,7 @@
 <translation id="2040460856718599782">¡Vaya! Parece que algo ha fallado al intentar identificarte. Vuelve a comprobar tus credenciales de inicio de sesión e inténtalo de nuevo.</translation>
 <translation id="2042279886444479655">Perfiles activos</translation>
 <translation id="2044014337866019681">Asegúrate de que estás verificando <ph name="ACCOUNT" /> para desbloquear la sesión.</translation>
-<translation id="2044023416777079300">Modem no registrado</translation>
+<translation id="2044023416777079300">Módem no registrado</translation>
 <translation id="204497730941176055">Nombre de plantilla de certificado de Microsoft</translation>
 <translation id="2045117674524495717">Asistente de combinaciones de teclas</translation>
 <translation id="2045969484888636535">Continuar bloqueando las cookies</translation>
@@ -5912,6 +5911,7 @@
 <translation id="7506541170099744506">El dispositivo <ph name="DEVICE_TYPE" /> se ha registrado correctamente para ser administrado por la empresa.</translation>
 <translation id="7507207699631365376">Consulta la <ph name="BEGIN_LINK" />política de privacidad<ph name="END_LINK" /> de este proveedor</translation>
 <translation id="7507930499305566459">Certificado de respuesta de estado</translation>
+<translation id="7509246181739783082">Verifica tu identidad</translation>
 <translation id="7513029293694390567">Permite iniciar sesión automáticamente en sitios web con credenciales almacenadas. Si esta función está inhabilitada, se te solicitará la confirmación cada vez que intentes iniciar sesión en un sitio web.</translation>
 <translation id="7514239104543605883">Copiar en tu dispositivo</translation>
 <translation id="7514365320538308">Descargar</translation>
@@ -5978,7 +5978,7 @@
 <translation id="7582582252461552277">Establecer esta red como preferida</translation>
 <translation id="7582844466922312471">redes móviles</translation>
 <translation id="7583948862126372804">Recuento</translation>
-<translation id="7586051298768394542">No se han podido descargar los archivos de voz. El dictado seguirá funcionando con el envío tu voz a Google.</translation>
+<translation id="7586051298768394542">No se han podido descargar los archivos de voz. El dictado seguirá funcionando con el envío de tu voz a Google.</translation>
 <translation id="7586498138629385861">Chrome seguirá ejecutándose mientras estén abiertas aplicaciones de Chrome.</translation>
 <translation id="7589461650300748890">¡Atención! Ten cuidado.</translation>
 <translation id="7593653750169415785">Se ha bloqueado automáticamente porque has rechazado las notificaciones varias veces</translation>
@@ -6444,7 +6444,6 @@
 <translation id="8061091456562007989">Deshacer cambio</translation>
 <translation id="8061991877177392872">Parece que ya has configurado Voice Match con el Asistente en otro dispositivo. Las grabaciones anteriores se han utilizado para crear un modelo de voz en este dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 hoja de papel}other{{COUNT} hojas de papel}}</translation>
-<translation id="8062879968880283306">Escanea el código QR con la cámara del dispositivo o escribe el código de activación proporcionado por tu operador.</translation>
 <translation id="8063235345342641131">Avatar verde predeterminado</translation>
 <translation id="8063535366119089408">Ver archivo</translation>
 <translation id="8064279191081105977">Grupo <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6865,7 +6864,6 @@
 <translation id="8551588720239073785">Configuración de fecha y hora</translation>
 <translation id="8553342806078037065">Gestionar otros usuarios</translation>
 <translation id="8554899698005018844">Sin idioma</translation>
-<translation id="8555195867496021627">No hay ningún perfil de eSIM disponible. <ph name="BEGIN_LINK" />Descarga un perfil nuevo<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Sigue pulsando tu llave de seguridad hasta que tu huella dactilar quede registrada.</translation>
 <translation id="8557930019681227453">Archivo de manifiesto</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Abrir todas en una ventana &amp;nueva}=1{Abrir en una ventana &amp;nueva}other{Abrir todas ({COUNT}) en una ventana &amp;nueva}}</translation>
@@ -7045,7 +7043,6 @@
 <translation id="8743164338060742337">Red <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" /> %, gestionada por el administrador, conectar</translation>
 <translation id="8746654918629346731">Ya has solicitado "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{¿Quieres subir un archivo a este sitio web?}other{¿Quieres subir # archivos a este sitio web?}}</translation>
-<translation id="8749556627204742888">Estás compartiendo esta red con otros usuarios de este dispositivo.</translation>
 <translation id="8749805710397399240">No se puede enviar tu pantalla. Comprueba el permiso de grabación de pantalla en Preferencias del Sistema.</translation>
 <translation id="8749863574775030885">Acceder a dispositivos USB desde un proveedor desconocido</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> solicita conectarse a un puerto serie</translation>
@@ -7107,7 +7104,6 @@
 <translation id="8808744862003883508">En esta página aparecen todas las extensiones instaladas en Chrome.</translation>
 <translation id="8809147117840417135">Turquesa claro</translation>
 <translation id="8811862054141704416">Acceso a micrófono en Crostini</translation>
-<translation id="8812552797690463522">Esta red se comparte contigo.</translation>
 <translation id="8812593354822910461">Borrar también los datos de navegación (<ph name="URL" />), lo que cerrará tu sesión en <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Recordar más tarde</translation>
 <translation id="8813698869395535039">No se puede iniciar sesión como <ph name="USERNAME" /></translation>
@@ -7319,7 +7315,6 @@
 <translation id="9021662811137657072">Virus detectado</translation>
 <translation id="902236149563113779">Los sitios suelen monitorizar la posición de la cámara para utilizarla en funciones de realidad aumentada, como las de algunos juegos o ciertos tipos de indicaciones de navegación.</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ya utiliza esta cuenta en este ordenador.</translation>
-<translation id="9023009238991294202">Otros usuarios de este dispositivo pueden usar esta red.</translation>
 <translation id="9023015617655685412">Añadir esta pestaña a marcadores...</translation>
 <translation id="9023909777842748145">Aunque esta opción esté desactivada, el dispositivo seguirá pudiendo enviar la información necesaria para realizar los servicios esenciales relacionados, por ejemplo, con la seguridad y las actualizaciones del sistema.</translation>
 <translation id="9024127637873500333">&amp;Abrir en una pestaña nueva</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 25d2c68..469dcde 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Kas taastada käivitamisel avatav vaikeleht?</translation>
 <translation id="1388253969141979417">Lubatud kasutada teie mikrofoni</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> taaskäivitub pärast värskendamise lõpetamist.</translation>
-<translation id="138900021244932468">Ühtegi profiili ei leitud. Uue võrgu seadistamiseks skannige QR-kood seadme kaameraga või sisestage operaatorilt saadud aktiveerimiskood.</translation>
 <translation id="139013308650923562">Võivad kasutada teie seadmesse installitud fonte</translation>
 <translation id="1390548061267426325">Ava tavalisel vahelehel</translation>
 <translation id="1393283411312835250">Päike ja pilved</translation>
@@ -5919,6 +5918,7 @@
 <translation id="7506541170099744506">Teie <ph name="DEVICE_TYPE" /> registreeriti ettevõtte halduse jaoks.</translation>
 <translation id="7507207699631365376">Vaadake selle teenusepakkuja <ph name="BEGIN_LINK" />privaatsuseeskirju<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Olekuvastaja sertifikaat</translation>
+<translation id="7509246181739783082">Kinnitage oma isik</translation>
 <translation id="7513029293694390567">Teid logitakse salvestatud mandaadiga veebisaitidele automaatselt sisse. Kui see on keelatud, palutakse teilt iga kord enne veebisaidile sisselogimist kinnitust.</translation>
 <translation id="7514239104543605883">Kopeeri seadmesse</translation>
 <translation id="7514365320538308">Laadi alla</translation>
@@ -6451,7 +6451,6 @@
 <translation id="8061091456562007989">Taasta</translation>
 <translation id="8061991877177392872">Näib, et olete Voice Matchi oma assistendiga muus seadmes juba seadistanud. Neid varasemaid salvestisi kasutati häälemudeli loomiseks selles seadmes.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 paberileht}other{{COUNT} paberilehte}}</translation>
-<translation id="8062879968880283306">Skannige QR-kood seadme kaameraga või sisestage operaatorilt saadud aktiveerimiskood.</translation>
 <translation id="8063235345342641131">Roheline vaikeavatar</translation>
 <translation id="8063535366119089408">Kuva fail</translation>
 <translation id="8064279191081105977">Grupp <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6872,7 +6871,6 @@
 <translation id="8551588720239073785">Kuupäeva ja kellaaja seaded</translation>
 <translation id="8553342806078037065">Teiste inimeste haldamine</translation>
 <translation id="8554899698005018844">Keel puudub</translation>
-<translation id="8555195867496021627">Saadaval ei ole ühtki eSIM-i profiili. Laadige uus profiil alla <ph name="BEGIN_LINK" />siit<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Hoidke sõrme turvavõtmel, kuni sõrmejälg jäädvustatakse</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Ava kõik &amp;uues aknas}=1{Ava &amp;uues aknas}other{Ava kõik ({COUNT}) &amp;uues aknas}}</translation>
@@ -7052,7 +7050,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" />. võrk <ph name="NETWORK_COUNT" />-st, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, signaalitugevus: <ph name="SIGNAL_STRENGTH" />%, võrku haldab teie administraator, ühenda</translation>
 <translation id="8746654918629346731">Taotlesite juba laiendust „<ph name="EXTENSION_NAME" />”</translation>
 <translation id="874689135111202667">{0,plural, =1{Kas laadida sellele saidile üles üks fail?}other{Kas laadida sellele saidile üles # faili?}}</translation>
-<translation id="8749556627204742888">Jagate seda võrku teiste selle seadme kasutajatega.</translation>
 <translation id="8749805710397399240">Ekraanikuva ei saa üle kanda. Kontrollige süsteemieelistustes ekraanisalvestuse luba.</translation>
 <translation id="8749863574775030885">Juurdepääs tundmatu müüja USB-seadmetele</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> soovib järjestikpordiga ühendust luua</translation>
@@ -7114,7 +7111,6 @@
 <translation id="8808744862003883508">Sellel lehel näete kõiki Chrome'i installitud laiendusi.</translation>
 <translation id="8809147117840417135">Helesinakasroheline</translation>
 <translation id="8811862054141704416">Crostini juurdepääs mikrofonile</translation>
-<translation id="8812552797690463522">Seda võrku jagatakse teiega.</translation>
 <translation id="8812593354822910461">Kustutage ka sirvimisandmed (<ph name="URL" />). See võib teid saidilt <ph name="DOMAIN" /> välja logida. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Tuleta mulle hiljem meelde</translation>
 <translation id="8813698869395535039">Kasutaja <ph name="USERNAME" /> kontole ei saa sisse logida</translation>
@@ -7326,7 +7322,6 @@
 <translation id="9021662811137657072">Leiti viirus</translation>
 <translation id="902236149563113779">Saidid jälgivad teie kaamera asendit tavaliselt AR-funktsioonide jaoks, nt mängudeks või juhiste esitamisel</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> juba kasutab arvutis seda kontot.</translation>
-<translation id="9023009238991294202">Teised selle seadme kasutajad saavad seda võrku kasutada.</translation>
 <translation id="9023015617655685412">Lisa vaheleht järjehoidjatesse …</translation>
 <translation id="9023909777842748145">Kui lülitate selle funktsiooni välja, saab seade endiselt saata oluliste teenuste (nagu süsteemivärskendused ja turvalisus) kasutamiseks vajalikku teavet.</translation>
 <translation id="9024127637873500333">&amp;Ava uuel vahelehel</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 042b971..8ec24b2e 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">Abioko orri lehenetsia leheneratu nahi duzu?</translation>
 <translation id="1388253969141979417">Mikrofonoa erabil dezakete</translation>
 <translation id="1388728792929436380">Eguneratzen bukatzean, <ph name="DEVICE_TYPE" /> gailua berrabiarazi egingo da.</translation>
-<translation id="138900021244932468">Ez da aurkitu profilik. Beste sare bat konfiguratzeko, eskaneatu QR kodea gailuaren kamera erabiliz edo idatzi operadoreak emandako aktibazio-kodea.</translation>
 <translation id="139013308650923562">Gailuan instalatutako letrak erabil ditzakete</translation>
 <translation id="1390548061267426325">Ireki fitxa arrunt gisa</translation>
 <translation id="1393283411312835250">Eguzkia eta lainoak</translation>
@@ -5912,6 +5911,7 @@
 <translation id="7506541170099744506">Erregistratu duzu <ph name="DEVICE_TYPE" /> enpresak kudeatzeko.</translation>
 <translation id="7507207699631365376">Ikusi hornitzailearen <ph name="BEGIN_LINK" />pribatutasun-gidalerroak<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Egoera-erantzulearen ziurtagiria</translation>
+<translation id="7509246181739783082">Egiaztatu zeu zarela</translation>
 <translation id="7513029293694390567">Hasi saioa automatikoki webguneetan gordetako kredentzialekin. Eginbidea desgaituta badago, zeu zarela berresteko eskatuko dizu webgune batean saioa hasten duzun bakoitzean.</translation>
 <translation id="7514239104543605883">Kopiatu zure gailuan</translation>
 <translation id="7514365320538308">Deskargatu</translation>
@@ -6443,7 +6443,6 @@
 <translation id="8061091456562007989">Leheneratu</translation>
 <translation id="8061991877177392872">Voice Match konfiguratuta daukazu beste gailu batean Laguntzailea eginbidearen bidez. Lehendik zeneuzkan grabaketa horiekin ahots-eredu bat sortu da gailu honetan.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 orri}other{{COUNT} orri}}</translation>
-<translation id="8062879968880283306">Eskaneatu QR kodea gailuaren kamera erabiliz edo idatzi operadoreak emandako aktibazio-kodea.</translation>
 <translation id="8063235345342641131">Abatar berde lehenetsia</translation>
 <translation id="8063535366119089408">Ikusi fitxategia</translation>
 <translation id="8064279191081105977"><ph name="GROUP_NAME" /> taldea. <ph name="GROUP_CONTENTS" />. <ph name="COLLAPSED_STATE" />.</translation>
@@ -6864,7 +6863,6 @@
 <translation id="8551588720239073785">Data- eta ordu-ezarpenak</translation>
 <translation id="8553342806078037065">Kudeatu beste pertsona batzuk</translation>
 <translation id="8554899698005018844">Ez da zehaztu hizkuntzarik</translation>
-<translation id="8555195867496021627">Ez dago eSIM txartelaren profil eskuragarririk. Deskargatu beste profil bat <ph name="BEGIN_LINK" />hemen.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Jarraitu segurtasun-giltza sakatzen, hatz-marka hauteman arte</translation>
 <translation id="8557930019681227453">Manifestua</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Ireki guztiak &amp;beste leiho batean}=1{Ireki &amp;beste leiho batean}other{Ireki guztiak ({COUNT}) &amp;beste leiho batean}}</translation>
@@ -7044,7 +7042,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> sarea. <ph name="NETWORK_NAME" />. <ph name="NETWORK_PROVIDER_NAME" />. Seinalearen indarra: % <ph name="SIGNAL_STRENGTH" />. Administratzaileak kudeatua. Konektatu.</translation>
 <translation id="8746654918629346731">Eskatu duzu "<ph name="EXTENSION_NAME" />" dagoeneko</translation>
 <translation id="874689135111202667">{0,plural, =1{Fitxategi bat kargatu nahi duzu webgune honetara?}other{# fitxategi kargatu nahi dituzu webgune honetara?}}</translation>
-<translation id="8749556627204742888">Gailu honen beste erabiltzaileekin ari zara partekatzen sare hau.</translation>
 <translation id="8749805710397399240">Ezin da igorri pantaila. Egiaztatu pantaila grabatzeko baimena sistemaren hobespenetan.</translation>
 <translation id="8749863574775030885">Atzitu saltzaile ezezagunaren USB bidezko gailuak</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> webguneak serieko ataka batera konektatu nahi du</translation>
@@ -7106,7 +7103,6 @@
 <translation id="8808744862003883508">Chrome-n instalatuta dauden luzapen guztiak ikus ditzakezu orri honetan.</translation>
 <translation id="8809147117840417135">Anil argia</translation>
 <translation id="8811862054141704416">Crostini-ren mikrofonorako sarbidea</translation>
-<translation id="8812552797690463522">Zurekin partekatuta dago sare hau.</translation>
 <translation id="8812593354822910461">Garbitu arakatze-datuak ere (<ph name="URL" />); hala, <ph name="DOMAIN" /> webguneko saioa amaituko da. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Gogorarazi geroago</translation>
 <translation id="8813698869395535039">Ezin da hasi saioa <ph name="USERNAME" /> kontuan</translation>
@@ -7318,7 +7314,6 @@
 <translation id="9021662811137657072">Birus bat hauteman da</translation>
 <translation id="902236149563113779">Webguneek kameraren posizioaren jarraipena egin ohi dute errealitate areagotua darabilten eginbideak eskaintzeko, hala nola jokoak edo errealitate areagotuko jarraibideak</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ari da dagoeneko kontu hau erabiltzen ordenagailuan.</translation>
-<translation id="9023009238991294202">Gailu hau darabiltenek sare hau erabil dezakete.</translation>
 <translation id="9023015617655685412">Egin fitxa honen laster-marka…</translation>
 <translation id="9023909777842748145">Eginbidea desaktibatuta ere, gailuak beharrezko informazioa bidaltzen jarraitu ahal izango du funtsezko zerbitzuak jasotzeko, hala nola sistemaren eguneratzeak eta segurtasuna.</translation>
 <translation id="9024127637873500333">&amp;Ireki fitxa berri batean</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index d9bc8d69..cdffa20 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">صفحه شروع پیش‌فرض بازیابی شود؟</translation>
 <translation id="1388253969141979417">اجازه دارد از میکروفون استفاده کند</translation>
 <translation id="1388728792929436380">وقتی به‌روزرسانی‌ها تمام شد، <ph name="DEVICE_TYPE" /> بازراه‌اندازی می‌شود.</translation>
-<translation id="138900021244932468">هیچ نمایه‌ای کاوش نشد. برای راه‌اندازی شبکه جدید، رمزینه پاسخ‌سریع را بااستفاده از دوربین دستگاه اسکن کنید یا کد فعال‌سازی ارائه‌شده توسط شرکت مخابراتی‌تان را وارد کنید.</translation>
 <translation id="139013308650923562">اجازه دارد از قلم‌های نصب‌شده در دستگاه استفاده کند</translation>
 <translation id="1390548061267426325">بازکردن به‌عنوان برگه عادی</translation>
 <translation id="1393283411312835250">آفتاب و ابر</translation>
@@ -5926,6 +5925,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> شما باموفقیت برای مدیریت شرکت ثبت شد.</translation>
 <translation id="7507207699631365376">به <ph name="BEGIN_LINK" />خط‌مشی رازداری<ph name="END_LINK" /> این ارائه‌دهنده بروید</translation>
 <translation id="7507930499305566459">گواهی وضعیت پاسخگو</translation>
+<translation id="7509246181739783082">هویتتان را به‌تأیید برسانید</translation>
 <translation id="7513029293694390567">با استفاده از اعتبارنامه‌های ذخیره‌شده، به‌طور خودکار به سیستم وب‌سایت‌ها وارد شوید. اگر این قابلیت غیرفعال باشد، هر بار قبل از وارد شدن به وب‌سایت از شما برای تأیید اطلاعات درخواست می‌شود.</translation>
 <translation id="7514239104543605883">کپی در دستگاه</translation>
 <translation id="7514365320538308">بارگیری</translation>
@@ -6458,7 +6458,6 @@
 <translation id="8061091456562007989">تغییر را لغو کنید</translation>
 <translation id="8061991877177392872">‏به‌نظر می‌رسد ازقبل Voice Match را با «دستیار» در دستگاه دیگری راه‌اندازی کرده‌اید. از این قطعه‌های قبلاً ضبط‌شده می‌توان برای ایجاد مدل صوتی در این دستگاه استفاده کرد.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{۱ برگ کاغذ}one{{COUNT} برگ کاغذ}other{{COUNT} برگ کاغذ}}</translation>
-<translation id="8062879968880283306">رمزینه پاسخ‌سریع را بااستفاده از دوربین اسکن کنید یا کد فعال‌سازی ارائه‌شده توسط شرکت مخابراتی خود را وارد کنید.</translation>
 <translation id="8063235345342641131">چهره‌نمای پیش‌فرض سبز</translation>
 <translation id="8063535366119089408">مشاهده فایل</translation>
 <translation id="8064279191081105977">گروه <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6879,7 +6878,6 @@
 <translation id="8551588720239073785">تنظیمات تاریخ و ساعت</translation>
 <translation id="8553342806078037065">مدیریت افراد دیگر</translation>
 <translation id="8554899698005018844">زبانی موجود نیست</translation>
-<translation id="8555195867496021627">نمایه سیم‌کارت داخلی دردسترس نیست. نمایه جدیدی در <ph name="BEGIN_LINK" />اینجا<ph name="END_LINK" /> بارگیری کنید.</translation>
 <translation id="8557022314818157177">کلید امنیتی را تازمانی‌که اثرانگشت ثبت شود، لمس کنید</translation>
 <translation id="8557930019681227453">مانیفست</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{باز کردن همه در پنجره جدید}=1{باز کردن در پنجره جدید}one{باز کردن همه ({COUNT}) در پنجره جدید}other{باز کردن همه ({COUNT}) در پنجره جدید}}</translation>
@@ -7059,7 +7057,6 @@
 <translation id="8743164338060742337">شبکه <ph name="NETWORK_INDEX" /> از <ph name="NETWORK_COUNT" />، <ph name="NETWORK_NAME" />، <ph name="NETWORK_PROVIDER_NAME" />، قدرت سیگنال <ph name="SIGNAL_STRENGTH" />٪، تحت‌مدیریت سرپرست، اتصال</translation>
 <translation id="8746654918629346731">قبلاً «<ph name="EXTENSION_NAME" />» را درخواست کرده‌اید</translation>
 <translation id="874689135111202667">{0,plural, =1{یک فایل در این سایت بارگذاری شود؟}one{# فایل در این سایت بارگذاری شود؟}other{# فایل در این سایت بارگذاری شود؟}}</translation>
-<translation id="8749556627204742888">درحال اشتراک‌گذاری این شبکه با دیگر کاربران این دستگاه هستید.</translation>
 <translation id="8749805710397399240">نمی‌توانید محتوای صفحه‌تان را ارسال کنید. اجازه «ضبط صفحه» را در «اولویت‌های سیستم» بررسی کنید.</translation>
 <translation id="8749863574775030885">‏دسترسی به دستگاه‌های USB از ارائه‌دهنده ناشناس</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> می‌خواهد به درگاه سریالی متصل شود</translation>
@@ -7122,7 +7119,6 @@
 <translation id="8808744862003883508">‏در این صفحه می‌توانید همه افزونه‌های نصب‌شده در Chrome را ببینید.</translation>
 <translation id="8809147117840417135">سبز دودی روشن</translation>
 <translation id="8811862054141704416">‏دسترسی به میکروفون Crostini</translation>
-<translation id="8812552797690463522">این شبکه با شما به‌اشتراک گذاشته شده است.</translation>
 <translation id="8812593354822910461">داده‌های محصول مرور (<ph name="URL" />) را نیز پاک می‌کند که این کار شما را از سیستم <ph name="DOMAIN" /> خارج خواهد کرد. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">بعداً به من یادآوری شود</translation>
 <translation id="8813698869395535039">ورود به سیستم <ph name="USERNAME" /> امکان‌پذیر نیست</translation>
@@ -7334,7 +7330,6 @@
 <translation id="9021662811137657072">ویروس شناسایی شد</translation>
 <translation id="902236149563113779">‏سایت‌ها معمولاً موقعیت دوربین را برای ارائه ویژگی‌های AR، مانند مسیر هشدارهای اولیه یا بازی‌ها، ردیابی می‌کنند</translation>
 <translation id="9022847679183471841">این حساب درحال‌حاضر در این رایانه توسط <ph name="AVATAR_NAME" /> درحال استفاده است.</translation>
-<translation id="9023009238991294202">سایر کاربران این دستگاه می‌توانند از این شبکه استفاده کنند.</translation>
 <translation id="9023015617655685412">نشانک‌گذاری این برگه…</translation>
 <translation id="9023909777842748145">خاموش کردن این ویژگی بر توانایی دستگاه برای ارسال اطلاعات موردنیاز سرویس‌های ضروری (مانند امنیت و به‌روزرسانی‌های سیستم) تأثیر نمی‌گذارد.</translation>
 <translation id="9024127637873500333">باز کردن در &amp;برگه جدید</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 5d96dbe4..380b265 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Palautetaanko oletusaloitussivu?</translation>
 <translation id="1388253969141979417">Mikrofonin käyttö sallittu</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> käynnistyy uudelleen, kun päivitykset ovat valmiit.</translation>
-<translation id="138900021244932468">Profiileja ei löytynyt. Jos haluat luoda uuden verkon, skannaa QR-koodi laitteen kameralla tai lisää operaattorisi antama aktivointikoodi.</translation>
 <translation id="139013308650923562">Laitteellesi asennettujen fonttien käyttäminen sallittu</translation>
 <translation id="1390548061267426325">Avaa tavallisella välilehdellä</translation>
 <translation id="1393283411312835250">Aurinko ja pilviä</translation>
@@ -516,6 +515,7 @@
 <translation id="1545775234664667895">Asennettin teema <ph name="THEME_NAME" /></translation>
 <translation id="1546280085599573572">Tämä laajennus on vaihtanut Etusivu-painikkeella avattavan sivun.</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> haluaa asentaa kohteen (<ph name="EXTENSION_TYPE" />), joka voi:</translation>
+<translation id="1547808936554660006">Ymmärrän, että powerwash ei poista asennettuja eSIM-profiileita</translation>
 <translation id="1549275686094429035">ARC käytössä</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> haluaa käyttää tallennusvälinettä <ph name="VOLUME_NAME" />. Luvan saatuaan sovellus voi muokata tai poistaa tiedostojasi.</translation>
 <translation id="1552301827267621511"><ph name="EXTENSION_NAME" /> muutti hakupalvelua, se on nyt <ph name="SEARCH_PROVIDER_DOMAIN" /></translation>
@@ -552,6 +552,7 @@
 <translation id="1588438908519853928">Normaali</translation>
 <translation id="158849752021629804">Kotiverkko tarvitaan</translation>
 <translation id="1588870296199743671">Avaa linkki sovelluksessa...</translation>
+<translation id="1588919647604819635">Kakkospainikekortti</translation>
 <translation id="1589055389569595240">Näytä oikeinkirjoitus ja kielioppi</translation>
 <translation id="1591679663873027990">Myönnä Parallels Desktopille pääsy USB-laitteisiin. Parallels Desktop ei muista USB-laitetta, kun se on poistettu.</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> on poistanut ADB-virheenkorjauksen käytöstä, mikä nollaa laitteesi (<ph name="DEVICE_TYPE" />). Varmuuskopioi tiedostosi ennen kuin aloitat.</translation>
@@ -995,6 +996,7 @@
 
 Voit ylläpitää tilin asetuksia asentamalla laitteellesi Family Link ‑sovelluksen.  Lähetimme sinulle ohjeet sähköpostitse.</translation>
 <translation id="2040460856718599782">Hups! Jotain meni vikaan todennuksen aikana. Tarkista kirjautumistietosi ja yritä uudelleen.</translation>
+<translation id="2042279886444479655">Aktiiviset profiilit</translation>
 <translation id="2044014337866019681">Avaa istunto varmistamalla, että vahvistamasi tili on <ph name="ACCOUNT" />.</translation>
 <translation id="2044023416777079300">Modeemia ei rekisteröity</translation>
 <translation id="204497730941176055">Microsoftin varmenteen mallin nimi</translation>
@@ -1336,6 +1338,7 @@
 <translation id="2395616325548404795">Yrityshallinta on otettu käyttöön laitteessa <ph name="DEVICE_TYPE" />, mutta laitetunnuksen ja sijaintitietojen lähettäminen epäonnistui. Lisää nämä laitetta koskevat tiedot hallintakonsolista manuaalisesti.</translation>
 <translation id="2396387085693598316"><ph name="EXTENSION_NAME" /> on järjestelmänvalvojan estämä</translation>
 <translation id="2396783860772170191">Lisää nelinumeroinen PIN-koodi (0000–9999)</translation>
+<translation id="2398546389094871088">Laitteen powerwash ei poista eSIM-profiileitasi. Voit poistaa profiilit manuaalisesti <ph name="LINK_BEGIN" />Mobiiliasetuksista<ph name="LINK_END" />.</translation>
 <translation id="2399699884460174994">Ilmoitukset laitettu päälle</translation>
 <translation id="2399939490305346086">Suojausavaimen kirjautumisdata</translation>
 <translation id="2400664245143453337">Päivitys vaaditaan välittömästi</translation>
@@ -1753,6 +1756,7 @@
 <translation id="2844809857160214557">Katso tulostustyöt ja ylläpidä niitä</translation>
 <translation id="2845382757467349449">Näytä kirjanmerkkipalkki aina</translation>
 <translation id="284805635805850872">Poistetaanko haittaohjelmia?</translation>
+<translation id="2849035674501872372">Hae</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">Poisto epäonnistui</translation>
 <translation id="2849936225196189499">Kriittinen</translation>
@@ -2064,6 +2068,7 @@
 <translation id="3189187154924005138">Suuri kohdistin</translation>
 <translation id="3190558889382726167">Salasana on tallennettu</translation>
 <translation id="3192947282887913208">Äänitiedostot</translation>
+<translation id="3197453258332670132">Näytä valittuun tekstiin liittyviä tietoja klikkaamalla kakkospainikkeella tai painamalla pitkään</translation>
 <translation id="3199127022143353223">Palvelimet</translation>
 <translation id="3201422919974259695">Käytettävissä olevat USB-laitteet näkyvät täällä.</translation>
 <translation id="3202131003361292969">Reitti</translation>
@@ -2085,6 +2090,7 @@
 <translation id="3223531857777746191">Palautuspainike</translation>
 <translation id="3225084153129302039">Violetti oletusavatar</translation>
 <translation id="3225319735946384299">Koodin allekirjoitus</translation>
+<translation id="3226487301970807183">Näytä/piilota vasemmalle tasattu sivupaneeli</translation>
 <translation id="3227137524299004712">Mikrofoni</translation>
 <translation id="3233271424239923319">Varmuuskopioi Linux-sovellukset ja ‑tiedostot</translation>
 <translation id="3238192140106069382">Yhdistetään ja tarkistetaan</translation>
@@ -2354,6 +2360,7 @@
 <translation id="3515983984924808886">Vahvista nollaus koskettamalla suojausavainta uudelleen. Tällöin kaikki suojausavaimeen tallennetut tiedot, kuten sen PIN-koodi, poistetaan.</translation>
 <translation id="3518985090088779359">Hyväksy ja jatka</translation>
 <translation id="3519564332031442870">Tulostuksen backend-palvelu</translation>
+<translation id="3519938335881974273">Tallenna sivu nimellä…</translation>
 <translation id="3521606918211282604">Muuta levyn kokoa</translation>
 <translation id="3522088408596898827">Levytila on erittäin vähissä. Vapauta levytilaa ja yritä uudelleen.</translation>
 <translation id="3524965460886318643">Vie toiminta</translation>
@@ -2377,6 +2384,7 @@
 <translation id="3550593477037018652">Katkaise mobiiliverkkoyhteys</translation>
 <translation id="3550915441744863158">Chrome päivitetään automaattisesti, joten käytössäsi on aina uusin versio</translation>
 <translation id="3551320343578183772">Sulje välilehti</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">Tyhjennetty poistumisen yhteydessä</translation>
 <translation id="3554493885489666172"><ph name="PROFILE_NAME" /> ylläpitää laitettasi. Järjestelmänvalvojilla on pääsy kaikkien tämän laitteen profiilien dataan.</translation>
 <translation id="3555812735919707620">Poista laajennus</translation>
@@ -2429,6 +2437,7 @@
 <translation id="3604713164406837697">Vaihda taustakuva</translation>
 <translation id="3605780360466892872">Dave</translation>
 <translation id="3608576286259426129">Käyttäjän kuvan esikatselu</translation>
+<translation id="3609277884604412258">Pikahaku</translation>
 <translation id="3610369246614755442">Telineen tuuletin kaipaa huoltoa</translation>
 <translation id="361106536627977100">Flash-tiedot</translation>
 <translation id="3611655097742243705">Löydät lisää sovelluksia Play Kaupasta</translation>
@@ -3370,6 +3379,7 @@
 <translation id="4636682061478263818">Drive-tiedostot</translation>
 <translation id="4636930964841734540">Tietoja</translation>
 <translation id="4637083375689622795">Lisää toimintoja, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">Avaa kamera uudelleen</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{Teksti}other{# tekstiä}}</translation>
 <translation id="4638930039313743000">Ota käyttöön ADB-virheenkorjaus</translation>
 <translation id="4641539339823703554">Chrome ei voinut asettaa järjestelmän aikaa. Tarkista aika alta ja korjaa sitä tarvittaessa.</translation>
@@ -4120,6 +4130,7 @@
 <translation id="5499313591153584299">Tämä tiedosto voi olla haitallinen tietokoneellesi.</translation>
 <translation id="5499453227627332024">Linux-säiliöösi on saatavilla päivitys. Voit myös päivittää myöhemmin Asetukset-sovelluksesta.</translation>
 <translation id="5500709606820808700">Turvatarkistus tehtiin tänään</translation>
+<translation id="5501322521654567960">Vasemmalle tasattu sivupaneeli</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> jonka <ph name="DEVICE_NAME" /> lähetti ei tullut perille}other{<ph name="DEVICE_NAME" /> lähetti <ph name="ATTACHMENTS" />, mutta lähetys epäonnistui}}</translation>
 <translation id="5502500733115278303">Tuotu Firefoxista</translation>
 <translation id="5502915260472117187">Lapsi</translation>
@@ -5331,6 +5342,7 @@
 <translation id="6856348640027512653">Virtuaalitodellisuuslaitteiden tai ‑datan käyttö kielletty</translation>
 <translation id="6856459657722366306">Verkko <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, signaalin voimakkuus <ph name="SIGNAL_STRENGTH" /> %, lisätietoja</translation>
 <translation id="6856623341093082836">Määritä kosketusnäyttö ja säädä sen tarkkuutta</translation>
+<translation id="6857145580237920905">Poista eSIM-profiilit ennen powerwashia</translation>
 <translation id="6857699260879628349">Hae määritystiedot</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> s</translation>
 <translation id="6860097299815761905">Välityspalvelimen asetukset...</translation>
@@ -5912,6 +5924,7 @@
 <translation id="7506541170099744506">Yrityshallinta on otettu käyttöön laitteessa <ph name="DEVICE_TYPE" />.</translation>
 <translation id="7507207699631365376">Katso tämän palveluntarjoajan <ph name="BEGIN_LINK" />tietosuojakäytäntö<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Tilavastausvarmenne</translation>
+<translation id="7509246181739783082">Vahvista henkilöllisyys</translation>
 <translation id="7513029293694390567">Kirjaudu automaattisesti verkkosivustoille käyttämällä tallennettuja kirjautumistietoja. Jos toiminto ei ole käytössä, sinua pyydetään vahvistamaan kirjautuminen aina, kun kirjaudut sivustolle.</translation>
 <translation id="7514239104543605883">Kopioi laitteelle</translation>
 <translation id="7514365320538308">Lataa</translation>
@@ -6443,7 +6456,6 @@
 <translation id="8061091456562007989">Vaihda takaisin</translation>
 <translation id="8061991877177392872">Näyttää siltä, että olet jo ottanut Assistantin Voice Matchin käyttöön toisella laitteella. Tämän laitteen äänimalli on luotu aiemmista tallenteista.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 paperiarkki}other{{COUNT} paperiarkkia}}</translation>
-<translation id="8062879968880283306">Skannaa QR-koodi laitteen kameralla tai lisää operaattorisi antama aktivointikoodi.</translation>
 <translation id="8063235345342641131">Vihreä oletusavatar</translation>
 <translation id="8063535366119089408">Näytä tiedosto</translation>
 <translation id="8064279191081105977">Ryhmä <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6864,7 +6876,6 @@
 <translation id="8551588720239073785">Aika- ja päivämääräasetukset</translation>
 <translation id="8553342806078037065">Hallitse muita ihmisiä</translation>
 <translation id="8554899698005018844">Ei kieltä</translation>
-<translation id="8555195867496021627">Ei eSIM-profiileja saatavilla. Lataa uusi profiili <ph name="BEGIN_LINK" />täältä<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Jatka suojausavaimen koskettamista, kunnes sormenjälki tallennetaan</translation>
 <translation id="8557930019681227453">Luettelo</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Avaa kaikki uudessa ikku&amp;nassa}=1{Avaa uudessa ikku&amp;nassa}other{Avaa kaikki ({COUNT}) uudessa ikku&amp;nassa}}</translation>
@@ -7044,7 +7055,6 @@
 <translation id="8743164338060742337">Verkko <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, signaalin voimakkuus, <ph name="SIGNAL_STRENGTH" /> %, järjestelmänvalvojan ylläpitämä, yhdistä</translation>
 <translation id="8746654918629346731">Pyysit jo tätä: <ph name="EXTENSION_NAME" /></translation>
 <translation id="874689135111202667">{0,plural, =1{Ladataanko sivustoon yksi tiedosto?}other{Ladataanko sivustoon # tiedostoa?}}</translation>
-<translation id="8749556627204742888">Jaat tämä verkon muiden laitteen käyttäjien kanssa.</translation>
 <translation id="8749805710397399240">Näytön striimaus ei onnistu. Tarkista näytön tallentajan lupa järjestelmäasetuksista.</translation>
 <translation id="8749863574775030885">Käyttää tuntemattoman myyjän USB-laitteita.</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> haluaa yhdistää sarjaporttiin</translation>
@@ -7106,7 +7116,6 @@
 <translation id="8808744862003883508">Tällä sivulla näet kaikki Chromeen asennetut laajennukset.</translation>
 <translation id="8809147117840417135">Vaalea turkoosi</translation>
 <translation id="8811862054141704416">Crostinin mikrofonin käyttöoikeus</translation>
-<translation id="8812552797690463522">Tämä verkko on jaettu kanssasi.</translation>
 <translation id="8812593354822910461">Poista myös selaustiedot (<ph name="URL" />), jolloin sinut kirjataan ulos <ph name="DOMAIN" />-sivulta. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Muistuta myöhemmin</translation>
 <translation id="8813698869395535039">Sisäänkirjautuminen ei onnistu: <ph name="USERNAME" /></translation>
@@ -7318,7 +7327,6 @@
 <translation id="9021662811137657072">Virus havaittu</translation>
 <translation id="902236149563113779">Sivustot seuraavat yleensä kameran asentoa tarjotakseen AR-ominaisuuksia, kuten pelejä tai suuntailmoituksia</translation>
 <translation id="9022847679183471841">Tämä tili on jo henkilön <ph name="AVATAR_NAME" /> käytössä tässä tietokoneessa.</translation>
-<translation id="9023009238991294202">Muut laitteen käyttäjät voivat käyttää tätä verkkoa.</translation>
 <translation id="9023015617655685412">Lisää tämä välilehti kirjanmerkiksi…</translation>
 <translation id="9023909777842748145">Jos ominaisuus laitetaan pois päältä, laite voi edelleen lähettää järjestelmäpäivitysten, tietoturvan ja muiden tärkeiden palvelujen edellyttämiä tietoja.</translation>
 <translation id="9024127637873500333">Avaa uudessa välilehdessä</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 03b112a..9e2f1d8 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">I-restore ang default na page sa pagsisimula?</translation>
 <translation id="1388253969141979417">Pinapayagang gamitin ang iyong mikropono</translation>
 <translation id="1388728792929436380">Magre-restart ang <ph name="DEVICE_TYPE" /> kapag kumpleto na ang mga update.</translation>
-<translation id="138900021244932468">Walang profile ang natuklasan. Para mag-set up ng bagong network, i-scan ang QR code gamit ang camera ng device o ilagay ang code sa pag-activate na ibinigay ng iyong carrier.</translation>
 <translation id="139013308650923562">Pinapayagang gamitin ang mga font na naka-install sa iyong device</translation>
 <translation id="1390548061267426325">Buksan bilang Regular na Tab</translation>
 <translation id="1393283411312835250">Araw at mga ulap</translation>
@@ -4136,7 +4135,7 @@
 <translation id="5499313591153584299">Maaaring nakakapinsala ang file na ito para sa iyong computer.</translation>
 <translation id="5499453227627332024">May available na pag-upgrade para sa iyong Linux Container. Puwede ka ring mag-upgrade sa ibang pagkakataon mula sa app na Mga Setting.</translation>
 <translation id="5500709606820808700">Nagpatakbo ng pag-check sa kaligtasan ngayong araw</translation>
-<translation id="5501322521654567960">Panel sa gilid na naka-align sa kaliwa</translation>
+<translation id="5501322521654567960">Ang panel sa gilid na naka-align sa kaliwa</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{Hindi natanggap ang <ph name="ATTACHMENTS" /> mula sa <ph name="DEVICE_NAME" />}one{Hindi natanggap ang <ph name="ATTACHMENTS" /> mula sa <ph name="DEVICE_NAME" />}other{Hindi natanggap ang <ph name="ATTACHMENTS" /> mula sa <ph name="DEVICE_NAME" />}}</translation>
 <translation id="5502500733115278303">Nai-import Mula sa Firefox</translation>
 <translation id="5502915260472117187">Bata</translation>
@@ -5930,6 +5929,7 @@
 <translation id="7506541170099744506">Matagumpay na na-enroll ang iyong <ph name="DEVICE_TYPE" /> para sa pamamahala ng enterprise.</translation>
 <translation id="7507207699631365376">Tingnan ang <ph name="BEGIN_LINK" />patakaran sa privacy<ph name="END_LINK" /> ng provider na ito</translation>
 <translation id="7507930499305566459">Certificate sa Katayuan ng Responder</translation>
+<translation id="7509246181739783082">I-verify ang iyong pagkakakilanlan</translation>
 <translation id="7513029293694390567">Awtomatikong mag-sign in sa mga website gamit ang mga naka-store na kredensyal. Kung naka-disable, hihingan ka ng kumpirmasyon sa bawat pagkakataon bago ka mag-sign in sa isang website.</translation>
 <translation id="7514239104543605883">Kopyahin sa iyong device</translation>
 <translation id="7514365320538308">I-download</translation>
@@ -6462,7 +6462,6 @@
 <translation id="8061091456562007989">Ibalik ito sa dati</translation>
 <translation id="8061991877177392872">Mukhang na-set up mo na ang Voice Match sa iyong Assistant sa isa pang device. Ginamit ang mga nakaraang recording na ito para gumawa ng voice model sa device na ito.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 pirasong papel}one{{COUNT} pirasong papel}other{{COUNT} na pirasong papel}}</translation>
-<translation id="8062879968880283306">I-scan ang QR code gamit ang camera ng device o ilagay ang code sa pag-activate na ibinigay ng iyong carrier.</translation>
 <translation id="8063235345342641131">Default na berdeng avatar</translation>
 <translation id="8063535366119089408">Tingnan ang file</translation>
 <translation id="8064279191081105977">Grupong <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6884,7 +6883,6 @@
 <translation id="8551588720239073785">Mga setting ng petsa at oras</translation>
 <translation id="8553342806078037065">Pamahalaan ang iba pang mga tao</translation>
 <translation id="8554899698005018844">Walang wika</translation>
-<translation id="8555195867496021627">Walang available na profile ng eSIM. Mag-download ng bagong profile <ph name="BEGIN_LINK" />dito<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Patuloy na pindutin ang iyong security key hanggang ma-capture ang fingerprint mo</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Buksan Lahat sa &amp;Bagong Window}=1{Buksan sa &amp;Bagong Window}one{Buksan Lahat ({COUNT}) sa &amp;Bagong Window}other{Buksan Lahat ({COUNT}) sa &amp;Bagong Window}}</translation>
@@ -7064,7 +7062,6 @@
 <translation id="8743164338060742337">Network <ph name="NETWORK_INDEX" /> sa <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> Lakas ng Signal <ph name="SIGNAL_STRENGTH" />%, Pinapamahalaan ng iyong Administrator, Kumonekta</translation>
 <translation id="8746654918629346731">Nahiling mo na ang "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Mag-upload ng isang file sa site na ito?}one{Mag-upload ng # file sa site na ito?}other{Mag-upload ng # na file sa site na ito?}}</translation>
-<translation id="8749556627204742888">Ibinabahagi mo ang network na ito sa iba pang user ng device na ito.</translation>
 <translation id="8749805710397399240">Hindi ma-cast ang iyong screen. Suriin ang pahintulot sa Pag-record ng Screen sa Mga Kagustuhan sa System.</translation>
 <translation id="8749863574775030885">Mag-access ng mga USB device mula sa isang hindi kilalang vendor</translation>
 <translation id="8750155211039279868">Gustong kumonekta ng <ph name="ORIGIN" /> sa isang serial port</translation>
@@ -7127,7 +7124,6 @@
 <translation id="8808744862003883508">Makikita mo sa page na ito ang lahat ng extension na naka-install sa Chrome.</translation>
 <translation id="8809147117840417135">Light teal</translation>
 <translation id="8811862054141704416">Access sa mikropono ng Crostini</translation>
-<translation id="8812552797690463522">Ibinabahagi sa iyo ang network na ito.</translation>
 <translation id="8812593354822910461">I-clear din ang data mula sa pag-browse (<ph name="URL" />) na posibleng mag-sign out sa iyo sa <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Ipaalala sa akin sa ibang pagkakataon</translation>
 <translation id="8813698869395535039">Hindi makapag-sign in sa <ph name="USERNAME" /></translation>
@@ -7340,7 +7336,6 @@
 <translation id="9021662811137657072">May nakitang virus</translation>
 <translation id="902236149563113779">Karaniwang tina-track ng mga site ang posisyon ng iyong camera para sa mga feature ng AR, gaya ng mga laro o mga heads-up na direksyon</translation>
 <translation id="9022847679183471841">Ang account na ito ay ginagamit na ni <ph name="AVATAR_NAME" /> sa computer na ito.</translation>
-<translation id="9023009238991294202">Magagamit ng iba pang user ng device na ito ang network na ito.</translation>
 <translation id="9023015617655685412">I-bookmark ang tab na ito...</translation>
 <translation id="9023909777842748145">Ang pag-off sa feature na ito ay hindi nakakaapekto sa kakayahan ng iyong device na ipadala ang impormasyong kinakailangan para sa mahahalagang serbisyo tulad ng mga pag-update ng system at seguridad.</translation>
 <translation id="9024127637873500333">&amp;Buksan sa Bagong Tab</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index cd4ef3a4..98e60b9 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -357,7 +357,6 @@
 <translation id="138784436342154190">Restaurer la page de démarrage par défaut?</translation>
 <translation id="1388253969141979417">Autorisés à utiliser votre microphone</translation>
 <translation id="1388728792929436380">L'appareil <ph name="DEVICE_TYPE" /> redémarrera lorsque l'installation des mises à jour sera terminée.</translation>
-<translation id="138900021244932468">Aucun profil n'a été trouvé. Pour configurer un nouveau réseau, numérisez le code QR à l'aide de l'appareil photo de votre appareil ou entrez le code d'activation fourni par votre fournisseur de services.</translation>
 <translation id="139013308650923562">Autorisés à utiliser les polices installées sur votre appareil</translation>
 <translation id="1390548061267426325">Ouvrir dans un onglet ordinaire</translation>
 <translation id="1393283411312835250">Soleil et nuages</translation>
@@ -5913,6 +5912,7 @@
 <translation id="7506541170099744506">Votre <ph name="DEVICE_TYPE" /> est bien enregistré pour la gestion d'entreprise.</translation>
 <translation id="7507207699631365376">Consulter la <ph name="BEGIN_LINK" />politique de confidentialité<ph name="END_LINK" /> de ce fournisseur</translation>
 <translation id="7507930499305566459">Certificat du répondeur d'état</translation>
+<translation id="7509246181739783082">Vérifier votre identité</translation>
 <translation id="7513029293694390567">Connexion automatique à des sites Web à l'aide d'authentifiants enregistrés. Si cette fonctionnalité est désactivée, une confirmation vous est demandée avant chaque connexion à un site Web.</translation>
 <translation id="7514239104543605883">Copier vers votre appareil</translation>
 <translation id="7514365320538308">Télécharger</translation>
@@ -6444,7 +6444,6 @@
 <translation id="8061091456562007989">Rétablir</translation>
 <translation id="8061991877177392872">On dirait que vous avez déjà configuré Voice Match avec votre Assistant sur un autre appareil. Ces enregistrements précédents ont été utilisés pour créer un modèle vocal sur cet appareil.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 feuille de papier}one{{COUNT} feuille de papier}other{{COUNT} feuilles de papier}}</translation>
-<translation id="8062879968880283306">Numérisez le code QR à l'aide de l'appareil photo de votre appareil ou entrez le code d'activation fourni par votre fournisseur de services.</translation>
 <translation id="8063235345342641131">Avatar vert par défaut</translation>
 <translation id="8063535366119089408">Afficher le fichier</translation>
 <translation id="8064279191081105977">Groupe <ph name="GROUP_NAME" /> : <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -7044,7 +7043,6 @@
 <translation id="8743164338060742337">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, puissance du signal de <ph name="NETWORK_PROVIDER_NAME" /> : <ph name="SIGNAL_STRENGTH" /> %, géré par votre administrateur, connexion</translation>
 <translation id="8746654918629346731">Vous avez déjà demandé « <ph name="EXTENSION_NAME" /> »</translation>
 <translation id="874689135111202667">{0,plural, =1{Téléverser un fichier sur ce site?}one{Téléverser # fichier sur ce site?}other{Téléverser # fichiers sur ce site?}}</translation>
-<translation id="8749556627204742888">Vous partagez ce réseau avec d'autres utilisateurs de cet appareil.</translation>
 <translation id="8749805710397399240">Impossible de diffuser votre écran. Vérifiez l'autorisation Enregistrement de l'écran dans les Préférences Système.</translation>
 <translation id="8749863574775030885">Accéder aux appareils USB d’un fournisseur inconnu</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> veut se connecter à un port de série</translation>
@@ -7107,7 +7105,6 @@
 <translation id="8808744862003883508">Vous pouvez voir dans cette page toutes les extensions installées dans Chrome.</translation>
 <translation id="8809147117840417135">Turquoise clair</translation>
 <translation id="8811862054141704416">Accès au microphone pour Crostini</translation>
-<translation id="8812552797690463522">Ce réseau est partagé avec vous.</translation>
 <translation id="8812593354822910461">Aussi effacer les données de navigation (<ph name="URL" />), ce qui vous déconnectera de <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Me le rappeler plus tard</translation>
 <translation id="8813698869395535039">Impossible de connecter <ph name="USERNAME" /></translation>
@@ -7319,7 +7316,6 @@
 <translation id="9021662811137657072">Virus détecté!</translation>
 <translation id="902236149563113779">Les sites suivent généralement la position de votre caméra pour offrir des fonctionnalités de réalité augmentée, comme des jeux ou des indications en mode affichage tête haute</translation>
 <translation id="9022847679183471841">Ce compte est déjà utilisé sur cet ordinateur par <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Les autres utilisateurs de cet appareil peuvent utiliser ce réseau.</translation>
 <translation id="9023015617655685412">Ajouter cet onglet aux favoris</translation>
 <translation id="9023909777842748145">La désactivation de cette fonctionnalité n'empêche pas votre appareil d'envoyer les données nécessaires aux services essentiels, comme les mises à jour du système et la sécurité.</translation>
 <translation id="9024127637873500333">&amp;Ouvrir dans un nouvel onglet</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 2bbc98b..9d604b7a 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -357,7 +357,6 @@
 <translation id="138784436342154190">Restaurer la page de démarrage par défaut ?</translation>
 <translation id="1388253969141979417">Autorisé à utiliser votre micro</translation>
 <translation id="1388728792929436380">Ce <ph name="DEVICE_TYPE" /> va redémarrer lorsque les mises à jour seront installées.</translation>
-<translation id="138900021244932468">Aucun profil n'a été trouvé. Pour configurer un nouveau réseau, scannez le code QR à l'aide de l'appareil photo ou saisissez le code d'activation fourni par votre opérateur.</translation>
 <translation id="139013308650923562">Autorisés à utiliser les polices installées sur votre appareil</translation>
 <translation id="1390548061267426325">Ouvrir dans un onglet standard</translation>
 <translation id="1393283411312835250">Soleil et nuages</translation>
@@ -5902,6 +5901,7 @@
 <translation id="7506541170099744506">Votre <ph name="DEVICE_TYPE" /> a bien été enregistré pour bénéficier de la gestion d'entreprise.</translation>
 <translation id="7507207699631365376">Afficher les <ph name="BEGIN_LINK" />Règles de confidentialité<ph name="END_LINK" /> de ce fournisseur</translation>
 <translation id="7507930499305566459">Certificat du répondeur d'état</translation>
+<translation id="7509246181739783082">Valider votre identité</translation>
 <translation id="7513029293694390567">Permet de se connecter automatiquement aux sites Web à l'aide des identifiants enregistrés. Si cette fonctionnalité est désactivée, vous êtes invité à confirmer chaque connexion à un site Web.</translation>
 <translation id="7514239104543605883">Copier sur votre appareil</translation>
 <translation id="7514365320538308">Télécharger</translation>
@@ -6434,7 +6434,6 @@
 <translation id="8061091456562007989">Rétablir les anciens paramètres</translation>
 <translation id="8061991877177392872">Apparemment, vous avez déjà configuré Voice Match avec l'Assistant sur un autre appareil. Ces enregistrements précédents ont été utilisés pour créer une empreinte vocale sur cet appareil.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 feuille de papier}one{{COUNT} feuille de papier}other{{COUNT} feuilles de papier}}</translation>
-<translation id="8062879968880283306">Scannez le code QR à l'aide de l'appareil photo ou saisissez le code d'activation fourni par votre opérateur.</translation>
 <translation id="8063235345342641131">Avatar vert par défaut</translation>
 <translation id="8063535366119089408">Afficher le fichier</translation>
 <translation id="8064279191081105977">Groupe <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6855,7 +6854,6 @@
 <translation id="8551588720239073785">Paramètres de date et d'heure</translation>
 <translation id="8553342806078037065">Gérer d'autres utilisateurs</translation>
 <translation id="8554899698005018844">Aucune langue</translation>
-<translation id="8555195867496021627">Aucun profil eSIM disponible. Téléchargez un nouveau profil <ph name="BEGIN_LINK" />ici<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Appuyez sur le lecteur d'empreinte digitale de la clé de sécurité jusqu'à ce que votre empreinte soit enregistrée</translation>
 <translation id="8557930019681227453">Manifeste</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Tout ouvrir dans une &amp;nouvelle fenêtre}=1{Ouvrir dans une &amp;nouvelle fenêtre}one{Tout ouvrir ({COUNT}) dans une &amp;nouvelle fenêtre}other{Tout ouvrir ({COUNT}) dans une &amp;nouvelle fenêtre}}</translation>
@@ -7035,7 +7033,6 @@
 <translation id="8743164338060742337">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, force du signal : <ph name="SIGNAL_STRENGTH" /> %, géré par votre administrateur, connexion</translation>
 <translation id="8746654918629346731">Vous avez déjà fait une demande pour "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Importer un fichier sur ce site ?}one{Importer # fichier sur ce site ?}other{Importer # fichiers sur ce site ?}}</translation>
-<translation id="8749556627204742888">Vous partagez ce réseau avec d'autres utilisateurs de cet appareil.</translation>
 <translation id="8749805710397399240">Impossible de caster votre écran. Vérifiez l'autorisation "Enregistreur d'écran" dans les préférences système.</translation>
 <translation id="8749863574775030885">Accéder à des appareils USB d'un fournisseur inconnu</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> tente de se connecter à un port de série</translation>
@@ -7098,7 +7095,6 @@
 <translation id="8808744862003883508">Sur cette page, vous pouvez consulter toutes les extensions installées dans Chrome.</translation>
 <translation id="8809147117840417135">Turquoise clair</translation>
 <translation id="8811862054141704416">Accès au micro sur Crostini</translation>
-<translation id="8812552797690463522">Ce réseau est partagé avec vous.</translation>
 <translation id="8812593354822910461">Effacer également les données de navigation (<ph name="URL" />), ce qui vous déconnectera de <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Plus tard</translation>
 <translation id="8813698869395535039">Impossible de se connecter au compte <ph name="USERNAME" /></translation>
@@ -7310,7 +7306,6 @@
 <translation id="9021662811137657072">Virus détecté.</translation>
 <translation id="902236149563113779">Les sites suivent généralement la position de votre caméra pour offrir des fonctionnalités de réalité augmentée, comme des jeux ou des indications d'itinéraire</translation>
 <translation id="9022847679183471841">Ce compte est déjà utilisé sur cet ordinateur par <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Les autres utilisateurs de cet appareil peuvent employer ce réseau.</translation>
 <translation id="9023015617655685412">Ajouter cet onglet aux favoris…</translation>
 <translation id="9023909777842748145">Sachez que la désactivation de cette fonctionnalité n'empêche pas votre appareil d'envoyer les informations nécessaires pour bénéficier de services essentiels tels que les mises à jour du système et la sécurité.</translation>
 <translation id="9024127637873500333">&amp;Ouvrir dans un nouvel onglet</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index f7b54671..496cfa9 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">Queres restaurar a páxina de inicio predeterminada?</translation>
 <translation id="1388253969141979417">Sitios que poden usar o micrófono</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> reiniciarase cando se completen as actualizacións.</translation>
-<translation id="138900021244932468">Non se atopou ningún perfil. Para configurar unha rede nova, escanea o código QR coa cámara do dispositivo ou escribe o código de activación que che proporcionou o teu operador.</translation>
 <translation id="139013308650923562">Sitios que teñen permiso para utilizar os tipos de letra instalados no dispositivo</translation>
 <translation id="1390548061267426325">Abrir como pestana normal</translation>
 <translation id="1393283411312835250">Sol e nubes</translation>
@@ -5911,6 +5910,7 @@
 <translation id="7506541170099744506">O teu <ph name="DEVICE_TYPE" /> inscribiuse correctamente para a xestión de empresas.</translation>
 <translation id="7507207699631365376">Consulta a <ph name="BEGIN_LINK" />Política de privacidade<ph name="END_LINK" /> deste fornecedor</translation>
 <translation id="7507930499305566459">Certificado de resposta de estado</translation>
+<translation id="7509246181739783082">Verifica a túa identidade</translation>
 <translation id="7513029293694390567">Inicia sesión automaticamente nos sitios web coas credenciais almacenadas. Se se desactiva a función, solicitaráseche sempre a confirmación antes de iniciar sesión nun sitio web.</translation>
 <translation id="7514239104543605883">Copiar no teu dispositivo</translation>
 <translation id="7514365320538308">Descargar</translation>
@@ -6442,7 +6442,6 @@
 <translation id="8061091456562007989">Desfacer cambio</translation>
 <translation id="8061991877177392872">Parece que xa configuraches Voice Match co teu Asistente noutro dispositivo. Esas gravacións anteriores utilizáronse para crear un modelo de voz neste dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 folla}other{{COUNT} follas}}</translation>
-<translation id="8062879968880283306">Escanea o código QR coa cámara do dispositivo ou escribe o código de activación que che proporcionou o teu operador.</translation>
 <translation id="8063235345342641131">Avatar verde predeterminado</translation>
 <translation id="8063535366119089408">Ver ficheiro</translation>
 <translation id="8064279191081105977">Grupo <ph name="GROUP_NAME" />. <ph name="GROUP_CONTENTS" />. <ph name="COLLAPSED_STATE" /></translation>
@@ -6863,7 +6862,6 @@
 <translation id="8551588720239073785">Configuración de data e hora</translation>
 <translation id="8553342806078037065">Xestionar outras persoas</translation>
 <translation id="8554899698005018844">Ningún idioma</translation>
-<translation id="8555195867496021627">Non hai perfís eSIM dispoñibles. Podes <ph name="BEGIN_LINK" />descargar un novo<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Sigue tocando a chave de seguranza ata que se capture a túa impresión dixital</translation>
 <translation id="8557930019681227453">Manifesto</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Abrir todos nunha ventá &amp;nova}=1{Abrir nunha ventá &amp;nova}other{Abrir todos ({COUNT}) nunha ventá &amp;nova}}</translation>
@@ -7043,7 +7041,6 @@
 <translation id="8743164338060742337">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, intensidade do sinal do <ph name="SIGNAL_STRENGTH" /> %, xestionada polo teu administrador, conectar</translation>
 <translation id="8746654918629346731">Xa solicitaches a extensión <ph name="EXTENSION_NAME" /></translation>
 <translation id="874689135111202667">{0,plural, =1{Queres cargar un ficheiro neste sitio?}other{Queres cargar # ficheiros neste sitio?}}</translation>
-<translation id="8749556627204742888">Estás compartindo esta rede con outros usuarios deste dispositivo.</translation>
 <translation id="8749805710397399240">Non se pode emitir o contido da túa pantalla. Vai a System Preferences (preferencias do sistema) e comproba o permiso Screen Recording (gravación de pantalla).</translation>
 <translation id="8749863574775030885">Acceder a dispositivos USB desde un provedor descoñecido</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> quere conectarse a un porto en serie</translation>
@@ -7105,7 +7102,6 @@
 <translation id="8808744862003883508">Nesta páxina podes ver todas as extensións instaladas en Chrome.</translation>
 <translation id="8809147117840417135">Verde azulado claro</translation>
 <translation id="8811862054141704416">Acceso ao micrófono de Crostini</translation>
-<translation id="8812552797690463522">Esta rede compártese contigo.</translation>
 <translation id="8812593354822910461">Borrar tamén os datos de navegación (<ph name="URL" />), o que pode provocar que peches sesión en <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Lembrarmo máis tarde</translation>
 <translation id="8813698869395535039">Non se pode iniciar a sesión de <ph name="USERNAME" /></translation>
@@ -7317,7 +7313,6 @@
 <translation id="9021662811137657072">Virus detectado</translation>
 <translation id="902236149563113779">Os sitios adoitan facer un seguimento da posición da cámara para ofrecerche determinadas funcións relacionadas coa realidade aumentada (por exemplo, xogos ou indicacións)</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> xa está utilizando esta conta neste ordenador.</translation>
-<translation id="9023009238991294202">Os demais usuarios deste dispositivo poden usar esta rede.</translation>
 <translation id="9023015617655685412">Engadir esta pestana aos marcadores…</translation>
 <translation id="9023909777842748145">A desactivación desta función non afecta á capacidade do dispositivo de enviar a información necesaria para servizos esenciais, como as actualizacións do sistema e a seguranza.</translation>
 <translation id="9024127637873500333">&amp;Abrir nunha pestana nova</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index b94a888..97d3b93 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -357,7 +357,6 @@
 <translation id="138784436342154190">ડિફૉલ્ટ સ્ટાર્ટઅપ પૃષ્ઠને પુનઃસ્થાપિત કરીએ?</translation>
 <translation id="1388253969141979417">તમારા માઇક્રોફોનનો ઉપયોગ કરવાની મંજૂરી છે</translation>
 <translation id="1388728792929436380">અપડેટ પૂર્ણ થશે ત્યારે તમારું <ph name="DEVICE_TYPE" /> ફરી શરૂ થશે.</translation>
-<translation id="138900021244932468">કોઈ પ્રોફાઇલ મળી નથી. નવા નેટવર્કનું સેટઅપ કરવા માટે, ડિવાઇસના કૅમેરાનો ઉપયોગ કરીને QR કોડ સ્કૅન કરો અથવા તમારા મોબાઇલ ઑપરેટરે પ્રદાન કરેલો સક્રિયકરણનો કોડ દાખલ કરો.</translation>
 <translation id="139013308650923562">તમારા ડિવાઇસ પર ઇન્સ્ટૉલ કરેલા ફૉન્ટનો ઉપયોગ કરવાની મંજૂરી છે</translation>
 <translation id="1390548061267426325">નિયમિત ટૅબ તરીકે ખોલો</translation>
 <translation id="1393283411312835250">સૂર્ય અને વાદળો</translation>
@@ -5900,6 +5899,7 @@
 <translation id="7506541170099744506">એન્ટરપ્રાઇઝ સંચાલન માટે તમારા <ph name="DEVICE_TYPE" /> ની સફળતાપૂર્વક નોંધણી કરવામાં આવી.</translation>
 <translation id="7507207699631365376">આ પ્રદાતાની <ph name="BEGIN_LINK" />પ્રાઇવસી પૉલિસી<ph name="END_LINK" /> જુઓ</translation>
 <translation id="7507930499305566459">પ્રતિસાદકર્તાની સ્થિતિનું પ્રમાણપત્ર</translation>
+<translation id="7509246181739783082">તમારી ઓળખ ચકાસો</translation>
 <translation id="7513029293694390567">સંગ્રહિત ઓળખપત્રનો ઉપયોગ કરીને વેબસાઇટમાં ઑટોમૅટિક રીતે સાઇન ઇન કરો. જો બંધ કરેલ હોય, તો વેબસાઇટમાં સાઇન ઇન કરતાં પહેલાં દર વખતે તમને પુષ્ટિકરણ માટે કહેવામાં આવશે.</translation>
 <translation id="7514239104543605883">તમારા ડિવાઇસ પર કૉપિ કરો</translation>
 <translation id="7514365320538308">ડાઉનલોડ કરો</translation>
@@ -6426,7 +6426,6 @@
 <translation id="8061091456562007989">તેને પાછું બદલો</translation>
 <translation id="8061991877177392872">એવું લાગી રહ્યું છે કે તમે પહેલેથી જ અન્ય ડિવાઇસ પર તમારા Assistant વડે Voice Matchનું સેટઅપ કર્યું છે. આ ડિવાઇસ પર વૉઇસ મૉડલ બનાવવા માટે, અગાઉના આ બધા રેકોર્ડિંગનો ઉપયોગ કરવામાં આવ્યો હતો.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{કાગળની 1 શીટ}one{કાગળની {COUNT} શીટ}other{કાગળની {COUNT} શીટ}}</translation>
-<translation id="8062879968880283306">ડિવાઇસના કૅમેરાનો ઉપયોગ કરીને QR કોડ સ્કૅન કરો અથવા તમારા મોબાઇલ ઑપરેટર દ્વારા પ્રદાન કરવામાં આવેલો 'સક્રિયકરણનો કોડ' દાખલ કરો.</translation>
 <translation id="8063235345342641131">ડિફોલ્ટ લીલો અવતાર</translation>
 <translation id="8063535366119089408">ફાઇલ જુઓ</translation>
 <translation id="8064279191081105977">ગ્રૂપ <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6847,7 +6846,6 @@
 <translation id="8551588720239073785">તારીખ અને સમયનાં સેટિંગ</translation>
 <translation id="8553342806078037065">અન્ય લોકોને મેનેજ કરો</translation>
 <translation id="8554899698005018844">કોઈ ભાષા નથી</translation>
-<translation id="8555195867496021627">કોઈ ઇ-સિમ પ્રોફાઇલ ઉપલબ્ધ નથી. <ph name="BEGIN_LINK" />અહીં<ph name="END_LINK" /> નવી પ્રોફાઇલ ડાઉનલોડ કરો.</translation>
 <translation id="8557022314818157177">જ્યાં સુધી તમારી ફિંગરપ્રિન્ટ કૅપ્ચર ન થાય, ત્યાં સુધી તમારી સિક્યુરિટી કીનો સ્પર્શ કરતા રહો</translation>
 <translation id="8557930019681227453">સ્પષ્ટ</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{તમામ URLને &amp;નવી વિન્ડોમાં ખોલો}=1{&amp;નવી વિન્ડોમાં ખોલો}one{તમામ ({COUNT}) URLને &amp;નવી વિન્ડોમાં ખોલો}other{તમામ ({COUNT}) URLને &amp;નવી વિન્ડોમાં ખોલો}}</translation>
@@ -7027,7 +7025,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" />માંથી નેટવર્ક <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> સિગ્નલની સશક્તતા <ph name="SIGNAL_STRENGTH" />%, તમારા વ્યવસ્થાપક દ્વારા મેનેજ કરવામાં આવે છે, કનેક્ટ કરો</translation>
 <translation id="8746654918629346731">તમે પહેલેથી "<ph name="EXTENSION_NAME" />"ની વિનંતી કરેલી છે</translation>
 <translation id="874689135111202667">{0,plural, =1{આ સાઇટ પર એક ફાઇલ અપલોડ કરીએ?}one{આ સાઇટ પર # ફાઇલો અપલોડ કરીએ?}other{આ સાઇટ પર # ફાઇલો અપલોડ કરીએ?}}</translation>
-<translation id="8749556627204742888">તમે આ નેટવર્કને આ ડિવાઇસના અન્ય વપરાશકર્તાઓ સાથે શેર કરી રહ્યાં છો.</translation>
 <translation id="8749805710397399240">તમારી સ્ક્રીન કાસ્ટ કરી શકાતી નથી. સિસ્ટમની પસંદગીઓમાં સ્ક્રીન રેકોર્ડિંગની પરવાનગી ચેક કરો.</translation>
 <translation id="8749863574775030885">અજાણ્યા વિક્રેતા પાસેથી USB ઉપકરણો ઍક્સેસ કરો</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> સિરીઅલ પોર્ટ સાથે કનેક્ટ કરવા માગે છે</translation>
@@ -7090,7 +7087,6 @@
 <translation id="8808744862003883508">આ પેજ પર તમે Chromeમાં ઇન્સ્ટૉલ થયેલા બધા એક્સ્ટેંશન જોઈ શકો છો.</translation>
 <translation id="8809147117840417135">આછો મોરપીંછ</translation>
 <translation id="8811862054141704416">માઇક્રોફોનને Crostiniનો ઍક્સેસ આપવાના સેટિંગ</translation>
-<translation id="8812552797690463522">આ નેટવર્ક તમારી સાથે શેર કરેલું છે.</translation>
 <translation id="8812593354822910461">બ્રાઉઝિંગ ડેટા (<ph name="URL" />) પણ સાફ કરો જે તમને <ph name="DOMAIN" />માંથી સાઇન આઉટ કરશે. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">મને પછીથી યાદ કરાવો</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> પર સાઇન ઇન કરી શકતાં નથી</translation>
@@ -7302,7 +7298,6 @@
 <translation id="9021662811137657072">વાયરસ મળ્યો</translation>
 <translation id="902236149563113779">રમતો અથવા ચેતવણીના દિશાનિર્દેશો જેવી AR સુવિધાઓ માટે, સાઇટ સામાન્ય રીતે તમારા કૅમેરાની સ્થિતિને ટ્રૅક કરે છે</translation>
 <translation id="9022847679183471841">આ કમ્પ્યુટર પર <ph name="AVATAR_NAME" /> દ્વારા આ એકાઉન્ટ પહેલાંથી જ ઉપયોગમાં લેવાઈ રહ્યું છે.</translation>
-<translation id="9023009238991294202">આ ઉપકરણના અન્ય વપરાશકર્તાઓ આ નેટવર્ક વાપરી શકે છે.</translation>
 <translation id="9023015617655685412">આ ટૅબને બુકમાર્ક કરો...</translation>
 <translation id="9023909777842748145">આ સુવિધાને બંધ કરવાથી સિસ્ટમ અપડેટ અને સુરક્ષા જેવી આવશ્યક સેવાઓ માટે આવશ્યક માહિતી મોકલવાની તમારા ડિવાઇસની ક્ષમતાને અસર થતી નથી.</translation>
 <translation id="9024127637873500333">નવા ટૅબમાં &amp;ખોલો</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 0599769..86647b7 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -62,7 +62,7 @@
 <translation id="1066613507389053689">Chrome OS को अपडेट करना ज़रूरी है</translation>
 <translation id="1067048845568873861">निर्मित</translation>
 <translation id="1067922213147265141">Google की दूसरी सेवाएंं</translation>
-<translation id="1069355737714877171"><ph name="PROFILE_NAME" /> नाम के ई-सिम प्रोफ़ाइल को हटाएं</translation>
+<translation id="1069355737714877171"><ph name="PROFILE_NAME" /> नाम की ई-सिम प्रोफ़ाइल को हटाएं</translation>
 <translation id="1070377999570795893">आपके कंप्‍यूटर पर किसी अन्‍य प्रोग्राम ने ऐसा एक्‍सटेंशन जोड़ा है जो Chrome के काम करने के तरीके को बदल सकता है.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">डिफ़ॉल्ट स्टार्टअप पेज को बहाल करना चाहते हैं?</translation>
 <translation id="1388253969141979417">आपका माइक्रोफ़ोन इस्तेमाल करने की अनुमति है</translation>
 <translation id="1388728792929436380">अपडेट पूरा होने पर <ph name="DEVICE_TYPE" /> रीस्टार्ट होगा.</translation>
-<translation id="138900021244932468">कोई भी प्रोफ़ाइल नहीं मिली. नया नेटवर्क सेट अप करने के लिए, अपने डिवाइस के कैमरे से क्यूआर कोड को स्कैन करें या मोबाइल नेटवर्क सेवा देने वाली कंपनी से मिला ऐक्टिवेशन कोड डालें.</translation>
 <translation id="139013308650923562">साइटों को आपके डिवाइस पर इंस्टॉल किए गए फ़ॉन्ट इस्तेमाल करने की अनुमति है</translation>
 <translation id="1390548061267426325">नियमित टैब के रूप में खोलें</translation>
 <translation id="1393283411312835250">सूरज और बादल</translation>
@@ -5928,6 +5927,7 @@
 <translation id="7506541170099744506">आपका <ph name="DEVICE_TYPE" /> एंटरप्राइज़ प्रबंधन के लिए सफलतापूर्वक नामांकित हो गया है.</translation>
 <translation id="7507207699631365376">इस सेवा देने वाले की <ph name="BEGIN_LINK" />निजता नीति<ph name="END_LINK" /> देखें</translation>
 <translation id="7507930499305566459">स्थिति प्रतिसादी प्रमाणपत्र</translation>
+<translation id="7509246181739783082">अपनी पहचान की पुष्टि करें</translation>
 <translation id="7513029293694390567">स्टोर किए गए क्रेडेंशियल के ज़रिए वेबसाइट में अपने आप साइन इन करें. बंद होने पर, आपसे किसी वेबसाइट में साइन इन करने से पहले हर बार पुष्टि करने के लिए कहा जाएगा.</translation>
 <translation id="7514239104543605883">अपने डिवाइस में कॉपी करें</translation>
 <translation id="7514365320538308">डाउनलोड करें</translation>
@@ -6459,7 +6459,6 @@
 <translation id="8061091456562007989">पहले जैसा कर दें</translation>
 <translation id="8061991877177392872">ऐसा लगता है कि आपने पहले ही किसी दूसरे डिवाइस पर, Assistant के साथ वॉइस मैच की सुविधा को सेट अप कर लिया है. इस डिवाइस पर आवाज़ का नमूना बनाने के लिए, इन पुरानी रिकॉर्डिंग का इस्तेमाल किया गया है.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{काग़ज़ की 1 शीट}one{काग़ज़ की {COUNT} शीट}other{काग़ज़ की {COUNT} शीट}}</translation>
-<translation id="8062879968880283306">अपने डिवाइस के कैमरे से क्यूआर कोड को स्कैन करें या मोबाइल और इंटरनेट सेवा देने वाली कंपनी से मिला ऐक्टिवेशन कोड डालें.</translation>
 <translation id="8063235345342641131">डिफ़ॉल्ट हरा अवतार</translation>
 <translation id="8063535366119089408">फ़ाइल देखें</translation>
 <translation id="8064279191081105977"><ph name="GROUP_NAME" /> ग्रुप - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6880,7 +6879,6 @@
 <translation id="8551588720239073785">तारीख और समय की सेटिंग</translation>
 <translation id="8553342806078037065">अन्य लोगों को प्रबंधित करें</translation>
 <translation id="8554899698005018844">कोई भाषा नहीं</translation>
-<translation id="8555195867496021627">कोई भी ई-सिम प्रोफ़ाइल उपलब्ध नहीं है. नई प्रोफ़ाइल <ph name="BEGIN_LINK" />यहां<ph name="END_LINK" /> से डाउनलोड करें.</translation>
 <translation id="8557022314818157177">अपनी सुरक्षा कुंजी को तब तक छूते रहें, जब तक फ़िंगरप्रिंट कैप्चर न हाे जाए</translation>
 <translation id="8557930019681227453">मेनिफ़ेस्ट</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{सभी यूआरएल को &amp;नई विंडो में खोलें}=1{यूआरएल को &amp;नई विंडो में खोलें}one{दिया गया ({COUNT}) यूआरएल &amp;नई विंडो में खोलें}other{सभी ({COUNT}) यूआरएल को &amp;नई विंडो में खोलें}}</translation>
@@ -7060,7 +7058,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" /> में से नेटवर्क <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, सिग्नल की क्षमता <ph name="SIGNAL_STRENGTH" />%, आपका एडमिन प्रबंधित करता है, कनेक्ट करें</translation>
 <translation id="8746654918629346731">आपने "<ph name="EXTENSION_NAME" />" का अनुरोध किया हुआ है</translation>
 <translation id="874689135111202667">{0,plural, =1{इस साइट पर एक फ़ाइल अपलोड करें?}one{इस साइट पर # फ़ाइलें अपलोड करें?}other{इस साइट पर # फ़ाइलें अपलोड करें?}}</translation>
-<translation id="8749556627204742888">आप इस डिवाइस के दूसरे उपयोगकर्ताओं के साथ यह नेटवर्क शेयर कर रहे हैं.</translation>
 <translation id="8749805710397399240">आपकी स्क्रीन को कास्ट नहीं किया जा सकता. सिस्टम की प्राथमिकताओं में स्क्रीन रिकॉर्ड करने की अनुमति की जांच करें.</translation>
 <translation id="8749863574775030885">ऐसा वेंडर जिसकी जानकारी नहीं है, उसके USB डिवाइस को ऐक्‍सेस करें</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> सीरियल पोर्ट से कनेक्ट करना चाहता है</translation>
@@ -7123,7 +7120,6 @@
 <translation id="8808744862003883508">इस पेज पर, Chrome में इंस्टॉल किए गए सभी एक्सटेंशन दिखेंगे.</translation>
 <translation id="8809147117840417135">हल्का नीला-हरा</translation>
 <translation id="8811862054141704416">Crostini में माइक्रोफ़ोन का ऐक्सेस</translation>
-<translation id="8812552797690463522">यह नेटवर्क आपके साथ शेयर किया गया है.</translation>
 <translation id="8812593354822910461">ब्राउज़िंग डेटा (<ph name="URL" />) भी मिटाएं, इससे आप <ph name="DOMAIN" /> से साइन आउट हो जाएंगे. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">मुझे बाद में याद दिलाएं</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> में साइन इन नहीं किया जा सकता</translation>
@@ -7168,7 +7164,7 @@
 <translation id="8847523528195140327">कवर बंद होने पर साइन आउट करें</translation>
 <translation id="8847988622838149491">यूएसबी</translation>
 <translation id="8849001918648564819">छिपा हुआ</translation>
-<translation id="8849219423513870962"><ph name="PROFILE_NAME" /> नाम के ई-सिम प्रोफ़ाइल को हटाने की प्रक्रिया रद्द करें</translation>
+<translation id="8849219423513870962"><ph name="PROFILE_NAME" /> नाम की ई-सिम प्रोफ़ाइल को हटाने की प्रक्रिया रद्द करें</translation>
 <translation id="8850251000316748990">ज़्यादा देखें...</translation>
 <translation id="885246833287407341">एपीआई फ़ंक्शन के तर्क</translation>
 <translation id="8853586775156634952">इस कार्ड को सिर्फ़ इस डिवाइस पर सेव किया जाएगा</translation>
@@ -7335,7 +7331,6 @@
 <translation id="9021662811137657072">वायरस का पता चला</translation>
 <translation id="902236149563113779">आम तौर पर, साइटें आपके कैमरे की स्थिति को ट्रैक करती हैं. गेम या चेतावनी वाले दिशा-निर्देशों जैसी एआर (ऑगमेंटेड रिएलिटी) सुविधाओं के लिए ऐसा किया जाता है</translation>
 <translation id="9022847679183471841">यह खाता इस कंप्यूटर पर <ph name="AVATAR_NAME" /> के नाम से पहले से उपयोग किया जा रहा है.</translation>
-<translation id="9023009238991294202">इस डिवाइस के दूसरे उपयोगकर्ता इस नेटवर्क का उपयोग कर सकते हैं.</translation>
 <translation id="9023015617655685412">इस टैब को बुकमार्क करें...</translation>
 <translation id="9023909777842748145">इस सुविधा को बंद करने के बाद भी आपका डिवाइस, सिस्टम अपडेट और सुरक्षा जैसी ज़रूरी सेवाएं पाने के लिए जानकारी भेज सकेगा.</translation>
 <translation id="9024127637873500333">नए टैब में &amp;खोलें</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index ef5f5de..602cc1c7 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -357,7 +357,6 @@
 <translation id="138784436342154190">Želite li vratiti zadanu polaznu stranicu?</translation>
 <translation id="1388253969141979417">Dopuštena je upotreba mikrofona</translation>
 <translation id="1388728792929436380">Uređaj <ph name="DEVICE_TYPE" /> ponovo će se pokrenuti kad ažuriranje završi.</translation>
-<translation id="138900021244932468">Nije otkriven nijedan profil. Da biste postavili novu mrežu, skenirajte QR kôd pomoću fotoaparata uređaja ili unesite aktivacijski kôd koji ste dobili od mobilnog operatera.</translation>
 <translation id="139013308650923562">Web-lokacije kojima je dopušteno korištenje fontova instaliranih na uređaju</translation>
 <translation id="1390548061267426325">Otvori kao uobičajenu karticu</translation>
 <translation id="1393283411312835250">Sunce i oblaci</translation>
@@ -5915,6 +5914,7 @@
 <translation id="7506541170099744506">Vaš je <ph name="DEVICE_TYPE" /> uređaj uspješno registriran za poslovno upravljanje.</translation>
 <translation id="7507207699631365376">Pogledajte <ph name="BEGIN_LINK" />Pravila o privatnosti<ph name="END_LINK" /> tog davatelja usluga</translation>
 <translation id="7507930499305566459">Certifikat odgovora statusa</translation>
+<translation id="7509246181739783082">Potvrdite svoj identitet</translation>
 <translation id="7513029293694390567">Automatski se prijavite na web-lokacije pomoću spremljenih vjerodajnica. Ako je ta značajka onemogućena, tražit će se potvrda prije svakog prijavljivanja na web-lokaciju.</translation>
 <translation id="7514239104543605883">Kopiraj na svoj uređaj</translation>
 <translation id="7514365320538308">Preuzmi</translation>
@@ -6447,7 +6447,6 @@
 <translation id="8061091456562007989">Poništi izmjene</translation>
 <translation id="8061991877177392872">Čini se da ste već postavili Voice Match za svojeg Asistenta na nekom drugom uređaju. Te su snimke iskorištene za izradu glasovnog modela na ovom uređaju.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{Jedan list papira}one{{COUNT} list papira}few{{COUNT} lista papira}other{{COUNT} listova papira}}</translation>
-<translation id="8062879968880283306">Skenirajte QR kôd pomoću fotoaparata uređaja ili unesite aktivacijski kôd koji ste dobili od mobilnog operatera.</translation>
 <translation id="8063235345342641131">Zadani zeleni avatar</translation>
 <translation id="8063535366119089408">Pregledaj datoteku</translation>
 <translation id="8064279191081105977">Grupa <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6868,7 +6867,6 @@
 <translation id="8551588720239073785">Postavke datuma i vremena</translation>
 <translation id="8553342806078037065">Upravljaj drugim osobama</translation>
 <translation id="8554899698005018844">Nema jezika</translation>
-<translation id="8555195867496021627">Nema dostupnih eSIM profila. Novi profil preuzmite <ph name="BEGIN_LINK" />ovdje<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Dodirujte sigurnosni ključ dok se otisak prsta ne spremi</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Otvori sve u &amp;novom prozoru}=1{Otvori u &amp;novom prozoru}one{Otvori sve ({COUNT}) u &amp;novom prozoru}few{Otvori sve ({COUNT}) u &amp;novom prozoru}other{Otvori sve ({COUNT}) u &amp;novom prozoru}}</translation>
@@ -7048,7 +7046,6 @@
 <translation id="8743164338060742337">Mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> jačina signala <ph name="SIGNAL_STRENGTH" />%, upravlja administrator, povežite</translation>
 <translation id="8746654918629346731">Već ste zatražili "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Želite li prenijeti jednu datoteku na tu web-lokaciju?}one{Želite li prenijeti # datoteku na tu web-lokaciju?}few{Želite li prenijeti # datoteke na tu web-lokaciju?}other{Želite li prenijeti # datoteka na tu web-lokaciju?}}</translation>
-<translation id="8749556627204742888">Dijelite ovu mrežu s drugim korisnicima ovog uređaja.</translation>
 <translation id="8749805710397399240">Emitiranje zaslona nije uspjelo. Provjerite dopuštenje za snimanje zaslona u postavkama sustava.</translation>
 <translation id="8749863574775030885">pristupiti USB uređajima nepoznatog dobavljača</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> želi se povezati sa serijskim priključkom</translation>
@@ -7112,7 +7109,6 @@
 <translation id="8808744862003883508">Na ovoj stranici možete vidjeti sva proširenja instalirana u Chromeu.</translation>
 <translation id="8809147117840417135">Svijetlotirkiznoplava</translation>
 <translation id="8811862054141704416">Crostinijev pristup mikrofonu</translation>
-<translation id="8812552797690463522">Ova se mreža dijeli s vama.</translation>
 <translation id="8812593354822910461">Izbrišite i podatke o pregledavanju (<ph name="URL" />), čime ćete se odjaviti s web-lokacije <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Podsjeti me kasnije</translation>
 <translation id="8813698869395535039">Prijava na <ph name="USERNAME" /> nije uspjela</translation>
@@ -7324,7 +7320,6 @@
 <translation id="9021662811137657072">Otkriven je virus</translation>
 <translation id="902236149563113779">Web-lokacije obično prate položaj vaše kamere radi značajki AR-a, poput igara ili uputa s upozorenjima</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> već upotrebljava taj račun na ovom računalu.</translation>
-<translation id="9023009238991294202">Drugi korisnici ovog uređaja mogu upotrebljavati ovu mrežu.</translation>
 <translation id="9023015617655685412">Označavanje ove kartice...</translation>
 <translation id="9023909777842748145">Isključivanje te značajke ne utječe na mogućnost uređaja da šalje informacije koje su potrebne za ključne usluge kao što su ažuriranja sustava i sigurnost.</translation>
 <translation id="9024127637873500333">&amp;Otvaranje u novoj kartici</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 111b46e..25140bb 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Visszaállítja az alapértelmezett kezdőoldalt?</translation>
 <translation id="1388253969141979417">Használhatják a mikrofont</translation>
 <translation id="1388728792929436380">A(z) <ph name="DEVICE_TYPE" /> újraindul a frissítés befejezése után.</translation>
-<translation id="138900021244932468">Nem találhatók profilok. Új hálózat beállításához olvassa be a QR-kódot az eszköz kamerájával, vagy adja meg a szolgáltató által adott aktiválási kódot.</translation>
 <translation id="139013308650923562">Használhatják az eszközre telepített betűtípusokat</translation>
 <translation id="1390548061267426325">Megnyitás normál lapként</translation>
 <translation id="1393283411312835250">Nap és felhők</translation>
@@ -5928,6 +5927,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> eszközének vállalati kezelés céljából történő rögzítése sikerült.</translation>
 <translation id="7507207699631365376">Olvassa el a szolgáltató <ph name="BEGIN_LINK" />adatvédelmi irányelveit<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Állapotjelentő tanúsítvány</translation>
+<translation id="7509246181739783082">Személyazonosság igazolása</translation>
 <translation id="7513029293694390567">Automatikus bejelentkezés webhelyekre a tárolt hitelesítő adatokkal. Ha a funkció ki van kapcsolva, akkor a rendszer minden alkalommal megerősítést kér Öntől, mielőtt bejelentkezne az adott webhelyre.</translation>
 <translation id="7514239104543605883">Átmásolás az eszközére</translation>
 <translation id="7514365320538308">Letöltés</translation>
@@ -6460,7 +6460,6 @@
 <translation id="8061091456562007989">Visszaállítás</translation>
 <translation id="8061991877177392872">Úgy tűnik, hogy Google Segédjéhez már beállította a Voice Match funkciót valamelyik másik eszközön. Korábbi felvételeiből ezen az eszközön is létrehozott hangmintát.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 papírlap}other{{COUNT} papírlap}}</translation>
-<translation id="8062879968880283306">Olvassa be a QR-kódot az eszköz kamerájával, vagy adja meg a szolgáltatótól kapott aktivációs kódot.</translation>
 <translation id="8063235345342641131">Alapértelmezett zöld avatar</translation>
 <translation id="8063535366119089408">Fájl megtekintése</translation>
 <translation id="8064279191081105977">„<ph name="GROUP_NAME" />” csoport – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6881,7 +6880,6 @@
 <translation id="8551588720239073785">Dátum- és időbeállítások</translation>
 <translation id="8553342806078037065">Más személyek kezelése</translation>
 <translation id="8554899698005018844">Nincs nyelv</translation>
-<translation id="8555195867496021627">Nincsenek rendelkezésre álló eSIM-profilok. <ph name="BEGIN_LINK" />Itt<ph name="END_LINK" /> tölthet le új profilt.</translation>
 <translation id="8557022314818157177">Érintse meg többször a biztonsági kulcsot, amíg meg nem történik az ujjlenyomat rögzítése.</translation>
 <translation id="8557930019681227453">Jegyzék</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Összes megnyitása &amp;új ablakban}=1{Megnyitás &amp;új ablakban}other{Összes ({COUNT}) megnyitása &amp;új ablakban}}</translation>
@@ -7061,7 +7059,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" />. hálózat (összesen <ph name="NETWORK_COUNT" />), <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, jelerősség: <ph name="SIGNAL_STRENGTH" />%, a rendszergazdája kezeli, csatlakozás</translation>
 <translation id="8746654918629346731">Ezt a bővítményt már kérelmezte (<ph name="EXTENSION_NAME" />)</translation>
 <translation id="874689135111202667">{0,plural, =1{Feltölt 1 fájlt erre a webhelyre?}other{Feltölt # fájlt erre a webhelyre?}}</translation>
-<translation id="8749556627204742888">Megosztja ezt a hálózatot ennek az eszköznek a többi felhasználójával.</translation>
 <translation id="8749805710397399240">A képernyő átküldése sikertelen. Ellenőrizze a Képernyőrögzítésre vonatkozó engedélyt a Rendszerbeállítások között.</translation>
 <translation id="8749863574775030885">Ismeretlen szolgáltatótól származó USB-eszközök elérése</translation>
 <translation id="8750155211039279868">A(z) <ph name="ORIGIN" /> soros porthoz szeretne csatlakozni</translation>
@@ -7123,7 +7120,6 @@
 <translation id="8808744862003883508">Ezen az oldalon található a Chrome böngészőbe telepített összes bővítmény.</translation>
 <translation id="8809147117840417135">Világos pávakék</translation>
 <translation id="8811862054141704416">A Crostini mikrofon-hozzáférése</translation>
-<translation id="8812552797690463522">Ez a hálózat meg van osztva Önnel.</translation>
 <translation id="8812593354822910461">A böngészési adatok (<ph name="URL" />) törlésével együtt, ami kiléptetheti a(z) <ph name="DOMAIN" /> webhelyéről. <ph name="LEARN_MORE" />.</translation>
 <translation id="8813277370772331957">Emlékeztessen később</translation>
 <translation id="8813698869395535039">Nem lehet bejelentkezni a következő fiókba: <ph name="USERNAME" /></translation>
@@ -7335,7 +7331,6 @@
 <translation id="9021662811137657072">Rendszerünk vírust talált</translation>
 <translation id="902236149563113779">A webhelyek általában bizonyos AR-funkciók (például játékok vagy szem elé vetített útvonaltervek) használata érdekében követik nyomon a kamera pozícióját</translation>
 <translation id="9022847679183471841">Ezt a fiókot <ph name="AVATAR_NAME" /> már használja ezen a számítógépen.</translation>
-<translation id="9023009238991294202">Az eszköz többi felhasználója használhatja ezt a hálózatot.</translation>
 <translation id="9023015617655685412">Lap hozzáadása a könyvjelzőkhöz…</translation>
 <translation id="9023909777842748145">A funkció kikapcsolása nem korlátozza az eszközt abban, hogy elküldje az alapvető fontosságú szolgáltatásokkal (pl. a rendszerfrissítésekkel és -biztonsággal) kapcsolatos információkat.</translation>
 <translation id="9024127637873500333">&amp;Megnyitás új lapon</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index 8299750..04fabf8 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Վերականգնե՞լ մեկնարկի կանխադրված էջը</translation>
 <translation id="1388253969141979417">Թույլատրվում է օգտագործել ձեր խոսափողը</translation>
 <translation id="1388728792929436380">Հենց որ թարմացումները տեղադրվեն, <ph name="DEVICE_TYPE" /> սարքը կվերագործարկվի։</translation>
-<translation id="138900021244932468">Պրոֆիլներ չեն գտնվել։ Նոր ցանց կարգավորելու համար սկանավորեք QR կոդը սարքի տեսախցիկի միջոցով կամ մուտքագրեք օպերատորի տրամադրած ակտիվացման կոդը։</translation>
 <translation id="139013308650923562">Կայքեր, որոնց թույլատրված է օգտագործել ձեր սարքում տեղադրված տառատեսակները</translation>
 <translation id="1390548061267426325">Բացել որպես սովորական ներդիր</translation>
 <translation id="1393283411312835250">Արև և ամպեր</translation>
@@ -5917,6 +5916,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> սարքը բարեհաջող գրանցվել է ձեռնարկության կողմից կառավարման համար:</translation>
 <translation id="7507207699631365376">Տեսնել այս մատակարարի <ph name="BEGIN_LINK" />գաղտնիության քաղաքականությունը<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Կարգավիճակի պատասխանիչի վկայագիր</translation>
+<translation id="7509246181739783082">Հաստատեք ձեր ինքնությունը</translation>
 <translation id="7513029293694390567">Ավտոմատ մուտք գործել կայքեր՝ պահված օգտանունով ու գաղտնաբառով: Եթե այս գործառույթն անջատված է, ապա ամեն անգամ կայք մտնելիս ձեզանից հաստատում կպահանջվի:</translation>
 <translation id="7514239104543605883">Պատճենել սարքում</translation>
 <translation id="7514365320538308">Ներբեռնել</translation>
@@ -6447,7 +6447,6 @@
 <translation id="8061091456562007989">Հետ փոխել</translation>
 <translation id="8061991877177392872">Դուք արդեն կարգավորել եք Voice Match-ը այլ սարքում։ Այս նախկին ձայնագրություններն օգտագործվել են՝ ձեր ձայնի նմուշն այս սարքում ստեղծելու համար։</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 թերթ}one{{COUNT} թերթ}other{{COUNT} թերթ}}</translation>
-<translation id="8062879968880283306">Սկանավորեք QR կոդը սարքի տեսախցիկի միջոցով կամ մուտքագրեք օպերատորի տրամադրած ակտիվացման կոդը։</translation>
 <translation id="8063235345342641131">Կանխադրված կանաչ ավատար</translation>
 <translation id="8063535366119089408">Դիտել ֆայլը</translation>
 <translation id="8064279191081105977">Խումբ <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6868,7 +6867,6 @@
 <translation id="8551588720239073785">Ամսաթվի և ժամի կարգավորումներ</translation>
 <translation id="8553342806078037065">Կառավարել այլ օգտատերերի</translation>
 <translation id="8554899698005018844">Լեզու նշված չէ</translation>
-<translation id="8555195867496021627">eSIM-ի հասանելի պրոֆիլներ չկան։ <ph name="BEGIN_LINK" />Ներբեռնեք<ph name="END_LINK" /> նոր պրոֆիլ։</translation>
 <translation id="8557022314818157177">Հպեք անվտանգության բանալուն և պահեք, մինչև ձեր մատնահետքն ավելացվի:</translation>
 <translation id="8557930019681227453">Մանիֆեստ</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Բացել բոլորը &amp;նոր պատուհանում}=1{Բացել &amp;նոր պատուհանում}one{Բացել բոլորը ({COUNT}) &amp;նոր պատուհանում}other{Բացել բոլորը ({COUNT}) &amp;նոր պատուհանում}}</translation>
@@ -7048,7 +7046,6 @@
 <translation id="8743164338060742337">Ցանց <ph name="NETWORK_INDEX" />՝ <ph name="NETWORK_COUNT" />-ից, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />-ի ազդանշանի ուժգնությունը՝ <ph name="SIGNAL_STRENGTH" />%, կառավարվում է ձեր ադմինիստրատորի կողմից, միացում</translation>
 <translation id="8746654918629346731">Դուք «<ph name="EXTENSION_NAME" />» ընդլայնումը տեղադրելու հայտ արդեն ուղարկել եք</translation>
 <translation id="874689135111202667">{0,plural, =1{Վերբեռնե՞լ մեկ ֆայլ այս կայք}one{Վերբեռնե՞լ # ֆայլ այս կայք}other{Վերբեռնե՞լ # ֆայլ այս կայք}}</translation>
-<translation id="8749556627204742888">Դուք այս ցանցն օգտագործում եք սարքի մյուս օգտատերերի հետ համատեղ</translation>
 <translation id="8749805710397399240">Չհաջողվեց հեռարձակել էկրանը։ Ստուգեք Էկրանի տեսագրման թույլտվությունը համակարգի կարգավորումներում։</translation>
 <translation id="8749863574775030885">Մտնել անհայտ վաճառողի USB սարքեր</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> կայքն ուզում է միանալ հերթական միացքին</translation>
@@ -7111,7 +7108,6 @@
 <translation id="8808744862003883508">Այս էջում դուք կարող եք տեսնել Chrome-ում տեղադրված բոլոր ընդլայնումները։</translation>
 <translation id="8809147117840417135">Բաց փիրուզագույն</translation>
 <translation id="8811862054141704416">Խոսափողի օգտագործման թույլտվություն Crostini-ում</translation>
-<translation id="8812552797690463522">Այս ցանցը հասանելի է ձեզ։</translation>
 <translation id="8812593354822910461">Ջնջել նաև այցելությունների պատմությունը (<ph name="URL" />)։ Նկատի ունեցեք, որ արդյունքում հնարավոր է դուրս գրվեք ձեր հաշվից <ph name="DOMAIN" /> կայքում։ <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Հիշեցնել ավելի ուշ</translation>
 <translation id="8813698869395535039">Հնարավոր չէ մուտք գործել <ph name="USERNAME" /> հաշիվ</translation>
@@ -7323,7 +7319,6 @@
 <translation id="9021662811137657072">Հայտնաբերված է վիրուս</translation>
 <translation id="902236149563113779">Կայքերը սովորաբար հետագծում են տեսախցիկի դիրքը՝ լրացված իրականության գործառույթների (օրինակ՝ խաղերի և ուղղությունների նախազգուշացումների) համար</translation>
 <translation id="9022847679183471841">Հաշիվն արդեն օգտագործվում է այս համակարգչում <ph name="AVATAR_NAME" />-ի կողմից:</translation>
-<translation id="9023009238991294202">Սարքի մյուս օգտատերերը կարող են օգտագործել այս ցանցը:</translation>
 <translation id="9023015617655685412">Էջանշել այս ներդիրը...</translation>
 <translation id="9023909777842748145">Այս գործառույթն անջատելու դեպքում ձեր սարքը նախկինի պես կուղարկի տվյալներ, որոնք անհրաժեշտ են հիմնական ծառայություններին (օրինակ՝ համակարգային թարմացումներին ու անվտանգությանը)։</translation>
 <translation id="9024127637873500333">&amp;Բացել նոր ներդիրում</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 10776af..63fb286 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Pulihkan halaman awal default?</translation>
 <translation id="1388253969141979417">Diizinkan menggunakan mikrofon Anda</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> akan dimulai ulang saat update selesai.</translation>
-<translation id="138900021244932468">Profil tidak ditemukan. Untuk menyiapkan jaringan baru, pindai kode QR menggunakan kamera perangkat atau masukkan kode aktivasi yang diberikan oleh operator Anda.</translation>
 <translation id="139013308650923562">Diizinkan menggunakan font yang diinstal di perangkat Anda</translation>
 <translation id="1390548061267426325">Buka sebagai Tab Biasa</translation>
 <translation id="1393283411312835250">Matahari dan awan</translation>
@@ -5929,6 +5928,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> berhasil didaftarkan untuk pengelolaan perusahaan.</translation>
 <translation id="7507207699631365376">Lihat <ph name="BEGIN_LINK" />kebijakan privasi<ph name="END_LINK" /> penyedia ini</translation>
 <translation id="7507930499305566459">Sertifikat Penanggap Status</translation>
+<translation id="7509246181739783082">Verifikasi identitas Anda</translation>
 <translation id="7513029293694390567">Otomatis login ke situs menggunakan kredensial yang tersimpan. Jika dinonaktifkan, Anda akan dimintai konfirmasi setiap kali login ke situs.</translation>
 <translation id="7514239104543605883">Salin ke perangkat Anda</translation>
 <translation id="7514365320538308">Download</translation>
@@ -6461,7 +6461,6 @@
 <translation id="8061091456562007989">Kembalikan</translation>
 <translation id="8061991877177392872">Sepertinya Anda sudah menyiapkan Voice Match dengan Asisten Anda di perangkat lain. Rekaman sebelumnya tersebut digunakan untuk membuat model suara di perangkat ini.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 lembar kertas}other{{COUNT} lembar kertas}}</translation>
-<translation id="8062879968880283306">Pindai kode QR menggunakan kamera perangkat atau masukkan kode aktivasi yang diberikan oleh operator layanan Anda.</translation>
 <translation id="8063235345342641131">Avatar hijau default</translation>
 <translation id="8063535366119089408">Lihat file</translation>
 <translation id="8064279191081105977">Grup <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6882,7 +6881,6 @@
 <translation id="8551588720239073785">Setelan tanggal dan waktu</translation>
 <translation id="8553342806078037065">Kelola orang lain</translation>
 <translation id="8554899698005018844">Tidak ada bahasa</translation>
-<translation id="8555195867496021627">Tidak ada profil eSIM yang tersedia. Download profil baru <ph name="BEGIN_LINK" />di sini<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Terus sentuh kunci keamanan Anda hingga sidik jari terekam</translation>
 <translation id="8557930019681227453">Manifes</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Buka Semua di &amp;Jendela Baru}=1{Buka di &amp;Jendela Baru}other{Buka Semua ({COUNT}) di &amp;Jendela Baru}}</translation>
@@ -7062,7 +7060,6 @@
 <translation id="8743164338060742337">Jaringan <ph name="NETWORK_INDEX" /> dari <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, Kekuatan Sinyal <ph name="SIGNAL_STRENGTH" />%, Dikelola oleh Administrator Anda, Sambungkan</translation>
 <translation id="8746654918629346731">Anda telah meminta "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Upload 1 file ke situs ini?}other{Upload # file ke situs ini?}}</translation>
-<translation id="8749556627204742888">Anda membagikan jaringan ini kepada pengguna lain perangkat ini.</translation>
 <translation id="8749805710397399240">Tidak dapat mentransmisikan layar Anda. Periksa izin Perekaman Layar di Preferensi Sistem.</translation>
 <translation id="8749863574775030885">Akses perangkat USB dari vendor tak dikenal</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ingin terhubung ke port serial</translation>
@@ -7124,7 +7121,6 @@
 <translation id="8808744862003883508">Pada halaman ini, Anda dapat melihat semua ekstensi yang diinstal di Chrome.</translation>
 <translation id="8809147117840417135">Hijau kebiruan terang</translation>
 <translation id="8811862054141704416">Akses mikrofon Crostini</translation>
-<translation id="8812552797690463522">Jaringan ini dibagikan kepada Anda.</translation>
 <translation id="8812593354822910461">Hapus juga data penjelajahan (<ph name="URL" />) yang akan membuat Anda logout dari <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Ingatkan saya nanti</translation>
 <translation id="8813698869395535039">Tidak dapat login ke <ph name="USERNAME" /></translation>
@@ -7336,7 +7332,6 @@
 <translation id="9021662811137657072">Virus terdeteksi</translation>
 <translation id="902236149563113779">Situs biasanya melacak posisi kamera Anda untuk fitur AR, seperti game atau petunjuk arah</translation>
 <translation id="9022847679183471841">Akun ini sudah digunakan di komputer ini dengan nama <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Pengguna lain di perangkat ini dapat menggunakan jaringan ini.</translation>
 <translation id="9023015617655685412">Bookmark tab ini...</translation>
 <translation id="9023909777842748145">Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat Anda dalam mengirimkan informasi yang diperlukan bagi layanan penting seperti keamanan dan update sistem.</translation>
 <translation id="9024127637873500333">&amp;Buka di Tab Baru</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index ce90979..4f71da939 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">Endurheimta sjálfgefnar ræsisíðu?</translation>
 <translation id="1388253969141979417">Mega nota hljóðnemann</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> mun endurræsast að uppfærslum loknum.</translation>
-<translation id="138900021244932468">Engir prófílar fundust. Til að setja upp nýtt netkerfi skaltu skanna QR-kóðann með myndavél tækisins eða slá inn virkjunarkóða frá símafyrirtækinu þínu.</translation>
 <translation id="139013308650923562">Mega nota leturgerðir sem eru uppsettar í tækinu þínu</translation>
 <translation id="1390548061267426325">Opna sem venjulegan flipa</translation>
 <translation id="1393283411312835250">Sól og ský</translation>
@@ -5929,6 +5928,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> var skráð í umsjón fyrirtækis.</translation>
 <translation id="7507207699631365376">Sjá <ph name="BEGIN_LINK" />persónuverndarstefnu<ph name="END_LINK" /> þjónustuveitu</translation>
 <translation id="7507930499305566459">Vottorð stöðusvarveitu</translation>
+<translation id="7509246181739783082">Staðfestu hver þú ert</translation>
 <translation id="7513029293694390567">Skrá þig sjálfkrafa inn á vefsvæði með vistuðum skilríkjum. Ef slökkt er á þessu biðjum við þig um staðfestingu í hvert sinn sem þú skráir þig inn á vefsvæði.</translation>
 <translation id="7514239104543605883">Afrita í tæki</translation>
 <translation id="7514365320538308">Sækja</translation>
@@ -6460,7 +6460,6 @@
 <translation id="8061091456562007989">Breyta til baka</translation>
 <translation id="8061991877177392872">Þú virðist þegar hafa sett upp Voice Match fyrir Hjálparann í öðru tæki. Þessar eldri upptökur voru notaðar til að búa til raddlíkan í tækinu.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 blaðsíða}one{{COUNT} blaðsíða}other{{COUNT} blaðsíður}}</translation>
-<translation id="8062879968880283306">Skannaðu QR-kóða með myndavél tækisins eða sláðu inn virkjunarkóða frá símafyrirtækinu þínu.</translation>
 <translation id="8063235345342641131">Sjálfgefin græn notandamynd</translation>
 <translation id="8063535366119089408">Skoða skrá</translation>
 <translation id="8064279191081105977">Hópur <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6881,7 +6880,6 @@
 <translation id="8551588720239073785">Dagsetningar- og tímastillingar</translation>
 <translation id="8553342806078037065">Stjórna öðrum notendum</translation>
 <translation id="8554899698005018844">Ekkert tungumál</translation>
-<translation id="8555195867496021627">Engir eSIM-prófílar í boði. Sæktu nýjan prófíl <ph name="BEGIN_LINK" />hér.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Haltu áfram að ýta á öryggislykilinn þinn þangað til fingrafarið greinist</translation>
 <translation id="8557930019681227453">Upplýsingaskrá</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Opna allt í &amp;nýjum glugga}=1{Opna í &amp;nýjum glugga}one{Opna allt ({COUNT}) í &amp;nýjum glugga}other{Opna allt ({COUNT}) í &amp;nýjum glugga}}</translation>
@@ -7061,7 +7059,6 @@
 <translation id="8743164338060742337">Netkerfi <ph name="NETWORK_INDEX" /> af <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> sendistyrkur <ph name="SIGNAL_STRENGTH" />%, stjórnað af kerfisstjóra, tengjast</translation>
 <translation id="8746654918629346731">Þú hefur þegar beðið um „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="874689135111202667">{0,plural, =1{Viltu hlaða einni skrá inn á þetta vefsvæði?}one{Viltu hlaða # skrá inn á þetta vefsvæði?}other{Viltu hlaða # skrám inn á þetta vefsvæði?}}</translation>
-<translation id="8749556627204742888">Þú deilir þessu neti með öðrum notendum þessa tækis.</translation>
 <translation id="8749805710397399240">Ekki var hægt að senda út skjáinn þinn. Athugaðu heimild fyrir skjáupptöku í kerfisstillingum.</translation>
 <translation id="8749863574775030885">Aðgangur að USB-tækjum frá óþekktum framleiðanda</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> vill tengjast við raðtengi</translation>
@@ -7124,7 +7121,6 @@
 <translation id="8808744862003883508">Þessi síða sýnir allar uppsettar viðbætur í Chrome.</translation>
 <translation id="8809147117840417135">Ljósgrænblár</translation>
 <translation id="8811862054141704416">Aðgangur að hljóðnema í Crostini</translation>
-<translation id="8812552797690463522">Þessu neti er deilt með þér.</translation>
 <translation id="8812593354822910461">Hreinsa einnig vefskoðunargögn (<ph name="URL" />), sem skráir þig út af <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Minna mig á seinna</translation>
 <translation id="8813698869395535039">Ekki hægt að skrá inn á <ph name="USERNAME" /></translation>
@@ -7336,7 +7332,6 @@
 <translation id="9021662811137657072">Vírus fannst</translation>
 <translation id="902236149563113779">Vefsvæði rekja yfirleitt stöðu myndavélarinnar þinnar fyrir AR-eiginleika eins og leiki og leiðarlýsingu í rauntíma</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> er þegar að nota þennan reikning í þessari tölvu.</translation>
-<translation id="9023009238991294202">Aðrir notendur tækisins geta notað þetta netkerfi.</translation>
 <translation id="9023015617655685412">Setja þennan flipa í bókamerki...</translation>
 <translation id="9023909777842748145">Þótt slökkt sé á þessum eiginleika hefur það ekki áhrif á getu tækisins til að senda mikilvægar upplýsingar fyrir nauðsynlega þjónustu á borð við kerfisuppfærslur og öryggisþjónustu.</translation>
 <translation id="9024127637873500333">&amp;Opna í nýjum flipa</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 620d28f..9358c810 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">Ripristinare la pagina iniziale predefinita?</translation>
 <translation id="1388253969141979417">Possono utilizzare il microfono</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> verrà riavviato al termine degli aggiornamenti.</translation>
-<translation id="138900021244932468">Nessun profilo rilevato. Per configurare una nuova rete, scansiona il codice QR utilizzando la fotocamera del dispositivo oppure inserisci il codice di attivazione fornito dall'operatore.</translation>
 <translation id="139013308650923562">Autorizzati a utilizzare i caratteri installati sul tuo dispositivo</translation>
 <translation id="1390548061267426325">Apri in una scheda normale</translation>
 <translation id="1393283411312835250">Sole e nuvole</translation>
@@ -5912,6 +5911,7 @@
 <translation id="7506541170099744506">Il dispositivo <ph name="DEVICE_TYPE" /> è stato registrato correttamente per la gestione aziendale.</translation>
 <translation id="7507207699631365376">Vedi le <ph name="BEGIN_LINK" />norme sulla privacy<ph name="END_LINK" /> del fornitore di servizi</translation>
 <translation id="7507930499305566459">Certificato risponditore stato</translation>
+<translation id="7509246181739783082">Verifica la tua identità</translation>
 <translation id="7513029293694390567">Accedi automaticamente ai siti web utilizzando credenziali memorizzate. Se la funzione non è attiva, ti viene chiesta la conferma prima di ogni accesso ai siti web.</translation>
 <translation id="7514239104543605883">Copia sul tuo dispositivo</translation>
 <translation id="7514365320538308">Scarica</translation>
@@ -6444,7 +6444,6 @@
 <translation id="8061091456562007989">Ripristina</translation>
 <translation id="8061991877177392872">Sembra che tu abbia già configurato Voice Match con l'assistente su un altro dispositivo. Le registrazioni precedenti sono state usate per creare un modello vocale su questo dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 foglio}other{{COUNT} fogli}}</translation>
-<translation id="8062879968880283306">Scansiona il codice QR con la fotocamera del dispositivo o inserisci il codice di attivazione fornito dall'operatore.</translation>
 <translation id="8063235345342641131">Avatar verde predefinito</translation>
 <translation id="8063535366119089408">Visualizza file</translation>
 <translation id="8064279191081105977">Gruppo <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6864,7 +6863,6 @@
 <translation id="8551588720239073785">Impostazioni di data e ora</translation>
 <translation id="8553342806078037065">Gestisci altre persone</translation>
 <translation id="8554899698005018844">Nessuna lingua</translation>
-<translation id="8555195867496021627">Nessun profilo eSIM disponibile. Scaricane uno nuovo <ph name="BEGIN_LINK" />qui<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Continua a toccare il token di sicurezza finché l'impronta digitale non viene acquisita</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Apri tutti in &amp;un'altra finestra}=1{Apri in &amp;un'altra finestra}other{Apri tutti ({COUNT}) in &amp;un'altra finestra}}</translation>
@@ -7044,7 +7042,6 @@
 <translation id="8743164338060742337">Rete <ph name="NETWORK_INDEX" /> di <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, intensità del segnale <ph name="SIGNAL_STRENGTH" />%, gestita dall'amministratore, connetti</translation>
 <translation id="8746654918629346731">Hai già richiesto "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{ Caricare un file in questo sito?}other{Caricare # file in questo sito?}}</translation>
-<translation id="8749556627204742888">Stai condividendo questa rete con altri utenti di questo dispositivo.</translation>
 <translation id="8749805710397399240">Impossibile trasmettere lo schermo. Controlla l'autorizzazione Registrazione dello schermo nella sezione Preferenze di sistema.</translation>
 <translation id="8749863574775030885">Accedi a dispositivi USB di fornitori sconosciuti</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> vuole collegarsi a una porta seriale</translation>
@@ -7106,7 +7103,6 @@
 <translation id="8808744862003883508">In questa pagina puoi vedere tutte le estensioni installate in Chrome.</translation>
 <translation id="8809147117840417135">Verde acqua</translation>
 <translation id="8811862054141704416">Accesso al microfono su Crostini</translation>
-<translation id="8812552797690463522">Questa rete è condivisa con te.</translation>
 <translation id="8812593354822910461">Cancella anche i dati di navigazione (<ph name="URL" />) che ti faranno uscire dall'account su <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Ricordamelo dopo</translation>
 <translation id="8813698869395535039">Impossibile accedere a <ph name="USERNAME" /></translation>
@@ -7318,7 +7314,6 @@
 <translation id="9021662811137657072">Virus rilevato</translation>
 <translation id="902236149563113779">In genere, i siti monitorano la posizione della videocamera per funzionalità AR come i giochi o le indicazioni fornite con la posizione della testa</translation>
 <translation id="9022847679183471841">L'account è già utilizzato su questo computer da <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Altri utenti del dispositivo possono usare questa rete.</translation>
 <translation id="9023015617655685412">Aggiungi questa scheda ai preferiti…</translation>
 <translation id="9023909777842748145">La disattivazione di questa funzionalità non influisce sulla capacità del dispositivo di inviare le informazioni necessarie per i servizi essenziali, ad esempio gli aggiornamenti di sistema e sicurezza.</translation>
 <translation id="9024127637873500333">&amp;Apri in un'altra scheda</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 12a4cec1..9768d60 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -360,7 +360,6 @@
 <translation id="138784436342154190">לשחזר את דף הפתיחה שהוגדר כברירת המחדל?</translation>
 <translation id="1388253969141979417">מורשים להשתמש במיקרופון</translation>
 <translation id="1388728792929436380">המכשיר <ph name="DEVICE_TYPE" /> יופעל מחדש אחרי שהעדכונים יושלמו.</translation>
-<translation id="138900021244932468">‏לא נמצאו פרופילים נוספים. כדי להגדיר רשת חדשה, יש לסרוק את קוד ה-QR באמצעות מצלמת המכשיר או להזין את קוד ההפעלה שקיבלת מהספק.</translation>
 <translation id="139013308650923562">יש הרשאה להשתמש בגופנים שמותקנים במכשיר</translation>
 <translation id="1390548061267426325">פתיחה ככרטיסייה רגילה</translation>
 <translation id="1393283411312835250">שמש ועננים</translation>
@@ -5929,6 +5928,7 @@
 <translation id="7506541170099744506">הרישום של המכשיר שלך <ph name="DEVICE_TYPE" /> לניהול ארגוני הסתיים בהצלחה.</translation>
 <translation id="7507207699631365376">הצגת <ph name="BEGIN_LINK" />מדיניות הפרטיות<ph name="END_LINK" /> של הספק הזה</translation>
 <translation id="7507930499305566459">אישור מגיב סטטוס</translation>
+<translation id="7509246181739783082">אימות זהות</translation>
 <translation id="7513029293694390567">כניסה באופן אוטומטי לאתרים באמצעות פרטי כניסה שמורים. כשהאפשרות הזו מושבתת, יידרש ממך אישור לפני כל כניסה לאתר.</translation>
 <translation id="7514239104543605883">העתקה למכשיר שלך</translation>
 <translation id="7514365320538308">הורדה</translation>
@@ -6460,7 +6460,6 @@
 <translation id="8061091456562007989">חזרה להגדרות הקודמות</translation>
 <translation id="8061991877177392872">‏נראה שכבר הגדרת את Voice Match באמצעות Assistant במכשיר אחר. נעשה שימוש בהקלטות הקודמות האלה כדי ליצור תבנית קול במכשיר זה.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{גיליון נייר אחד}two{{COUNT} גיליונות נייר}many{{COUNT} גיליונות נייר}other{{COUNT} גיליונות נייר}}</translation>
-<translation id="8062879968880283306">‏יש לסרוק את קוד ה-QR באמצעות מצלמת המכשיר או להזין את קוד ההפעלה שקיבלת מהספק.</translation>
 <translation id="8063235345342641131">דמות ברירת מחדל ירוקה</translation>
 <translation id="8063535366119089408">אישור לראות את הקובץ</translation>
 <translation id="8064279191081105977">קבוצה <ph name="GROUP_NAME" /> ‏– <ph name="GROUP_CONTENTS" /> ‏– <ph name="COLLAPSED_STATE" /></translation>
@@ -6586,7 +6585,7 @@
 <translation id="8191230140820435481">לנהל את היישומים, התוספים והעיצובים שלך</translation>
 <translation id="8195027750202970175">גודל בדיסק</translation>
 <translation id="8198323535106903877"><ph name="NUMBER_OF_APPS" /> האפליקציות יותקנו</translation>
-<translation id="8198456017687137612">כרטיסיית העברה</translation>
+<translation id="8198456017687137612">העברת הכרטיסייה</translation>
 <translation id="8199300056570174101">מאפייני רשת (שירות) ומכשיר</translation>
 <translation id="8200772114523450471">חידוש</translation>
 <translation id="8201717382574620700">בחירת אלבומי <ph name="TOPIC_SOURCE" /></translation>
@@ -6883,7 +6882,6 @@
 <translation id="8551588720239073785">הגדרות תאריך ושעה</translation>
 <translation id="8553342806078037065">ניהול אנשים אחרים</translation>
 <translation id="8554899698005018844">לא הוגדרה שפה</translation>
-<translation id="8555195867496021627">‏אין פרופילים זמינים של eSIM. <ph name="BEGIN_LINK" />כאן<ph name="END_LINK" /> אפשר להוריד פרופיל חדש.</translation>
 <translation id="8557022314818157177">צריך להמשיך לגעת במפתח האבטחה עד לתיעוד טביעת האצבע</translation>
 <translation id="8557930019681227453">מניפסט</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{פתיחת כל הכתובות בחלון &amp;חדש}=1{פתיחה בחלון &amp;חדש}two{פתיחת כל הכתובות ({COUNT}) בחלון &amp;חדש}many{פתיחת כל הכתובות ({COUNT}) בחלון &amp;חדש}other{פתיחת כל הכתובות ({COUNT}) בחלון &amp;חדש}}</translation>
@@ -7063,7 +7061,6 @@
 <translation id="8743164338060742337">‏רשת <ph name="NETWORK_INDEX" /> מתוך <ph name="NETWORK_COUNT" />,‏ <ph name="NETWORK_NAME" />,‏ עוצמת האות של ‎<ph name="NETWORK_PROVIDER_NAME" />‎%<ph name="SIGNAL_STRENGTH" />, הרשת מנוהלת על ידי מנהל המערכת שלך, התחברות</translation>
 <translation id="8746654918629346731">כבר הגשת בקשה בנושא "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{להעלות קובץ אחד אל האתר הזה?}two{להעלות # קבצים אל האתר הזה?}many{להעלות # קבצים אל האתר הזה?}other{להעלות # קבצים אל האתר הזה?}}</translation>
-<translation id="8749556627204742888">הרשת הזו משותפת עם משתמשים אחרים במכשיר הזה.</translation>
 <translation id="8749805710397399240">לא ניתן להעביר את המסך. יש לבדוק את הרשאת מקליט המסך ב'העדפות מערכת'.</translation>
 <translation id="8749863574775030885">‏גישה למכשירי USB מספק לא ידוע</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> רוצה להתחבר אל יציאה טורית</translation>
@@ -7127,7 +7124,6 @@
 <translation id="8808744862003883508">‏בדף הזה מוצגים כל התוספים שהותקנו ב-Chrome.</translation>
 <translation id="8809147117840417135">כחול-ירקרק בהיר</translation>
 <translation id="8811862054141704416">‏גישה של Crostini למיקרופון</translation>
-<translation id="8812552797690463522">הרשת הזו משותפת איתך.</translation>
 <translation id="8812593354822910461">‏אני רוצה גם לנקות את נתוני הגלישה (<ph name="URL" />). פעולה זו עשויה לנתק אותך מ-Google.com <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">אני רוצה לקבל תזכורת אחר כך</translation>
 <translation id="8813698869395535039">לא ניתן להיכנס עם שם המשתמש <ph name="USERNAME" /></translation>
@@ -7339,7 +7335,6 @@
 <translation id="9021662811137657072">זוהה וירוס</translation>
 <translation id="902236149563113779">‏אתרים עוקבים בדרך כלל אחר מיקום המצלמה כדי לתמוך בתכונות AR כמו משחקים או הנחיות בתצוגה עילית</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> כבר משתמש/ת בחשבון הזה במחשב הנוכחי.</translation>
-<translation id="9023009238991294202">משתמשים אחרים במכשיר הזה יכולים להשתמש ברשת הזו.</translation>
 <translation id="9023015617655685412">הוספת הכרטיסייה הזו לסימניות...</translation>
 <translation id="9023909777842748145">השבתת התכונה הזו לא משפיעה על היכולת של המכשיר לשלוח את המידע הדרוש עבור שירותים חיוניים, כמו אבטחה ועדכוני מערכת.</translation>
 <translation id="9024127637873500333">&amp;פתיחה בכרטיסייה חדשה</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 231f2de..e8aa35ed 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">デフォルトの起動ページに戻しますか?</translation>
 <translation id="1388253969141979417">マイクの使用を許可するサイト</translation>
 <translation id="1388728792929436380">更新が完了すると、<ph name="DEVICE_TYPE" />が再起動されます。</translation>
-<translation id="138900021244932468">プロファイルは検出されませんでした。ネットワークを設定するには、デバイスのカメラで QR コードをスキャンするか、携帯通信会社から提供されたアクティベーション コードを入力してください。</translation>
 <translation id="139013308650923562">デバイスにインストールされたフォントの使用を許可する</translation>
 <translation id="1390548061267426325">通常のタブとして開く</translation>
 <translation id="1393283411312835250">太陽と雲</translation>
@@ -513,6 +512,7 @@
 <translation id="1545775234664667895">テーマ「<ph name="THEME_NAME" />」をインストールしました</translation>
 <translation id="1546280085599573572">この拡張機能により、ホームボタンをクリックしたときに表示されるページが変更されました。</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> さんが次の処理を行う<ph name="EXTENSION_TYPE" />のインストールを求めています。</translation>
+<translation id="1547808936554660006">eSIM プロファイルは Powerwash で削除されないことを理解しました</translation>
 <translation id="1549275686094429035">ARC は有効になっています</translation>
 <translation id="1549788673239553762">「<ph name="APP_NAME" />」が <ph name="VOLUME_NAME" /> へのアクセスを求めています。ファイルが変更または削除される可能性があります。</translation>
 <translation id="1552301827267621511">「<ph name="EXTENSION_NAME" />」拡張機能により <ph name="SEARCH_PROVIDER_DOMAIN" /> を使用して検索するよう変更されました</translation>
@@ -549,6 +549,7 @@
 <translation id="1588438908519853928">ノーマル</translation>
 <translation id="158849752021629804">ホーム ネットワークが必要です</translation>
 <translation id="1588870296199743671">次のプログラムでリンクを開く...</translation>
+<translation id="1588919647604819635">カードを右クリック</translation>
 <translation id="1589055389569595240">スペルと文法を表示</translation>
 <translation id="1591679663873027990">Parallels Desktop に USB デバイスへのアクセスを許可します。USB デバイスを取り外した後、Parallels Desktop にデバイスのデータは残りません。</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> によって ADB デバッグが無効にされたため、<ph name="DEVICE_TYPE" /> はリセットされます。再起動する前にファイルをバックアップしてください。</translation>
@@ -984,6 +985,7 @@
 
 デバイスにファミリー リンク アプリをインストールすると、このアカウントの設定を管理できます。手順を記載したメールをお送りしましたので、ご確認ください。</translation>
 <translation id="2040460856718599782">ユーザー認証時に問題が発生しました。ログイン情報をお確かめのうえ、もう一度お試しください。</translation>
+<translation id="2042279886444479655">有効なプロファイル</translation>
 <translation id="2044014337866019681">セッションのロックを解除するには、<ph name="ACCOUNT" /> の確認を行ってください。</translation>
 <translation id="2044023416777079300">モデムが登録されていません</translation>
 <translation id="204497730941176055">Microsoft 証明書テンプレート名</translation>
@@ -1322,6 +1324,7 @@
 <translation id="2395616325548404795">この <ph name="DEVICE_TYPE" /> は組織の管理対象として登録されましたが、アセットと位置情報を送信できませんでした。このデバイスの管理コンソールで、この情報を手動で入力してください。</translation>
 <translation id="2396387085693598316">「<ph name="EXTENSION_NAME" />」は管理者によってブロックされています</translation>
 <translation id="2396783860772170191">4 桁の PIN(0000~9999)を入力してください</translation>
+<translation id="2398546389094871088">デバイスで Powerwash を実行しても eSIM プロファイルは削除されません。[<ph name="LINK_BEGIN" />モバイル設定<ph name="LINK_END" />] で次のプロファイルを手動で削除してください。</translation>
 <translation id="2399699884460174994">通知をオンにしました</translation>
 <translation id="2399939490305346086">セキュリティ キーのログインデータ</translation>
 <translation id="2400664245143453337">今すぐ更新が必要です</translation>
@@ -1739,6 +1742,7 @@
 <translation id="2844809857160214557">印刷ジョブの表示と管理</translation>
 <translation id="2845382757467349449">ブックマーク バーを常に表示</translation>
 <translation id="284805635805850872">有害なソフトウェアを削除しますか?</translation>
+<translation id="2849035674501872372">調べる</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" />(<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">クリーンアップできませんでした</translation>
 <translation id="2849936225196189499">重要</translation>
@@ -2050,6 +2054,7 @@
 <translation id="3189187154924005138">大きいカーソル</translation>
 <translation id="3190558889382726167">パスワードを保存しました</translation>
 <translation id="3192947282887913208">音声ファイル</translation>
+<translation id="3197453258332670132">右クリックするか長押しすると、選択したテキストに関連する情報が表示されます</translation>
 <translation id="3199127022143353223">サーバー</translation>
 <translation id="3201422919974259695">使用可能な USB デバイスがここに表示されます。</translation>
 <translation id="3202131003361292969">パス</translation>
@@ -2071,6 +2076,7 @@
 <translation id="3223531857777746191">リセットボタン</translation>
 <translation id="3225084153129302039">デフォルトの紫のアバター</translation>
 <translation id="3225319735946384299">コード署名</translation>
+<translation id="3226487301970807183">左揃えのサイドパネルを切り替えます</translation>
 <translation id="3227137524299004712">マイク</translation>
 <translation id="3233271424239923319">Linux のアプリとファイルをバックアップします</translation>
 <translation id="3238192140106069382">接続と認証を行っています</translation>
@@ -2340,6 +2346,7 @@
 <translation id="3515983984924808886">リセットを確定するには、セキュリティ キーをもう一度タップしてください。セキュリティ キーに保存されているすべての情報(PIN を含む)が削除されます。</translation>
 <translation id="3518985090088779359">同意して続行</translation>
 <translation id="3519564332031442870">バックエンドの印刷サービス</translation>
+<translation id="3519938335881974273">ページを別名で保存...</translation>
 <translation id="3521606918211282604">ディスクのサイズを変更</translation>
 <translation id="3522088408596898827">ディスクの空き領域が非常に少なくなっています。空き容量を増やしてもう一度お試しください。</translation>
 <translation id="3524965460886318643">アクティビティをエクスポート</translation>
@@ -2363,6 +2370,7 @@
 <translation id="3550593477037018652">モバイル ネットワークとの接続を切断する</translation>
 <translation id="3550915441744863158">Chrome は自動更新されるため、常に最新版をご利用になれます</translation>
 <translation id="3551320343578183772">タブを閉じる</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">終了時に削除</translation>
 <translation id="3554493885489666172">このデバイスは <ph name="PROFILE_NAME" /> によって管理されています。管理者はこのデバイスの任意のプロファイルのデータにアクセスできます。</translation>
 <translation id="3555812735919707620">拡張機能を削除</translation>
@@ -2415,6 +2423,7 @@
 <translation id="3604713164406837697">壁紙の変更</translation>
 <translation id="3605780360466892872">ボタンダウン</translation>
 <translation id="3608576286259426129">ユーザー画像のプレビュー</translation>
+<translation id="3609277884604412258">すばやく検索</translation>
 <translation id="3610369246614755442">ドックのファンに問題があります</translation>
 <translation id="361106536627977100">Flash データ</translation>
 <translation id="3611655097742243705">Play ストアでアプリを探しましょう</translation>
@@ -3358,6 +3367,7 @@
 <translation id="4636682061478263818">ドライブのファイル</translation>
 <translation id="4636930964841734540">情報</translation>
 <translation id="4637083375689622795">その他の操作(<ph name="EMAIL" />)</translation>
+<translation id="4637189644956543313">もう一度カメラを使用する</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{テキスト}other{# 件のテキスト}}</translation>
 <translation id="4638930039313743000">ADB デバッグを有効にする</translation>
 <translation id="4641539339823703554">Chrome はシステムの時刻を設定できませんでした。以下で時刻を確認し、必要に応じて修正してください。</translation>
@@ -4108,6 +4118,7 @@
 <translation id="5499313591153584299">このファイルはパソコンに危害を加える可能性があります。</translation>
 <translation id="5499453227627332024">Linux コンテナのアップグレードが可能です。後で設定アプリからアップグレードすることもできます。</translation>
 <translation id="5500709606820808700">安全確認を今日実行しました</translation>
+<translation id="5501322521654567960">左揃えのサイドパネル</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> から <ph name="ATTACHMENTS" />を受け取れませんでした}other{<ph name="DEVICE_NAME" /> から <ph name="ATTACHMENTS" />を受け取れませんでした}}</translation>
 <translation id="5502500733115278303">Firefox ブックマーク</translation>
 <translation id="5502915260472117187">お子様</translation>
@@ -5319,6 +5330,7 @@
 <translation id="6856348640027512653">バーチャル リアリティのデバイスやデータの使用を許可しないサイト</translation>
 <translation id="6856459657722366306"><ph name="NETWORK_INDEX" /> 番目のネットワーク(全 <ph name="NETWORK_COUNT" /> 件)、<ph name="NETWORK_NAME" />、<ph name="NETWORK_PROVIDER_NAME" />、<ph name="CONNECTION_STATUS" />、信号強度 <ph name="SIGNAL_STRENGTH" />%、詳細</translation>
 <translation id="6856623341093082836">タッチスクリーンをを設定し、精度を調整します</translation>
+<translation id="6857145580237920905">Powerwash を実行する前に eSIM プロファイルを削除してください</translation>
 <translation id="6857699260879628349">設定情報を取得</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> 秒</translation>
 <translation id="6860097299815761905">プロキシの設定...</translation>
@@ -5900,6 +5912,7 @@
 <translation id="7506541170099744506">この <ph name="DEVICE_TYPE" /> は組織の管理対象として登録されました。</translation>
 <translation id="7507207699631365376">このプロバイダの<ph name="BEGIN_LINK" />プライバシー ポリシー<ph name="END_LINK" />をご覧ください</translation>
 <translation id="7507930499305566459">ステータス レスポンダ証明書</translation>
+<translation id="7509246181739783082">本人確認</translation>
 <translation id="7513029293694390567">保存されている認証情報を使用してウェブサイトに自動的にログインします。この機能が無効になっている場合は、ウェブサイトにログインするときに毎回確認を求められます。</translation>
 <translation id="7514239104543605883">デバイスにコピー</translation>
 <translation id="7514365320538308">ダウンロード</translation>
@@ -6432,7 +6445,6 @@
 <translation id="8061091456562007989">元に戻す</translation>
 <translation id="8061991877177392872">アシスタントの Voice Match は、すでに別のデバイスで設定されたようです。このデバイスの音声モデルは、登録済みの音声を使って作成されています。</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 枚}other{{COUNT} 枚}}</translation>
-<translation id="8062879968880283306">QR コードをデバイスのカメラでスキャンするか、携帯通信会社から提供されたアクティベーション コードを入力してください。</translation>
 <translation id="8063235345342641131">デフォルトの緑のアバター</translation>
 <translation id="8063535366119089408">ファイルを表示</translation>
 <translation id="8064279191081105977">グループ <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6853,7 +6865,6 @@
 <translation id="8551588720239073785">日時の設定</translation>
 <translation id="8553342806078037065">他のユーザーを管理</translation>
 <translation id="8554899698005018844">言語設定なし</translation>
-<translation id="8555195867496021627">eSIM プロファイルがありません。<ph name="BEGIN_LINK" />こちら<ph name="END_LINK" />から新しいプロファイルをダウンロードしてください。</translation>
 <translation id="8557022314818157177">指紋の登録が完了するまで、セキュリティ キーをタッチし続けてください</translation>
 <translation id="8557930019681227453">マニフェスト</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{すべてを新しいウィンドウで開く(&amp;N)}=1{新しいウィンドウで開く(&amp;N)}other{すべて({COUNT} 個)を新しいウィンドウで開く(&amp;N)}}</translation>
@@ -7033,7 +7044,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" /> 番目のネットワーク(全 <ph name="NETWORK_COUNT" /> 件)、<ph name="NETWORK_NAME" />、<ph name="NETWORK_PROVIDER_NAME" />、信号強度 <ph name="SIGNAL_STRENGTH" />%、管理者によって管理、接続</translation>
 <translation id="8746654918629346731">「<ph name="EXTENSION_NAME" />」はリクエスト済みです</translation>
 <translation id="874689135111202667">{0,plural, =1{1 個のファイルをこのサイトにアップロードしますか?}other{# 個のファイルをこのサイトにアップロードしますか?}}</translation>
-<translation id="8749556627204742888">このデバイスの他のユーザーとネットワークを共有しています。</translation>
 <translation id="8749805710397399240">画面をキャストできません。[システム環境設定] で画面収録が許可されているか確認してください。</translation>
 <translation id="8749863574775030885">不明なベンダーの USB デバイスへのアクセス</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> がシリアルポートへの接続を要求しています</translation>
@@ -7095,7 +7105,6 @@
 <translation id="8808744862003883508">このページには、Chrome にインストールされているすべての拡張機能が表示されます。</translation>
 <translation id="8809147117840417135">明るい青緑</translation>
 <translation id="8811862054141704416">Crostini のマイクへのアクセス</translation>
-<translation id="8812552797690463522">このネットワークが共有されました。</translation>
 <translation id="8812593354822910461">閲覧履歴データ(<ph name="URL" />)も削除します。これにより、<ph name="DOMAIN" /> からログアウトします。<ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">後で通知</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> にログインできません</translation>
@@ -7307,7 +7316,6 @@
 <translation id="9021662811137657072">ウイルスを検出しました</translation>
 <translation id="902236149563113779">多くのサイトは、ゲームや HUD のナビ表示などで AR 機能を使用するためにカメラ位置を追跡します。</translation>
 <translation id="9022847679183471841">このアカウントは既にこのパソコンで <ph name="AVATAR_NAME" /> によって使用されています。</translation>
-<translation id="9023009238991294202">このデバイスの他のユーザーもこのネットワークを使用できます。</translation>
 <translation id="9023015617655685412">このタブをブックマークに追加...</translation>
 <translation id="9023909777842748145">この機能をオフにしても、システム アップデートやセキュリティといった重要なサービスで必要な情報はデバイスから引き続き送信されます。</translation>
 <translation id="9024127637873500333">新しいタブで開く(&amp;O)</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index c2f5d2e9..661d0749 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">გსურთ ნაგულისხმევი გაშვების გვერდის აღდგენა?</translation>
 <translation id="1388253969141979417">თქვენი მიკროფონის გამოყენება დაშვებულია</translation>
 <translation id="1388728792929436380">განახლებების დასრულების შემდეგ <ph name="DEVICE_TYPE" /> გადაიტვირთება.</translation>
-<translation id="138900021244932468">პროფილების აღმოჩენა ვერ მოხერხდა. ახალი ქსელის დასაყენებლად დაასკანირეთ QR კოდი მოწყობილობის კამერის მეშვეობით, ან შეიყვანეთ თქვენი ოპერატორის მიერ მოწოდებული აქტივაციის კოდი.</translation>
 <translation id="139013308650923562">დაშვებულია თქვენს მოწყობილობაზე დაინსტალირებული შრიფტების გამოყენება</translation>
 <translation id="1390548061267426325">ჩვეულებრივი ჩანართის სახით გახსნა</translation>
 <translation id="1393283411312835250">მზე და ღრუბლები</translation>
@@ -5912,6 +5911,7 @@
 <translation id="7506541170099744506">თქვენი <ph name="DEVICE_TYPE" /> წარმატებით დარეგისტრირდა კორპორატიული მართვისთვის.</translation>
 <translation id="7507207699631365376">ამ პროვაიდერის <ph name="BEGIN_LINK" />კონფიდენციალურობის დებულების<ph name="END_LINK" /> ნახვა</translation>
 <translation id="7507930499305566459">სტატუსის მოპასუხის სერტიფიკატი</translation>
+<translation id="7509246181739783082">დაადასტურეთ ვინაობა</translation>
 <translation id="7513029293694390567">ავტორიზაციის შენახული მონაცემების მეშვეობით ვებსაიტებში შესვლა ავტომატურად მოხდება. გათიშვის შემთხვევაში, ვებსაიტში შესვლის ყოველი მცდელობისას დადასტურება მოგიწევთ.</translation>
 <translation id="7514239104543605883">თქვენს მოწყობილობაზე კოპირება</translation>
 <translation id="7514365320538308">ჩამოტვირთვა</translation>
@@ -6443,7 +6443,6 @@
 <translation id="8061091456562007989">ცვლილების დაბრუნება</translation>
 <translation id="8061991877177392872">როგორც ჩანს, სხვა მოწყობილობაზე Google ასისტენტით უკვე დააყენეთ Voice Match. ძველი ჩანაწერები გამოყენებული იქნება ამ მოწყობილობაზე ხმის მოდელის შესაქმნელად.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ქაღალდის 1 ფურცელი}other{ქაღალდის {COUNT} ფურცელი}}</translation>
-<translation id="8062879968880283306">დაასკანირეთ QR კოდი მოწყობილობის კამერის მეშვეობით, ან შეიყვანეთ თქვენი ოპერატორის მიერ მოწოდებული აქტივაციის კოდი.</translation>
 <translation id="8063235345342641131">ნაგულისხმევი მწვანე ავატარი</translation>
 <translation id="8063535366119089408">ფაილის ნახვა</translation>
 <translation id="8064279191081105977">ჯგუფი „<ph name="GROUP_NAME" />“ — <ph name="GROUP_CONTENTS" /> — <ph name="COLLAPSED_STATE" /></translation>
@@ -6863,7 +6862,6 @@
 <translation id="8551588720239073785">თარიღისა და დროის პარამეტრები</translation>
 <translation id="8553342806078037065">სხვა ადამიანების მართვა</translation>
 <translation id="8554899698005018844">ენის გარეშე</translation>
-<translation id="8555195867496021627">eSIM-პროფილები მიუწვდომელია. ახალი პროფილის ჩამოტვირთვა <ph name="BEGIN_LINK" />შეგიძლიათ აქედან<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">გეჭიროთ თითი უსაფრთხოების გასაღებზე თითის ანაბეჭდის აღბეჭდვამდე</translation>
 <translation id="8557930019681227453">მანიფესტი</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{ყველას ა&amp;ხალ ფანჯარაში გახსნა}=1{ა&amp;ხალ ფანჯარაში გახსნა}other{{COUNT}-ვეს ა&amp;ხალ ფანჯარაში გახსნა}}</translation>
@@ -7043,7 +7041,6 @@
 <translation id="8743164338060742337">ქსელი <ph name="NETWORK_INDEX" /> / <ph name="NETWORK_COUNT" />-დან, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />%, მართავს თქვენი ადმინისტრატორი, დაკავშირება</translation>
 <translation id="8746654918629346731">თქვენ უკვე მოითხოვეთ „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="874689135111202667">{0,plural, =1{გსურთ ერთი ფაილის ატვირთვა ამ საიტზე?}other{გსურთ # ფაილის ატვირთვა ამ საიტზე?}}</translation>
-<translation id="8749556627204742888">ეს ქსელი თქვენ მიერ ზიარდება მოწყობილობის სხვა მომხმარებლებთან.</translation>
 <translation id="8749805710397399240">თქვენი ეკრანის ტრანსლირება ვერ ხერხდება. შეამოწმეთ ეკრანის ჩაწერის ნებართვა სისტემის პარამეტრებიდან.</translation>
 <translation id="8749863574775030885">USB მოწყობილობებზე უცნობი ვენდორისაგან წვდომა</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ითხოვს დაკავშირებას თანმიმდევრულ პორტთან</translation>
@@ -7105,7 +7102,6 @@
 <translation id="8808744862003883508">ამ გვერდზე შეგიძლიათ იხილოთ Chrome-ში დაინსტალირებული ყველა გაფართოება.</translation>
 <translation id="8809147117840417135">ღია ფირუზისფერი</translation>
 <translation id="8811862054141704416">Crostini-ს წვდომა მიკროფონზე</translation>
-<translation id="8812552797690463522">ეს ქსელი გაზიარებულია თქვენთან</translation>
 <translation id="8812593354822910461">დათვალიერების მონაცემების (<ph name="URL" />) გასუფთავებაც (ეს გამოგიყვანთ <ph name="DOMAIN" />-იდან). <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">მოგვიანებით შეხსენება</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" />-ში შესვლა ვერ მოხერხდა</translation>
@@ -7317,7 +7313,6 @@
 <translation id="9021662811137657072">აღმოჩენილია ვირუსი</translation>
 <translation id="902236149563113779">როგორც წესი, საიტების მიერ თქვენი კამერის პოზიციისთვის თვალის მიდევნება ხდება აუგმენტურ რეალობასთან დაკავშირებული ისეთი ფუნქციების უზრუნველსაყოფად, მაგალითად, თამაშებში ან მიმართულებებისთვის</translation>
 <translation id="9022847679183471841">მოცემულ ანგარიშს ამ კომპიუტერზე უკვე იყენებს <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">ამ ქსელის გამოყენება ამ მოწყობილობის სხვა მომხმარებლებს შეუძლია.</translation>
 <translation id="9023015617655685412">ამ ჩანართის სანიშნეებში დამატება…</translation>
 <translation id="9023909777842748145">ამ ფუნქციის გამორთვა არ შეუშლის ხელს თქვენს მოწყობილობას, გააგზავნოს ის საჭირო ინფორმაცია, რომელიც ისეთი არსებითი სერვისებისთვის არის აუცილებელი, როგორიცაა სისტემის განახლებები და უსაფრთხოება.</translation>
 <translation id="9024127637873500333">ახალ ჩანართზე &amp;გახსნა</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index c77cc9c5..3e43036c 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">Әдепкі іске қосу беті қалпына келтірілсін бе?</translation>
 <translation id="1388253969141979417">Микрофоныңызды пайдалануға рұқсаты барлар</translation>
 <translation id="1388728792929436380">Жаңарту аяқталғанда, <ph name="DEVICE_TYPE" /> құрылғысы қайта қосылады.</translation>
-<translation id="138900021244932468">Профильдер анықталмады. Жаңа желіні реттеу үшін құрылғының камерасымен QR кодын сканерлеңіз немесе оператор берген белсендіру кодын енгізіңіз.</translation>
 <translation id="139013308650923562">Құрылғыңызда орнатылған қаріптерді пайдалануға рұқсат берілген сайттар</translation>
 <translation id="1390548061267426325">Қалыпты қойынды ретінде ашу</translation>
 <translation id="1393283411312835250">Күн және бұлттар</translation>
@@ -510,6 +509,7 @@
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" тақырыбы орнатылды</translation>
 <translation id="1546280085599573572">Бұл кеңейтім Басты түймесін басқан кезде көрсетілетін бетті өзгертті.</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> келесілерді істей алатын <ph name="EXTENSION_TYPE" /> кеңейтімін орнатқысы келеді:</translation>
+<translation id="1547808936554660006">Powerwash функциясы орнатылған eSIM профильдерін өшірмейтінін түсінемін.</translation>
 <translation id="1549275686094429035">ARC қосылды</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> қолданбасы <ph name="VOLUME_NAME" /> құрылғысына кіруге рұқсат сұрауда. Ол файлдарыңызды өзгертуі немесе жоюы мүмкін.</translation>
 <translation id="1552301827267621511">"<ph name="EXTENSION_NAME" />" кеңейтімі іздеуді <ph name="SEARCH_PROVIDER_DOMAIN" /> пайдалануға ауыстырды.</translation>
@@ -546,6 +546,7 @@
 <translation id="1588438908519853928">Қалыпты</translation>
 <translation id="158849752021629804">Үй желісі қажет</translation>
 <translation id="1588870296199743671">Сілтемені келесі арқылы ашу…</translation>
+<translation id="1588919647604819635">Тінтуірдің оң жақ түймесін басу кезіндегі карта</translation>
 <translation id="1589055389569595240">Емле және грамматиканы көрсету</translation>
 <translation id="1591679663873027990">Parallels Desktop үшін USB құрылғыларына кіруге рұқсат ету. USB құрылғысы алынып тасталғаннан кейін, Parallels Desktop оны есте сақтамайды.</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> ADB түзетуін өшірді, енді <ph name="DEVICE_TYPE" /> құрылғысы бастапқы күйге қайтарылады. Қайта қоспас бұрын, файлдардың сақтық көшірмесін жасаңыз.</translation>
@@ -981,6 +982,7 @@
 
 Құрылғыңызға Family Link қолданбасын орнату арқылы есептік жазбаңыздың параметрлерін басқара аласыз.  Нұсқауларды электрондық пошта арқылы жібереміз.</translation>
 <translation id="2040460856718599782">Сізді аутентификациялау кезінде бірдеңе дұрыс болмады. Есептік деректеріңізді қайта тексеріп, әрекетті қайталап көріңіз.</translation>
+<translation id="2042279886444479655">Белсенді профильдер</translation>
 <translation id="2044014337866019681">Сеанстың құлпын ашу үшін <ph name="ACCOUNT" /> есептік жазбасының расталғанын тексеріңіз.</translation>
 <translation id="2044023416777079300">Модем тіркелмеген.</translation>
 <translation id="204497730941176055">Microsoft Certificate Template Name</translation>
@@ -1319,6 +1321,7 @@
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> құрылғысы кәсіпорын басқаруы үшін тіркелді, бірақ оның активі мен орналасу орны туралы ақпарат жіберілмеді. Бұл мәліметті осы құрылғының әкімші консолінен қолмен енгізіңіз.</translation>
 <translation id="2396387085693598316">Әкімші "<ph name="EXTENSION_NAME" />" кеңейтімін бөгеді.</translation>
 <translation id="2396783860772170191">4 таңбалы PIN кодын (0000-9999) енгізіңіз.</translation>
+<translation id="2398546389094871088">Құрылғыңызда Powerwash функциясын пайдалану кезінде eSIM профильдеріңіз өшірілмейді. Бұл профильдерді қолмен өшіру үшін <ph name="LINK_BEGIN" />Мобильдік құрылғы параметрлері<ph name="LINK_END" /> бөліміне кіріңіз.</translation>
 <translation id="2399699884460174994">Хабарландырулар қосылды</translation>
 <translation id="2399939490305346086">Қауіпсіздік кілтіне кіру деректері</translation>
 <translation id="2400664245143453337">Дереу жаңарту қажет</translation>
@@ -1735,6 +1738,7 @@
 <translation id="2844809857160214557">Баспа жұмыстарын көру және басқару</translation>
 <translation id="2845382757467349449">Әрқашан бетбелгілер жолағын көрсету</translation>
 <translation id="284805635805850872">Зиян бағдарламалық құрал өшірілсін бе?</translation>
+<translation id="2849035674501872372">Іздеу</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">Тазаланбады</translation>
 <translation id="2849936225196189499">Маңызды</translation>
@@ -2046,6 +2050,7 @@
 <translation id="3189187154924005138">Үлкен көрсеткі</translation>
 <translation id="3190558889382726167">Құпия сөз сақталды</translation>
 <translation id="3192947282887913208">Аудио файлдары</translation>
+<translation id="3197453258332670132">Тінтуірдің оң жақ түймесін бассаңыз немесе ұзақ басып тұрсаңыз, таңдаған мәтініңізге қатысты ақпарат көрсетіледі.</translation>
 <translation id="3199127022143353223">Серверлер</translation>
 <translation id="3201422919974259695">Қолжетімді USB құрылғылары осы жерге шығады.</translation>
 <translation id="3202131003361292969">Жолы</translation>
@@ -2067,6 +2072,7 @@
 <translation id="3223531857777746191">Бастапқы күйге қайтару түймесі</translation>
 <translation id="3225084153129302039">Әдепкі күлгін түсті аватар</translation>
 <translation id="3225319735946384299">Кодты белгілеу</translation>
+<translation id="3226487301970807183">Сол жақ бүйірлік панельді көрсету/жасыру</translation>
 <translation id="3227137524299004712">Микрофон</translation>
 <translation id="3233271424239923319">Linux қолданбалары мен файлдарының сақтық көшірмесін жасау</translation>
 <translation id="3238192140106069382">Қосылуда және расталуда</translation>
@@ -2336,6 +2342,7 @@
 <translation id="3515983984924808886">Бастапқы күйге қайтаруды растау үшін қауіпсіздік кілтін қайта түртіңіз. Қауіпсіздік кілтінде сақталған барлық ақпарат, оның ішінде PIN коды жойылатын болады.</translation>
 <translation id="3518985090088779359">Қабылдап, жалғастыру</translation>
 <translation id="3519564332031442870">Басып шығарудың серверлік қызметі</translation>
+<translation id="3519938335881974273">Бетті сақтау…</translation>
 <translation id="3521606918211282604">Дискінің көлемін өзгерту</translation>
 <translation id="3522088408596898827">Дискіде өте аз орын қалды. Дискіден орын босатып, әрекетті қайталаңыз.</translation>
 <translation id="3524965460886318643">Әрекеттер тарихын экспорттау</translation>
@@ -2359,6 +2366,7 @@
 <translation id="3550593477037018652">Ұялы байланыс желісін ажырату</translation>
 <translation id="3550915441744863158">Chrome автоматты түрде жаңартылады, сондықтан әрқашан ең жаңа нұсқасына ие боласыз.</translation>
 <translation id="3551320343578183772">Қойындыны жабу</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">Шыққанда өшіріледі</translation>
 <translation id="3554493885489666172">Құрылғыңызды <ph name="PROFILE_NAME" /> басқарады. Әкімшілер бұл құрылғыдағы кез келген профильдің деректерін пайдалана алады.</translation>
 <translation id="3555812735919707620">Кеңейтімді жою</translation>
@@ -2411,6 +2419,7 @@
 <translation id="3604713164406837697">Тұсқағазды өзгерту</translation>
 <translation id="3605780360466892872">Бизнесмен</translation>
 <translation id="3608576286259426129">Пайдаланушы кескінін алдын ала көру</translation>
+<translation id="3609277884604412258">Жылдам іздеу</translation>
 <translation id="3610369246614755442">Қондыру станциясының желдеткішін жөндеу керек</translation>
 <translation id="361106536627977100">Flash деректері</translation>
 <translation id="3611655097742243705">Басқа да қолданбаларды табу үшін Play Store-ға өтіңіз.</translation>
@@ -3354,6 +3363,7 @@
 <translation id="4636682061478263818">Drive файлдары</translation>
 <translation id="4636930964841734540">Ақпарат</translation>
 <translation id="4637083375689622795">Қосымша әрекеттер, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">Камераны қайта пайдалану</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{Мәтін}other{# мәтін}}</translation>
 <translation id="4638930039313743000">ADB түзетуін қосу</translation>
 <translation id="4641539339823703554">Chrome жүйе уақытын орната алмады. Төмендегі уақытты тексеріп, қажет болса, оны түзетіңіз.</translation>
@@ -4104,6 +4114,7 @@
 <translation id="5499313591153584299">Бұл файл компьютеріңізге зиянды болуы мүмкін.</translation>
 <translation id="5499453227627332024">Linux контейнері үшін жаңа нұсқа қолжетімді. Жаңа нұсқаны "Параметрлер" қолданбасы арқылы кейінірек орнатуыңызға болады.</translation>
 <translation id="5500709606820808700">Қауіпсіздік шарасы бүгін қолданылды.</translation>
+<translation id="5501322521654567960">Сол жақ бүйірлік панель</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> құрылғысынан <ph name="ATTACHMENTS" /> алынбады.}other{<ph name="DEVICE_NAME" /> құрылғысынан <ph name="ATTACHMENTS" /> алынбады.}}</translation>
 <translation id="5502500733115278303">Firefox браузерінен импортталған</translation>
 <translation id="5502915260472117187">Бала</translation>
@@ -5315,6 +5326,7 @@
 <translation id="6856348640027512653">Виртуалды шындық құрылғыларын немесе деректерді пайдалануға рұқсаты жоқтар</translation>
 <translation id="6856459657722366306"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> желі, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, сигнал күші: <ph name="SIGNAL_STRENGTH" />%, мәліметтер</translation>
 <translation id="6856623341093082836">Сенсорлық экран дәлдігін орнату және реттеу</translation>
+<translation id="6857145580237920905">Powerwash функциясын пайдаланбас бұрын, eSIM профильдерін өшіріңіз</translation>
 <translation id="6857699260879628349">Конфигурация туралы ақпарат алу</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> сек</translation>
 <translation id="6860097299815761905">Прокси параметрлері…</translation>
@@ -5896,6 +5908,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> құрылғысы кәсіпорын басқаруы үшін тіркелді.</translation>
 <translation id="7507207699631365376">Бұл провайдердің <ph name="BEGIN_LINK" />құпиялылық саясатын<ph name="END_LINK" /> көру</translation>
 <translation id="7507930499305566459">Күй жауапшысының сертификаты</translation>
+<translation id="7509246181739783082">Жеке басыңызды растаңыз</translation>
 <translation id="7513029293694390567">Сақталған тіркелу деректерімен вебсайттарға автоматты кіру. Өшірулі кезде, веб-сайтқа кірген сайын растау жасау сұралатын болады.</translation>
 <translation id="7514239104543605883">Құрылғыға көшіру</translation>
 <translation id="7514365320538308">Жүктеу</translation>
@@ -6427,7 +6440,6 @@
 <translation id="8061091456562007989">Оны қайта өзгерту</translation>
 <translation id="8061991877177392872">Voice Match функциясын Assistant қызметімен басқа құрылғыда реттеп қойған сияқтысыз. Бұл алдыңғы жазбалар осы құрылғыда дауыс үлгісін жасау үшін пайдаланылған.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 қағаз парақ}other{{COUNT} қағаз парақ}}</translation>
-<translation id="8062879968880283306">Құрылғының камерасымен QR кодын сканерлеңіз немесе оператор берген белсендіру кодын енгізіңіз.</translation>
 <translation id="8063235345342641131">Әдепкі жасыл түсті аватар</translation>
 <translation id="8063535366119089408">Файлды қарау</translation>
 <translation id="8064279191081105977"><ph name="GROUP_NAME" /> тобы – <ph name="GROUP_CONTENTS" /> –<ph name="COLLAPSED_STATE" /></translation>
@@ -6848,7 +6860,6 @@
 <translation id="8551588720239073785">Күн және уақыт параметрлері</translation>
 <translation id="8553342806078037065">Басқа пайдаланушыларды басқару</translation>
 <translation id="8554899698005018844">Тілі көрсетілмеген</translation>
-<translation id="8555195867496021627">Қолжетімді eSIM профильдері жоқ. Жаңа профильді <ph name="BEGIN_LINK" />осы жерден<ph name="END_LINK" /> жүктеп алыңыз.</translation>
 <translation id="8557022314818157177">Саусақ ізі түскенше, қауіпсіздік кілтін басып тұрыңыз.</translation>
 <translation id="8557930019681227453">Манифест</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Барлығын &amp;жаңа терезеден ашу}=1{&amp;Жаңа терезеден ашу}other{Барлығын ({COUNT}) &amp;жаңа терезеден ашу}}</translation>
@@ -7028,7 +7039,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> желі, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> сигнал күші: <ph name="SIGNAL_STRENGTH" />%, әкімшіңіз басқарады, қосылу</translation>
 <translation id="8746654918629346731">Бұған дейін "<ph name="EXTENSION_NAME" />" деп сұрап қойғансыз.</translation>
 <translation id="874689135111202667">{0,plural, =1{Осы сайтқа бір файл жүктеп салынсын ба?}other{Осы сайтқа # файл жүктеп салынсын ба?}}</translation>
-<translation id="8749556627204742888">Желіні осы құрылғының басқа пайдаланушыларымен бөлісіп жатырсыз.</translation>
 <translation id="8749805710397399240">Экранды трансляциялау мүмкін емес. "Жүйе параметрлері" бөлімінде экран жазғышты пайдалану рұқсатын тексеріңіз.</translation>
 <translation id="8749863574775030885">Белгісіз жеткізуші атынан USB құрылғыларына кіру</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> сериялық портқа қосылғысы келеді</translation>
@@ -7090,7 +7100,6 @@
 <translation id="8808744862003883508">Осы бетте Chrome браузеріне орнатылған барлық кеңейтімдерді көресіз.</translation>
 <translation id="8809147117840417135">Ашық көкшіл жасыл</translation>
 <translation id="8811862054141704416">Crostini жүйесінде микрофон пайдалану</translation>
-<translation id="8812552797690463522">Бұл желі сізбен бөлісілген.</translation>
 <translation id="8812593354822910461">Браузерді пайдалану деректерін де (<ph name="URL" />) өшіріңіз (<ph name="DOMAIN" /> сайтында есептік жазбаңыздан шығарыласыз). <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Кейінірек еске салу</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> есептік жазбасына кіру мүмкін емес</translation>
@@ -7302,7 +7311,6 @@
 <translation id="9021662811137657072">Вирус анықталды</translation>
 <translation id="902236149563113779">Ойындар немесе бағыттарды алдын ала айту сияқты AR функциялары үшін сайттар камераңыздың орнын қадағалайды.</translation>
 <translation id="9022847679183471841">Бұл есептік жазбаны <ph name="AVATAR_NAME" /> осы компьютерде пайдалануда.</translation>
-<translation id="9023009238991294202">Бұл құрылғының басқа пайдаланушылары осы желіні пайдалана алады.</translation>
 <translation id="9023015617655685412">Осы қойындыға бетбелгі қою…</translation>
 <translation id="9023909777842748145">Бұл функцияның өшірілуі құрылғының маңызды қызметтерге (мысалы, жүйелік жаңарту және қауіпсіздік) қажетті ақпаратты жіберу мүмкіндігіне әсер етпейді.</translation>
 <translation id="9024127637873500333">&amp;Жаңа қойындыда ашу</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 138414a..37b855d3 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">ស្តារទំព័រចាប់ផ្តើមលំនាំដើម?</translation>
 <translation id="1388253969141979417">អនុញ្ញាតឱ្យប្រើមីក្រូហ្វូនរបស់អ្នក</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> ​នឹងចាប់ផ្ដើម​ឡើងវិញ នៅពេលបញ្ចប់​ការដំឡើងកំណែ​។</translation>
-<translation id="138900021244932468">រកមិនឃើញកម្រងព័ត៌មានទេ។ ដើម្បីរៀបចំ​បណ្ដាញថ្មី សូមស្កេនកូដ QR ដោយប្រើ​កាមេរ៉ារបស់ឧបករណ៍ ឬបញ្ចូលលេខកូដ​បើកដំណើរការ ដែលបានផ្ដល់​ដោយក្រុមហ៊ុន​សេវាទូរសព្ទរបស់អ្នក។</translation>
 <translation id="139013308650923562">អនុញ្ញាតឱ្យប្រើពុម្ព​អក្សរ​ ដែលបានដំឡើងនៅលើឧបករណ៍របស់អ្នក</translation>
 <translation id="1390548061267426325">បើកជាផ្ទាំងធម្មតា</translation>
 <translation id="1393283411312835250">ព្រះអាទិត្យ និងពពក</translation>
@@ -516,6 +515,7 @@
 <translation id="1545775234664667895">បានដំឡើង​រចនាប័ទ្ម "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">កម្មវិធីបន្ថែមនេះបានប្តូរអ្វីដែលទំព័របានបង្ហាញនៅពេលអ្នកចុចប៊ូតុង ទំព័រដើម។</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> ចង់ដំឡើង <ph name="EXTENSION_TYPE" /> ដែលអាច៖</translation>
+<translation id="1547808936554660006">ខ្ញុំយល់ហើយថា កម្រងព័ត៌មាន eSIM ដែលបានដំឡើង​នឹងមិនត្រូវបាន​ដកចេញដោយ Powerwash ទេ</translation>
 <translation id="1549275686094429035">បានបើក ARC</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> ចង់ចូលប្រើ <ph name="VOLUME_NAME" />។ វាអាចនឹងកែសម្រួល ឬលុបឯកសាររបស់អ្នក។</translation>
 <translation id="1552301827267621511">កម្មវិធីបន្ថែម "<ph name="EXTENSION_NAME" />" បានប្ដូរការស្វែងរកទៅប្រើ <ph name="SEARCH_PROVIDER_DOMAIN" /></translation>
@@ -552,6 +552,7 @@
 <translation id="1588438908519853928">ធម្មតា</translation>
 <translation id="158849752021629804">ត្រូវការបណ្តាញនៅតាមផ្ទះ</translation>
 <translation id="1588870296199743671">បើកដំណជាមួយ...</translation>
+<translation id="1588919647604819635">ចុចកណ្ដុរខាងស្ដាំលើកាត</translation>
 <translation id="1589055389569595240">បង្ហាញការប្រកប និងវេយ្យាករណ៍</translation>
 <translation id="1591679663873027990">ផ្ដល់ការអនុញ្ញាតឱ្យ Parallels Desktop ចូលប្រើឧបករណ៍ USB។ Parallels Desktop នឹងមិនចងចាំ​ឧបករណ៍ USB ទេ បន្ទាប់ពី​ដកឧបករណ៍ USB ចេញ។</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> បានបិទ​ការជួសជុល ADB។ ​ការបិទនេះ​នឹងកំណត់ <ph name="DEVICE_TYPE" /> របស់អ្នក​ឡើងវិញ​។ សូមបម្រុងទុកឯកសាររបស់អ្នក មុនពេលចាប់ផ្ដើមឡើងវិញ។</translation>
@@ -996,6 +997,7 @@
 
 អ្នក​អាច​គ្រប់គ្រង​ការកំណត់​របស់គណនី​នេះ​ដោយដំឡើង​កម្មវិធី Family Link នៅលើ​ឧបករណ៍របស់អ្នក។  យើង​បានផ្ញើ​ការណែនាំទៅអ្នក​តាមរយៈអ៊ីមែល។</translation>
 <translation id="2040460856718599782">អូ! មានបញ្ហាអ្វីមួយកើតឡើង នៅពេលកំពុងព្យាយាមសម្គាល់អត្តសញ្ញាណរបស់អ្នក។  សូមពិនិត្យភាពត្រឹមត្រូវនៃការចូលរបស់អ្នកដោយប្រុងប្រយ័ត្ន ហើយព្យាយាមម្តងទៀត។</translation>
+<translation id="2042279886444479655">បើកដំណើរការ​កម្រងព័ត៌មាន</translation>
 <translation id="2044014337866019681">សូមប្រាកដថា អ្នកកំពុងផ្ទៀងផ្ទាត់ <ph name="ACCOUNT" /> ដើម្បីដោះសោវគ្គនេះ។</translation>
 <translation id="2044023416777079300">មិនបានចុះឈ្មោះម៉ូដឹមទេ</translation>
 <translation id="204497730941176055">ឈ្មោះពុម្ពវិញ្ញាបនប័ត្រ Microsoft</translation>
@@ -1337,6 +1339,7 @@
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> របស់អ្នកបានចុះឈ្មោះដោយជោគជ័យសម្រាប់ការគ្រប់គ្រងសហគ្រាស ក៏ប៉ុន្តែបានបរាជ័យក្នុងការផ្ញើព័ត៌មានអំពីទ្រព្យសកម្ម និងទីតាំងរបស់វា។ សូមបញ្ចូលព័ត៌មាននេះដោយផ្ទាល់ចេញពីកុងសូលគ្រប់គ្រងសម្រាប់ឧបករណ៍នេះ។</translation>
 <translation id="2396387085693598316">អ្នកគ្រប់គ្រង​របស់អ្នក​បានទប់ស្កាត់ "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="2396783860772170191">បញ្ចូល​កូដ pin 4 ខ្ទង់ (0000-9999)</translation>
+<translation id="2398546389094871088">ការធ្វើ Powerwash ឧបករណ៍របស់អ្នក​នឹងមិនដកកម្រងព័ត៌មាន eSIM របស់អ្នក​ចេញទេ។ សូមចូល​ទៅកាន់<ph name="LINK_BEGIN" />ការកំណត់​ឧបករណ៍ចល័ត<ph name="LINK_END" /> ដើម្បីដកកម្រង​ព័ត៌មានទាំងនេះ​ចេញដោយផ្ទាល់ដៃ។</translation>
 <translation id="2399699884460174994">បានបើកការជូនដំណឹង</translation>
 <translation id="2399939490305346086">ទិន្នន័យ​ចូលគណនីរបស់​សោសុវត្ថិភាព</translation>
 <translation id="2400664245143453337">តម្រូវឱ្យមាន​ការដំឡើង​កំណែភ្លាមៗ</translation>
@@ -1754,6 +1757,7 @@
 <translation id="2844809857160214557">មើល និង​គ្រប់គ្រង​ការងារ​បោះពុម្ព</translation>
 <translation id="2845382757467349449">បង្ហាញរបាចំណាំជានិច្ច</translation>
 <translation id="284805635805850872">លុប​កម្មវិធី​ដែលបង្កគ្រោះថ្នាក់?</translation>
+<translation id="2849035674501872372">រកមើល</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">មិន​អាច​សម្អាត​បានទេ</translation>
 <translation id="2849936225196189499">សំខាន់</translation>
@@ -2065,6 +2069,7 @@
 <translation id="3189187154924005138">ទស្សន៍ទ្រនិច​ធំ</translation>
 <translation id="3190558889382726167">បានរក្សាទុកពាក្យសម្ងាត់</translation>
 <translation id="3192947282887913208">ឯកសារសម្លេង</translation>
+<translation id="3197453258332670132">បង្ហាញព័ត៌មាន​ដែលពាក់ព័ន្ធ​សម្រាប់ការជ្រើសរើសអត្ថបទ​របស់អ្នក នៅពេលអ្នកចុច​កណ្ដុរខាងស្ដាំ ឬចុចឱ្យយូរ</translation>
 <translation id="3199127022143353223">ម៉ាស៊ីនមេ</translation>
 <translation id="3201422919974259695">ឧបករណ៍ USB ដែលអាចប្រើបាននឹងបង្ហាញនៅទីនេះ។</translation>
 <translation id="3202131003361292969">ផ្លូវ</translation>
@@ -2086,6 +2091,7 @@
 <translation id="3223531857777746191">ប៊ូតុង​កំណត់ឡើងវិញ</translation>
 <translation id="3225084153129302039">រូបតំណាងពណ៌ស្វាយលំនាំដើម</translation>
 <translation id="3225319735946384299">ការចុះហត្ថលេខាជាលេខកូដ</translation>
+<translation id="3226487301970807183">បិទ/បើកផ្ទាំងចំហៀង​ដែលតម្រឹមខាងឆ្វេង</translation>
 <translation id="3227137524299004712">ម៉ៃក្រូហ្វូន</translation>
 <translation id="3233271424239923319">បម្រុងទុក​កម្មវិធី និង​ឯកសារ Linux</translation>
 <translation id="3238192140106069382">កំពុងភ្ជាប់ និងកំពុងផ្ទៀងផ្ទាត់</translation>
@@ -2355,6 +2361,7 @@
 <translation id="3515983984924808886">ចុច​សោសុវត្ថិភាព​របស់អ្នក​ម្ដងទៀត ដើម្បី​បញ្ជាក់​ការកំណត់​ឡើងវិញ។ នឹងលុបព័ត៌មាន​ទាំងអស់​ដែលរក្សាទុក​នៅក្នុង​សោសុវត្ថិភាព រួមទាំងកូដ PIN របស់វា​ផងដែរ។</translation>
 <translation id="3518985090088779359">ព្រមទទួល និងបន្ត</translation>
 <translation id="3519564332031442870">Print Backend Service</translation>
+<translation id="3519938335881974273">រក្សាទុកទំព័រជា...</translation>
 <translation id="3521606918211282604">ប្ដូរ​ទំហំ​ថាស</translation>
 <translation id="3522088408596898827">ទំហំផ្ទុកក្នុងថាស​នៅសល់តិចណាស់។ សូមបង្កើន​ទំហំផ្ទុកក្នុងថាស រួចព្យាយាមម្ដងទៀត។</translation>
 <translation id="3524965460886318643">នាំចេញ​សកម្មភាព</translation>
@@ -2378,6 +2385,7 @@
 <translation id="3550593477037018652">ផ្ដាច់​បណ្ដាញ​ចល័ត</translation>
 <translation id="3550915441744863158">Chrome ធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិ ដូច្នេះអ្នកមានកំណែថ្មីបំផុតជានិច្ច</translation>
 <translation id="3551320343578183772">បិទផ្ទាំង</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">បានសម្អាតនៅពេល​ចាកចេញ</translation>
 <translation id="3554493885489666172">ឧបករណ៍​របស់អ្នកស្ថិតក្រោមការគ្រប់គ្រង​របស់ <ph name="PROFILE_NAME" />។ អ្នកគ្រប់គ្រងអាចចូលប្រើទិន្នន័យនៅក្នុងកម្រងព័ត៌មានទាំងឡាយ ដែលមាននៅក្នុងឧបករណ៍នេះ។</translation>
 <translation id="3555812735919707620">ដកកម្មវិធីបន្ថែមចេញ</translation>
@@ -2430,6 +2438,7 @@
 <translation id="3604713164406837697">ប្ដូរផ្ទាំងរូបភាព</translation>
 <translation id="3605780360466892872">Buttondown</translation>
 <translation id="3608576286259426129">ពិនិត្យមើលរូបភាពអ្នកប្រើ</translation>
+<translation id="3609277884604412258">ការស្វែងរករហ័ស</translation>
 <translation id="3610369246614755442">កង្ហារឧបករណ៍​ភ្ជាប់​តម្រូវឱ្យមានការ​ជួលជុល</translation>
 <translation id="361106536627977100">ទិន្នន័យ Flash</translation>
 <translation id="3611655097742243705">ចូល​ទៅកាន់ Play Store ដើម្បីស្វែងរក​កម្មវិធីច្រើនទៀត</translation>
@@ -3374,6 +3383,7 @@
 <translation id="4636682061478263818">ឯកសារ​ក្នុង​ថាស</translation>
 <translation id="4636930964841734540">ព័ត៌មាន</translation>
 <translation id="4637083375689622795">សកម្មភាព​ច្រើនទៀត <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">ប្រើកាមេរ៉ា​ម្ដងទៀត</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{អត្ថបទ}other{អត្ថបទ #}}</translation>
 <translation id="4638930039313743000">បើក​ការជួសជុល ADB</translation>
 <translation id="4641539339823703554">Chrome មិនអាចកំណត់ពេលវេលាប្រព័ន្ធ។ សូមពិនិត្យពេលវេលាខាងក្រោម ហើយកែតម្រូវវាបើចាំបាច់។</translation>
@@ -4124,6 +4134,7 @@
 <translation id="5499313591153584299">ឯកសារនេះអាចបង្កគ្រោះថ្នាក់ដល់កុំព្យូទ័ររបស់អ្នក។</translation>
 <translation id="5499453227627332024">មានកំណែថ្មីសម្រាប់ទម្រង់ផ្ទុក Linux របស់អ្នក។ អ្នកក៏អាចដំឡើងកំណែក្នុងកម្មវិធីការកំណត់នៅពេលក្រោយបានផងដែរ។</translation>
 <translation id="5500709606820808700">ការពិនិត្យ​សុវត្ថិភាព​បានដំណើរការនៅថ្ងៃនេះ</translation>
+<translation id="5501322521654567960">ផ្ទាំងចំហៀង​ដែលតម្រឹមខាងឆ្វេង</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{មិនអាចទទួល <ph name="ATTACHMENTS" /> ពី <ph name="DEVICE_NAME" /> បានទេ}other{មិនអាចទទួល <ph name="ATTACHMENTS" /> ពី <ph name="DEVICE_NAME" /> បានទេ}}</translation>
 <translation id="5502500733115278303">បាននាំចូលពី Firefox</translation>
 <translation id="5502915260472117187">កុមារ</translation>
@@ -5336,6 +5347,7 @@
 <translation id="6856348640027512653">មិនអនុញ្ញាត​ឱ្យប្រើទិន្នន័យ ឬ​ឧបករណ៍ VR ទេ</translation>
 <translation id="6856459657722366306">បណ្ដាញ <ph name="NETWORK_INDEX" /> នៃ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, កម្លាំងរលកសញ្ញា <ph name="SIGNAL_STRENGTH" />%, ព័ត៌មានលម្អិត</translation>
 <translation id="6856623341093082836">រៀបចំ និង​កែ​សម្រួល​កម្រិត​ពណ៌​ដែល​ត្រឹមត្រូវ​សម្រាប់​អេក្រង់​ចុច​របស់​អ្នក</translation>
+<translation id="6857145580237920905">ដកកម្រង​ព័ត៌មាន eSIM ចេញ មុននឹង Powerwash</translation>
 <translation id="6857699260879628349">ទទួលព័ត៌មាន​អំពី​ការកំណត់​រចនាសម្ព័ន្ធ</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> វិនាទី</translation>
 <translation id="6860097299815761905">ការកំណត់ប្រូកស៊ី...</translation>
@@ -5917,6 +5929,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> របស់អ្នកបានចុះឈ្មោះដោយជោគជ័យសម្រាប់ការគ្រប់គ្រងសហគ្រាស។</translation>
 <translation id="7507207699631365376">មើល<ph name="BEGIN_LINK" />គោលការណ៍ឯកជនភាព<ph name="END_LINK" />របស់ក្រុមហ៊ុនផ្ដល់សេវានេះ</translation>
 <translation id="7507930499305566459">វិញ្ញាបនប័ត្រអ្នកឆ្លើយតបស្ថានភាព</translation>
+<translation id="7509246181739783082">ផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នក</translation>
 <translation id="7513029293694390567">ចូលគេហទំព័រដោយស្វ័យប្រវត្តិ ដោយប្រើព័ត៌មានសម្គាល់ខ្លួនដែលបានផ្ទុក។ ប្រសិនបើបិទ អ្នកនឹងត្រូវបានស្នើឲ្យធ្វើការបញ្ជាក់មុនពេលចូលគេហទំព័រម្តងៗ។</translation>
 <translation id="7514239104543605883">ចម្លង​ទៅ​ឧបករណ៍​របស់អ្នក</translation>
 <translation id="7514365320538308">ទាញយក</translation>
@@ -6448,7 +6461,6 @@
 <translation id="8061091456562007989">ប្ដូរទៅ​ការកំណត់​ចាស់វិញ</translation>
 <translation id="8061991877177392872">អ្នកហាក់​ដូចជា​បានរៀបចំ​មុខងារ Voice Match ជាមួយជំនួយការ​របស់អ្នក​នៅលើ​ឧបករណ៍​ផ្សេងទៀត​រួចហើយ។ ​សំឡេងថត​ពីមុនៗ​ទាំងនេះ​ត្រូវបានប្រើ ដើម្បី​បង្កើតគំរូ​សំឡេង​នៅលើ​ឧបករណ៍​នេះ។</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ក្រដាស 1 សន្លឹក}other{ក្រដាស {COUNT} សន្លឹក}}</translation>
-<translation id="8062879968880283306">ស្កេនកូដ QR ដោយប្រើ​កាមេរ៉ារបស់ឧបករណ៍ ឬបញ្ចូលលេខកូដ​បើកដំណើរការ ដែលបានផ្ដល់​ដោយក្រុមហ៊ុន​សេវាទូរសព្ទរបស់អ្នក។</translation>
 <translation id="8063235345342641131">រូបតំណាងពណ៌បៃតងលំនាំដើម</translation>
 <translation id="8063535366119089408">មើល​ឯកសារ</translation>
 <translation id="8064279191081105977">ក្រុម <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6869,7 +6881,6 @@
 <translation id="8551588720239073785">ការកំណត់​កាលបរិច្ឆេទ និងម៉ោង</translation>
 <translation id="8553342806078037065">គ្រប់គ្រងមនុស្សផ្សេងទៀត</translation>
 <translation id="8554899698005018844">គ្មាន​ភាសាទេ</translation>
-<translation id="8555195867496021627">មិនមាន​កម្រងព័ត៌មាន eSIM ទេ​។ សូម​ទាញយក​កម្រងព័ត៌មាន​ថ្មី<ph name="BEGIN_LINK" />នៅទីនេះ។<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">បន្ត​ចុច​សោសុវត្ថិភាព​ រហូតទាល់តែ​ថតបាន​ស្នាមម្រាមដៃ​របស់អ្នក</translation>
 <translation id="8557930019681227453">ជាក់លាក់</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{បើកទាំងអស់នៅក្នុង&amp;វិនដូថ្មី}=1{បើកនៅក្នុង&amp;វិនដូថ្មី}other{បើកទាំងអស់ ({COUNT}) នៅក្នុង&amp;វិនដូថ្មី}}</translation>
@@ -7049,7 +7060,6 @@
 <translation id="8743164338060742337">បណ្ដាញ <ph name="NETWORK_INDEX" /> នៃ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, កម្លាំងរលកសញ្ញា <ph name="SIGNAL_STRENGTH" />%, គ្រប់គ្រងដោយ​អ្នកគ្រប់គ្រងរបស់អ្នក, ភ្ជាប់</translation>
 <translation id="8746654918629346731">អ្នកបានស្នើសុំ "<ph name="EXTENSION_NAME" />" រួចហើយ</translation>
 <translation id="874689135111202667">{0,plural, =1{បង្ហោះឯកសារ​មួយ​ទៅ​ទំព័រ​នេះ​?}other{បង្ហោះឯកសារ​ # ​ទៅ​ទំព័រ​នេះ​?}}</translation>
-<translation id="8749556627204742888">អ្នក​កំពុងចែករំលែក​បណ្ដាញនេះ​ជាមួយអ្នកប្រើប្រាស់​ផ្សេងទៀត​ដែលប្រើឧបករណ៍​នេះ។</translation>
 <translation id="8749805710397399240">មិនអាចភ្ជាប់អេក្រង់​របស់អ្នកបានទេ។ សូមពិនិត្យមើល​ការអនុញ្ញាតឱ្យថតអេក្រង់​នៅក្នុង​ចំណូលចិត្តប្រព័ន្ធ។</translation>
 <translation id="8749863574775030885">ចូលប្រើឧបករណ៍ USB ពីអ្នកលក់មិនស្គាល់</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ចង់ភ្ជាប់​ទៅរន្ធស៊េរី</translation>
@@ -7111,7 +7121,6 @@
 <translation id="8808744862003883508">នៅលើ​ទំព័រ​នេះ អ្នក​អាច​មើលឃើញ​កម្មវិធី​បន្ថែម​ទាំងអស់​ដែលដំឡើង​នៅក្នុង Chrome​។</translation>
 <translation id="8809147117840417135">បៃតង​ស្រាល</translation>
 <translation id="8811862054141704416">ការចូលប្រើមីក្រូហ្វូនសម្រាប់ Crostini</translation>
-<translation id="8812552797690463522">បណ្ដាញ​នេះ​ត្រូវបានចែករំលែក​ជាមួយ​អ្នក​។</translation>
 <translation id="8812593354822910461">ក៏សម្អាត​ទិន្នន័យ​រុករក (<ph name="URL" />) ដែលនឹង​នាំអ្នក​ចេញពី <ph name="DOMAIN" /> ផងដែរ។ <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">រំលឹក​ខ្ញុំ​ពេលក្រោយ</translation>
 <translation id="8813698869395535039">មិនអាចចូល <ph name="USERNAME" /> បានទេ</translation>
@@ -7323,7 +7332,6 @@
 <translation id="9021662811137657072">បានរកឃើញមេរោគ</translation>
 <translation id="902236149563113779">ជាធម្មតា ឧបករណ៍តាមដានទីតាំងកាមេរ៉ារបស់អ្នកសម្រាប់មុខងារ AR ដូចជាហ្គេម ឬទិសដៅប្រុងប្រយ័ត្នជាដើម</translation>
 <translation id="9022847679183471841">គណនីនេះកំពុងត្រូវបានប្រើដោយ <ph name="AVATAR_NAME" /> នៅលើកុំព្យូទ័រនេះរួចហើយ។</translation>
-<translation id="9023009238991294202">អ្នកផ្សេងទៀតដែលប្រើប្រាស់ឧបករណ៍នេះអាចប្រើបណ្តាញនេះបាន។</translation>
 <translation id="9023015617655685412">ចំណាំ​ផ្ទាំងនេះ...</translation>
 <translation id="9023909777842748145">ការ​បិទ​មុខងារ​នេះ​មិន​ប៉ះ​ពាល់​ដល់​សមត្ថភាព​​របស់ឧបករណ៍​​អ្នក​ក្នុង​ការបញ្ជូនព័ត៌មាន ដែល​ចាំបាច់​សម្រាប់​សេវាកម្ម​សំខាន់ៗដូចជា បច្ចុប្បន្នភាព​ប្រព័ន្ធ និង​សុវត្ថិភាពនោះទេ។</translation>
 <translation id="9024127637873500333">បើកនៅក្នុងផ្ទាំងថ្មី</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 59286917..1372082 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">ಡಿಫಾಲ್ಟ್‌ ಆರಂಭಿಕ ಪುಟವನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದೇ?</translation>
 <translation id="1388253969141979417">ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ ಬಳಸಲು ಈ ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗಿದೆ</translation>
 <translation id="1388728792929436380">ಅಪ್‌ಡೇಟ್‌ಗಳು ಪೂರ್ಣವಾದಾಗ <ph name="DEVICE_TYPE" /> ಸಾಧನವು ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ.</translation>
-<translation id="138900021244932468">ಯಾವುದೇ ಪ್ರೊಫೈಲ್‌ಗಳನ್ನು ಅನ್ವೇಷಿಸಲಾಗಿಲ್ಲ. ಹೊಸ ನೆಟ್‌ವರ್ಕ್‌ ಸೆಟಪ್ ಮಾಡಲು, ಸಾಧನ ಕ್ಯಾಮರಾ ಬಳಸಿ QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ ಅಥವಾ ನಿಮ್ಮ ಕ್ಯಾರಿಯರ್ ಒದಗಿಸಿದ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ.</translation>
 <translation id="139013308650923562">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾದ ಫಾಂಟ್‌ಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸಲಾಗಿದೆ</translation>
 <translation id="1390548061267426325">ದಿನನಿತ್ಯದ ಟ್ಯಾಬ್ ಅಂತೆ ತೆರೆಯಿರಿ</translation>
 <translation id="1393283411312835250">ಸೂರ್ಯ ಮತ್ತು ಮೇಘಗಳು</translation>
@@ -5923,6 +5922,7 @@
 <translation id="7506541170099744506">ಎಂಟರ್‌ಪ್ರೈಸ್ ನಿರ್ವಹಣೆಗಾಗಿ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ದಾಖಲಿಸಲಾಗಿದೆ.</translation>
 <translation id="7507207699631365376">ಈ ಪೂರೈಕೆದಾರರ <ph name="BEGIN_LINK" />ಗೌಪ್ಯತೆ ನೀತಿಯನ್ನು<ph name="END_LINK" /> ನೋಡಿ</translation>
 <translation id="7507930499305566459">ಸ್ಥಿತಿ ಪ್ರತಿಕ್ರಿಯೆ ನೀಡುವವರ ಪ್ರಮಾಣಪತ್ರ</translation>
+<translation id="7509246181739783082">ನಿಮ್ಮ ಗುರುತನ್ನು ಖಚಿತಪಡಿಸಿ</translation>
 <translation id="7513029293694390567">ಸಂಗ್ರಹಿಸಲಾದ ರುಜುವಾತುಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಮೂಲಕ ವೆಬ್‌ಸೈಟ್‌ಗಳಿಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿ. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ವೆಬ್‌ಸೈಟ್‌ಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವ ಮೊದಲು ಪ್ರತಿ ಬಾರಿಯೂ ನಿಮಗೆ ದೃಢೀಕರಿಸಲು ಕೇಳಲಾಗುವುದು.</translation>
 <translation id="7514239104543605883">ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ನಕಲಿಸಿ</translation>
 <translation id="7514365320538308">ಡೌನ್‌ಲೋಡ್</translation>
@@ -6451,7 +6451,6 @@
 <translation id="8061091456562007989">ಹಳೆಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಬದಲಾಯಿಸಿ</translation>
 <translation id="8061991877177392872">ನೀವು ಈಗಾಗಲೇ ಮತ್ತೊಂದು ಸಾಧನದಲ್ಲಿ ನಿಮ್ಮ Assistant ಮೂಲಕ Voice Match ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ಈ ಸಾಧನದಲ್ಲಿ ವಾಯ್ಸ್ ಮಾಡೆಲ್ ಅನ್ನು ರೂಪಿಸಲು ಈ ಹಿಂದೆ ರೆಕಾರ್ಡಿಂಗ್‌ಗಳನ್ನು ಬಳಸಲಾಗಿತ್ತು.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 ಕಾಗದದ ಹಾಳೆ}one{{COUNT} ಕಾಗದದ ಹಾಳೆಗಳು}other{{COUNT} ಕಾಗದದ ಹಾಳೆಗಳು}}</translation>
-<translation id="8062879968880283306">ಸಾಧನದ ಕ್ಯಾಮರಾ ಬಳಸಿ QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ ಅಥವಾ ನಿಮ್ಮ ಕ್ಯಾರಿಯರ್ ಒದಗಿಸಿದ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ.</translation>
 <translation id="8063235345342641131">ಡಿಫಾಲ್ಟ್ ಹಸಿರು ಅವತಾರ್</translation>
 <translation id="8063535366119089408">ಫೈಲ್ ವೀಕ್ಷಿಸಿ</translation>
 <translation id="8064279191081105977">ಗುಂಪು <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6872,7 +6871,6 @@
 <translation id="8551588720239073785">ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="8553342806078037065">ಇತರ ವ್ಯಕ್ತಿಗಳನ್ನು ನಿರ್ವಹಿಸು</translation>
 <translation id="8554899698005018844">ಭಾಷೆ ನಮೂದಿಸಿಲ್ಲ</translation>
-<translation id="8555195867496021627">ಯಾವುದೇ ಲಭ್ಯವಿರುವ eSIM ಪ್ರೊಫೈಲ್‌ಗಳಿಲ್ಲ. ಹೊಸ ಪ್ರೊಫೈಲ್ ಅನ್ನು <ph name="BEGIN_LINK" />ಇಲ್ಲಿ<ph name="END_LINK" /> ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ.</translation>
 <translation id="8557022314818157177">ನಿಮ್ಮ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್ನು ಕ್ಯಾಪ್ಚರ್ ಮಾಡುವವರೆಗೆ ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಸ್ಪರ್ಶಿಸುತ್ತಾ ಇರಿ.</translation>
 <translation id="8557930019681227453">ಮ್ಯಾನಿಫೆಸ್ಟ್</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ತೆರೆಯಿರಿ}=1{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ}one{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ ({COUNT}) ಗಳನ್ನು ತೆರೆಯಿರಿ}other{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ ({COUNT}) ಗಳನ್ನು ತೆರೆಯಿರಿ}}</translation>
@@ -7052,7 +7050,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" /> ರಲ್ಲಿ <ph name="NETWORK_INDEX" /> ನೆಟ್‌ವರ್ಕ್,<ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ <ph name="SIGNAL_STRENGTH" />%, ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ, ಕನೆಕ್ಟ್ ಮಾಡಿ</translation>
 <translation id="8746654918629346731">ನೀವು ಈಗಾಗಲೇ "<ph name="EXTENSION_NAME" />" ಗಾಗಿ ವಿನಂತಿಸಿದ್ದೀರಿ</translation>
 <translation id="874689135111202667">{0,plural, =1{ಈ ಸೈಟ್‌ಗೆ ಒಂದು ಫೈಲ್‌ ಅನ್ನು ಅಪ್‌ಲೋಡ್‌ ಮಾಡಬೇಕೇ?}one{ಈ ಸೈಟ್‌ಗೆ # ಫೈಲ್‌ಗಳನ್ನು ಅಪ್‌ಲೋಡ್‌ ಮಾಡಬೇಕೇ?}other{ಈ ಸೈಟ್‌ಗೆ # ಫೈಲ್‌ಗಳನ್ನು ಅಪ್‌ಲೋಡ್‌ ಮಾಡಬೇಕೇ?}}</translation>
-<translation id="8749556627204742888">ಈ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ನೀವು ಈ ಸಾಧನದಲ್ಲಿನ ಇತರ ಬಳಕೆದಾರರ ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳುತ್ತಿದ್ದೀರಿ.</translation>
 <translation id="8749805710397399240">ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಬಿತ್ತರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಸಿಸ್ಟಂ ಆದ್ಯತೆಗಳಲ್ಲಿ ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡಿಂಗ್ ಅನುಮತಿಯನ್ನು ಪರಿಶೀಲಿಸಿ.</translation>
 <translation id="8749863574775030885">ಅಪರಿಚಿತ ಮಾರಾಟಗಾರರಿಂದ USB ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ಒಂದು ಸೀರಿಯಲ್ ಪೋರ್ಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಬಯಸುತ್ತದೆ</translation>
@@ -7115,7 +7112,6 @@
 <translation id="8808744862003883508">Chrome ನಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿರುವ ಎಲ್ಲಾ ವಿಸ್ತರಣೆಗಳನ್ನು ಈ ಪುಟದಲ್ಲಿ ನೀವು ನೋಡಬಹುದು.</translation>
 <translation id="8809147117840417135">ತಿಳಿ ಕೆನ್ನೀಲಿ</translation>
 <translation id="8811862054141704416">Crostini ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶ</translation>
-<translation id="8812552797690463522">ಈ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ನಿಮ್ಮ ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ.</translation>
 <translation id="8812593354822910461">ನಿಮ್ಮನ್ನು <ph name="DOMAIN" /> ನಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಬಹುದಾದ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು (<ph name="URL" />) ಸಹ ತೆರವುಗೊಳಿಸಿ. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">ನಂತರ ನನಗೆ ಜ್ಞಾಪಿಸಿ</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
@@ -7327,7 +7323,6 @@
 <translation id="9021662811137657072">ವೈರಸ್‌‌ ಪತ್ತೆಹಚ್ಚಲಾಗಿದೆ</translation>
 <translation id="902236149563113779">ಸೈಟ್‌ಗಳು ಸಾಮಾನ್ಯವಾಗಿ, ಗೇಮ್‌ಗಳು ಅಥವಾ ಹೆಡ್-ಅಪ್ ನಿರ್ದೇಶನಗಳಂತಹ AR ಫೀಚರ್‌ಗಳಿಗಾಗಿ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಸ್ಥಾನವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತವೆ</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ಮೂಲಕ ಈ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಈ ಖಾತೆಯನ್ನು ಈಗಾಗಲೇ ಬಳಸಲಾಗುತ್ತಿದೆ.</translation>
-<translation id="9023009238991294202">ಈ ಸಾಧನದ ಇತರ ಬಳಕೆದಾರರು ಈ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಬಳಸಬಹುದು.</translation>
 <translation id="9023015617655685412">ಈ ಟ್ಯಾಬ್ ಅನ್ನು ಬುಕ್‌ಮಾರ್ಕ್ ಮಾಡಿ...</translation>
 <translation id="9023909777842748145">ಈ ಫೀಚರ್ ಅನ್ನು ಆಫ್ ಮಾಡಿದರೆ, ಸಿಸ್ಟಂ ಅಪ್‌ಡೇಟ್‌ಗಳು ಮತ್ತು ಸುರಕ್ಷತೆಯಂತಹ ಅಗತ್ಯ ಸೇವೆಗಳಿಗೆ ಬೇಕಾದ ಮಾಹಿತಿಯನ್ನು ಕಳುಹಿಸುವುದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಹಾಗೆ, ನಿಮ್ಮ ಸಾಧನದ ಸಾಮರ್ಥ್ಯದ ಮೇಲೆ ಇದು ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.</translation>
 <translation id="9024127637873500333">&amp;ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 74a643fd..210577e 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">기본 시작 페이지를 복원하시겠습니까?</translation>
 <translation id="1388253969141979417">마이크 사용이 허용됨</translation>
 <translation id="1388728792929436380">업데이트가 완료되면 <ph name="DEVICE_TYPE" /> 기기가 다시 시작됩니다.</translation>
-<translation id="138900021244932468">발견된 프로필이 없습니다. 새 네트워크를 설정하려면 기기 카메라로 QR 코드를 스캔하거나 이동통신사에서 제공한 활성화 코드를 입력하세요.</translation>
 <translation id="139013308650923562">기기에 설치된 글꼴을 사용할 수 있음</translation>
 <translation id="1390548061267426325">일반 탭으로 열기</translation>
 <translation id="1393283411312835250">태양과 구름</translation>
@@ -516,6 +515,7 @@
 <translation id="1545775234664667895">테마('<ph name="THEME_NAME" />')를 설치했습니다.</translation>
 <translation id="1546280085599573572">홈 버튼을 클릭하면 표시되는 페이지가 이 확장 프로그램으로 인해 변경되었습니다.</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" />님이 다음 작업을 실행할 수 있는 <ph name="EXTENSION_TYPE" />을(를) 설치하려고 합니다.</translation>
+<translation id="1547808936554660006">설치된 eSIM 프로필이 파워워시로 삭제되지 않음을 이해합니다</translation>
 <translation id="1549275686094429035">ARC 사용 설정됨</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" />에서 <ph name="VOLUME_NAME" />에 액세스하려고 합니다. 내 파일을 수정하거나 삭제할 수 있습니다.</translation>
 <translation id="1552301827267621511">'<ph name="EXTENSION_NAME" />' 확장 프로그램에서 검색에 <ph name="SEARCH_PROVIDER_DOMAIN" /> 서비스를 사용하도록 변경했습니다.</translation>
@@ -552,6 +552,7 @@
 <translation id="1588438908519853928">일반</translation>
 <translation id="158849752021629804">홈 네크워크가 필요합니다.</translation>
 <translation id="1588870296199743671">다음으로 링크 열기...</translation>
+<translation id="1588919647604819635">마우스 오른쪽 버튼으로 클릭 카드</translation>
 <translation id="1589055389569595240">영문 철자 및 문법 보기</translation>
 <translation id="1591679663873027990">Parallels Desktop에 USB 기기 액세스 권한을 부여하세요. 삭제된 USB 기기는 Parallels Desktop에 저장되지 않습니다.</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" />에서 ADB 디버깅이 사용 중지되었으며 <ph name="DEVICE_TYPE" /> 기기가 초기화됩니다. 다시 시작하기 전에 파일을 백업하세요.</translation>
@@ -996,6 +997,7 @@
 
 부모 기기에 Family Link 앱을 설치하여 이 계정의 설정을 관리할 수 있습니다.  안내가 담긴 이메일을 보내 드렸습니다.</translation>
 <translation id="2040460856718599782">인증을 시도하는 중에 문제가 발생했습니다. 로그인 사용자 인증 정보를 확인하고 다시 시도해 주세요.</translation>
+<translation id="2042279886444479655">활성화된 프로필</translation>
 <translation id="2044014337866019681">세션을 잠금 해제하려면 <ph name="ACCOUNT" /> 계정을 인증하세요.</translation>
 <translation id="2044023416777079300">모뎀이 등록되지 않음</translation>
 <translation id="204497730941176055">Microsoft Certificate Template Name</translation>
@@ -1337,6 +1339,7 @@
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> 기기가 엔터프라이즈 관리용으로 등록되었지만 애셋과 위치 정보를 전송하지 못했습니다. 기기의 관리 콘솔에서 애셋과 위치 정보를 직접 입력하세요.</translation>
 <translation id="2396387085693598316">관리자가 ‘<ph name="EXTENSION_NAME" />’ 확장 프로그램을 차단함</translation>
 <translation id="2396783860772170191">4자리 PIN(0000~9999) 입력</translation>
+<translation id="2398546389094871088">기기를 파워워시해도 eSIM 프로필이 삭제되지는 않습니다. <ph name="LINK_BEGIN" />모바일 설정<ph name="LINK_END" />으로 이동하여 프로필을 직접 삭제하세요.</translation>
 <translation id="2399699884460174994">알림 사용 설정됨</translation>
 <translation id="2399939490305346086">보안 키 로그인 데이터</translation>
 <translation id="2400664245143453337">즉시 업데이트 필요</translation>
@@ -1754,6 +1757,7 @@
 <translation id="2844809857160214557">인쇄 작업 보기 및 관리</translation>
 <translation id="2845382757467349449">북마크바 항상 표시</translation>
 <translation id="284805635805850872">유해한 소프트웨어를 삭제하시겠습니까?</translation>
+<translation id="2849035674501872372">찾기</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" />(<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">정리하지 못했습니다.</translation>
 <translation id="2849936225196189499">중요</translation>
@@ -2065,6 +2069,7 @@
 <translation id="3189187154924005138">큰 커서</translation>
 <translation id="3190558889382726167">비밀번호 저장됨</translation>
 <translation id="3192947282887913208">오디오 파일</translation>
+<translation id="3197453258332670132">마우스 오른쪽 버튼으로 클릭하거나 길게 누르면 선택한 텍스트에 관한 관련 정보가 표시됩니다.</translation>
 <translation id="3199127022143353223">서버</translation>
 <translation id="3201422919974259695">사용 가능한 USB 기기가 여기에 표시됩니다.</translation>
 <translation id="3202131003361292969">경로</translation>
@@ -2086,6 +2091,7 @@
 <translation id="3223531857777746191">초기화 버튼</translation>
 <translation id="3225084153129302039">기본 보라색 아바타</translation>
 <translation id="3225319735946384299">코드 서명</translation>
+<translation id="3226487301970807183">왼쪽 정렬 측면 패널 전환</translation>
 <translation id="3227137524299004712">마이크</translation>
 <translation id="3233271424239923319">Linux 앱 및 파일 백업</translation>
 <translation id="3238192140106069382">연결 및 확인 중</translation>
@@ -2355,6 +2361,7 @@
 <translation id="3515983984924808886">보안 키를 다시 터치하여 초기화 여부를 확인하세요. PIN을 비롯하여 보안 키에 저장된 모든 정보가 삭제됩니다.</translation>
 <translation id="3518985090088779359">동의하고 계속</translation>
 <translation id="3519564332031442870">인쇄 백엔드 서비스</translation>
+<translation id="3519938335881974273">페이지를 다른 이름으로 저장...</translation>
 <translation id="3521606918211282604">디스크 크기 변경</translation>
 <translation id="3522088408596898827">디스크 저장 공간이 매우 부족합니다. 여유 공간을 확보한 후 다시 시도해 보세요.</translation>
 <translation id="3524965460886318643">활동 내보내기</translation>
@@ -2378,6 +2385,7 @@
 <translation id="3550593477037018652">셀룰러 네트워크 연결 해제</translation>
 <translation id="3550915441744863158">Chrome은 자동으로 업데이트되므로 항상 최신 버전을 사용할 수 있습니다.</translation>
 <translation id="3551320343578183772">탭 닫기</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">종료 시 삭제됨</translation>
 <translation id="3554493885489666172"><ph name="PROFILE_NAME" />에서 관리하는 기기입니다. 관리자가 기기에 등록된 모든 프로필의 데이터에 액세스할 수 있습니다.</translation>
 <translation id="3555812735919707620">확장 프로그램 삭제</translation>
@@ -2430,6 +2438,7 @@
 <translation id="3604713164406837697">배경화면 변경</translation>
 <translation id="3605780360466892872">와이셔츠</translation>
 <translation id="3608576286259426129">사용자 이미지 미리보기</translation>
+<translation id="3609277884604412258">빠른 검색</translation>
 <translation id="3610369246614755442">도크 팬 서비스 필요</translation>
 <translation id="361106536627977100">Flash 데이터</translation>
 <translation id="3611655097742243705">Play 스토어에 방문하여 더 많은 앱을 찾아보세요.</translation>
@@ -3371,6 +3380,7 @@
 <translation id="4636682061478263818">Drive 파일</translation>
 <translation id="4636930964841734540">정보</translation>
 <translation id="4637083375689622795">추가 작업, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">다시 카메라 사용</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{텍스트}other{텍스트 #개}}</translation>
 <translation id="4638930039313743000">ADB 디버깅 사용 설정</translation>
 <translation id="4641539339823703554">Chrome에서 시스템 시간을 설정할 수 없습니다. 아래에서 시간을 확인한 다음 필요한 경우 수정해 주세요.</translation>
@@ -4121,6 +4131,7 @@
 <translation id="5499313591153584299">이 파일은 컴퓨터에 해로울 수 있습니다.</translation>
 <translation id="5499453227627332024">Linux 컨테이너를 업그레이드할 수 있습니다. 나중에 설정 앱에서 업그레이드해도 됩니다.</translation>
 <translation id="5500709606820808700">안전 확인이 오늘 실행됨</translation>
+<translation id="5501322521654567960">왼쪽 정렬 측면 패널</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="DEVICE_NAME" />에서 <ph name="ATTACHMENTS" /> 수신 실패}other{<ph name="DEVICE_NAME" />에서 <ph name="ATTACHMENTS" /> 수신 실패}}</translation>
 <translation id="5502500733115278303">Firefox에서 가져온 북마크</translation>
 <translation id="5502915260472117187">자녀</translation>
@@ -5332,6 +5343,7 @@
 <translation id="6856348640027512653">가상 현실 기기 또는 데이터 사용이 허용되지 않음</translation>
 <translation id="6856459657722366306">네트워크 <ph name="NETWORK_COUNT" />개 중 <ph name="NETWORK_INDEX" />번째, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, 신호 강도 <ph name="SIGNAL_STRENGTH" />%, 세부정보</translation>
 <translation id="6856623341093082836">터치스크린 설정 및 정확도 조정</translation>
+<translation id="6857145580237920905">파워워시 전에 eSIM 프로필을 삭제하세요</translation>
 <translation id="6857699260879628349">구성 정보 가져오기</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" />초</translation>
 <translation id="6860097299815761905">프록시 설정...</translation>
@@ -5913,6 +5925,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" />이(가) 기업 관리에 등록되었습니다.</translation>
 <translation id="7507207699631365376">제공업체의 <ph name="BEGIN_LINK" />개인정보처리방침<ph name="END_LINK" /> 보기</translation>
 <translation id="7507930499305566459">상태 응답자 인증서</translation>
+<translation id="7509246181739783082">본인 확인</translation>
 <translation id="7513029293694390567">저장된 사용자 인증 정보를 사용하여 자동으로 웹사이트에 로그인합니다. 이 기능이 꺼져 있는 경우에는 웹사이트에 로그인할 때마다 확인 요청 메시지가 표시됩니다.</translation>
 <translation id="7514239104543605883">기기로 복사</translation>
 <translation id="7514365320538308">다운로드</translation>
@@ -6445,7 +6458,6 @@
 <translation id="8061091456562007989">이전 설정으로 되돌리기</translation>
 <translation id="8061991877177392872">다른 기기의 어시스턴트에서 이미 Voice Match를 설정한 것 같습니다. 이전에 녹음된 음성을 사용하여 이 기기에서 음성 모델을 만들었습니다.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{용지 1장}other{용지 {COUNT}장}}</translation>
-<translation id="8062879968880283306">기기 카메라로 QR 코드를 스캔하거나 이동통신사에서 제공한 활성화 코드를 입력하세요.</translation>
 <translation id="8063235345342641131">기본 녹색 아바타</translation>
 <translation id="8063535366119089408">파일 보기</translation>
 <translation id="8064279191081105977">그룹 <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6866,7 +6878,6 @@
 <translation id="8551588720239073785">날짜 및 시간 설정</translation>
 <translation id="8553342806078037065">다른 사용자 관리</translation>
 <translation id="8554899698005018844">언어가 없음</translation>
-<translation id="8555195867496021627">사용할 수 있는 eSIM 프로필이 없습니다. <ph name="BEGIN_LINK" />여기<ph name="END_LINK" />에서 새 프로필을 다운로드하세요.</translation>
 <translation id="8557022314818157177">지문이 인식될 때까지 보안 키를 계속 터치하세요.</translation>
 <translation id="8557930019681227453">매니페스트</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{새 창에서 모두 열기(N)}=1{새 창에서 열기(N)}other{새 창에서 {COUNT}개 모두 열기(N)}}</translation>
@@ -7046,7 +7057,6 @@
 <translation id="8743164338060742337">네트워크 <ph name="NETWORK_COUNT" />개 중 <ph name="NETWORK_INDEX" />번째, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, 신호 강도 <ph name="SIGNAL_STRENGTH" />%, 관리자가 관리함, 연결</translation>
 <translation id="8746654918629346731">이미 '<ph name="EXTENSION_NAME" />'을(를) 요청하셨습니다</translation>
 <translation id="874689135111202667">{0,plural, =1{파일 1개를 이 사이트에 업로드하시겠습니까?}other{파일 #개를 이 사이트에 업로드하시겠습니까?}}</translation>
-<translation id="8749556627204742888">기기의 다른 사용자와 공유 중인 네트워크입니다.</translation>
 <translation id="8749805710397399240">화면을 전송할 수 없습니다. 시스템 환경설정에서 화면 녹화 권한을 확인하세요.</translation>
 <translation id="8749863574775030885">알 수 없는 공급업체의 USB 기기에 액세스</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" />에서 시리얼 포트에 연결하려고 합니다.</translation>
@@ -7108,7 +7118,6 @@
 <translation id="8808744862003883508">이 페이지에서 Chrome에 설치된 모든 확장 프로그램을 볼 수 있습니다.</translation>
 <translation id="8809147117840417135">연한 청록색</translation>
 <translation id="8811862054141704416">Crostini 마이크 액세스</translation>
-<translation id="8812552797690463522">나와 공유된 네트워크입니다.</translation>
 <translation id="8812593354822910461">인터넷 사용 기록(<ph name="URL" />)도 삭제합니다. 이렇게 하면 <ph name="DOMAIN" />에서 로그아웃됩니다. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">나중에 알림</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" />에 로그인할 수 없음</translation>
@@ -7320,7 +7329,6 @@
 <translation id="9021662811137657072">바이러스가 발견됨</translation>
 <translation id="902236149563113779">사이트에서는 일반적으로 게임 또는 전방 방향 안내와 같은 AR 기능을 사용하기 위해 카메라 위치를 추적합니다.</translation>
 <translation id="9022847679183471841">이미 <ph name="AVATAR_NAME" />이(가) 이 컴퓨터에서 이 계정을 사용하고 있습니다.</translation>
-<translation id="9023009238991294202">이 기기의 다른 사용자가 이 네트워크를 사용할 수 있습니다.</translation>
 <translation id="9023015617655685412">현재 탭을 북마크에 추가</translation>
 <translation id="9023909777842748145">이 기능을 사용 중지해도 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 데는 영향을 미치지 않습니다.</translation>
 <translation id="9024127637873500333">새 탭에서 열기(&amp;O)</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index 9588226..adaf6afd 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Демейки баштоо бети калыбына келтирилсинби?</translation>
 <translation id="1388253969141979417">Микрофонуңузду колдоно алат</translation>
 <translation id="1388728792929436380">Жаңыртылгандан кийин <ph name="DEVICE_TYPE" /> түзмөгү өчүп күйөт.</translation>
-<translation id="138900021244932468">Профилдер табылган жок. Жаңы тармакты жөндөө үчүн түзмөктөгү камеранын жардамы менен QR кодун скандаңыз же байланыш операторуңуз берген жандандыруу кодун киргизиңиз.</translation>
 <translation id="139013308650923562">Түзмөгүңүздө орнотулган ариптерди колдонууга уруксаты бар</translation>
 <translation id="1390548061267426325">Кадимки өтмөк катары ачуу</translation>
 <translation id="1393283411312835250">Күн жана булуттар</translation>
@@ -516,6 +515,7 @@
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" темасы орнотулду</translation>
 <translation id="1546280085599573572">Бул кеңейтүү Башкы бет баскычы чыкылдатылганда көрүнө турган бетти өзгөрттү.</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> төмөнкүлөрдү аткара алган <ph name="EXTENSION_TYPE" /> кеңейтүүсүн орноткону жатат:</translation>
+<translation id="1547808936554660006">eSIM-картада орнотулган профилдер "Жууп салуу" менен өчүрүлбөй турганын түшүнөм</translation>
 <translation id="1549275686094429035">ARC иштетилди</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> колдонмосу <ph name="VOLUME_NAME" /> дегенге мүмкүнчүлүк алгысы келет. Ал файлдарыңызды өзгөртүп же жок кылышы мүмкүн.</translation>
 <translation id="1552301827267621511">"<ph name="EXTENSION_NAME" />" кеңейтүүсү эми издөө үчүн <ph name="SEARCH_PROVIDER_DOMAIN" /> колдонула тургандай кылып өзгөртүп койду</translation>
@@ -552,6 +552,7 @@
 <translation id="1588438908519853928">Кадыресе</translation>
 <translation id="158849752021629804">Үй тармагы талап кылынат</translation>
 <translation id="1588870296199743671">Шилтемени төмөнкү менен ачуу…</translation>
+<translation id="1588919647604819635">Картаны оң жактагы баскыч менен чыкылдатыңыз</translation>
 <translation id="1589055389569595240">Орфография менен грамматиканы көрсөтүү</translation>
 <translation id="1591679663873027990">Parallels Desktop'ко USB түзмөктөрдү колдонууга уруксат бериңиз. USB түзмөгү ажыратылгандан кийин Parallels Desktop аны эстеп калбайт.</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> ADB аркылуу мүчүлүштүктөрдү оңдоону өчүрдү, андыктан <ph name="DEVICE_TYPE" /> түзмөгүңүз баштапкы абалга келтирилет. Өчүрүп күйгүзүүдөн мурун файлдарыңыздын камдык көчүрмөсүн сактаңыз.</translation>
@@ -996,6 +997,7 @@
 
 Family Link колдонмосун түзмөгүңүзгө орнотуп, бул аккаунттун жөндөөлөрүн башкара аласыз.  Нускамаларды электрондук кат менен салып жибердик.</translation>
 <translation id="2040460856718599782">Т-у-уй ата! Аныктыгыңыз текшерилип жатканда бир жерден ката кетти. Кирүү далдаштырма дайын-даректериңизди дагы бир жолу текшерип туруп, дагы аракет кылып көрүңүз.</translation>
+<translation id="2042279886444479655">Активдүү профилдер</translation>
 <translation id="2044014337866019681">Сеансты бөгөттөн чыгаруу үчүн <ph name="ACCOUNT" /> аккаунтун ырастап жатканыңызды текшериңиз.</translation>
 <translation id="2044023416777079300">Модем катталган эмес</translation>
 <translation id="204497730941176055">Microsoft тастыктамасынын калыбынын аталышы</translation>
@@ -1337,6 +1339,7 @@
 <translation id="2395616325548404795"><ph name="DEVICE_TYPE" /> түзмөгүңүз ишкана башкаруусуна ийгиликтүү кабыл алынды, бирок өзүнүн менчик объектиси жана жайгашкан жери боюнча маалыматты жөнөтө албай калды. Ал маалыматты ушул түзмөктүн администратор консолунан кол менен киргизиңиз.</translation>
 <translation id="2396387085693598316">"<ph name="EXTENSION_NAME" />" администраторуңуз тарабынан бөгөттөлдү</translation>
 <translation id="2396783860772170191">4 сандан турган pin кодду киргизиңиз (0000-9999)</translation>
+<translation id="2398546389094871088">Түзмөктү "Жууп салуу" менен eSIM-картадагы профилдер өчүрүлбөйт. Бул профилдерди кол менен өчүрүү үчүн <ph name="LINK_BEGIN" />Мобилдик түзмөктүн жөндөөлөрүнө<ph name="LINK_END" /> өтүңүз.</translation>
 <translation id="2399699884460174994">Билдирмелер күйгүзүлдү</translation>
 <translation id="2399939490305346086">Коопсуздук ачкычынын кирүү дайындары</translation>
 <translation id="2400664245143453337">Дароо жаңыртуу талап кылынат</translation>
@@ -1754,6 +1757,7 @@
 <translation id="2844809857160214557">Басып чыгаруу тапшырмаларын көрүп жана башкарасыз</translation>
 <translation id="2845382757467349449">Кыстармалар тилкеси ар дайым көрүнсүн</translation>
 <translation id="284805635805850872">Зыянкеч программа алынып салынсынбы?</translation>
+<translation id="2849035674501872372">Издөө</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">Тазалоо катасы</translation>
 <translation id="2849936225196189499">Олуттуу</translation>
@@ -2065,6 +2069,7 @@
 <translation id="3189187154924005138">Чоң курсор</translation>
 <translation id="3190558889382726167">Сырсөз сакталды</translation>
 <translation id="3192947282887913208">Аудио файлдар</translation>
+<translation id="3197453258332670132">Чычкандын оң баскычын чыкылдатып же коё бербей басып турсаңыз, текстти тандоо үчүн тийиштүү маалымат көрсөтүлөт</translation>
 <translation id="3199127022143353223">Серверлер</translation>
 <translation id="3201422919974259695">Жеткиликтүү USB түзмөктөрү ушул жерде көрүнөт.</translation>
 <translation id="3202131003361292969">Жол</translation>
@@ -2086,6 +2091,7 @@
 <translation id="3223531857777746191">Баштапкы абалга келтирүү баскычы</translation>
 <translation id="3225084153129302039">Демейки кызгылт сыя аватар</translation>
 <translation id="3225319735946384299">Код колтамгасы</translation>
+<translation id="3226487301970807183">Сол жактагы капталдагы тилкени өчүрүү/күйгүзүү</translation>
 <translation id="3227137524299004712">Микрофон</translation>
 <translation id="3233271424239923319">Linux колдонмолору менен файлдарынын камдык көчүрмөлөрүн сактоо</translation>
 <translation id="3238192140106069382">Туташууга жана текшерүүгө аракет кылып жатат</translation>
@@ -2355,6 +2361,7 @@
 <translation id="3515983984924808886">Баштапкы абалга келтирүүнү ырастоо үчүн коопсуздук ачкычына кайра тийип коюңуз. Коопсуздук ачкычында сакталган бардык маалымат, анын ичинде PIN код өчүрүлөт.</translation>
 <translation id="3518985090088779359">Кабыл алып, улантуу</translation>
 <translation id="3519564332031442870">Басып чыгаруу кызматы</translation>
+<translation id="3519938335881974273">Бетти төмөнкү катары сактоо...</translation>
 <translation id="3521606918211282604">Дисктин өлчөмүн өзгөртүү</translation>
 <translation id="3522088408596898827">Дискте бош орун өтө аз. Орун бошотуп, кайра аракет кылыңыз.</translation>
 <translation id="3524965460886318643">Экспорттоо аракеттери</translation>
@@ -2378,6 +2385,7 @@
 <translation id="3550593477037018652">Мобилдик тармакты ажыратуу</translation>
 <translation id="3550915441744863158">Chrome автоматтык түрдө жаңырып тургандыктан, ар дайым кычыраган жапжаңы версияда иштейсиз.</translation>
 <translation id="3551320343578183772">Өтмөктү жабуу</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">Чыгып баратканда, тазаланат</translation>
 <translation id="3554493885489666172">Түзмөгүңүз <ph name="PROFILE_NAME" /> тарабынан башкарылууда. Администраторлор бул түзмөктөгү бардык профилдердин дайындарын колдоно алышат.</translation>
 <translation id="3555812735919707620">Кеңейтүүнү алып салуу</translation>
@@ -2430,6 +2438,7 @@
 <translation id="3604713164406837697">Тушкагазды өзгөртүп алыңыз</translation>
 <translation id="3605780360466892872">Топчуланган</translation>
 <translation id="3608576286259426129">Колдонуучунун сүрөтүн алдын ала карап көрүү</translation>
+<translation id="3609277884604412258">Ыкчам издөө</translation>
 <translation id="3610369246614755442">Док бекеттин желдеткичин оңдоо керек</translation>
 <translation id="361106536627977100">Флэш дайындар</translation>
 <translation id="3611655097742243705">Дагы башка колдонмолорду табуу үчүн Play Store'го өтүңүз</translation>
@@ -3374,6 +3383,7 @@
 <translation id="4636682061478263818">Drive файлдары</translation>
 <translation id="4636930964841734540">Маалымат</translation>
 <translation id="4637083375689622795">Көбүрөөк аракеттер, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">Камераны кайра колдонуу</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{Текст}other{# текст}}</translation>
 <translation id="4638930039313743000">ADB аркылуу мүчүлүштүктөрдү оңдоону иштетүү</translation>
 <translation id="4641539339823703554">Chrome тутумдун убакытын коё алган жок. Төмөнкү убакытты текшерип, зарыл болсо, аны тууралаңыз.</translation>
@@ -4124,6 +4134,7 @@
 <translation id="5499313591153584299">Бул файлдын компьютериңизге зыяны тийип калышы мүмкүн.</translation>
 <translation id="5499453227627332024">Linux контейнеринин жаңы версиясы жеткиликтүү. Аны кийинчерээк колдонмонун Жөндөөлөрүнө өтүп, жүктөп алсаңыз болот.</translation>
 <translation id="5500709606820808700">Коопсуздук бүгүн текшерилди</translation>
+<translation id="5501322521654567960">Сол жактагы капталдагы тилке</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> түзмөгүнөн алынбай калды}other{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> түзмөгүнөн алынбай калды}}</translation>
 <translation id="5502500733115278303">Firefox'тон импорттолгон</translation>
 <translation id="5502915260472117187">Бала</translation>
@@ -5335,6 +5346,7 @@
 <translation id="6856348640027512653">Виртуалдык чындык түзмөктөрүн же маалыматын колдоно албайт</translation>
 <translation id="6856459657722366306"><ph name="NETWORK_COUNT" /> ичинен <ph name="NETWORK_INDEX" />-тармак, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, cигналдын күчү <ph name="SIGNAL_STRENGTH" />%, чоо-жайы</translation>
 <translation id="6856623341093082836">Сенсордук экраныңыздын тактыгын жөндөп жана тууралаңыз</translation>
+<translation id="6857145580237920905">"Жууп салуудан" мурда eSIM-картадагы профилдерди өчүрүңүз</translation>
 <translation id="6857699260879628349">Конфигурация боюнча маалымат алуу</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> сек.</translation>
 <translation id="6860097299815761905">Прокси жөндөөлөрү…</translation>
@@ -5916,6 +5928,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> түзмөгүңүз ишкана башкаруусуна ийгиликтүү кабыл алынды.</translation>
 <translation id="7507207699631365376">Бул кызмат көрсөтүүчүнүн <ph name="BEGIN_LINK" />купуялык саясатын<ph name="END_LINK" /> көрүңүз</translation>
 <translation id="7507930499305566459">Статуска жооп берүүчү тастыктама</translation>
+<translation id="7509246181739783082">Өздүгүңүздү ырастаңыз</translation>
 <translation id="7513029293694390567">Сакталган эсептик дайындар менен вебсайттарга автоматтык түрдө кириңиз. Эгер бул функция өчүрүлсө, вебсайтка кирген сайын колдонуучу атыңыз менен сырсөзүңүздү киргизүүгө туура келет.</translation>
 <translation id="7514239104543605883">Түзмөгүңүзгө көчүрүү</translation>
 <translation id="7514365320538308">Жүктөп алуу</translation>
@@ -6447,7 +6460,6 @@
 <translation id="8061091456562007989">Кайра өзгөртүү</translation>
 <translation id="8061991877177392872">Жардамчыңыздагы Voice Match'ти буга чейин башка түзмөктө жөндөп алган окшойсуз. Мурунку жаздырууларыңыздын негизинде үнүңүздүн үлгүсүн ушул түзмөктө даярдоого болот.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 барак}other{{COUNT} барак}}</translation>
-<translation id="8062879968880283306">Түзмөктөгү камеранын жардамы менен QR кодун скандаңыз же байланыш операторуңуз берген жандандыруу кодун киргизиңиз.</translation>
 <translation id="8063235345342641131">Демейки жашыл аватар</translation>
 <translation id="8063535366119089408">Файлды көрүү</translation>
 <translation id="8064279191081105977"><ph name="GROUP_NAME" /> тобу – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6868,7 +6880,6 @@
 <translation id="8551588720239073785">Күн менен убакыт жөндөөлөрү</translation>
 <translation id="8553342806078037065">Башка адамдарды башкаруу</translation>
 <translation id="8554899698005018844">Тил коюлган эмес</translation>
-<translation id="8555195867496021627">Жеткиликтүү eSIM-карта профилдери жок. Жаңы профилди <ph name="BEGIN_LINK" />бул жерден<ph name="END_LINK" /> жүктөп алыңыз.</translation>
 <translation id="8557022314818157177">Манжаңыздын изин тартуу үчүн коопсуздук ачкычына бир нече жолу тийиңиз</translation>
 <translation id="8557930019681227453">Манифест</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Баарын &amp;жаңы терезеде ачуу}=1{&amp;Жаңы терезеде ачуу}other{Баарын ({COUNT}) &amp;жаңы терезеде ачуу}}</translation>
@@ -7048,7 +7059,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" /> ичинен <ph name="NETWORK_INDEX" />-тармак, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> cигналдын күчү <ph name="SIGNAL_STRENGTH" />%, администраторуңуз башкарат, туташуу</translation>
 <translation id="8746654918629346731">"<ph name="EXTENSION_NAME" />" буга чейин суралган</translation>
 <translation id="874689135111202667">{0,plural, =1{Бул сайтка бир файл жүктөлүп берилсинби?}other{Бул сайтка # файл жүктөлүп берилсинби?}}</translation>
-<translation id="8749556627204742888">Бул тармакты ушул түзмөктүн башка колдонуучулары менен бөлүшүп жатасыз.</translation>
 <translation id="8749805710397399240">Экраныңызды тышкы экранга чыгаруу мүмкүн эмес. Тутумдун параметрлерине өтүп, экрандан видео жаздырып алуу уруксатын текшериңиз.</translation>
 <translation id="8749863574775030885">Белгисиз жөнөтүүчүнүн USB түзмөктөрүнө кирүү</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> сериялык портко туташканы жатат</translation>
@@ -7110,7 +7120,6 @@
 <translation id="8808744862003883508">Бул баракта Chrome'до орнотулган кеңейтүүлөрдүн баарын көрөсүз.</translation>
 <translation id="8809147117840417135">Мала көгүш жашыл</translation>
 <translation id="8811862054141704416">Crostini'ге микрофонду колдонууга уруксат берүү</translation>
-<translation id="8812552797690463522">Бул тармак сиз менен бөлүшүлгөн.</translation>
 <translation id="8812593354822910461"><ph name="DOMAIN" /> сайтынан чыгарып сала турган серептөө маалыматы да (<ph name="URL" />) тазалансын. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Кийинчерээк эскертүү</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> катары кирүү мүмкүн эмес</translation>
@@ -7322,7 +7331,6 @@
 <translation id="9021662811137657072">Вирус табылды</translation>
 <translation id="902236149563113779">Сайттар адатта оюндар же кыймылдын багыты сыяктуу AR функциялары үчүн камеранын абалына көз салып турат</translation>
 <translation id="9022847679183471841">Бул аккаунт бул компьютерде <ph name="AVATAR_NAME" /> тарабынан колдонулууда.</translation>
-<translation id="9023009238991294202">Бул түзмөктү колдонгон кишилер ушул тармакты колдоно алышат.</translation>
 <translation id="9023015617655685412">Бул өтмөктү кыстарып коюу…</translation>
 <translation id="9023909777842748145">Бул функциянын өчүрүлүшү түзмөктүн тутумунун жаңыртылышына жана коопсуздугуна таасирин тийгизбейт.</translation>
 <translation id="9024127637873500333">Жаңы өтмөктө &amp;ачуу</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index a4f099d..824ac8bfc 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="lo">
+<translation id="1001033507375626788">ເຄືອຂ່າຍນີ້ແບ່ງປັນກັບທ່ານແລ້ວ</translation>
 <translation id="1001307489511021749">ແອັບ, ການຕັ້ງຄ່າ ແລະ ການປັບແຕ່ງອື່ນຂອງທ່ານຈະຊິ້ງຂໍ້ມູນໃນທົ່ວອຸປະກອນ Chrome OS ທີ່ເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="1003088604756913841">ເປີດລິ້ງໃນໜ້າຈໍ <ph name="APP" /> ໃໝ່</translation>
 <translation id="100323615638474026">ອຸປະກອນ USB (<ph name="VENDOR_ID" />:<ph name="PRODUCT_ID" />)</translation>
@@ -358,7 +359,6 @@
 <translation id="138784436342154190">ກູ້ຄືນໜ້າເລີ່ມຕົ້ນຕາມຄ່າເລີ່ມຕົ້ນບໍ?</translation>
 <translation id="1388253969141979417">ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ໄມໂຄຣໂຟນຂອງທ່ານ</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> ຈະຣີສະຕາດເມື່ອການອັບເດດສຳເລັດແລ້ວ.</translation>
-<translation id="138900021244932468">ບໍ່ສາມາດຄົ້ນພົບໂປຣໄຟລ໌ໃດເລີຍ. ເພື່ອຕັ້ງຄ່າເຄືອຂ່າຍໃໝ່, ກະລຸນາສະແກນລະຫັດ QR ໂດຍໃຊ້ກ້ອງຖ່າຍຮູບອຸປະກອນ ຫຼື ປ້ອນລະຫັດການເປີດນຳໃຊ້ທີ່ຜູ້ໃຫ້ບໍລິການຂອງທ່ານສະໜອງໃຫ້.</translation>
 <translation id="139013308650923562">ອະນຸຍາດໃຫ້ໃຊ້ຟອນທີ່ຕິດຕັ້ງຢູ່ອຸປະກອນຂອງທ່ານໄດ້</translation>
 <translation id="1390548061267426325">ເປີດເປັນແຖບທໍາມະດາ</translation>
 <translation id="1393283411312835250">ແສງແດດ ແລະ ເມກເຝື້ອ</translation>
@@ -958,6 +958,7 @@
 <translation id="1992924914582925289">ລຶບອອກຈາກອຸປະກອນ</translation>
 <translation id="1994173015038366702">URL ​ເວັບ​ໄຊທ໌</translation>
 <translation id="1995916364271252349">ຄວບຄຸມວ່າເວັບໄຊສາມາດໃຊ້ ແລະ ສະແດງຂໍ້ມູນໃດໄດ້ (ສະຖານທີ່, ກ້ອງ, ປັອບອັບ ແລະ ອື່ນໆອີກ)</translation>
+<translation id="1997437640397887843">ເປີດໃຊ້ກ້ອງຖ່າຍຮູບອຸປະກອນແລ້ວ. ກະລຸນາວາງລະຫັດ eSIM QR ຂອງທ່ານໄວ້ທາງໜ້າກ້ອງຖ່າຍຮູບ.</translation>
 <translation id="1997616988432401742">ໃບ​ຢັ້ງ​ຢືນ​ຂອງ​ທ່ານ</translation>
 <translation id="1999115740519098545">ຢູ່ໃນຕອນເລີ່ມຕົ້ນ</translation>
 <translation id="2000419248597011803">ສົ່ງບາງຄຸກກີ້ ແລະ ການຊອກຫາຈາກແຖບທີ່ຢູ່ ແລະ ກ່ອງຊອກຫາໄປໃຫ້ໂປຣແກຣມຊອກຫາເລີ່ມຕົ້ນຂອງທ່ານ</translation>
@@ -1013,6 +1014,7 @@
 <translation id="2055585478631012616">ທ່ານຈະຖືກນຳອອກຈາກລະບົບເວັບໄຊເຫຼົ່ານີ້, ຮວມທັງໃນແຖບທີ່ເປີດຢູ່</translation>
 <translation id="205560151218727633">ໂລໂກ້ຜູ້ຊ່ວຍ Google</translation>
 <translation id="2058456167109518507">ກວດພົບອຸປະກອນ</translation>
+<translation id="2058581283817163201">ຢັ້ງຢືນດ້ວຍໂທລະສັບນີ້</translation>
 <translation id="2059913712424898428">ເຂດເວລາ</translation>
 <translation id="2060375639911876205">ລຶບໂປຣໄຟລ໌ eSIM ອອກ</translation>
 <translation id="2062354623176996748">ໃຊ້ເວັບໂດຍບໍ່ບັນທຶກປະຫວັດການທ່ອງເວັບຂອງທ່ານດ້ວຍໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
@@ -2613,6 +2615,7 @@
 <translation id="3785308913036335955">ສະ​ແດງ​ທາງລັດແອັບ</translation>
 <translation id="3785727820640310185">ລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ສຳລັບເວັບໄຊນີ້</translation>
 <translation id="3788301286821743879">ບໍ່ສາມາດເປີດໃຊ້ແອັບພລິເຄຊັນ kiosk ໄດ້.</translation>
+<translation id="3788331399335602504">ໄຟລ໌ເຫຼົ່ານີ້</translation>
 <translation id="3788401245189148511">ມັນ​ສາ​ມາດ​:</translation>
 <translation id="3789841737615482174">​ຕິດ​ຕັ້ງ</translation>
 <translation id="379082410132524484">ບັດຂອງທ່ານໝົດອາຍຸແລ້ວ</translation>
@@ -3188,6 +3191,7 @@
 <translation id="4438043733494739848">ໂປ່ງແສງ</translation>
 <translation id="4438639467177774583"><ph name="USERNAME" /> <ph name="MASKED_PASSWORD" /> ຈະຖືກບັນທຶກໄວ້ໃນບັນຊີ Google ຂອງທ່ານ, <ph name="ACCOUNT" /></translation>
 <translation id="4439427728133035643">ເຄືອຂ່າຍທີ <ph name="NETWORK_INDEX" /> ຈາກທັງໝົດ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, ຄວາມແຮງສັນຍານ <ph name="SIGNAL_STRENGTH" />%, ເຊື່ອມຕໍ່</translation>
+<translation id="4440097423000553826"><ph name="WEBSITE" /> ສົ່ງການແຈ້ງເຕືອນໄປຫາໂທລະສັບຂອງທ່ານແລ້ວ. ເພື່ອຢືນຢັນວ່າແມ່ນທ່ານ, ໃຫ້ແຕະໃສ່ການແຈ້ງເຕືອນ “<ph name="NOTIFICATIONTITLE" />” ແລ້ວເຮັດຕາມຂັ້ນຕອນ.</translation>
 <translation id="4441124369922430666">ທ່ານ​ຕ້ອງ​ການເລີ່ມແອັບນີ້ອັດ​ຕະ​ໂນ​ມັດບໍ ເມື່ອເຄື່ອງຈັກເປີດ​?</translation>
 <translation id="4441147046941420429">ເພື່ອສືບຕໍ່, ກະລຸນາຖອດກະແຈຄວາມປອດໄພຂອງທ່ານອອກຈາກອຸປະກອນ, ຈາກນັ້ນ ສຽບເຂົ້າຄືນ ແລ້ວແຕະມັນ</translation>
 <translation id="444134486829715816">ຂະຫຍາຍ...</translation>
@@ -3490,6 +3494,7 @@
 <translation id="4773112038801431077">ອັບເກຣດ Linux</translation>
 <translation id="477647109558161443">ສ້າງທາງລັດເດັສທັອບ</translation>
 <translation id="4776917500594043016">ລະ​ຫັດ​ຜ່ານ​ສໍາ​ລັບ <ph name="USER_EMAIL_ADDRESS" /></translation>
+<translation id="4777458362738635055">ຜູ້ໃຊ້ອື່ນຂອງອຸປະກອນນີ້ສາມາດໃຊ້ເຄືອຂ່າຍນີ້ໄດ້</translation>
 <translation id="4777825441726637019">Play Store</translation>
 <translation id="4777943778632837590">ຕັ້ງຄ່າເຊີບເວີຊື່ເຄືອຂ່າຍ</translation>
 <translation id="4778644898150334464">ໃຊ້ລະຫັດຜ່ານອື່ນ</translation>
@@ -4325,6 +4330,7 @@
 <translation id="5712153969432126546">ບາງເທື່ອເວັບໄຊຈະເຜີຍແຜ່ PDF ຕ່າງໆ ເຊັ່ນ: ເອກະສານ, ສັນຍາ ແລະ ແບບຟອມ</translation>
 <translation id="5715711091495208045">ຕົວ​ຈັດ​ຫາ​ປ​ລັກ​ອິນ: <ph name="PLUGIN_NAME" /></translation>
 <translation id="5719603411793408026">ໂປຣແກຣມຊອກຫາເລີ່ມຕົ້ນ</translation>
+<translation id="5719637365829998022">ສະແກນລະຫັດ QR ແລ້ວ.</translation>
 <translation id="5719854774000914513">ເວັບໄຊສາມາດຂໍເຊື່ອມຕໍ່ກັບອຸປະກອນ HID ໄດ້</translation>
 <translation id="572155275267014074">ການຕັ້ງຄ່າ Android</translation>
 <translation id="5722086096420375088">ສີຂຽວ ແລະ ສີຂາວ</translation>
@@ -4536,6 +4542,7 @@
 <translation id="5955721306465922729">ເວັບໄຊຕ້ອງການເປີດແອັບພລິເຄຊັນນີ້.</translation>
 <translation id="5955809630138889698">ອຸປະກອນນີ້ອາດຈະມີສິດສຳລັບໂໝດສາທິດອອນລາຍເທົ່ານັ້ນ. ກະລຸນາຕິດຕໍ່ຫາຜູ້ຕາງໜ້າຝ່າຍຊ່ວຍເຫຼືອຂອງທ່ານສຳລັບລາຍລະອຽດເພີ່ມເຕີມ.</translation>
 <translation id="5956585768868398362">ນີ້ແມ່ນໜ້າຄົ້ນຫາທີ່ທ່ານຄາດໄວ້ບໍ?</translation>
+<translation id="5957918771633727933">ບໍ່ມີໂປຣໄຟລ໌ eSIM ທີ່ສາມາດໃຊ້ໄດ້. ດາວໂຫຼດ <ph name="BEGIN_LINK" />ໂປຣໄຟລ໌<ph name="END_LINK" /> ໃໝ່.</translation>
 <translation id="5957987129450536192">ແຕະໄອຄອນເລືອກເພື່ອເວົ້າທີ່ຢູ່ໃກ້ຮູບໂປຣໄຟລ໌ຂອງທ່ານ, ແລ້ວເລືອກສິ່ງທີ່ທ່ານຕ້ອງການຮັບຟັງ.</translation>
 <translation id="5959471481388474538">ບໍ່​ມີເຄືອ​ຂ່າຍ​ຢູ່</translation>
 <translation id="595959584676692139">ໂຫຼດໜ້າຄືນໃໝ່ເພື່ອໃຊ້ສ່ວນຂະຫຍາຍນີ້</translation>
@@ -5926,6 +5933,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> ຂອງທ່ານໄດ້ຖືກຈົດທະບຽນສຳລັບການຈັດການວິສາຫະກິດສຳເລັດແລ້ວ.</translation>
 <translation id="7507207699631365376">ເບິ່ງ <ph name="BEGIN_LINK" />ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ<ph name="END_LINK" /> ຂອງຜູ້ໃຫ້ບໍລິການ</translation>
 <translation id="7507930499305566459">ໃບຢັ້ງຢືນຜູ້ຕອບຮັບສະຖານະ</translation>
+<translation id="7509246181739783082">ຢັ້ງຢືນຕົວຕົນຂອງທ່ານ</translation>
 <translation id="7513029293694390567">ເຂົ້າສູ່ລະບົບເວັບໄຊໂດຍອັດຕະໂນມັດໂດຍໃຊ້ຂໍ້ມູນປະຈຳຕົວທີ່ເກັບຮັກສາໄວ້. ຖ້າປິດນຳໃຊ້, ທ່ານຈະຖືກຖາມເອົາການຢືນຢັນໃນທຸກຄັ້ງກ່ອນທີ່ຈະເຂົ້າສູ່ລະບົບເວັບໄຊ.</translation>
 <translation id="7514239104543605883">ສຳເນົາໄປໃສ່ອຸປະກອນຂອງທ່ານ</translation>
 <translation id="7514365320538308">ດາວ​ໂຫລດ</translation>
@@ -6040,6 +6048,7 @@
 <translation id="7638605456503525968">ຜອດອະນຸກຳ</translation>
 <translation id="7639914187072011620">ໂຫຼດການປ່ຽນເສັ້ນທາງ SAML ຈາກເຊີບເວີບໍ່ສຳເລັດ</translation>
 <translation id="764017888128728"><ph name="PASSWORD_MANAGER_BRAND" /> ນຳທ່ານເຂົ້າສູ່ລະບົບເວັບໄຊທີ່ມີສິດໂດຍອັດຕະໂນມັດດ້ວຍລະຫັດຜ່ານທີ່ທ່ານບັນທຶກໄວ້.</translation>
+<translation id="7641513591566880111">ຊື່ໂປຣໄຟລ໌ໃໝ່</translation>
 <translation id="7642778300616172920">ເຊື່ອງເນື້ອຫາທີ່ລະອຽດອ່ອນ</translation>
 <translation id="7643842463591647490">{0,plural, =1{# ໜ້າຈໍເປີດຢູ່}other{# ໜ້າຈໍເປີດຢູ່}}</translation>
 <translation id="7643932971554933646">ອະນຸຍາດໃຫ້ເວັບໄຊເບິ່ງໄຟລ໌ບໍ?</translation>
@@ -6199,6 +6208,7 @@
 <translation id="7800518121066352902">ໝຸນທວນເຂັມໂມງ</translation>
 <translation id="780301667611848630">ບໍ່​, ​ຂອບ​ໃຈ</translation>
 <translation id="7804072833593604762">ປິດແຖບແລ້ວ</translation>
+<translation id="7805759469263222011">ສະແກນລະຫັດ QR ໂດຍໃຊ້ກ້ອງຖ່າຍຮູບອຸປະກອນຂອງທ່ານ ຫຼື ໃສ່ລະຫັດການເປີດໃຊ້ທີ່ຜູ້ບໍລິການຂອງທ່ານສົ່ງໃຫ້</translation>
 <translation id="7805768142964895445">ສະ​ຖາ​ນະ​</translation>
 <translation id="7807067443225230855">ການຊອກຫາ ແລະ ຜູ້ຊ່ວຍ</translation>
 <translation id="7807711621188256451">​ອະ​ນຸ​ຍາດ​ໃຫ້ <ph name="HOST" /> ເຂົ້າຫາກ້ອງ​ຖ່າຍ​ຮູບ​ຂອງ​ທ່ານທຸກຄັ້ງ</translation>
@@ -6456,7 +6466,6 @@
 <translation id="8061091456562007989">ປ່ຽນກັບຄືນ</translation>
 <translation id="8061991877177392872">ປາກົດວ່າທ່ານໄດ້ຕັ້ງຄ່າ Voice Match ກັບຜູ້ຊ່ວຍຂອງທ່ານຢູ່ໃນອຸປະກອນອື່ນແລ້ວ. ບັນທຶກສຽງກ່ອນໜ້າເຫຼົ່ານີ້ຖືກໃຊ້ເພື່ອສ້າງຮູບແບບສຽງໃນອຸປະກອນນີ້.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ເຈ້ຍ 1 ແຜ່ນ}other{ເຈ້ຍ {COUNT} ແຜ່ນ}}</translation>
-<translation id="8062879968880283306">ສະແກນລະຫັດ QR ໂດຍໃຊ້ກ້ອງຂອງອຸປະກອນ ຫຼື ປ້ອນລະຫັດການເປີດນຳໃຊ້ທີ່ຜູ້ໃຫ້ບໍລິການຂອງທ່ານສະໜອງໃຫ້.</translation>
 <translation id="8063235345342641131">ຮູບແທນຕົວສີຂຽວຕາມຄ່າເລີ່ມຕົ້ນ</translation>
 <translation id="8063535366119089408">ເບິ່ງໄຟລ໌</translation>
 <translation id="8064279191081105977">ກຸ່ມ <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6678,6 +6687,7 @@
 <translation id="8300849813060516376">OTASP ລົ້ມເຫຼວ</translation>
 <translation id="8303616404642252802">{COUNT,plural, =1{ທີ່ຢູ່}other{ທີ່ຢູ່ # ລາຍການ}}</translation>
 <translation id="8304383784961451596">ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ນຳໃຊ້ອຸປະກອນນີ້. ກະລຸນາຕິດຕໍ່ຫາຜູ້ເບິ່ງແຍງລະບົບສຳລັບການອະນຸຍາດເຂົ້າສູ່ລະບົບ ຫຼື ເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ທີ່ເບິ່ງແຍງກວດກາໂດຍ Family Link.</translation>
+<translation id="8308016398665340540">ທ່ານກຳລັງແບ່ງປັນເຄືອຂ່າຍນີ້ກັບຜູ້ໃຊ້ອື່ນຂອງອຸປະກອນນີ້</translation>
 <translation id="8308179586020895837">ຖາມ​ເບິ່ງວ່າ <ph name="HOST" /> ຕ້ອງ​ການ​​ເຂົ້າຫາກ້ອງ​ຖ່າຍ​ຮູບ​ຂອງ​ທ່ານບໍ່</translation>
 <translation id="830868413617744215">Beta</translation>
 <translation id="8309458809024885768">ໃບຮັບຮອງມີຢູ່ແລ້ວ</translation>
@@ -6877,7 +6887,6 @@
 <translation id="8551588720239073785">ການຕັ້ງຄ່າວັນທີ ແລະ ເວລາ</translation>
 <translation id="8553342806078037065">ຈັດການບູກຄົນອື່ນ</translation>
 <translation id="8554899698005018844">ບໍ່ມີພາສາ</translation>
-<translation id="8555195867496021627">ບໍ່ມີໂປຣໄຟລ໌ eSIM ທີ່ສາມາດໃຊ້ໄດ້. ດາວໂຫຼດໂປຣໄຟລ໌ໃໝ່ <ph name="BEGIN_LINK" />ບ່ອນນີ້.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">ສືບຕໍ່ແຕະກະແຈຄວາມປອດໄພຈົນກວ່າວ່າໄດ້ບັນທຶກລາຍນິ້ວມືຂອງທ່ານໄວ້ແລ້ວ</translation>
 <translation id="8557930019681227453">ໃບລາຍການ</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{ເປີດທັງໝົດໃນ&amp;ໜ້າຈໍໃໝ່}=1{ເປີດໃນ&amp;ໜ້າຈໍໃໝ່}other{ເປີດທັງໝົດ ({COUNT}) ໃນ&amp;ໜ້າຈໍໃໝ່}}</translation>
@@ -7057,7 +7066,6 @@
 <translation id="8743164338060742337">ເຄືອຂ່າຍທີ <ph name="NETWORK_INDEX" /> ຈາກທັງໝົດ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, ສັນຍານຄວາມແຮງ <ph name="SIGNAL_STRENGTH" />%, ຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ, ເຊື່ອມຕໍ່</translation>
 <translation id="8746654918629346731">ທ່ານໄດ້ຂໍ "<ph name="EXTENSION_NAME" />" ແລ້ວ</translation>
 <translation id="874689135111202667">{0,plural, =1{ອັບໂຫຼດໜຶ່ງໄຟລ໌ໃສ່ເວັບໄຊນີ້ບໍ?}other{ອັບໂຫຼດ # ໄຟລ໌ໃສ່ເວັບໄຊນີ້ບໍ?}}</translation>
-<translation id="8749556627204742888">ທ່ານກຳລັງແບ່ງປັນເຄືອຂ່າຍນີ້ກັບຜູ້ໃຊ້ອື່ນຂອງອຸປະກອນນີ້.</translation>
 <translation id="8749805710397399240">ບໍ່ສາມາດສົ່ງສັນຍານໜ້າຈໍຂອງທ່ານໄດ້. ກວດເບິ່ງການອະນຸຍາດການບັນທຶກໜ້າຈໍໃນການຕັ້ງຄ່າລະບົບ.</translation>
 <translation id="8749863574775030885">ເຂົ້າ​ຫາ​ອຸ​ປະ​ກອນ USB ຈາກ​ຜູ້​ຂາຍ​ທີ່​ບໍ່​ຮູ້​ຈັກ</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ຕ້ອງການເຊື່ອມຕໍ່ກັບຜອດອະນຸກໍາ</translation>
@@ -7119,7 +7127,6 @@
 <translation id="8808744862003883508">ໃນໜ້ານີ້ ທ່ານສາມາດເຫັນສ່ວນຂະຫຍາຍທັງໝົດທີ່ຕິດຕັ້ງໃນ Chrome.</translation>
 <translation id="8809147117840417135">ສີຂຽວອົມຟ້າອ່ອນ</translation>
 <translation id="8811862054141704416">ສິດເຂົ້າເຖິງໄມໂຄຣໂຟນໃນ Crostini</translation>
-<translation id="8812552797690463522">ເຄືອຂ່າຍນີ້ແບ່ງປັນກັບທ່ານ.</translation>
 <translation id="8812593354822910461">ລຶບລ້າງຂໍ້ມູນການນຳໃຊ້ (<ph name="URL" />) ນຳ ເຊິ່ງອາດຈະນຳທ່ານອອກຈາກລະບົບ <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">ແຈ້ງເຕືອນຂ້ອຍໃນພາຍຫຼັງ</translation>
 <translation id="8813698869395535039">ບໍ່ສາມາດລົງຊື່ເຂົ້າໃຊ້ <ph name="USERNAME" /> ໄດ້</translation>
@@ -7331,7 +7338,6 @@
 <translation id="9021662811137657072">ກວດພົບໄວຣ​ັ​ສ​ແລ້ວ</translation>
 <translation id="902236149563113779">ໂດຍປົກກະຕິແລ້ວ ເວັບໄຊຈະຕິດຕາມຕຳແໜ່ງກ້ອງຂອງທ່ານສຳລັບຄຸນສົມບັດ AR ເຊັ່ນ: ເກມ ຫຼື ການແນະນຳເສັ້ນທາງລ່ວງໜ້າ</translation>
 <translation id="9022847679183471841">ບັນຊີນີ້ກຳລັງຖືກໃຊ້ຢູ່ແລ້ວໃນຄອມພິວເຕີນີ້ໂດຍ <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">ຜູ້ໃຊ້ອື່ນຂອງອຸປະກອນນີ້ສາມາດໃຊ້ເຄືອຂ່າຍນີ້ໄດ້.</translation>
 <translation id="9023015617655685412">ບຸກມາກແຖບນີ້...</translation>
 <translation id="9023909777842748145">ການປິດຄຸນສົມບັດນີ້ບໍ່ມີຜົນຕໍ່ກັບຄວາມສາມາດຂອງອຸປະກອນຂອງທ່ານໃນການສົ່ງຂໍ້ມູນທີ່ຈຳເປັນສຳລັບການບໍລິການທີ່ສຳຄັນ ເຊັ່ນ: ການອັບເດດລະບົບ ແລະ ຄວາມປອດໄພ.</translation>
 <translation id="9024127637873500333">ເປີດຢູ່ໃນແຖບໃໝ່</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 6909e530..c16f7429 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -361,7 +361,6 @@
 <translation id="138784436342154190">Atkurti numatytąjį paleidimo puslapį?</translation>
 <translation id="1388253969141979417">Leidžiama naudoti mikrofoną</translation>
 <translation id="1388728792929436380">„<ph name="DEVICE_TYPE" />“ įrenginys bus paleistas iš naujo įdiegus naujinius.</translation>
-<translation id="138900021244932468">Nerasta jokių profilių. Jei norite nustatyti naują tinklą, nuskaitykite QR kodą naudodami įrenginio fotoaparatą arba įveskite operatoriaus pateiktą aktyvinimo kodą.</translation>
 <translation id="139013308650923562">Leidžiama naudoti įrenginyje įdiegtus šriftus</translation>
 <translation id="1390548061267426325">Atidaryti kaip įprastą skirtuką</translation>
 <translation id="1393283411312835250">Saulė ir debesys</translation>
@@ -5933,6 +5932,7 @@
 <translation id="7506541170099744506">„<ph name="DEVICE_TYPE" />“ sėkmingai užregistruotas kaip tvarkomas įmonėje.</translation>
 <translation id="7507207699631365376">Žr. šio teikėjo <ph name="BEGIN_LINK" />privatumo politiką<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Būsenos atsakiklio sertifikatas</translation>
+<translation id="7509246181739783082">Tapatybės patvirtinimas</translation>
 <translation id="7513029293694390567">Automatiškai prisijungti prie svetainių naudojant išsaugotus prisijungimo duomenis. Kai funkcija išjungta, kaskart prisijungiant prie svetainės bus prašoma patvirtinti.</translation>
 <translation id="7514239104543605883">Kopijuoti į įrenginį</translation>
 <translation id="7514365320538308">Atsisiųsti</translation>
@@ -6465,7 +6465,6 @@
 <translation id="8061091456562007989">Grąžinti ankstesnį variantą</translation>
 <translation id="8061991877177392872">Panašu, kad jau esate nustatę „Voice Match“ naudodami Padėjėją kitame įrenginyje. Ankstesni įrašai buvo naudojami kuriant balso modelį šiame įrenginyje.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 popieriaus lapas}one{{COUNT} popieriaus lapas}few{{COUNT} popieriaus lapai}many{{COUNT} popieriaus lapo}other{{COUNT} popieriaus lapų}}</translation>
-<translation id="8062879968880283306">Nuskaitykite QR kodą naudodami įrenginio fotoaparatą arba įveskite operatoriaus pateiktą aktyvinimo kodą.</translation>
 <translation id="8063235345342641131">Numatytasis žalias pseudoportretas</translation>
 <translation id="8063535366119089408">Peržiūrėti failą</translation>
 <translation id="8064279191081105977">Grupė <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6886,7 +6885,6 @@
 <translation id="8551588720239073785">Datos ir laiko nustatymai</translation>
 <translation id="8553342806078037065">Tvarkyti kitus žmones</translation>
 <translation id="8554899698005018844">Kalbos nėra</translation>
-<translation id="8555195867496021627">Nėra pasiekiamų „eSIM“ kortelės profilių. <ph name="BEGIN_LINK" />Čia<ph name="END_LINK" /> atsisiųskite naują profilį.</translation>
 <translation id="8557022314818157177">Lieskite saugos raktą, kol bus užfiksuotas kontrolinis kodas</translation>
 <translation id="8557930019681227453">Aprašas</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Atidaryti viską &amp;naujame lange}=1{Atidaryti &amp;naujame lange}one{Atidaryti viską ({COUNT}) &amp;naujame lange}few{Atidaryti viską ({COUNT}) &amp;naujame lange}many{Atidaryti viską ({COUNT}) &amp;naujame lange}other{Atidaryti viską ({COUNT}) &amp;naujame lange}}</translation>
@@ -7066,7 +7064,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" /> tinklas iš <ph name="NETWORK_COUNT" />, „<ph name="NETWORK_NAME" />“, „<ph name="NETWORK_PROVIDER_NAME" />“, signalo stiprumas <ph name="SIGNAL_STRENGTH" /> %, tvarko administratorius, prisijungti</translation>
 <translation id="8746654918629346731">Jau pateikėte plėtinio „<ph name="EXTENSION_NAME" />“ užklausą</translation>
 <translation id="874689135111202667">{0,plural, =1{Įkelti vieną failą į šią svetainę?}one{Įkelti # failą į šią svetainę?}few{Įkelti # failus į šią svetainę?}many{Įkelti # failo į šią svetainę?}other{Įkelti # failų į šią svetainę?}}</translation>
-<translation id="8749556627204742888">Bendrinate šį tinklą su kitais šio įrenginio naudotojais.</translation>
 <translation id="8749805710397399240">Ekrano perduoti nepavyko. Peržiūrėkite ekrano vaizdo įrašymo leidimą sistemos nuostatose.</translation>
 <translation id="8749863574775030885">Pasiekti nežinomų tiekėjų USB įrenginius</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> nori prisijungti prie nuosekliojo prievado</translation>
@@ -7131,7 +7128,6 @@
 <translation id="8808744862003883508">Šiame puslapyje galite peržiūrėti visus „Chrome“ įdiegtus plėtinius.</translation>
 <translation id="8809147117840417135">Šviesi žalsvai mėlyna</translation>
 <translation id="8811862054141704416">„Crostini“ prieiga prie mikrofono</translation>
-<translation id="8812552797690463522">Šis tinklas bendrinamas su jumis.</translation>
 <translation id="8812593354822910461">Taip pat išvalyti naršymo duomenis (<ph name="URL" />). Tai padarius būsite atjungti nuo <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Priminti vėliau</translation>
 <translation id="8813698869395535039">Nepavyko prisijungti prie <ph name="USERNAME" /></translation>
@@ -7343,7 +7339,6 @@
 <translation id="9021662811137657072">Aptiktas virusas</translation>
 <translation id="902236149563113779">Paprastai svetainėse stebima fotoaparato padėtis naudojant AR funkcijas, pvz., žaidžiant žaidimus ar gaunant įspėjimų nuorodas</translation>
 <translation id="9022847679183471841">Ši paskyra jau naudojama šiame kompiuteryje (<ph name="AVATAR_NAME" />).</translation>
-<translation id="9023009238991294202">Kiti šio įrenginio naudotojai gali naudoti šį tinklą.</translation>
 <translation id="9023015617655685412">Žymėti šį skirtuką...</translation>
 <translation id="9023909777842748145">Išjungus šią funkciją vis tiek galima siųsti įrenginio informaciją, reikalingą pagrindinėms paslaugoms, pvz., sistemos naujiniams ir saugai.</translation>
 <translation id="9024127637873500333">&amp;Atidaryti naujo skirtuko lape</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 323e0cb..3002e707 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Vai atjaunot noklusējuma sākumlapu?</translation>
 <translation id="1388253969141979417">Drīkst izmantot mikrofonu</translation>
 <translation id="1388728792929436380">Kad atjaunināšana tiks pabeigta, <ph name="DEVICE_TYPE" /> ierīce tiks restartēta.</translation>
-<translation id="138900021244932468">Netika atrasts neviens profils. Lai iestatītu jaunu tīklu, skenējiet ātrās atbildes kodu, izmantojot ierīces kameru, vai ievadiet no mobilo sakaru operatora iegūto aktivizācijas kodu.</translation>
 <translation id="139013308650923562">Atļauts izmantot jūsu ierīcē instalētos fontus</translation>
 <translation id="1390548061267426325">Atvērt kā parastu cilni</translation>
 <translation id="1393283411312835250">Saule un mākoņi</translation>
@@ -5912,6 +5911,7 @@
 <translation id="7506541170099744506">Jūsu <ph name="DEVICE_TYPE" /> ierīce ir sekmīgi reģistrēta uzņēmuma pārvaldībai.</translation>
 <translation id="7507207699631365376">Skatīt šī pakalpojumu sniedzēja <ph name="BEGIN_LINK" />konfidencialitātes politiku<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Statusa atbildētāja sertifikāts</translation>
+<translation id="7509246181739783082">Identitātes apstiprināšana</translation>
 <translation id="7513029293694390567">Automātiski pierakstieties vietnēs, izmantojot saglabātos akreditācijas datus. Ja funkcija ir atspējota, apstiprināšana būs jāveic ikreiz, kad pierakstīsieties vietnē.</translation>
 <translation id="7514239104543605883">Kopēt uz jūsu ierīci</translation>
 <translation id="7514365320538308">Lejupielādēt</translation>
@@ -6443,7 +6443,6 @@
 <translation id="8061091456562007989">Atjaunot iepriekšējos iestatījumus</translation>
 <translation id="8061991877177392872">Šķiet, ka jau esat iestatījis funkciju Voice Match savam Asistentam citā ierīcē. Šie iepriekšējie ieraksti tika izmantoti balss modeļa izveidei šajā ierīcē.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{Viena papīra lapa}zero{{COUNT} papīra lapu}one{{COUNT} papīra lapa}other{{COUNT} papīra lapas}}</translation>
-<translation id="8062879968880283306">Skenējiet ātrās atbildes kodu, izmantojot ierīces kameru, vai ievadiet no sava mobilo sakaru operatora iegūto aktivizācijas kodu.</translation>
 <translation id="8063235345342641131">Noklusējuma iemiesojums zaļā krāsā</translation>
 <translation id="8063535366119089408">Skatīt failu</translation>
 <translation id="8064279191081105977">Grupas <ph name="GROUP_NAME" /> (<ph name="GROUP_CONTENTS" />) statuss: <ph name="COLLAPSED_STATE" /></translation>
@@ -6864,7 +6863,6 @@
 <translation id="8551588720239073785">Datuma un laika iestatījumi</translation>
 <translation id="8553342806078037065">Pārvaldīt citas personas</translation>
 <translation id="8554899698005018844">Nav valodas</translation>
-<translation id="8555195867496021627">Nav pieejamu eSIM profilu. <ph name="BEGIN_LINK" />Šeit<ph name="END_LINK" /> varat lejupielādēt jaunu profilu.</translation>
 <translation id="8557022314818157177">Turpiniet pieskarties drošības atslēgai, līdz tiek reģistrēts jūsu pirksta nospiedums.</translation>
 <translation id="8557930019681227453">Manifests</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Atvērt visas &amp;jaunā logā}=1{Atvērt &amp;jaunā logā}zero{Atvērt visas ({COUNT}) &amp;jaunā logā}one{Atvērt visas ({COUNT}) &amp;jaunā logā}other{Atvērt visas ({COUNT}) &amp;jaunā logā}}</translation>
@@ -7044,7 +7042,6 @@
 <translation id="8743164338060742337">Tīkls numur <ph name="NETWORK_INDEX" />, tīklu kopskaits: <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, signāla stiprums procentos: <ph name="SIGNAL_STRENGTH" />, pārvalda jūsu administrators, savienojums</translation>
 <translation id="8746654918629346731">Jūs jau pieprasījāt instalēt <ph name="EXTENSION_NAME" />.</translation>
 <translation id="874689135111202667">{0,plural, =1{Vai augšupielādēt vienu failu šajā vietnē?}zero{Vai augšupielādēt # failus šajā vietnē?}one{Vai augšupielādēt # failu šajā vietnē?}other{Vai augšupielādēt # failus šajā vietnē?}}</translation>
-<translation id="8749556627204742888">Jūs koplietojat šo tīklu ar citiem šīs ierīces lietotājiem.</translation>
 <translation id="8749805710397399240">Nevar apraidīt jūsu ekrānu. Pārbaudiet ekrāna ierakstīšanas atļauju sistēmas preferencēs.</translation>
 <translation id="8749863574775030885">Piekļūt USB ierīcēm, ko piedāvā nezināms ražotājs</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> vēlas izveidot savienojumu ar seriālo portu</translation>
@@ -7108,7 +7105,6 @@
 <translation id="8808744862003883508">Šajā lapā varat skatīt visus pārlūkā Chrome instalētos paplašinājumus.</translation>
 <translation id="8809147117840417135">Gaiši zilganzaļa</translation>
 <translation id="8811862054141704416">Crostini piekļuve mikrofonam</translation>
-<translation id="8812552797690463522">Šis tīkls tiek koplietots ar jums.</translation>
 <translation id="8812593354822910461">Arī notīrīt pārlūkošanas datus (<ph name="URL" />). Tādējādi tiksiet izrakstīts no vietnes <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Atgādināt vēlāk</translation>
 <translation id="8813698869395535039">Problēma ar pierakstīšanos kontā <ph name="USERNAME" /></translation>
@@ -7320,7 +7316,6 @@
 <translation id="9021662811137657072">Tika konstatēts vīruss.</translation>
 <translation id="902236149563113779">Parasti vietnēs kameras pozīcija tiek izsekota, lai nodrošinātu PR funkcijas, piemēram, spēles vai brīdinājuma attēlojumus.</translation>
 <translation id="9022847679183471841">Šis konts šajā datorā jau tiek izmantots profilā <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Citi šīs ierīces lietotāji var izmantot šo tīklu.</translation>
 <translation id="9023015617655685412">Saglabāt cilni kā grāmatzīmi...</translation>
 <translation id="9023909777842748145">Izslēdzot šo funkciju, netiek ietekmēta ierīces spēja nosūtīt informāciju, kas nepieciešama būtiskiem pakalpojumiem, piemēram, sistēmas atjauninājumiem un drošībai.</translation>
 <translation id="9024127637873500333">&amp;Atvērt jaunā cilnē</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index df42ef59..0808eff5 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">Да се врати стандардната страница на стартување?</translation>
 <translation id="1388253969141979417">Дозволено им е да го користат микрофонот</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> ќе се рестартира кога ќе завршат ажурирањата.</translation>
-<translation id="138900021244932468">Не се откриени профили. За да поставите нова мрежа, скенирајте го QR-кодот со камерата на уредот или внесете код за активација од операторот.</translation>
 <translation id="139013308650923562">Дозволено им е да ги користат фонтовите инсталирани на уредот</translation>
 <translation id="1390548061267426325">Отвори како обична картичка</translation>
 <translation id="1393283411312835250">Сонце и облаци</translation>
@@ -5930,6 +5929,7 @@
 <translation id="7506541170099744506">Вашиот <ph name="DEVICE_TYPE" /> е успешно запишан за управување на компанијата.</translation>
 <translation id="7507207699631365376">Погледнете ја <ph name="BEGIN_LINK" />Политиката за приватност<ph name="END_LINK" /> на операторов</translation>
 <translation id="7507930499305566459">Сертификат за статус на одговарач</translation>
+<translation id="7509246181739783082">Потврдете го вашиот идентитет</translation>
 <translation id="7513029293694390567">Автоматски најавувајте се на веб-сајтови со складирани акредитиви. Ако е оневозможено, ќе ви се бара потврда пред секое најавување на веб-сајт.</translation>
 <translation id="7514239104543605883">Копирај на уредот</translation>
 <translation id="7514365320538308">Преземи</translation>
@@ -6461,7 +6461,6 @@
 <translation id="8061091456562007989">Врати како што беше</translation>
 <translation id="8061991877177392872">Се чини дека веќе сте ја поставиле Voice Match за вашиот „Помошник на Google“ на друг уред. Претходните снимки се користеа за да се направи гласовниот модел за уредов.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 лист хартија}one{{COUNT} лист хартија}other{{COUNT} листови хартија}}</translation>
-<translation id="8062879968880283306">Скенирајте го QR-кодот со камерата на уредот или внесете код за активација од операторот.</translation>
 <translation id="8063235345342641131">Стандарден зелен аватар</translation>
 <translation id="8063535366119089408">Прикажи датотека</translation>
 <translation id="8064279191081105977">Група <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6885,7 +6884,6 @@
 <translation id="8551588720239073785">Поставки за датум и време</translation>
 <translation id="8553342806078037065">Управувај со другите луѓе</translation>
 <translation id="8554899698005018844">Нема јазик</translation>
-<translation id="8555195867496021627">Нема достапни eSIM-профили. Преземете нов профил <ph name="BEGIN_LINK" />тука.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Допирајте го безбедносниот клуч додека не се сними вашиот отпечаток</translation>
 <translation id="8557930019681227453">Манифест</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Отвори ги сите во &amp;нов прозорец}=1{Отвори во &amp;нов прозорец}one{Отвори ги сите ({COUNT}) во &amp;нов прозорец}other{Отвори ги сите ({COUNT}) во &amp;нов прозорец}}</translation>
@@ -7065,7 +7063,6 @@
 <translation id="8743164338060742337">Мрежа <ph name="NETWORK_INDEX" /> од <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, јачина на сигналот: <ph name="SIGNAL_STRENGTH" /> %, управувана од администраторот, поврзи</translation>
 <translation id="8746654918629346731">Веќе побаравте „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="874689135111202667">{0,plural, =1{Дали да се прикачи една датотека на сајтов?}one{Дали да се прикачи # датотека на сајтов?}other{Дали да се прикачат # датотеки на сајтов?}}</translation>
-<translation id="8749556627204742888">Ја споделувате мрежава со други корисници на уредов.</translation>
 <translation id="8749805710397399240">Не може да се емитува екранот. Проверете ја дозволата за „Снимање на екранот“ во „Поставките за системот“.</translation>
 <translation id="8749863574775030885">Пристапувајте до USB-уреди од непознат продавач</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> сака да се поврзе со сериска порта</translation>
@@ -7128,7 +7125,6 @@
 <translation id="8808744862003883508">На страницава, може да ги видите сите екстензии инсталирани во Chrome.</translation>
 <translation id="8809147117840417135">Светла синозелена</translation>
 <translation id="8811862054141704416">Пристап до микрофонот на Crostini</translation>
-<translation id="8812552797690463522">Мрежава се споделува со вас.</translation>
 <translation id="8812593354822910461">Избриши ги и податоците од прелистувањето (<ph name="URL" />). Тоа ќе ве одјави од <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Потсети ме подоцна</translation>
 <translation id="8813698869395535039">Не може да се најави на <ph name="USERNAME" /></translation>
@@ -7340,7 +7336,6 @@
 <translation id="9021662811137657072">Откриен е вирус</translation>
 <translation id="902236149563113779">Сајтовите обично ја следат позицијата на камерата за AR-функциите како што се игрите или упатствата за внимание</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> веќе ја користи сметкава на компјутеров.</translation>
-<translation id="9023009238991294202">Другите корисници на уредов може да ја користат мрежава.</translation>
 <translation id="9023015617655685412">Обележете ја картичкава…</translation>
 <translation id="9023909777842748145">Исклучувањето на функцијава нема да влијае врз способноста на уредот да ги испраќа податоците што се потребни за основните услуги, како што се системските ажурирања и безбедноста.</translation>
 <translation id="9024127637873500333">&amp;Отвори во нова картичка</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 50e83c9..af999518 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">ഡിഫോൾട്ട് ആരംഭ പേജ് പുനഃസ്ഥാപിക്കണോ?</translation>
 <translation id="1388253969141979417">നിങ്ങളുടെ മൈക്രോഫോൺ ഉപയോഗിക്കാൻ അനുവദിച്ചിരിക്കുന്നു</translation>
 <translation id="1388728792929436380">അപ്‌ഡേറ്റുകൾ പൂർത്തിയാകുമ്പോൾ <ph name="DEVICE_TYPE" /> റീസ്‌റ്റാർട്ട് ചെയ്യും.</translation>
-<translation id="138900021244932468">പ്രൊഫൈലുകളൊന്നും കണ്ടെത്തിയില്ല. ഒരു പുതിയ നെറ്റ്‌വർക്ക് സജ്ജീകരിക്കുന്നതിന്, ഉപകരണത്തിന്റെ ക്യാമറ ഉപയോഗിച്ച് QR കോഡ് സ്‌കാൻ ചെയ്യുക അല്ലെങ്കിൽ നിങ്ങളുടെ സേവനദാതാവ് നൽകിയ സജീവമാക്കൽ കോഡ് നൽകുക.</translation>
 <translation id="139013308650923562">നിങ്ങളുടെ ഉപകരണത്തിൽ ഇൻസ്‌റ്റാൾ ചെയ്‌തിട്ടുള്ള ഫോണ്ടുകൾ ഉപയോഗിക്കാൻ അനുവദിച്ചിരിക്കുന്നു</translation>
 <translation id="1390548061267426325">സാധാരണ ടാബായി തുറക്കുക</translation>
 <translation id="1393283411312835250">സൂര്യനും മേഘങ്ങളും</translation>
@@ -512,6 +511,7 @@
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" തീം ഇന്‍‌സ്റ്റാള്‍ ചെയ്‌തു</translation>
 <translation id="1546280085599573572">നിങ്ങൾ ഹോം ബട്ടൺ ക്ലിക്ക് ചെയ്യുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation>
 <translation id="1546452108651444655">ഇനിപ്പറയുന്ന കാര്യങ്ങൾ ചെയ്യാനാവുന്ന <ph name="EXTENSION_TYPE" /> ഇൻസ്‌റ്റാൾ ചെയ്യാൻ <ph name="CHILD_NAME" /> താൽപ്പര്യപ്പെടുന്നു:</translation>
+<translation id="1547808936554660006">Powerwash ചെയ്യുന്നത് ഇൻസ്റ്റാൾ ചെയ്‌ത ഇ-സിം പ്രൊഫൈലുകൾ നീക്കം ചെയ്യില്ലെന്ന് ഞാൻ മനസ്സിലാക്കുന്നു</translation>
 <translation id="1549275686094429035">ARC പ്രവർത്തനക്ഷമമാക്കി</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" />, <ph name="VOLUME_NAME" /> എന്നത് ആക്‌സസ് ചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു. ഇത് നിങ്ങളുടെ ഫയലുകൾ പരിഷ്‌ക്കരിക്കുകയോ ഇല്ലാതാക്കുകയോ ചെയ്യാം</translation>
 <translation id="1552301827267621511">"<ph name="EXTENSION_NAME" />" വിപുലീകരണം <ph name="SEARCH_PROVIDER_DOMAIN" /> ഉപയോഗിക്കാൻ തിരയൽ മാറ്റി</translation>
@@ -548,6 +548,7 @@
 <translation id="1588438908519853928">സാധാരണം</translation>
 <translation id="158849752021629804">ഹോം നെറ്റ്‍വര്‍ക്ക് ആവശ്യമുണ്ട്</translation>
 <translation id="1588870296199743671">ഇതിനൊപ്പം ലിങ്ക് തുറക്കുക...</translation>
+<translation id="1588919647604819635">വലത്-ക്ലിക്ക് കാർഡ്</translation>
 <translation id="1589055389569595240">സ്‌പെല്ലിംഗും വ്യാകരണവും കാണിക്കുക</translation>
 <translation id="1591679663873027990">USB ഉപകരണങ്ങൾ ആക്സസ് ചെയ്യാൻ Parallels Desktop-ന് അനുമതി നൽകുക. USB ഉപകരണം നീക്കം ചെയ്തുകഴിഞ്ഞാൽ Parallels Desktop അത് ഓർക്കില്ല.</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" />, ADB ഡീബഗ് ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കി, ഇത് നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> റീസെറ്റ് ചെയ്യും. റീസ്റ്റാർട്ട് ചെയ്യുന്നതിന് മുമ്പ് നിങ്ങളുടെ ഫയലുകളുടെ ബാക്കപ്പെടുക്കുക.</translation>
@@ -983,6 +984,7 @@
 
 നിങ്ങളുടെ ഉപകരണത്തിൽ Family Link ആപ്പ് ഇൻസ്‌റ്റാൾ ചെയ്യുന്നതിലൂടെ ഈ അക്കൗണ്ടിന്റെ ക്രമീകരണം നിങ്ങൾക്ക് മാനേജ് ചെയ്യാം.  നിർദ്ദേശങ്ങൾ നിങ്ങൾക്ക് ഇമെയിലിൽ അയച്ചിട്ടുണ്ട്.</translation>
 <translation id="2040460856718599782">ക്ഷമിക്കണം! നിങ്ങളെ പ്രാമാണീകരിക്കാന്‍ ശ്രമിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു. നിങ്ങളുടെ സൈൻ ഇൻ ക്രെഡൻഷ്യലുകൾ രണ്ടുതവണ പരിശോധിച്ചതിനുശേഷം വീണ്ടും ശ്രമിക്കുക.</translation>
+<translation id="2042279886444479655">സജീവമായ പ്രൊഫൈലുകൾ</translation>
 <translation id="2044014337866019681">ഈ സെഷൻ അൺലോക്ക് ചെയ്യാൻ, നിങ്ങൾ <ph name="ACCOUNT" /> പരിശോധിച്ചുറപ്പിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക.</translation>
 <translation id="2044023416777079300">മോഡം രജിസ്‌റ്റർ ചെയ്‌തിട്ടില്ല</translation>
 <translation id="204497730941176055">Microsoft സര്‍‌ട്ടിഫിക്കറ്റ് ടെംപ്ലേറ്റ് നാമം</translation>
@@ -1321,6 +1323,7 @@
 <translation id="2395616325548404795">എന്റർപ്രൈസ് മാനേജ്‌മെന്റിന് വേണ്ടി നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എൻറോൾ ചെയ്‌തെങ്കിലും അതിന്റെ അസറ്റും ലൊക്കേഷൻ വിവരങ്ങളും അയയ്‌ക്കാനായില്ല. ഈ ഉപകരണത്തിനുവേണ്ടി നിങ്ങളുടെ അഡ്‍മിൻ കൺസോളിൽ നിന്ന് ഈ വിവരങ്ങൾ നേരിട്ട് നൽകുക.</translation>
 <translation id="2396387085693598316">നിങ്ങളുടെ അഡ്‌മിൻ "<ph name="EXTENSION_NAME" />" ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു</translation>
 <translation id="2396783860772170191">4 അക്ക പിൻ നൽകുക (0000-9999)</translation>
+<translation id="2398546389094871088">ഉപകരണം Powerwash ചെയ്യുന്നത് നിങ്ങളുടെ ഇ-സിം പ്രൊഫൈലുകൾ നീക്കം ചെയ്യില്ല. ഈ പ്രൊഫൈലുകൾ നീക്കം ചെയ്യാൻ നേരിട്ട് <ph name="LINK_BEGIN" />മൊബൈൽ ക്രമീകരണത്തിലേക്ക്<ph name="LINK_END" /> പോകുക.</translation>
 <translation id="2399699884460174994">അറിയിപ്പുകൾ ഓണാക്കി</translation>
 <translation id="2399939490305346086">സുരക്ഷാ കീയുടെ സൈൻ ഇൻ ഡാറ്റ</translation>
 <translation id="2400664245143453337">ഉടൻ അപ്ഡേറ്റ് ആവശ്യമാണ്</translation>
@@ -1738,6 +1741,7 @@
 <translation id="2844809857160214557">പ്രിന്റ് ജോലികൾ കാണുക, മാനേജ് ചെയ്യുക</translation>
 <translation id="2845382757467349449">ബുക്ക്‌മാർക്ക് ബാർ എപ്പോഴും കാണിക്കുക</translation>
 <translation id="284805635805850872">ദോഷകരമായ സോഫ്‌റ്റ്‌വെയർ നീക്കംചെയ്യണോ?</translation>
+<translation id="2849035674501872372">തിരയുക</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">ക്ലീനപ്പ് പരാജയപ്പെട്ടു</translation>
 <translation id="2849936225196189499">ഗുരുതരം</translation>
@@ -2049,6 +2053,7 @@
 <translation id="3189187154924005138">വലിയ കഴ്‌സർ</translation>
 <translation id="3190558889382726167">പാസ്‌വേഡ് സംരക്ഷിച്ചു</translation>
 <translation id="3192947282887913208">ഓഡിയോ ഫയലുകള്‍</translation>
+<translation id="3197453258332670132">വലത്-ക്ലിക്കിലൂടെയോ ദീർഘനേരം അമർത്തുന്നതിലൂടെയോ നിങ്ങൾ തിരഞ്ഞെടുത്ത ടെക്സ്റ്റിന്റെ അനുബന്ധ വിവരങ്ങൾ കാണിക്കുക</translation>
 <translation id="3199127022143353223">സെര്‍‌വറുകള്‍‌</translation>
 <translation id="3201422919974259695">ലഭ്യമായ USB ഉപകരണങ്ങൾ ഇവിടെ ദൃശ്യമാവും.</translation>
 <translation id="3202131003361292969">പാത</translation>
@@ -2070,6 +2075,7 @@
 <translation id="3223531857777746191">റീസെറ്റ് ബട്ടൺ</translation>
 <translation id="3225084153129302039">ഡിഫോൾട്ടായ പർപ്പിൾ അവതാർ</translation>
 <translation id="3225319735946384299">കോഡ് സൈനിംഗ്</translation>
+<translation id="3226487301970807183">ഇടത് വശത്ത് അലൈൻ ചെയ്തിരിക്കുന്ന സൈഡ് പാനൽ ടോഗിൾ ചെയ്യുക</translation>
 <translation id="3227137524299004712">മൈക്രോഫോൺ</translation>
 <translation id="3233271424239923319">Linux ആപ്പുകളും ഫയലുകളും ബാക്കപ്പെടുക്കുക</translation>
 <translation id="3238192140106069382">കണക്റ്റ് ചെയ്‌ത് പരിശോധിച്ചുറപ്പിക്കുന്നു</translation>
@@ -2339,6 +2345,7 @@
 <translation id="3515983984924808886">റീസെറ്റ് ചെയ്യൽ സ്ഥിരീകരിക്കാൻ വീണ്ടും നിങ്ങളുടെ സുരക്ഷാ കീ സ്‌പർശിക്കുക. പിൻ ഉൾപ്പെടെ സുരക്ഷാ കീയിൽ സംഭരിച്ചിരിക്കുന്ന എല്ലാ വിവരങ്ങളും ഇല്ലാതാക്കപ്പെടും.</translation>
 <translation id="3518985090088779359">അംഗീകരിച്ച് തുടരുക</translation>
 <translation id="3519564332031442870">പ്രിന്റ് ബാക്ക്എൻഡ് സേവനം</translation>
+<translation id="3519938335881974273">പേജ് ഇതായി സംരക്ഷിക്കുക...</translation>
 <translation id="3521606918211282604">ഡിസ്ക്കിന്റെ വലുപ്പം മാറ്റുക</translation>
 <translation id="3522088408596898827">ഡിസ്‌ക് ഇടം വളരെ കുറവാണ്. ഡിസ്‌കിൽ ഇടമുണ്ടാക്കി വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="3524965460886318643">ആക്‌റ്റിവിറ്റികൾ എക്‌സ്‌പോർട്ട് ചെയ്യുക</translation>
@@ -2362,6 +2369,7 @@
 <translation id="3550593477037018652">സെല്ലുലാർ നെറ്റ്‌വർക്ക് വിച്ഛേദിക്കുക</translation>
 <translation id="3550915441744863158">സ്വയമേവ Chrome അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനാൽ നിങ്ങളുടേത് എപ്പോഴും പുതുമയുള്ള പതിപ്പായിരിക്കും.</translation>
 <translation id="3551320343578183772">ടാബ് അടയ്‌ക്കുക</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">പുറത്തുകടക്കുമ്പോൾ മായ്‌ക്കും</translation>
 <translation id="3554493885489666172">നിങ്ങളുടെ ഉപകരണം മാനേജ് ചെയ്യുന്നത് <ph name="PROFILE_NAME" /> ആണ്. ഈ ഉപകരണത്തിലെ ഏത് പ്രൊഫൈലിലുള്ള ഡാറ്റയും അഡ്‌മിൻമാർക്ക് ആക്‌സസ് ചെയ്യാം.</translation>
 <translation id="3555812735919707620">വിപുലീകരണം നീക്കംചെയ്യുക</translation>
@@ -2414,6 +2422,7 @@
 <translation id="3604713164406837697">വാൾപേപ്പർ മാറ്റുക</translation>
 <translation id="3605780360466892872">ബട്ടൺഡൗൺ</translation>
 <translation id="3608576286259426129">ഉപയോക്തൃ ചിത്ര പ്രിവ്യൂ</translation>
+<translation id="3609277884604412258">ദ്രുത തിരയൽ</translation>
 <translation id="3610369246614755442">ഡോക്ക് ഫാൻ സർവീസ് ചെയ്യേണ്ടതുണ്ട്</translation>
 <translation id="361106536627977100">ഫ്ലാഷ് ഡാറ്റ</translation>
 <translation id="3611655097742243705">കൂടുതൽ ആപ്പുകൾ കണ്ടെത്താൻ Play സ്റ്റോർ സന്ദർശിക്കുക</translation>
@@ -3356,6 +3365,7 @@
 <translation id="4636682061478263818">Drive ഫയലുകൾ</translation>
 <translation id="4636930964841734540">വിവരം</translation>
 <translation id="4637083375689622795">കൂടുതൽ പ്രവര്‍ത്തനങ്ങൾ, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">ക്യാമറ വീണ്ടും ഉപയോഗിക്കുക</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{ടെക്‌സ്റ്റ്}other{# ടെക്‌സ്റ്റുകൾ}}</translation>
 <translation id="4638930039313743000">ADB ഡീബഗ് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="4641539339823703554">സിസ്‌റ്റം സമയം സജ്ജീകരിക്കാൻ Chrome-ന് കഴിഞ്ഞില്ല. ചുവടെകൊടുത്തിരിക്കുന്ന സമയം പരിശോധിച്ച്, ആവശ്യമുണ്ടെങ്കിൽ തിരുത്തുക.</translation>
@@ -4106,6 +4116,7 @@
 <translation id="5499313591153584299">ഈ ഫയൽ നിങ്ങളുടെ കമ്പ്യൂട്ടറിന് ഹാനികരമായേക്കാം.</translation>
 <translation id="5499453227627332024">നിങ്ങളുടെ Linux കണ്ടെയ്‌നറിനുള്ള അപ്ഗ്രേഡ് ലഭ്യമാണ്. പിന്നീട് ക്രമീകരണ ആപ്പിലൂടെയും നിങ്ങൾക്ക് അപ്ഗ്രേഡ് ചെയ്യാം.</translation>
 <translation id="5500709606820808700">സുരക്ഷാ പരിശോധന ഇന്ന് നടത്തി</translation>
+<translation id="5501322521654567960">ഇടത് വശത്ത് അലൈൻ ചെയ്തിരിക്കുന്ന സൈഡ് പാനൽ</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ഉപകരണത്തിൽ നിന്ന് <ph name="ATTACHMENTS" /> സ്വീകരിക്കാനായില്ല}other{<ph name="DEVICE_NAME" /> ഉപകരണത്തിൽ നിന്ന് <ph name="ATTACHMENTS" /> സ്വീകരിക്കാനായില്ല}}</translation>
 <translation id="5502500733115278303">Firefoxല്‍ നിന്ന് ഇറക്കുമതി ചെയ്തവ</translation>
 <translation id="5502915260472117187">കുട്ടി</translation>
@@ -5319,6 +5330,7 @@
 <translation id="6856348640027512653">വെർച്വൽ റിയാലിറ്റി ഉപകരണങ്ങളോ ഡാറ്റയോ ഉപയോഗിക്കാൻ അനുവാദമില്ല</translation>
 <translation id="6856459657722366306"><ph name="NETWORK_COUNT" />-ൽ <ph name="NETWORK_INDEX" /> നെറ്റ്‌വർക്ക്, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, സിഗ്‌നൽ ശക്തി <ph name="SIGNAL_STRENGTH" />%, വിശദാംശങ്ങൾ</translation>
 <translation id="6856623341093082836">നിങ്ങളുടെ ടച്ച്‌സ്‌ക്രീനിന്റെ കൃത്യത സജ്ജമാക്കി, ക്രമീകരിക്കുക</translation>
+<translation id="6857145580237920905">Powerwash ചെയ്യുന്നതിന് മുമ്പ് ഇ-സിം നീക്കം ചെയ്യുക</translation>
 <translation id="6857699260879628349">കോൺഫിഗറേഷൻ വിവരം നേടുക</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> sec</translation>
 <translation id="6860097299815761905">പ്രോക്സി ക്രമീകരണങ്ങള്‍...</translation>
@@ -5900,6 +5912,7 @@
 <translation id="7506541170099744506">എന്റർപ്രൈസ് മാനേജ്‌മെന്റിന് വേണ്ടി നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> ഉപകരണത്തെ എൻറോൾ ചെ‌യ്‌തു.</translation>
 <translation id="7507207699631365376">ഈ ദാതാവിന്റെ <ph name="BEGIN_LINK" />സ്വകാര്യതാ നയം<ph name="END_LINK" /> കാണുക</translation>
 <translation id="7507930499305566459">സ്റ്റാറ്റസ് റെസ്‌പോണ്ടര്‍‌ സര്‍‌ട്ടിഫിക്കറ്റ്</translation>
+<translation id="7509246181739783082">ഐഡന്റിറ്റി പരിശോധിച്ചുറപ്പിക്കുക</translation>
 <translation id="7513029293694390567">സംരക്ഷിച്ച ക്രെഡൻഷ്യലുകൾ ഉപയോഗിച്ച് വെബ്‌സൈറ്റുകളിലേക്ക് സ്വയം സൈൻ ഇൻ ചെയ്യുക. പ്രവർത്തനരഹിതമാണെങ്കിൽ, ഒരു വെബ്‌സൈറ്റിലേക്ക് സൈൻ ഇൻ ചെയ്യുന്നതിന് മുമ്പ് ഓരോ തവണയും നിങ്ങളോട് സ്ഥിരീകരിക്കാൻ ആവശ്യപ്പെടും.</translation>
 <translation id="7514239104543605883">നിങ്ങളുടെ ഉപകരണത്തിലേക്ക് പകർത്തുക</translation>
 <translation id="7514365320538308">ഡൗൺലോഡ് ചെയ്യുക</translation>
@@ -6432,7 +6445,6 @@
 <translation id="8061091456562007989">പഴയതിലേക്ക് മാറ്റുക</translation>
 <translation id="8061991877177392872">നിങ്ങൾ ഇതിനകം തന്നെ മറ്റൊരു ഉപകരണത്തിൽ Assistant-നൊപ്പം Voice Match സജ്ജീകരിച്ചിട്ടുണ്ടെന്ന് തോന്നുന്നു. ഈ ഉപകരണത്തിൽ ശബ്‌ദ മോഡൽ തയ്യാറാക്കുന്നതിന് ഈ പഴയ റെക്കോർഡിംഗുകൾ ഉപയോഗിച്ചു.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{ഒരു ഷീറ്റ് പേപ്പർ}other{{COUNT} ഷീറ്റ് പേപ്പർ}}</translation>
-<translation id="8062879968880283306">ഉപകരണത്തിന്റെ ക്യാമറ ഉപയോഗിച്ച് QR കോഡ് സ്‌കാൻ ചെയ്യുക അല്ലെങ്കിൽ നിങ്ങളുടെ സേവനദാതാവ് നൽകിയ സജീവമാക്കൽ കോഡ് നൽകുക.</translation>
 <translation id="8063235345342641131">ഡിഫോൾട്ടായ പച്ച അവതാർ</translation>
 <translation id="8063535366119089408">ഫയൽ കാണുക</translation>
 <translation id="8064279191081105977">ഗ്രൂപ്പ് <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6853,7 +6865,6 @@
 <translation id="8551588720239073785">തീയതി, സമയ ക്രമീകരണം</translation>
 <translation id="8553342806078037065">മറ്റുള്ളവരെ മാനേജുചെയ്യുക</translation>
 <translation id="8554899698005018844">ഭാഷയില്ല</translation>
-<translation id="8555195867496021627">ലഭ്യമായ ഇ-സിം പ്രൊഫൈലുകളൊന്നുമില്ല. പുതിയൊരു പ്രൊഫൈൽ <ph name="BEGIN_LINK" />ഇവിടെ<ph name="END_LINK" /> ഡൗൺലോഡ് ചെയ്യുക.</translation>
 <translation id="8557022314818157177">നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ചേർക്കുന്നത് വരെ സുരക്ഷാ കീയിൽ സ്പർശിക്കുന്നത് തുടരുക</translation>
 <translation id="8557930019681227453">മാനിഫെസ്റ്റ്</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{എല്ലാം &amp;പുതിയ വിൻഡോയിൽ തുറക്കുക}=1{&amp;പുതിയ വിൻഡോയിൽ തുറക്കുക}other{എല്ലാം ({COUNT}) &amp;പുതിയ വിൻഡോയിൽ തുറക്കുക}}</translation>
@@ -7033,7 +7044,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" />-ൽ <ph name="NETWORK_INDEX" /> നെറ്റ്‌വർക്ക്, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, സിഗ്‌നൽ ശക്തി <ph name="SIGNAL_STRENGTH" />%, നിങ്ങളുടെ അഡ്‌മിൻ മാനേജ് ചെയ്യുന്നത്, കണക്‌റ്റ് ചെയ്യുക</translation>
 <translation id="8746654918629346731">നിങ്ങൾ മുമ്പേ "<ph name="EXTENSION_NAME" />" അഭ്യർത്ഥിച്ചിരിക്കുന്നു</translation>
 <translation id="874689135111202667">{0,plural, =1{ഈ സൈറ്റിലേക്ക് ഒരു ഫയൽ അപ്‌ലോഡ് ചെയ്യണോ?}other{ഈ സൈറ്റിലേക്ക് # ഫയലുകൾ അപ്‌ലോഡ് ചെയ്യണോ?}}</translation>
-<translation id="8749556627204742888">ഈ ഉപകരണത്തിന്റെ മറ്റ് ഉപയോക്താക്കളുമായി നിങ്ങൾ ഈ നെറ്റ്‌വർക്ക് പങ്കിടുന്നു.</translation>
 <translation id="8749805710397399240">നിങ്ങളുടെ സ്‌ക്രീൻ കാസ്റ്റ് ചെയ്യാനാകുന്നില്ല. സിസ്റ്റം മുൻ‌ഗണനകളിൽ സ്ക്രീൻ റെക്കോർഡിംഗ് അനുമതി പരിശോധിക്കുക.</translation>
 <translation id="8749863574775030885">ഒരു അജ്ഞാത വെണ്ടറിൽ നിന്നും USB ഉപകരണങ്ങൾ ആക്‌സസ് ചെയ്യുക</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" />, ഒരു സീരിയല്‍ പോർട്ടിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു</translation>
@@ -7094,7 +7104,6 @@
 <translation id="8808744862003883508">ഈ പേജിൽ നിങ്ങൾക്ക് Chrome-ൽ ഇൻസ്റ്റാൾ ചെയ്‍തിരിക്കുന്ന എല്ലാ വിപുലീകരണങ്ങളും കാണാം.</translation>
 <translation id="8809147117840417135">ഇളം ടീൽ</translation>
 <translation id="8811862054141704416">Crostini-ക്കുള്ള മൈക്രോഫോൺ ആക്സസ്</translation>
-<translation id="8812552797690463522">ഈ നെറ്റ്‌വർക്ക് നിങ്ങളുമായി പങ്കിടുന്നു.</translation>
 <translation id="8812593354822910461"><ph name="DOMAIN" /> എന്നതിൽ നിന്ന് നിങ്ങളെ സൈൻ ഔട്ട് ചെയ്യുന്ന ബ്രൗസിംഗ് ഡാറ്റയും (<ph name="URL" />) മായ്‌ക്കുക.<ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">എന്നെ പിന്നീട് ഓർമ്മിപ്പിക്കുക</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> എന്നതിലേക്ക് സൈൻ ഇൻ ചെയ്യാനാവില്ല</translation>
@@ -7306,7 +7315,6 @@
 <translation id="9021662811137657072">വൈറസ് കണ്ടെത്തി</translation>
 <translation id="902236149563113779">ഗെയിമുകളോ മുന്നറിയിപ്പ് നിർദ്ദേശങ്ങളോ പോലുള്ള AR ഫീച്ചറുകൾക്ക്, സൈറ്റുകൾ സാധാരണയായി നിങ്ങളുടെ ക്യാമറയുടെ സ്ഥാനം ട്രാക്ക് ചെയ്യാറുണ്ട്</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" />, നിലവിൽ ഈ അക്കൗണ്ട് ഈ കമ്പ്യൂട്ടറിൽ ഉപയോഗിക്കുകയാണ്.</translation>
-<translation id="9023009238991294202">ഈ ഉപകരണത്തിന്റെ മറ്റ് ഉപയോക്താക്കൾക്ക് ഈ നെറ്റ്‌വർക്ക് ഉപയോഗിക്കാൻ കഴിയും.</translation>
 <translation id="9023015617655685412">ഈ ടാബ് ബുക്ക്‌മാർക്ക് ചെയ്യുക...</translation>
 <translation id="9023909777842748145">ഈ ഫീച്ചർ ഓഫാക്കുന്നത്, സിസ്റ്റം അപ്‌ഡേറ്റുകളും സുരക്ഷയും പോലുള്ള അത്യാവശ്യ സേവനങ്ങൾക്ക് വേണ്ട വിവരങ്ങൾ അയയ്‌ക്കുന്നതിനുള്ള ഉപകരണത്തിന്റെ കഴിവിനെ ബാധിക്കില്ല.</translation>
 <translation id="9024127637873500333">പുതിയ ടാബില്‍ &amp;തുറക്കുക</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 26cbe5b..5746d1e7 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="mn">
+<translation id="1001033507375626788">Энэ сүлжээг тантай хуваалцсан байна</translation>
 <translation id="1001307489511021749">Таны аппууд, тохиргоо болон бусад тохируулгыг таны Google бүртгэлээрээ нэвтэрсэн Chrome үйлдлийн системтэй бүх төхөөрөмж дээр синк хийнэ.</translation>
 <translation id="1003088604756913841">Холбоосыг шинэ <ph name="APP" /> цонхонд нээх</translation>
 <translation id="100323615638474026">USB төхөөрөмж (<ph name="VENDOR_ID" />:<ph name="PRODUCT_ID" />)</translation>
@@ -358,7 +359,6 @@
 <translation id="138784436342154190">Өгөгдмөл эхлүүлэх хуудсыг сэргээх үү?</translation>
 <translation id="1388253969141979417">Таны микрофоныг ашиглахыг зөвшөөрсөн</translation>
 <translation id="1388728792929436380">Шинэчилж дуусахад <ph name="DEVICE_TYPE" /> дахин эхэлнэ.</translation>
-<translation id="138900021244932468">Ямар ч профайл олдсонгүй. Шинэ сүлжээ тохируулахын тулд төхөөрөмжийн камерыг ашиглан QR кодыг скан хийх эсвэл таны оператор компаниас өгсөн идэвхжүүлэх кодыг оруулна уу.</translation>
 <translation id="139013308650923562">Таны төхөөрөмж дээр суулгасан фонтуудыг ашиглахыг зөвшөөрсөн</translation>
 <translation id="1390548061267426325">Энгийн цонх хэлбэрээр нээх</translation>
 <translation id="1393283411312835250">Нар, үүл</translation>
@@ -957,6 +957,7 @@
 <translation id="1992924914582925289">Төхөөрөмжөөс хасах</translation>
 <translation id="1994173015038366702">Сайтын URL</translation>
 <translation id="1995916364271252349">Ямар мэдээллийг сайтууд ашиглаж, харуулж (байршил, камер, үзэгдэх болон бусад зүйл) болохыг хянадаг</translation>
+<translation id="1997437640397887843">Төхөөрөмжийн камерыг асаалаа. Камерын урд eSIM-н QR кодоо байрлуулна уу.</translation>
 <translation id="1997616988432401742">Таны сертификат</translation>
 <translation id="1999115740519098545">Эхлүүлэх</translation>
 <translation id="2000419248597011803">Таны өгөгдмөл хайлтын системд хаяг оруулах хэсэг, хайх хэсгийн зарим күүки болон хайлтыг илгээдэг</translation>
@@ -1012,6 +1013,7 @@
 <translation id="2055585478631012616">Та эдгээр сайтаас гарах бөгөөд үүнд нээлттэй табын сайтууд мөн багтана</translation>
 <translation id="205560151218727633">Google туслахын лого</translation>
 <translation id="2058456167109518507">Төхөөрөмж илэрсэн</translation>
+<translation id="2058581283817163201">Энэ утсаар бататгана уу</translation>
 <translation id="2059913712424898428">Цагийн бүс</translation>
 <translation id="2060375639911876205">eSIM-н профайлыг хасах</translation>
 <translation id="2062354623176996748">Нууцлалтай цонхоор вебийг хөтчийн түүхээ хадгалалгүйгээр ашиглана уу</translation>
@@ -2611,6 +2613,7 @@
 <translation id="3785308913036335955">Аппликейшнуудын богино холболтыг харуулах</translation>
 <translation id="3785727820640310185">Энэ сайтад хадгалсан нууц үг</translation>
 <translation id="3788301286821743879">Киоск аппликэйшнийг эхлүүлж чадсангүй.</translation>
+<translation id="3788331399335602504">эдгээр файл</translation>
 <translation id="3788401245189148511">Энэ нь:</translation>
 <translation id="3789841737615482174">Суулгах</translation>
 <translation id="379082410132524484">Таны карт хүчингүй байна</translation>
@@ -3185,6 +3188,7 @@
 <translation id="4438043733494739848">Тунгалаг</translation>
 <translation id="4438639467177774583"><ph name="USERNAME" /> <ph name="MASKED_PASSWORD" />-г таны Google Бүртгэл болох <ph name="ACCOUNT" />-д хадгална</translation>
 <translation id="4439427728133035643">Сүлжээ: <ph name="NETWORK_COUNT" />-н <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, дохионы хүч <ph name="SIGNAL_STRENGTH" />%, холбогдох</translation>
+<translation id="4440097423000553826"><ph name="WEBSITE" /> таны утас руу мэдэгдэл илгээсэн. Та өөрийгөө мөн болохыг баталгаажуулахын тулд “<ph name="NOTIFICATIONTITLE" />” мэдэгдэл дээр товшиж, алхмуудыг дагана уу.</translation>
 <translation id="4441124369922430666">Машин асахад та энэ программыг автоматиар эхлүүлэхийг хүсэж байна уу?</translation>
 <translation id="4441147046941420429">Үргэлжлүүлэхийн тулд аюулгүй байдлын түлхүүрээ төхөөрөмжөөсөө устгаж, дараа нь дахин залгаад дээр нь хүрнэ үү</translation>
 <translation id="444134486829715816">Өргөтгө...</translation>
@@ -3487,6 +3491,7 @@
 <translation id="4773112038801431077">Linux-г сайжруулах</translation>
 <translation id="477647109558161443">Дэлгэц дээрх холбоос үүсгэх</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" />-ийн нууц үг</translation>
+<translation id="4777458362738635055">Энэ төхөөрөмжийн бусад хэрэглэгч энэ сүлжээг ашиглах боломжтой</translation>
 <translation id="4777825441726637019">Play Store</translation>
 <translation id="4777943778632837590">Сүлжээний нэрийн серверийг тохируулах</translation>
 <translation id="4778644898150334464">Өөр нууц үг ашиглах</translation>
@@ -4323,6 +4328,7 @@
 <translation id="5712153969432126546">Сайтууд заримдаа документ, гэрээ болон маягт зэрэг PDF-г нийтэлдэг</translation>
 <translation id="5715711091495208045">Нэмэлт өргөтгөлийн зуучлагч: <ph name="PLUGIN_NAME" /></translation>
 <translation id="5719603411793408026">Өгөгдмөл хайлтын систем</translation>
+<translation id="5719637365829998022">QR кодыг скан хийсэн.</translation>
 <translation id="5719854774000914513">Сайтууд HID төхөөрөмжүүдэд холбогдохыг хүсэх боломжтой</translation>
 <translation id="572155275267014074">Андройдын тохиргоо</translation>
 <translation id="5722086096420375088">Ногоон ба цагаан</translation>
@@ -4533,6 +4539,7 @@
 <translation id="5955721306465922729">Вебсайт энэ хэрэглээний программыг нээх хүсэлтэй байна.</translation>
 <translation id="5955809630138889698">Энэ төхөөрөмж зөвхөн онлайн демо горимд боломжтой байж болзошгүй. Дэлгэрэнгүй мэдээлэл авахын тулд дэмжлэгийн төлөөлөгчтэйгээ холбогдоно уу.</translation>
 <translation id="5956585768868398362">Энэ таны хайж байсан хайлтын хуудас мөн байна уу?</translation>
+<translation id="5957918771633727933">Боломжтой eSIM профайл байхгүй байна. Шинэ <ph name="BEGIN_LINK" />профайл<ph name="END_LINK" /> татна уу.</translation>
 <translation id="5957987129450536192">Профайл зургийнхаа ойролцоо байрлах Ярихын тулд сонгох дүрс тэмдгийг товшоод дараа нь сонсохыг хүссэн зүйлээ сонгоно уу.</translation>
 <translation id="5959471481388474538">Сүлжээг ажиллахгүй байна.</translation>
 <translation id="595959584676692139">Энэ өргөтгөлийг ашиглахын тулд хуудсыг дахин ачаалах</translation>
@@ -5923,6 +5930,7 @@
 <translation id="7506541170099744506">Таны <ph name="DEVICE_TYPE" />-г байгууллагын удирдлагад амжилттай бүртгэлээ.</translation>
 <translation id="7507207699631365376">Энэ хангагчийн <ph name="BEGIN_LINK" />нууцлалын бодлогыг<ph name="END_LINK" /> харах</translation>
 <translation id="7507930499305566459">Статусд хариулагч сертификат</translation>
+<translation id="7509246181739783082">Өөрийгөө баталгаажуулах</translation>
 <translation id="7513029293694390567">Хадгалсан мандат үнэмлэхийг ашиглан веб хуудаст автоматаар нэвтэрнэ үү. Энэ онцлогийг идэвхжүүлээгүй тохиолдолд таныг веб хуудаст хандах бүрд баталгаажуулалт шаардана.</translation>
 <translation id="7514239104543605883">Төхөөрөмж рүүгээ хуулах</translation>
 <translation id="7514365320538308">Татаж авах</translation>
@@ -6037,6 +6045,7 @@
 <translation id="7638605456503525968">Цуваа порт</translation>
 <translation id="7639914187072011620">SAML-н дахин чиглүүлэхийг серверээс дуудаж чадсангүй</translation>
 <translation id="764017888128728"><ph name="PASSWORD_MANAGER_BRAND" /> нь таны хадгалсан нууц үгээр хууль ёсны сайтад таныг автоматаар нэвтрүүлнэ.</translation>
+<translation id="7641513591566880111">Профайлын шинэ нэр</translation>
 <translation id="7642778300616172920">Эмзэг агуулгыг нуух</translation>
 <translation id="7643842463591647490">{0,plural, =1{Нээлттэй # цонх}other{Нээлттэй # цонх}}</translation>
 <translation id="7643932971554933646">Файл уншихыг сайтад зөвшөөрөх үү?</translation>
@@ -6196,6 +6205,7 @@
 <translation id="7800518121066352902">Цагийн зүүний эсрэг эргүүлэх</translation>
 <translation id="780301667611848630">Үгүй, баярлалаа</translation>
 <translation id="7804072833593604762">Таб хаагдсан</translation>
+<translation id="7805759469263222011">Төхөөрөмжийнхөө камерыг ашиглан QR кодыг скан хийх эсвэл оператор компаниасаа олгосон идэвхжүүлэх кодыг оруулна уу</translation>
 <translation id="7805768142964895445">Байр байдал</translation>
 <translation id="7807067443225230855">Хайлт болон Туслах</translation>
 <translation id="7807711621188256451"><ph name="HOST" />-д таны камерт нэвтрэх зөвшөөрөл олгох</translation>
@@ -6452,7 +6462,6 @@
 <translation id="8061091456562007989">Үүнийг буцааж өөрчлөх</translation>
 <translation id="8061991877177392872">Та өөр төхөөрөмж дээр Voice Match-г аль хэдийн Туслахаараа тохируулсан бололтой. Эдгээр өмнөх бичлэгийг энэ төхөөрөмжид дуу хоолойн загвар үүсгэхэд ашигласан.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 хуудас цаас}other{{COUNT} хуудас цаас}}</translation>
-<translation id="8062879968880283306">Төхөөрөмжийн камерыг ашиглан QR кодыг скан хийж эсвэл оператор компаниасаа олгосон идэвхжүүлэх кодыг оруулна уу.</translation>
 <translation id="8063235345342641131">Өгөгдмөл ногоон аватар</translation>
 <translation id="8063535366119089408">Файлыг харах</translation>
 <translation id="8064279191081105977"><ph name="GROUP_NAME" /> бүлэг - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6673,6 +6682,7 @@
 <translation id="8300849813060516376">OTASP амжилтгүй болсон</translation>
 <translation id="8303616404642252802">{COUNT,plural, =1{Хаяг}other{# хаяг}}</translation>
 <translation id="8304383784961451596">Та энэ төхөөрөмжийг ашиглах зөвшөөрөлгүй байна. Нэвтрэх зөвшөөрөл авахын тулд администратортай холбогдох буюу эсхүл Family Link-р хянадаг Google Бүртгэлээр нэвтэрнэ үү.</translation>
+<translation id="8308016398665340540">Та энэ сүлжээг энэ төхөөрөмжийн бусад хэрэглэгчтэй хуваалцаж байна</translation>
 <translation id="8308179586020895837">Хэрэв <ph name="HOST" /> камерт хандахыг хүсвэл асуух</translation>
 <translation id="830868413617744215">Бета</translation>
 <translation id="8309458809024885768">Энэ сертификат байна</translation>
@@ -6872,7 +6882,6 @@
 <translation id="8551588720239073785">Огноо болон цагийн тохиргоо</translation>
 <translation id="8553342806078037065">Бусад хүмүүсийг удирдах</translation>
 <translation id="8554899698005018844">Хэл байхгүй</translation>
-<translation id="8555195867496021627">Боломжтой eSIM профайл байхгүй байна. Шинэ профайлыг <ph name="BEGIN_LINK" />эндээс<ph name="END_LINK" /> татна уу.</translation>
 <translation id="8557022314818157177">Хурууны хээг автал аюулгүй байдлын түлхүүр дээрээ үргэлжлүүлэн хүрнэ үү</translation>
 <translation id="8557930019681227453">Тодорхойлогч файл</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Бүгдийг &amp;Шинэ цонхонд нээх}=1{&amp;Шинэ цонхонд нээх}other{Бүгдийг ({COUNT}) &amp;Шинэ цонхонд нээх}}</translation>
@@ -7052,7 +7061,6 @@
 <translation id="8743164338060742337">Сүлжээ <ph name="NETWORK_COUNT" />-н <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, дохионы хүч <ph name="SIGNAL_STRENGTH" />%, таны администратор удирддаг, холбогдох</translation>
 <translation id="8746654918629346731">Та аль хэдийн "<ph name="EXTENSION_NAME" />" өргөтгөлийг суулгах хүсэлт тавьсан</translation>
 <translation id="874689135111202667">{0,plural, =1{Энэ сайтад нэг файл байршуулах уу?}other{Энэ сайтад # файл байршуулах уу?}}</translation>
-<translation id="8749556627204742888">Та энэ сүлжээг энэ төхөөрөмжийн бусад хэрэглэгчтэй хуваалцаж байна.</translation>
 <translation id="8749805710397399240">Таны дэлгэцийг дамжуулах боломжгүй байна. Системийн тохиргоон дээрээс Дэлгэцийн үйлдэл бичигчийн зөвшөөрлийг шалгана уу.</translation>
 <translation id="8749863574775030885">Үл таних vendor-н UBS төхөөрөмжинд хандах</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> цуваа портод холбогдох хүсэлтэй байна</translation>
@@ -7112,7 +7120,6 @@
 <translation id="8808744862003883508">Та энэ хуудсан дээр Chrome-д суулгасан бүх өргөтгөлийг харах боломжтой.</translation>
 <translation id="8809147117840417135">Цайвар номин ногоон</translation>
 <translation id="8811862054141704416">Crostini-н микрофоны хандалт</translation>
-<translation id="8812552797690463522">Энэ сүлжээг тантай хуваалцсан байна.</translation>
 <translation id="8812593354822910461">Мөн хайлтын өгөгдлийг (<ph name="URL" />) устгах. Ингэснээр та <ph name="DOMAIN" />-с гарах болно. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Надад дараа сануулах</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" />-д нэвтрэх боломжгүй байна</translation>
@@ -7324,7 +7331,6 @@
 <translation id="9021662811137657072">Вирус илэрлээ</translation>
 <translation id="902236149563113779">Сайтууд ихэвчлэн тоглоом эсвэл чиглэлийн анхааруулга зэрэг AR онцлогуудад зориулж таны камерын байрлалыг хянадаг</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> энэ бүртгэлийг энэ компьютерт ашигласан байна.</translation>
-<translation id="9023009238991294202">Энэ төхөөрөмжийн бусад хэрэглэгч энэ сүлжээг ашиглаж болно.</translation>
 <translation id="9023015617655685412">Энэ табыг тэмдэглэх...</translation>
 <translation id="9023909777842748145">Энэ онцлогийг унтраах нь систем шинэчлэлт, аюулгүй байдал зэрэг чухал үйлчилгээнд шаардлагатай мэдээллийг илгээх таны төхөөрөмжийн чадварт нөлөөлөхгүй.</translation>
 <translation id="9024127637873500333">Шинэ цонхонд нээх</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 017883c..7b028a6 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">डीफॉल्ट स्टार्टअप पेज रिस्टोअर करायचे?</translation>
 <translation id="1388253969141979417">तुमचा मायक्रोफोन वापरण्याची अनुमती आहे</translation>
 <translation id="1388728792929436380">अपडेट पूर्ण झाल्यावर <ph name="DEVICE_TYPE" /> रीस्टार्ट होईल.</translation>
-<translation id="138900021244932468">कोणत्याही प्रोफाइल सापडल्या नाहीत. नवीन नेटवर्क सेट करण्यासाठी, डिव्हाइसचा कॅमेरा वापरून QR कोड स्कॅन करा किंवा तुमच्या वाहकाने दिलेला अ‍ॅक्टिव्हेशन कोड एंटर करा.</translation>
 <translation id="139013308650923562">तुमच्या डिव्हाइसवर इंस्टॉल केलेले फाँट वापरण्याची अनुमती द्या</translation>
 <translation id="1390548061267426325">नियमित टॅब म्हणून उघडा</translation>
 <translation id="1393283411312835250">सूर्य आणि ढग</translation>
@@ -516,6 +515,7 @@
 <translation id="1545775234664667895">"<ph name="THEME_NAME" />" थीम इंस्टॉल केली</translation>
 <translation id="1546280085599573572">तुम्ही होम बटण क्लिक करता तेव्हा कोणते पेज दर्शविले जाते ते या एक्स्टेंशनने बदलले आहे.</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> ला पुढील गोष्टी करू शकणारे <ph name="EXTENSION_TYPE" /> इंस्टॉल करायचे आहे:</translation>
+<translation id="1547808936554660006">मला समजते, की Powerwash मुळे इंस्टॉल केलेल्या eSIM प्रोफाइल काढून टाकल्या जाणार नाहीत</translation>
 <translation id="1549275686094429035">ARC सुरू केले</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> ॲक्सेस करू इच्छित आहे. हे तुमच्या फायलीमध्ये फेरफार करू किंवा त्या हटवू शकते.</translation>
 <translation id="1552301827267621511"><ph name="SEARCH_PROVIDER_DOMAIN" /> वापरण्यासाठी "<ph name="EXTENSION_NAME" />" एक्स्टेंशनने शोधामध्ये बदल केला आहे</translation>
@@ -551,6 +551,7 @@
 <translation id="1588438908519853928">सामान्य</translation>
 <translation id="158849752021629804">होम नेटवर्क आवश्यक</translation>
 <translation id="1588870296199743671">यासह लिंक उघडा...</translation>
+<translation id="1588919647604819635">राइट क्लिक कार्ड</translation>
 <translation id="1589055389569595240">शुद्धलेखन आणि व्याकरण दर्शवा</translation>
 <translation id="1591679663873027990">Parallels Desktop ला USB डिव्हाइस ॲक्सेस करण्याची परवानगी द्या. USB डिव्हाइस काढून टाकल्यानंतर Parallels Desktop ते लक्षात ठेवणार नाही.</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> ने ADB डीबगिंग बंद केले आहे, त्यामुळे तुमचे <ph name="DEVICE_TYPE" /> रीसेट होईल. रीस्टार्ट करण्याआधी तुमच्या फाइलचा बॅकअप घ्या.</translation>
@@ -995,6 +996,7 @@
 
 तुमच्या डिव्हाइसवर Family Link अ‍ॅप इंस्टॉल करून तुम्ही या खात्याची सेटिंग्ज व्यवस्थापित करू शकता.  आम्ही तुम्हाला ईमेलवर सूचना पाठवल्या आहेत.</translation>
 <translation id="2040460856718599782">अरेरे! तुम्हाला ऑथेंटिकेट करण्याचा प्रयत्न करताना काहीतरी चूक झाली. कृपया तुमची साइन इन क्रेडेंशियल दोनदा तपासा आणि पुन्हा प्रयत्न करा.</translation>
+<translation id="2042279886444479655">ॲक्टिव्ह प्रोफाइल</translation>
 <translation id="2044014337866019681">कृपया सेशन अनलॉक करण्यासाठी तुम्ही <ph name="ACCOUNT" /> ची पडताळणी करत आहात याची खात्री करा.</translation>
 <translation id="2044023416777079300">मोडेमची नोंदणी केलेली नाही</translation>
 <translation id="204497730941176055">Microsoft Certificate Template Name</translation>
@@ -1336,6 +1338,7 @@
 <translation id="2395616325548404795">एंटरप्राइझ व्यवस्‍थापनासाठी आपल्या <ph name="DEVICE_TYPE" /> ची यशस्वीरित्या नोंदणी केली आहे परंतु त्याची मालमत्ता आणि स्थान माहिती पाठविण्यात अयशस्वी झाले. कृपया या डिव्हाइससाठी आपल्या Admin console मधून ही माहिती व्यक्तीचलितरित्या प्रविष्‍ट करा.</translation>
 <translation id="2396387085693598316">तुमच्या अ‍ॅडमिनने "<ph name="EXTENSION_NAME" />" ब्लॉक केले आहे</translation>
 <translation id="2396783860772170191">चार अंकी पिन एंटर करा (००००-९९९९)</translation>
+<translation id="2398546389094871088">तुमचे डिव्हाइस Powerwash केल्यामुळे तुमच्या eSIM प्रोफाइल काढून टाकल्या जाणार नाहीत. या प्रोफाइल मॅन्युअली हटवण्यासाठी, <ph name="LINK_BEGIN" />मोबाइल सेटिंग्ज<ph name="LINK_END" /> वर जा.</translation>
 <translation id="2399699884460174994">सूचना सुरू केल्या आहेत</translation>
 <translation id="2399939490305346086">सिक्युरिटी की साइन इन डेटा</translation>
 <translation id="2400664245143453337">त्वरित अपडेट आवश्यक आहे</translation>
@@ -1753,6 +1756,7 @@
 <translation id="2844809857160214557">प्रिंट कार्ये पहा आणि व्यवस्थापित करा</translation>
 <translation id="2845382757467349449">नेहमी बुकमार्क बार दर्शवा</translation>
 <translation id="284805635805850872">धोकादायक सॉफ्टवेअर काढून टाकायचे का?</translation>
+<translation id="2849035674501872372">वर पहा</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">साफ करता आले नाही</translation>
 <translation id="2849936225196189499">गंभीर</translation>
@@ -2064,6 +2068,7 @@
 <translation id="3189187154924005138">मोठा कर्सर</translation>
 <translation id="3190558889382726167">पासवर्ड सेव्ह केला</translation>
 <translation id="3192947282887913208">ऑडिओ फाइल</translation>
+<translation id="3197453258332670132">राइट क्लिक केल्यामुळे किंवा दाबून ठेवल्यामुळे, तुमच्या मजकूर निवडीशी संबंधित माहिती दाखवते</translation>
 <translation id="3199127022143353223">सर्व्हर</translation>
 <translation id="3201422919974259695">उपलब्ध असलेली USB डिव्हाइस येथे दिसतील.</translation>
 <translation id="3202131003361292969">पथ</translation>
@@ -2085,6 +2090,7 @@
 <translation id="3223531857777746191">रीसेट करा बटण</translation>
 <translation id="3225084153129302039">डीफॉल्ट जांभळा अवतार</translation>
 <translation id="3225319735946384299">कोड साइनिंग</translation>
+<translation id="3226487301970807183">डाव्या बाजूला अलाइन केलेले साइड पॅनल टॉगल करा</translation>
 <translation id="3227137524299004712">मायक्रोफोन</translation>
 <translation id="3233271424239923319">Linux अ‍ॅप्स आणि फायलींचा बॅकअप घ्या</translation>
 <translation id="3238192140106069382">कनेक्ट करत आहे आणि पडताळणी करत आहे</translation>
@@ -2354,6 +2360,7 @@
 <translation id="3515983984924808886">रीसेटची खात्री करण्यासाठी तुमच्या सिक्युरिटी कीला पुन्हा स्पर्श करा. सिक्युरिटी कीवर स्टोअर केलेली सर्व माहिती, तिच्या पिनसह, हटवली जाईल.</translation>
 <translation id="3518985090088779359">स्वीकारा आणि सुरू ठेवा</translation>
 <translation id="3519564332031442870">Print Backend Service</translation>
+<translation id="3519938335881974273">पेज या फॉरमॅटमध्ये सेव्ह करा...</translation>
 <translation id="3521606918211282604">डिस्कचा आकार बदला</translation>
 <translation id="3522088408596898827">डिस्कवरील जागा अतिशय कमी आहे. डिस्कवरील जागा मोकळी करा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="3524965460886318643">ॲक्टिव्हिटी एक्सपोर्ट करा</translation>
@@ -2377,6 +2384,7 @@
 <translation id="3550593477037018652">मोबाइल नेटवर्क डिस्कनेक्ट करा</translation>
 <translation id="3550915441744863158">Chrome स्वयंचलितपणे अपडेट होते जेणेकरून आपल्याकडे नेहमी नवीन आवृत्ती असते</translation>
 <translation id="3551320343578183772">टॅब बंद करा</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">बाहेर पडताना साफ केले</translation>
 <translation id="3554493885489666172">तुमचे डिव्हाइस <ph name="PROFILE_NAME" /> द्वारे व्यवस्थापित केले आहे. अ‍ॅडमिनिस्ट्रेटर या डिव्हाइसवरील कोणत्याही प्रोफाइलचा डेटा ॲक्सेस करू शकतो.</translation>
 <translation id="3555812735919707620">एक्स्टेंशन काढून टाका</translation>
@@ -2429,6 +2437,7 @@
 <translation id="3604713164406837697">वॉलपेपर बदला</translation>
 <translation id="3605780360466892872">बटनडाउन</translation>
 <translation id="3608576286259426129">वापरकर्ता इमेज पूर्वावलोकन</translation>
+<translation id="3609277884604412258">झटपट शोध</translation>
 <translation id="3610369246614755442">डॉक फॅनला सेवा हव्या आहेत</translation>
 <translation id="361106536627977100">फ्लॅश डेटा</translation>
 <translation id="3611655097742243705">आणखी अ‍ॅप्स शोधण्यासाठी Play Store ला भेट द्या</translation>
@@ -3371,6 +3380,7 @@
 <translation id="4636682061478263818">Drive मधील फाइल</translation>
 <translation id="4636930964841734540">माहिती</translation>
 <translation id="4637083375689622795"><ph name="EMAIL" /> मधील आणखी क्रिया</translation>
+<translation id="4637189644956543313">कॅमेरा पुन्हा वापरा</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{मजकूर}other{# मजकूर}}</translation>
 <translation id="4638930039313743000">ADB डीबगिंग सुरू करा</translation>
 <translation id="4641539339823703554">प्रणाली वेळ सेट करण्यात Chrome अक्षम होते. कृपया खालील वेळ तपासा आणि आवश्यक असल्यास ती दुरुस्त करा.</translation>
@@ -4121,6 +4131,7 @@
 <translation id="5499313591153584299">ही फाइल तुमच्या कॉंप्युटरसाठी हानिकारक ठरू शकते.</translation>
 <translation id="5499453227627332024">तुमच्या Linux कंटेनर साठी अपग्रेड उपलब्ध आहे. सेटिंग्ज अ‍ॅपमधून तुम्ही नंतरदेखील अपग्रेड करू शकता.</translation>
 <translation id="5500709606820808700">सुरक्षा तपासणी आज रन केली गेली</translation>
+<translation id="5501322521654567960">डाव्या बाजूला अलाइन केलेले साइ़ड पॅनल</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> कडून <ph name="ATTACHMENTS" /> मिळवता आला नाही}other{<ph name="DEVICE_NAME" /> कडून <ph name="ATTACHMENTS" /> मिळवता आले नाहीत}}</translation>
 <translation id="5502500733115278303">Firefox कडून आयातीत</translation>
 <translation id="5502915260472117187">लहान मूल</translation>
@@ -5333,6 +5344,7 @@
 <translation id="6856348640027512653">आभासी वास्तविकता डिव्हाइस किंवा डेटा वापरण्याची अनुमती नाही</translation>
 <translation id="6856459657722366306"><ph name="NETWORK_COUNT" /> पैकी <ph name="NETWORK_INDEX" /> नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />%, तपशील</translation>
 <translation id="6856623341093082836">आपल्या टचस्क्रीनची अचूकता सेट करा आणि समायोजित करा</translation>
+<translation id="6857145580237920905">Powerwash करण्यापूर्वी eSIM प्रोफाइल काढून टाका</translation>
 <translation id="6857699260879628349">कॉंफिगरेशन माहिती मिळवा</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> सेकंद</translation>
 <translation id="6860097299815761905">प्रॉक्सी सेटिंग्ज...</translation>
@@ -5914,6 +5926,7 @@
 <translation id="7506541170099744506">एंटरप्राइझ व्यवस्थापनासाठी आपल्या <ph name="DEVICE_TYPE" /> ची यशस्वीरित्या नोंदणी केली गेली.</translation>
 <translation id="7507207699631365376">या पुरवठादाराचे <ph name="BEGIN_LINK" />गोपनीयता धोरण<ph name="END_LINK" /> पहा</translation>
 <translation id="7507930499305566459">स्थिती प्रतिसादकर्ता सर्टिफिकेट</translation>
+<translation id="7509246181739783082">तुमच्या ओळखीची पडताळणी करा</translation>
 <translation id="7513029293694390567">स्टोअर क्रेडेंशियल वापरून वेबसाइटवर आपोआप साइन इन करा. अक्षम केले असल्यास, वेबसाइटवर साइन इन करण्यापूर्वी प्रत्येकवेळी तुम्हाला पुष्टीकरणासाठी विचारले जाईल.</translation>
 <translation id="7514239104543605883">तुमच्या डिव्हाइसवर कॉपी करा</translation>
 <translation id="7514365320538308">डाउनलोड करा</translation>
@@ -6444,7 +6457,6 @@
 <translation id="8061091456562007989">ते पहिल्यासारखे करा</translation>
 <translation id="8061991877177392872">तुम्ही Assistant सोबत Voice Match दुसर्‍या डिव्हाइसवर आधीच सेट केले आहे असे दिसते. या डिव्हाइसवर व्हॉइस मॉडेल तयार करण्यासाठी ही मागील रेकॉर्डिंग वापरली गेली.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{कागदाचे एक पत्रक}other{कागदाची {COUNT} पत्रके}}</translation>
-<translation id="8062879968880283306">डिव्हाइसचा कॅमेरा वापरून QR कोड स्कॅन करा किंवा तुमच्या वाहकाने दिलेला अ‍ॅक्टिव्हेशन कोड एंटर करा.</translation>
 <translation id="8063235345342641131">डीफॉल्ट हिरवा अवतार</translation>
 <translation id="8063535366119089408">फाइल पहा</translation>
 <translation id="8064279191081105977">गट <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6865,7 +6877,6 @@
 <translation id="8551588720239073785">तारीख आणि वेळ सेटिंग्ज</translation>
 <translation id="8553342806078037065">इतर लोक व्यवस्थापित करा</translation>
 <translation id="8554899698005018844">कोणतीही भाषा नाही</translation>
-<translation id="8555195867496021627">कोणत्याही eSIM प्रोफाइल उपलब्ध नाहीत. नवीन प्रोफाइल <ph name="BEGIN_LINK" />येथे<ph name="END_LINK" /> डाउनलोड करा.</translation>
 <translation id="8557022314818157177">तुमचे फिंगरप्रिंट कॅप्चर होईपर्यंत तुमच्या सिक्युरिटी कीला स्पर्श करत राहा</translation>
 <translation id="8557930019681227453">मॅनिफेस्ट</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Open All in New Window}=1{नवीन विंडोमध्ये उघडा}other{सर्व ({COUNT}) नवीन विंडोमध्ये उघडा}}</translation>
@@ -7045,7 +7056,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" /> पैकी <ph name="NETWORK_INDEX" /> नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />%, तुमच्या अ‍ॅडमिनिस्ट्रेटरने व्यवस्थापित केलेले, कनेक्ट करा</translation>
 <translation id="8746654918629346731">तुम्ही आधीच "<ph name="EXTENSION_NAME" />" ची विनंती केलेली आहे</translation>
 <translation id="874689135111202667">{0,plural, =1{या साइटवर एक फाइल अपलोड करायची?}other{या साइटवर # फाइल अपलोड करायच्या?}}</translation>
-<translation id="8749556627204742888">तुम्ही हे नेटवर्क या डिव्हाइसच्या इतर वापरकर्त्यांसोबत शेअर करत आहात.</translation>
 <translation id="8749805710397399240">तुमची स्क्रीन कास्ट करू शकत नाही. सिस्‍टम प्राधान्ये यामध्ये स्क्रीन रेकॉर्डिंग परवानगी तपासा.</translation>
 <translation id="8749863574775030885">अज्ञात विक्रेत्याकडील USB डिव्हाइस ॲक्सेस करा</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ला सिरीअल पोर्टशी कनेक्ट करायचे आहे</translation>
@@ -7107,7 +7117,6 @@
 <translation id="8808744862003883508">या पेजवर तुम्ही Chrome मध्ये इंस्टॉल केलेली सर्व एक्स्टेंशन पाहू शकता.</translation>
 <translation id="8809147117840417135">फिकट टील</translation>
 <translation id="8811862054141704416">Crostini मायक्रोफोन अ‍ॅक्सेस</translation>
-<translation id="8812552797690463522">हे नेटवर्क तुमच्यासोबत शेअर केलेले आहे.</translation>
 <translation id="8812593354822910461">तसेच ब्राउझिंग डेटा (<ph name="URL" />) साफ करा ज्यामुळे तुम्ही <ph name="DOMAIN" /> वरून साइन आउट व्हाल. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">मला नंतर आठवण करून द्या</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> मध्ये साइन इन करू शकत नाही</translation>
@@ -7320,7 +7329,6 @@
 <translation id="9021662811137657072">व्हायरस आढळला</translation>
 <translation id="902236149563113779">गेम किंवा पूर्वसूचना दिशानिर्देश यांसारख्या AR वैशिष्ट्यांसाठी साइट सामान्यपणे तुमच्या कॅमेर्‍याचे स्थान ट्रॅक करतात</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> या कॉंप्युटरवर हे खाते आधीपासून वापरत आहे.</translation>
-<translation id="9023009238991294202">या डिव्हाइसचे इतर वापरकर्ते हे नेटवर्क वापरू शकतात.</translation>
 <translation id="9023015617655685412">हा टॅब बुकमार्क करा…</translation>
 <translation id="9023909777842748145">हे वैशिष्ट्य बंद केल्यामुळे सिस्टम अपडेट आणि सुरक्षिततेसारख्या अत्यावश्यक सेवांसाठी लागणारी माहिती पाठवण्याच्या तुमच्या डिव्हाइसच्या क्षमतेवर परिणाम होत नाही.</translation>
 <translation id="9024127637873500333">&amp;नवीन टॅबमध्ये उघडा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 53f5c253..77331c9 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Pulihkan halaman permulaan lalai?</translation>
 <translation id="1388253969141979417">Dibenarkan untuk menggunakan mikrofon anda</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> akan dimulakan semula apabila kemaskinian selesai.</translation>
-<translation id="138900021244932468">Tiada profil dijumpai. Untuk menyediakan rangkaian baharu, imbas kod QR menggunakan kamera peranti atau masukkan kod pengaktifan yang disediakan oleh pembawa anda.</translation>
 <translation id="139013308650923562">Dibenarkan untuk menggunakan fon yang dipasang pada peranti anda</translation>
 <translation id="1390548061267426325">Buka sebagai Tab Biasa</translation>
 <translation id="1393283411312835250">Matahari dan awan</translation>
@@ -5929,6 +5928,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> anda berjaya didaftarkan untuk pengurusan perusahaan.</translation>
 <translation id="7507207699631365376">Lihat <ph name="BEGIN_LINK" />dasar privasi<ph name="END_LINK" /> penyedia ini</translation>
 <translation id="7507930499305566459">Status Pembalas Sijil</translation>
+<translation id="7509246181739783082">Sahkan identiti anda</translation>
 <translation id="7513029293694390567">Log masuk secara automatik ke tapak web menggunakan bukti kelayakan yang disimpan. Jika dilumpuhkan, anda akan diminta memberikan pengesahan setiap kali sebelum mengelog masuk ke tapak web.</translation>
 <translation id="7514239104543605883">Salin ke peranti anda</translation>
 <translation id="7514365320538308">Muat Turun</translation>
@@ -6461,7 +6461,6 @@
 <translation id="8061091456562007989">Tukar kepada asal</translation>
 <translation id="8061991877177392872">Nampaknya anda telah pun menyediakan Voice Match dengan Assistant pada peranti lain. Rakaman terdahulu ini telah digunakan untuk membuat model suara pada peranti ini.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 helai kertas}other{{COUNT} helai kertas}}</translation>
-<translation id="8062879968880283306">Imbas kod QR menggunakan kamera peranti atau masukkan kod pengaktifan yang disediakan oleh pembawa anda.</translation>
 <translation id="8063235345342641131">Avatar hijau lalai</translation>
 <translation id="8063535366119089408">Lihat fail</translation>
 <translation id="8064279191081105977">Kumpulan <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6883,7 +6882,6 @@
 <translation id="8551588720239073785">Tetapan tarikh dan masa</translation>
 <translation id="8553342806078037065">Urus orang lain</translation>
 <translation id="8554899698005018844">Tiada bahasa</translation>
-<translation id="8555195867496021627">Tiada profil eSIM tersedia. Muat turun profil baharu <ph name="BEGIN_LINK" />di sini.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Teruskan menyentuh kunci keselamatan anda sehingga cap jari anda disimpan</translation>
 <translation id="8557930019681227453">Manifes</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Buka Semua dalam Tetingkap &amp;Baharu}=1{Buka dalam &amp;Tetingkap Baharu}other{Buka Semua ({COUNT}) dalam Tetingkap &amp;Baharu}}</translation>
@@ -7063,7 +7061,6 @@
 <translation id="8743164338060742337">Rangkaian <ph name="NETWORK_INDEX" /> daripada <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" />%, Diurus oleh Pentadbir anda, Sambung</translation>
 <translation id="8746654918629346731">Anda sudah meminta "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Muat naik satu fail ke tapak ini?}other{Muat naik # fail ke tapak ini?}}</translation>
-<translation id="8749556627204742888">Anda berkongsi rangkaian ini dengan pengguna lain bagi peranti ini.</translation>
 <translation id="8749805710397399240">Tidak dapat menghantar skrin anda. Semak kebenaran Perakam Skrin dalam Pilihan Sistem.</translation>
 <translation id="8749863574775030885">Akses peranti USB daripada vendor yang tidak diketahui</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> mahu menyambung ke port siri</translation>
@@ -7125,7 +7122,6 @@
 <translation id="8808744862003883508">Pada halaman ini, anda dapat melihat semua sambungan yang dipasang pada Chrome.</translation>
 <translation id="8809147117840417135">Hijau kebiruan cerah</translation>
 <translation id="8811862054141704416">Akses mikrofon Crostini</translation>
-<translation id="8812552797690463522">Rangkaian ini dikongsi dengan anda.</translation>
 <translation id="8812593354822910461">Kosongkan data semakan imbas (<ph name="URL" />) juga, yang akan melog anda keluar daripada <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Ingatkan saya kemudian</translation>
 <translation id="8813698869395535039">Tidak dapat mengelog masuk ke <ph name="USERNAME" /></translation>
@@ -7337,7 +7333,6 @@
 <translation id="9021662811137657072">Virus dikesan</translation>
 <translation id="902236149563113779">Tapak biasanya menjejak kedudukan kamera anda untuk ciri AR, seperti permainan atau arah pandu</translation>
 <translation id="9022847679183471841">Akaun ini telah digunakan pada komputer ini oleh <ph name="AVATAR_NAME" /></translation>
-<translation id="9023009238991294202">Pengguna lain peranti ini boleh menggunakan rangkaian ini.</translation>
 <translation id="9023015617655685412">Tanda tab ini...</translation>
 <translation id="9023909777842748145">Tindakan mematikan ciri ini tidak menjejaskan keupayaan peranti anda menghantar maklumat yang diperlukan untuk perkhidmatan penting seperti kemas kini sistem dan keselamatan.</translation>
 <translation id="9024127637873500333">&amp;Buka dalam Tab Baharu</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index 0a28b5e..b9bdf17 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">စဖွင့်စာမျက်နှာကို မူလအတိုင်း ပြန်ထားလိုပါသလား။</translation>
 <translation id="1388253969141979417">သင့်မိုက်ခရိုဖုန်း သုံးရန် ခွင့်ပြုထားသည်</translation>
 <translation id="1388728792929436380">အပ်ဒိတ်များလုပ်ပြီးသည့်အခါ <ph name="DEVICE_TYPE" /> ပြန်လည်စတင်မည်။</translation>
-<translation id="138900021244932468">ပရိုဖိုင်များ ရှာမတွေ့ပါ။ ကွန်ရက်အသစ် စနစ်ထည့်သွင်းရန် စက်ကင်မရာကိုသုံး၍ QR ကုဒ်ကို စကင်ဖတ်ပါ (သို့) သင်၏မိုဘိုင်းဖုန်းကုမ္ပဏီက ပို့ထားသည့် စသုံးရန်ကုဒ်ကို ထည့်ပါ။</translation>
 <translation id="139013308650923562">သင့်ကိရိယာတွင်ထည့်သွင်းထားသော ဖောင့်များသုံးရန် ခွင့်ပြုထားသည်</translation>
 <translation id="1390548061267426325">ပုံမှန် တပ်ဖ် အနေဖြင့် ဖွင့်မည်</translation>
 <translation id="1393283411312835250">နေနှင့် မိုးတိမ်</translation>
@@ -5925,6 +5924,7 @@
 <translation id="7506541170099744506">သင့် <ph name="DEVICE_TYPE" /> ကို လုပ်ငန်းစီမံခန့်ခွဲမှုအတွက် အောင်မြင်စွာ လျှောက်ထားပြီးပါပြီ။</translation>
 <translation id="7507207699631365376">ဤဝန်ဆောင်မှုပေးသူ၏ <ph name="BEGIN_LINK" />ပုဂ္ဂိုလ်ရေးဆိုင်ရာ မူဝါဒ<ph name="END_LINK" /> ကို ကြည့်ရန်</translation>
 <translation id="7507930499305566459">အခြေနေ တုံ့ပြန်သူ အသိမှတ်ပြုလက်မှတ်</translation>
+<translation id="7509246181739783082">သင်၏အထောက်အထားကို အတည်ပြုပါ</translation>
 <translation id="7513029293694390567">သိမ်းဆည်းထားသည့် အထောက်အထားများကိုအသုံးပြုပြီး ဝဘ်ဆိုက်များသို့ အလိုအလျောက် လက်မှတ်ထိုးဝင်ပါ။ ဤဝန်ဆောင်မှုကို ပိတ်ထားပါက ဝဘ်ဆိုက်တစ်ခုသို့ လက်မှတ်ထိုး ဝင်သည့်အခါတိုင်း အတည်ပြုချက် တောင်းပါလိမ့်မည်။</translation>
 <translation id="7514239104543605883">သင့်စက်သို့ မိတ္တူကူးရန်</translation>
 <translation id="7514365320538308">ဒေါင်းလုဒ်</translation>
@@ -6456,7 +6456,6 @@
 <translation id="8061091456562007989">ပြန်ပြောင်းရန်</translation>
 <translation id="8061991877177392872">နောက်စက်တစ်ခုတွင် Assistant သုံး၍ Voice Match ကို စနစ်ထည့်သွင်းပြီးပုံ ရပါသည်။ ဤစက်တွင် အသံနမူနာပြုလုပ်ရန် ယခင်အသံသွင်းချက်များကို အသုံးပြုထားသည်။</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{စာရွက် 1 ရွက်}other{စာရွက် {COUNT} ရွက်}}</translation>
-<translation id="8062879968880283306">စက်ကင်မရာကိုသုံး၍ QR ကုဒ်ကို စကင်ဖတ်ပါ (သို့) သင်၏ဝန်ဆောင်မှုပေးသူက ပို့ထားသည့် စသုံးရန်ကုဒ်ကို ထည့်ပါ။</translation>
 <translation id="8063235345342641131">မူရင်းအစိမ်းရောင်ချန်နယ်ပုံ</translation>
 <translation id="8063535366119089408">ဖိုင်ကို ကြည့်ရန်</translation>
 <translation id="8064279191081105977">အုပ်စု <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6877,7 +6876,6 @@
 <translation id="8551588720239073785">ရက်စွဲနှင့် အချိန်ဆက်တင်များ</translation>
 <translation id="8553342806078037065">အခြားလူများကို စီမံခန့်ခွဲရန်</translation>
 <translation id="8554899698005018844">ဘာသာစကား ရွေးမထားပါ</translation>
-<translation id="8555195867496021627">ရနိုင်သော eSIM ပရိုဖိုင်များ မရှိပါ။ <ph name="BEGIN_LINK" />ဤနေရာတွင်<ph name="END_LINK" /> ပရိုဖိုင်အသစ်ကို ဒေါင်းလုဒ်လုပ်ပါ။</translation>
 <translation id="8557022314818157177">သင်၏လက်ဗွေကို ထည့်ပြီးသည်အထိ သင်၏လုံခြုံရေးကီးကို ဆက်ထိပေးပါ</translation>
 <translation id="8557930019681227453">ကြေညာစာတမ်း</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{အားလုံးကို &amp;ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်}=1{&amp;ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်}other{({COUNT}) ခုလုံးကို &amp;ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်}}</translation>
@@ -7057,7 +7055,6 @@
 <translation id="8743164338060742337">ကွန်ရက် <ph name="NETWORK_COUNT" /> ခုအနက်မှ <ph name="NETWORK_INDEX" />၊ <ph name="NETWORK_NAME" />၊ <ph name="NETWORK_PROVIDER_NAME" /> လိုင်းဆွဲအား <ph name="SIGNAL_STRENGTH" />%၊ သင့် 'စီမံခန့်ခွဲသူ' က ကြီးကြပ်ထားသည်၊ ချိတ်ဆက်ရန်</translation>
 <translation id="8746654918629346731">"<ph name="EXTENSION_NAME" />" ကို တောင်းဆိုပြီးဖြစ်သည်</translation>
 <translation id="874689135111202667">{0,plural, =1{ဤဝဘ်ဆိုက်သို့ ဖိုင်တစ်ခုကို အပ်လုဒ်လုပ်လိုပါသလား။}other{ဤဝဘ်ဆိုက်သို့ ဖိုင် # ခုကို အပ်လုဒ်လုပ်လိုပါသလား။}}</translation>
-<translation id="8749556627204742888">သင်သည် ယခုကွန်ရက်ကို ဤစက်၏ အခြားအသုံးပြုသူများအား မျှဝေထားပါသည်။</translation>
 <translation id="8749805710397399240">သင့်ဖန်သားပြင်ကို ကာစ်လုပ်၍မရပါ။ 'စနစ်သတ်မှတ်ချက်များ' တွင် 'ဖန်သားပြင်ရိုက်ကူးမှု' ခွင့်ပြုချက်ကို စစ်ပါ။</translation>
 <translation id="8749863574775030885">အမည်မသိပစ္စည်းရောင်းသူထံမှ USB စက်ပစ္စည်းများကို သုံးစွဲပါ</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> က အမှတ်စဉ်ပို့တ်ကို ချိတ်ဆက်လိုသည်</translation>
@@ -7119,7 +7116,6 @@
 <translation id="8808744862003883508">ဤစာမျက်နှာတွင် Chrome အတွင်း ထည့်သွင်းထားသည့် နောက်ဆက်တွဲများအားလုံးကို မြင်နိုင်သည်။</translation>
 <translation id="8809147117840417135">စိမ်းပြာဖျော့</translation>
 <translation id="8811862054141704416">Crostini မိုက်ခရိုဖုန်း သုံးခွင့်</translation>
-<translation id="8812552797690463522">ဤကွန်ရက်ကို သင့်အား မျှဝေထားသည်။</translation>
 <translation id="8812593354822910461">ဖွင့်ကြည့်ထားသည့် မှတ်တမ်းဒေတာ (<ph name="URL" />) ကိုလည်း ရှင်းထုတ်မည်ဖြစ်ပြီး <ph name="DOMAIN" /> မှ ထွက်သွားပါမည်။ <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">နောက်မှ သတိပေးရန်</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> သို့ လက်မှတ်ထိုးဝင်၍ မရပါ</translation>
@@ -7331,7 +7327,6 @@
 <translation id="9021662811137657072">ဗိုင်းရပ်စ် ရှာတွေ့ခဲ့</translation>
 <translation id="902236149563113779">ဂိမ်းများ (သို့) ကြိုတင်သတိပေး ညွှန်ကြားချက်များကဲ့သို့ AR ဝန်ဆောင်မှုများအတွက် ဝဘ်ဆိုက်များက သင့်ကင်မရာအနေအထားကို ခြေရာခံလေ့ရှိသည်</translation>
 <translation id="9022847679183471841">ဤအကောင့်ကို <ph name="AVATAR_NAME" /> က ဤကွန်ပျူတာပေါ်တွင် အသုံးပြုပြီးသားဖြစ်သည်။</translation>
-<translation id="9023009238991294202">ဤစက်ပစ္စည်း၏ အခြားအသုံးပြုသူများသည် ဤကွန်ရက်ကို သုံးနိုင်ပါသည်။</translation>
 <translation id="9023015617655685412">ဤတဘ်၏လိပ်စာကို မှတ်ခြင်း...</translation>
 <translation id="9023909777842748145">ဤဝန်ဆောင်မှုကို ပိတ်ခြင်းအားဖြင့် စနစ်အပ်ဒိတ်များနှင့် လုံခြုံရေးကဲ့သို့သော အရေးကြီးသည့် အချက်အလက်များကို သင့်စက်ပစ္စည်းက ပို့ခြင်းမပို့ခြင်းအပေါ် သက်ရောက်မှု မရှိပါ။</translation>
 <translation id="9024127637873500333">&amp;တဘ် အသစ်ထဲမှာ ဖွင့်</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 64decd6..884f802 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -354,7 +354,6 @@
 <translation id="138784436342154190">डिफल्ट सुरुवात पृष्ठलाई पुनर्स्थापना गर्ने हो?</translation>
 <translation id="1388253969141979417">तपाईंको माइक्रोफोन प्रयोग गर्ने अनुमति दिइएका साइटहरू</translation>
 <translation id="1388728792929436380">अपडेट पूरा भएपछि <ph name="DEVICE_TYPE" /> रिस्टार्ट हुने छ।</translation>
-<translation id="138900021244932468">कुनै पनि प्रोफाइल भेटिएन। नयाँ नेटवर्क सेटअप गर्न डिभाइसको क्यामेरा प्रयोग गरी QR कोड स्क्यान गर्नुहोस् वा आफ्नो मोबाइल सेवा प्रदायकले उपलब्ध गराएको सक्रिय गर्ने कोड हाल्नुहोस्।</translation>
 <translation id="139013308650923562">तपाईंको डिभाइसमा इन्स्टल गरिएका फन्ट प्रयोग गर्न दिइएका साइटहरू</translation>
 <translation id="1390548061267426325">नियमित ट्याबको रूपमा खोल्नुहोस्</translation>
 <translation id="1393283411312835250">घाम र बादल</translation>
@@ -495,7 +494,7 @@
 <translation id="1526335046150927198">टचप्याड स्क्रोल हुने गति बढाउने सुविधा सक्षम पार्नुहोस्</translation>
 <translation id="1526560967942511387">शीर्षक नभएको कागजात</translation>
 <translation id="1527336312600375509">मनिटर रिफ्रेस हुने दर</translation>
-<translation id="152913213824448541">नजिकैका यन्त्रसँग सेयर गर्ने सुविधामा भएको सम्पर्क ठेगाना नामक विकल्प</translation>
+<translation id="152913213824448541">नजिकैका डिभाइससँग सेयर गर्ने सुविधामा भएको सम्पर्क ठेगाना नामक विकल्प</translation>
 <translation id="1529891865407786369">पावरको स्रोत</translation>
 <translation id="1530838837447122178">माउस र टचप्याड यन्त्र सम्बन्धी सेटिङहरू खोल्नुहोस्</translation>
 <translation id="1531275250079031713">'नयाँ Wi-Fi थप्नुहोस्' नामक संवाद देखाउनुहोस्</translation>
@@ -512,6 +511,7 @@
 <translation id="1545775234664667895">स्थापित विषयवस्तु "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">यस विस्तारले तपाईँले गृहबटन क्लिक गर्दा देखाइएको पृष्ठलाई परिवर्तन गरेको छ।</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> एउटा <ph name="EXTENSION_TYPE" /> स्थापना गर्न चाहन्छन् जसले निम्न काम गर्न सक्छ:</translation>
+<translation id="1547808936554660006">म डिभाइस पावरवास गर्दा त्यसमा इन्स्टल गरिएका eSIM प्रोफाइलहरू हट्ने छैनन् भन्ने कुरा बुझ्छु</translation>
 <translation id="1549275686094429035">ARC सक्षम पारिएको छ</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> ले <ph name="VOLUME_NAME" /> पहुँच गर्न चाहन्छ। यसले तपाईँका फाइलहरू परिमार्जन गर्न वा मेटाउन सक्छ।</translation>
 <translation id="1552301827267621511">"<ph name="EXTENSION_NAME" />" एक्सटेन्सनले सर्च इन्जिन परिवर्तन गरी <ph name="SEARCH_PROVIDER_DOMAIN" /> बनाएको छ</translation>
@@ -546,6 +546,7 @@
 <translation id="1588438908519853928">सामान्य</translation>
 <translation id="158849752021629804">गृह नेटवर्क आवश्यक छ</translation>
 <translation id="1588870296199743671">यस मार्फत लिङ्क खोल्नुहोस्...</translation>
+<translation id="1588919647604819635">दायाँ क्लिक कार्ड</translation>
 <translation id="1589055389569595240">हिज्जे र व्याकरण देखाउनुहोस्</translation>
 <translation id="1591679663873027990">Parallels Desktop लाई USB यन्त्रहरू प्रयोग गर्ने अनुमति दिनुहोस्। USB झिकिसकेपछि Parallels Desktop ले उक्तUSB याद राख्ने छैन।</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> ले ADB डिबग प्रक्रिया अफ गरेको छ। यसले गर्दा तपाईंको <ph name="DEVICE_TYPE" /> रिसेट हुने छ। डिभाइस रिस्टार्ट गर्नुअघि आफ्ना फाइलहरू ब्याकअप गर्नुहोस्।</translation>
@@ -608,7 +609,7 @@
 <translation id="1641113438599504367">सुरक्षित ब्राउजिङ</translation>
 <translation id="1642494467033190216">अन्य डिबगिङ सुविधाहरू सक्षम गर्नुअघि rootfs संरक्षण हटाउनु र रिस्टार्ट गर्नु आवश्यक छ।</translation>
 <translation id="1643072738649235303">SHA-1 सहितको X9.62 ECDSA हस्ताक्षर</translation>
-<translation id="1643921258693943800">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा प्रयोग गर्न ब्लुटुथ र Wi-Fi अन गर्नुहोस्</translation>
+<translation id="1643921258693943800">नजिकैका डिभाइससँग सेयर गर्ने सुविधा प्रयोग गर्न ब्लुटुथ र Wi-Fi अन गर्नुहोस्</translation>
 <translation id="1644574205037202324">इतिहास</translation>
 <translation id="1645516838734033527">तपाईंको <ph name="DEVICE_TYPE" /> सुरक्षित राख्न Smart Lock का लागि तपाईंको फोनमा एक स्क्रिन लक अनिवार्य छ।</translation>
 <translation id="1646982517418478057">कृपया यस प्रमाणपत्रलाई इन्क्रिप्ट गर्न कुनै पासवर्ड प्रविष्टि गर्नुहोस्</translation>
@@ -616,7 +617,7 @@
 <translation id="164936512206786300">ब्लुटुथ यन्त्रको जोडा हटाउनुहोस्</translation>
 <translation id="1650371550981945235">इनपुटका विकल्पहरू देखाउनुहोस्</translation>
 <translation id="1651008383952180276">तपाईंले अनिवार्य रूपले उही पासफ्रेज दुई पटक प्रविष्ट गर्नुपर्छ</translation>
-<translation id="1652326691684645429">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा सक्षम पार्नुहोस्</translation>
+<translation id="1652326691684645429">नजिकैका डिभाइससँग सेयर गर्ने सुविधा सक्षम पार्नुहोस्</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{प्रिन्टर Goolge क्लाउड प्रिन्टमा थप्नुहोस् ताकि तपाईँले जहाँबाट पनि प्रिन्ट गर्न सक्नुहुन्छ।}other{ # प्रिन्टरहरू Goolge क्लाउड प्रिन्टमा थप्नुहोस् ताकि तपाईँले जहाँबाट पनि प्रिन्ट गर्न सक्नुहुन्छ।}}</translation>
 <translation id="1653631694606464309">तपाईं निश्चित प्रकारका फाइलहरू आफूले चाहेको ह्यान्ड्लरमार्फत खोलेर तिनमा काम गर्न सक्नुहोस् भन्नाका खातिर वेब एपहरूले सामान्यतया निश्चित प्रकारका फाइलहरू खोल्ने अनुमति माग्छन्। उदाहरणका लागि तपाईं डकुमेन्टहरू आफूले चाहेको वर्ड प्रोसेसरमा खोल्न सक्नुहुन्छ</translation>
 <translation id="1656528038316521561">पृष्ठभूमिको अपारदर्शिता</translation>
@@ -981,6 +982,7 @@
 
 तपाईं आफ्नो यन्त्रमा Family Link एप स्थापना गरेर यो खाताको सेटिङ व्यवस्थित गर्न सक्नुहुन्छ।  हामीले इमेलमार्फत तपाईंलाई निर्देशनहरू पठाएका छौँ।</translation>
 <translation id="2040460856718599782">ओहो! तपाईं प्रमाणीकरण गर्न प्रयास गर्दा केही गल्ती भयो। आफ्नो साइन इन प्रमाणहरू डबल जाँच गरी फेरि प्रयास गर्नुहोस्।</translation>
+<translation id="2042279886444479655">सक्रिय प्रोफाइलहरू</translation>
 <translation id="2044014337866019681">कृपया तपाईं यो सत्र अनलक गर्न <ph name="ACCOUNT" /> पुष्टि गर्दै हुनुहुन्छ भन्ने कुरा सुनिश्चित गर्नुहोस्।</translation>
 <translation id="2044023416777079300">मोडेम दर्ता गरिएको छैन</translation>
 <translation id="204497730941176055">Microsoft प्रमाणपत्र ट्याम्प्लेट नाम</translation>
@@ -1319,6 +1321,7 @@
 <translation id="2395616325548404795">तपाईँको <ph name="DEVICE_TYPE" /> लाई सफलतापूर्वक इन्टरप्राइज व्यवस्थापनमा दर्ता गरिएको छ तर यसको सम्पत्ति र स्थान जानकारी पठाउन सकिएन। कृपया यस यन्त्रको तपाईँको प्रशासकीय कन्सोलबाट यो जानकारी म्यानुअल तरिकाले प्रविष्टि गर्नुहोस्।</translation>
 <translation id="2396387085693598316">तपाईंका प्रशासकले "<ph name="EXTENSION_NAME" />" माथि रोक लगाउनुभएको छ</translation>
 <translation id="2396783860772170191">चार अङ्कको पिन (००००-९९९९) प्रविष्टि गर्नुहोस्</translation>
+<translation id="2398546389094871088">तपाईंले आफ्नो डिभाइस पावरवास गर्नुभयो भने तपाईंका eSIM प्रोफाइलहरू हट्ने छैनन्। यी प्रोफाइलहरू म्यानुअल रूपमा हटाउन <ph name="LINK_BEGIN" />मोबाइल सेटिङ<ph name="LINK_END" />मा जानुहोस्।</translation>
 <translation id="2399699884460174994">सूचनाहरू अन गरिए</translation>
 <translation id="2399939490305346086">सुरक्षा साँचोको साइन इनसम्बन्धी डेटा</translation>
 <translation id="2400664245143453337">तत्काल अद्यावधिक गर्न आवश्यक छ</translation>
@@ -1512,7 +1515,7 @@
 <translation id="2612676031748830579">कार्ड नम्बर</translation>
 <translation id="2616366145935564096">पढ्नुहोस् र आफ्नो डेटा <ph name="WEBSITE_1" /> मा परिवर्तन गर्नुहोस्</translation>
 <translation id="2617342710774726426">SIM कार्ड लक गरिएको छ</translation>
-<translation id="2618797463720777311">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा सेटअप गर्नुहोस्</translation>
+<translation id="2618797463720777311">नजिकैका डिभाइससँग सेयर गर्ने सुविधा सेटअप गर्नुहोस्</translation>
 <translation id="2619761439309613843">दैनिक पुनः ताजा गर्नुहोस्</translation>
 <translation id="2620215283731032047"><ph name="FILE_NAME" /> सुरक्षित रूपमा डाउनलोड गर्न सकिएन।</translation>
 <translation id="2620436844016719705">सिस्टम</translation>
@@ -1736,6 +1739,7 @@
 <translation id="2844809857160214557">प्रिन्टसम्बन्धी कार्यहरू हेर्नुहोस् र मिलाउनुहोस्</translation>
 <translation id="2845382757467349449">बुकमार्कहरू पट्टी सँधै देखाउनुहोस्</translation>
 <translation id="284805635805850872">हानिकारक सफ्टवेयर हटाउने हो?</translation>
+<translation id="2849035674501872372">खोज्नुहोस्</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">सफाइ गर्न सकिएन</translation>
 <translation id="2849936225196189499">नाजुक</translation>
@@ -1848,7 +1852,7 @@
 <translation id="2962131322798295505">वालपेपर चयनकर्ता</translation>
 <translation id="2963151496262057773">निम्न प्लगइनले जवाफहीन छ: <ph name="PLUGIN_NAME" /> के तपाईं यसलाई बन्द गर्न चाहनुहुन्छ?</translation>
 <translation id="2964193600955408481">Wi-Fi असक्षम गर्नुहोस्</translation>
-<translation id="2964245677645334031">नजिकैका यन्त्रसँग सेयर गर्ने सुविधामा भएको पहुँचसम्बन्धी सेटिङ</translation>
+<translation id="2964245677645334031">नजिकैका डिभाइससँग सेयर गर्ने सुविधामा भएको पहुँचसम्बन्धी सेटिङ</translation>
 <translation id="2966216232069818096">तपाईंलाई मद्दत गर्ने प्रयोजनका लागि सहायकलाई तपाईंको डिभाइसको स्क्रिनमा भएको जानकारी प्रयोग गर्न दिनुहोस्</translation>
 <translation id="2966937470348689686">Android सम्बन्धी प्राथमिकताहरूको व्यवस्थापन गर्नुहोस्</translation>
 <translation id="2972581237482394796">&amp;फेरि गर्नुहोस्</translation>
@@ -1910,7 +1914,7 @@
 <translation id="3022978424994383087">मैले बुझिनँ।</translation>
 <translation id="3023464535986383522">सेलेक्ट टु स्पिक सुविधा</translation>
 <translation id="3024374909719388945">24-घण्टे घडी प्रयोग गर्नुहोस</translation>
-<translation id="3027296729579831126">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा सक्रिय गर्नुहोस्</translation>
+<translation id="3027296729579831126">नजिकैका डिभाइससँग सेयर गर्ने सुविधा सक्रिय गर्नुहोस्</translation>
 <translation id="3029466929721441205">सेल्फमा स्टाइलसका उपकरणहरू देखाइयोस्</translation>
 <translation id="3030311804857586740">{NUM_DAYS,plural, =1{<ph name="MANAGER" /> का अनुसार तपाईंले आजै अपडेट डाउनलोड गर्नु पर्ने हुन्छ। तपाईं इन्टरनेटमा कनेक्ट भएपछि अपडेट स्वतः डाउनलोड हुने छ।}other{<ph name="MANAGER" /> का अनुसार तपाईंले म्याद सकिनुअघि नै अपडेट डाउनलोड गर्नु पर्ने हुन्छ। तपाईं इन्टरनेटमा कनेक्ट भएपछि अपडेट स्वतः डाउनलोड हुने छ।}}</translation>
 <translation id="3031417829280473749">एजेन्ट एक्स</translation>
@@ -2048,6 +2052,7 @@
 <translation id="3189187154924005138">ठुलो कर्सर</translation>
 <translation id="3190558889382726167">पासवर्ड सेभ गरियो</translation>
 <translation id="3192947282887913208">अडियो फाइलहरू</translation>
+<translation id="3197453258332670132">दायाँ क्लिक गर्दा वा केही बेरसम्म थिच्दा मैले चयन गरेका पाठसँग सम्बन्धित जानकारी देखाइयोस्</translation>
 <translation id="3199127022143353223">सर्भरहरू</translation>
 <translation id="3201422919974259695">उपलब्ध USB यन्त्रहरू यहाँ देखिने छन्।</translation>
 <translation id="3202131003361292969">पथ</translation>
@@ -2069,6 +2074,7 @@
 <translation id="3223531857777746191">रिसेट गर्ने बटन</translation>
 <translation id="3225084153129302039">डिफल्ट बैजनी अवतार</translation>
 <translation id="3225319735946384299">कोड साइनिङ</translation>
+<translation id="3226487301970807183">बायाँतिर एलाइन गरिएको साइड प्यानल टगल गर्नुहोस्</translation>
 <translation id="3227137524299004712">माइक्रोफोन</translation>
 <translation id="3233271424239923319">Linux एप र फाइलहरू ब्याकअप गर्नुहोस्</translation>
 <translation id="3238192140106069382">यन्त्र कनेक्ट हुँदै छ र पुष्टि गरिँदै छ</translation>
@@ -2338,6 +2344,7 @@
 <translation id="3515983984924808886">रिसेट गर्ने कार्य पुष्टि गर्न आफ्नो सुरक्षा साँचो फेरि छुनुहोस्। सुरक्षा साँचोको PIN लगायत यस साँचोमा भण्डार गरिएका सबै जानकारी मेटाइने छन्।</translation>
 <translation id="3518985090088779359">स्वीकार र जारी</translation>
 <translation id="3519564332031442870">प्रिन्टको ब्याकइन्ड सेवा</translation>
+<translation id="3519938335881974273">पेजलाई निम्न रूपमा सेभ गर्नुहोस्...</translation>
 <translation id="3521606918211282604">डिस्कको आकार बदल्नुहोस्</translation>
 <translation id="3522088408596898827">डिस्कमा खाली ठाउँ अत्यन्त कम छ। डिस्कमा ठाउँ खाली गर्नुहोस् र फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="3524965460886318643">निर्यातसम्बन्धी क्रियाकलापहरू</translation>
@@ -2361,6 +2368,7 @@
 <translation id="3550593477037018652">सेलुलर नेटवर्क डिस्कनेक्ट गर्नुहोस्</translation>
 <translation id="3550915441744863158">Chrome स्वत: अपडेट हुन्छ त्यसैले तपाईंसँग सधै ताजा संस्करण हुन्छ।</translation>
 <translation id="3551320343578183772">ट्याब बन्द गर्नुहोस्</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">बाहिर निस्कदा खालि गरिएको</translation>
 <translation id="3554493885489666172"><ph name="PROFILE_NAME" /> ले तपाईंको डिभाइसको व्यवस्थापन गर्छ। एड्मिनहरू यस यन्त्रमा रहेका जुनसुकै प्रोफाइलमा भएका डेटा हेर्न तथा प्रयोग गर्न सक्छन्।</translation>
 <translation id="3555812735919707620">एक्सटेन्सन हटाउनुहोस्</translation>
@@ -2413,6 +2421,7 @@
 <translation id="3604713164406837697">वालपेपर परिवर्तन गर्नुहोस्</translation>
 <translation id="3605780360466892872">बटनडाउन</translation>
 <translation id="3608576286259426129">प्रयोगकर्ता छवि पूर्वावलोकन</translation>
+<translation id="3609277884604412258">द्रुत खोज</translation>
 <translation id="3610369246614755442">डकको पङ्खा मर्मत गर्न आवश्यक छ</translation>
 <translation id="361106536627977100">फ्ल्यास डाटा</translation>
 <translation id="3611655097742243705">थप एपहरू डाउनलोड गर्न Play स्टोरमा जानुहोस्</translation>
@@ -2595,7 +2604,7 @@
 <translation id="3792890930871100565">प्रिन्टरहरूको जडान विच्छेद गर्नुहोस्</translation>
 <translation id="3793395331556663376">फाइलसम्बन्धी अत्यधिक प्रणालीहरू खोलिए।</translation>
 <translation id="3793588272211751505">{NUM_DAYS,plural, =1{Chrome ले तपाईंको कम्प्युटरमा कुनै हानिकारक सफ्टवेयर भेट्टाएन • १ दिनअघि जाँच गरिएको}other{Chrome ले तपाईंको कम्प्युटरमा कुनै हानिकारक सफ्टवेयर भेट्टाएन • {NUM_DAYS} दिनअघि जाँच गरिएको}}</translation>
-<translation id="379500251094592809">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा प्रयोग गर्न दुवै यन्त्र अनलक गरिएका छन्, एकअर्काको नजिकै छन् र दुवैको ब्लुटुथ अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्। तपाईं आफ्ना सम्पर्क ठेगानाहरूको सूचीमा नभएको कुनै Chromebook सँग सेयर गर्दै हुनुहुन्छ भने त्यसमा 'नजिकैका यन्त्रमा फेला पर्ने' सुविधा अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस् (समय चयन गरेर वस्तुस्थिति क्षेत्र खोल्नुहोस् र त्यसपछि 'नजिकैका यन्त्रमा फेला पर्ने' सुविधा अन गर्नुहोस्) <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
+<translation id="379500251094592809">नजिकैका डिभाइससँग सेयर गर्ने सुविधा प्रयोग गर्न दुइटै डिभाइस अनलक गरिएका छन्, एकअर्काको नजिकै छन् र दुवैको ब्लुटुथ अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्। तपाईं आफ्ना सम्पर्क ठेगानाहरूको सूचीमा नभएको कुनै Chromebook सँग सेयर गर्दै हुनुहुन्छ भने त्यसमा 'नजिकैका यन्त्रमा फेला पर्ने' सुविधा अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस् (समय चयन गरेर वस्तुस्थिति क्षेत्र खोल्नुहोस् र त्यसपछि 'नजिकैका यन्त्रमा फेला पर्ने' सुविधा अन गर्नुहोस्) <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
 <translation id="379509625511193653">निष्क्रिय छ</translation>
 <translation id="3796648294839530037">मन पर्ने नेटवर्क:</translation>
 <translation id="3797739167230984533">तपाईंको सङ्गठनले तपाईंको <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> को व्यवस्थापन गर्छ<ph name="END_LINK" /></translation>
@@ -2683,7 +2692,7 @@
 <translation id="3873423927483480833">PIN हरू देखाउनुहोस्</translation>
 <translation id="3873915545594852654">ARC++ सम्बन्धी कुनै समस्या भयो।</translation>
 <translation id="3874164307099183178">Google सहायक सक्रिय गर्नुहोस्</translation>
-<translation id="3877075909000773256"><ph name="USER_NAME" /> को यन्त्रमा <ph name="USER_EMAIL" /> खाता प्रयोग गरी नजिकैका यन्त्रसँग सेयर गर्ने सुविधाका सेटिङ।</translation>
+<translation id="3877075909000773256"><ph name="USER_NAME" /> को यन्त्रमा <ph name="USER_EMAIL" /> खाता प्रयोग गरी नजिकैका डिभाइससँग सेयर गर्ने सुविधाका सेटिङ।</translation>
 <translation id="3879748587602334249">डाउनलोड म्यानेजर</translation>
 <translation id="3882165008614329320">क्यामेरा वा फाइलको विद्यमान भिडियो</translation>
 <translation id="3884152383786131369">एकभन्दा बढी भाषामा उपलब्ध वेब सामग्री यो सूचीको प्रयोग गर्न मिल्ने पहिलो भाषामा देखाइने छ। यी प्राथमिकताहरू तपाईंको ब्राउजरका सेटिङसँग सिंक गरिन्छन्। <ph name="BEGIN_LINK_LEARN_MORE" />थप जान्नुहोस्<ph name="END_LINK_LEARN_MORE" /></translation>
@@ -2849,9 +2858,9 @@
 <translation id="4047345532928475040">लागू हुँदैन</translation>
 <translation id="4047581153955375979">USB4</translation>
 <translation id="4047726037116394521">गृह स्क्रिनमा जानुहोस्</translation>
-<translation id="4049783682480068824">{COUNT,plural, =1{सम्पर्क सूचीमा भएको # जना व्यक्ति उपलब्ध हुनुहुन्न। नजिकैका यन्त्रसँग सेयर गर्ने सुविधा प्रयोग गरी उहाँसँग सेयर गर्न आफ्नो सम्पर्क सूचीमा उहाँको Google खातासँग सम्बद्ध इमेल ठेगाना हाल्नुहोस्।}other{सम्पर्क सूचीमा भएका # जना व्यक्ति उपलब्ध छैनन्। नजिकैका यन्त्रसँग सेयर गर्ने सुविधा प्रयोग गरी उनीहरूसँग सेयर गर्न आफ्नो सम्पर्क सूचीमा उनीहरूको Google खातासँग सम्बद्ध इमेल ठेगाना हाल्नुहोस्।}}</translation>
+<translation id="4049783682480068824">{COUNT,plural, =1{सम्पर्क सूचीमा भएको # जना व्यक्ति उपलब्ध हुनुहुन्न। नजिकैका डिभाइससँग सेयर गर्ने सुविधा प्रयोग गरी उहाँसँग सेयर गर्न आफ्नो सम्पर्क सूचीमा उहाँको Google खातासँग सम्बद्ध इमेल ठेगाना हाल्नुहोस्।}other{सम्पर्क सूचीमा भएका # जना व्यक्ति उपलब्ध छैनन्। नजिकैका डिभाइससँग सेयर गर्ने सुविधा प्रयोग गरी उनीहरूसँग सेयर गर्न आफ्नो सम्पर्क सूचीमा उनीहरूको Google खातासँग सम्बद्ध इमेल ठेगाना हाल्नुहोस्।}}</translation>
 <translation id="4050225813016893843">प्रमाणीकरण विधि</translation>
-<translation id="4050534976465737778">दुवै यन्त्र अनलक गरिएका छन्, एकअर्काको नजिकै छन् र दुवैको ब्लुटुथ अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्। तपाईं आफ्ना सम्पर्क ठेगानाहरूको सूचीमा नभएको कुनै Chromebook सँग सेयर गर्दै हुनुहुन्छ भने त्यसमा 'नजिकैका यन्त्रमा फेला पर्ने' सुविधा अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस् (वस्तुस्थिति क्षेत्र खोल्नुहोस् र त्यसपछि 'नजिकैका यन्त्रमा फेला पर्ने' सुविधा अन गर्नुहोस्)। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
+<translation id="4050534976465737778">दुइटै डिभाइस अनलक गरिएका छन्, एकअर्काको नजिकै छन् र दुवैको ब्लुटुथ अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्। तपाईं आफ्ना सम्पर्क ठेगानाहरूको सूचीमा नभएको कुनै Chromebook सँग सेयर गर्दै हुनुहुन्छ भने त्यसमा 'नजिकैका यन्त्रमा फेला पर्ने' सुविधा अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस् (वस्तुस्थिति क्षेत्र खोल्नुहोस् र त्यसपछि 'नजिकैका यन्त्रमा फेला पर्ने' सुविधा अन गर्नुहोस्)। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
 <translation id="4052120076834320548">सानु</translation>
 <translation id="4054070260844648638">सबैजनाले देख्न सक्ने</translation>
 <translation id="4056908315660577142">तपाईं आफ्ना अभिभावकले <ph name="APP_NAME" /> Chrome एप कति समय प्रयोग गर्न पाउने भनी तोक्नुभएको समयको सीमामा पुग्नुभएको छ। तपाईं भोलि यो एप <ph name="TIME_LIMIT" /> प्रयोग गर्न सक्नुहुन्छ।</translation>
@@ -3355,6 +3364,7 @@
 <translation id="4636682061478263818">Drive मा भएका फाइलहरू</translation>
 <translation id="4636930964841734540">जानकारी</translation>
 <translation id="4637083375689622795">थप कारबाहीहरू, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">क्यामेरा फेरि प्रयोग गर्नुहोस्</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{पाठ}other{# वटा पाठ}}</translation>
 <translation id="4638930039313743000">ADB डिबग प्रक्रिया सक्षम पार्नुहोस्</translation>
 <translation id="4641539339823703554">प्रणाली समय सेट गर्न Chrome असफल भयो। कृपया तल समय हेर्नुहोस् र आवश्यक भएको खण्डमा ठिक बनाउनुहोस्।</translation>
@@ -3396,7 +3406,7 @@
 <translation id="4677772697204437347">GPU स्मृति</translation>
 <translation id="467823995058589466">क्यामेरा अफ गरिएको छ</translation>
 <translation id="4680105648806843642">यस पृष्ठमा आवाज म्युट गरियो</translation>
-<translation id="4681453295291708042">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा असक्षम पार्नुहोस्</translation>
+<translation id="4681453295291708042">नजिकैका डिभाइससँग सेयर गर्ने सुविधा असक्षम पार्नुहोस्</translation>
 <translation id="4681930562518940301">नयाँ ट्याबमा मूल छविलाई खोल्नुहोस्</translation>
 <translation id="4682551433947286597">वालपेपरहरू साइन-इन स्क्रिनमा देखा पर्छन्।</translation>
 <translation id="4683947955326903992"><ph name="PERCENTAGE" />% (डिफल्ट)</translation>
@@ -3776,7 +3786,7 @@
 <translation id="5133483819862530305">सूर्यास्तदेखि सूर्योदयसम्म</translation>
 <translation id="5135085122826131075">"Ok Google" भनेर आफ्नो सहायकमाथि पहुँच राख्नुहोस्।</translation>
 <translation id="5135533361271311778">बुकमार्क वस्तु सिर्जना गर्न सकिएन।</translation>
-<translation id="5136343472380336530">दुवै यन्त्र अनलक गरिएका छन्, एकअर्काको नजिकै छन् र दुवैको ब्लुटुथ अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
+<translation id="5136343472380336530">दुइटै डिभाइस अनलक गरिएका छन्, एकअर्काको नजिकै छन् र दुवैको ब्लुटुथ अन गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्। <ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
 <translation id="5137501176474113045">यस वस्तुलाई हटाउनुहोस्</translation>
 <translation id="5139112070765735680"><ph name="QUERY_NAME" />, <ph name="DEFAULT_SEARCH_ENGINE_NAME" /> खोज</translation>
 <translation id="5139823398361067371">आफ्नो सुरक्षा साँचोको PIN प्रविष्टि गर्नुहोस् तपाईंलाई PIN थाहा छैन भने तपाईंले आफ्नो सुरक्षा साँचो रिसेट गर्नु पर्ने छ।</translation>
@@ -3991,7 +4001,7 @@
 <translation id="5372529912055771682">आपूर्ति गरिएएको नामांकन मोडलाई यो संस्करणको अपरेटिङ सिस्टमले समर्थन गर्दैन।  कृपया तपाईंले सबैभन्दा नयाँ संस्करण चलाईरहनुभएको छ भनि सुनिश्चित गर्नुहोस् र पुन: प्रयास गर्नुहोस्।</translation>
 <translation id="5372579129492968947">एक्स्टेन्सन अनपिन गर्नुहोस्</translation>
 <translation id="5372632722660566343">कुनै खातामा साइन इन नगरिकनै Chromium चलाउनुहोस्</translation>
-<translation id="5375318608039113175">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा प्रयोग गरी सम्पर्क सूचीमा भएका यी मान्छेहरूसँग सेयर गर्न आफ्नो सम्पर्क सूचीमा उनीहरूको Google खातामा लिंक गरिएको इमेल ठेगाना हाल्नुहोस्।</translation>
+<translation id="5375318608039113175">नजिकैका डिभाइससँग सेयर गर्ने सुविधा प्रयोग गरी सम्पर्क सूचीमा भएका यी मान्छेहरूसँग सेयर गर्न आफ्नो सम्पर्क सूचीमा उनीहरूको Google खातामा लिंक गरिएको इमेल ठेगाना हाल्नुहोस्।</translation>
 <translation id="5376169624176189338">पछि जानको लागि क्लिक गर्नुहोस्, इतिहास हर्न होल्ड गर्नुहोस्</translation>
 <translation id="5376931455988532197">फाइल ज्यादै ठुलो छ</translation>
 <translation id="5379140238605961210">माइक्रोफोन पहुँच रोक्न जारी राख्नुहोस्</translation>
@@ -4105,6 +4115,7 @@
 <translation id="5499313591153584299">यो फाइल तपाईंको कम्प्युटरका लागि हानिकारक हुन सक्छ।</translation>
 <translation id="5499453227627332024">Linux कन्टेनरको नयाँ संस्करण उपलब्ध छ। तपाईं पछि सेटिङ एपबाट पनि यसलाई अपग्रेड गर्न सक्नुहुन्छ।</translation>
 <translation id="5500709606820808700">आज सुरक्षा जाँच गरिएको थियो</translation>
+<translation id="5501322521654567960">बायाँतिर एलाइन गरिएको साइड प्यानल</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> बाट <ph name="ATTACHMENTS" /> प्राप्त गर्न सकिएन}other{<ph name="DEVICE_NAME" /> बाट <ph name="ATTACHMENTS" /> प्राप्त गर्न सकिएन}}</translation>
 <translation id="5502500733115278303">Firefox बाट आयात गरिएको</translation>
 <translation id="5502915260472117187">बच्चा</translation>
@@ -4243,7 +4254,7 @@
 <translation id="5646558797914161501">व्यापारी</translation>
 <translation id="5648166631817621825">पछिल्ला ७ दिन</translation>
 <translation id="5649053991847567735">स्वचालित डाउनलोडहरू</translation>
-<translation id="5651308944918885595">नजिकैका यन्त्रसँग सेयर गर्ने सुविधामा भएको 'भेटिने क्षमता' नामक विकल्प</translation>
+<translation id="5651308944918885595">नजिकैका डिभाइससँग सेयर गर्ने सुविधामा भएको 'भेटिने क्षमता' नामक विकल्प</translation>
 <translation id="5653154844073528838">तपाईंसँग सुरक्षित गरिएका <ph name="PRINTER_COUNT" /> प्रिन्टरहरू छन्।</translation>
 <translation id="5656845498778518563">Google लाई प्रतिक्रिया पठाउनुहोस्</translation>
 <translation id="5657156137487675418">सबै कुकीहरूलाई अनुमति दिनुहोस्</translation>
@@ -4315,7 +4326,7 @@
 <translation id="5739017626473506901"><ph name="USER_NAME" /> लाई विद्यालयको खाता थप्न मद्दत गर्न साइन इन गर्नुहोस्</translation>
 <translation id="5739235828260127894">पुष्टिका लागि प्रतीक्षा गर्दै। <ph name="LINK_BEGIN" />थप जान्नुहोस्।<ph name="LINK_END" /></translation>
 <translation id="5739458112391494395">धेरै ठुलो</translation>
-<translation id="5740328398383587084">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा</translation>
+<translation id="5740328398383587084">नजिकैका डिभाइससँग सेयर गर्ने सुविधा</translation>
 <translation id="574104302965107104">डिस्प्ले मिररिङ</translation>
 <translation id="574209121243317957">पिच</translation>
 <translation id="5746169159649715125">पीडीएपको रूपमा बचत गर्नुहोस्</translation>
@@ -4873,7 +4884,7 @@
 <translation id="6363990818884053551">सिंक गर्ने कार्य सुरु गर्न यो काम गर्न खोज्ने व्यक्ति तपाईं नै हो भन्ने कुरा पुष्टि गर्नुहोस्</translation>
 <translation id="6365069501305898914">Facebook</translation>
 <translation id="6365411474437319296">परिवार र साथीहरू थप्नुहोस्</translation>
-<translation id="6367985768157257101">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा प्रयोग गरी डेटा प्राप्त गर्ने हो?</translation>
+<translation id="6367985768157257101">नजिकैका डिभाइससँग सेयर गर्ने सुविधा प्रयोग गरी डेटा प्राप्त गर्ने हो?</translation>
 <translation id="6368276408895187373">सक्षम पारिएको छ – <ph name="VARIATION_NAME" /></translation>
 <translation id="636850387210749493">उद्यम भर्ना</translation>
 <translation id="6370021412472292592">म्यानिफेस्ट लोड गर्न सकिएन।</translation>
@@ -5315,6 +5326,7 @@
 <translation id="6856348640027512653">भर्चुअल रियालिटी चल्ने यन्त्र वा तिनमा भएका डेटा प्रयोग गर्ने अनुमति नदिइएका साइटहरू</translation>
 <translation id="6856459657722366306"><ph name="NETWORK_COUNT" /> मध्ये <ph name="NETWORK_INDEX" /> औँ नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" />%, विवरणहरू</translation>
 <translation id="6856623341093082836">आफ्नो टचस्क्रिनको सटीकता सेटअप र समायोजन गर्नुहोस्</translation>
+<translation id="6857145580237920905">पावरवास गर्नुअघि eSIM प्रोफाइलहरू हटाउनुहोस्</translation>
 <translation id="6857699260879628349">कन्फिगुरेसनसम्बन्धी जानकारी प्राप्त गर्नुहोस्</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> सेकेन्ड</translation>
 <translation id="6860097299815761905">प्रोक्सी सेटिङहरू...</translation>
@@ -5411,7 +5423,7 @@
 <translation id="6965978654500191972">यन्त्र</translation>
 <translation id="696780070563539690">साइटहरूले तपाईंका गतिविधिअनुसार विज्ञापन देखाउने जस्ता प्रयोजनहरूका लागि विभिन्न साइटहरूमा तपाईंको ब्राउजिङसम्बन्धी गतिविधि हेर्न तपाईंका कुकीहरूको प्रयोग गर्न सक्दैनन्</translation>
 <translation id="6968288415730398122">स्क्रिन लक कन्फिगर गर्न आफ्नो पासवर्ड प्रविष्टि गर्नुहोस्</translation>
-<translation id="6969047215179982698">नजिकैका यन्त्रसँग सेयर गर्ने सुविधा निष्क्रिय पार्नुहोस्</translation>
+<translation id="6969047215179982698">नजिकैका डिभाइससँग सेयर गर्ने सुविधा निष्क्रिय पार्नुहोस्</translation>
 <translation id="6970480684834282392">स्टार्टअप प्रकार</translation>
 <translation id="6970856801391541997">निर्दिष्ट पृष्ठहरू प्रिन्ट गर्नुहोस्</translation>
 <translation id="6972180789171089114">अडियो/भिडियो</translation>
@@ -5683,7 +5695,7 @@
 <translation id="7267044199012331848">भर्चुअल मेसिन इन्स्टल गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस् वा आफ्ना एड्मिनसँग सम्पर्क गर्नुहोस्। त्रुटिको कोड: <ph name="ERROR_CODE" />।</translation>
 <translation id="7267875682732693301">आफ्नो फिंगरप्रिन्टका विभिन्न भागहरू समावेश गर्न आफ्नो औँला उठाउँदै राख्दै गर्नुहोस्</translation>
 <translation id="7268127947535186412">डिभाइसका मालिक यो सेटिङको व्यवस्थापन गर्नुहुन्छ।</translation>
-<translation id="7269736181983384521">नजिकैका यन्त्रसँग सेयर गर्ने सुविधामा भएको डेटाको प्रयोगसम्बन्धी सेटिङ</translation>
+<translation id="7269736181983384521">नजिकैका डिभाइससँग सेयर गर्ने सुविधामा भएको डेटाको प्रयोगसम्बन्धी सेटिङ</translation>
 <translation id="7270858098575133036">कुनै साइटले MIDI यन्त्रहरूमाथि पहुँच गर्नका लागि प्रणालीका विशिष्ट सन्देशहरू प्रयोग गर्न खोज्दा सोध्नुहोस्</translation>
 <translation id="7272674038937250585">वर्णन प्रदान गरिएको छैन</translation>
 <translation id="7273110280511444812">अन्तिम पटक <ph name="DATE" /> मा सङ्लग्न गरिएको थियो</translation>
@@ -5762,7 +5774,7 @@
 <translation id="7364745943115323529">Cast...</translation>
 <translation id="7364796246159120393">फाइल छान्नुहोस्</translation>
 <translation id="7365076891350562061">मनिटरको आकार</translation>
-<translation id="7366316827772164604">नजिकैका यन्त्रहरू स्क्यान गरिँदै छ…</translation>
+<translation id="7366316827772164604">नजिकैका डिभाइसहरू स्क्यान गरिँदै छ…</translation>
 <translation id="7366362069757178916">भुक्तानी ह्यान्ड्लरहरू</translation>
 <translation id="7366415735885268578">कुनै साइट थप्नुहोस्</translation>
 <translation id="7366909168761621528">ब्राउजिङको डेटा</translation>
@@ -5896,6 +5908,7 @@
 <translation id="7506541170099744506">तपाईँको <ph name="DEVICE_TYPE" /> लाई सफलतापूर्वक इन्टरप्राइजको व्यवस्थापनमा दर्ता गरिएको छ।</translation>
 <translation id="7507207699631365376">यो प्रदायकको <ph name="BEGIN_LINK" />गोपनीयता नीति<ph name="END_LINK" /> हेर्नुहोस्</translation>
 <translation id="7507930499305566459">स्थिति जवाफकर्ता प्रमाणपत्र</translation>
+<translation id="7509246181739783082">आफ्नो पहिचान पुष्टि गर्नुहोस्</translation>
 <translation id="7513029293694390567">भण्डारण गरिएका प्रमाणपत्रहरूको प्रयोग गरेर वेबसाइटहरूमा स्वचालित रूपमा साइन इन गर्नुहोस्। यो सुविधा असक्षम गरिएमा वेबसाइटमा साइन इन गर्नुभन्दा पहिले तपाईंलाई हरेक पटक पुुष्टि गर्न भनिने छ।</translation>
 <translation id="7514239104543605883">प्रतिलिपि गरी तपाईंको डिभाइसमा टाँस्नुहोस्</translation>
 <translation id="7514365320538308">डाउनलोड गर्नुहोस्</translation>
@@ -6427,7 +6440,6 @@
 <translation id="8061091456562007989">यसलाई परिवर्तन गरी पहिलेको जस्तै बनाउनुहोस्</translation>
 <translation id="8061991877177392872">तपाईंले आफ्नो सहायकमार्फत अर्को यन्त्रमा Voice Match सेटअप गरिसक्नुभएको छ जस्तो देखिन्छ। यो डिभाइसमा आवाजको मोडेल बनाउनका लागि ती पहिलेका रेकर्डिङहरू प्रयोग गरिएका छन्।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{कागजको एउटा पाना}other{कागजका {COUNT} वटा पाना}}</translation>
-<translation id="8062879968880283306">यन्त्रको क्यामेरा प्रयोग गरी QR कोड स्क्यान गर्नुहोस् वा आफ्नो मोबाइल सेवा प्रदायकले उपलब्ध गराएको सक्रिय गर्ने कोड हाल्नुहोस्।</translation>
 <translation id="8063235345342641131">डिफल्ट हरियो अवतार</translation>
 <translation id="8063535366119089408">फाइल हेर्नुहोस्</translation>
 <translation id="8064279191081105977">समूह <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6556,7 +6568,7 @@
 <translation id="8200772114523450471">रिजुमी</translation>
 <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> का एल्बमहरू चयन गर्नुहोस्</translation>
 <translation id="8202160505685531999">कृपया तपाईँको <ph name="DEVICE_TYPE" /> प्रोफाइल अद्यावधिक गर्न तपाईँको पासवर्ड पुनः प्रविष्टि गर्नुहोस्।</translation>
-<translation id="8203152941016626022">नजिकैका यन्त्रसँग सेयर गर्ने सुविधामा भएको यन्त्रको नामसम्बन्धी सेटिङ</translation>
+<translation id="8203152941016626022">नजिकैका डिभाइससँग सेयर गर्ने सुविधामा भएको यन्त्रको नामसम्बन्धी सेटिङ</translation>
 <translation id="8203732864715032075">सूचनाहरू प्राप्त गर्न यो कम्प्युटरको प्रयोग गर्नुका साथै यसलाई सन्देश प्रवाह गर्ने डिफल्ट कम्प्युटरका रूपमा सेट गर्नुहोस्।<ph name="LINK_BEGIN" />थप जान्नुहोस्<ph name="LINK_END" /></translation>
 <translation id="8205432712228803050">तपाईंका डिस्प्ले तथा सहायक डिभाइसहरू केही बेरमा रिसेट हुन सक्छन्। यो परिवर्तन लागू गर्नका लागि आफ्ना सहायक डिभाइसहरू अनप्लग गरेर फेरि प्लग गर्नुहोस्।</translation>
 <translation id="820568752112382238">सबैभन्दा बढी हेरिएका साइटहरू</translation>
@@ -6848,7 +6860,6 @@
 <translation id="8551588720239073785">मिति र समयसम्बन्धी सेटिङ</translation>
 <translation id="8553342806078037065">अन्य व्यक्तिहरूलाई व्यवस्थापन गर्नुहोस्</translation>
 <translation id="8554899698005018844">कुनै पनि भाषा छैन</translation>
-<translation id="8555195867496021627">कुनै पनि eSIM प्रोफाइल उपलब्ध छैन। <ph name="BEGIN_LINK" />यहाँ<ph name="END_LINK" /> गई नयाँ प्रोफाइल डाउनलोड गर्नुहोस्।</translation>
 <translation id="8557022314818157177">तपाईंको फिंगरप्रिन्ट नथपिँदासम्म आफ्नो सुरक्षा साँचोमा छोइरहनुहोस्</translation>
 <translation id="8557930019681227453">म्यानिफेस्ट</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{सबै URL &amp;नयाँ विन्डोमा खोल्नुहोस्}=1{&amp;नयाँ विन्डोमा खोल्नुहोस्}other{सबै URL ({COUNT}) &amp;नयाँ विन्डोमा खोल्नुहोस्}}</translation>
@@ -7028,7 +7039,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" /> मध्ये <ph name="NETWORK_INDEX" /> औँ नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" />%, तपाईंका एड्मिनले व्यवस्थापन गर्नुभएको, कनेक्ट गर्नुहोस्</translation>
 <translation id="8746654918629346731">तपाईंले "<ph name="EXTENSION_NAME" />" का लागि अनुरोध गरिसक्नुभएको छ</translation>
 <translation id="874689135111202667">{0,plural, =1{यो साइटमा एउटा फाइल अपलोड गर्ने हो?}other{यो साइटमा # फाइलहरू अपलोड गर्ने हो?}}</translation>
-<translation id="8749556627204742888">तपाईं यो नेटवर्क यस डिभाइसका अन्य प्रयोगकर्ताहरूसँग सेयर गरिरहनुभएको छ।</translation>
 <translation id="8749805710397399240">तपाईंको स्क्रिन कास्ट गर्न सकिएन। सिस्टमसम्बन्धी प्राथमिकताहरूमा गई स्क्रिन रेकर्ड गर्ने अनुमति दिइएको छ कि छैन भनी जाँच गर्नुहोस्।</translation>
 <translation id="8749863574775030885">एक अज्ञात विक्रेताबाट USB उपकरणहरूको पहुँच गर्नुहोस्</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ले एउटा क्रमिक पोर्टमा जडान गर्न चाहन्छ</translation>
@@ -7090,7 +7100,6 @@
 <translation id="8808744862003883508">तपाईं यस पृष्ठमा Chrome मा स्थापना गरिएका सबै एक्स्टेन्सनहरू देख्न सक्नुहुन्छ।</translation>
 <translation id="8809147117840417135">हल्का निलो-हरियो मिश्रित रङ्ग</translation>
 <translation id="8811862054141704416">Crostini लाई माइक्रोफोन प्रयोग गर्न दिने सेटिङ</translation>
-<translation id="8812552797690463522">यो नेटवर्क तपाईंसँग सेयर गरिएको छ।</translation>
 <translation id="8812593354822910461">ब्राउजिङ डेटा (<ph name="URL" />) पनि हटाउनुहोस्। यस कार्यले तपाईंलाई <ph name="DOMAIN" /> बाट साइन आउट गराउने छ। <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">मलाई पछि सम्झाउनुहोस्</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> मा साइन इन गर्न सकिँदैन</translation>
@@ -7302,7 +7311,6 @@
 <translation id="9021662811137657072">भाइरस पत्ता लाग्यो</translation>
 <translation id="902236149563113779">साइटहरूले सामान्यतया गेम वा हेड्स-अप निर्देशन जस्ता AR सुविधाहरू प्रदान गर्न तपाईंको क्यामेराको स्थिति ट्र्याक गर्छन्</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> पहिले नै यस कम्प्युटरमा यो खाता प्रयोग गर्दै हुनुहुन्छ।</translation>
-<translation id="9023009238991294202">यस डिभाइसका अन्य प्रयोगकर्ताहरूले यो नेटवर्क प्रयोग गर्न सक्छन्।</translation>
 <translation id="9023015617655685412">यस ट्याबमा पुस्तक चिन्ह लगाउनुहोस्...</translation>
 <translation id="9023909777842748145">यो सुविधा निष्क्रिय पार्नुले सिस्टम अपडेट र सुरक्षा जस्ता अत्यावश्यक सेवाहरूलाई आवश्यक पर्ने जानकारी पठाउने तपाईंको डिभाइसको क्षमतालाई असर गर्दैन।</translation>
 <translation id="9024127637873500333">नयाँ ट्याबमा &amp;खोल्नुहोस्</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 1f5a3e2..bb2ebf2 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">Standaardstartpagina herstellen?</translation>
 <translation id="1388253969141979417">Toestemming om je microfoon te gebruiken</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> wordt opnieuw opgestart als de updates zijn voltooid.</translation>
-<translation id="138900021244932468">Er zijn geen profielen gevonden. Als je een nieuw netwerk wilt instellen, scan je de QR-code met de camera van je apparaat en geef je de activeringscode op die je van je provider hebt gekregen.</translation>
 <translation id="139013308650923562">Mogen lettertypen gebruiken die zijn geïnstalleerd op je apparaat</translation>
 <translation id="1390548061267426325">Openen als normaal tabblad</translation>
 <translation id="1393283411312835250">Zon en wolken</translation>
@@ -5910,6 +5909,7 @@
 <translation id="7506541170099744506">Je <ph name="DEVICE_TYPE" /> is aangemeld voor bedrijfsbeheer.</translation>
 <translation id="7507207699631365376">Het <ph name="BEGIN_LINK" />privacybeleid<ph name="END_LINK" /> van deze provider bekijken</translation>
 <translation id="7507930499305566459">Certificaat voor statusbeantwoorder</translation>
+<translation id="7509246181739783082">Je identiteit verifiëren</translation>
 <translation id="7513029293694390567">Log automatisch in op websites met de opgeslagen gegevens. Als de functie uitstaat, moet je je identiteit bevestigen voordat je inlogt op een website.</translation>
 <translation id="7514239104543605883">Kopiëren naar je apparaat</translation>
 <translation id="7514365320538308">Downloaden</translation>
@@ -6441,7 +6441,6 @@
 <translation id="8061091456562007989">Wijziging ongedaan maken</translation>
 <translation id="8061991877177392872">Zoe te zien heb je Voice Match al ingesteld voor de Assistent op een ander apparaat. De eerdere opnamen daarvan zijn gebruikt om een spraakmodel op dit apparaat te maken.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 vel papier}other{{COUNT} vellen papier}}</translation>
-<translation id="8062879968880283306">Scan de QR-code met de camera van je apparaat of geef de activeringscode op die je van je provider hebt gekregen.</translation>
 <translation id="8063235345342641131">Standaard groene avatar</translation>
 <translation id="8063535366119089408">Bestand bekijken</translation>
 <translation id="8064279191081105977">Groep <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6862,7 +6861,6 @@
 <translation id="8551588720239073785">Instellingen voor datum en tijd</translation>
 <translation id="8553342806078037065">Andere mensen beheren</translation>
 <translation id="8554899698005018844">Geen taal</translation>
-<translation id="8555195867496021627">Geen beschikbare e-simkaartprofielen. <ph name="BEGIN_LINK" />Hier<ph name="END_LINK" /> kun je een nieuw profiel downloaden.</translation>
 <translation id="8557022314818157177">Blijf je beveiligingssleutel aanraken totdat je vingerafdruk is geregistreerd</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Alles openen in &amp;nieuw venster}=1{Openen in &amp;nieuw venster}other{Alles ({COUNT}) openen in &amp;nieuw venster}}</translation>
@@ -7042,7 +7040,6 @@
 <translation id="8743164338060742337">Netwerk <ph name="NETWORK_INDEX" /> van <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, signaalsterkte <ph name="SIGNAL_STRENGTH" />%, beheerd door je beheerder, verbinden</translation>
 <translation id="8746654918629346731">Je hebt '<ph name="EXTENSION_NAME" />' al aangevraagd</translation>
 <translation id="874689135111202667">{0,plural, =1{Eén bestand naar deze site uploaden?}other{# bestanden naar deze site uploaden?}}</translation>
-<translation id="8749556627204742888">Je deelt dit netwerk met andere gebruikers van dit apparaat.</translation>
 <translation id="8749805710397399240">Kan je scherm niet casten. Check de rechten voor schermopname in de systeemvoorkeuren.</translation>
 <translation id="8749863574775030885">Toegang verkrijgen tot USB-apparaten van een onbekende leverancier</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> wil verbinden met een seriële poort</translation>
@@ -7105,7 +7102,6 @@
 <translation id="8808744862003883508">Op deze pagina kun je alle extensies zien die in Chrome zijn geïnstalleerd.</translation>
 <translation id="8809147117840417135">Lichtblauwgroen</translation>
 <translation id="8811862054141704416">Microfoontoegang voor Crostini</translation>
-<translation id="8812552797690463522">Dit netwerk is met jou gedeeld.</translation>
 <translation id="8812593354822910461">Ook browsegegevens wissen (<ph name="URL" />). Als je dit doet, word je uitgelogd bij <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Later herinneren</translation>
 <translation id="8813698869395535039">Kan niet inloggen bij <ph name="USERNAME" /></translation>
@@ -7317,7 +7313,6 @@
 <translation id="9021662811137657072">Virus gedetecteerd</translation>
 <translation id="902236149563113779">Sites volgen je camerapositie meestal voor AR-functies, zoals games of visuele aanduidingen voor routebeschrijvingen</translation>
 <translation id="9022847679183471841">Dit account wordt al op deze computer gebruikt door <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Andere gebruikers van dit apparaat kunnen dit netwerk gebruiken.</translation>
 <translation id="9023015617655685412">Bookmark toevoegen voor dit tabblad…</translation>
 <translation id="9023909777842748145">Als je deze functie uitzet, heeft dit geen gevolgen voor de mogelijkheid van je apparaat om de informatie te sturen die nodig is voor essentiële services zoals systeemupdates en beveiliging.</translation>
 <translation id="9024127637873500333">&amp;Openen op nieuw tabblad</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 00c1209..eb6325e4 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Vil du gjenopprette standardverdien for oppstartssiden?</translation>
 <translation id="1388253969141979417">Nettsteder som har lov til å bruke mikrofonen din</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> starter på nytt når oppdateringene er fullført.</translation>
-<translation id="138900021244932468">Fant ingen profiler. For å konfigurere et nytt nettverk, skann QR-koden med kameraet på enheten, eller skriv inn aktiveringskoden du har fått av operatøren din.</translation>
 <translation id="139013308650923562">Får bruke skrifttyper som er installert på enheten</translation>
 <translation id="1390548061267426325">Åpne som vanlig fane</translation>
 <translation id="1393283411312835250">Sol og skyer</translation>
@@ -5920,6 +5919,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" />-enheten din er nå registrert for bedriftsadministrering.</translation>
 <translation id="7507207699631365376">Se denne leverandørens <ph name="BEGIN_LINK" />personvernerklæring<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Sertifikat for statussvar</translation>
+<translation id="7509246181739783082">Bekreft identiteten din</translation>
 <translation id="7513029293694390567">Bruk lagret legitimasjon til å logge på nettsteder automatisk. Hvis dette er slått av, blir du bedt om bekreftelse hver gang du logger på et nettsted.</translation>
 <translation id="7514239104543605883">Kopiér til enheten din</translation>
 <translation id="7514365320538308">Last ned</translation>
@@ -6452,7 +6452,6 @@
 <translation id="8061091456562007989">Endre tilbake</translation>
 <translation id="8061991877177392872">Det ser ut til at du allerede har konfigurert Voice Match med assistenten din på en annen enhet. Disse tidligere opptakene ble brukt til å lage en stemmemodell på denne enheten.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 ark}other{{COUNT} ark}}</translation>
-<translation id="8062879968880283306">Skann QR-koden med kameraet på enheten, eller skriv inn aktiveringskoden du har fått av operatøren din.</translation>
 <translation id="8063235345342641131">Grønt standardbrukerbilde</translation>
 <translation id="8063535366119089408">Se filen</translation>
 <translation id="8064279191081105977">Gruppe <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6873,7 +6872,6 @@
 <translation id="8551588720239073785">Innstillinger for dato og klokkeslett</translation>
 <translation id="8553342806078037065">Administrer andre</translation>
 <translation id="8554899698005018844">Ingen språk</translation>
-<translation id="8555195867496021627">Ingen tilgjengelige e-SIM-kortprofiler. Last ned en ny profil <ph name="BEGIN_LINK" />her<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Fortsett å berøre sikkerhetsnøkkelen til fingeravtrykket er registrert</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Åpne alle i &amp;nytt vindu}=1{Åpne i &amp;nytt vindu}other{Åpne alle ({COUNT}) i &amp;nytt vindu}}</translation>
@@ -7053,7 +7051,6 @@
 <translation id="8743164338060742337">Nettverk <ph name="NETWORK_INDEX" /> av <ph name="NETWORK_COUNT" /> – <ph name="NETWORK_NAME" /> – <ph name="NETWORK_PROVIDER_NAME" /> – signalstyrke <ph name="SIGNAL_STRENGTH" /> % – administreres av administratoren din – koble til</translation>
 <translation id="8746654918629346731">Du har allerede forespurt «<ph name="EXTENSION_NAME" />»</translation>
 <translation id="874689135111202667">{0,plural, =1{Vil du laste opp en fil til dette nettstedet?}other{Vil du laste opp # filer til dette nettstedet?}}</translation>
-<translation id="8749556627204742888">Du deler dette nettverket med andre brukere av denne enheten.</translation>
 <translation id="8749805710397399240">Kunne ikke caste skjermen din. Kontroller Skjermopptak-tillatelsen i Systemvalg.</translation>
 <translation id="8749863574775030885">Les USB-enheter fra en ukjent leverandør</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> vil koble til en seriell port</translation>
@@ -7115,7 +7112,6 @@
 <translation id="8808744862003883508">På denne siden kan du se alle utvidelsene som er installert i Chrome.</translation>
 <translation id="8809147117840417135">Lys blågrønn</translation>
 <translation id="8811862054141704416">Mikrofontilgang for Crostini</translation>
-<translation id="8812552797690463522">Dette nettverket deles med deg.</translation>
 <translation id="8812593354822910461">Slett også nettlesingsdata (<ph name="URL" />), noe som medfører at du blir logget av <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Påminn meg senere</translation>
 <translation id="8813698869395535039">Kan ikke logge på <ph name="USERNAME" /></translation>
@@ -7327,7 +7323,6 @@
 <translation id="9021662811137657072">Virus oppdaget</translation>
 <translation id="902236149563113779">Nettsteder sporer vanligvis kameraposisjonen din for å kunne tilby AR-funksjoner, som spill eller heads-up-anvisninger</translation>
 <translation id="9022847679183471841">Denne kontoen er allerede i bruk på denne datamaskinen, av <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Andre brukere av denne enheten kan bruke dette nettverket.</translation>
 <translation id="9023015617655685412">Bokmerk denne fanen</translation>
 <translation id="9023909777842748145">Enhetens evne til å sende informasjonen som kreves for nødvendige tjenester, for eksempel systemoppdateringer og sikkerhet, påvirkes ikke hvis du slår av denne funksjonen.</translation>
 <translation id="9024127637873500333">&amp;Åpne i ny fane</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 553acb31..cb7f180 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -62,6 +62,7 @@
 <translation id="1066613507389053689">Chrome OS ଅପଡେଟ୍ ଆବଶ୍ୟକ</translation>
 <translation id="1067048845568873861">ସୃଷ୍ଟିହେଲା:</translation>
 <translation id="1067922213147265141">ଅନ୍ୟାନ୍ୟ Google ସେବା</translation>
+<translation id="1069355737714877171"><ph name="PROFILE_NAME" /> ନାମକ eSIM ପ୍ରୋଫାଇଲକୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation>
 <translation id="1070377999570795893">ଆପଣଙ୍କର କମ୍ପ୍ୟୁଟର୍‌ରେ ଥିବା ପ୍ରୋଗ୍ରାମ୍ ଅନ୍ୟ ଏକ ଏକ୍ସଟେନ୍‌ସନ୍‌ ଯୋଗ କରିଥାଏ, ଯାହା Chromeର କାର୍ଯ୍ୟ କରିବା ମାର୍ଗକୁ ପରିବର୍ତ୍ତନ କରିପାରେ।
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -980,6 +981,7 @@
 ଆପଣ ଆପଣଙ୍କର ଡିଭାଇସ୍‌‌ରେ Family Link ଆପ୍ ଇନ୍‌ଷ୍ଟଲ୍ କରି ଏହି ଆକାଉଣ୍ଟର ସେଟିଂସ୍ ପରିଚାଳନା କରିପାରିବେ।  ଆମେ ଏକ ଇମେଲ୍‌ରେ ଆପଣଙ୍କୁ ନିର୍ଦ୍ଦେଶାବଳୀ ପଠାଇଛୁ।</translation>
 <translation id="2040460856718599782">ଓହୋ!  ଆପଣଙ୍କୁ ପ୍ରମାଣିକୃତ କରିବା ସମୟରେ କିଛି ତ୍ରୁଟି ହୋ‍ଇଛି।  ଦୟାକରି ଦୁଇଥର ଆପଣଙ୍କର ସାଇନ୍‌-ଇନ୍‌ ବିଶ୍ୱସନୀୟତା ଯାଞ୍ଚ କରନ୍ତୁ ଏବଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="2044014337866019681">ଦୟାକରି ସେସନକୁ ଅନଲକ୍ କରିବା ପାଇଁ ଆପଣ <ph name="ACCOUNT" />କୁ ଯାଞ୍ଚ କରୁଥିବା ନିଶ୍ଚିତ କରନ୍ତୁ।</translation>
+<translation id="2044023416777079300">ମୋଡେମ୍ ପଞ୍ଜିକୃତ ହୋଇନାହିଁ</translation>
 <translation id="204497730941176055">Microsoft ସର୍ଟିଫିକେଟ୍‍ ଟେମ୍ପଲେଟ୍‍ର ନାମ</translation>
 <translation id="2045117674524495717">କୀବୋର୍ଡ ସର୍ଟକଟ ସାହାଯ୍ୟକାରୀ</translation>
 <translation id="2045969484888636535">କୁକୀଗୁଡ଼ିକୁ ଅବରୋଧ କରିବା ପ୍ରକ୍ରିୟା ଜାରି ରଖନ୍ତୁ</translation>
@@ -3093,6 +3095,7 @@
 <translation id="4364830672918311045">ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପ୍ରଦର୍ଶନ କରନ୍ତୁ</translation>
 <translation id="4366138410738374926">ପ୍ରିଣ୍ଟିଂ ଆରମ୍ଭ ହୋଇଛି</translation>
 <translation id="4370975561335139969">ଆପଣ ଲେଖିଥିବା ଇମେଲ୍ ଓ ପାସ୍‍ୱର୍ଡ ମେଳ ହେଉନାହିଁ</translation>
+<translation id="4373966964907728675">କାଷ୍ଟିଂ ଡେସ୍କଟପ୍</translation>
 <translation id="4374831787438678295">Linux ଇନ୍‍ଷ୍ଟଲର୍</translation>
 <translation id="4375035964737468845">ଡାଇନ୍‌ଲୋଡ୍‍ ହୋ‍ଇଥିବା ଫାଇଲ୍‍ଗୁଡ଼ିକ ଖୋଲନ୍ତୁ</translation>
 <translation id="4376226992615520204">ଲୋକେସନ୍ ବନ୍ଦ କରାଯାଇଛି</translation>
@@ -4079,6 +4082,7 @@
 <translation id="5486261815000869482">ପାସ୍‌ୱାର୍ଡ ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> ଆପଣଙ୍କର ସ୍କ୍ରିନ୍ <ph name="TAB_NAME" /> ସହ ସେୟାର୍ କରୁଛି।</translation>
 <translation id="5486561344817861625">ବ୍ରାଉଜର୍ ରିଷ୍ଟାର୍ଟ ଅନୁକରଣ କରନ୍ତୁ</translation>
+<translation id="5487460042548760727">ପ୍ରୋଫାଇଲର ନାମକୁ <ph name="PROFILE_NAME" />ରେ ବଦଳାନ୍ତୁ</translation>
 <translation id="5487521232677179737">ଡାଟା ଖାଲି କରନ୍ତୁ</translation>
 <translation id="5488093641312826914"><ph name="COPIED_ITEM_NAME" /> / କପି ହୋ‍ଇଗଲା</translation>
 <translation id="5488508217173274228">ଏନକ୍ରିପ୍ସନ୍ ବିକଳ୍ପଗୁଡ଼ିକ ସିଙ୍କ୍ କରନ୍ତୁ</translation>
@@ -4820,6 +4824,7 @@
 <translation id="6308937455967653460">ଲି&amp;ଙ୍କ ଏହିଭାବେ ସଞ୍ଚୟ କରନ୍ତୁ...</translation>
 <translation id="6309443618838462258">ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟର ଏହି ଇନପୁଟ୍ ପଦ୍ଧତିକୁ ଅନୁମତି ଦିଅନ୍ତି ନାହିଁ</translation>
 <translation id="6309510305002439352">ମାଇକ୍ରୋଫୋନ୍ ବନ୍ଦ କରାଯାଇଛି</translation>
+<translation id="6310141306111263820">eSIM ପ୍ରୋଫାଇଲକୁ ଇନଷ୍ଟଲ୍ କରାଯାଇପାରିଲା ନାହିଁ। ସହାୟତା ପାଇଁ, ଦୟାକରି ଆପଣଙ୍କ କ୍ୟାରିଅର୍ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
 <translation id="6311220991371174222">Chrome ଆରମ୍ଭ କରିପାରିବେ ନାହିଁ କାରଣ ଆପଣଙ୍କର ପ୍ରୋଫାଇଲ୍‌ ଖୋଲିବା ସମୟରେ କିଛି ତ୍ରୁଟି ହୋ‍ଇଛି। Chrome ରିଷ୍ଟାର୍ଟ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="6312403991423642364">ଅଜଣା ନେଟ୍‌ୱର୍କ ତ୍ରୁଟି</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ସୁରକ୍ଷା ଯାଞ୍ଚ 1 ଦିନ ପୂର୍ବେ ଚାଲିଥିଲା}other{ସୁରକ୍ଷା ଯାଞ୍ଚ {NUM_DAYS} ଦିନ ପୂର୍ବେ ଚାଲିଥିଲା}}</translation>
@@ -5892,6 +5897,7 @@
 <translation id="7506541170099744506">ଆପଣଙ୍କର <ph name="DEVICE_TYPE" /> ସଫଳତାପୂର୍ବକ ଏଣ୍ଟର୍‌ପ୍ରାଇଜ୍ ପରିଚାଳନା ପାଇଁ ନାମାଙ୍କିତ କରାଯାଇଛି।</translation>
 <translation id="7507207699631365376">ଏହି ପ୍ରଦାନକାରୀଙ୍କର <ph name="BEGIN_LINK" />ଗୋପନୀୟତା ନୀତି<ph name="END_LINK" /> ଦେଖନ୍ତୁ</translation>
 <translation id="7507930499305566459">ସ୍ଥିତି ପ୍ରତିକ୍ରିୟାଦାତା ସାର୍ଟିଫିକେଟ୍</translation>
+<translation id="7509246181739783082">ଆପଣଙ୍କ ପରିଚୟ ଯାଞ୍ଚ କରନ୍ତୁ</translation>
 <translation id="7513029293694390567">ଷ୍ଟୋର୍ ଥିବା ବିଶ୍ୱସନୀୟତା ବ୍ୟବହାର କରି ୱେବ୍‌ସାଇଟ୍‌ରେ ସ୍ୱଚାଳିତରୂପେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ। ଯଦି ଏହା ଅକ୍ଷମ କରାଯାଏ, ତେବେ ଏକ ୱେବ୍‌ସାଇଟ୍‌ରେ ସାଇନ୍ ଇନ୍ କରିବା ପୂର୍ବରୁ ପ୍ରତ୍ୟେକଥର ଆପଣଙ୍କୁ ସୁନିଶ୍ଚିତ କରିବା ପାଇଁ କୁହାଯିବ।</translation>
 <translation id="7514239104543605883">ଆପଣଙ୍କର ଡିଭାଇସ୍‍କୁ କପି କରନ୍ତୁ</translation>
 <translation id="7514365320538308">ଡାଉନ୍‌‌ଲୋଡ୍‌ କରନ୍ତୁ</translation>
@@ -5958,6 +5964,7 @@
 <translation id="7582582252461552277">ଏହି ନେଟ୍‌ୱାର୍କକୁ ଅଗ୍ରାଧିକାର ଦିଅନ୍ତୁ</translation>
 <translation id="7582844466922312471">ମୋବାଇଲ ଡାଟା</translation>
 <translation id="7583948862126372804">ଗଣନା</translation>
+<translation id="7586051298768394542">ସ୍ପିଚ୍ ଫାଇଲଗୁଡ଼ିକୁ ଡାଉନଲୋଡ୍ କରାଯାଇପାରିବ ନାହିଁ। Googleକୁ ଆପଣଙ୍କ ଭଏସ୍ ପଠାଇ ଡିକ୍ଟେସନ୍ କାମ କରିବା ଜାରି ରଖିବ।</translation>
 <translation id="7586498138629385861">Chrome ଆପ୍ସ ଖୋଲାଥିବା ସମୟରେ Chrome ଚାଲୁ ସ୍ଥିତିରେ ରହିବ।</translation>
 <translation id="7589461650300748890">ୱାହୋ, ସେଠାରେ ଅଛି। ସତର୍କ ରୁହନ୍ତୁ।</translation>
 <translation id="7593653750169415785">ଆପଣ କିଛି ଥର ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଅସ୍ୱୀକାର କରିଥିବା ଯୋଗୁଁ ସ୍ୱଚାଳିତ ଭାବରେ ବ୍ଲକ୍ କରାଯାଇଛି</translation>
@@ -6421,7 +6428,6 @@
 <translation id="8061091456562007989">ଏହାକୁ ପୂର୍ବ ଭଳି କରନ୍ତୁ</translation>
 <translation id="8061991877177392872">ଏପରି ଜଣାପଡ଼ୁଛି ଯେ ଆପଣ ପୂର୍ବରୁ ଅନ୍ୟ ଏକ ଡିଭାଇସରେ ଆପଣଙ୍କର Assistant ସାହାଯ୍ୟରେ Voice Match ସେଟ୍ ଅପ୍ କରିଛନ୍ତି। ଏହି ଡିଭାଇସରେ ଏକ ଭଏସ୍ ମଡେଲ୍ ତିଆରି କରିବାକୁ ଏହି ପୂର୍ବବର୍ତ୍ତୀ ରେକର୍ଡିଂଗୁଡ଼ିକୁ ବ୍ୟବହାର କରାଯାଇଛି।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{କାଗଜର 1ଟି ସିଟ୍}other{କାଗଜର {COUNT}ଟି ସିଟ୍}}</translation>
-<translation id="8062879968880283306">ଡିଭାଇସର କ୍ୟାମେରା ବ୍ୟବହାର କରି QR କୋଡ୍ ସ୍କାନ୍ କରନ୍ତୁ କିମ୍ବା ଆପଣଙ୍କ କ୍ୟାରିଅର୍ ଦ୍ୱାରା ପ୍ରଦାନ କରାଯାଇଥିବା ସକ୍ରିୟକରଣ କୋଡ୍ ଲେଖନ୍ତୁ।</translation>
 <translation id="8063235345342641131">ଡିଫଲ୍ଟ ସବୁଜ ଅବତାର</translation>
 <translation id="8063535366119089408">ଫାଇଲ୍ ଦେଖନ୍ତୁ</translation>
 <translation id="8064279191081105977">ଗୋଷ୍ଠୀ <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6544,6 +6550,7 @@
 <translation id="8191230140820435481">ନିଜର ଆପ୍ସ, ଏକ୍ସଟେନ୍‌ସନ୍‌ଗୁଡ଼ିକ ଓ ଥିମ୍‍ଗୁଡ଼ିକ ପରିଚାଳନା କରନ୍ତୁ</translation>
 <translation id="8195027750202970175">ଡିସ୍କରେ ଆକାର</translation>
 <translation id="8198323535106903877">ଆମେ ଆପଣଙ୍କ ପାଇଁ ସେହି <ph name="NUMBER_OF_APPS" />ଟି ଆପ୍‌ ଇନଷ୍ଟଲ୍‌ କରିବୁ</translation>
+<translation id="8198456017687137612">କାଷ୍ଟିଂ ଟାବ୍</translation>
 <translation id="8199300056570174101">ନେଟ୍‍ୱାର୍କ (ସେବା) ଏବଂ ଡିଭାଇସ୍‍ର ଗୁଣଧର୍ମ</translation>
 <translation id="8200772114523450471">ସାରାଶଂ</translation>
 <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ଆଲବମ୍ ଚୟନ କରନ୍ତୁ</translation>
@@ -6840,7 +6847,6 @@
 <translation id="8551588720239073785">ତାରିଖ ଏବଂ ସମୟ ସେଟିଂସ୍</translation>
 <translation id="8553342806078037065">ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ପରିଚାଳନା କରନ୍ତୁ</translation>
 <translation id="8554899698005018844">କୌଣସି ଭାଷା ନାହିଁ</translation>
-<translation id="8555195867496021627">କୌଣସି eSIM ପ୍ରୋଫାଇଲ୍ ଉପଲବ୍ଧ ନାହିଁ। <ph name="BEGIN_LINK" />ଏଠାରେ<ph name="END_LINK" /> ଏକ ନୂଆ ପ୍ରୋଫାଇଲ୍ ଡାଉନଲୋଡ୍ କରନ୍ତୁ।</translation>
 <translation id="8557022314818157177">ଆପଣଙ୍କର ଟିପଚିହ୍ନ କ୍ୟାପଚର୍ ନହେବା ପର୍ଯ୍ୟନ୍ତ ଆପଣଙ୍କ ସୁରକ୍ଷା କୀକୁ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ</translation>
 <translation id="8557930019681227453">ମାନିଫେଷ୍ଟ</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{ସମସ୍ତ URLକୁ &amp;ନୂଆ ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ}=1{&amp;ନୂଆ ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ}other{ସମସ୍ତ ({COUNT})ଟି &amp;ନୂଆ ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ}}</translation>
@@ -7020,7 +7026,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" />ଟିରୁ <ph name="NETWORK_INDEX" /> ନମ୍ବର ନେଟୱାର୍କ, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />ର ସିଗନାଲର କ୍ଷମତା <ph name="SIGNAL_STRENGTH" />%, ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ଦ୍ୱାରା ପରିଚାଳିତ, ସଂଯୋଗ କରନ୍ତୁ</translation>
 <translation id="8746654918629346731">ଆପଣ ପୂର୍ବରୁ "<ph name="EXTENSION_NAME" />" ଅନୁରୋଧ କରିଛନ୍ତି</translation>
 <translation id="874689135111202667">{0,plural, =1{ଏହି ସାଇଟ୍‌କୁ ଏକ ଫାଇଲ୍‌ ଅପ୍‌ଲୋଡ୍‌ କରିବେ କି?}other{ଏହି ସାଇଟ୍‌କୁ #ଟି ଫାଇଲ୍‌ ଅପ୍‌ଲୋଡ୍‌ କରିବେ କି?}}</translation>
-<translation id="8749556627204742888">ଏହି ଡିଭାଇସର ଅନ୍ୟ ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ସହିତ ଆପଣ ଏହି ନେଟୱାର୍କ ସେୟାର୍ କରୁଛନ୍ତି।</translation>
 <translation id="8749805710397399240">ଆପଣଙ୍କ ସ୍କ୍ରିନକୁ କାଷ୍ଟ କରିବାକୁ ଅସମର୍ଥ। ସିଷ୍ଟମ୍ ପସନ୍ଦଗୁଡ଼ିକରେ ସ୍କ୍ରିନ୍ ରେକର୍ଡିଂ ଅନୁମତି ଯାଞ୍ଚ କରନ୍ତୁ।</translation>
 <translation id="8749863574775030885">ଏକ ଅଜ୍ଞାତ ଭେଣ୍ଡର ID ମାଧ୍ୟମରେ USB ଡିଭାଇସ୍‌ଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରନ୍ତୁ</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ଏକ ସିରିଏଲ୍ ପୋର୍ଟକୁ ସଂଯୋଗ କରିବାକୁ ଚାହୁଁଛି</translation>
@@ -7082,7 +7087,6 @@
 <translation id="8808744862003883508">ଏହି ପୃଷ୍ଠାରେ ଆପଣ Chromeରେ ଇନଷ୍ଟଲ୍ କରାଯାଇଥିବା ସମସ୍ତ ଏକ୍ସଟେନ୍‍ସନ୍ ଦେଖିପାରିବେ।</translation>
 <translation id="8809147117840417135">ହାଲୁକା ଟିଲ୍</translation>
 <translation id="8811862054141704416">Crostini ମାଇକ୍ରୋଫୋନ୍ ଆକ୍ସେସ୍</translation>
-<translation id="8812552797690463522">ଏହି ନେଟୱାର୍କ ଆପଣଙ୍କ ସହିତ ସେୟାର୍ କରାଯାଇଛି।</translation>
 <translation id="8812593354822910461">ଆପଣଙ୍କୁ <ph name="DOMAIN" />ରୁ ସାଇନ୍ ଆଉଟ୍ କରିଦେବା ବ୍ରାଉଜିଂ ଡାଟା (<ph name="URL" />)କୁ ମଧ୍ୟ ଖାଲି କରନ୍ତୁ। <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">ମୋତେ ପରେ ରିମାଇଣ୍ଡ କରନ୍ତୁ</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" />ରେ ସାଇନ୍ ଇନ୍ କରାଯାଇପାରିବ ନାହିଁ</translation>
@@ -7127,6 +7131,7 @@
 <translation id="8847523528195140327">କଭର୍ ବନ୍ଦ ଥିଲେ ସାଇନ୍ ଆଉଟ୍ କରନ୍ତୁ</translation>
 <translation id="8847988622838149491">USB</translation>
 <translation id="8849001918648564819">ଲୁକ୍କାୟିତ</translation>
+<translation id="8849219423513870962"><ph name="PROFILE_NAME" /> ନାମକ eSIM ପ୍ରୋଫାଇଲକୁ କାଢ଼ିଦେବାର ପ୍ରକ୍ରିୟାକୁ ବାତିଲ୍ କରନ୍ତୁ</translation>
 <translation id="8850251000316748990">ଅଧିକ ଦେଖନ୍ତୁ...</translation>
 <translation id="885246833287407341">API ଫଙ୍କ୍‌ସନ୍‌ର ତର୍କ</translation>
 <translation id="8853586775156634952">ଏହି କାର୍ଡ କେବଳ ଏହି ଡିଭାଇସ୍‌ରେ ସେଭ୍ କରାଯିବ</translation>
@@ -7293,7 +7298,6 @@
 <translation id="9021662811137657072">ଭାଇରସ୍ ଚିହ୍ନଟ କରାଯାଇଛି</translation>
 <translation id="902236149563113779">ଗେମ୍ କିମ୍ବା ହେଡସ୍-ଅପ୍ ଦିଗନିର୍ଦ୍ଦେଶଗୁଡ଼ିକ ପରି, AR ଫିଚରଗୁଡ଼ିକ ପାଇଁ ସାଇଟଗୁଡ଼ିକ ସାଧାରଣତଃ ଆପଣଙ୍କ କ୍ୟାମେରାର ସ୍ଥିତି ଟ୍ରାକ୍ କରିଥାଏ</translation>
 <translation id="9022847679183471841">ଏହି ଆକାଉଣ୍ଟ ପୂର୍ବରୁ ଏହି କମ୍ପ୍ୟୁଟର୍‍‍ରେ <ph name="AVATAR_NAME" />ଦ୍ୱାରା ବ୍ୟବହାର କରାଯାଇଛି।</translation>
-<translation id="9023009238991294202">ଏହି ଡିଭାଇସ୍‌ର ଅନ୍ୟ ଉପଯୋଗକର୍ତ୍ତାମାନେ ଏହି ନେଟ୍‌ୱର୍କ ବ୍ୟବହାର କରିପାରିବେ।</translation>
 <translation id="9023015617655685412">ଏହି ଟାବ୍ ବୁକ୍‍ମାର୍କ କରନ୍ତୁ...</translation>
 <translation id="9023909777842748145">ଏହି ଫିଚରକୁ ବନ୍ଦ କରିବା ଫଳରେ ସିଷ୍ଟମ୍ ଅପଡେଟ୍ ଓ ସୁରକ୍ଷା ପରି ଆପଣଙ୍କ ଡିଭାଇସର ଅତ୍ୟାବଶ୍ୟକ ସେବା ପାଇଁ ଆବଶ୍ୟକୀୟ ସୂଚନା ପଠାଇବା କ୍ଷମତାକୁ ପ୍ରଭାବିତ କରେ ନାହିଁ।</translation>
 <translation id="9024127637873500333">&amp;ନୂଆ ଟାବ୍‌ରେ ଖୋଲନ୍ତୁ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 04303a8..fad3e3e 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">ਕੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਸ਼ੁਰੂਆਤੀ ਪੰਨਾ ਮੁੜ-ਬਹਾਲ ਕਰਨਾ ਹੈ?</translation>
 <translation id="1388253969141979417">ਤੁਹਾਡੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਨੂੰ ਵਰਤਣ ਦੀ ਇਜਾਜ਼ਤ ਹੈ</translation>
 <translation id="1388728792929436380">ਅੱਪਡੇਟਾਂ ਦੇ ਪੂਰੇ ਹੋਣ ਤੋਂ ਬਾਅਦ <ph name="DEVICE_TYPE" /> ਮੁੜ-ਸ਼ੁਰੂ ਹੋਵੇਗਾ।</translation>
-<translation id="138900021244932468">ਕੋਈ ਪ੍ਰੋਫਾਈਲ ਨਹੀਂ ਮਿਲੀ। ਨਵੇਂ ਨੈੱਟਵਰਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ, ਡੀਵਾਈਸ ਕੈਮਰਾ ਵਰਤ ਕੇ QR ਕੋਡ ਨੂੰ ਸਕੈਨ ਕਰੋ ਜਾਂ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਵੱਲੋਂ ਮੁਹੱਈਆ ਕਰਵਾਇਆ ਗਿਆ 'ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਲਈ ਕੋਡ' ਦਾਖਲ ਕਰੋ।</translation>
 <translation id="139013308650923562">ਤੁਹਾਡੇ ਡੀਵਾਈਸ 'ਤੇ ਸਥਾਪਤ ਫ਼ੌਟਾਂ ਨੂੰ ਵਰਤਣ ਦੀ ਇਜਾਜ਼ਤ ਹੈ</translation>
 <translation id="1390548061267426325">ਨਿਯਮਿਤ ਟੈਬ ਦੇ ਤੌਰ ਤੇ ਖੋਲ੍ਹੋ</translation>
 <translation id="1393283411312835250">ਸੂਰਜ ਅਤੇ ਬੱਦਲ</translation>
@@ -5915,6 +5914,7 @@
 <translation id="7506541170099744506">ਤੁਹਾਡੀ <ph name="DEVICE_TYPE" /> ਨੂੰ ਉਦਯੋਗਿਕ ਪ੍ਰਬੰਧਨ ਲਈ ਸਫਲਤਾਪੂਰਵਕ ਦਾਖਲ ਕਰ ਲਿਆ ਗਿਆ ਹੈ।</translation>
 <translation id="7507207699631365376">ਇਸ ਪ੍ਰਦਾਨਕ ਦੀ <ph name="BEGIN_LINK" />ਪਰਦੇਦਾਰੀ ਨੀਤੀ<ph name="END_LINK" /> ਦੇਖੋ</translation>
 <translation id="7507930499305566459">ਸਥਿਤੀ ਜਵਾਬ ਪ੍ਰਮਾਣ-ਪੱਤਰ</translation>
+<translation id="7509246181739783082">ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="7513029293694390567">ਸਟੋਰ ਕੀਤੇ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ-ਆਪ ਸਾਈਟਾਂ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰੋ। ਬੰਦ ਹੋਣ 'ਤੇ, ਤਾਂ ਤੁਹਾਨੂੰ ਇੱਕ ਵੈੱਬਸਾਈਟ 'ਤੇ ਸਾਈਨ-ਇਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਹਰ ਵਾਰ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਵੇਗਾ।</translation>
 <translation id="7514239104543605883">ਆਪਣੇ ਡੀਵਾਈਸ 'ਤੇ ਕਾਪੀ ਕਰੋ</translation>
 <translation id="7514365320538308">ਡਾਊਨਲੋਡ ਕਰੋ</translation>
@@ -6445,7 +6445,6 @@
 <translation id="8061091456562007989">ਇਸਨੂੰ ਵਾਪਸ ਬਦਲੋ</translation>
 <translation id="8061991877177392872">ਇੰਝ ਲੱਗਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ 'ਤੇ ਆਪਣੀ Assistant ਨਾਲ ਪਹਿਲਾਂ ਹੀ Voice Match ਦਾ ਸੈੱਟਅੱਪ ਕਰ ਲਿਆ ਹੈ। ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਇਹਨਾਂ ਪਿਛਲੀਆਂ ਰਿਕਾਰਡਿੰਗਾਂ ਨੂੰ ਅਵਾਜ਼ੀ ਮਾਡਲ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਗਿਆ ਸੀ।</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 ਕਾਗਜ਼ ਦੀ ਸ਼ੀਟ}one{{COUNT} ਕਾਗਜ਼ ਦੀ ਸ਼ੀਟ}other{{COUNT} ਕਾਗਜ਼ ਦੀਆਂ ਸ਼ੀਟਾਂ}}</translation>
-<translation id="8062879968880283306">ਡੀਵਾਈਸ ਕੈਮਰਾ ਵਰਤ ਕੇ QR ਕੋਡ ਨੂੰ ਸਕੈਨ ਕਰੋ ਜਾਂ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਵੱਲੋਂ ਮੁਹੱਈਆ ਕਰਵਾਇਆ ਗਿਆ 'ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਲਈ ਕੋਡ' ਦਾਖਲ ਕਰੋ।</translation>
 <translation id="8063235345342641131">ਪੂਰਵ-ਨਿਰਧਾਰਤ ਹਰਾ ਅਵਤਾਰ</translation>
 <translation id="8063535366119089408">ਫ਼ਾਈਲ ਦੇਖੋ</translation>
 <translation id="8064279191081105977"><ph name="GROUP_NAME" /> ਗਰੁੱਪ - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6865,7 +6864,6 @@
 <translation id="8551588720239073785">ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ ਸੈਟਿੰਗਾਂ</translation>
 <translation id="8553342806078037065">ਹੋਰਾਂ ਲੋਕਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
 <translation id="8554899698005018844">ਕੋਈ ਭਾਸ਼ਾ ਨਹੀਂ</translation>
-<translation id="8555195867496021627">ਕੋਈ ਈ-ਸਿਮ ਪ੍ਰੋਫਾਈਲ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। <ph name="BEGIN_LINK" />ਇੱਥੇ<ph name="END_LINK" /> ਨਵੇਂ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰੋ।</translation>
 <translation id="8557022314818157177">ਤੁਹਾਡੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਕੈਪਚਰ ਹੋਣ ਤੱਕ ਆਪਣੀ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਨੂੰ ਸਪਰਸ਼ ਕਰਕੇ ਰੱਖੋ</translation>
 <translation id="8557930019681227453">ਮੈਨੀਫ਼ੈਸਟ</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{ਸਾਰੇ &amp;ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੋ}=1{&amp;ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੋ}other{ਸਾਰੇ ({COUNT}) &amp;ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੋ}}</translation>
@@ -7045,7 +7043,6 @@
 <translation id="8743164338060742337">ਨੈੱਟਵਰਕ <ph name="NETWORK_COUNT" /> ਵਿੱਚੋਂ <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> ਸਿਗਨਲ ਦੀ ਤੀਬਰਤਾ <ph name="SIGNAL_STRENGTH" />%, ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਕਨੈਕਟ ਕਰੋ</translation>
 <translation id="8746654918629346731">ਤੁਸੀਂ "<ph name="EXTENSION_NAME" />" ਲਈ ਪਹਿਲਾਂ ਹੀ ਬੇਨਤੀ ਕਰ ਦਿੱਤੀ ਹੈ</translation>
 <translation id="874689135111202667">{0,plural, =1{ਕੀ ਇਸ ਸਾਈਟ 'ਤੇ ਇੱਕ ਫ਼ਾਈਲ ਅੱਪਲੋਡ ਕਰਨੀ ਹੈ?}one{ਕੀ ਇਸ ਸਾਈਟ 'ਤੇ # ਫ਼ਾਈਲਾਂ ਅੱਪਲੋਡ ਕਰਨੀਆਂ ਹਨ?}other{ਕੀ ਇਸ ਸਾਈਟ 'ਤੇ # ਫ਼ਾਈਲਾਂ ਅੱਪਲੋਡ ਕਰਨੀਆਂ ਹਨ?}}</translation>
-<translation id="8749556627204742888">ਤੁਸੀਂ ਇਸ ਨੈੱਟਵਰਕ ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਦੇ ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰ ਰਹੇ ਹੋ।</translation>
 <translation id="8749805710397399240">ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਨੂੰ ਕਾਸਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਸਿਸਟਮ ਤਰਜੀਹਾਂ ਵਿੱਚ ਸਕ੍ਰੀਨ ਰਿਕਾਰਡ ਕਰਨ ਸੰਬੰਧੀ ਇਜਾਜ਼ਤ ਦੀ ਜਾਂਚ ਕਰੋ।</translation>
 <translation id="8749863574775030885">ਇੱਕ ਅਗਿਆਤ ਵੈਂਡਰ ਦੀਆਂ USB ਡਿਵਾਈਸਾਂ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰੋ</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ਕਿਸੇ ਸੀਰੀਅਲ ਪੋਰਟ ਨਾਲ ਕਨੈਕਟ ਹੋਣਾ ਚਾਹੁੰਦੀ ਹੈ</translation>
@@ -7108,7 +7105,6 @@
 <translation id="8808744862003883508">ਤੁਸੀਂ Chrome 'ਤੇ ਸਥਾਪਤ ਕੀਤੀਆਂ ਸਾਰੀਆਂ ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਇਸ ਪੰਨੇ 'ਤੇ ਦੇਖ ਸਕਦੇ ਹੋ।</translation>
 <translation id="8809147117840417135">ਹਲਕਾ ਹਰਾ-ਨੀਲਾ</translation>
 <translation id="8811862054141704416">Crostini ਦੀ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਤੱਕ ਪਹੁੰਚ</translation>
-<translation id="8812552797690463522">ਇਸ ਨੈੱਟਵਰਕ ਨੂੰ ਤੁਹਾਡੇ ਨਾਲ ਸਾਂਝਾ ਕੀਤਾ ਗਿਆ ਹੈ।</translation>
 <translation id="8812593354822910461">ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟਾ (<ph name="URL" />) ਵੀ ਕਲੀਅਰ ਕਰੋ ਜੋ ਤੁਹਾਨੂੰ <ph name="DOMAIN" /> ਤੋਂ ਸਾਈਨ-ਆਊਟ ਕਰ ਦੇਵੇਗਾ। <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">ਮੈਨੂੰ ਬਾਅਦ ਵਿੱਚ ਯਾਦ ਕਰਵਾਓ</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> ਵਿੱਚ ਸਾਈਨ-ਇਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ</translation>
@@ -7320,7 +7316,6 @@
 <translation id="9021662811137657072">ਵਾਇਰਸ ਖੋਜਿਆ ਗਿਆ</translation>
 <translation id="902236149563113779">ਸਾਈਟਾਂ ਆਮ ਤੌਰ 'ਤੇ ਗੇਮਾਂ ਜਾਂ ਚਿਤਾਵਨੀ ਦਿਸ਼ਾਵਾਂ ਜਿਹੀਆਂ AR ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ ਤੁਹਾਡੇ ਕੈਮਰੇ ਦੀ ਸਥਿਤੀ ਨੂੰ ਟਰੈਕ ਕਰਦੀਆਂ ਹਨ</translation>
 <translation id="9022847679183471841">ਇਹ ਖਾਤਾ ਪਹਿਲਾਂ ਹੀ ਇਸ ਕੰਪਿਊਟਰ 'ਤੇ <ph name="AVATAR_NAME" /> ਵੱਲੋਂ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ।</translation>
-<translation id="9023009238991294202">ਇਸ ਡੀਵਾਈਸ ਦੇ ਹੋਰ ਵਰਤੋਂਕਾਰ ਇਸ ਨੈੱਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਨ।</translation>
 <translation id="9023015617655685412">ਇਸ ਟੈਬ ਨੂੰ ਬੁੱਕਮਾਰਕ ਕਰੋ...</translation>
 <translation id="9023909777842748145">ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਬੰਦ ਕਰਨ ਨਾਲ ਸਿਸਟਮ ਅੱਪਡੇਟ ਅਤੇ ਸੁਰੱਖਿਆ ਵਰਗੀਆਂ ਜ਼ਰੂਰੀ ਸੇਵਾਵਾਂ ਨੂੰ ਲੋੜੀਂਦੀ ਜਾਣਕਾਰੀ ਭੇਜਣ ਦੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਸਮਰੱਥਾ 'ਤੇ ਕੋਈ ਅਸਰ ਨਹੀਂ ਪੈਂਦਾ ਹੈ।</translation>
 <translation id="9024127637873500333">&amp;ਨਵੀਂ ਟੈਬ ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 5ce71be8d..d0a9ed6c 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Przywrócić domyślną stronę startową?</translation>
 <translation id="1388253969141979417">Zezwolono na używanie mikrofonu</translation>
 <translation id="1388728792929436380">Po ukończeniu aktualizacji <ph name="DEVICE_TYPE" /> uruchomi się ponownie.</translation>
-<translation id="138900021244932468">Nie znaleziono żadnego profilu. Aby skonfigurować nową sieć, zeskanuj aparatem urządzenia kod QR lub wpisz kod aktywacyjny otrzymany od operatora.</translation>
 <translation id="139013308650923562">Mogą używać czcionek zainstalowanych na urządzeniu</translation>
 <translation id="1390548061267426325">Otwórz jako zwykłą kartę</translation>
 <translation id="1393283411312835250">Słońce i chmury</translation>
@@ -5907,6 +5906,7 @@
 <translation id="7506541170099744506">Urządzenie <ph name="DEVICE_TYPE" /> zostało zarejestrowane na potrzeby zarządzania w firmie.</translation>
 <translation id="7507207699631365376">Zapoznaj się z <ph name="BEGIN_LINK" />polityką prywatności<ph name="END_LINK" /> tego dostawcy</translation>
 <translation id="7507930499305566459">Certyfikat obiektu odpowiadającego w zakresie stanu</translation>
+<translation id="7509246181739783082">Weryfikacja tożsamości</translation>
 <translation id="7513029293694390567">Automatycznie loguj się na stronach, używając zapisanych danych logowania. Jeśli ta funkcja jest wyłączona, przed każdym zalogowaniem się zobaczysz prośbę o potwierdzenie.</translation>
 <translation id="7514239104543605883">Skopiuj na swoje urządzenie</translation>
 <translation id="7514365320538308">Pobierz</translation>
@@ -6439,7 +6439,6 @@
 <translation id="8061091456562007989">Cofnij zmiany</translation>
 <translation id="8061991877177392872">Wygląda na to, że Asystent zna już Twój głos z innego urządzenia, na którym masz ustawioną funkcję Voice Match. Zapisane tam nagrania zostały użyte do utworzenia modelu głosu na tym urządzeniu.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 kartka}few{{COUNT} kartki}many{{COUNT} kartek}other{{COUNT} kartki}}</translation>
-<translation id="8062879968880283306">Zeskanuj kod QR, używając aparatu urządzenia, lub wpisz kod aktywacyjny podany przez operatora.</translation>
 <translation id="8063235345342641131">Domyślny zielony awatar</translation>
 <translation id="8063535366119089408">Wyświetl plik</translation>
 <translation id="8064279191081105977">Grupa <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6860,7 +6859,6 @@
 <translation id="8551588720239073785">Ustawienia daty i godziny</translation>
 <translation id="8553342806078037065">Zarządzaj innymi osobami</translation>
 <translation id="8554899698005018844">Brak języka</translation>
-<translation id="8555195867496021627">Brak dostępnych profili eSIM. Nowy profil możesz pobrać <ph name="BEGIN_LINK" />tutaj<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Dotykaj klucza bezpieczeństwa, dopóki Twój odcisk nie zostanie zarejestrowany</translation>
 <translation id="8557930019681227453">Plik manifestu</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Otwórz wszystkie w &amp;nowym oknie}=1{Otwórz w &amp;nowym oknie}few{Otwórz wszystkie ({COUNT}) w &amp;nowym oknie}many{Otwórz wszystkie ({COUNT}) w &amp;nowym oknie}other{Otwórz wszystkie ({COUNT}) w &amp;nowym oknie}}</translation>
@@ -7040,7 +7038,6 @@
 <translation id="8743164338060742337">Sieć <ph name="NETWORK_INDEX" /> z <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, siła sygnału: <ph name="SIGNAL_STRENGTH" />%, zarządzana przez administratora, połącz</translation>
 <translation id="8746654918629346731">Prośba o zainstalowanie „<ph name="EXTENSION_NAME" />” już została przez Ciebie wysłana</translation>
 <translation id="874689135111202667">{0,plural, =1{Przesłać jeden plik do tej witryny?}few{Przesłać # pliki do tej witryny?}many{Przesłać # plików do tej witryny?}other{Przesłać # pliku do tej witryny?}}</translation>
-<translation id="8749556627204742888">Udostępniasz tę sieć innym użytkownikom urządzenia.</translation>
 <translation id="8749805710397399240">Nie można przesłać ekranu Twojego urządzenia. Sprawdź uprawnienia rejestrowania zawartości ekranu w Preferencjach systemowych.</translation>
 <translation id="8749863574775030885">Dostęp do urządzeń USB od nieznanego dostawcy</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> chce się połączyć z portem szeregowym</translation>
@@ -7104,7 +7101,6 @@
 <translation id="8808744862003883508">Na tej stronie możesz zobaczyć wszystkie rozszerzenia zainstalowane w Chrome.</translation>
 <translation id="8809147117840417135">Jasny morski</translation>
 <translation id="8811862054141704416">Dostęp do mikrofonu dla Crostini</translation>
-<translation id="8812552797690463522">Ta sieć została Ci udostępniona.</translation>
 <translation id="8812593354822910461">Wyczyść też dane przeglądania (<ph name="URL" />) – w rezultacie nastąpi wylogowanie z <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Przypomnij później</translation>
 <translation id="8813698869395535039">Problem z logowaniem na konto <ph name="USERNAME" /></translation>
@@ -7316,7 +7312,6 @@
 <translation id="9021662811137657072">Wykryto wirusa</translation>
 <translation id="902236149563113779">Strony zwykle śledzą pozycję kamery na potrzeby funkcji AR, na przykład w grach czy do wyświetlania trasy</translation>
 <translation id="9022847679183471841">Tego konta na tym komputerze używa już <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Inni użytkownicy tego urządzenia mogą używać tej sieci.</translation>
 <translation id="9023015617655685412">Dodaj tę kartę do zakładek...</translation>
 <translation id="9023909777842748145">Wyłączenie tej funkcji nie ogranicza wysyłania przez urządzenie informacji potrzebnych do działania kluczowych usług, takich jak aktualizacje systemu czy zabezpieczenia.</translation>
 <translation id="9024127637873500333">&amp;Otwórz w nowej karcie</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index f6ebab38..5506733b 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">Restaurar página de inicialização padrão?</translation>
 <translation id="1388253969141979417">Permitir o uso do microfone</translation>
 <translation id="1388728792929436380">O <ph name="DEVICE_TYPE" /> será reiniciado quando as atualizações forem concluídas.</translation>
-<translation id="138900021244932468">Nenhum perfil descoberto. Para configurar uma nova rede, leia o código QR usando a câmera do dispositivo ou digite o código de ativação fornecido pela sua operadora.</translation>
 <translation id="139013308650923562">Com autorização para usar as fontes instaladas no dispositivo</translation>
 <translation id="1390548061267426325">Abrir como guia normal</translation>
 <translation id="1393283411312835250">Sol e nuvens</translation>
@@ -5932,6 +5931,7 @@
 <translation id="7506541170099744506">Seu <ph name="DEVICE_TYPE" /> foi inscrito para o gerenciamento empresarial.</translation>
 <translation id="7507207699631365376">Consulte a <ph name="BEGIN_LINK" />política de privacidade<ph name="END_LINK" /> deste provedor</translation>
 <translation id="7507930499305566459">Certificado do respondente de status</translation>
+<translation id="7509246181739783082">Verificar sua identidade</translation>
 <translation id="7513029293694390567">Faça login automaticamente nos sites que usam credenciais armazenadas. Quando o recurso estiver desativado, será necessário fornecer uma confirmação todas as vezes que fizer login em um site.</translation>
 <translation id="7514239104543605883">Copiar para o dispositivo</translation>
 <translation id="7514365320538308">Fazer o download</translation>
@@ -6464,7 +6464,6 @@
 <translation id="8061091456562007989">Mudar para configuração anterior</translation>
 <translation id="8061991877177392872">Parece que você já configurou o Voice Match com o Google Assistente em outro dispositivo. As gravações anteriores foram usadas para criar um modelo de voz aqui.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 folha de papel}one{{COUNT} folha de papel}other{{COUNT} folhas de papel}}</translation>
-<translation id="8062879968880283306">Use a câmera do dispositivo para ler o código QR ou insira o código de ativação fornecido pela operadora.</translation>
 <translation id="8063235345342641131">Avatar verde padrão</translation>
 <translation id="8063535366119089408">Ver arquivo</translation>
 <translation id="8064279191081105977">Grupo <ph name="GROUP_NAME" />: <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6885,7 +6884,6 @@
 <translation id="8551588720239073785">Configurações de data e hora</translation>
 <translation id="8553342806078037065">Gerenciar outras pessoas</translation>
 <translation id="8554899698005018844">Sem idioma</translation>
-<translation id="8555195867496021627">Nenhum perfil de eSIM disponível. Faça o download de um novo perfil <ph name="BEGIN_LINK" />tocando aqui<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Continue tocando na sua chave de segurança até capturar sua impressão digital</translation>
 <translation id="8557930019681227453">Manifesto</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Abrir tudo em &amp;uma nova janela}=1{Abrir em &amp;uma nova janela}one{Abrir tudo ({COUNT}) em &amp;uma nova janela}other{Abrir tudo ({COUNT}) em &amp;uma nova janela}}</translation>
@@ -7065,7 +7063,6 @@
 <translation id="8743164338060742337">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, intensidade do sinal em <ph name="SIGNAL_STRENGTH" />%, gerenciada pelo administrador, conectar</translation>
 <translation id="8746654918629346731">Você já solicitou "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Fazer upload de um arquivo para este site?}one{Fazer upload de # arquivo para este site?}other{Fazer upload de # arquivos para este site?}}</translation>
-<translation id="8749556627204742888">Você está compartilhando a rede com outros usuários do dispositivo.</translation>
 <translation id="8749805710397399240">Não foi possível transmitir a tela. Verifique a permissão do Gravador de tela nas preferências do sistema.</translation>
 <translation id="8749863574775030885">Acessar dispositivos USB de um fornecedor desconhecido</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> quer se conectar a uma porta serial</translation>
@@ -7128,7 +7125,6 @@
 <translation id="8808744862003883508">Nesta página, é possível ver todas as extensões instaladas no Chrome.</translation>
 <translation id="8809147117840417135">Verde-água</translation>
 <translation id="8811862054141704416">Acesso ao microfone no Crostini</translation>
-<translation id="8812552797690463522">Esta rede é compartilhada com você.</translation>
 <translation id="8812593354822910461">Limpar também os dados de navegação (<ph name="URL" />). Sua conta poderá ser desconectada de <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Lembrar mais tarde</translation>
 <translation id="8813698869395535039">Não é possível fazer login em <ph name="USERNAME" /></translation>
@@ -7340,7 +7336,6 @@
 <translation id="9021662811137657072">Vírus detectado</translation>
 <translation id="902236149563113779">Os sites geralmente rastreiam a posição da câmera para recursos de RA, como jogos ou avisos de rotas</translation>
 <translation id="9022847679183471841">Essa conta já está sendo utilizada neste computador por <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Outros usuários deste dispositivo podem usar esta rede.</translation>
 <translation id="9023015617655685412">Adicionar esta guia aos favoritos...</translation>
 <translation id="9023909777842748145">A desativação desse recurso não afeta a capacidade do dispositivo de enviar as informações necessárias para serviços básicos, como atualizações do sistema e segurança.</translation>
 <translation id="9024127637873500333">&amp;Abrir em nova guia</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index c7e693d..2254e80 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">Pretende restaurar a página inicial predefinida?</translation>
 <translation id="1388253969141979417">Com autorização para utilizar o seu microfone</translation>
 <translation id="1388728792929436380">O <ph name="DEVICE_TYPE" /> irá reiniciar quando as atualizações estiverem concluídas.</translation>
-<translation id="138900021244932468">Não foi encontrado qualquer perfil. Para configurar uma nova rede, leia o código QR com a câmara do dispositivo ou introduza o código de ativação fornecido pelo seu operador.</translation>
 <translation id="139013308650923562">Com autorização para utilizar tipos de letra instalados no dispositivo</translation>
 <translation id="1390548061267426325">Abrir como Separador Normal</translation>
 <translation id="1393283411312835250">Sol e nuvens</translation>
@@ -5914,6 +5913,7 @@
 <translation id="7506541170099744506">O seu <ph name="DEVICE_TYPE" /> foi inscrito com êxito para gestão empresarial.</translation>
 <translation id="7507207699631365376">Veja a <ph name="BEGIN_LINK" />política de privacidade<ph name="END_LINK" /> deste fornecedor.</translation>
 <translation id="7507930499305566459">Certificado do dispositivo de resposta do estado</translation>
+<translation id="7509246181739783082">Valide a sua identidade</translation>
 <translation id="7513029293694390567">Inicie sessão automaticamente nos Sites com as credenciais armazenadas. Se esta funcionalidade estiver desativada, é-lhe pedida sempre uma confirmação antes de iniciar sessão num Website.</translation>
 <translation id="7514239104543605883">Copiar para o dispositivo</translation>
 <translation id="7514365320538308">Transferir</translation>
@@ -6446,7 +6446,6 @@
 <translation id="8061091456562007989">Repor</translation>
 <translation id="8061991877177392872">Já configurou o Voice Match com o Assistente noutro dispositivo. Estas gravações anteriores foram utilizadas para criar um modelo de voz neste dispositivo.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 folha de papel}other{{COUNT} folhas de papel}}</translation>
-<translation id="8062879968880283306">Leia o código QR com a câmara do dispositivo ou introduza o código de ativação fornecido pelo seu operador.</translation>
 <translation id="8063235345342641131">Avatar verde predefinido</translation>
 <translation id="8063535366119089408">Ver ficheiro</translation>
 <translation id="8064279191081105977">Grupo <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6866,7 +6865,6 @@
 <translation id="8551588720239073785">Definições de data e hora</translation>
 <translation id="8553342806078037065">Gerir outras pessoas</translation>
 <translation id="8554899698005018844">Nenhum idioma</translation>
-<translation id="8555195867496021627">Não existem perfis eSIM disponíveis. Transfira um novo perfil <ph name="BEGIN_LINK" />aqui<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Continue a tocar na chave de segurança até que a sua impressão digital seja capturada.</translation>
 <translation id="8557930019681227453">Manifesto</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Abrir todos numa &amp;nova janela}=1{Abrir numa &amp;nova Janela}other{Abrir todos ({COUNT}) numa &amp;nova janela}}</translation>
@@ -7046,7 +7044,6 @@
 <translation id="8743164338060742337">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, intensidade do sinal: <ph name="SIGNAL_STRENGTH" />%, gerida pelo administrador, ligar</translation>
 <translation id="8746654918629346731">Já solicitou a extensão "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Pretender carregar um ficheiro para este site?}other{Pretende carregar # ficheiros para este site?}}</translation>
-<translation id="8749556627204742888">Está a partilhar esta rede com outros utilizadores deste dispositivo.</translation>
 <translation id="8749805710397399240">Não é possível transmitir o seu ecrã. Verifique a autorização Gravação de ecrã nas Preferências do sistema.</translation>
 <translation id="8749863574775030885">Aceder a dispositivos USB de um fornecedor desconhecido</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> pretende estabelecer ligação a uma porta de série</translation>
@@ -7108,7 +7105,6 @@
 <translation id="8808744862003883508">Nesta página, pode ver todas as extensões instaladas no Chrome.</translation>
 <translation id="8809147117840417135">Azul esverdeado claro</translation>
 <translation id="8811862054141704416">Acesso ao microfone do Crostini</translation>
-<translation id="8812552797690463522">Esta rede é partilhada consigo.</translation>
 <translation id="8812593354822910461">Limpar também os dados de navegação (<ph name="URL" />), o que terminará a sua sessão em <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Lembrar-me mais tarde</translation>
 <translation id="8813698869395535039">Não é possível iniciar sessão na conta <ph name="USERNAME" /></translation>
@@ -7320,7 +7316,6 @@
 <translation id="9021662811137657072">Vírus detetado</translation>
 <translation id="902236149563113779">Normalmente, os sites monitorizam a posição da câmara para funcionalidades de realidade aumentada, como jogos ou direções de avisos.</translation>
 <translation id="9022847679183471841">Esta conta já está a ser utilizada neste computador por <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Outros utilizadores deste dispositivo podem utilizar esta rede.</translation>
 <translation id="9023015617655685412">Adicionar este separador aos marcadores…</translation>
 <translation id="9023909777842748145">A desativação desta funcionalidade não afeta a capacidade de o dispositivo enviar as informações necessárias para serviços essenciais, como atualizações do sistema e segurança.</translation>
 <translation id="9024127637873500333">&amp;Abrir num novo separador</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index a5a0f8d..2b769f3 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -357,7 +357,6 @@
 <translation id="138784436342154190">Restabilești pagina de pornire prestabilită?</translation>
 <translation id="1388253969141979417">Au permisiunea de a folosi microfonul</translation>
 <translation id="1388728792929436380">Acest <ph name="DEVICE_TYPE" /> va reporni după finalizarea actualizărilor.</translation>
-<translation id="138900021244932468">Nu s-au găsit profiluri. Pentru a configura o rețea nouă, scanează codul QR folosind camera foto a dispozitivului sau introdu codul de activare oferit de operator.</translation>
 <translation id="139013308650923562">Au permisiunea de a folosi fonturile instalate pe dispozitiv</translation>
 <translation id="1390548061267426325">Deschideți ca filă obișnuită</translation>
 <translation id="1393283411312835250">Soare și nori</translation>
@@ -5914,6 +5913,7 @@
 <translation id="7506541170099744506">Dispozitivul <ph name="DEVICE_TYPE" /> a fost înscris pentru gestionarea de întreprindere.</translation>
 <translation id="7507207699631365376">Consultă <ph name="BEGIN_LINK" />politica de confidențialitate<ph name="END_LINK" /> a furnizorului</translation>
 <translation id="7507930499305566459">Certificat de respondent de stare</translation>
+<translation id="7509246181739783082">Confirmă-ți identitatea</translation>
 <translation id="7513029293694390567">Te conectezi automat la site-uri folosind datele de conectare stocate. Dacă funcția este dezactivată, ți se va solicita confirmarea de fiecare dată înainte de a te conecta la un site.</translation>
 <translation id="7514239104543605883">Copiază pe dispozitiv</translation>
 <translation id="7514365320538308">Descarcă</translation>
@@ -6446,7 +6446,6 @@
 <translation id="8061091456562007989">Revino la setările inițiale</translation>
 <translation id="8061991877177392872">Se pare că ai configurat deja Voice Match cu Asistentul pe alt dispozitiv. Aceste înregistrări anterioare au fost folosite pentru a crea un model vocal pe acest dispozitiv.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{O coală de hârtie}few{{COUNT} coli de hârtie}other{{COUNT} de coli de hârtie}}</translation>
-<translation id="8062879968880283306">Scanează codul QR folosind camera foto a dispozitivului sau introdu codul de activare oferit de operator.</translation>
 <translation id="8063235345342641131">Avatar verde prestabilit</translation>
 <translation id="8063535366119089408">Vezi fișierul</translation>
 <translation id="8064279191081105977">Grupul <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6867,7 +6866,6 @@
 <translation id="8551588720239073785">Setări de dată și oră</translation>
 <translation id="8553342806078037065">Gestionează alte persoane</translation>
 <translation id="8554899698005018844">Nicio limbă</translation>
-<translation id="8555195867496021627">Nu sunt disponibile profiluri eSIM. Descarcă un profil nou de <ph name="BEGIN_LINK" />aici<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Atinge cheia de securitate până când ți se capturează amprenta</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Deschide-le pe toate într-o fereastră &amp;nouă}=1{Deschide într-o fereastră &amp;nouă}few{Deschide-le pe toate ({COUNT}) într-o fereastră &amp;nouă}other{Deschide-le pe toate ({COUNT}) într-o fereastră &amp;nouă}}</translation>
@@ -7047,7 +7045,6 @@
 <translation id="8743164338060742337">Rețeaua <ph name="NETWORK_INDEX" /> din <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, puterea semnalului: <ph name="SIGNAL_STRENGTH" /> %, gestionată de administratorul tău, conectează-te</translation>
 <translation id="8746654918629346731">Ai solicitat deja „<ph name="EXTENSION_NAME" />”</translation>
 <translation id="874689135111202667">{0,plural, =1{Încarci un fișier pe acest site?}few{Încarci # fișiere pe acest site?}other{Încarci # de fișiere pe acest site?}}</translation>
-<translation id="8749556627204742888">Permiți accesul la această rețea altor utilizatori ai dispozitivului.</translation>
 <translation id="8749805710397399240">Nu se poate proiecta ecranul. Verifică permisiunea pentru înregistrarea ecranului din Preferințe de sistem.</translation>
 <translation id="8749863574775030885">Accesează dispozitive USB de la un producător necunoscut</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> vrea să se conecteze la un port serial</translation>
@@ -7110,7 +7107,6 @@
 <translation id="8808744862003883508">În această pagină poți vedea toate extensiile instalate în Chrome.</translation>
 <translation id="8809147117840417135">Turcoaz deschis</translation>
 <translation id="8811862054141704416">Accesul la microfon în Crostini</translation>
-<translation id="8812552797690463522">Ai acces la această rețea.</translation>
 <translation id="8812593354822910461">Șterge și datele de navigare (<ph name="URL" />), acțiune care te poate deconecta de la <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Amintește-mi mai târziu</translation>
 <translation id="8813698869395535039">Nu te poți conecta folosind <ph name="USERNAME" /></translation>
@@ -7322,7 +7318,6 @@
 <translation id="9021662811137657072">S-a detectat un virus</translation>
 <translation id="902236149563113779">Site-urile urmăresc de obicei poziția camerei pentru opțiuni RA, cum ar fi jocuri sau indicații de orientare heads-up</translation>
 <translation id="9022847679183471841">Acest cont este utilizat deja pe acest computer de <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Alți utilizatori ai dispozitivului pot folosi această rețea.</translation>
 <translation id="9023015617655685412">Marchează această filă...</translation>
 <translation id="9023909777842748145">Dezactivarea acestei funcții nu afectează capacitatea dispozitivului de a trimite informațiile necesare pentru servicii esențiale, cum ar fi actualizările de sistem și securitate.</translation>
 <translation id="9024127637873500333">&amp;Deschideți într-o filă nouă</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 4258dd8..c2e4a97 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">Восстановить настройки стартовой страницы по умолчанию?</translation>
 <translation id="1388253969141979417">Разрешить сайтам использовать микрофон</translation>
 <translation id="1388728792929436380">После установки обновлений <ph name="DEVICE_TYPE" /> перезагрузится.</translation>
-<translation id="138900021244932468">Профили не найдены. Чтобы настроить новую сеть, отсканируйте QR-код с помощью камеры устройства или введите код активации, предоставленный вашим оператором связи.</translation>
 <translation id="139013308650923562">Сайты, которым разрешено использовать шрифты, установленные на устройстве</translation>
 <translation id="1390548061267426325">Открыть в обычной вкладке</translation>
 <translation id="1393283411312835250">Солнце и облака</translation>
@@ -5913,6 +5912,7 @@
 <translation id="7506541170099744506">Ваше устройство <ph name="DEVICE_TYPE" /> зарегистрировано для использования в организации.</translation>
 <translation id="7507207699631365376">Посмотреть <ph name="BEGIN_LINK" />политику конфиденциальности<ph name="END_LINK" /> этого поставщика услуг</translation>
 <translation id="7507930499305566459">Сертификат ответчика о состоянии</translation>
+<translation id="7509246181739783082">Подтвердите личность</translation>
 <translation id="7513029293694390567">Автоматически входить на сайты с помощью сохраненного имени пользователя и пароля. Когда функция отключена, эти данные нужно вводить при каждом входе.</translation>
 <translation id="7514239104543605883">Копировать на мое устройство</translation>
 <translation id="7514365320538308">Скачать</translation>
@@ -6445,7 +6445,6 @@
 <translation id="8061091456562007989">Вернуть прежние настройки</translation>
 <translation id="8061991877177392872">Похоже, вы уже настроили Voice Match на другом устройстве. Образец вашего голоса создан на основе предыдущих записей.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 лист бумаги}one{{COUNT} лист бумаги}few{{COUNT} листа бумаги}many{{COUNT} листов бумаги}other{{COUNT} листа бумаги}}</translation>
-<translation id="8062879968880283306">Отсканируйте QR-код с помощью камеры устройства или введите код активации, предоставленный вашим оператором связи.</translation>
 <translation id="8063235345342641131">Аватар по умолчанию (зеленый)</translation>
 <translation id="8063535366119089408">Разрешить</translation>
 <translation id="8064279191081105977">Группа <ph name="GROUP_NAME" />: <ph name="GROUP_CONTENTS" />, <ph name="COLLAPSED_STATE" /></translation>
@@ -6865,7 +6864,6 @@
 <translation id="8551588720239073785">Настройки даты и времени</translation>
 <translation id="8553342806078037065">Другие пользователи</translation>
 <translation id="8554899698005018844">Язык не указан</translation>
-<translation id="8555195867496021627">Нет доступных профилей eSIM. <ph name="BEGIN_LINK" />Скачайте<ph name="END_LINK" /> новый профиль.</translation>
 <translation id="8557022314818157177">Продолжайте прикасаться к сканеру отпечатков пальцев на электронном ключе, пока отпечаток не будет сохранен.</translation>
 <translation id="8557930019681227453">Манифест</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Открыть все URL в &amp;новом окне}=1{Открыть URL в &amp;новом окне}one{Открыть все URL ({COUNT}) в &amp;новом окне}few{Открыть все URL ({COUNT}) в &amp;новом окне}many{Открыть все URL ({COUNT}) в &amp;новом окне}other{Открыть все URL ({COUNT}) в &amp;новом окне}}</translation>
@@ -7045,7 +7043,6 @@
 <translation id="8743164338060742337">Сеть <ph name="NETWORK_INDEX" /> из <ph name="NETWORK_COUNT" />, название – "<ph name="NETWORK_NAME" />", оператор – <ph name="NETWORK_PROVIDER_NAME" />, уровень сигнала – <ph name="SIGNAL_STRENGTH" /> %, под управлением администратора, подключиться</translation>
 <translation id="8746654918629346731">Вы уже запросили расширение "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Загрузить файл на этот сайт?}one{Загрузить # файл на этот сайт?}few{Загрузить # файла на этот сайт?}many{Загрузить # файлов на этот сайт?}other{Загрузить # файла на этот сайт?}}</translation>
-<translation id="8749556627204742888">Вы открыли доступ к этой сети другим пользователям устройства.</translation>
 <translation id="8749805710397399240">Не удается выполнить трансляцию экрана. Откройте системные настройки и предоставьте разрешение "Запись экрана".</translation>
 <translation id="8749863574775030885">Доступ к USB-устройствам от неизвестного поставщика</translation>
 <translation id="8750155211039279868">Сайт <ph name="ORIGIN" /> запрашивает разрешение подключиться к последовательному порту</translation>
@@ -7110,7 +7107,6 @@
 <translation id="8808744862003883508">На этой странице показаны все расширения, установленные в Chrome.</translation>
 <translation id="8809147117840417135">Светло-бирюзовый</translation>
 <translation id="8811862054141704416">Доступ к микрофону в Crostini</translation>
-<translation id="8812552797690463522">У вас есть доступ к этой сети.</translation>
 <translation id="8812593354822910461">Также удалить данные о работе в браузере (<ph name="URL" />). При этом вы выйдете из аккаунта на сайте <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Напомнить позже</translation>
 <translation id="8813698869395535039">Не удалось войти в аккаунт <ph name="USERNAME" /></translation>
@@ -7322,7 +7318,6 @@
 <translation id="9021662811137657072">Обнаружен вирус</translation>
 <translation id="902236149563113779">Обычно сайты отслеживают положение камеры, чтобы использовать связанные с дополненной реальностью функции, например в играх или при показе маршрутов с подсказками.</translation>
 <translation id="9022847679183471841">Этот аккаунт уже используется на данном компьютере пользователем <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">У других пользователей устройства есть доступ к этой сети.</translation>
 <translation id="9023015617655685412">Добавить страницу в закладки...</translation>
 <translation id="9023909777842748145">Запретить отправку данных можно в любой момент. Это не повлияет на обновление и безопасность системы.</translation>
 <translation id="9024127637873500333">&amp;Открыть в новой вкладке</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 5bd0c87..39ed56a 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">පෙරනිමි ආරම්භක පිටුව ප්‍රතිසාධනය කරනවා ද?</translation>
 <translation id="1388253969141979417">ඔබගේ මයික්‍රෆෝනය භාවිත කිරීමට ඉඩ දේ</translation>
 <translation id="1388728792929436380">යාවත්කාලීන සම්පූර්ණ වූ විට <ph name="DEVICE_TYPE" /> යළි ආරම්භ වනු ඇත.</translation>
-<translation id="138900021244932468">පැතිකඩවල් සොයා නොගන්නා ලදි. නව ජාලයක් පිහිටුවීමට, උපාංග කැමරාව භාවිතයෙන් QR කේතය ස්කෑන් කරන්න හෝ ඔබගේ වාහකය විසින් සපයන ලද සක්‍රිය කිරීමේ කේතය ඇතුළු කරන්න</translation>
 <translation id="139013308650923562">ඔබගේ උපාංගයේ ස්ථාපනය කර ඇති ෆොන්ට භාවිත කිරීමට ඉඩ දේ</translation>
 <translation id="1390548061267426325">සාමාන්‍ය ටැබයක් ලෙස විවෘත කරන්න</translation>
 <translation id="1393283411312835250">හිරු හා වළාකුළු</translation>
@@ -5916,6 +5915,7 @@
 <translation id="7506541170099744506">ඔබගේ <ph name="DEVICE_TYPE" /> ව්‍යවසාය කළමනාකරණය සඳහා සාර්ථකව ලියාපදිංචි කර ඇත.</translation>
 <translation id="7507207699631365376">මෙම සැපයුම්කරුගේ <ph name="BEGIN_LINK" />පෞද්ගලිකත්ව ප්‍රතිපත්තිය<ph name="END_LINK" /> බලන්න</translation>
 <translation id="7507930499305566459">තත්ත්ව ප්‍රතිචාර සහතිකය</translation>
+<translation id="7509246181739783082">ඔබගේ අනන්‍යතාව සත්‍යාපනය කරන්න</translation>
 <translation id="7513029293694390567">ගබඩා කළ අක්තපත්‍ර භාවිතයෙන් වෙබ් අඩවි වෙත ස්වයංක්‍රීයව පුරන්න. අබල කළහොත්, ඔබ වෙබ් අඩවියකට පිරීමට පෙර සෑම විටම ඔබෙන් තහවුරු කිරීමට ඉල්ලනු ඇත.</translation>
 <translation id="7514239104543605883">ඔබේ උපාංගයට පිටපත් කරන්න</translation>
 <translation id="7514365320538308">බාගන්න</translation>
@@ -6446,7 +6446,6 @@
 <translation id="8061091456562007989">එය නැවත වෙනස් කරන්න</translation>
 <translation id="8061991877177392872">ඔබ දැනටමත් ඔබගේ Google සහායක සමඟ තවත් උපාංගයක Voice Match පිහිටුවා ඇති බව පෙනේ. මෙම උපාංගයේ කටහඬ ආකෘතියක් සෑදීමට මෙම පෙර පටිගත කිරීම් භාවිත කරන ලදී.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 කඩදාසි කොළයක්}one{කඩදාසි කොළ {COUNT} ක්}other{කඩදාසි කොළ {COUNT} ක්}}</translation>
-<translation id="8062879968880283306">උපාංග කැමරාව භාවිතයෙන් QR කේතය ස්කෑන් කරන්න හෝ ඔබේ වාහකය විසින් සපයන ලද සක්‍රිය කිරීමේ කේතය ඇතුළත් කරන්න.</translation>
 <translation id="8063235345342641131">පෙරනිමි කොළ නියුරුව</translation>
 <translation id="8063535366119089408">ගොනුව බලන්න</translation>
 <translation id="8064279191081105977">සමූහය <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6867,7 +6866,6 @@
 <translation id="8551588720239073785">දිනය සහ වේලාව සැකසීම්</translation>
 <translation id="8553342806078037065">අනෙක් පුද්ගලයින් කළමනාකරණය කරන්න</translation>
 <translation id="8554899698005018844">භාෂාවක් නැත</translation>
-<translation id="8555195867496021627">ලබා ගත හැකි eSIM පැතිකඩවල් නැත. <ph name="BEGIN_LINK" />මෙහිදී<ph name="END_LINK" /> නව පැතිකඩක් බාගන්න.</translation>
 <translation id="8557022314818157177">ඔබේ ඇඟිලි සලකුණ ග්‍රහණ කරන තෙක් ඔබේ ආරක්‍ෂක යතුර ස්පර්ශ කරමින් සිටින්න</translation>
 <translation id="8557930019681227453">මැනිෆෙස්ට්</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{සියල්ල &amp;නව කවුළුවක විවෘත කරන්න}=1{&amp;නව කවුළුවක විවෘත කරන්න}one{සියල්ල ({COUNT}) &amp;නව කවුළුවක විවෘත කරන්න}other{සියල්ල ({COUNT}) &amp;නව කවුළුවක විවෘත කරන්න}}</translation>
@@ -7047,7 +7045,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" />න් <ph name="NETWORK_INDEX" /> වැනි ජාලය, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> සංඥා ප්‍රබලතාව <ph name="SIGNAL_STRENGTH" />%, ඔබගේ පරිපාලකයා විසින් කළමනාකරණය කරයි, සබඳින්න</translation>
 <translation id="8746654918629346731">ඔබ දැනටමත් "<ph name="EXTENSION_NAME" />" ඉල්ලා ඇත</translation>
 <translation id="874689135111202667">{0,plural, =1{මෙම අඩවියට එක් ගොනුවක් උඩුගත කරන්න ද?}one{මෙම අඩවියට ගොනු #ක් උඩුගත කරන්න ද?}other{මෙම අඩවියට ගොනු #ක් උඩුගත කරන්න ද?}}</translation>
-<translation id="8749556627204742888">ඔබ මෙම ජාලය මෙම උපාංගයේ අනෙකුත් පරිශීලකයින් සමඟ බෙදා ගනියි.</translation>
 <translation id="8749805710397399240">ඔබගේ තිරය විකාශය කළ නොහැකිය. පද්ධති මනාප තුළ තිර පිටපත් කිරීම් අවසරය පරීක්ෂා කරන්න.</translation>
 <translation id="8749863574775030885">නොදන්නා නිශ්පාදකයකුගේ USB උපාංගයන්ට පිවිසෙන්න</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> හට අනුක්‍රමික තොටකට සම්බන්ධ වීමට අවශ්‍යයි</translation>
@@ -7110,7 +7107,6 @@
 <translation id="8808744862003883508">මෙම පිටුව මත, ඔබට Chrome තුළ ස්ථාපිත සියලුම දිගු බැලිය හැක.</translation>
 <translation id="8809147117840417135">ලා හරිත නිල්</translation>
 <translation id="8811862054141704416">Crostini මයික්‍රොෆෝන ප්‍රවේශය</translation>
-<translation id="8812552797690463522">මෙම ජාලය ඔබ හා බෙදා ගැනේ.</translation>
 <translation id="8812593354822910461">ඔබව <ph name="DOMAIN" /> වෙතින් වරන බ්‍රවුස් කිරීමේ දත්ත (<ph name="URL" />) ද හිස් කරන්න. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">මට පසුව සිහිකැඳවන්න</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> වෙත පුරනය විය නොහැක</translation>
@@ -7322,7 +7318,6 @@
 <translation id="9021662811137657072">වයිරසයක් හඳුනාගැනින</translation>
 <translation id="902236149563113779">අඩවි සාමාන්‍යයෙන් ක්‍රීඩා හෝ පූර්ව දැනුම්දීම් දිශා වැනි AR විශේෂාංග සඳහා ඔබගේ කැමරාවේ පිහිටීම හඹා යයි</translation>
 <translation id="9022847679183471841">මෙම ගිණුම දැනටමත් <ph name="AVATAR_NAME" /> විසින් මෙම පරිගණකයේ භාවිතා කරමින් පවතී.</translation>
-<translation id="9023009238991294202">මෙම උපාංගයේ වෙනත් පරිශීලකයින්ට මෙම ජාලය භාවිතා කළ හැකිය.</translation>
 <translation id="9023015617655685412">මෙම පටිත්ත පිටුසන් කරන්න...</translation>
 <translation id="9023909777842748145">මෙම විශේෂාංගය අක්‍රිය කිරීම ඔබගේ උපාංගයේ පද්ධති යාවත්කාලීන කිරීම සහ ආරක්‍ෂාව වැනි අත්‍යවශ්‍ය සේවාවලට තොරතුරු යැවීමේ හැකියාවට බලපෑමක් නොකරයි.</translation>
 <translation id="9024127637873500333">නව ටැබයක &amp;විවෘත කරන්න</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 3458db95..db45475 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Obnoviť predvolenú stránku pri spustení?</translation>
 <translation id="1388253969141979417">Môže používať váš mikrofón</translation>
 <translation id="1388728792929436380">Zariadenie <ph name="DEVICE_TYPE" /> bude po dokončení aktualizácií reštartované.</translation>
-<translation id="138900021244932468">Neboli vyhľadané žiadne profily. Ak chcete nastaviť novú sieť, naskenujte QR kód fotoaparátom zariadenia alebo zadajte aktivačný kód, ktorý vám poskytol operátor.</translation>
 <translation id="139013308650923562">Weby s povolením používať písma nainštalované v zariadení</translation>
 <translation id="1390548061267426325">Otvoriť ako bežnú kartu</translation>
 <translation id="1393283411312835250">Slnko a mraky</translation>
@@ -5914,6 +5913,7 @@
 <translation id="7506541170099744506">Zariadenie <ph name="DEVICE_TYPE" /> bolo úspešne zaregistrované na podnikovú správu.</translation>
 <translation id="7507207699631365376">Zobraziť <ph name="BEGIN_LINK" />pravidlá ochrany súkromia<ph name="END_LINK" /> tohto poskytovateľa</translation>
 <translation id="7507930499305566459">Certifikát stavového odpovedajúceho zariadenia</translation>
+<translation id="7509246181739783082">Overenie totožnosti</translation>
 <translation id="7513029293694390567">Prihlasovať sa na weboch automaticky pomocou uložených prihlasovacích údajov. Keď je táto funkcia vypnutá, zobrazí sa vám pred každým prihlásením žiadosť o potvrdenie.</translation>
 <translation id="7514239104543605883">Kopírovať do zariadenia</translation>
 <translation id="7514365320538308">Stiahnuť</translation>
@@ -6446,7 +6446,6 @@
 <translation id="8061091456562007989">Zmeniť na pôvodné</translation>
 <translation id="8061991877177392872">Zdá sa, že ste už funkciu Voice Match nastavili pomocou Asistenta v inom zariadení. Pomocou týchto predchádzajúcich záznamov bol vytvorený hlasový model v tomto zariadení.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 hárok papiera}few{{COUNT} hárky papiera}many{{COUNT} hárka papiera}other{{COUNT} hárkov papiera}}</translation>
-<translation id="8062879968880283306">Naskenujte QR kód fotoaparátom zariadenia alebo zadajte aktivačný kód poskytnutý operátorom</translation>
 <translation id="8063235345342641131">Predvolený zelený avatar</translation>
 <translation id="8063535366119089408">Zobraziť súbor</translation>
 <translation id="8064279191081105977">Skupina <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6866,7 +6865,6 @@
 <translation id="8551588720239073785">Nastavenia dátumu a času</translation>
 <translation id="8553342806078037065">Spravovať ďalšie osoby</translation>
 <translation id="8554899698005018844">Žiadny jazyk</translation>
-<translation id="8555195867496021627">Nie sú k dispozícii žiadne profily eSIM. <ph name="BEGIN_LINK" />Tu stiahnite nový profil.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Klepte na bezpečnostný kľúč, dokým sa odtlačok prsta nenasníma</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Otvoriť všetky v novom okne}=1{Otvoriť v novom okne}few{Otvoriť všetky ({COUNT}) v novom okne}many{Otvoriť všetky ({COUNT}) v novom okne}other{Otvoriť všetky ({COUNT}) v novom okne}}</translation>
@@ -7046,7 +7044,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" />. sieť z <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, intenzita signálu <ph name="SIGNAL_STRENGTH" /> %, ovládaná správcom, pripojenie</translation>
 <translation id="8746654918629346731">O rozšírenie <ph name="EXTENSION_NAME" /> ste už požiadali</translation>
 <translation id="874689135111202667">{0,plural, =1{Nahrať na tento web jeden súbor?}few{Nahrať na tento web # súbory?}many{Nahrať na tento web # súboru?}other{Nahrať na tento web # súborov?}}</translation>
-<translation id="8749556627204742888">Túto sieť zdieľate s ďalšími používateľmi tohto zariadenia.</translation>
 <translation id="8749805710397399240">Obrazovka sa nedá prenášať. Skontrolujte povolenie nahrávať obrazovku v predvoľbách systému.</translation>
 <translation id="8749863574775030885">Prístup k zariadeniam USB od neznámeho dodávateľa</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> sa chce pripojiť k sériovému portu</translation>
@@ -7110,7 +7107,6 @@
 <translation id="8808744862003883508">Na tejto stránke nájdete všetky rozšírenia nainštalované v Chrome.</translation>
 <translation id="8809147117840417135">Svetlá modrozelená</translation>
 <translation id="8811862054141704416">Prístup k mikrofónu v systéme Crostini</translation>
-<translation id="8812552797690463522">Táto sieť je s vami zdieľaná.</translation>
 <translation id="8812593354822910461">Vymazať tiež dáta prehliadania (<ph name="URL" />), po čom vás systém odhlási z domény <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Pripomenúť neskôr</translation>
 <translation id="8813698869395535039">Nedá sa prihlásiť do účtu <ph name="USERNAME" /></translation>
@@ -7322,7 +7318,6 @@
 <translation id="9021662811137657072">Našiel sa vírus</translation>
 <translation id="902236149563113779">Weby zvyčajne sledujú polohu kamery, aby mohli poskytovať funkcie RR, ako sú hry alebo upozornenia s trasami</translation>
 <translation id="9022847679183471841">Tento účet už v tomto počítači používa <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Ostatní používatelia zariadenia sa môžu pripojiť k tejto sieti.</translation>
 <translation id="9023015617655685412">Pridať kartu medzi záložky…</translation>
 <translation id="9023909777842748145">Vypnutím tejto funkcie neovplyvníte schopnosť zariadenia odosielať informácie potrebné na fungovanie základných služieb, ako sú aktualizácie systému a zabezpečenie.</translation>
 <translation id="9024127637873500333">&amp;Otvoriť na novej karte</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 2298a47..0937b5de 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -361,7 +361,6 @@
 <translation id="138784436342154190">Želite obnoviti privzeto začetno stran?</translation>
 <translation id="1388253969141979417">Dovoljena je uporaba mikrofona</translation>
 <translation id="1388728792929436380">Naprava <ph name="DEVICE_TYPE" /> se bo po končanih posodobitvah znova zagnala.</translation>
-<translation id="138900021244932468">Odkrit ni bil noben profil. Če želite nastaviti novo omrežje, optično preberite kodo QR s fotoaparatom naprave ali vnesite kodo za aktiviranje, ki jo zagotovi operater.</translation>
 <translation id="139013308650923562">Dovoljena je uporaba pisave, nameščene v napravi</translation>
 <translation id="1390548061267426325">Odpri v navadnem zavihku</translation>
 <translation id="1393283411312835250">Sonce in oblaki</translation>
@@ -5934,6 +5933,7 @@
 <translation id="7506541170099744506">Naprava <ph name="DEVICE_TYPE" /> je bila uspešno prijavljena za upravljanje v podjetju.</translation>
 <translation id="7507207699631365376">Oglejte si <ph name="BEGIN_LINK" />pravilnik o zasebnosti<ph name="END_LINK" /> tega ponudnika</translation>
 <translation id="7507930499305566459">Potrdilo odzivnika stanja</translation>
+<translation id="7509246181739783082">Preverjanje identitete</translation>
 <translation id="7513029293694390567">Samodejna prijava v spletna mesta s shranjenimi poverilnicami. Ko je to onemogočeno, boste morali potrditi pred vsako prijavo v spletno mesto.</translation>
 <translation id="7514239104543605883">Kopiranje v vašo napravo</translation>
 <translation id="7514365320538308">Prenos</translation>
@@ -6466,7 +6466,6 @@
 <translation id="8061091456562007989">Razveljavi spremembo</translation>
 <translation id="8061991877177392872">Videti je, da ste Voice Match s Pomočnikom že nastavili v drugi napravi. Te prejšnje posnetke je mogoče uporabiti za ustvarjanje glasovnega modela v tej napravi.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 list papirja}one{{COUNT} list papirja}two{{COUNT} lista papirja}few{{COUNT} listi papirja}other{{COUNT} listov papirja}}</translation>
-<translation id="8062879968880283306">Optično preberite kodo QR s fotoaparatom naprave ali vnesite kodo za aktiviranje, ki jo zagotovi operater.</translation>
 <translation id="8063235345342641131">Privzeti zeleni avatar</translation>
 <translation id="8063535366119089408">Ogled datoteke</translation>
 <translation id="8064279191081105977">Skupina <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6887,7 +6886,6 @@
 <translation id="8551588720239073785">Nastavitve datuma in ure</translation>
 <translation id="8553342806078037065">Upravljanje drugih oseb</translation>
 <translation id="8554899698005018844">Brez jezika</translation>
-<translation id="8555195867496021627">Ni razpoložljivih profilov e-SIM. Nov profil prenesite <ph name="BEGIN_LINK" />tukaj<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Varnostnega ključa se dotikajte, dokler ne bo prstni odtis zabeležen</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Odpri vse v &amp;novem oknu}=1{Odpri v &amp;novem oknu}one{Odpri vse ({COUNT}) v &amp;novem oknu}two{Odpri vse ({COUNT}) v &amp;novem oknu}few{Odpri vse ({COUNT}) v &amp;novem oknu}other{Odpri vse ({COUNT}) v &amp;novem oknu}}</translation>
@@ -7067,7 +7065,6 @@
 <translation id="8743164338060742337">Omrežje <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, moč signala je <ph name="SIGNAL_STRENGTH" /> %, upravlja ga vaš skrbnik, vzpostavitev povezave</translation>
 <translation id="8746654918629346731">Razširitev »<ph name="EXTENSION_NAME" />« ste že zahtevali</translation>
 <translation id="874689135111202667">{0,plural, =1{Ali želite naložiti eno datoteko na to spletno mesto?}one{Ali želite naložiti # datoteko na to spletno mesto?}two{Ali želite naložiti # datoteki na to spletno mesto?}few{Ali želite naložiti # datoteke na to spletno mesto?}other{Ali želite naložiti # datotek na to spletno mesto?}}</translation>
-<translation id="8749556627204742888">To omrežje si delite z drugimi uporabniki te naprave.</translation>
 <translation id="8749805710397399240">Zaslona ni mogoče predvajati. V nastavitvah sistema označite dovoljenje za snemanje zaslona »Screen Recording«.</translation>
 <translation id="8749863574775030885">Dostop do naprav USB neznanega prodajalca</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> se želi povezati z zaporednimi vrati</translation>
@@ -7132,7 +7129,6 @@
 <translation id="8808744862003883508">Na tej strani so prikazane vse razširitve, nameščene v Chromu.</translation>
 <translation id="8809147117840417135">Svetlo zelenomodra</translation>
 <translation id="8811862054141704416">Dostop do mikrofona v Crostiniju</translation>
-<translation id="8812552797690463522">To omrežje je deljeno z vami.</translation>
 <translation id="8812593354822910461">Izbriši tudi podatke brskanja (<ph name="URL" />), s čimer boste odjavljeni iz domene <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Opomni me pozneje</translation>
 <translation id="8813698869395535039">Prijava v račun <ph name="USERNAME" /> ni mogoča</translation>
@@ -7344,7 +7340,6 @@
 <translation id="9021662811137657072">Zaznan je virus</translation>
 <translation id="902236149563113779">Spletna mesta običajno spremljajo položaj kamere zaradi funkcij razširjene resničnosti, kot so igre ali opozorilna navodila.</translation>
 <translation id="9022847679183471841">Ta račun v tem računalniku že uporablja uporabnik <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Drugi uporabniki te naprave lahko uporabljajo to omrežje.</translation>
 <translation id="9023015617655685412">Dodajanje tega zavihka med zaznamke ...</translation>
 <translation id="9023909777842748145">Izklop te funkcije ne vpliva na zmožnost naprave, da pošilja podatke, potrebne za ključne storitve, kot so posodobitve in varnost sistema.</translation>
 <translation id="9024127637873500333">&amp;Odpri v novem zavihku</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index e7cc21b2..f50c849 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">Të restaurohet faqja e parazgjedhur e nisjes?</translation>
 <translation id="1388253969141979417">Lejohen të përdorin mikrofonin tënd</translation>
 <translation id="1388728792929436380">Pajisja <ph name="DEVICE_TYPE" /> do të riniset kur të përfundojnë përditësimet.</translation>
-<translation id="138900021244932468">Nuk u zbulua asnjë profil. Për të konfiguruar një rrjet të ri, skano kodin QR duke përdorur kamerën e pajisjes ose fut kodin e aktivizimit që të është dhënë nga operatori celular.</translation>
 <translation id="139013308650923562">Lejohen që të përdorin fontet e instaluara në pajisjen tënde</translation>
 <translation id="1390548061267426325">Hape si skedë të zakonshme</translation>
 <translation id="1393283411312835250">Diell dhe re</translation>
@@ -5897,6 +5896,7 @@
 <translation id="7506541170099744506">Pajisja jote <ph name="DEVICE_TYPE" /> është regjistruar me sukses për menaxhimin e ndërmarrjes.</translation>
 <translation id="7507207699631365376">Shiko <ph name="BEGIN_LINK" />politikën e privatësisë<ph name="END_LINK" /> së këtij ofruesi</translation>
 <translation id="7507930499305566459">Certifikata e reaguesit të statusit</translation>
+<translation id="7509246181739783082">Verifiko identitetin</translation>
 <translation id="7513029293694390567">Identifikohu automatikisht në sajtet e uebit duke përdorur kredencialet e ruajtura. Nëse është çaktivizuar, do të të kërkohet gjithmonë konfirmimi përpara se të identifikohesh në një sajt uebi.</translation>
 <translation id="7514239104543605883">Kopjo te pajisja jote</translation>
 <translation id="7514365320538308">Shkarko</translation>
@@ -6427,7 +6427,6 @@
 <translation id="8061091456562007989">Ndryshoje përsëri</translation>
 <translation id="8061991877177392872">Me sa duket e ke konfiguruar tashmë Voice Match me "Asistentin" tënd në një pajisje tjetër. Këto regjistrime të mëparshme janë përdorur për të krijuar një model zanor në këtë pajisje.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 fletë letre}other{{COUNT} fletë letre}}</translation>
-<translation id="8062879968880283306">Skano kodin QR duke përdorur kamerën e pajisjes ose fut kodin e aktivizimit të dhënë nga operatori yt.</translation>
 <translation id="8063235345342641131">Avatari i parazgjedhur i gjelbër</translation>
 <translation id="8063535366119089408">Shiko skedarin</translation>
 <translation id="8064279191081105977">Grupi <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6848,7 +6847,6 @@
 <translation id="8551588720239073785">Cilësimet e datës dhe orës</translation>
 <translation id="8553342806078037065">Menaxho kontaktet e tjera</translation>
 <translation id="8554899698005018844">Nuk ka gjuhë</translation>
-<translation id="8555195867496021627">Asnjë profil i disponueshëm karte eSIM. Shkarko një profil të ri <ph name="BEGIN_LINK" />këtu.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Vazhdo të prekësh çelësin e sigurisë deri sa gjurma e gishtit tënd të regjistrohet</translation>
 <translation id="8557930019681227453">Manifesti</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Hapi të gjitha në &amp;dritare të re}=1{Hape në &amp;dritare të re}other{Hapi të gjitha ({COUNT}) në &amp;dritare të re}}</translation>
@@ -7028,7 +7026,6 @@
 <translation id="8743164338060742337">Rrjeti <ph name="NETWORK_INDEX" /> nga <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> fuqia e sinjalit <ph name="SIGNAL_STRENGTH" />%, menaxhuar nga administratori yt, lidhu</translation>
 <translation id="8746654918629346731">Ke kërkuar tashmë "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Të ngarkohet një skedar në këtë sajt?}other{Të ngarkohen # skedarë në këtë sajt?}}</translation>
-<translation id="8749556627204742888">Po e ndan këtë rrjet me përdoruesit e tjerë të kësaj pajisjeje.</translation>
 <translation id="8749805710397399240">Ekrani yt nuk mund të transmetohet. Kontrollo lejen për "Regjistrimin e ekranit" te "Preferencat e sistemit".</translation>
 <translation id="8749863574775030885">Qasu te pajisjet USB nga një shitës i panjohur</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> dëshiron të lidhet me një portë serie</translation>
@@ -7090,7 +7087,6 @@
 <translation id="8808744862003883508">Në këtë faqe mund të shikosh të gjitha shtesat e instaluara në Chrome.</translation>
 <translation id="8809147117840417135">Gurkali e çelur</translation>
 <translation id="8811862054141704416">Qasja te mikrofoni i Crostini</translation>
-<translation id="8812552797690463522">Ky rrjet është ndarë me ty.</translation>
 <translation id="8812593354822910461">Pastro gjithashtu të dhënat e shfletimit, (<ph name="URL" />) gjë që mund të të bëjë të dalësh nga <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Më kujto më vonë</translation>
 <translation id="8813698869395535039">Nuk mund të identifikohet në <ph name="USERNAME" /></translation>
@@ -7302,7 +7298,6 @@
 <translation id="9021662811137657072">U zbulua një virus</translation>
 <translation id="902236149563113779">Sajtet monitorojnë zakonisht pozicionin e kamerës për veçoritë e realitetit AR, si p.sh. lojërat ose udhëzimet paraprake</translation>
 <translation id="9022847679183471841">Kjo llogari tashmë po përdoret në këtë kompjuter nga <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Përdoruesit e tjerë të kësaj pajisjeje mund të përdorin këtë rrjet.</translation>
 <translation id="9023015617655685412">Shtoje këtë skedë te faqeshënuesit...</translation>
 <translation id="9023909777842748145">Çaktivizimi i kësaj veçorie nuk ndikon në aftësinë e pajisjes sate për të dërguar informacionet e nevojshme për shërbimet bazë, si siguria dhe përditësimet e sistemit.</translation>
 <translation id="9024127637873500333">&amp;Hape në një skedë të re</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 02dfde2..4b90731 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Želite da vratite podrazumevanu polaznu stranicu?</translation>
 <translation id="1388253969141979417">Dozvoljeno im je korišćenje mikrofona</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> će se restartovati kada se ažuriranja završe.</translation>
-<translation id="138900021244932468">Nije otkriven nijedan profil. Da biste podesili novu mrežu, skenirajte QR kôd pomoću kamere uređaja ili unesite aktivacioni kôd koji ste dobili od mobilnog operatera.</translation>
 <translation id="139013308650923562">Imaju dozvolu da koriste fontove instalirane na uređaju</translation>
 <translation id="1390548061267426325">Otvori kao uobičajenu karticu</translation>
 <translation id="1393283411312835250">Sunce i oblaci</translation>
@@ -5910,6 +5909,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> je registrovan za upravljanje preduzećem.</translation>
 <translation id="7507207699631365376">Pogledajte <ph name="BEGIN_LINK" />politiku privatnosti<ph name="END_LINK" /> ovog dobavljača</translation>
 <translation id="7507930499305566459">Sertifikat za odzivnik statusa</translation>
+<translation id="7509246181739783082">Verifikujte identitet</translation>
 <translation id="7513029293694390567">Automatski se prijavljujte na veb-sajtove pomoću sačuvanih akreditiva. Kada je ova funkcija onemogućena, tražićemo potvrdu pre svakog prijavljivanja na veb-sajt.</translation>
 <translation id="7514239104543605883">Kopirajte na svoj uređaj</translation>
 <translation id="7514365320538308">Preuzmi</translation>
@@ -6442,7 +6442,6 @@
 <translation id="8061091456562007989">Poništi izmene</translation>
 <translation id="8061991877177392872">Izgleda da ste već podesili Voice Match sa Pomoćnikom na drugom uređaju. Ovi prethodni snimci su korišćeni za pravljenje glasovnog modela na ovom uređaju.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 list papira}one{{COUNT} list papira}few{{COUNT} lista papira}other{{COUNT} listova papira}}</translation>
-<translation id="8062879968880283306">Skenirajte QR kôd pomoću kamere uređaja ili unesite aktivacioni kôd koji ste dobili od mobilnog operatera.</translation>
 <translation id="8063235345342641131">Podrazumevani zeleni avatar</translation>
 <translation id="8063535366119089408">Prikaži datoteku</translation>
 <translation id="8064279191081105977">Grupa <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6863,7 +6862,6 @@
 <translation id="8551588720239073785">Podešavanja datuma i vremena</translation>
 <translation id="8553342806078037065">Upravljanje drugim ljudima</translation>
 <translation id="8554899698005018844">Bez jezika</translation>
-<translation id="8555195867496021627">Nema dostupnih eSIM profila. Preuzmite novi profil <ph name="BEGIN_LINK" />ovde.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Nastavite da dodirujete bezbednosni ključ dok ne snimimo otisak prsta</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Otvori sve u &amp;novom prozoru}=1{Otvori u &amp;novom prozoru}one{Otvori sve ({COUNT}) u &amp;novom prozoru}few{Otvori sve ({COUNT}) u &amp;novom prozoru}other{Otvori sve ({COUNT}) u &amp;novom prozoru}}</translation>
@@ -7043,7 +7041,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" />. mreža od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, upravlja administrator, povežite</translation>
 <translation id="8746654918629346731">Već ste tražili „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="874689135111202667">{0,plural, =1{Želite li da otpremite jednu datoteku na ovaj sajt?}one{Želite li da otpremite # datoteku na ovaj sajt?}few{Želite li da otpremite # datoteke na ovaj sajt?}other{Želite li da otpremite # datoteka na ovaj sajt?}}</translation>
-<translation id="8749556627204742888">Delite ovu mrežu sa ostalim korisnicima na ovom uređaju.</translation>
 <translation id="8749805710397399240">Prebacivanje ekrana nije uspelo. Proverite dozvolu za snimanje ekrana u Podešavanjima sistema.</translation>
 <translation id="8749863574775030885">Pristup USB uređajima nepoznatog prodavca</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> želi da se poveže sa serijskim portom</translation>
@@ -7107,7 +7104,6 @@
 <translation id="8808744862003883508">Na ovoj stranici možete da vidite sve dodatke instalirane u Chrome-u.</translation>
 <translation id="8809147117840417135">Svetlotirkizna</translation>
 <translation id="8811862054141704416">Pristup mikrofonu za Crostini</translation>
-<translation id="8812552797690463522">Ova mreža se deli sa vama.</translation>
 <translation id="8812593354822910461">Obriši i podatke pregledanja (<ph name="URL" />). Ovo će vas odjaviti sa <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Podseti me kasnije</translation>
 <translation id="8813698869395535039">Prijavljivanje na <ph name="USERNAME" /> nije uspelo</translation>
@@ -7319,7 +7315,6 @@
 <translation id="9021662811137657072">Otkriven je virus</translation>
 <translation id="902236149563113779">Sajtovi obično prate položaj kamere za potrebe funkcija proširene realnosti, poput igara ili putanja</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> već koristi ovaj nalog na ovom računaru.</translation>
-<translation id="9023009238991294202">Drugi korisnici ovog uređaja mogu da koriste ovu mrežu.</translation>
 <translation id="9023015617655685412">Obeleži ovu karticu...</translation>
 <translation id="9023909777842748145">Isključivanje ove funkcije ne utiče na mogućnost uređaja da šalje informacije potrebne za osnovne usluge, na primer, ažuriranja sistema i bezbednost.</translation>
 <translation id="9024127637873500333">&amp;Otvori na novoj kartici</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 501a1336c..b8228ca 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Желите да вратите подразумевану полазну страницу?</translation>
 <translation id="1388253969141979417">Дозвољено им је коришћење микрофона</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> ће се рестартовати када се ажурирања заврше.</translation>
-<translation id="138900021244932468">Није откривен ниједан профил. Да бисте подесили нову мрежу, скенирајте QR кôд помоћу камере уређаја или унесите активациони кôд који сте добили од мобилног оператера.</translation>
 <translation id="139013308650923562">Имају дозволу да користе фонтове инсталиране на уређају</translation>
 <translation id="1390548061267426325">Отвори као уобичајену картицу</translation>
 <translation id="1393283411312835250">Сунце и облаци</translation>
@@ -5910,6 +5909,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> је регистрован за управљање предузећем.</translation>
 <translation id="7507207699631365376">Погледајте <ph name="BEGIN_LINK" />политику приватности<ph name="END_LINK" /> овог добављача</translation>
 <translation id="7507930499305566459">Сертификат за одзивник статуса</translation>
+<translation id="7509246181739783082">Верификујте идентитет</translation>
 <translation id="7513029293694390567">Аутоматски се пријављујте на веб-сајтове помоћу сачуваних акредитива. Када је ова функција онемогућена, тражићемо потврду пре сваког пријављивања на веб-сајт.</translation>
 <translation id="7514239104543605883">Копирајте на свој уређај</translation>
 <translation id="7514365320538308">Преузми</translation>
@@ -6442,7 +6442,6 @@
 <translation id="8061091456562007989">Поништи измене</translation>
 <translation id="8061991877177392872">Изгледа да сте већ подесили Voice Match са Помоћником на другом уређају. Ови претходни снимци су коришћени за прављење гласовног модела на овом уређају.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 лист папира}one{{COUNT} лист папира}few{{COUNT} листа папира}other{{COUNT} листова папира}}</translation>
-<translation id="8062879968880283306">Скенирајте QR кôд помоћу камере уређаја или унесите активациони кôд који сте добили од мобилног оператера.</translation>
 <translation id="8063235345342641131">Подразумевани зелени аватар</translation>
 <translation id="8063535366119089408">Прикажи датотеку</translation>
 <translation id="8064279191081105977">Група <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6863,7 +6862,6 @@
 <translation id="8551588720239073785">Подешавања датума и времена</translation>
 <translation id="8553342806078037065">Управљање другим људима</translation>
 <translation id="8554899698005018844">Без језика</translation>
-<translation id="8555195867496021627">Нема доступних eSIM профила. Преузмите нови профил <ph name="BEGIN_LINK" />овде.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Наставите да додирујете безбедносни кључ док не снимимо отисак прста</translation>
 <translation id="8557930019681227453">Манифест</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Отвори све у &amp;новом прозору}=1{Отвори у &amp;новом прозору}one{Отвори све ({COUNT}) у &amp;новом прозору}few{Отвори све ({COUNT}) у &amp;новом прозору}other{Отвори све ({COUNT}) у &amp;новом прозору}}</translation>
@@ -7043,7 +7041,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_INDEX" />. мрежа од <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, јачина сигнала <ph name="SIGNAL_STRENGTH" />%, управља администратор, повежите</translation>
 <translation id="8746654918629346731">Већ сте тражили „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="874689135111202667">{0,plural, =1{Желите ли да отпремите једну датотеку на овај сајт?}one{Желите ли да отпремите # датотеку на овај сајт?}few{Желите ли да отпремите # датотеке на овај сајт?}other{Желите ли да отпремите # датотека на овај сајт?}}</translation>
-<translation id="8749556627204742888">Делите ову мрежу са осталим корисницима на овом уређају.</translation>
 <translation id="8749805710397399240">Пребацивање екрана није успело. Проверите дозволу за снимање екрана у Подешавањима система.</translation>
 <translation id="8749863574775030885">Приступ USB уређајима непознатог продавца</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> жели да се повеже са серијским портом</translation>
@@ -7107,7 +7104,6 @@
 <translation id="8808744862003883508">На овој страници можете да видите све додатке инсталиране у Chrome-у.</translation>
 <translation id="8809147117840417135">Светлотиркизна</translation>
 <translation id="8811862054141704416">Приступ микрофону за Crostini</translation>
-<translation id="8812552797690463522">Ова мрежа се дели са вама.</translation>
 <translation id="8812593354822910461">Обриши и податке прегледања (<ph name="URL" />). Ово ће вас одјавити са <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Подсети ме касније</translation>
 <translation id="8813698869395535039">Пријављивање на <ph name="USERNAME" /> није успело</translation>
@@ -7319,7 +7315,6 @@
 <translation id="9021662811137657072">Откривен је вирус</translation>
 <translation id="902236149563113779">Сајтови обично прате положај камере за потребе функција проширене реалности, попут игара или путања</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> већ користи овај налог на овом рачунару.</translation>
-<translation id="9023009238991294202">Други корисници овог уређаја могу да користе ову мрежу.</translation>
 <translation id="9023015617655685412">Обележи ову картицу...</translation>
 <translation id="9023909777842748145">Искључивање ове функције не утиче на могућност уређаја да шаље информације потребне за основне услуге, на пример, ажурирања система и безбедност.</translation>
 <translation id="9024127637873500333">&amp;Отвори на новој картици</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index c66661d..b675441 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Vill du återställa standardinställningen för startfliken?</translation>
 <translation id="1388253969141979417">Får använda mikrofonen</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> startas om när uppdateringarna har slutförts.</translation>
-<translation id="138900021244932468">Inga profiler hittades. Skanna QR-koden med enhetens kamera eller ange aktiveringskoden du fick från operatören om du vill konfigurera ett nytt nätverk.</translation>
 <translation id="139013308650923562">Har tillåtelse att använda teckensnitt som har installerats på enheten</translation>
 <translation id="1390548061267426325">Öppna som en vanlig flik</translation>
 <translation id="1393283411312835250">Sol och moln</translation>
@@ -5929,6 +5928,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> har registrerats för företagshantering.</translation>
 <translation id="7507207699631365376">Läs leverantörens <ph name="BEGIN_LINK" />sekretesspolicy<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">Status för svarscertifikat</translation>
+<translation id="7509246181739783082">Verifiera din identitet</translation>
 <translation id="7513029293694390567">Logga in automatiskt på webbplatser med hjälp av lagrade inloggningsuppgifter. När funktionen är inaktiverad måste du bekräfta inloggningen varje gång du besöker en webbplats.</translation>
 <translation id="7514239104543605883">Kopiera till din enhet</translation>
 <translation id="7514365320538308">Ladda ned</translation>
@@ -6461,7 +6461,6 @@
 <translation id="8061091456562007989">Ändra tillbaka</translation>
 <translation id="8061991877177392872">Du verkar redan ha konfigurerat Voice Match med assistenten på en annan enhet. En röstmodell har skapats på den här enheten utifrån de tidigare inspelningarna.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 pappersark}other{{COUNT} pappersark}}</translation>
-<translation id="8062879968880283306">Skanna QR-koden med enhetens kamera eller ange aktiveringskoden du fick från operatören.</translation>
 <translation id="8063235345342641131">Grön standardavatar</translation>
 <translation id="8063535366119089408">Visa fil</translation>
 <translation id="8064279191081105977">Grupp <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6882,7 +6881,6 @@
 <translation id="8551588720239073785">Inställningar för datum och tid</translation>
 <translation id="8553342806078037065">Hantera andra personer</translation>
 <translation id="8554899698005018844">Inget språk</translation>
-<translation id="8555195867496021627">Det finns inga tillgängliga eSIM-profiler. Ladda ned en ny profil <ph name="BEGIN_LINK" />här<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Fortsätt att trycka på säkerhetsnyckeln tills fingeravtrycket registreras</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Öppna alla i ett &amp;nytt fönster}=1{Öppna i &amp;nytt fönster}other{Öppna alla ({COUNT}) i ett &amp;nytt fönster}}</translation>
@@ -7062,7 +7060,6 @@
 <translation id="8743164338060742337">Nätverk <ph name="NETWORK_INDEX" /> av <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> signalstyrka <ph name="SIGNAL_STRENGTH" /> %, hanteras av administratören, anslut</translation>
 <translation id="8746654918629346731">Du har redan begärt <ph name="EXTENSION_NAME" /></translation>
 <translation id="874689135111202667">{0,plural, =1{Vill du ladda upp en fil på webbplatsen?}other{Vill du ladda upp # filer på webbplatsen?}}</translation>
-<translation id="8749556627204742888">Du delar det här nätverket med andra användare på enheten.</translation>
 <translation id="8749805710397399240">Det gick inte att casta skärmen. Kontrollera behörigheten för skärminspelning i systeminställningarna.</translation>
 <translation id="8749863574775030885">Komma åt USB-enheter från en okänd leverantör</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> vill ansluta till en serieport</translation>
@@ -7124,7 +7121,6 @@
 <translation id="8808744862003883508">På den här sidan visas alla tillägg som har installerats i Chrome.</translation>
 <translation id="8809147117840417135">Ljust blågrön</translation>
 <translation id="8811862054141704416">Mikrofonåtkomst i Crostini</translation>
-<translation id="8812552797690463522">Nätverket delas med dig.</translation>
 <translation id="8812593354822910461">Rensa även webbinformation (<ph name="URL" />), vilket kan innebära att du loggas ut från <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Påminn mig senare</translation>
 <translation id="8813698869395535039">Det gick inte att logga in på <ph name="USERNAME" /></translation>
@@ -7336,7 +7332,6 @@
 <translation id="9021662811137657072">Ett virus har upptäckts</translation>
 <translation id="902236149563113779">Att registrera kamerans position brukar kunna behövas för AR-funktioner på webbplatsen, som spel eller vägbeskrivningar</translation>
 <translation id="9022847679183471841">Kontot används redan på den här datorn av <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Andra användare på enheten kan använda det här nätverket</translation>
 <translation id="9023015617655685412">Bokmärk den här fliken …</translation>
 <translation id="9023909777842748145">Enheten kan fortfarande skicka den information som behövs för viktiga tjänster, som systemuppdateringar och säkerhet, även om du inaktiverar funktionen.</translation>
 <translation id="9024127637873500333">&amp;Öppna i ny flik</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 0c4c22f..ba205da 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Ungependa kurejesha ukurasa unaoanza chaguomsingi?</translation>
 <translation id="1388253969141979417">Zinazoruhusiwa kutumia maikrofoni yako</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> itazima kisha kuwaka wakati mchakato wa kusasisha utakamilika.</translation>
-<translation id="138900021244932468">Hakuna wasifu uliopatikana. Ili uweke mipangilio ya mtandao mpya, changanua msimbo wa QR kwa kutumia kamera ya kifaa au uweke msimbo wa kuanza kutumia uliotolewa na mtoa huduma wako.</translation>
 <translation id="139013308650923562">Zinazoruhusiwa kutumia fonti zilizosakinishwa kwenye kifaa chako</translation>
 <translation id="1390548061267426325">Fungua kama Kichupo cha Kawaida</translation>
 <translation id="1393283411312835250">Jua na mawingu</translation>
@@ -5923,6 +5922,7 @@
 <translation id="7506541170099744506">Kifaa chako cha <ph name="DEVICE_TYPE" /> kimesajiliwa kwa usimamizi wa biashara.</translation>
 <translation id="7507207699631365376">Ona <ph name="BEGIN_LINK" />Sera ya Faragha<ph name="END_LINK" /> ya mtoa huduma huyu</translation>
 <translation id="7507930499305566459">Cheti cha Jibu la Hali</translation>
+<translation id="7509246181739783082">Thibitisha utambulisho wako</translation>
 <translation id="7513029293694390567">Ingia katika tovuti kiotomatiki ukitumia kitambulisho kilichohifadhiwa. Kipengele kikizimwa, utaombwa kuthibitisha kila wakati kabla ya kuingia katika tovuti.</translation>
 <translation id="7514239104543605883">Nakili kwenye kifaa chako</translation>
 <translation id="7514365320538308">Pakua</translation>
@@ -6457,7 +6457,6 @@
 <translation id="8061091456562007989">Ibadilishe iwe ilivyokuwa</translation>
 <translation id="8061991877177392872">Inaonekana kuwa tayari umeweka mipangilio ya Voice Match kwa kutumia programu ya Mratibu wa Google kwenye kifaa kingine. Rekodi hizi za awali zilitumika kutengeneza muundo wa sauti kwenye kifaa hiki.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{Karatasi moja}other{Karatasi {COUNT}}}</translation>
-<translation id="8062879968880283306">Changanua msimbo wa QR kwa kutumia kamera ya kifaa au uweke msimbo wa kuanza kutumia uliotolewa na mtoa huduma wako.</translation>
 <translation id="8063235345342641131">Ishara chaguomsingi ya kijani</translation>
 <translation id="8063535366119089408">Angalia faili</translation>
 <translation id="8064279191081105977">Kikundi cha <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6878,7 +6877,6 @@
 <translation id="8551588720239073785">Mipangilio ya saa na tarehe</translation>
 <translation id="8553342806078037065">Dhibiti watumiaji wengine</translation>
 <translation id="8554899698005018844">Hakuna lugha</translation>
-<translation id="8555195867496021627">Hakuna wasifu wa eSIM unaopatikana. Pakua wasifu mpya <ph name="BEGIN_LINK" />hapa.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Endelea kugusa ufunguo wako wa usalama hadi alama yako ya kidole inaswe</translation>
 <translation id="8557930019681227453">Faili ya maelezo</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Fungua Zote katika &amp;Dirisha Jipya}=1{Fungua katika &amp;Dirisha Jipya}other{Fungua Zote ({COUNT}) katika &amp;Dirisha Jipya}}</translation>
@@ -7058,7 +7056,6 @@
 <translation id="8743164338060742337">Mtandao wa <ph name="NETWORK_INDEX" /> kati ya <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> Uthabiti wa Mtandao <ph name="SIGNAL_STRENGTH" />%, Unadhibitiwa na Msimamizi wako, Unganisha</translation>
 <translation id="8746654918629346731">Tayari umeomba "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Ungependa kupakia faili moja kwenye tovuti hii?}other{Ungependa kupakia faili # kwenye tovuti hii?}}</translation>
-<translation id="8749556627204742888">Unatumia mtandao pamoja na watumiaji wengine wa kifaa hiki.</translation>
 <translation id="8749805710397399240">Imeshindwa kutuma skrini yako. Angalia ruhusa ya Kurekodi Skrini kwenye Mapendeleo ya Mfumo.</translation>
 <translation id="8749863574775030885">Fikia vifaa vya USB kutoka kwa mchuuzi asiyejulikana</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> inataka kuunganisha kwenye mlango wa kuwekea vifaa</translation>
@@ -7120,7 +7117,6 @@
 <translation id="8808744862003883508">Kwenye ukurasa huu, unaweza kuona viendelezi vyote vilivyosakinishwa katika Chrome.</translation>
 <translation id="8809147117840417135">Samawati ya kijani isiyokolea</translation>
 <translation id="8811862054141704416">Uwezo wa kufikia maikrofoni kwenye Crostini</translation>
-<translation id="8812552797690463522">Mtandao huu unashirikiwa nawe.</translation>
 <translation id="8812593354822910461">Futa pia data ya kuvinjari (<ph name="URL" />), hatua inayoweza kukuondoa kwenye akaunti ya <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Nikumbushe baadaye</translation>
 <translation id="8813698869395535039">Haiwezi kuingia katika <ph name="USERNAME" /></translation>
@@ -7332,7 +7328,6 @@
 <translation id="9021662811137657072">Virusi vimegunduliwa</translation>
 <translation id="902236149563113779">Tovuti hufuatilia mkao wa kamera yako kwa ajili ya vipengele vya Uhalisia Ulioboreshwa, kama vile michezo au ariza za maelekezo</translation>
 <translation id="9022847679183471841">Akaunti hii tayari inatumika kwenye kompyuta hii na <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Watumiaji wengine wa kifaa hiki wanaweza kutumia mtandao huu.</translation>
 <translation id="9023015617655685412">Alamisha kichupo hiki...</translation>
 <translation id="9023909777842748145">Kuzima kipengele hiki hakuathiri uwezo wa kifaa chako kutuma maelezo yanayohitajika kwa huduma muhimu kama vile masasisho ya mfumo na usalama.</translation>
 <translation id="9024127637873500333">&amp;Fungua katika Kichupo Kipya</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index e707926..d97cd68 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -62,6 +62,7 @@
 <translation id="1066613507389053689">Chrome OSஸைப் புதுப்பிக்க வேண்டும்</translation>
 <translation id="1067048845568873861">உருவாக்கப்பட்டது</translation>
 <translation id="1067922213147265141">பிற Google சேவைகள்</translation>
+<translation id="1069355737714877171"><ph name="PROFILE_NAME" /> என்ற eSIM சுயவிவரத்தை அகற்றும்</translation>
 <translation id="1070377999570795893">உங்கள் கம்ப்யூட்டரில் உள்ள மற்றொரு நிரல் Chrome செயல்படும் முறையை மாற்றக்கூடிய ஒரு நீட்டிப்பைச் சேர்த்துள்ளது.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -995,6 +996,7 @@
 உங்கள் சாதனத்தில் Family Link ஆப்ஸை நிறுவுவதன் மூலம் இந்தக் கணக்கின் அமைப்புகளை நீங்கள் நிர்வகிக்க முடியும்.  மின்னஞ்சலில் இதற்கான வழிமுறைகளை அனுப்பியுள்ளோம்.</translation>
 <translation id="2040460856718599782">அச்சச்சோ! உங்களை அங்கீகரிக்க முயற்சிக்கும்போது ஏதோ தவறு நடந்துவிட்டது. உங்கள் உள்நுழைவு நற்சான்றிதழ்களை இருமுறை சரிபார்த்து மீண்டும் முயற்சி செய்க.</translation>
 <translation id="2044014337866019681">சாதனத்தை அன்லாக் செய்ய, <ph name="ACCOUNT" /> கணக்கைச் சரிபார்த்திருப்பதை உறுதிசெய்துகொள்ளவும்.</translation>
+<translation id="2044023416777079300">மோடம் பதிவுசெய்யப்படவில்லை</translation>
 <translation id="204497730941176055">Microsoft சான்றிதழ் டெம்பிளேட் பெயர்</translation>
 <translation id="2045117674524495717">கீபோர்டு ஷார்ட்கட் உதவி</translation>
 <translation id="2045969484888636535">தொடர்ந்து குக்கீகளைத் தடுக்கவும்</translation>
@@ -4099,6 +4101,7 @@
 <translation id="5486261815000869482">கடவுச்சொல்லை உறுதிசெய்க</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" />, உங்கள் திரையை <ph name="TAB_NAME" /> உடன் பகிர்கிறது.</translation>
 <translation id="5486561344817861625">உலாவி மறுதொடக்கத்தை உருவகப்படுத்து</translation>
+<translation id="5487460042548760727">சுயவிவரத்தின் பெயரை <ph name="PROFILE_NAME" /> என மாற்றும்</translation>
 <translation id="5487521232677179737">தரவை அழி</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' நகலெடுக்கப்பட்டது</translation>
 <translation id="5488508217173274228">ஒத்திசைவு என்க்ரிப்ஷன் விருப்பங்கள்</translation>
@@ -4841,6 +4844,7 @@
 <translation id="6308937455967653460">இணை&amp;ப்பை இவ்வாறு சேமி…</translation>
 <translation id="6309443618838462258">உங்கள் நிர்வாகி இந்த உள்ளீட்டு முறையை அனுமதிப்பதில்லை</translation>
 <translation id="6309510305002439352">மைக்ரோஃபோன் முடக்கப்பட்டுள்ளது</translation>
+<translation id="6310141306111263820">eSIM சுயவிவரத்தை நிறுவ முடியவில்லை. உதவிக்கு, உங்கள் மொபைல் நெட்வொர்க் நிறுவனத்தைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="6311220991371174222">Chromeஐத் தொடங்க முடியவில்லை. ஏனெனில், சுயவிவரத்தைத் திறக்கும் போது ஏதோ தவறாகிவிட்டது. Chromeஐ மீண்டும் தொடங்கவும்.</translation>
 <translation id="6312403991423642364">அறியப்படாத நெட்வொர்க் பிழை</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ஒரு நாளுக்கு முன்பு பாதுகாப்புச் சரிபார்ப்பு மேற்கொள்ளப்பட்டது}other{{NUM_DAYS} நாட்களுக்கு முன்பு பாதுகாப்புச் சரிபார்ப்பு மேற்கொள்ளப்பட்டது}}</translation>
@@ -5912,6 +5916,7 @@
 <translation id="7506541170099744506">உங்கள் <ph name="DEVICE_TYPE" /> சாதனம், நிறுவன மேலாண்மைக்குப் பதிவுசெய்யப்பட்டது.</translation>
 <translation id="7507207699631365376">இந்த வழங்குநரின் <ph name="BEGIN_LINK" />தனியுரிமைக் கொள்கையைக்<ph name="END_LINK" /> காட்டு</translation>
 <translation id="7507930499305566459">நிலை பதிலளிப்பாளர் சான்றிதழ்</translation>
+<translation id="7509246181739783082">உங்கள் அடையாளத்தைச் சரிபார்த்தல்</translation>
 <translation id="7513029293694390567">சேமித்த அனுமதிச் சான்றுகளைப் பயன்படுத்தி இணையதளங்களில் தானாகவே உள்நுழையும். இதை முடக்கினால், இணையதளத்தில் உள்நுழையும் ஒவ்வொரு முறையும் உறுதிப்படுத்த வேண்டும்.</translation>
 <translation id="7514239104543605883">உங்கள் சாதனத்திற்கு நகலெடுங்கள்</translation>
 <translation id="7514365320538308">பதிவிறக்கு</translation>
@@ -5978,6 +5983,7 @@
 <translation id="7582582252461552277">இந்த நெட்வொர்க்குக்கு முன்னுரிமை வழங்குக</translation>
 <translation id="7582844466922312471">மொபைல் தரவு</translation>
 <translation id="7583948862126372804">எண்ணிக்கை</translation>
+<translation id="7586051298768394542">பேச்சு அறிதல் அம்சத்திற்கான கோப்புகளைப் பதிவிறக்க முடியவில்லை. நீங்கள் கூறுவதை Googleளுக்கு அனுப்புவதன் மூலம், சொல்வதை எழுதும் அம்சம் தொடர்ந்து செயல்படும்.</translation>
 <translation id="7586498138629385861">Chrome ஆப்ஸ் திறக்கப்பட்டிருக்கும்போதும், Chrome தொடர்ந்து இயங்கும்.</translation>
 <translation id="7589461650300748890">கவனமாக இருக்கவும்.</translation>
 <translation id="7593653750169415785">நீங்கள் சில தடவை அறிவிப்புகளை நிராகரித்து விட்டதால் தானாகவே தடுக்கப்பட்டது</translation>
@@ -6443,7 +6449,6 @@
 <translation id="8061091456562007989">முந்தைய அமைப்புகளுக்கு மாற்று</translation>
 <translation id="8061991877177392872">நீங்கள் ஏற்கெனவே வேறொரு சாதனத்தில் உங்கள் Assistantடில் Voice Matchசை அமைத்துள்ளதாகத் தெரிகிறது. இந்தச் சாதனத்தில் குரல் மாதிரியை உருவாக்குவதற்காக அந்த முந்தைய பதிவுகள் பயன்படுத்தப்பட்டன.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{தாளின் ஒரு பக்கம்}other{தாளின் {COUNT} பக்கங்கள்}}</translation>
-<translation id="8062879968880283306">சாதனத்தின் கேமராவைப் பயன்படுத்தி QR குறியீட்டை ஸ்கேன் செய்யவும் அல்லது உங்கள் மொபைல் நெட்வொர்க் வழங்குநர் வழங்கிய செயல்படுத்தல் குறியீட்டை உள்ளிடவும்.</translation>
 <translation id="8063235345342641131">இயல்பு பச்சைநிற அவதார்</translation>
 <translation id="8063535366119089408">கோப்பைக் காட்டு</translation>
 <translation id="8064279191081105977">குழு <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6567,6 +6572,7 @@
 <translation id="8191230140820435481">உங்கள் ஆப்ஸ், நீட்டிப்புகள் மற்றும் தீம்களை நிர்வகிக்கலாம்</translation>
 <translation id="8195027750202970175">வட்டில் உள்ள அளவு</translation>
 <translation id="8198323535106903877">உங்களுக்காக அந்த <ph name="NUMBER_OF_APPS" /> ஆப்ஸை நிறுவுவோம்</translation>
+<translation id="8198456017687137612">தாவலை அலைபரப்புகிறது</translation>
 <translation id="8199300056570174101">நெட்வொர்க் (சேவை) மற்றும் சாதனப் பண்புகள்</translation>
 <translation id="8200772114523450471">மீண்டும் தொடங்கு</translation>
 <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ஆல்பங்களைத் தேர்ந்தெடுக்கும்</translation>
@@ -6863,7 +6869,6 @@
 <translation id="8551588720239073785">தேதி &amp; நேர அமைப்புகள்</translation>
 <translation id="8553342806078037065">பிற பயனர்களை நிர்வகி</translation>
 <translation id="8554899698005018844">மொழி இல்லை</translation>
-<translation id="8555195867496021627">eSIM சுயவிவரங்கள் எதுவுமில்லை. புதிய சுயவிவரத்தை <ph name="BEGIN_LINK" />இங்கே<ph name="END_LINK" /> பதிவிறக்குங்கள்.</translation>
 <translation id="8557022314818157177">உங்கள் கைரேகையைப் பதிவுசெய்யும் வரை உங்கள் பாதுகாப்பு விசையைத் தொடர்ந்து அழுத்தவும்</translation>
 <translation id="8557930019681227453">மெனிஃபெஸ்ட்</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{எல்லாவற்றையும் &amp;புதிய சாளரத்தில் திற}=1{&amp;புதிய சாளரத்தில் திற}other{எல்லாவற்றையும் ({COUNT}) &amp;புதிய சாளரத்தில் திற}}</translation>
@@ -7043,7 +7048,6 @@
 <translation id="8743164338060742337">நெட்வொர்க்: <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" />%, உங்கள் நிர்வாகி நிர்வகிக்கிறார், இணை</translation>
 <translation id="8746654918629346731">ஏற்கனவே "<ph name="EXTENSION_NAME" />" ஐக் கோரியுள்ளீர்கள்</translation>
 <translation id="874689135111202667">{0,plural, =1{இந்தத் தளத்தில் ஒரு கோப்பைப் பதிவேற்றவா?}other{இந்தத் தளத்தில் # கோப்புகளைப் பதிவேற்றவா?}}</translation>
-<translation id="8749556627204742888">இந்தச் சாதனத்தின் பிற பயனர்களுடன் இந்த நெட்வொர்க்கைப் பகிர்கிறீர்கள்.</translation>
 <translation id="8749805710397399240">உங்கள் திரையை அலைபரப்ப முடியவில்லை. சிஸ்டம் விருப்பத்தேர்வில் ஸ்க்ரீன் ரெக்கார்டிங் அனுமதியைச் சரிபார்க்கவும்.</translation>
 <translation id="8749863574775030885">அறியப்படாத விற்பனையாளரிடமிருந்து USB சாதனங்களை அணுகு</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ஒரு சீரியல் போர்ட்டுடன் இணைக்க விரும்புகிறது</translation>
@@ -7105,7 +7109,6 @@
 <translation id="8808744862003883508">இந்தப் பக்கத்தில் Chromeமில் நிறுவப்பட்டுள்ள நீட்டிப்புகள் அனைத்தையும் பார்க்கலாம்.</translation>
 <translation id="8809147117840417135">வெளிர் பசும் நீலம்</translation>
 <translation id="8811862054141704416">Crostini மைக்ரோஃபோன் அணுகல்</translation>
-<translation id="8812552797690463522">இந்த நெட்வொர்க் உங்களுடன் பகிரப்பட்டது.</translation>
 <translation id="8812593354822910461">உலாவிய தரவையும் (<ph name="URL" />) அழி. இது உங்களை <ph name="DOMAIN" /> கணக்கில் இருந்து வெளியேற்றும். <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">பின்னர் நினைவூட்டு</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> இல் உள்நுழைய முடியவில்லை</translation>
@@ -7150,6 +7153,7 @@
 <translation id="8847523528195140327">கவர் மூடியிருக்கும்போது வெளியேறு</translation>
 <translation id="8847988622838149491">USB</translation>
 <translation id="8849001918648564819">மறைக்கப்பட்டுள்ளது</translation>
+<translation id="8849219423513870962"><ph name="PROFILE_NAME" /> என்ற eSIM சுயவிவரத்தை அகற்றுவதை ரத்துசெய்யும்</translation>
 <translation id="8850251000316748990">மேலும் காட்டு...</translation>
 <translation id="885246833287407341">API செயல்பாட்டுத் தருமதிப்புகள்</translation>
 <translation id="8853586775156634952">இந்தக் கார்டு இச்சாதனத்தில் மட்டும் சேமிக்கப்படும்</translation>
@@ -7316,7 +7320,6 @@
 <translation id="9021662811137657072">வைரஸ் கண்டறியப்பட்டது</translation>
 <translation id="902236149563113779">கேம்கள், இனிவரக்கூடிய வழிகளுக்கான விழிப்பூட்டல் போன்ற AR அம்சங்களுக்காக உங்கள் கேமராவின் நிலையைத் தளங்கள் வழக்கமாகக் கண்காணிக்கும்</translation>
 <translation id="9022847679183471841">இந்தக் கணக்கை ஏற்கனவே இந்தக் கம்ப்யூட்டரில் <ph name="AVATAR_NAME" /> பயன்படுத்துகிறார்.</translation>
-<translation id="9023009238991294202">இந்தச் சாதனத்தின் பிற பயனர்களும் இந்த நெட்வொர்க்கைப் பயன்படுத்தலாம்.</translation>
 <translation id="9023015617655685412">இந்தத் தாவலை புக்மார்க் செய்க...</translation>
 <translation id="9023909777842748145">இந்த அம்சத்தை முடக்குவதால் சிஸ்டம் புதுப்பிப்புகள், பாதுகாப்பு போன்ற அத்தியாவசிய சேவைகளைப் பெறத் தேவைப்படும் தகவலை அனுப்புவதற்கான சாதனத் திறனில் பாதிப்பு ஏற்படாது.</translation>
 <translation id="9024127637873500333">புதிய தாவலில் &amp;திற</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index fc837e9..56b3431a 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -62,6 +62,7 @@
 <translation id="1066613507389053689">Chrome OS అప్‌డేట్ అవసరం</translation>
 <translation id="1067048845568873861">సృష్టించబడింది</translation>
 <translation id="1067922213147265141">ఇతర Google సర్వీసులు</translation>
+<translation id="1069355737714877171"><ph name="PROFILE_NAME" /> పేరు గల eSIM ప్రొఫైల్‌ను తీసివేయండి</translation>
 <translation id="1070377999570795893">మీ కంప్యూటర్‌లోని మరొక ప్రోగ్రామ్ Chrome పని చేసే విధానాన్ని మార్చగలిగే ఒక ఎక్స్‌టెన్షన్‌ని జోడించింది.
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -994,6 +995,7 @@
 మీ పరికరంలో Family Link యాప్ ఇన్‌స్టాల్ చేయడం ద్వారా మీరు ఈ ఖాతా సెట్టింగ్‌లను నిర్వహించవచ్చు.  మీకు ఇమెయిల్‌లో సూచనలను పంపాము.</translation>
 <translation id="2040460856718599782">అయ్యో!  మిమ్మల్ని ప్రామాణీకరించడానికి ప్రయత్నిస్తున్నప్పుడు ఏదో తప్పు జరిగింది. దయచేసి మీ సైన్-ఇన్ ప్రమాణాలను ఒకటికి రెండుసార్లు తనిఖీ చేసుకుని మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="2044014337866019681">సెషన్‌ను అన్‌లాక్ చేయడానికి, మీరు <ph name="ACCOUNT" />ను వెరిఫై చేస్తున్నారని దయచేసి నిర్ధారించుకోండి.</translation>
+<translation id="2044023416777079300">మోడెమ్ రిజిస్టర్ చేయబడలేదు</translation>
 <translation id="204497730941176055">Microsoft సర్టిఫికెట్ టెంప్లేట్ పేరు</translation>
 <translation id="2045117674524495717">కీబోర్డ్ షార్ట్‌కట్ సహాయం</translation>
 <translation id="2045969484888636535">కుకీలను నిరోధించడాన్ని కొనసాగించండి</translation>
@@ -4098,6 +4100,7 @@
 <translation id="5486261815000869482">పాస్‌వర్డ్‌ని నిర్ధారించండి</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> మీ స్క్రీన్‌ను <ph name="TAB_NAME" />తో భాగస్వామ్యం చేస్తోంది.</translation>
 <translation id="5486561344817861625">బ్రౌజర్ పునఃప్రారంభాన్ని ప్రారంభించండి</translation>
+<translation id="5487460042548760727"><ph name="PROFILE_NAME" />కు ప్రొఫైల్ పేరుమార్చండి</translation>
 <translation id="5487521232677179737">డేటాని తీసివేయి</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' కాపీ చేయబడింది</translation>
 <translation id="5488508217173274228">సింక్ ఎన్‌క్రిప్షన్ ఆప్షన్‌లు</translation>
@@ -4839,6 +4842,7 @@
 <translation id="6308937455967653460">లిం&amp;క్‌ను ఇలా సేవ్ చేయి...</translation>
 <translation id="6309443618838462258">మీ అడ్మినిస్ట్రేటర్ ఈ ఇన్‌పుట్ విధానాన్ని అనుమతించరు</translation>
 <translation id="6309510305002439352">మైక్రోఫోన్ ఆఫ్ చేయబడింది</translation>
+<translation id="6310141306111263820">eSIM ప్రొఫైల్‌ను ఇన్‌స్టాల్ చేయడం సాధ్యపడలేదు. సహాయం కోసం మీ క్యారియర్‌ను సంప్రదించండి.</translation>
 <translation id="6311220991371174222">మీ ప్రొఫైల్‌ను తెరుస్తున్నప్పుడు ఏదో తప్పు జరిగినందున Chromeను తెరవడం సాధ్యపడలేదు. Chromeను పునఃప్రారంభించడానికి ప్రయత్నించండి.</translation>
 <translation id="6312403991423642364">తెలియని నెట్‌వర్క్ ఎర్రర్</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{భద్రతా తనిఖీ జరిగి 1 రోజు అయింది}other{భద్రతా తనిఖీ జరిగి {NUM_DAYS} రోజులు అయింది}}</translation>
@@ -5910,6 +5914,7 @@
 <translation id="7506541170099744506">మీ <ph name="DEVICE_TYPE" /> ఎంటర్‌ప్రైజ్ నిర్వహణ కోసం విజయవంతంగా నమోదు చేయబడింది.</translation>
 <translation id="7507207699631365376">ఈ ప్రొవైడర్ <ph name="BEGIN_LINK" />గోప్యతా పాలసీ<ph name="END_LINK" />ని చూడండి</translation>
 <translation id="7507930499305566459">స్థితి ప్రతిస్పందన సర్టిఫికెట్</translation>
+<translation id="7509246181739783082">మీ గుర్తింపును వెరిఫై చేయండి</translation>
 <translation id="7513029293694390567">నిల్వ చేసిన ఆధారాలను ఉపయోగించి ఆటోమేటిక్‌గా వెబ్‌సైట్‌లకు సైన్ ఇన్ చేస్తుంది. దీన్ని నిలిపివేస్తే, మీరు వెబ్‌సైట్‌కు సైన్ ఇన్ చేసే ప్రతిసారి నిర్ధారణ కోసం మిమ్మల్ని అడుగుతుంది.</translation>
 <translation id="7514239104543605883">మీ పరికరానికి కాపీ చేయండి</translation>
 <translation id="7514365320538308">డౌన్‌లోడ్ చేయి</translation>
@@ -5976,6 +5981,7 @@
 <translation id="7582582252461552277">ఈ నెట్‌వర్క్‌ను ప్రాధాన్యపరచు</translation>
 <translation id="7582844466922312471">మొబైల్ డేటా</translation>
 <translation id="7583948862126372804">గణన</translation>
+<translation id="7586051298768394542">స్పీచ్ ఫైల్‌లను డౌన్‌లోడ్ చేయడం సాధ్యం కాదు. మీ వాయిస్‌ను Googleకు పంపడం ద్వారా డిక్టేషన్ పనిచేయడం కొనసాగుతుంది.</translation>
 <translation id="7586498138629385861">Chrome యాప్‌లు తెరవబడి ఉన్నప్పుడు Chrome నిరంతరాయంగా అమలులో ఉంటుంది.</translation>
 <translation id="7589461650300748890">అయ్యో, అక్కడ. జాగ్రత్తగా ఉండండి.</translation>
 <translation id="7593653750169415785">మీరు కొన్ని సార్లు నోటిఫికేషన్‌లను తిరస్కరించారు కాబట్టి ఆటోమేటిక్‌గా బ్లాక్ చేయబడింది</translation>
@@ -6437,7 +6443,6 @@
 <translation id="8061091456562007989">దీనిని తిరిగి మార్చు</translation>
 <translation id="8061991877177392872">మీరు ఇప్పటికే మరో పరికరంలో మీ Assistantతో వాయిస్ మ్యాచ్‌ను సెటప్ చేసినట్టుగా అనిపిస్తోంది. ఈ పరికరంలో వాయిస్ నమూనాను రూపొందించడం కోసం ఈ మునుపటి రికార్డింగ్‌లు ఉపయోగించబడ్డాయి.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 పేపర్ షీట్}other{{COUNT} పేపర్ షీట్‌లు}}</translation>
-<translation id="8062879968880283306">పరికర కెమెరాను ఉపయోగించి QR కోడ్‌ను స్కాన్ చేయండి లేదా మీ క్యారియర్ అందించిన యాక్టివేషన్ కోడ్‌ను ఎంటర్ చేయండి.</translation>
 <translation id="8063235345342641131">డిఫాల్ట్ ఆకుపచ్చ రంగు అవతార్</translation>
 <translation id="8063535366119089408">ఫైల్‌ను చూడండి</translation>
 <translation id="8064279191081105977">గ్రూప్ <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6561,6 +6566,7 @@
 <translation id="8191230140820435481">మీ అనువర్తనాలను, పొడిగింపులను మరియు థీమ్‌లను నిర్వహించండి</translation>
 <translation id="8195027750202970175">డిస్క్‌లో పరిమాణం</translation>
 <translation id="8198323535106903877">మేము మీ కోసం ఈ <ph name="NUMBER_OF_APPS" /> యాప్‌లు ఇన్‌స్టాల్ చేస్తాము</translation>
+<translation id="8198456017687137612">ప్రసారం చేసే ట్యాబ్</translation>
 <translation id="8199300056570174101">నెట్‌వర్క్ (సేవ) మరియు పరికర లక్షణాలు</translation>
 <translation id="8200772114523450471">మ‌ళ్లీ ప్రారంభించు</translation>
 <translation id="8201717382574620700"><ph name="TOPIC_SOURCE" /> ఆల్బమ్‌లను ఎంచుకోండి</translation>
@@ -6857,7 +6863,6 @@
 <translation id="8551588720239073785">తేదీ, సమయం సెట్టింగ్‌లు</translation>
 <translation id="8553342806078037065">ఇతర వ్యక్తులను నిర్వహించు</translation>
 <translation id="8554899698005018844">భాష లేదు</translation>
-<translation id="8555195867496021627">eSIM ప్రొఫైల్‌లు ఏవీ అందుబాటులో లేవు. కొత్త ప్రొఫైల్‌ను <ph name="BEGIN_LINK" />ఇక్కడ<ph name="END_LINK" /> డౌన్‌లోడ్ చేయండి.</translation>
 <translation id="8557022314818157177">మీ వేలిముద్ర క్యాప్చర్ అయ్యేవరకు, మీ సెక్యూరిటీ కీని తాకుతూ ఉండండి</translation>
 <translation id="8557930019681227453">మానిఫెస్ట్</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{అన్నింటినీ &amp;కొత్త విండోలో తెరువు}=1{&amp;కొత్త విండోలో తెరువు}other{అన్నింటినీ ({COUNT}) &amp;కొత్త విండోలో తెరువు}}</translation>
@@ -7037,7 +7042,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" />లో <ph name="NETWORK_INDEX" /> నెట్‌వర్క్, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> సిగ్నల్ సామర్థ్యం <ph name="SIGNAL_STRENGTH" />%, మీ అడ్మినిస్ట్రేటర్ ద్వారా మేనేజ్ చేయబడుతుంది, కనెక్ట్ చేయండి</translation>
 <translation id="8746654918629346731">మీరు "<ph name="EXTENSION_NAME" />"ను ఇప్పటికే అభ్యర్థించారు</translation>
 <translation id="874689135111202667">{0,plural, =1{ఈ సైట్‌కు ఒక ఫైల్‌ను అప్‌లోడ్ చేయాలా?}other{ఈ సైట్‌కు # ఫైల్‌లను అప్‌లోడ్ చేయాలా?}}</translation>
-<translation id="8749556627204742888">మీరు ఈ నెట్‌వర్క్‌ను ఈ పరికరానికి చెందిన ఇతర యూజర్‌లతో షేర్ చేస్తున్నారు.</translation>
 <translation id="8749805710397399240">మీ స్క్రీన్‌ను ప్రసారం చేయడం సాధ్యపడలేదు. సిస్టమ్ ప్రాధాన్యతలలో ఉన్న 'స్క్రీన్ రికార్డింగ్' అనుమతిని చెక్ చేయండి.</translation>
 <translation id="8749863574775030885">తెలియని విక్రేత అందించిన USB పరికరాలకు యాక్సెస్</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ఈ సీరియల్ పోర్ట్‌లలో ఒకదానితో కనెక్ట్ (అనుసంధానం) కావాలని కోరుకుంటుంది</translation>
@@ -7099,7 +7103,6 @@
 <translation id="8808744862003883508">ఈ పేజీలో మీరు Chromeలో ఇన్‌స్టాల్ చేసిన అన్ని ఎక్స్‌టెన్షన్‌లను చూడవచ్చు.</translation>
 <translation id="8809147117840417135">లేత నీలి ఆకుపచ్చ రంగు</translation>
 <translation id="8811862054141704416">Crostini మైక్రోఫోన్ యాక్సెస్</translation>
-<translation id="8812552797690463522">ఈ నెట్‌వర్క్ మీతో షేర్ చేయబడింది.</translation>
 <translation id="8812593354822910461">అలాగే బ్రౌజింగ్ డేటాను (<ph name="URL" />) క్లియర్ చేస్తుంది, దీని వలన మీరు <ph name="DOMAIN" /> నుండి సైన్ అవుట్ చేయబడతారు. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">నాకు తర్వాత గుర్తు చేయి</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" />కు సైన్ ఇన్ చేయడం సాధ్యపడదు</translation>
@@ -7144,6 +7147,7 @@
 <translation id="8847523528195140327">కవర్ మూసి ఉన్నప్పుడు సైన్ అవుట్ స్థితికి వెళ్లు</translation>
 <translation id="8847988622838149491">USB</translation>
 <translation id="8849001918648564819">దాచబడింది</translation>
+<translation id="8849219423513870962"><ph name="PROFILE_NAME" /> పేరు గల eSIM ప్రొఫైల్ తీసివేతను రద్దు చేయండి</translation>
 <translation id="8850251000316748990">మరిన్ని చూడండి...</translation>
 <translation id="885246833287407341">API ఫంక్షన్ తర్కాలు</translation>
 <translation id="8853586775156634952">ఈ పరికరంలో మాత్రమే ఈ కార్డ్ సేవ్ అవుతుంది</translation>
@@ -7310,7 +7314,6 @@
 <translation id="9021662811137657072">వైరస్ కనుగొనబడింది</translation>
 <translation id="902236149563113779">గేమ్‌లు లేదా ముందస్తు హెచ్చరిక దిశలు వంటి AR ఫీచర్‌ల కోసం సాధారణంగా సైట్‌లు మీ కెమెరా పొజిషన్‌ను ట్రాక్ చేస్తాయి</translation>
 <translation id="9022847679183471841">ఈ ఖాతా ఈ కంప్యూటర్‌లో ఇప్పటికే <ph name="AVATAR_NAME" /> ద్వారా ఉపయోగించబడుతోంది.</translation>
-<translation id="9023009238991294202">ఈ పరికరం యొక్క ఇతర వినియోగదారులు ఈ నెట్‌వర్క్‌ను ఉపయోగించగలరు.</translation>
 <translation id="9023015617655685412">ఈ ట్యాబ్‌ను బుక్‌మార్క్ చేయి...</translation>
 <translation id="9023909777842748145">ఈ ఫీచర్‌ను ఆఫ్ చేయడం వలన సిస్టమ్ అప్‌డేట్‌లు, భద్రత లాంటి ముఖ్యమైన సేవలకు అవసరమైన సమాచారాన్ని పంపగల మీ పరికర సామర్థ్యం ప్రభావితం కాదు.</translation>
 <translation id="9024127637873500333">&amp;కొత్త‌ ట్యాబ్‌లో తెరువు</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 87b43d7..f4bae4b7 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">คืนค่าเป็นหน้าเริ่มต้นใช้งานเริ่มต้นไหม</translation>
 <translation id="1388253969141979417">ได้รับอนุญาตให้ใช้ไมโครโฟน</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> จะรีสตาร์ทเมื่อการอัปเดตเสร็จสมบูรณ์</translation>
-<translation id="138900021244932468">ไม่พบโปรไฟล์ ในการตั้งค่าเครือข่ายใหม่ ให้สแกนคิวอาร์โค้ดโดยใช้กล้องของอุปกรณ์หรือป้อนรหัสเปิดใช้งานที่ผู้ให้บริการให้มา</translation>
 <translation id="139013308650923562">อนุญาตให้ใช้แบบอักษรที่ติดตั้งอยู่ในอุปกรณ์</translation>
 <translation id="1390548061267426325">เปิดเป็นแท็บทั่วไป</translation>
 <translation id="1393283411312835250">ดวงอาทิตย์และเมฆ</translation>
@@ -513,6 +512,7 @@
 <translation id="1545775234664667895">ติดตั้งธีม "<ph name="THEME_NAME" />" แล้ว</translation>
 <translation id="1546280085599573572">ส่วนขยายนี้ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณคลิกปุ่มหน้าแรก</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> ต้องการติดตั้ง <ph name="EXTENSION_TYPE" /> ที่ดำเนินการต่อไปนี้ได้</translation>
+<translation id="1547808936554660006">ฉันทราบดีว่าโปรไฟล์ eSIM ที่ติดตั้งไว้จะไม่ถูกนำออกโดยการทำ Powerwash</translation>
 <translation id="1549275686094429035">ARC เปิดใช้งานอยู่</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> ต้องการเข้าถึง <ph name="VOLUME_NAME" /> แอปอาจแก้ไขหรือลบไฟล์ของคุณได้</translation>
 <translation id="1552301827267621511">ส่วนขยาย "<ph name="EXTENSION_NAME" />" เปลี่ยนไปใช้การค้นหาโดย <ph name="SEARCH_PROVIDER_DOMAIN" /></translation>
@@ -549,6 +549,7 @@
 <translation id="1588438908519853928">ปกติ</translation>
 <translation id="158849752021629804">ต้องใช้เครือข่ายในประเทศ</translation>
 <translation id="1588870296199743671">เปิดลิงก์ด้วย...</translation>
+<translation id="1588919647604819635">การ์ดคลิกขวา</translation>
 <translation id="1589055389569595240">แสดงตัวสะกดและไวยากรณ์</translation>
 <translation id="1591679663873027990">ให้สิทธิ์ Parallels Desktop เข้าถึงอุปกรณ์ USB Parallels Desktop จะไม่จดจำอุปกรณ์ USB หลังจากที่นำออก</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> ได้ปิดใช้การแก้ไขข้อบกพร่อง ADB ซึ่งจะเป็นการรีเซ็ต <ph name="DEVICE_TYPE" /> ของคุณ สำรองข้อมูลไฟล์ก่อนที่จะรีสตาร์ท</translation>
@@ -984,6 +985,7 @@
 
 คุณจัดการการตั้งค่าบัญชีนี้ได้โดยการติดตั้งแอป Family Link ในอุปกรณ์ของคุณ  เราส่งอีเมลวิธีการตั้งค่าไปให้คุณแล้ว</translation>
 <translation id="2040460856718599782">อ๊ะ! เกิดข้อผิดพลาดขณะตรวจสอบสิทธิ์ของคุณ โปรดตรวจสอบข้อมูลรับรองสำหรับลงชื่อเข้าใช้อีกครั้ง แล้วลองอีกครั้ง</translation>
+<translation id="2042279886444479655">โปรไฟล์ที่ใช้งานอยู่</translation>
 <translation id="2044014337866019681">โปรดยืนยันบัญชี <ph name="ACCOUNT" /> เพื่อปลดล็อกเซสชัน</translation>
 <translation id="2044023416777079300">ไม่ได้จดทะเบียนโมเด็ม</translation>
 <translation id="204497730941176055">ชื่อแม่แบบใบรับรองของ Microsoft</translation>
@@ -1322,6 +1324,7 @@
 <translation id="2395616325548404795">ลงทะเบียน <ph name="DEVICE_TYPE" /> ของคุณสำหรับการจัดการองค์กรเรียบร้อยแล้ว แต่ไม่สามารถส่งเนื้อหาและข้อมูลตำแหน่งของอุปกรณ์ โปรดป้อนข้อมูลนี้ด้วยตนเองจากคอนโซลผู้ดูแลระบบสำหรับอุปกรณ์นี้</translation>
 <translation id="2396387085693598316">ผู้ดูแลระบบของคุณบล็อก "<ph name="EXTENSION_NAME" />" ไว้</translation>
 <translation id="2396783860772170191">ป้อน PIN 4 หลัก (0000-9999)</translation>
+<translation id="2398546389094871088">การทำ Powerwash อุปกรณ์จะไม่นำโปรไฟล์ eSIM ของคุณออก ไปที่<ph name="LINK_BEGIN" />การตั้งค่าอุปกรณ์เคลื่อนที่<ph name="LINK_END" />เพื่อนำโปรไฟล์เหล่านี้ออกด้วยตัวเอง</translation>
 <translation id="2399699884460174994">เปิดการแจ้งเตือนแล้ว</translation>
 <translation id="2399939490305346086">ข้อมูลการลงชื่อเข้าใช้ในคีย์ความปลอดภัย</translation>
 <translation id="2400664245143453337">ต้องอัปเดตทันที</translation>
@@ -1739,6 +1742,7 @@
 <translation id="2844809857160214557">ดูและจัดการงานพิมพ์</translation>
 <translation id="2845382757467349449">แสดงแถบบุ๊กมาร์กเสมอ</translation>
 <translation id="284805635805850872">นำซอฟต์แวร์อันตรายออกไหม</translation>
+<translation id="2849035674501872372">ค้นหา</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">การทำความสะอาดไม่สำเร็จ</translation>
 <translation id="2849936225196189499">สำคัญ</translation>
@@ -2050,6 +2054,7 @@
 <translation id="3189187154924005138">เคอร์เซอร์ขนาดใหญ่</translation>
 <translation id="3190558889382726167">บันทึกรหัสผ่านแล้ว</translation>
 <translation id="3192947282887913208">ไฟล์เสียง</translation>
+<translation id="3197453258332670132">เมื่อคลิกขวาหรือกดค้าง ระบบจะแสดงข้อมูลเกี่ยวกับข้อความที่คุณเลือก</translation>
 <translation id="3199127022143353223">เซิร์ฟเวอร์</translation>
 <translation id="3201422919974259695">อุปกรณ์ USB ที่ใช้ได้จะปรากฏที่นี่</translation>
 <translation id="3202131003361292969">เส้นทาง</translation>
@@ -2071,6 +2076,7 @@
 <translation id="3223531857777746191">ปุ่มรีเซ็ต</translation>
 <translation id="3225084153129302039">รูปโปรไฟล์เริ่มต้นสีม่วง</translation>
 <translation id="3225319735946384299">การรับรองโค้ด</translation>
+<translation id="3226487301970807183">เปิด/ปิดแผงด้านข้างแบบจัดข้อความชิดซ้าย</translation>
 <translation id="3227137524299004712">ไมโครโฟน</translation>
 <translation id="3233271424239923319">สำรองข้อมูลแอปและไฟล์ Linux</translation>
 <translation id="3238192140106069382">กำลังเชื่อมต่อและยืนยัน</translation>
@@ -2340,6 +2346,7 @@
 <translation id="3515983984924808886">แตะคีย์ความปลอดภัยอีกครั้งเพื่อยืนยันการรีเซ็ต ระบบจะลบข้อมูลทั้งหมดที่เก็บไว้ในคีย์ความปลอดภัย รวมถึง PIN ของคีย์ด้วย</translation>
 <translation id="3518985090088779359">ยอมรับและทำต่อ</translation>
 <translation id="3519564332031442870">บริการแบ็กเอนด์ของการพิมพ์</translation>
+<translation id="3519938335881974273">บันทึกหน้าเป็น...</translation>
 <translation id="3521606918211282604">เปลี่ยนขนาดดิสก์</translation>
 <translation id="3522088408596898827">พื้นที่ดิสก์เกือบเต็มแล้ว เพิ่มพื้นที่ดิสก์แล้วลองอีกครั้ง</translation>
 <translation id="3524965460886318643">ส่งออกกิจกรรม</translation>
@@ -2363,6 +2370,7 @@
 <translation id="3550593477037018652">ยกเลิกการเชื่อมต่อเครือข่ายมือถือ</translation>
 <translation id="3550915441744863158">Chrome จะอัปเดตโดยอัตโนมัติเพื่อให้คุณได้ใช้เวอร์ชันใหม่ที่สุดอยู่เสมอ</translation>
 <translation id="3551320343578183772">ปิดแท็บ</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">ล้างเมื่อออก</translation>
 <translation id="3554493885489666172">อุปกรณ์ของคุณจัดการโดย <ph name="PROFILE_NAME" /> ผู้ดูแลระบบจะเข้าถึงข้อมูลของโปรไฟล์ใดก็ได้ในอุปกรณ์นี้</translation>
 <translation id="3555812735919707620">นำส่วนขยายออก</translation>
@@ -2415,6 +2423,7 @@
 <translation id="3604713164406837697">เปลี่ยนวอลเปเปอร์</translation>
 <translation id="3605780360466892872">บัตเทิ่นดาวน์</translation>
 <translation id="3608576286259426129">ตัวอย่างภาพผู้ใช้</translation>
+<translation id="3609277884604412258">ค้นหาด่วน</translation>
 <translation id="3610369246614755442">ต้องซ่อมพัดลมของแท่นชาร์จ</translation>
 <translation id="361106536627977100">ข้อมูล Flash</translation>
 <translation id="3611655097742243705">ไปที่ Play Store เพื่อดูแอปเพิ่มเติม</translation>
@@ -3358,6 +3367,7 @@
 <translation id="4636682061478263818">ไฟล์ในไดรฟ์</translation>
 <translation id="4636930964841734540">ข้อมูล</translation>
 <translation id="4637083375689622795">การทำงานเพิ่มเติม <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">ใช้กล้องอีกครั้ง</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{ข้อความ}other{# ข้อความ}}</translation>
 <translation id="4638930039313743000">เปิดใช้การแก้ไขข้อบกพร่อง ADB</translation>
 <translation id="4641539339823703554">Chrome ไม่สามารถตั้งเวลาระบบได้ โปรดตรวจสอบเวลาด้านล่างและแก้ไขให้ถูกต้องหากจำเป็น</translation>
@@ -4108,6 +4118,7 @@
 <translation id="5499313591153584299">ไฟล์นี้อาจเป็นอันตรายต่อคอมพิวเตอร์</translation>
 <translation id="5499453227627332024">มีการอัปเกรดพร้อมให้ดำเนินการกับคอนเทนเนอร์ Linux คุณอัปเกรดในภายหลังจากแอปการตั้งค่าก็ได้</translation>
 <translation id="5500709606820808700">เรียกใช้การตรวจสอบความปลอดภัยในวันนี้</translation>
+<translation id="5501322521654567960">แผงด้านข้างแบบจัดข้อความชิดซ้าย</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{รับ <ph name="ATTACHMENTS" />จาก <ph name="DEVICE_NAME" /> ไม่สำเร็จ}other{รับ <ph name="ATTACHMENTS" />จาก <ph name="DEVICE_NAME" /> ไม่สำเร็จ}}</translation>
 <translation id="5502500733115278303">นำเข้าจาก Firefox</translation>
 <translation id="5502915260472117187">บุตรหลาน</translation>
@@ -5319,6 +5330,7 @@
 <translation id="6856348640027512653">ไม่ได้รับอนุญาตให้ใช้อุปกรณ์หรือข้อมูล Virtual Reality</translation>
 <translation id="6856459657722366306">เครือข่ายที่ <ph name="NETWORK_INDEX" /> จาก <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, ความแรงสัญญาณ <ph name="SIGNAL_STRENGTH" />%, รายละเอียด</translation>
 <translation id="6856623341093082836">ตั้งค่าและปรับเปลี่ยนความแม่นยำของหน้าจอสัมผัส</translation>
+<translation id="6857145580237920905">นำโปรไฟล์ eSIM ออกก่อนทำ Powerwash</translation>
 <translation id="6857699260879628349">ดูข้อมูลการกำหนดค่า</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> วินาที</translation>
 <translation id="6860097299815761905">การตั้งค่าพร็อกซี...</translation>
@@ -5900,6 +5912,7 @@
 <translation id="7506541170099744506">ลงทะเบียน <ph name="DEVICE_TYPE" /> ของคุณสำหรับการจัดการองค์กรเรียบร้อยแล้ว</translation>
 <translation id="7507207699631365376">ดู<ph name="BEGIN_LINK" />นโยบายความเป็นส่วนตัว<ph name="END_LINK" />ของผู้ให้บริการรายนี้</translation>
 <translation id="7507930499305566459">ใบรับรอง Status Responder</translation>
+<translation id="7509246181739783082">ยืนยันตัวตนของคุณ</translation>
 <translation id="7513029293694390567">ลงชื่อเข้าใช้เว็บไซต์โดยอัตโนมัติโดยใช้ข้อมูลเข้าสู่ระบบที่เก็บไว้ เมื่อฟีเจอร์นี้ปิดอยู่ ระบบจะขอให้คุณยืนยันทุกครั้งก่อนลงชื่อเข้าใช้เว็บไซต์</translation>
 <translation id="7514239104543605883">คัดลอกไปยังอุปกรณ์ของคุณ</translation>
 <translation id="7514365320538308">ดาวน์โหลด</translation>
@@ -6432,7 +6445,6 @@
 <translation id="8061091456562007989">เปลี่ยนกลับ</translation>
 <translation id="8061991877177392872">ดูเหมือนว่าคุณได้ตั้งค่า Voice Match กับ Assistant ในอุปกรณ์อื่นไว้แล้ว ระบบใช้เสียงบันทึกที่มีอยู่ก่อนแล้วดังกล่าวในการสร้างรูปแบบเสียงในอุปกรณ์นี้</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 แผ่น}other{{COUNT} แผ่น}}</translation>
-<translation id="8062879968880283306">สแกนคิวอาร์โค้ดโดยใช้กล้องของอุปกรณ์หรือป้อนรหัสเปิดใช้งานที่ผู้ให้บริการให้มา</translation>
 <translation id="8063235345342641131">รูปโปรไฟล์เริ่มต้นสีเขียว</translation>
 <translation id="8063535366119089408">ดูไฟล์</translation>
 <translation id="8064279191081105977">กลุ่ม <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6853,7 +6865,6 @@
 <translation id="8551588720239073785">การตั้งค่าวันที่และเวลา</translation>
 <translation id="8553342806078037065">จัดการบุคคลอื่นๆ</translation>
 <translation id="8554899698005018844">ไม่มีภาษา</translation>
-<translation id="8555195867496021627">ไม่มีโปรไฟล์ eSIM ที่ใช้ได้ ดาวน์โหลดโปรไฟล์ใหม่<ph name="BEGIN_LINK" />ที่นี่<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">แตะคีย์ความปลอดภัยซ้ำๆ จนกว่าระบบจะบันทึกลายนิ้วมือของคุณได้</translation>
 <translation id="8557930019681227453">ไฟล์ Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{เปิดทั้งหมดใน&amp;หน้าต่างใหม่}=1{เปิดใน&amp;หน้าต่างใหม่}other{เปิดทั้งหมด ({COUNT}) ใน&amp;หน้าต่างใหม่}}</translation>
@@ -7033,7 +7044,6 @@
 <translation id="8743164338060742337">เครือข่ายที่ <ph name="NETWORK_INDEX" /> จาก <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> ความแรงสัญญาณ <ph name="SIGNAL_STRENGTH" />%, จัดการโดยผู้ดูแลระบบ, เชื่อมต่อ</translation>
 <translation id="8746654918629346731">คุณขอ "<ph name="EXTENSION_NAME" />" แล้ว</translation>
 <translation id="874689135111202667">{0,plural, =1{อัปโหลด 1 ไฟล์ไปยังเว็บไซต์นี้ใช่ไหม}other{อัปโหลด # ไฟล์ไปยังเว็บไซต์นี้ใช่ไหม}}</translation>
-<translation id="8749556627204742888">คุณกำลังแชร์เครือข่ายนี้กับผู้ใช้คนอื่นในอุปกรณ์นี้</translation>
 <translation id="8749805710397399240">แคสต์หน้าจอไม่ได้ โปรดตรวจสอบสิทธิ์ในการอัดหน้าจอใน "ค่ากำหนดของระบบ"</translation>
 <translation id="8749863574775030885">เข้าถึงอุปกรณ์ USB จากผู้ขายที่ไม่รู้จัก</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ต้องการเชื่อมต่อกับพอร์ตอนุกรม</translation>
@@ -7095,7 +7105,6 @@
 <translation id="8808744862003883508">ในหน้านี้คุณจะเห็นส่วนขยายทั้งหมดที่ติดตั้งใน Chrome</translation>
 <translation id="8809147117840417135">สีน้ำเงินอมเขียวอ่อน</translation>
 <translation id="8811862054141704416">การเข้าถึงไมโครโฟนใน Crostini</translation>
-<translation id="8812552797690463522">เครือข่ายนี้แชร์กับคุณอยู่</translation>
 <translation id="8812593354822910461">รวมถึงล้างข้อมูลการท่องเว็บ (<ph name="URL" />) ซึ่งจะนำคุณออกจากระบบของ <ph name="DOMAIN" /> <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">เตือนฉันภายหลัง</translation>
 <translation id="8813698869395535039">ไม่สามารถลงชื่อเข้าใช้ <ph name="USERNAME" /></translation>
@@ -7307,7 +7316,6 @@
 <translation id="9021662811137657072">ตรวจพบไวรัส</translation>
 <translation id="902236149563113779">โดยปกติแล้วเว็บไซต์จะติดตามตำแหน่งกล้องของคุณเพื่อดำเนินการตามฟีเจอร์ต่างๆ ของ AR เช่น เกมหรือการแจ้งทิศทางล่วงหน้า</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> ใช้บัญชีนี้บนคอมพิวเตอร์เครื่องนี้แล้ว</translation>
-<translation id="9023009238991294202">ผู้ใช้อุปกรณ์นี้คนอื่นๆ สามารถใช้เครือข่ายนี้ได้</translation>
 <translation id="9023015617655685412">บุ๊กมาร์กแท็บนี้...</translation>
 <translation id="9023909777842748145">การปิดฟีเจอร์นี้จะไม่ส่งผลต่อความสามารถของอุปกรณ์ในการส่งข้อมูลที่จำเป็นต่อบริการสำคัญ เช่น การอัปเดตระบบและการรักษาความปลอดภัย</translation>
 <translation id="9024127637873500333">&amp;เปิดในแท็บใหม่</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 2b82978..533f74b 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">Varsayılan başlangıç sayfası geri yüklensin mi?</translation>
 <translation id="1388253969141979417">Mikrofonunuzu kullanmasına izin verilen siteler</translation>
 <translation id="1388728792929436380">Güncellemeler tamamlandığında <ph name="DEVICE_TYPE" /> yeniden başlatılacak.</translation>
-<translation id="138900021244932468">Hiçbir profil bulunamadı. Yeni bir ağ oluşturmak için cihaz kamerasını kullanarak QR kodunu tarayın veya operatörünüz tarafından sağlanan etkinleştirme kodunu girin.</translation>
 <translation id="139013308650923562">Cihazınızda yüklü yazı tiplerini kullanmasına izin verilen siteler</translation>
 <translation id="1390548061267426325">Normal Sekme Olarak Aç</translation>
 <translation id="1393283411312835250">Güneş ve bulutlar</translation>
@@ -5912,6 +5911,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> cihazınız kurumsal yönetim için başarıyla kaydettirildi.</translation>
 <translation id="7507207699631365376">Bu sağlayıcının <ph name="BEGIN_LINK" />gizlilik politikasına<ph name="END_LINK" /> bakın</translation>
 <translation id="7507930499305566459">Durum Yanıtlayıcı Sertifikası</translation>
+<translation id="7509246181739783082">Kimliğinizi doğrulayın</translation>
 <translation id="7513029293694390567">Depolanmış kimlik bilgileriyle web sitelerinde otomatik olarak oturum açın. Bu özellik devre dışı bırakılırsa, bir web sitesinde oturum açmadan önce her defasında işlemi onaylamanız istenir.</translation>
 <translation id="7514239104543605883">Cihazıma kopyala</translation>
 <translation id="7514365320538308">İndir</translation>
@@ -6443,7 +6443,6 @@
 <translation id="8061091456562007989">Geri değiştir</translation>
 <translation id="8061991877177392872">Asistanınızla Voice Match'i başka bir cihazda zaten kurmuş olduğunuz anlaşılıyor. Önceki bu kayıtlar, bu cihazda bir ses modeli oluşturmak için kullanıldı.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 kağıt}other{{COUNT} kağıt}}</translation>
-<translation id="8062879968880283306">Cihaz kamerasını kullanarak QR kodunu tarayın veya operatörünüz tarafından sağlanan etkinleştirme kodunu girin.</translation>
 <translation id="8063235345342641131">Varsayılan yeşil avatar</translation>
 <translation id="8063535366119089408">Dosyayı göster</translation>
 <translation id="8064279191081105977"><ph name="GROUP_NAME" /> grubu - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6864,7 +6863,6 @@
 <translation id="8551588720239073785">Tarih ve zaman ayarları</translation>
 <translation id="8553342806078037065">Diğer kişileri yönet</translation>
 <translation id="8554899698005018844">Dil yok</translation>
-<translation id="8555195867496021627">Kullanılabilir eSIM profili yok. <ph name="BEGIN_LINK" />Buradan<ph name="END_LINK" /> yeni profil indirin.</translation>
 <translation id="8557022314818157177">Parmak iziniz alınana kadar güvenlik anahtarınıza dokunmaya devam edin</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Tümünü &amp;Yeni Pencerede Aç}=1{&amp;Yeni Pencerede Aç}other{Tümünü ({COUNT}) &amp;Yeni Pencerede Aç}}</translation>
@@ -7044,7 +7042,6 @@
 <translation id="8743164338060742337">Ağ <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> %<ph name="SIGNAL_STRENGTH" /> Sinyal Gücü, Yöneticiniz tarafından Yönetiliyor, Bağlan</translation>
 <translation id="8746654918629346731">"<ph name="EXTENSION_NAME" />" zaten istendi</translation>
 <translation id="874689135111202667">{0,plural, =1{Bu siteye bir dosya yüklensin mi?}other{Bu siteye # dosya yüklensin mi?}}</translation>
-<translation id="8749556627204742888">Bu ağı, bu cihazın diğer kullanıcılarıyla paylaşıyorsunuz.</translation>
 <translation id="8749805710397399240">Ekranınız yayınlanamıyor. Sistem Tercihleri'nden Ekran Kaydı iznini kontrol edin.</translation>
 <translation id="8749863574775030885">Bilinmeyen bir tedarikçinin USB cihazlarına erişme</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> bir seri bağlantı noktasına bağlanmak istiyor</translation>
@@ -7106,7 +7103,6 @@
 <translation id="8808744862003883508">Chrome'da yüklü tüm uzantıları bu sayfada görebilirsiniz.</translation>
 <translation id="8809147117840417135">Açık turkuaz</translation>
 <translation id="8811862054141704416">Crostini mikrofon erişimi</translation>
-<translation id="8812552797690463522">Bu ağ sizinle paylaşılıyor.</translation>
 <translation id="8812593354822910461">Ayrıca tarama verilerini (<ph name="URL" />) temizle. Bu işlem <ph name="DOMAIN" /> oturumunuzu kapatabilir. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Sonra hatırlat</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> hesabında oturum açılamıyor</translation>
@@ -7318,7 +7314,6 @@
 <translation id="9021662811137657072">Virüs algılandı</translation>
 <translation id="902236149563113779">Siteler; oyunlar veya uyarı yönlendirmeleri gibi artırılmış gerçeklik özelliklerinin kullanılması için genellikle kamera konumunuzu izler</translation>
 <translation id="9022847679183471841">Bu hesap bu bilgisayarda <ph name="AVATAR_NAME" /> tarafından zaten kullanılıyor.</translation>
-<translation id="9023009238991294202">Bu cihazın diğer kullanıcıları bu ağı kullanabilir.</translation>
 <translation id="9023015617655685412">Bu sekmeye yer işareti koy...</translation>
 <translation id="9023909777842748145">Bu özelliğin kapatılması cihazınızın sistem güncellemeleri ve güvenlik gibi önemli hizmetler için gereken bilgileri gönderme özelliğini etkilemez.</translation>
 <translation id="9024127637873500333">&amp;Yeni Sekmede Aç</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 201ccec1..698cd12 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -361,7 +361,6 @@
 <translation id="138784436342154190">Відновити стартову сторінку за умовчанням?</translation>
 <translation id="1388253969141979417">Дозволено використовувати мікрофон</translation>
 <translation id="1388728792929436380">Пристрій <ph name="DEVICE_TYPE" /> перезапуститься після оновлення.</translation>
-<translation id="138900021244932468">Профілів не знайдено. Щоб налаштувати нову мережу, камерою пристрою зіскануйте QR-код або введіть код активації, який надав оператор.</translation>
 <translation id="139013308650923562">Дозволено використовувати шрифти, установлені на пристрої</translation>
 <translation id="1390548061267426325">Відкрити як звичайну вкладку</translation>
 <translation id="1393283411312835250">Сонце та хмари</translation>
@@ -519,6 +518,7 @@
 <translation id="1545775234664667895">Встановлено тему "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">Це розширення змінило сторінку, яка відкривається під час натискання кнопки "Домашня сторінка".</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> хоче встановити розширення "<ph name="EXTENSION_TYPE" />", яке може:</translation>
+<translation id="1547808936554660006">Я розумію, що функція Powerwash не видаляє встановлені профілі eSIM-карти</translation>
 <translation id="1549275686094429035">ARC ввімкнено</translation>
 <translation id="1549788673239553762">Додатку <ph name="APP_NAME" /> потрібен доступ до тому <ph name="VOLUME_NAME" />. Він може змінювати або видаляти ваші файли.</translation>
 <translation id="1552301827267621511">Розширення "<ph name="EXTENSION_NAME" />" змінило пошукову систему на <ph name="SEARCH_PROVIDER_DOMAIN" /></translation>
@@ -555,6 +555,7 @@
 <translation id="1588438908519853928">Звичайний</translation>
 <translation id="158849752021629804">Потрібна домашня мережа</translation>
 <translation id="1588870296199743671">Відкрити посилання за допомогою...</translation>
+<translation id="1588919647604819635">Натисніть картку правою кнопкою миші</translation>
 <translation id="1589055389569595240">Показати опцію "Правопис і граматика"</translation>
 <translation id="1591679663873027990">Додатку Parallels Desktop можна дозволити доступ до пристроїв USB. Коли ви вилучите пристрій USB, дані про нього не зберігатимуться в Parallels Desktop.</translation>
 <translation id="1592074621872221573">Адміністратор домену <ph name="MANAGER" /> вимкнув налагодження ADB, тому всі налаштування пристрою <ph name="DEVICE_TYPE" /> буде скинуто. Створіть резервні копії файлів, перш ніж перезапустити пристрій.</translation>
@@ -999,6 +1000,7 @@
 
 Щоб керувати налаштуваннями облікового запису, можна встановити на пристрої додаток Family Link.  Ми надіслали вказівки в електронному листі.</translation>
 <translation id="2040460856718599782">На жаль, під час спроби автентифікації сталася помилка. Ретельно перевірте свої облікові дані для входу та повторіть спробу.</translation>
+<translation id="2042279886444479655">Активні профілі</translation>
 <translation id="2044014337866019681">Переконайтеся, що підтверджуєте обліковий запис <ph name="ACCOUNT" />, щоб розблокувати цей сеанс.</translation>
 <translation id="2044023416777079300">Модем не зареєстровано</translation>
 <translation id="204497730941176055">Ім'я шаблону сертифіката Microsoft</translation>
@@ -1340,6 +1342,7 @@
 <translation id="2395616325548404795">Ваш пристрій <ph name="DEVICE_TYPE" /> зареєстровано для корпоративного керування, однак ми не отримали інформацію про його об’єкти та місцезнаходження. Введіть ці дані вручну на Консолі адміністратора.</translation>
 <translation id="2396387085693598316">Ваш адміністратор заблокував розширення "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="2396783860772170191">Введіть 4-значний PIN-код (0000–9999)</translation>
+<translation id="2398546389094871088">Під час виконання Powerwash на пристрої профілі eSIM-карти не видаляються. Це можна зробити вручну в розділі <ph name="LINK_BEGIN" />налаштування мобільних пристроїв<ph name="LINK_END" />.</translation>
 <translation id="2399699884460174994">Сповіщення ввімкнено</translation>
 <translation id="2399939490305346086">Дані для входу для ключа безпеки</translation>
 <translation id="2400664245143453337">Потрібно негайно встановити оновлення</translation>
@@ -1757,6 +1760,7 @@
 <translation id="2844809857160214557">Перегляд завдань друку й керування ними</translation>
 <translation id="2845382757467349449">Завжди показувати панель закладок</translation>
 <translation id="284805635805850872">Вилучити зловмисне програмне забезпечення?</translation>
+<translation id="2849035674501872372">Шукати</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">Не вдалось очистити</translation>
 <translation id="2849936225196189499">Вирішальні</translation>
@@ -2068,6 +2072,7 @@
 <translation id="3189187154924005138">Великий курсор</translation>
 <translation id="3190558889382726167">Пароль збережено</translation>
 <translation id="3192947282887913208">Аудіофайли</translation>
+<translation id="3197453258332670132">Коли ви натискаєте вибраний текст правою кнопкою миші або втримуєте його, відображається пов’язана з ним інформація</translation>
 <translation id="3199127022143353223">Сервери</translation>
 <translation id="3201422919974259695">Тут з’являться доступні пристрої USB.</translation>
 <translation id="3202131003361292969">Шлях</translation>
@@ -2089,6 +2094,7 @@
 <translation id="3223531857777746191">Кнопка "Скинути"</translation>
 <translation id="3225084153129302039">Стандартний фіолетовий аватар</translation>
 <translation id="3225319735946384299">Підписування коду</translation>
+<translation id="3226487301970807183">Показати чи сховати бічну панель зліва</translation>
 <translation id="3227137524299004712">Мікрофон</translation>
 <translation id="3233271424239923319">Створити резервну копію додатків і файлів Linux</translation>
 <translation id="3238192140106069382">Триває підключення та перевірка</translation>
@@ -2358,6 +2364,7 @@
 <translation id="3515983984924808886">Натисніть ключ безпеки знову, щоб підтвердити скидання. Усі дані, збережені на ньому (зокрема, PIN-код), буде видалено.</translation>
 <translation id="3518985090088779359">Продовжити</translation>
 <translation id="3519564332031442870">Print Backend Service</translation>
+<translation id="3519938335881974273">Зберегти сторінку як…</translation>
 <translation id="3521606918211282604">Змінити розмір диска</translation>
 <translation id="3522088408596898827">На диску дуже мало вільного місця. Звільніть місце та повторіть спробу.</translation>
 <translation id="3524965460886318643">Експортувати дії</translation>
@@ -2381,6 +2388,7 @@
 <translation id="3550593477037018652">Від'єднати мобільну мережу</translation>
 <translation id="3550915441744863158">Chrome оновлюється автоматично, тому ви завжди маєте найновішу версію</translation>
 <translation id="3551320343578183772">Закрити вкладку</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> – <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">Очищено під час виходу</translation>
 <translation id="3554493885489666172">Вашим пристроєм керує <ph name="PROFILE_NAME" />. Адміністратори мають доступ до даних у всіх профілях на цьому пристрої.</translation>
 <translation id="3555812735919707620">Видалити розширення</translation>
@@ -2433,6 +2441,7 @@
 <translation id="3604713164406837697">Змінити фоновий малюнок</translation>
 <translation id="3605780360466892872">Консерватор</translation>
 <translation id="3608576286259426129">Попередній перегляд зображення користувача</translation>
+<translation id="3609277884604412258">Швидкий пошук</translation>
 <translation id="3610369246614755442">Вентилятор док-станції несправний</translation>
 <translation id="361106536627977100">Дані флеш</translation>
 <translation id="3611655097742243705">Щоб знайти додатки, перейдіть у Google Play</translation>
@@ -3377,6 +3386,7 @@
 <translation id="4636682061478263818">Файли на Диску</translation>
 <translation id="4636930964841734540">Інформація</translation>
 <translation id="4637083375689622795">Інші дії, <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">Знову відкрити камеру</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{Текст}one{# текст}few{# тексти}many{# текстів}other{# тексту}}</translation>
 <translation id="4638930039313743000">Увімкнути налагодження ADB</translation>
 <translation id="4641539339823703554">Chrome не вдалося встановити час системи. Перевірте вказаний нижче час і за потреби виправте його.</translation>
@@ -4127,6 +4137,7 @@
 <translation id="5499313591153584299">Цей файл може зашкодити вашому комп’ютеру.</translation>
 <translation id="5499453227627332024">Доступне оновлення для Linux Container. Ви також можете оновити систему пізніше в додатку Налаштування.</translation>
 <translation id="5500709606820808700">Перевірку безпеки виконано сьогодні</translation>
+<translation id="5501322521654567960">Бічна панель зліва</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{Не вдалось отримати <ph name="ATTACHMENTS" /> з пристрою <ph name="DEVICE_NAME" />}one{Не вдалось отримати <ph name="ATTACHMENTS" /> з пристрою <ph name="DEVICE_NAME" />}few{Не вдалось отримати <ph name="ATTACHMENTS" /> з пристрою <ph name="DEVICE_NAME" />}many{Не вдалось отримати <ph name="ATTACHMENTS" /> з пристрою <ph name="DEVICE_NAME" />}other{Не вдалось отримати <ph name="ATTACHMENTS" /> з пристрою <ph name="DEVICE_NAME" />}}</translation>
 <translation id="5502500733115278303">Імпортовано із Firefox</translation>
 <translation id="5502915260472117187">Дитина</translation>
@@ -5338,6 +5349,7 @@
 <translation id="6856348640027512653">Заборонено використовувати пристрої або дані віртуальної реальності</translation>
 <translation id="6856459657722366306">Мережа №<ph name="NETWORK_INDEX" />, загалом мереж: <ph name="NETWORK_COUNT" />, назва: <ph name="NETWORK_NAME" />, оператор: <ph name="NETWORK_PROVIDER_NAME" />, стан з'єднання: <ph name="CONNECTION_STATUS" />, рівень сигналу: <ph name="SIGNAL_STRENGTH" />%, відомості</translation>
 <translation id="6856623341093082836">Налаштуйте й відкоригуйте точність сенсорного екрана</translation>
+<translation id="6857145580237920905">Перш ніж виконувати Powerwash, видаліть профілі eSIM-карти</translation>
 <translation id="6857699260879628349">Отримати інформацію про налаштування</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> с</translation>
 <translation id="6860097299815761905">Налаштування проксі-сервера...</translation>
@@ -5919,6 +5931,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> зареєстровано для корпоративного керування.</translation>
 <translation id="7507207699631365376">Переглянути <ph name="BEGIN_LINK" />політику конфіденційності<ph name="END_LINK" /> цього постачальника</translation>
 <translation id="7507930499305566459">Сертифікат відповідача статусу</translation>
+<translation id="7509246181739783082">Підтвердьте свою особу</translation>
 <translation id="7513029293694390567">Автоматично входити в облікові записи на веб-сайтах за допомогою збережених облікових даних. Якщо цю функцію вимкнено, потрібно підтверджувати облікові дані під час кожного входу на веб-сайтах.</translation>
 <translation id="7514239104543605883">Скопіювати на пристрій</translation>
 <translation id="7514365320538308">Завантажити</translation>
@@ -6451,7 +6464,6 @@
 <translation id="8061091456562007989">Скасувати зміни</translation>
 <translation id="8061991877177392872">Схоже, ви вже налаштували Voice Match для Асистента на іншому пристрої. Зразок вашого голосу на цьому пристрої створено на основі попередніх записів.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 аркуш паперу}one{{COUNT} аркуш паперу}few{{COUNT} аркуші паперу}many{{COUNT} аркушів паперу}other{{COUNT} аркуша паперу}}</translation>
-<translation id="8062879968880283306">Відскануйте QR-код за допомогою камери пристрою або введіть код активації, який надає ваш оператор.</translation>
 <translation id="8063235345342641131">Стандартний зелений аватар</translation>
 <translation id="8063535366119089408">Переглянути файл</translation>
 <translation id="8064279191081105977">Група <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6872,7 +6884,6 @@
 <translation id="8551588720239073785">Налаштування дати й часу</translation>
 <translation id="8553342806078037065">Керувати іншими користувачами</translation>
 <translation id="8554899698005018844">Мову не вибрано</translation>
-<translation id="8555195867496021627">Немає профілів eSIM. Завантажте новий профіль <ph name="BEGIN_LINK" />тут<ph name="END_LINK" />.</translation>
 <translation id="8557022314818157177">Торкайтеся ключа безпеки, поки відбиток пальця не відсканується</translation>
 <translation id="8557930019681227453">Маніфест</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Відкрити всі в &amp;новому вікні}=1{Відкрити в &amp;новому вікні}one{Відкрити всі ({COUNT}) у &amp;новому вікні}few{Відкрити всі ({COUNT}) у &amp;новому вікні}many{Відкрити всі ({COUNT}) у &amp;новому вікні}other{Відкрити всі ({COUNT}) у &amp;новому вікні}}</translation>
@@ -7052,7 +7063,6 @@
 <translation id="8743164338060742337">Мережа №<ph name="NETWORK_INDEX" />, загалом мереж: <ph name="NETWORK_COUNT" />, назва: <ph name="NETWORK_NAME" />, оператор: <ph name="NETWORK_PROVIDER_NAME" />, рівень сигналу: <ph name="SIGNAL_STRENGTH" />%, мережею керує адміністратор, підключитися</translation>
 <translation id="8746654918629346731">Ви вже надіслали запит на розширення "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Завантажити один файл на цей сайт?}one{Завантажити # файл на цей сайт?}few{Завантажити # файли на цей сайт?}many{Завантажити # файлів на цей сайт?}other{Завантажити # файлу на цей сайт?}}</translation>
-<translation id="8749556627204742888">До цієї мережі мають доступ інші користувачі пристрою.</translation>
 <translation id="8749805710397399240">Не вдається транслювати ваш екран. Перевірте дозволи на запис екрана в параметрах системи.</translation>
 <translation id="8749863574775030885">Отримувати доступ до пристроїв USB від невідомого постачальника</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> хоче під’єднатися до послідовного порту</translation>
@@ -7117,7 +7127,6 @@
 <translation id="8808744862003883508">На цій сторінці можна переглянути всі розширення, установлені в Chrome.</translation>
 <translation id="8809147117840417135">Світло-бірюзовий</translation>
 <translation id="8811862054141704416">Доступ до мікрофона Crostini</translation>
-<translation id="8812552797690463522">Ви маєте доступ до цієї мережі.</translation>
 <translation id="8812593354822910461">Також видалити дані веб-перегляду (<ph name="URL" />), що може призвести до виходу з облікового запису на сайті <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Нагадати пізніше</translation>
 <translation id="8813698869395535039">Не вдається ввійти в обліковий запис <ph name="USERNAME" /></translation>
@@ -7329,7 +7338,6 @@
 <translation id="9021662811137657072">Виявлено вірус</translation>
 <translation id="902236149563113779">Сайти зазвичай відстежують положення камери для функцій доповненої реальності, як-от ігри або попередження про напрямки</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" /> уже використовує цей обліковий запис на цьому комп’ютері.</translation>
-<translation id="9023009238991294202">Інші користувачі цього пристрою можуть мають доступ до цієї мережі.</translation>
 <translation id="9023015617655685412">Додати цю вкладку до закладок…</translation>
 <translation id="9023909777842748145">Якщо вимкнути цю функцію, пристрій усе одно зможе надсилати інформацію, потрібну для отримання важливих послуг, як-от оновлень системи та засобів безпеки.</translation>
 <translation id="9024127637873500333">&amp;Відкрити в новій вкладці</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 1d375ef..b6c3d64 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -357,7 +357,6 @@
 <translation id="138784436342154190">ڈیفالٹ ابتدائی صفحہ بحال کریں؟</translation>
 <translation id="1388253969141979417">آپ کا مائیکروفون استعمال کرنے کی اجازت ہے</translation>
 <translation id="1388728792929436380">اپ ڈیٹس مکمل ہونے پر <ph name="DEVICE_TYPE" /> ری سٹارٹ ہو جائے گا۔</translation>
-<translation id="138900021244932468">‏کوئی پروفائل نہیں ملی۔ ایک نیا نیٹ ورک سیٹ اپ کرنے کیلئے، آلے کا کیمرا استعمال کر کے QR کوڈ اسکین کریں یا اپنے کیریئر کے ذریعے فراہم کردہ فعالیت کا کوڈ درج کریں۔</translation>
 <translation id="139013308650923562">آپ کے آلے پر انسٹال کردہ فونٹس کا استعمال کرنے کی اجازت ہے</translation>
 <translation id="1390548061267426325">ریگولر ٹیب کے بطور کھولیں</translation>
 <translation id="1393283411312835250">سورج اور بادل</translation>
@@ -514,6 +513,7 @@
 <translation id="1545775234664667895">انسٹال کردہ تھیم "<ph name="THEME_NAME" />"</translation>
 <translation id="1546280085599573572">آپ کی جانب سے ہوم بٹن کلک کرنے پر دکھائی دینے والے صفحہ کو اس ایکسٹینشن نے تبدیل کر دیا ہے۔</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> ایک <ph name="EXTENSION_TYPE" /> انسٹال کرنا چاہتا ہے جو درجہ ذیل چیزیں کر سکتی ہے:</translation>
+<translation id="1547808936554660006">‏میں سمجھتا ہوں کہ انسٹال کردہ eSIM پروفائلز کو Powerwash کے ذریعے ہٹایا نہیں جائے گا</translation>
 <translation id="1549275686094429035">‏ARC فعال ہے</translation>
 <translation id="1549788673239553762"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> تک رسائی حاصل کرنا چاہتی ہے۔ یہ آپ کی فائلوں میں ترمیم یا انہیں حذف کر سکتی ہے۔</translation>
 <translation id="1552301827267621511"><ph name="SEARCH_PROVIDER_DOMAIN" /> کے استعمال کے لیے "<ph name="EXTENSION_NAME" />" ایکسٹینشن نے تلاش کو تبدیل کر دیا</translation>
@@ -550,6 +550,7 @@
 <translation id="1588438908519853928">حسب معمول</translation>
 <translation id="158849752021629804">مقامی نیٹ ورک درکار ہے</translation>
 <translation id="1588870296199743671">لنک کو اس کے ساتھ کھولیں…</translation>
+<translation id="1588919647604819635">کارڈ پر دائیں طرف کلک کریں</translation>
 <translation id="1589055389569595240">ہجے اور گرامر کو دکھائیں</translation>
 <translation id="1591679663873027990">‏Parallels ڈیسک ٹاپ کو USB آلات تک رسائی کی اجازت دیں۔ USB آلے کو ہٹا دیے جانے کے بعد Parallels ڈیسک ٹاپ اسے یاد نہیں رکھے گا۔</translation>
 <translation id="1592074621872221573">‏<ph name="MANAGER" /> نے ADB ڈیبگنگ کو غیر فعال کر دیا ہے جو آپ کے <ph name="DEVICE_TYPE" /> کو ری سیٹ کر دے گا۔ ری اسٹارٹ کرنے سے پہلے اپنی فائلز کا بیک اپ لیں۔</translation>
@@ -985,6 +986,7 @@
 
 آپ اپنے آلے پر Family Link ایپ انسٹال کر کے اس اکاؤنٹ کی ترتیبات کا نظم کر سکتے ہیں۔  ہم نے آپ کو ایک ای میل میں ہدایات بھیجی ہیں۔</translation>
 <translation id="2040460856718599782">افوہ! آپ کی توثیق کرتے وقت کچھ غلط ہوگیا۔ براہ کرم اپنی سائن ان کے اسناد دوبار چیک کریں اور دوبارہ کوشش کریں۔</translation>
+<translation id="2042279886444479655">فعال پروفائلز</translation>
 <translation id="2044014337866019681">براہ کرم یقینی بنائیں کہ سیشن کو غیر مقفل کرنے کیلئے آپ <ph name="ACCOUNT" /> کی توثیق کر رہے ہیں۔</translation>
 <translation id="2044023416777079300">موڈیم رجسٹرڈ نہیں ہے</translation>
 <translation id="204497730941176055">‏Microsoft سرٹیفکیٹ تمثیل کا نام</translation>
@@ -1323,6 +1325,7 @@
 <translation id="2395616325548404795">‏انٹرپرائز مینیجمنٹ کیلئے آپ کے <ph name="DEVICE_TYPE" /> کا کامیابی کے ساتھ اندراج کر لیا گیا ہے، لیکن اس کے اثاثہ اور مقام کی معلومات بھیجنے میں ناکامی ہوئی۔ براہ کرم اس آلہ کیلئے اپنے Admin console سے یہ معلومات دستی طور پر درج کریں۔</translation>
 <translation id="2396387085693598316">آپ کے منتظم نے "<ph name="EXTENSION_NAME" />" مسدود کر دیا ہے</translation>
 <translation id="2396783860772170191">‏4 ہندسے کا پن درج کریں (‎0000-9999)</translation>
+<translation id="2398546389094871088">‏آپ کے آلے کی پاور واشنگ سے آپ کی eSIM پروفائلز کو ہٹایا نہیں جائے گا۔ دستی طور پر ان پروفائلز کو ہٹانے کے لیے <ph name="LINK_BEGIN" />موبائل ترتیبات<ph name="LINK_END" /> پر جائیں۔</translation>
 <translation id="2399699884460174994">اطلاعات آن کر دی گئیں</translation>
 <translation id="2399939490305346086">سیکیورٹی کلید کا سائن ان ڈیٹا</translation>
 <translation id="2400664245143453337">فوری طور پر اپ ڈیٹ درکار ہے</translation>
@@ -1739,6 +1742,7 @@
 <translation id="2844809857160214557">پرنٹ جابز دیکھیں اور ان کا نظم کریں</translation>
 <translation id="2845382757467349449">ہمیشہ بُک مارکس بار دکھائیں</translation>
 <translation id="284805635805850872">نقصان دہ سافٹ ویئر کو ہٹائیں؟</translation>
+<translation id="2849035674501872372">اوپر دیکھیں</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">صفائی ناکام ہو گئی</translation>
 <translation id="2849936225196189499">اہم</translation>
@@ -2050,6 +2054,7 @@
 <translation id="3189187154924005138">بڑا کرسر</translation>
 <translation id="3190558889382726167">پاس ورڈ محفوظ ہوگیا</translation>
 <translation id="3192947282887913208">آڈیو فائلز</translation>
+<translation id="3197453258332670132">دائیں طرف کلک کرنے یا لانگ پریس سے اپنے ٹیکسٹ کے انتخاب کے لیے متعلقہ معلومات دکھائیں</translation>
 <translation id="3199127022143353223">سرورز</translation>
 <translation id="3201422919974259695">‏دستیاب USB آلات یہاں ظاہر ہوں گے۔</translation>
 <translation id="3202131003361292969">راستہ</translation>
@@ -2071,6 +2076,7 @@
 <translation id="3223531857777746191">ری سیٹ بٹن</translation>
 <translation id="3225084153129302039">ڈیفالٹ جامنی اوتار</translation>
 <translation id="3225319735946384299">کوڈ سائن کرنا</translation>
+<translation id="3226487301970807183">بائیں جانب موافق کردہ سائیڈ پینل کو ٹوگل کریں</translation>
 <translation id="3227137524299004712">مائیکروفون</translation>
 <translation id="3233271424239923319">‏Linux کی ایپس اور فائلز کا بیک اپ لیں</translation>
 <translation id="3238192140106069382">منسلک ہونے اور تصدیق کرنے کی کوشش کر رہا ہے</translation>
@@ -2340,6 +2346,7 @@
 <translation id="3515983984924808886">‏دوبارہ ترتیب دینے کی تصدیق کرنے کے لیے اپنی سیکیورٹی کلید کو دوبارہ ٹچ کریں۔ سیکیورٹی کلید کے PIN سمیت اس میں اسٹور کردہ سبھی معلومات کو حذف کر دیا جائے گا۔</translation>
 <translation id="3518985090088779359">قبول کرکے جاری رکھیں</translation>
 <translation id="3519564332031442870">پرنٹ بیک اینڈ سروس</translation>
+<translation id="3519938335881974273">صفحہ محفوظ کریں بطور…</translation>
 <translation id="3521606918211282604">ڈسک کا سائز تبدیل کریں</translation>
 <translation id="3522088408596898827">ڈسک اسپیس انتہائی کم ہے۔ ڈسک اسپیس خالی کریں اور دوبارہ کوشش کریں۔</translation>
 <translation id="3524965460886318643">سرگرمیاں برآمد کریں</translation>
@@ -2363,6 +2370,7 @@
 <translation id="3550593477037018652">سیلولر نیٹ ورک کو غیر منسلک کریں</translation>
 <translation id="3550915441744863158">‏Chrome خودکار طور پر اپ ڈیٹ ہو جاتا ہے لہذا آپ کے پاس ہمیشہ تازہ ترین ورژن ہوتا ہے</translation>
 <translation id="3551320343578183772">ٹیب بند کریں</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">باہر نلکنے پر صاف کی گئی</translation>
 <translation id="3554493885489666172">آپ کا آلہ <ph name="PROFILE_NAME" /> کے زیر انتظام ہے۔ منتظمین اس آلے پر کسی بھی پروفائل میں ڈیٹا تک رسائی حاصل کر سکتے ہیں۔</translation>
 <translation id="3555812735919707620">ایکسٹینشن کو ہٹائیں</translation>
@@ -2415,6 +2423,7 @@
 <translation id="3604713164406837697">وال پیپر تبدیل کریں</translation>
 <translation id="3605780360466892872">بٹن ڈاؤن</translation>
 <translation id="3608576286259426129">صارف کی تصویر کا پیش منظر</translation>
+<translation id="3609277884604412258">فوری تلاش کریں</translation>
 <translation id="3610369246614755442">ڈاک کے پنکھے کو سروس کی ضرورت ہے</translation>
 <translation id="361106536627977100">‏Flash ڈیٹا</translation>
 <translation id="3611655097742243705">‏مزید ایپس تلاش کرنے کے لیے Play اسٹور ملاحظہ کریں</translation>
@@ -3358,6 +3367,7 @@
 <translation id="4636682061478263818">‏Drive کی فائلیں</translation>
 <translation id="4636930964841734540">معلومات</translation>
 <translation id="4637083375689622795">مزید کارروائیاں، <ph name="EMAIL" /></translation>
+<translation id="4637189644956543313">کیمرا دوبارہ استعمال کریں</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{ٹیکسٹ}other{# ٹیکسٹس}}</translation>
 <translation id="4638930039313743000">‏ADB ڈیبگنگ فعال کریں</translation>
 <translation id="4641539339823703554">‏Chrome سسٹم کا وقت سیٹ کرنے سے قاصر تھا۔ براہ کرم ذيل میں وقت کو چیک کریں اور ضرورت پڑنے پر اسے درست کریں۔</translation>
@@ -4108,6 +4118,7 @@
 <translation id="5499313591153584299">یہ فائل آپ کے کمپیوٹر کیلئے نقصاندہ ہو سکتی ہے۔</translation>
 <translation id="5499453227627332024">‏آپ کے Linux Container کیلئے ایک اپ گریڈ دستیاب ہے۔ آپ بعد میں ترتیبات ایپ سے بھی اپ گریڈ کر سکتے ہیں۔</translation>
 <translation id="5500709606820808700">سیفٹی چیک آج کیا گیا</translation>
+<translation id="5501322521654567960">بائیں جانب موافق کردہ سائیڈ پینل</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> سے <ph name="ATTACHMENTS" /> موصول کرنے میں ناکام}other{<ph name="DEVICE_NAME" /> سے <ph name="ATTACHMENTS" /> موصول کرنے میں ناکام}}</translation>
 <translation id="5502500733115278303">‏Firefox سے درآمد کردہ</translation>
 <translation id="5502915260472117187">ایک بچہ</translation>
@@ -5319,6 +5330,7 @@
 <translation id="6856348640027512653">ورچوئل رئیلٹی آلات یا ڈیٹا کو استعمال کرنے کی اجازت نہیں ہے</translation>
 <translation id="6856459657722366306"><ph name="NETWORK_COUNT" /> میں سے نیٹ ورک <ph name="NETWORK_INDEX" />، <ph name="NETWORK_NAME" />، <ph name="NETWORK_PROVIDER_NAME" />، <ph name="CONNECTION_STATUS" />، سگنل کی مضبوطی %<ph name="SIGNAL_STRENGTH" />، تفصیلات</translation>
 <translation id="6856623341093082836">اپنی ٹچ اسکرین کی درستگی کو ترتیب دیں اور ایڈجسٹ کریں</translation>
+<translation id="6857145580237920905">‏Powerwash سے پہلے eSIM پروفائلز کو ہٹائیں</translation>
 <translation id="6857699260879628349">کنفیگریشن کی معلومات حاصل کریں</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> سیکنڈ</translation>
 <translation id="6860097299815761905">پراکسی کی ترتیبات…</translation>
@@ -5900,6 +5912,7 @@
 <translation id="7506541170099744506">آپ کے <ph name="DEVICE_TYPE" /> کا انٹرپرائز کے نظم و نسق کیلئے کامیابی سے اندراج کر لیا گیا ہے۔</translation>
 <translation id="7507207699631365376">اس فراہم کنندہ کی <ph name="BEGIN_LINK" />راز داری کی پالیسی<ph name="END_LINK" /> دیکھیں</translation>
 <translation id="7507930499305566459">صورتحال کا جواب دہندہ سرٹیفیکیٹ</translation>
+<translation id="7509246181739783082">اپنی شناخت کی توثیق کریں</translation>
 <translation id="7513029293694390567">اسٹور کردہ اسناد کا استعمال کر کے ویب سائٹس میں خود کار طور پر سائن ان کریں۔ خصوصیت غیر فعال ہونے پر، ویب سائٹ میں سائن ان کرنے سے پہلے ہر بار آپ سے توثیق کرنے کو کہا جائے گا۔</translation>
 <translation id="7514239104543605883">اپنے آلہ پر کاپی کریں</translation>
 <translation id="7514365320538308">ڈاؤن لوڈ کریں</translation>
@@ -6432,7 +6445,6 @@
 <translation id="8061091456562007989">اسے واپس تبدیل کریں</translation>
 <translation id="8061991877177392872">‏ایسا لگتا ہے کہ آپ نے پہلے ہی کسی دوسرے آلہ پر اپنی اسسٹنٹ کے ساتھ Voice Match کو ترتیب دے دیا ہے۔ ان گزشتہ ریکارڈنگز کا استعمال اس آلہ پر ایک صوتی ماڈل بنانے کے لیے کیا گیا۔</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{پیپر کی 1 شیٹ}other{پیپر کی {COUNT} شیٹس}}</translation>
-<translation id="8062879968880283306">‏آلے کا کیمرا استعمال کر کے QR کوڈ اسکین کریں یا اپنے کیریئر کے ذریعے فراہم کردہ فعالیت کا کوڈ درج کریں۔</translation>
 <translation id="8063235345342641131">ڈیفالٹ سبز اوتار</translation>
 <translation id="8063535366119089408">فائل دیکھیں</translation>
 <translation id="8064279191081105977">گروپ <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6853,7 +6865,6 @@
 <translation id="8551588720239073785">تاریخ اور وقت کی ترتیبات</translation>
 <translation id="8553342806078037065">دوسرے لوگوں کا نظم کریں</translation>
 <translation id="8554899698005018844">کوئی زبان نہیں</translation>
-<translation id="8555195867496021627">‏کوئی eSIM پروفائل دستیاب نہیں ہے۔ <ph name="BEGIN_LINK" />یہاں<ph name="END_LINK" /> ایک نئی پروفائل ڈاؤن لوڈ کریں۔</translation>
 <translation id="8557022314818157177">آپ کے فنگر پرنٹ کیپچر ہو جانے تک اپنی سیکیورٹی کلید کو ٹچ کرتے رہیں</translation>
 <translation id="8557930019681227453">مینی فیسٹ</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{سبھی کو &amp;نئی ونڈو میں کھولیں}=1{&amp;نئی ونڈو میں کھولیں}other{سبھی ({COUNT}) کو &amp;نئی ونڈو میں کھولیں}}</translation>
@@ -7033,7 +7044,6 @@
 <translation id="8743164338060742337"><ph name="NETWORK_COUNT" /> میں سے نیٹ ورک <ph name="NETWORK_INDEX" />، <ph name="NETWORK_NAME" />، <ph name="NETWORK_PROVIDER_NAME" /> سگنل کی مضبوطی %<ph name="SIGNAL_STRENGTH" />، آپ کے منتظم کے زیر انتظام ہے، منسلک کریں</translation>
 <translation id="8746654918629346731">آپ نے پہلے ہی "<ph name="EXTENSION_NAME" />" کی درخواست کی ہے</translation>
 <translation id="874689135111202667">{0,plural, =1{اس سائٹ پر ایک فائل اپ لوڈ کریں؟}other{اس سائٹ پر # فائلز اپ لوڈ کریں؟}}</translation>
-<translation id="8749556627204742888">آپ اس نیٹ ورک کا اس آلہ کے دوسرے صارفین کے ساتھ اشتراک کر رہے ہیں۔</translation>
 <translation id="8749805710397399240">آپ کی اسکرین کو کاسٹ کرنے سے قاصر۔ سسٹم کی ترجیحات میں اسکرین ریکارڈنگ کی اجازت کو چیک کریں۔</translation>
 <translation id="8749863574775030885">‏ایک نامعلوم وینڈر کی جانب سے USB آلات تک رسائی حاصل کریں</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ایک سیریل پورٹ سے منسلک ہونا چاہتا ہے</translation>
@@ -7095,7 +7105,6 @@
 <translation id="8808744862003883508">‏اس صفحہ پر آپ Chrome میں انسٹال کردہ تمام ایکسٹینشنز دیکھ سکتے ہیں۔</translation>
 <translation id="8809147117840417135">ہلکا نیلگوں سبز</translation>
 <translation id="8811862054141704416">‏Crostini کے مائیکرون کی رسائی</translation>
-<translation id="8812552797690463522">یہ نیٹ ورک آپ کے ساتھ اشتراک کردہ ہے۔</translation>
 <translation id="8812593354822910461">براؤزنگ ڈیٹا (<ph name="URL" />) بھی صاف کریں جس سے آپ <ph name="DOMAIN" /> سے سائن آؤٹ ہو جائیں گے۔ <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">مجھے بعد میں یاد دلائیں</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> میں سائن ان نہیں کیا جا سکتا ہے</translation>
@@ -7307,7 +7316,6 @@
 <translation id="9021662811137657072">وائرس کا پتہ چلا</translation>
 <translation id="902236149563113779">‏سائٹس عام طور پر AR کی خصوصیات جیسے کہ گیمز یا ابتدائی وارننگ کی ڈائریکشنز کے لیے کیمرا کی پوزیشن ٹریک کرتی ہیں</translation>
 <translation id="9022847679183471841">یہ اکاؤنٹ پہلے سے ہی اس کمپیوٹر پر <ph name="AVATAR_NAME" /> کے زیر استعمال ہے۔</translation>
-<translation id="9023009238991294202">اس آلہ کے دیگر صارفین یہ نیٹ ورک استعمال کر سکتے ہيں۔</translation>
 <translation id="9023015617655685412">اس ٹیب کو بُک مارک کریں...</translation>
 <translation id="9023909777842748145">اس خصوصیت کو آف کرنے سے سسٹم اپ ڈیٹس اور سیکیورٹی جیسی لازمی سروسز کے لیے درکار معلومات بھیجنے کی آپ کے آلے کی اہلیت متاثر نہیں ہوتی ہے۔</translation>
 <translation id="9024127637873500333">نئے ٹیب میں &amp;کھولیں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index d3952abd..19be7a0 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -357,7 +357,6 @@
 <translation id="138784436342154190">Standart boshlang‘ich sahifa tiklansinmi?</translation>
 <translation id="1388253969141979417">Mikrofondan foydalanishga ruxsat berilgan</translation>
 <translation id="1388728792929436380">Yangilanishlar tugasa, <ph name="DEVICE_TYPE" /> qurilmasi qayta ishga tushiriladi.</translation>
-<translation id="138900021244932468">Hech qanday profil topilmadi. Yangi tarmoqni sozlash uchun qurilma kamerasi orqali QR kodni skanerlang yoki aloqa operatori taqdim qilgan aktivatsiya kodini kiriting.</translation>
 <translation id="139013308650923562">Qurilmangizga oʻrnatilgan shriftlardan foydalanishga ruxsat beradi</translation>
 <translation id="1390548061267426325">Oddiy ichki oynada ochish</translation>
 <translation id="1393283411312835250">Quyosh va bulutlar</translation>
@@ -5917,6 +5916,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> qurilmangiz korporativ domen ro‘yxatidan o‘tkazildi.</translation>
 <translation id="7507207699631365376">Bu taʼminotchining <ph name="BEGIN_LINK" />maxfiylik siyosati<ph name="END_LINK" /> bilan tanishish.</translation>
 <translation id="7507930499305566459">Status Responder sertifikati</translation>
+<translation id="7509246181739783082">Shaxsni tasdiqlash</translation>
 <translation id="7513029293694390567">Saqlangan hisob ma’lumotlaridan foydalanib veb-saytlarga avtomatik kirish. Bu funksiya o‘chirilsa, har safar veb-saytga kirishdan oldin to‘ldirish so‘raladi.</translation>
 <translation id="7514239104543605883">Qurilmaga nusxalash</translation>
 <translation id="7514365320538308">Yuklab olish</translation>
@@ -6447,7 +6447,6 @@
 <translation id="8061091456562007989">Ortga qaytarish</translation>
 <translation id="8061991877177392872">Voice Match funksiyasini Assistentli boshqa qurilmada allaqachon sozlagansiz. Ushbu avvalgi yozuvlardan bu qurilmada namuna yaratishda foydalanilgan.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 varaq qogʻoz}other{{COUNT} varaq qogʻoz}}</translation>
-<translation id="8062879968880283306">Qurilma kamerasi orqali QR kodni skanerlang yoki aloqa operatori taqdim qilgan aktivatsiya kodini kiriting.</translation>
 <translation id="8063235345342641131">Standart yashil avatar</translation>
 <translation id="8063535366119089408">Faylni ochish</translation>
 <translation id="8064279191081105977"><ph name="GROUP_NAME" /> guruhi – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6868,7 +6867,6 @@
 <translation id="8551588720239073785">Sana va vaqt sozlamalari</translation>
 <translation id="8553342806078037065">Boshqa foydalanuvchilarni boshqarish</translation>
 <translation id="8554899698005018844">Til tanlanmagan</translation>
-<translation id="8555195867496021627">eSIM profillari mavjud emas. Yangi profilni <ph name="BEGIN_LINK" />bu yerdan<ph name="END_LINK" /> yuklab oling.</translation>
 <translation id="8557022314818157177">Barmoq izi yozib olinguncha elektron kalitga teginib turing</translation>
 <translation id="8557930019681227453">Manifest</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Barchasini &amp;yangi oynada ochish}=1{&amp;Yangi oynada ochish}other{Barchasini ({COUNT}) &amp;yangi oynada ochish}}</translation>
@@ -7048,7 +7046,6 @@
 <translation id="8743164338060742337">Tarmoq: <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, Nomi: <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, Signal darajasi: <ph name="SIGNAL_STRENGTH" />%, Administrator boshqaruvida, Ulanish</translation>
 <translation id="8746654918629346731">“<ph name="EXTENSION_NAME" />” ichun ruxsat allaqachon talab qilingan</translation>
 <translation id="874689135111202667">{0,plural, =1{Bu saytga bitta fayl yuklansinmi?}other{Bu saytga # ta fayl yuklansinmi?}}</translation>
-<translation id="8749556627204742888">Qurilmadagi boshqa foydalanuvchilar bu tarmoqqa ulana oladi.</translation>
 <translation id="8749805710397399240">Ekran translatsiya qilinmadi. Ekranni yozib olish ruxsatlarini Tizim sozlamalari orqali tekshiring.</translation>
 <translation id="8749863574775030885">Noma’lum ishlab chiqaruvchining USB qurilmalariga kirish</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> seriyali portga ulanmoqchi</translation>
@@ -7110,7 +7107,6 @@
 <translation id="8808744862003883508">Bu sahifada Google Chrome brauzerida oʻrnatilgan barcha kengaytmalarni koʻrishingiz mumkin.</translation>
 <translation id="8809147117840417135">Och moviy</translation>
 <translation id="8811862054141704416">Crostini tizimidagi mikrofondan foydalanish huquqi</translation>
-<translation id="8812552797690463522">Bu tarmoqqa ulana olasiz.</translation>
 <translation id="8812593354822910461">Shuningdek, brauzer tarixi (<ph name="URL" />) ham tozalansin (<ph name="DOMAIN" /> hisobingizdan avtomatik chiqib ketasiz). <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Keyinroq eslatilsin</translation>
 <translation id="8813698869395535039"><ph name="USERNAME" /> nomidan kirib bo‘lmadi</translation>
@@ -7322,7 +7318,6 @@
 <translation id="9021662811137657072">Virus topildi</translation>
 <translation id="902236149563113779">Saytlar odatda oʻyinlar yoki mashrut ogohlantiruvlari kabi AR funksiyalar uchun kamerangiz joylashuvini kuzatadi</translation>
 <translation id="9022847679183471841">Bu hisob allaqachon <ph name="AVATAR_NAME" /> profilida qo‘llanmoqda.</translation>
-<translation id="9023009238991294202">Bu qurilmadagi boshqa foydalanuvchilar tarmoqdan foydalanishlari mumkin.</translation>
 <translation id="9023015617655685412">Bu varaqni bukmarklash...</translation>
 <translation id="9023909777842748145">Bu funksiya yoniq boʻlmasa ham, tizim yangilanishlari va xavfsizlik kabi asosiy xizmatlarni yaxshilash maqsadida qurilma axborotlari yuborilaveradi.</translation>
 <translation id="9024127637873500333">Yangi varaqda ochish</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 0490538b..e91ad3d 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">Khôi phục trang khởi động mặc định?</translation>
 <translation id="1388253969141979417">Được phép sử dụng micrô</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> sẽ khởi động lại khi cập nhật xong.</translation>
-<translation id="138900021244932468">Không phát hiện thấy hồ sơ nào. Để thiết lập một mạng mới, hãy quét mã QR bằng máy ảnh của thiết bị hoặc nhập mã kích hoạt do nhà mạng cung cấp.</translation>
 <translation id="139013308650923562">Cho phép sử dụng phông chữ đã cài đặt trên thiết bị của bạn</translation>
 <translation id="1390548061267426325">Mở dưới dạng thẻ thông thường</translation>
 <translation id="1393283411312835250">Mặt trời và những đám mây</translation>
@@ -2037,7 +2036,7 @@
 <translation id="3150927491400159470">Tải lại cứng</translation>
 <translation id="315116470104423982">Dữ liệu di động</translation>
 <translation id="3151539355209957474">Thời gian khởi động</translation>
-<translation id="3151562827395986343">Xóa lịch sử, cookie, bộ nhớ đệm, v.v.</translation>
+<translation id="3151562827395986343">Xóa dữ liệu duyệt web, cookie, bộ nhớ đệm, v.v.</translation>
 <translation id="3151786313568798007">Hướng</translation>
 <translation id="3154351730702813399">Quản trị viên thiết bị có thể theo dõi hoạt động duyệt web của bạn.</translation>
 <translation id="3154429428035006212">Ngoại tuyến hơn một tháng</translation>
@@ -5929,6 +5928,7 @@
 <translation id="7506541170099744506"><ph name="DEVICE_TYPE" /> của bạn đã được đăng ký thành công cho quản lý doanh nghiệp.</translation>
 <translation id="7507207699631365376">Xem <ph name="BEGIN_LINK" />chính sách quyền riêng tư<ph name="END_LINK" /> của nhà cung cấp này</translation>
 <translation id="7507930499305566459">Chứng chỉ Trả lời Trạng thái</translation>
+<translation id="7509246181739783082">Xác minh danh tính của bạn</translation>
 <translation id="7513029293694390567">Tự động đăng nhập vào các trang web bằng thông tin đăng nhập được lưu trữ. Nếu tính năng này tắt, bạn sẽ luôn được yêu cầu xác nhận trước khi đăng nhập vào trang web.</translation>
 <translation id="7514239104543605883">Sao chép vào thiết bị của bạn</translation>
 <translation id="7514365320538308">Tải xuống</translation>
@@ -6461,7 +6461,6 @@
 <translation id="8061091456562007989">Chuyển lại</translation>
 <translation id="8061991877177392872">Có vẻ như bạn đã thiết lập Voice Match với Trợ lý trên một thiết bị khác. Trợ lý đã dùng những bản ghi âm trước đây để tạo một mẫu giọng nói trên thiết bị này.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 tờ giấy}other{{COUNT} tờ giấy}}</translation>
-<translation id="8062879968880283306">Quét mã QR bằng máy ảnh của thiết bị hoặc nhập mã kích hoạt do nhà mạng cung cấp.</translation>
 <translation id="8063235345342641131">Hình đại diện màu xanh lục mặc định</translation>
 <translation id="8063535366119089408">Xem tệp</translation>
 <translation id="8064279191081105977">Nhóm <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation>
@@ -6882,7 +6881,6 @@
 <translation id="8551588720239073785">Cài đặt ngày và giờ</translation>
 <translation id="8553342806078037065">Quản lý những người khác</translation>
 <translation id="8554899698005018844">Không có ngôn ngữ nào</translation>
-<translation id="8555195867496021627">Không có hồ sơ eSIM nào. Hãy tải một hồ sơ mới xuống <ph name="BEGIN_LINK" />tại đây.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Chạm liên tục vào khóa bảo mật cho đến khi thiết bị ghi lại vân tay của bạn</translation>
 <translation id="8557930019681227453">Tệp kê khai</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Mở tất cả trong cửa sổ &amp;mới}=1{Mở trong cửa sổ &amp;mới}other{Mở tất cả ({COUNT}) trong cửa sổ &amp;mới}}</translation>
@@ -7062,7 +7060,6 @@
 <translation id="8743164338060742337">Mạng <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, Cường độ tín hiệu <ph name="SIGNAL_STRENGTH" />%, Do quản trị viên của bạn quản lý, Kết nối</translation>
 <translation id="8746654918629346731">Bạn đã yêu cầu "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Bạn muốn tải một tệp lên trang web này?}other{Bạn muốn tải # tệp lên trang web này?}}</translation>
-<translation id="8749556627204742888">Bạn đang chia sẻ mạng này với những người dùng khác sử dụng thiết bị này.</translation>
 <translation id="8749805710397399240">Không thể truyền màn hình của bạn. Hãy kiểm tra quyền Ghi màn hình trong mục System Preferences (Tùy chọn hệ thống).</translation>
 <translation id="8749863574775030885">Truy cập thiết bị USB từ nhà cung cấp không xác định</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> muốn kết nối với một cổng nối tiếp</translation>
@@ -7124,7 +7121,6 @@
 <translation id="8808744862003883508">Trên trang này, bạn có thể thấy tất cả các tiện ích đã cài đặt trong Chrome.</translation>
 <translation id="8809147117840417135">Xanh két nhạt</translation>
 <translation id="8811862054141704416">Quyền truy cập vào micrô của Crostini</translation>
-<translation id="8812552797690463522">Mạng này được chia sẻ với bạn.</translation>
 <translation id="8812593354822910461">Xóa cả dữ liệu duyệt web (<ph name="URL" />), việc này sẽ khiến bạn bị đăng xuất khỏi <ph name="DOMAIN" />. <ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Nhắc tôi sau</translation>
 <translation id="8813698869395535039">Không thể đăng nhập vào <ph name="USERNAME" /></translation>
@@ -7336,7 +7332,6 @@
 <translation id="9021662811137657072">Đã phát hiện thấy vi-rút</translation>
 <translation id="902236149563113779">Các trang web thường theo dõi vị trí của máy ảnh để áp dụng những tính năng thực tế tăng cường, chẳng hạn như trò chơi hoặc hướng dẫn đi đường</translation>
 <translation id="9022847679183471841">Tài khoản này đang được sử dụng trên máy tính này bởi <ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Những người dùng khác của thiết bị có thể sử dụng mạng này.</translation>
 <translation id="9023015617655685412">Đánh dấu thẻ này...</translation>
 <translation id="9023909777842748145">Việc tắt tính năng này sẽ không ảnh hưởng đến khả năng thiết bị gửi thông tin cần thiết cho các dịch vụ thiết yếu như bảo mật và cập nhật hệ thống.</translation>
 <translation id="9024127637873500333">&amp;Mở trong Thẻ mới</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index d5606e2..6a3394440 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -62,6 +62,7 @@
 <translation id="1066613507389053689">需要更新 Chrome 操作系统</translation>
 <translation id="1067048845568873861">创建时间</translation>
 <translation id="1067922213147265141">其他 Google 服务</translation>
+<translation id="1069355737714877171">移除名为“<ph name="PROFILE_NAME" />”的 eSIM 卡配置文件</translation>
 <translation id="1070377999570795893">您计算机上的其他程序擅自安装了一个可能会更改 Chrome 工作方式的扩展程序。
 
 <ph name="EXTENSION_NAME" /></translation>
@@ -980,6 +981,7 @@
 您可以在设备上安装 Family Link 应用,从而管理此帐号的设置。我们已通过电子邮件将相关说明发送给您。</translation>
 <translation id="2040460856718599782">糟糕!尝试验证您的身份时出现错误。请仔细检查您的登录凭据,然后重试。</translation>
 <translation id="2044014337866019681">请确保您验证的帐号是 <ph name="ACCOUNT" /> 以解锁会话。</translation>
+<translation id="2044023416777079300">调制解调器未注册</translation>
 <translation id="204497730941176055">Microsoft 证书模板名称</translation>
 <translation id="2045117674524495717">键盘快捷键助手</translation>
 <translation id="2045969484888636535">继续拦截 Cookie</translation>
@@ -4077,6 +4079,7 @@
 <translation id="5486261815000869482">确认密码</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" />正在与<ph name="TAB_NAME" />共享您的屏幕。</translation>
 <translation id="5486561344817861625">模拟浏览器重启</translation>
+<translation id="5487460042548760727">将配置文件重命名为“<ph name="PROFILE_NAME" />”</translation>
 <translation id="5487521232677179737">清除数据</translation>
 <translation id="5488093641312826914">已复制“<ph name="COPIED_ITEM_NAME" />”</translation>
 <translation id="5488508217173274228">同步加密选项</translation>
@@ -4818,6 +4821,7 @@
 <translation id="6308937455967653460">链接另存为(&amp;K)...</translation>
 <translation id="6309443618838462258">您的管理员不允许使用此输入法</translation>
 <translation id="6309510305002439352">麦克风已关闭</translation>
+<translation id="6310141306111263820">无法安装 eSIM 卡配置文件。如需帮助,请与您的运营商联系。</translation>
 <translation id="6311220991371174222">打开您的个人资料时出了点问题,无法启动 Chrome。请尝试重新启动 Chrome。</translation>
 <translation id="6312403991423642364">未知网络错误</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{1 天前运行过安全检查}other{{NUM_DAYS} 天前运行过安全检查}}</translation>
@@ -5889,6 +5893,7 @@
 <translation id="7506541170099744506">您的 <ph name="DEVICE_TYPE" /> 已成功注册企业管理服务。</translation>
 <translation id="7507207699631365376">请参阅此提供商的<ph name="BEGIN_LINK" />隐私权政策<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">状态响应程序证书</translation>
+<translation id="7509246181739783082">验证您的身份</translation>
 <translation id="7513029293694390567">使用存储的凭据自动登录网站。停用该功能后,系统会在您每次登录网站时要求您进行确认。</translation>
 <translation id="7514239104543605883">复制到您的设备</translation>
 <translation id="7514365320538308">下载</translation>
@@ -5955,6 +5960,7 @@
 <translation id="7582582252461552277">首选此网络</translation>
 <translation id="7582844466922312471">移动数据</translation>
 <translation id="7583948862126372804">计数</translation>
+<translation id="7586051298768394542">无法下载语音识别结果文件。“语音输入”功能会继续运作,将您的语音内容发送给 Google。</translation>
 <translation id="7586498138629385861">Chrome应用处于打开状态时,Chrome将持续运行。</translation>
 <translation id="7589461650300748890">注意!</translation>
 <translation id="7593653750169415785">已自动阻止显示通知,因为您已多次拒绝接收通知</translation>
@@ -6420,7 +6426,6 @@
 <translation id="8061091456562007989">改回原来的设置</translation>
 <translation id="8061991877177392872">您似乎已在另一部设备上为 Google 助理设置了 Voice Match。这些先前的语音录音用来在此设备上创建语音模型。</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 张纸}other{{COUNT} 张纸}}</translation>
-<translation id="8062879968880283306">使用设备的摄像头扫描二维码,或者输入您的运营商提供的激活码。</translation>
 <translation id="8063235345342641131">默认的绿色头像</translation>
 <translation id="8063535366119089408">查看文件</translation>
 <translation id="8064279191081105977">群组“<ph name="GROUP_NAME" />”- <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6543,6 +6548,7 @@
 <translation id="8191230140820435481">管理您的应用、扩展程序和主题背景</translation>
 <translation id="8195027750202970175">占用的存储空间</translation>
 <translation id="8198323535106903877">我们将为您安装这 <ph name="NUMBER_OF_APPS" /> 款应用</translation>
+<translation id="8198456017687137612">正在投射标签页</translation>
 <translation id="8199300056570174101">网络(服务)和设备属性</translation>
 <translation id="8200772114523450471">继续</translation>
 <translation id="8201717382574620700">选择 <ph name="TOPIC_SOURCE" />影集</translation>
@@ -6839,7 +6845,6 @@
 <translation id="8551588720239073785">日期和时间设置</translation>
 <translation id="8553342806078037065">管理其他用户</translation>
 <translation id="8554899698005018844">无语言</translation>
-<translation id="8555195867496021627">无可用的 eSIM 卡配置文件。您可在<ph name="BEGIN_LINK" />此处<ph name="END_LINK" />下载一份新的配置文件。</translation>
 <translation id="8557022314818157177">连续轻触您的安全密钥,直到您的指纹被捕获</translation>
 <translation id="8557930019681227453">由应用缓存指定的网址</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{在新窗口中打开全部书签(&amp;N)}=1{在新窗口中打开(&amp;N)}other{在新窗口中打开全部({COUNT} 个)书签(&amp;N)}}</translation>
@@ -7019,7 +7024,6 @@
 <translation id="8743164338060742337">第 <ph name="NETWORK_INDEX" /> 个网络(共 <ph name="NETWORK_COUNT" /> 个),<ph name="NETWORK_NAME" />,<ph name="NETWORK_PROVIDER_NAME" />,信号强度为 <ph name="SIGNAL_STRENGTH" />%,由您的管理员管理,连接</translation>
 <translation id="8746654918629346731">您已请求安装“<ph name="EXTENSION_NAME" />”</translation>
 <translation id="874689135111202667">{0,plural, =1{将 1 个文件上传到此网站?}other{将 # 个文件上传到此网站?}}</translation>
-<translation id="8749556627204742888">您正在与此设备的其他用户共享该网络。</translation>
 <translation id="8749805710397399240">无法投射您的屏幕。请在“系统偏好设置”中启用“屏幕录制”权限。</translation>
 <translation id="8749863574775030885">访问来自未知供应商的 USB 设备</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> 想连接到串行端口</translation>
@@ -7081,7 +7085,6 @@
 <translation id="8808744862003883508">在此页面上,您可看到 Chrome 中已安装的所有扩展程序。</translation>
 <translation id="8809147117840417135">浅蓝绿色</translation>
 <translation id="8811862054141704416">Crostini 麦克风使用权限</translation>
-<translation id="8812552797690463522">已与您共享该网络。</translation>
 <translation id="8812593354822910461">一并清除浏览数据 (<ph name="URL" />),这会使您在 <ph name="DOMAIN" /> 上退出帐号。<ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">稍后提醒我</translation>
 <translation id="8813698869395535039">无法登录 <ph name="USERNAME" /></translation>
@@ -7126,6 +7129,7 @@
 <translation id="8847523528195140327">合盖后退出帐号</translation>
 <translation id="8847988622838149491">USB</translation>
 <translation id="8849001918648564819">已隐藏</translation>
+<translation id="8849219423513870962">取消移除名为“<ph name="PROFILE_NAME" />”的 eSIM 卡配置文件</translation>
 <translation id="8850251000316748990">查看更多…</translation>
 <translation id="885246833287407341">API 函数参数</translation>
 <translation id="8853586775156634952">此信用卡信息将仅保存到此设备上</translation>
@@ -7292,7 +7296,6 @@
 <translation id="9021662811137657072">检测到病毒</translation>
 <translation id="902236149563113779">网站通常会跟踪您的摄像头位置以实现 AR 功能(例如游戏或方向提醒)</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" />目前已在此计算机上使用该帐号。</translation>
-<translation id="9023009238991294202">此设备的其他用户将可以使用此网络。</translation>
 <translation id="9023015617655685412">为此标签页添加书签…</translation>
 <translation id="9023909777842748145">关闭这项功能,设备仍然可以发送基本服务(例如系统更新和安全服务)所需的信息。</translation>
 <translation id="9024127637873500333">在新标签页中打开(&amp;O)</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index f3e15ad..dc3cc8a 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -358,7 +358,6 @@
 <translation id="138784436342154190">要將起始網頁還原至預設值嗎?</translation>
 <translation id="1388253969141979417">已允許使用麥克風</translation>
 <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> 將在更新完成時重新啟動。</translation>
-<translation id="138900021244932468">找不到任何設定檔。如要設定新網絡,請使用裝置相機掃瞄 QR 碼,或輸入流動網絡供應商提供的啟動碼。</translation>
 <translation id="139013308650923562">可以使用裝置上安裝的字型</translation>
 <translation id="1390548061267426325">在一般分頁中開啟</translation>
 <translation id="1393283411312835250">太陽和雲</translation>
@@ -5927,6 +5926,7 @@
 <translation id="7506541170099744506">您的 <ph name="DEVICE_TYPE" /> 已成功註冊企業管理服務。</translation>
 <translation id="7507207699631365376">查看此供應商的<ph name="BEGIN_LINK" />私隱權政策<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">狀態回應程式憑證</translation>
+<translation id="7509246181739783082">驗證您的身分</translation>
 <translation id="7513029293694390567">使用已儲存的憑證自動登入網站。如停用此功能,系統會在您每次登入網站前,要求您確認登入憑證。</translation>
 <translation id="7514239104543605883">複製至您的裝置</translation>
 <translation id="7514365320538308">下載</translation>
@@ -6459,7 +6459,6 @@
 <translation id="8061091456562007989">還原設定</translation>
 <translation id="8061991877177392872">您似乎已在另一部裝置上透過「Google 助理」設定了 Voice Match 功能。系統已使用先前的錄音在此裝置上建立語音模型。</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 張紙}other{{COUNT} 張紙}}</translation>
-<translation id="8062879968880283306">請使用裝置相機掃瞄 QR 碼,或輸入流動網絡供應商提供的啟動碼。</translation>
 <translation id="8063235345342641131">預設綠色圖片</translation>
 <translation id="8063535366119089408">查看檔案</translation>
 <translation id="8064279191081105977">群組 <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6879,7 +6878,6 @@
 <translation id="8551588720239073785">日期和時間設定</translation>
 <translation id="8553342806078037065">管理其他使用者</translation>
 <translation id="8554899698005018844">未選取語言</translation>
-<translation id="8555195867496021627">沒有可用的 eSIM 卡設定檔。請<ph name="BEGIN_LINK" />在這裡<ph name="END_LINK" />下載新的設定檔。</translation>
 <translation id="8557022314818157177">請持續輕觸安全密鑰,直至指紋擷取完成</translation>
 <translation id="8557930019681227453">資訊清單</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{在新視窗中開啟所有書籤(&amp;N)}=1{在新視窗中開啟書籤(&amp;N)}other{在新視窗中開啟全部 {COUNT} 個書籤(&amp;N)}}</translation>
@@ -7058,7 +7056,6 @@
 <translation id="8743164338060742337">第 <ph name="NETWORK_INDEX" /> 個網絡,一共有 <ph name="NETWORK_COUNT" /> 個網絡,<ph name="NETWORK_NAME" />,<ph name="NETWORK_PROVIDER_NAME" /> 嘅訊號強度係 <ph name="SIGNAL_STRENGTH" />%,由管理員管理,連接</translation>
 <translation id="8746654918629346731">您已要求安裝「<ph name="EXTENSION_NAME" />」</translation>
 <translation id="874689135111202667">{0,plural, =1{要將一個檔案上載至此網站嗎?}other{要將 # 個檔案上載至此網站嗎?}}</translation>
-<translation id="8749556627204742888">您正在與此裝置的其他使用者共用此網絡。</translation>
 <translation id="8749805710397399240">無法投放螢幕。請檢查「系統偏好設定」中的「螢幕錄影」權限。</translation>
 <translation id="8749863574775030885">存取來自未知供應商的 USB 裝置</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> 要求與序列連接埠連線</translation>
@@ -7120,7 +7117,6 @@
 <translation id="8808744862003883508">此頁面顯示所有在 Chrome 安裝的擴充程式。</translation>
 <translation id="8809147117840417135">淺藍綠色</translation>
 <translation id="8811862054141704416">Crostini 的麥克風存取權</translation>
-<translation id="8812552797690463522">此網絡已經與你共用。</translation>
 <translation id="8812593354822910461">一併清除瀏覽資料 (<ph name="URL" />) 會將您登出 <ph name="DOMAIN" />。<ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">稍後提醒我</translation>
 <translation id="8813698869395535039">無法登入 <ph name="USERNAME" /></translation>
@@ -7332,7 +7328,6 @@
 <translation id="9021662811137657072">系統偵測到病毒</translation>
 <translation id="902236149563113779">網站通常會追蹤攝錄機位置以提供 AR 功能,例如遊戲或注意方向</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" />目前已在這部電腦上使用這個帳戶。</translation>
-<translation id="9023009238991294202">此裝置的其他使用者可使用此網絡。</translation>
 <translation id="9023015617655685412">將此分頁加入書籤…</translation>
 <translation id="9023909777842748145">即使關閉此功能,您的裝置仍然可以傳送基本服務 (例如系統更新與安全性) 所需的資料。</translation>
 <translation id="9024127637873500333">在新分頁中開啟(&amp;O)</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index e12a8c5d..d690a99 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -356,7 +356,6 @@
 <translation id="138784436342154190">要還原預設起始網頁嗎?</translation>
 <translation id="1388253969141979417">可以使用麥克風</translation>
 <translation id="1388728792929436380">「<ph name="DEVICE_TYPE" />」會在更新完成時重新啟動。</translation>
-<translation id="138900021244932468">找不到任何設定檔。如要設定新網路,請使用裝置相機掃描 QR 圖碼,或是輸入電信業者提供的啟用代碼。</translation>
 <translation id="139013308650923562">可以使用裝置上安裝的字型</translation>
 <translation id="1390548061267426325">在一般分頁中開啟</translation>
 <translation id="1393283411312835250">太陽和雲</translation>
@@ -513,6 +512,7 @@
 <translation id="1545775234664667895">已安裝「<ph name="THEME_NAME" />」主題</translation>
 <translation id="1546280085599573572">這個擴充功能已變更您點選 [首頁] 按鈕時所顯示的網頁。</translation>
 <translation id="1546452108651444655"><ph name="CHILD_NAME" /> 要求安裝具有下列功能的<ph name="EXTENSION_TYPE" />:</translation>
+<translation id="1547808936554660006">我瞭解執行 Powerwash 將不會移除已安裝的 eSIM 卡設定檔</translation>
 <translation id="1549275686094429035">已啟用 ARC</translation>
 <translation id="1549788673239553762">「<ph name="APP_NAME" />」要求存取 <ph name="VOLUME_NAME" />。您的檔案可能會遭到修改或刪除。</translation>
 <translation id="1552301827267621511">「<ph name="EXTENSION_NAME" />」擴充功能已將搜尋引擎改為 <ph name="SEARCH_PROVIDER_DOMAIN" /></translation>
@@ -549,6 +549,7 @@
 <translation id="1588438908519853928">一般</translation>
 <translation id="158849752021629804">需要家用網路</translation>
 <translation id="1588870296199743671">使用其他程式開啟連結...</translation>
+<translation id="1588919647604819635">右鍵資訊卡</translation>
 <translation id="1589055389569595240">顯示拼字與文法</translation>
 <translation id="1591679663873027990">授權 Parallels Desktop 存取 USB 裝置。Parallels Desktop 不會記住已移除的 USB 裝置。</translation>
 <translation id="1592074621872221573"><ph name="MANAGER" /> 已停用 ADB 偵錯,這會讓系統重設 <ph name="DEVICE_TYPE" />。請先備份檔案再重新啟動。</translation>
@@ -984,6 +985,7 @@
 
 你可以在裝置上安裝 Family Link 應用程式,以管理這個帳戶的設定。我們已透過電子郵件將相關操作說明傳送給你。</translation>
 <translation id="2040460856718599782">糟糕!嘗試驗證你的身分時發生錯誤。請重新檢查你的登入憑證,然後再試一次。</translation>
+<translation id="2042279886444479655">使用中的設定檔</translation>
 <translation id="2044014337866019681">請確認你驗證的是 <ph name="ACCOUNT" />,才能解鎖工作階段。</translation>
 <translation id="2044023416777079300">數據機尚未註冊</translation>
 <translation id="204497730941176055">Microsoft 憑證範本名稱</translation>
@@ -1322,6 +1324,7 @@
 <translation id="2395616325548404795">你的 <ph name="DEVICE_TYPE" /> 已成功註冊企業管理服務,但無法傳送資產和位置資訊。請前往管理控制台,為這個裝置手動輸入這些資訊。</translation>
 <translation id="2396387085693598316">管理員已封鎖「<ph name="EXTENSION_NAME" />」</translation>
 <translation id="2396783860772170191">輸入 4 位數 PIN 碼 (0000-9999)</translation>
+<translation id="2398546389094871088">在裝置上執行 Powerwash 並不會移除 eSIM 卡設定檔。請前往<ph name="LINK_BEGIN" />行動設定<ph name="LINK_END" />手動移除這些設定檔。</translation>
 <translation id="2399699884460174994">已開啟通知功能</translation>
 <translation id="2399939490305346086">安全金鑰登入資料</translation>
 <translation id="2400664245143453337">必須立即更新</translation>
@@ -1738,6 +1741,7 @@
 <translation id="2844809857160214557">查看及管理列印工作</translation>
 <translation id="2845382757467349449">永遠顯示書籤列</translation>
 <translation id="284805635805850872">要移除有害軟體嗎?</translation>
+<translation id="2849035674501872372">查詢</translation>
 <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation>
 <translation id="284975061945174219">清理失敗</translation>
 <translation id="2849936225196189499">重要</translation>
@@ -2049,6 +2053,7 @@
 <translation id="3189187154924005138">大型游標</translation>
 <translation id="3190558889382726167">密碼已儲存</translation>
 <translation id="3192947282887913208">音訊檔</translation>
+<translation id="3197453258332670132">按一下滑鼠右鍵或長按畫面,即可查看所選文字的相關資訊</translation>
 <translation id="3199127022143353223">伺服器</translation>
 <translation id="3201422919974259695">可用的 USB 裝置將會顯示在這裡。</translation>
 <translation id="3202131003361292969">路徑</translation>
@@ -2070,6 +2075,7 @@
 <translation id="3223531857777746191">重設按鈕</translation>
 <translation id="3225084153129302039">預設的紫色顯示圖片</translation>
 <translation id="3225319735946384299">程式碼簽署</translation>
+<translation id="3226487301970807183">切換靠左對齊側邊面板</translation>
 <translation id="3227137524299004712">麥克風</translation>
 <translation id="3233271424239923319">備份 Linux 應用程式和檔案</translation>
 <translation id="3238192140106069382">正在連線及驗證</translation>
@@ -2339,6 +2345,7 @@
 <translation id="3515983984924808886">請再次輕觸安全金鑰以確認重設。這個安全金鑰上儲存的所有資訊 (包括 PIN 碼) 都將遭到刪除。</translation>
 <translation id="3518985090088779359">接受並繼續</translation>
 <translation id="3519564332031442870">列印後端服務</translation>
+<translation id="3519938335881974273">另存網頁…</translation>
 <translation id="3521606918211282604">變更磁碟大小</translation>
 <translation id="3522088408596898827">磁碟空間嚴重不足,請釋出磁碟空間,然後再試一次。</translation>
 <translation id="3524965460886318643">匯出活動</translation>
@@ -2362,6 +2369,7 @@
 <translation id="3550593477037018652">中斷與行動數據網路的連線</translation>
 <translation id="3550915441744863158">Chrome 會自動更新,隨時讓你使用最新版本</translation>
 <translation id="3551320343578183772">關閉分頁</translation>
+<translation id="3552097563855472344"><ph name="NETWORK_NAME" /> - <ph name="SPAN_START" /><ph name="CARRIER_NAME" /><ph name="SPAN_END" /></translation>
 <translation id="3552780134252864554">結束時將遭到清除</translation>
 <translation id="3554493885489666172">你的裝置是由 <ph name="PROFILE_NAME" /> 管理。管理員可以存取此裝置上任一設定檔中的資料。</translation>
 <translation id="3555812735919707620">移除擴充功能</translation>
@@ -2414,6 +2422,7 @@
 <translation id="3604713164406837697">變更桌布</translation>
 <translation id="3605780360466892872">小員工</translation>
 <translation id="3608576286259426129">使用者圖片預覽</translation>
+<translation id="3609277884604412258">快速搜尋</translation>
 <translation id="3610369246614755442">座架風扇需要維修</translation>
 <translation id="361106536627977100">Flash 資料</translation>
 <translation id="3611655097742243705">請前往 Play 商店尋找更多應用程式</translation>
@@ -3356,6 +3365,7 @@
 <translation id="4636682061478263818">雲端硬碟檔案</translation>
 <translation id="4636930964841734540">資訊</translation>
 <translation id="4637083375689622795">更多動作 (<ph name="EMAIL" />)</translation>
+<translation id="4637189644956543313">再次使用相機</translation>
 <translation id="4637252186848840278">{COUNT,plural, =1{文字}other{# 段文字}}</translation>
 <translation id="4638930039313743000">啟用 ADB 偵錯</translation>
 <translation id="4641539339823703554">Chrome 無法設定系統時間。請檢查下方的時間,並視需要予以修正。</translation>
@@ -4106,6 +4116,7 @@
 <translation id="5499313591153584299">這個檔案可能對你的電腦有害。</translation>
 <translation id="5499453227627332024">現在可以升級 Linux 容器。你也可以稍後再從「設定」應用程式中升級。</translation>
 <translation id="5500709606820808700">今天已執行安全檢查</translation>
+<translation id="5501322521654567960">靠左對齊側邊面板</translation>
 <translation id="5501809658163361512">{COUNT,plural, =1{無法從「<ph name="DEVICE_NAME" />」接收 <ph name="ATTACHMENTS" />}other{無法從「<ph name="DEVICE_NAME" />」接收 <ph name="ATTACHMENTS" />}}</translation>
 <translation id="5502500733115278303">從 Firefox 匯入的書籤</translation>
 <translation id="5502915260472117187">孩子</translation>
@@ -5317,6 +5328,7 @@
 <translation id="6856348640027512653">不得使用虛擬實境裝置或資料</translation>
 <translation id="6856459657722366306">第 <ph name="NETWORK_INDEX" /> 個網路 (共 <ph name="NETWORK_COUNT" /> 個),<ph name="NETWORK_NAME" />,<ph name="NETWORK_PROVIDER_NAME" />,<ph name="CONNECTION_STATUS" />,訊號強度 <ph name="SIGNAL_STRENGTH" />%,詳細資料</translation>
 <translation id="6856623341093082836">設定及調整觸控螢幕精確度</translation>
+<translation id="6857145580237920905">在執行 Powerwash 前移除 eSIM 卡設定檔</translation>
 <translation id="6857699260879628349">取得設定資訊</translation>
 <translation id="6857725247182211756"><ph name="SECONDS" /> 秒</translation>
 <translation id="6860097299815761905">Proxy 設定...</translation>
@@ -5898,6 +5910,7 @@
 <translation id="7506541170099744506">你的 <ph name="DEVICE_TYPE" /> 已成功註冊企業管理服務。</translation>
 <translation id="7507207699631365376">查看這個供應商的<ph name="BEGIN_LINK" />隱私權政策<ph name="END_LINK" /></translation>
 <translation id="7507930499305566459">狀態回應程式憑證</translation>
+<translation id="7509246181739783082">驗證身分</translation>
 <translation id="7513029293694390567">使用已儲存的憑證自動登入網站。如果停用這項功能,每當你登入網站時,都必須向系統確認你的登入憑證。</translation>
 <translation id="7514239104543605883">複製到你的裝置</translation>
 <translation id="7514365320538308">下載</translation>
@@ -6430,7 +6443,6 @@
 <translation id="8061091456562007989">還原設定</translation>
 <translation id="8061991877177392872">你似乎已在其他裝置上設定 Google 助理的 Voice Match 功能。系統已使用先前的錄音檔在這部裝置上建立語音模型。</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{1 張紙}other{{COUNT} 張紙}}</translation>
-<translation id="8062879968880283306">請使用裝置相機掃描 QR 圖碼,或輸入電信業者提供的啟用代碼。</translation>
 <translation id="8063235345342641131">預設的綠色顯示圖片</translation>
 <translation id="8063535366119089408">查看檔案</translation>
 <translation id="8064279191081105977">「<ph name="GROUP_NAME" />」群組 - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6850,7 +6862,6 @@
 <translation id="8551588720239073785">日期和時間設定</translation>
 <translation id="8553342806078037065">管理其他使用者</translation>
 <translation id="8554899698005018844">未指定語言</translation>
-<translation id="8555195867496021627">沒有可用的 eSIM 卡設定檔。請在<ph name="BEGIN_LINK" />這裡<ph name="END_LINK" />下載新的設定檔。</translation>
 <translation id="8557022314818157177">請持續輕觸安全金鑰,直到指紋擷取完成</translation>
 <translation id="8557930019681227453">資訊清單</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{在新視窗中開啟所有網址(&amp;N)}=1{在新視窗中開啟(&amp;N)}other{在新視窗中開啟所有 ({COUNT} 個) 網址(&amp;N)}}</translation>
@@ -7030,7 +7041,6 @@
 <translation id="8743164338060742337">第 <ph name="NETWORK_INDEX" /> 個網路 (共 <ph name="NETWORK_COUNT" /> 個),<ph name="NETWORK_NAME" />,<ph name="NETWORK_PROVIDER_NAME" />,訊號強度 <ph name="SIGNAL_STRENGTH" />%,由系統管理員管理,連線</translation>
 <translation id="8746654918629346731">你已要求安裝「<ph name="EXTENSION_NAME" />」</translation>
 <translation id="874689135111202667">{0,plural, =1{要將 1 個檔案上傳到這個網站嗎?}other{要將 # 個檔案上傳到這個網站嗎?}}</translation>
-<translation id="8749556627204742888">你正在與這部裝置的其他使用者共用這個網路。</translation>
 <translation id="8749805710397399240">無法投放螢幕。請檢查「系統偏好設定」中的「螢幕畫面錄製」權限。</translation>
 <translation id="8749863574775030885">存取製造商不明的 USB 裝置</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> 要求與序列埠連線</translation>
@@ -7092,7 +7102,6 @@
 <translation id="8808744862003883508">這個頁面會顯示 Chrome 目前安裝的所有擴充功能。</translation>
 <translation id="8809147117840417135">淺藍綠色</translation>
 <translation id="8811862054141704416">Crostini 麥克風存取權</translation>
-<translation id="8812552797690463522">已與你共用這個網路。</translation>
 <translation id="8812593354822910461">一併清除瀏覽資料 (<ph name="URL" />)。這項操作會將你登出 <ph name="DOMAIN" />。<ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">稍後提醒我</translation>
 <translation id="8813698869395535039">無法登入 <ph name="USERNAME" /></translation>
@@ -7304,7 +7313,6 @@
 <translation id="9021662811137657072">系統偵測到病毒</translation>
 <translation id="902236149563113779">網站通常會追蹤你的攝影機位置,以提供遊戲或抬頭顯示導航等 AR 功能</translation>
 <translation id="9022847679183471841"><ph name="AVATAR_NAME" />目前已在這部電腦上使用這個帳戶。</translation>
-<translation id="9023009238991294202">這個裝置的其他使用者可以使用這個網路。</translation>
 <translation id="9023015617655685412">將此分頁加入書籤...</translation>
 <translation id="9023909777842748145">即使關閉了這項功能,你的裝置仍然可以傳送基本服務 (例如系統更新和安全性) 所需的資訊。</translation>
 <translation id="9024127637873500333">在新分頁中開啟(&amp;O)</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index e928f9bf..8fd55c9 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -359,7 +359,6 @@
 <translation id="138784436342154190">Buyisa ikhasi lokuqalisa lokuzenzakalelayo?</translation>
 <translation id="1388253969141979417">Ivumelekile ukusebenzisa imakrofoni yakho</translation>
 <translation id="1388728792929436380">I-<ph name="DEVICE_TYPE" /> izoqala kabusha lapho izibuyekezo seziqedile.</translation>
-<translation id="138900021244932468">Awekho amaphrofayela aye atholwa. Ukuze usethe inethiwekhi entsha, skena ikhodi ye-QR usebenzisa ikhamera yedivayisi noma faka ikhodi yokwenza kusebenze enikezwe inkampani yakho yenethiwekhi.</translation>
 <translation id="139013308650923562">Kuvunyelwe ukusebenzisa amafonti afakwe kudivayisi yakho</translation>
 <translation id="1390548061267426325">Vula njengethebhu evamile</translation>
 <translation id="1393283411312835250">Ilanga namafu</translation>
@@ -5930,6 +5929,7 @@
 <translation id="7506541170099744506">I-<ph name="DEVICE_TYPE" /> yakho ibhaliselwe ngempumelelo ukuphathwa kwebhizinisi.</translation>
 <translation id="7507207699631365376">Buka <ph name="BEGIN_LINK" />inqubomgomo yobumfihlo<ph name="END_LINK" /> yalomhlinzeki</translation>
 <translation id="7507930499305566459">Isitifiketi sokuphendula kusimo</translation>
+<translation id="7509246181739783082">Qinisekisa ubuwena</translation>
 <translation id="7513029293694390567">Ngena ngemvume ngokuzenzakalelayo kumawebhusayithi usebenzisa ukuqinisekisa okugciniwe. Uma kukhutshaziwe, uzocelwa ukuqinisekiswa njalo ngaphambi kokungena ngemvume kuwebhusayithi.</translation>
 <translation id="7514239104543605883">Kopishela kudivayisi yakho</translation>
 <translation id="7514365320538308">Landa</translation>
@@ -6461,7 +6461,6 @@
 <translation id="8061091456562007989">Yibuyisele emuva</translation>
 <translation id="8061991877177392872">Kubonakala sengathi usuyisethile kakade i-Voice Match ngomsizi wakho kwenye idivayisi. Lokhu kurekhodwa kwangaphambilini kade kusetshenziselwa ukwenza imodeli yezwi kule divayisi.</translation>
 <translation id="8062844841289846053">{COUNT,plural, =1{Ishidi lephepha eli-1}one{amashidi ephepha a-{COUNT}}other{amashidi wephepha a-{COUNT}}}</translation>
-<translation id="8062879968880283306">Skena ikhodi ye-QR usebenzisa ikhamera yedivayisi noma ufake ikhodi yokusebenzisa ehlinzekwa yinkampani yenethiwekhi yakho.</translation>
 <translation id="8063235345342641131">Isithombe esizenzakalelayo esiluhlaza</translation>
 <translation id="8063535366119089408">Buka ifayela</translation>
 <translation id="8064279191081105977">Iqembu le-<ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> - <ph name="COLLAPSED_STATE" /></translation>
@@ -6882,7 +6881,6 @@
 <translation id="8551588720239073785">Amasethingi edethi nesikhathi</translation>
 <translation id="8553342806078037065">Phatha abanye abantu</translation>
 <translation id="8554899698005018844">Akunalimi</translation>
-<translation id="8555195867496021627">Awekho amaphrofayela we-SIM atholakalayo. Landa iphrofayela entsha <ph name="BEGIN_LINK" />lapha.<ph name="END_LINK" /></translation>
 <translation id="8557022314818157177">Qhubeka nokuthinta ukhiye wokuqinisekisa ubunikazi isigxivizo sakho somunwe size sithwetshulwe</translation>
 <translation id="8557930019681227453">Bonakalisa</translation>
 <translation id="8560327176991673955">{COUNT,plural, =0{Vula Konke Ewindini &amp;Elisha}=1{Vula ewindini &amp;elisha}one{Vula Konke ({COUNT}) &amp;Ewindini Elisha}other{Vula Konke ({COUNT}) &amp;Ewindini Elisha}}</translation>
@@ -7062,7 +7060,6 @@
 <translation id="8743164338060742337">Inethiwekhi ye-<ph name="NETWORK_INDEX" /> kwangu-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /> Amandla Esignali <ph name="SIGNAL_STRENGTH" />%, Kuphethwe Umlawuli wakho, Xhumeka</translation>
 <translation id="8746654918629346731">Usuvele ucele i-"<ph name="EXTENSION_NAME" />"</translation>
 <translation id="874689135111202667">{0,plural, =1{Layisha ifayela elilodwa kuleli sayithi?}one{Layisha amafayela angu-# kuleli sayithi?}other{Layisha amafayela angu-# kuleli sayithi?}}</translation>
-<translation id="8749556627204742888">Wabelana ngale nethiwekhi nabanye abasebenzisi bale divayisi.</translation>
 <translation id="8749805710397399240">Ayikwazi ukusakaza isikrini sakho. Hlola imvume Yokokuqopha iskrini Kokuncanyelwayo Kwesistimu</translation>
 <translation id="8749863574775030885">Finyelela amadivayisi we-USB kusuka kumthengisi ongaziwa</translation>
 <translation id="8750155211039279868"><ph name="ORIGIN" /> ifuna ukuxhuma embobeni yesiriyeli</translation>
@@ -7125,7 +7122,6 @@
 <translation id="8808744862003883508">Kuleli khasi ungabona zonke izandiso ezifakiwe ku-Chrome.</translation>
 <translation id="8809147117840417135">I-teal ekhanyayo</translation>
 <translation id="8811862054141704416">Ukufinyelela kwemakrofoni ye-Crostini</translation>
-<translation id="8812552797690463522">Le nethiwekhi yabelenwe nawe.</translation>
 <translation id="8812593354822910461">Futhi sula idatha yopheqululo (<ph name="URL" />) ezokwenza uphume ngemvume ku-<ph name="DOMAIN" />.<ph name="LEARN_MORE" /></translation>
 <translation id="8813277370772331957">Ngikhumbuze ngesinye isikhathi</translation>
 <translation id="8813698869395535039">Ayikwazi ukungena ngemvume ku-<ph name="USERNAME" /></translation>
@@ -7337,7 +7333,6 @@
 <translation id="9021662811137657072">Kutholwe igciwane</translation>
 <translation id="902236149563113779">Amasayithi avamise ukulandelela isimo sekhamera yakho kuzici ze-AR, ezifana namageyimu noma izikhombisi-ndlela zokwaziswa</translation>
 <translation id="9022847679183471841">Le akhawunti isivele iyasetshenziswa kule khompuyutha ngu-<ph name="AVATAR_NAME" />.</translation>
-<translation id="9023009238991294202">Abanye abasebenzisi bale divayisi bangasebenzisa le nethiwekhi.</translation>
 <translation id="9023015617655685412">Yenza ibhukhimakhi leli thebhu...</translation>
 <translation id="9023909777842748145">Ukuvala lesi sici akuthinti ikhono ledivayisi yakho lokwazi ukuthumela ulwazi oludingekayo lwamasevisi abalulekile afana nezibuyekezo zesistimu nokuvikelwa.</translation>
 <translation id="9024127637873500333">&amp;Vula kuthebhu entsha</translation>
diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb
index 4ddd451..fa3d787 100644
--- a/chrome/app/resources/google_chrome_strings_de.xtb
+++ b/chrome/app/resources/google_chrome_strings_de.xtb
@@ -105,7 +105,7 @@
 <translation id="3533694711092285624">Keine gespeicherten Passwörter. Chrome kann Ihre Passwörter prüfen, wenn Sie sie speichern.</translation>
 <translation id="3541482654983822893">Chrome kann Ihre Passwörter nicht prüfen. Bitte versuchen Sie es in 24 Stunden noch einmal.</translation>
 <translation id="3576528680708590453">Ihr Systemadministrator hat Google Chrome so konfiguriert, dass <ph name="TARGET_URL_HOSTNAME" /> in einem alternativen Browser geöffnet wird.</translation>
-<translation id="3582972582564653026">Chrome wird auf allen Ihren Geräten synchronisiert und personalisiert</translation>
+<translation id="3582972582564653026">Chrome auf allen Ihren Geräten synchronisieren und personalisieren</translation>
 <translation id="3596080736082218006">{COUNT,plural, =0{Laut Ihrem Administrator müssen Sie Chrome neu starten, um ein Update durchzuführen}=1{Laut Ihrem Administrator müssen Sie Chrome neu starten, um ein Update durchzuführen. Ihr Inkognitofenster wird nicht wieder geöffnet.}other{Laut Ihrem Administrator müssen Sie Chrome neu starten, um ein Update durchzuführen. Ihre # Inkognitofenster werden nicht wieder geöffnet.}}</translation>
 <translation id="3622797965165704966">Sie können Chrome jetzt noch einfacher mit Ihrem Google-Konto und auf gemeinsam genutzten Computern verwenden.</translation>
 <translation id="3718181793972440140">Dadurch wird 1 Element von diesem Gerät gelöscht. Wenn Sie Ihre Daten später abrufen möchten, melden Sie sich als <ph name="USER_EMAIL" /> in Chrome an.</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 75ec4a4..fefe3b0 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -6740,8 +6740,7 @@
   }
 }
 
-# TODO(crbug.com/1112471): Get this to run cleanly under Python 3.
-python2_action("expired_flags_list_gen") {
+action("expired_flags_list_gen") {
   script = "//tools/flags/generate_expired_list.py"
   sources = [ "flag-metadata.json" ]
   inputs = [ "//chrome/VERSION" ]
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index ff1b5f82..f576abe 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2882,10 +2882,6 @@
      flag_descriptions::kAshEnableUnifiedDesktopName,
      flag_descriptions::kAshEnableUnifiedDesktopDescription, kOsCrOS,
      SINGLE_VALUE_TYPE(switches::kEnableUnifiedDesktop)},
-    {"ash-enable-interactive-window-cycle-list",
-     flag_descriptions::kInteractiveWindowCycleList,
-     flag_descriptions::kInteractiveWindowCycleListDescription, kOsCrOS,
-     FEATURE_VALUE_TYPE(ash::features::kInteractiveWindowCycleList)},
     {"enable-compositing-based-throttling",
      flag_descriptions::kCompositingBasedThrottling,
      flag_descriptions::kCompositingBasedThrottlingDescription, kOsCrOS,
@@ -5218,26 +5214,6 @@
          chromeos::assistant::features::kAssistantBetterOnboarding)},
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
-    defined(OS_CHROMEOS)
-    {"remote-copy-receiver", flag_descriptions::kRemoteCopyReceiverName,
-     flag_descriptions::kRemoteCopyReceiverDescription, kOsDesktop,
-     FEATURE_VALUE_TYPE(kRemoteCopyReceiver)},
-    {"remote-copy-image-notification",
-     flag_descriptions::kRemoteCopyImageNotificationName,
-     flag_descriptions::kRemoteCopyImageNotificationDescription, kOsDesktop,
-     FEATURE_VALUE_TYPE(kRemoteCopyImageNotification)},
-    {"remote-copy-persistent-notification",
-     flag_descriptions::kRemoteCopyPersistentNotificationName,
-     flag_descriptions::kRemoteCopyPersistentNotificationDescription,
-     kOsDesktop, FEATURE_VALUE_TYPE(kRemoteCopyPersistentNotification)},
-    {"remote-copy-progress-notification",
-     flag_descriptions::kRemoteCopyProgressNotificationName,
-     flag_descriptions::kRemoteCopyProgressNotificationDescription, kOsDesktop,
-     FEATURE_VALUE_TYPE(kRemoteCopyProgressNotification)},
-#endif  // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
-        // defined(OS_CHROMEOS)
-
     {"restrict-gamepad-access", flag_descriptions::kRestrictGamepadAccessName,
      flag_descriptions::kRestrictGamepadAccessDescription, kOsAll,
      FEATURE_VALUE_TYPE(features::kRestrictGamepadAccess)},
@@ -5679,11 +5655,6 @@
      FEATURE_VALUE_TYPE(chromeos::features::kAutoScreenBrightness)},
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
-    {"audio-worklet-realtime-thread",
-     flag_descriptions::kAudioWorkletRealtimeThreadName,
-     flag_descriptions::kAudioWorkletRealtimeThreadDescription, kOsAll,
-     FEATURE_VALUE_TYPE(blink::features::kAudioWorkletRealtimeThread)},
-
     {"privacy-sandbox-settings", flag_descriptions::kPrivacySandboxSettingsName,
      flag_descriptions::kPrivacySandboxSettingsDescription,
      kOsDesktop | kOsAndroid,
diff --git a/chrome/browser/android/explore_sites/history_statistics_reporter.cc b/chrome/browser/android/explore_sites/history_statistics_reporter.cc
index 09335db..1a56a8e 100644
--- a/chrome/browser/android/explore_sites/history_statistics_reporter.cc
+++ b/chrome/browser/android/explore_sites/history_statistics_reporter.cc
@@ -35,12 +35,10 @@
 HistoryStatisticsReporter::HistoryStatisticsReporter(
     history::HistoryService* history_service,
     PrefService* prefs)
-    : history_service_(history_service),
-      prefs_(prefs),
-      history_service_observer_(this) {}
+    : history_service_(history_service), prefs_(prefs) {}
 
 HistoryStatisticsReporter::~HistoryStatisticsReporter() {
-  history_service_observer_.RemoveAll();
+  history_service_observation_.Reset();
 }
 
 void HistoryStatisticsReporter::ScheduleReportStatistics() {
@@ -69,7 +67,7 @@
 
 void HistoryStatisticsReporter::HistoryServiceBeingDeleted(
     history::HistoryService* history_service) {
-  history_service_observer_.RemoveAll();
+  history_service_observation_.Reset();
 }
 
 void HistoryStatisticsReporter::MaybeReportStatistics() {
@@ -79,8 +77,8 @@
   } else {
     // Register for HistoryServiceLoading in case HistoryService is not yet
     // ready.
-    DCHECK(!history_service_observer_.IsObserving(history_service_));
-    history_service_observer_.Add(history_service_);
+    DCHECK(!history_service_observation_.IsObservingSource(history_service_));
+    history_service_observation_.Observe(history_service_);
   }
 }
 
diff --git a/chrome/browser/android/explore_sites/history_statistics_reporter.h b/chrome/browser/android/explore_sites/history_statistics_reporter.h
index 6bf99ed..f4e7a03 100644
--- a/chrome/browser/android/explore_sites/history_statistics_reporter.h
+++ b/chrome/browser/android/explore_sites/history_statistics_reporter.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "base/task/cancelable_task_tracker.h"
 #include "components/history/core/browser/history_service.h"
 #include "components/history/core/browser/history_service_observer.h"
@@ -48,8 +48,9 @@
   PrefService* prefs_;
 
   base::CancelableTaskTracker cancelable_task_tracker_;
-  ScopedObserver<history::HistoryService, history::HistoryServiceObserver>
-      history_service_observer_;
+  base::ScopedObservation<history::HistoryService,
+                          history::HistoryServiceObserver>
+      history_service_observation_{this};
   bool attempted_to_report_once_ = false;
   base::WeakPtrFactory<HistoryStatisticsReporter> weak_ptr_factory_{this};
 
diff --git a/chrome/browser/apps/app_service/app_platform_metrics.cc b/chrome/browser/apps/app_service/app_platform_metrics.cc
index 93f9f12..43be66d 100644
--- a/chrome/browser/apps/app_service/app_platform_metrics.cc
+++ b/chrome/browser/apps/app_service/app_platform_metrics.cc
@@ -338,9 +338,7 @@
     Profile* profile,
     apps::AppRegistryCache& app_registry_cache,
     InstanceRegistry& instance_registry)
-    : profile_(profile),
-      app_registry_cache_(app_registry_cache),
-      first_report_on_current_device_(true) {
+    : profile_(profile), app_registry_cache_(app_registry_cache) {
   apps::AppRegistryCache::Observer::Observe(&app_registry_cache);
   apps::InstanceRegistry::Observer::Observe(&instance_registry);
   InitRunningDuration();
@@ -389,13 +387,6 @@
 }
 
 void AppPlatformMetrics::OnNewDay() {
-  // Ignores the first report. Apps and extensions may sync slowly after the
-  // OOBE process, biasing the metrics downwards toward zero.
-  if (first_report_on_current_device_) {
-    first_report_on_current_device_ = false;
-    return;
-  }
-
   should_record_metrics_on_new_day_ = true;
   RecordAppsCount(apps::mojom::AppType::kUnknown);
   RecordAppsRunningDuration();
diff --git a/chrome/browser/apps/app_service/app_platform_metrics.h b/chrome/browser/apps/app_service/app_platform_metrics.h
index ceb3eae..042db8e 100644
--- a/chrome/browser/apps/app_service/app_platform_metrics.h
+++ b/chrome/browser/apps/app_service/app_platform_metrics.h
@@ -137,7 +137,6 @@
   AppRegistryCache& app_registry_cache_;
 
   bool should_record_metrics_on_new_day_ = false;
-  bool first_report_on_current_device_ = false;
 
   bool should_refresh_duration_pref = false;
   bool should_refresh_activated_count_pref = false;
diff --git a/chrome/browser/apps/app_service/app_platform_metrics_service_unittest.cc b/chrome/browser/apps/app_service/app_platform_metrics_service_unittest.cc
index fcbdcd4d..07b010abb 100644
--- a/chrome/browser/apps/app_service/app_platform_metrics_service_unittest.cc
+++ b/chrome/browser/apps/app_service/app_platform_metrics_service_unittest.cc
@@ -78,6 +78,9 @@
     base::TimeDelta forward_by = start_time - base::Time::Now();
     EXPECT_LT(base::TimeDelta(), forward_by);
     task_environment_.AdvanceClock(forward_by);
+    GetPrefService()->SetInteger(
+        kAppPlatformMetricsDayId,
+        start_time.UTCMidnight().since_origin().InDaysFloored());
 
     chromeos::PowerManagerClient::InitializeFake();
     app_platform_metrics_service_ =
@@ -196,7 +199,7 @@
   std::unique_ptr<Browser> CreateBrowserWithAuraWindow1() {
     std::unique_ptr<aura::Window> window = std::make_unique<aura::Window>(
         &delegate1_, aura::client::WINDOW_TYPE_NORMAL);
-    window->set_id(0);
+    window->SetId(0);
     window->Init(ui::LAYER_TEXTURED);
     Browser::CreateParams params(&testing_profile_, true);
     params.type = Browser::TYPE_NORMAL;
@@ -209,7 +212,7 @@
   std::unique_ptr<Browser> CreateBrowserWithAuraWindow2() {
     std::unique_ptr<aura::Window> window = std::make_unique<aura::Window>(
         &delegate2_, aura::client::WINDOW_TYPE_NORMAL);
-    window->set_id(0);
+    window->SetId(0);
     window->Init(ui::LAYER_TEXTURED);
     Browser::CreateParams params(&testing_profile_, true);
     params.type = Browser::TYPE_NORMAL;
diff --git a/chrome/browser/apps/app_service/file_utils_unittest.cc b/chrome/browser/apps/app_service/file_utils_unittest.cc
index 7bf24b5..571151c 100644
--- a/chrome/browser/apps/app_service/file_utils_unittest.cc
+++ b/chrome/browser/apps/app_service/file_utils_unittest.cc
@@ -19,14 +19,13 @@
 #include "chrome/test/base/testing_profile_manager.h"
 #include "content/public/test/browser_task_environment.h"
 #include "extensions/common/extension.h"
+#include "storage/browser/file_system/external_mount_points.h"
 #include "storage/browser/file_system/file_system_url.h"
 #include "storage/common/file_system/file_system_util.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 #include "url/url_constants.h"
 
-#include "storage/browser/file_system/external_mount_points.h"
-
 namespace apps {
 
 namespace {
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc
index edd9ebe..3f4e3fe 100644
--- a/chrome/browser/apps/guest_view/web_view_browsertest.cc
+++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -278,7 +278,7 @@
   }
 
   void OnWindowInitialized(aura::Window* window) override {
-    if (window->type() != aura::client::WINDOW_TYPE_MENU)
+    if (window->GetType() != aura::client::WINDOW_TYPE_MENU)
       return;
     window->AddObserver(this);
     observed_windows_.insert(window);
diff --git a/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc b/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc
index e7e3bf62..b5844ab 100644
--- a/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc
+++ b/chrome/browser/ash/accessibility/spoken_feedback_browsertest.cc
@@ -969,8 +969,12 @@
   views::Widget* widget = new views::Widget;
   views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
 
+  // Assert the right edge fits the below window.
+  ASSERT_GE(root_window->bounds().width(), 1280);
+  ASSERT_GE(root_window->bounds().height(), 800);
+
   // This is the right edge of the screen.
-  params.bounds = {1250, 0, 50, 700};
+  params.bounds = {1050, 0, 50, 700};
   widget->Init(std::move(params));
 
   views::View* view = new views::View();
@@ -983,21 +987,21 @@
   sm_.Call([widget, clock_ptr, generator_ptr]() {
     widget->Show();
     ui::TouchEvent touch_press(
-        ui::ET_TOUCH_PRESSED, gfx::Point(1280, 200), base::TimeTicks::Now(),
+        ui::ET_TOUCH_PRESSED, gfx::Point(1080, 200), base::TimeTicks::Now(),
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_press);
 
     clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
 
     ui::TouchEvent touch_move(
-        ui::ET_TOUCH_MOVED, gfx::Point(1280, 300), base::TimeTicks::Now(),
+        ui::ET_TOUCH_MOVED, gfx::Point(1080, 300), base::TimeTicks::Now(),
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_move);
 
     clock_ptr->Advance(base::TimeDelta::FromSeconds(1));
 
     ui::TouchEvent touch_move2(
-        ui::ET_TOUCH_MOVED, gfx::Point(1280, 400), base::TimeTicks::Now(),
+        ui::ET_TOUCH_MOVED, gfx::Point(1080, 400), base::TimeTicks::Now(),
         ui::PointerDetails(ui::EventPointerType::kTouch, 0));
     generator_ptr->Dispatch(&touch_move2);
   });
diff --git a/chrome/browser/ash/arc/arc_util_unittest.cc b/chrome/browser/ash/arc/arc_util_unittest.cc
index d6ab4822..1071684 100644
--- a/chrome/browser/ash/arc/arc_util_unittest.cc
+++ b/chrome/browser/ash/arc/arc_util_unittest.cc
@@ -30,7 +30,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_oobe_configuration_client.h"
 #include "chromeos/tpm/stub_install_attributes.h"
diff --git a/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge_unittest.cc b/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge_unittest.cc
index 6ef627a5..429d192 100644
--- a/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge_unittest.cc
+++ b/chrome/browser/ash/arc/boot_phase_monitor/arc_boot_phase_monitor_bridge_unittest.cc
@@ -14,7 +14,7 @@
 #include "chrome/browser/ash/arc/test/test_arc_session_manager.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/session_manager/fake_session_manager_client.h"
 #include "components/arc/arc_prefs.h"
diff --git a/chrome/browser/ash/arc/enterprise/arc_data_snapshotd_delegate_unittest.cc b/chrome/browser/ash/arc/enterprise/arc_data_snapshotd_delegate_unittest.cc
index e96c569..7d31a95 100644
--- a/chrome/browser/ash/arc/enterprise/arc_data_snapshotd_delegate_unittest.cc
+++ b/chrome/browser/ash/arc/enterprise/arc_data_snapshotd_delegate_unittest.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/ash/arc/test/test_arc_session_manager.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/arc/arc_prefs.h"
 #include "components/arc/arc_util.h"
diff --git a/chrome/browser/ash/arc/fileapi/arc_documents_provider_util.cc b/chrome/browser/ash/arc/fileapi/arc_documents_provider_util.cc
index f64ee12..c7c8c7be 100644
--- a/chrome/browser/ash/arc/fileapi/arc_documents_provider_util.cc
+++ b/chrome/browser/ash/arc/fileapi/arc_documents_provider_util.cc
@@ -95,7 +95,7 @@
 
 // This is based on net/base/escape.cc: net::(anonymous namespace)::Escape.
 // TODO(nya): Consider consolidating this function with EscapeFileSystemId() in
-// chrome/browser/chromeos/file_system_provider/mount_path_util.cc.
+// chrome/browser/ash/file_system_provider/mount_path_util.cc.
 // This version differs from the other one in the point that dots are not always
 // escaped because authorities often contain harmless dots.
 std::string EscapePathComponent(const std::string& name) {
diff --git a/chrome/browser/ash/arc/fileapi/arc_file_system_bridge_unittest.cc b/chrome/browser/ash/arc/fileapi/arc_file_system_bridge_unittest.cc
index 5383da8e..5107c69 100644
--- a/chrome/browser/ash/arc/fileapi/arc_file_system_bridge_unittest.cc
+++ b/chrome/browser/ash/arc/fileapi/arc_file_system_bridge_unittest.cc
@@ -14,15 +14,15 @@
 #include "base/run_loop.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/ash/arc/fileapi/chrome_content_provider_url_util.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/browser/chromeos/file_manager/path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
 #include "chrome/browser/chromeos/fileapi/external_file_url_util.h"
 #include "chrome/browser/chromeos/fileapi/file_system_backend.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_virtual_file_provider_client.h"
 #include "components/arc/session/arc_bridge_service.h"
diff --git a/chrome/browser/ash/arc/instance_throttle/arc_boot_phase_throttle_observer_unittest.cc b/chrome/browser/ash/arc/instance_throttle/arc_boot_phase_throttle_observer_unittest.cc
index d0420e0..46ec27e 100644
--- a/chrome/browser/ash/arc/instance_throttle/arc_boot_phase_throttle_observer_unittest.cc
+++ b/chrome/browser/ash/arc/instance_throttle/arc_boot_phase_throttle_observer_unittest.cc
@@ -13,7 +13,7 @@
 #include "chrome/browser/ash/arc/test/test_arc_session_manager.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/arc/arc_prefs.h"
 #include "components/arc/arc_service_manager.h"
diff --git a/chrome/browser/ash/arc/instance_throttle/arc_instance_throttle_unittest.cc b/chrome/browser/ash/arc/instance_throttle/arc_instance_throttle_unittest.cc
index 24a8e3b..02502d3 100644
--- a/chrome/browser/ash/arc/instance_throttle/arc_instance_throttle_unittest.cc
+++ b/chrome/browser/ash/arc/instance_throttle/arc_instance_throttle_unittest.cc
@@ -16,7 +16,7 @@
 #include "chrome/browser/ash/arc/test/test_arc_session_manager.h"
 #include "chrome/browser/chromeos/throttle_observer.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/arc/arc_prefs.h"
 #include "components/arc/arc_service_manager.h"
diff --git a/chrome/browser/ash/arc/intent_helper/arc_settings_service_unittest.cc b/chrome/browser/ash/arc/intent_helper/arc_settings_service_unittest.cc
index 4106073..464a459 100644
--- a/chrome/browser/ash/arc/intent_helper/arc_settings_service_unittest.cc
+++ b/chrome/browser/ash/arc/intent_helper/arc_settings_service_unittest.cc
@@ -18,7 +18,7 @@
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/network/network_handler_test_helper.h"
 #include "chromeos/services/network_config/public/cpp/cros_network_config_test_helper.h"
diff --git a/chrome/browser/ash/arc/notification/arc_provision_notification_service_unittest.cc b/chrome/browser/ash/arc/notification/arc_provision_notification_service_unittest.cc
index 9a1ccc6b..7396a135f 100644
--- a/chrome/browser/ash/arc/notification/arc_provision_notification_service_unittest.cc
+++ b/chrome/browser/ash/arc/notification/arc_provision_notification_service_unittest.cc
@@ -20,7 +20,7 @@
 #include "chrome/browser/notifications/notification_display_service_tester.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/arc/arc_prefs.h"
 #include "components/arc/arc_service_manager.h"
diff --git a/chrome/browser/ash/arc/policy/arc_policy_bridge_unittest.cc b/chrome/browser/ash/arc/policy/arc_policy_bridge_unittest.cc
index 159c92e..f9a8c8f4 100644
--- a/chrome/browser/ash/arc/policy/arc_policy_bridge_unittest.cc
+++ b/chrome/browser/ash/arc/policy/arc_policy_bridge_unittest.cc
@@ -27,7 +27,7 @@
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/upstart/fake_upstart_client.h"
 #include "components/arc/arc_features.h"
diff --git a/chrome/browser/ash/arc/session/arc_play_store_enabled_preference_handler_unittest.cc b/chrome/browser/ash/arc/session/arc_play_store_enabled_preference_handler_unittest.cc
index 7f1002d0..8f23750d 100644
--- a/chrome/browser/ash/arc/session/arc_play_store_enabled_preference_handler_unittest.cc
+++ b/chrome/browser/ash/arc/session/arc_play_store_enabled_preference_handler_unittest.cc
@@ -22,7 +22,7 @@
 #include "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
 #include "chrome/grit/generated_resources.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/session_manager/session_manager_client.h"
 #include "chromeos/dbus/upstart/upstart_client.h"
diff --git a/chrome/browser/ash/arc/session/arc_session_manager.h b/chrome/browser/ash/arc/session/arc_session_manager.h
index 502b555..7dbc6a2 100644
--- a/chrome/browser/ash/arc/session/arc_session_manager.h
+++ b/chrome/browser/ash/arc/session/arc_session_manager.h
@@ -20,7 +20,7 @@
 #include "chrome/browser/ash/arc/session/arc_app_id_provider_impl.h"
 #include "chrome/browser/ash/arc/session/arc_session_manager_observer.h"
 #include "chrome/browser/chromeos/policy/android_management_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/session_manager/session_manager_client.h"
 #include "components/arc/session/arc_session_runner.h"
 #include "components/arc/session/arc_stop_reason.h"
diff --git a/chrome/browser/ash/arc/session/arc_session_manager_unittest.cc b/chrome/browser/ash/arc/session/arc_session_manager_unittest.cc
index 4648a53e..8b3093b 100644
--- a/chrome/browser/ash/arc/session/arc_session_manager_unittest.cc
+++ b/chrome/browser/ash/arc/session/arc_session_manager_unittest.cc
@@ -46,7 +46,7 @@
 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
 #include "chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/power/power_manager_client.h"
 #include "chromeos/dbus/session_manager/session_manager_client.h"
diff --git a/chrome/browser/ash/borealis/borealis_app_launcher_unittest.cc b/chrome/browser/ash/borealis/borealis_app_launcher_unittest.cc
index bc2378a..58aa136d 100644
--- a/chrome/browser/ash/borealis/borealis_app_launcher_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_app_launcher_unittest.cc
@@ -15,7 +15,7 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/dbus/vm_applications/apps.pb.h"
diff --git a/chrome/browser/ash/borealis/borealis_context_manager_impl.cc b/chrome/browser/ash/borealis/borealis_context_manager_impl.cc
index 948d99f..d6de2d04 100644
--- a/chrome/browser/ash/borealis/borealis_context_manager_impl.cc
+++ b/chrome/browser/ash/borealis/borealis_context_manager_impl.cc
@@ -17,7 +17,7 @@
 #include "chrome/browser/ash/borealis/borealis_util.h"
 #include "chrome/browser/ash/borealis/infra/described.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 
 namespace {
diff --git a/chrome/browser/ash/borealis/borealis_context_manager_impl.h b/chrome/browser/ash/borealis/borealis_context_manager_impl.h
index b14a0e9..f9d8922 100644
--- a/chrome/browser/ash/borealis/borealis_context_manager_impl.h
+++ b/chrome/browser/ash/borealis/borealis_context_manager_impl.h
@@ -14,7 +14,7 @@
 #include "chrome/browser/ash/borealis/infra/described.h"
 #include "chrome/browser/ash/borealis/infra/transition.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 
 namespace borealis {
 
diff --git a/chrome/browser/ash/borealis/borealis_context_manager_unittest.cc b/chrome/browser/ash/borealis/borealis_context_manager_unittest.cc
index b8ff31240..53be8eb 100644
--- a/chrome/browser/ash/borealis/borealis_context_manager_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_context_manager_unittest.cc
@@ -19,10 +19,10 @@
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "components/user_manager/scoped_user_manager.h"
 #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/ash/borealis/borealis_context_unittest.cc b/chrome/browser/ash/borealis/borealis_context_unittest.cc
index 639e0e5..9342e04 100644
--- a/chrome/browser/ash/borealis/borealis_context_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_context_unittest.cc
@@ -17,10 +17,10 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_chunneld_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/fake_seneschal_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/ash/borealis/borealis_installer_impl.cc b/chrome/browser/ash/borealis/borealis_installer_impl.cc
index 62fb6db..8596d43 100644
--- a/chrome/browser/ash/borealis/borealis_installer_impl.cc
+++ b/chrome/browser/ash/borealis/borealis_installer_impl.cc
@@ -19,8 +19,8 @@
 #include "chrome/browser/ash/guest_os/guest_os_registry_service_factory.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
 #include "chromeos/dbus/vm_applications/apps.pb.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/browser_thread.h"
diff --git a/chrome/browser/ash/borealis/borealis_installer_unittest.cc b/chrome/browser/ash/borealis/borealis_installer_unittest.cc
index 76b4d1d..ac9500ce2 100644
--- a/chrome/browser/ash/borealis/borealis_installer_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_installer_unittest.cc
@@ -21,10 +21,10 @@
 #include "chrome/browser/ash/guest_os/guest_os_registry_service_factory.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/dlcservice/fake_dlcservice_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/vm_applications/apps.pb.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/network_service_instance.h"
diff --git a/chrome/browser/ash/borealis/borealis_launch_watcher_unittest.cc b/chrome/browser/ash/borealis/borealis_launch_watcher_unittest.cc
index f81ff412..787b6b31 100644
--- a/chrome/browser/ash/borealis/borealis_launch_watcher_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_launch_watcher_unittest.cc
@@ -10,7 +10,7 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/chrome/browser/ash/borealis/borealis_task.h b/chrome/browser/ash/borealis/borealis_task.h
index 780bbc2f3..9c729c6 100644
--- a/chrome/browser/ash/borealis/borealis_task.h
+++ b/chrome/browser/ash/borealis/borealis_task.h
@@ -9,7 +9,7 @@
 #include "chrome/browser/ash/borealis/borealis_context_manager.h"
 #include "chrome/browser/ash/borealis/borealis_launch_watcher.h"
 #include "chrome/browser/ash/borealis/borealis_metrics.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dlcservice/dlcservice_client.h"
 
 namespace borealis {
diff --git a/chrome/browser/ash/borealis/borealis_task_unittest.cc b/chrome/browser/ash/borealis/borealis_task_unittest.cc
index 66bd651..32ef4e74 100644
--- a/chrome/browser/ash/borealis/borealis_task_unittest.cc
+++ b/chrome/browser/ash/borealis/borealis_task_unittest.cc
@@ -13,10 +13,10 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/dlcservice/fake_dlcservice_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics_unittest.cc b/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics_unittest.cc
index 452b163b..f53c68c 100644
--- a/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics_unittest.cc
+++ b/chrome/browser/ash/child_accounts/family_user_chrome_activity_metrics_unittest.cc
@@ -123,7 +123,7 @@
   std::unique_ptr<Browser> CreateBrowserWithAuraWindow() {
     std::unique_ptr<aura::Window> window = std::make_unique<aura::Window>(
         nullptr, aura::client::WINDOW_TYPE_NORMAL);
-    window->set_id(0);
+    window->SetId(0);
     window->Init(ui::LAYER_TEXTURED);
     Browser::CreateParams params(profile(), true);
     params.type = Browser::TYPE_NORMAL;
diff --git a/chrome/browser/ash/crostini/ansible/ansible_management_service_unittest.cc b/chrome/browser/ash/crostini/ansible/ansible_management_service_unittest.cc
index 8582dfc..aab74833 100644
--- a/chrome/browser/ash/crostini/ansible/ansible_management_service_unittest.cc
+++ b/chrome/browser/ash/crostini/ansible/ansible_management_service_unittest.cc
@@ -9,7 +9,7 @@
 #include "chrome/browser/ash/crostini/crostini_test_util.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/ash/crostini/crostini_disk.cc b/chrome/browser/ash/crostini/crostini_disk.cc
index e6f7f96..b4102c2 100644
--- a/chrome/browser/ash/crostini/crostini_disk.cc
+++ b/chrome/browser/ash/crostini/crostini_disk.cc
@@ -18,8 +18,8 @@
 #include "chrome/browser/ash/crostini/crostini_manager.h"
 #include "chrome/browser/ash/crostini/crostini_simple_types.h"
 #include "chrome/browser/ash/crostini/crostini_types.mojom.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
 #include "ui/base/text/bytes_formatting.h"
 
 namespace {
diff --git a/chrome/browser/ash/crostini/crostini_disk_unittest.cc b/chrome/browser/ash/crostini/crostini_disk_unittest.cc
index 91157e8..f34e0271 100644
--- a/chrome/browser/ash/crostini/crostini_disk_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_disk_unittest.cc
@@ -14,10 +14,10 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gmock/include/gmock/gmock-matchers.h"
diff --git a/chrome/browser/ash/crostini/crostini_export_import_unittest.cc b/chrome/browser/ash/crostini/crostini_export_import_unittest.cc
index 7f8060e..301946f 100644
--- a/chrome/browser/ash/crostini/crostini_export_import_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_export_import_unittest.cc
@@ -17,7 +17,7 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/fake_seneschal_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
diff --git a/chrome/browser/ash/crostini/crostini_installer_unittest.cc b/chrome/browser/ash/crostini/crostini_installer_unittest.cc
index d62e8eb..ce91209 100644
--- a/chrome/browser/ash/crostini/crostini_installer_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_installer_unittest.cc
@@ -24,11 +24,11 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/dlcservice/dlcservice_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/disks/disk_mount_manager.h"
 #include "chromeos/disks/mock_disk_mount_manager.h"
diff --git a/chrome/browser/ash/crostini/crostini_low_disk_notification_unittest.cc b/chrome/browser/ash/crostini/crostini_low_disk_notification_unittest.cc
index 04b2e19..2ab00b1f 100644
--- a/chrome/browser/ash/crostini/crostini_low_disk_notification_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_low_disk_notification_unittest.cc
@@ -19,7 +19,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/settings/cros_settings_names.h"
diff --git a/chrome/browser/ash/crostini/crostini_manager.cc b/chrome/browser/ash/crostini/crostini_manager.cc
index cf53a81..8d5f3848 100644
--- a/chrome/browser/ash/crostini/crostini_manager.cc
+++ b/chrome/browser/ash/crostini/crostini_manager.cc
@@ -53,7 +53,7 @@
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/pref_names.h"
 #include "chromeos/dbus/anomaly_detector_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/cros_disks_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
diff --git a/chrome/browser/ash/crostini/crostini_manager.h b/chrome/browser/ash/crostini/crostini_manager.h
index 8d12042..b0b799a8 100644
--- a/chrome/browser/ash/crostini/crostini_manager.h
+++ b/chrome/browser/ash/crostini/crostini_manager.h
@@ -29,8 +29,8 @@
 #include "chromeos/dbus/anomaly_detector_client.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/cicerone_service.pb.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
 #include "chromeos/dbus/power/power_manager_client.h"
 #include "chromeos/network/network_state.h"
 #include "chromeos/network/network_state_handler.h"
diff --git a/chrome/browser/ash/crostini/crostini_manager_unittest.cc b/chrome/browser/ash/crostini/crostini_manager_unittest.cc
index af8c9c7..7966635 100644
--- a/chrome/browser/ash/crostini/crostini_manager_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_manager_unittest.cc
@@ -37,12 +37,12 @@
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/cicerone_service.pb.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/dlcservice/dlcservice_client.h"
 #include "chromeos/dbus/fake_anomaly_detector_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/dbus/session_manager/fake_session_manager_client.h"
 #include "chromeos/dbus/userdataauth/fake_cryptohome_misc_client.h"
diff --git a/chrome/browser/ash/crostini/crostini_package_notification_unittest.cc b/chrome/browser/ash/crostini/crostini_package_notification_unittest.cc
index c82ca98..9431388 100644
--- a/chrome/browser/ash/crostini/crostini_package_notification_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_package_notification_unittest.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/ash/crostini/crostini_util.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/ash/crostini/crostini_package_service_unittest.cc b/chrome/browser/ash/crostini/crostini_package_service_unittest.cc
index ef65cb42..68a9e93 100644
--- a/chrome/browser/ash/crostini/crostini_package_service_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_package_service_unittest.cc
@@ -24,10 +24,10 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/cros_disks_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/fake_seneschal_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/dbus/vm_applications/apps.pb.h"
diff --git a/chrome/browser/ash/crostini/crostini_port_forwarder_unittest.cc b/chrome/browser/ash/crostini/crostini_port_forwarder_unittest.cc
index 83d8984..ed63490b7 100644
--- a/chrome/browser/ash/crostini/crostini_port_forwarder_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_port_forwarder_unittest.cc
@@ -10,7 +10,7 @@
 #include "chrome/browser/ash/crostini/crostini_test_helper.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/permission_broker/fake_permission_broker_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
diff --git a/chrome/browser/ash/crostini/crostini_sshfs_unittest.cc b/chrome/browser/ash/crostini/crostini_sshfs_unittest.cc
index a16ca16..4e6828d0 100644
--- a/chrome/browser/ash/crostini/crostini_sshfs_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_sshfs_unittest.cc
@@ -25,10 +25,10 @@
 #include "chrome/browser/chromeos/file_manager/volume_manager_factory.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/cros_disks_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/dbus/vm_applications/apps.pb.h"
 #include "chromeos/disks/disk_mount_manager.h"
diff --git a/chrome/browser/ash/crostini/crostini_upgrade_available_notification_unittest.cc b/chrome/browser/ash/crostini/crostini_upgrade_available_notification_unittest.cc
index f5bf921d..0789344 100644
--- a/chrome/browser/ash/crostini/crostini_upgrade_available_notification_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_upgrade_available_notification_unittest.cc
@@ -24,7 +24,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/cicerone_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "components/session_manager/core/session_manager.h"
diff --git a/chrome/browser/ash/crostini/crostini_util_unittest.cc b/chrome/browser/ash/crostini/crostini_util_unittest.cc
index d3f5c7c..6f0629d 100644
--- a/chrome/browser/ash/crostini/crostini_util_unittest.cc
+++ b/chrome/browser/ash/crostini/crostini_util_unittest.cc
@@ -14,10 +14,10 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/dlcservice/dlcservice_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/chromeos/file_system_provider/abort_callback.h b/chrome/browser/ash/file_system_provider/abort_callback.h
similarity index 65%
rename from chrome/browser/chromeos/file_system_provider/abort_callback.h
rename to chrome/browser/ash/file_system_provider/abort_callback.h
index 5bdc52d..c371d5d2 100644
--- a/chrome/browser/chromeos/file_system_provider/abort_callback.h
+++ b/chrome/browser/ash/file_system_provider/abort_callback.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_ABORT_CALLBACK_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_ABORT_CALLBACK_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_ABORT_CALLBACK_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_ABORT_CALLBACK_H_
 
 #include "base/callback.h"
 #include "storage/browser/file_system/async_file_util.h"
@@ -16,4 +16,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_ABORT_CALLBACK_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_ABORT_CALLBACK_H_
diff --git a/chrome/browser/chromeos/file_system_provider/extension_provider.cc b/chrome/browser/ash/file_system_provider/extension_provider.cc
similarity index 96%
rename from chrome/browser/chromeos/file_system_provider/extension_provider.cc
rename to chrome/browser/ash/file_system_provider/extension_provider.cc
index eb9e4983..5e69307 100644
--- a/chrome/browser/chromeos/file_system_provider/extension_provider.cc
+++ b/chrome/browser/ash/file_system_provider/extension_provider.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/extension_provider.h"
 
 #include <stddef.h>
 
@@ -12,8 +12,8 @@
 #include "chrome/browser/apps/app_service/app_icon_source.h"
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
 #include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/throttled_file_system.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/throttled_file_system.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/chrome_features.h"
 #include "extensions/browser/event_router.h"
diff --git a/chrome/browser/chromeos/file_system_provider/extension_provider.h b/chrome/browser/ash/file_system_provider/extension_provider.h
similarity index 79%
rename from chrome/browser/chromeos/file_system_provider/extension_provider.h
rename to chrome/browser/ash/file_system_provider/extension_provider.h
index bc6f654..3530d9b 100644
--- a/chrome/browser/chromeos/file_system_provider/extension_provider.h
+++ b/chrome/browser/ash/file_system_provider/extension_provider.h
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_EXTENSION_PROVIDER_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_EXTENSION_PROVIDER_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_EXTENSION_PROVIDER_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_EXTENSION_PROVIDER_H_
 
 #include <memory>
 #include <string>
 
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/provider_interface.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provider_interface.h"
 #include "components/services/app_service/public/cpp/app_registry_cache.h"
 #include "extensions/common/extension_id.h"
 
@@ -73,4 +73,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_EXTENSION_PROVIDER_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_EXTENSION_PROVIDER_H_
diff --git a/chrome/browser/chromeos/file_system_provider/fake_extension_provider.cc b/chrome/browser/ash/file_system_provider/fake_extension_provider.cc
similarity index 88%
rename from chrome/browser/chromeos/file_system_provider/fake_extension_provider.cc
rename to chrome/browser/ash/file_system_provider/fake_extension_provider.cc
index 7bf95c2..5e73060 100644
--- a/chrome/browser/chromeos/file_system_provider/fake_extension_provider.cc
+++ b/chrome/browser/ash/file_system_provider/fake_extension_provider.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
 
 #include <stddef.h>
 
 #include <memory>
 #include <utility>
 
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/common/permissions/permissions_data.h"
 
diff --git a/chrome/browser/chromeos/file_system_provider/fake_extension_provider.h b/chrome/browser/ash/file_system_provider/fake_extension_provider.h
similarity index 71%
rename from chrome/browser/chromeos/file_system_provider/fake_extension_provider.h
rename to chrome/browser/ash/file_system_provider/fake_extension_provider.h
index e0107a6a..871b2dd 100644
--- a/chrome/browser/chromeos/file_system_provider/fake_extension_provider.h
+++ b/chrome/browser/ash/file_system_provider/fake_extension_provider.h
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_EXTENSION_PROVIDER_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_EXTENSION_PROVIDER_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_FAKE_EXTENSION_PROVIDER_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_FAKE_EXTENSION_PROVIDER_H_
 
 #include <memory>
 #include <string>
 
-#include "chrome/browser/chromeos/file_system_provider/extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/provider_interface.h"
+#include "chrome/browser/ash/file_system_provider/extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provider_interface.h"
 #include "extensions/common/extension_id.h"
 
 class Profile;
@@ -51,4 +51,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_EXTENSION_PROVIDER_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_FAKE_EXTENSION_PROVIDER_H_
diff --git a/chrome/browser/chromeos/file_system_provider/fake_provided_file_system.cc b/chrome/browser/ash/file_system_provider/fake_provided_file_system.cc
similarity index 99%
rename from chrome/browser/chromeos/file_system_provider/fake_provided_file_system.cc
rename to chrome/browser/ash/file_system_provider/fake_provided_file_system.cc
index 343a51b1..77517940 100644
--- a/chrome/browser/chromeos/file_system_provider/fake_provided_file_system.cc
+++ b/chrome/browser/ash/file_system_provider/fake_provided_file_system.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
 
 #include <stddef.h>
 
diff --git a/chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h b/chrome/browser/ash/file_system_provider/fake_provided_file_system.h
similarity index 91%
rename from chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h
rename to chrome/browser/ash/file_system_provider/fake_provided_file_system.h
index df47c70..0156cdd 100644
--- a/chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h
+++ b/chrome/browser/ash/file_system_provider/fake_provided_file_system.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_PROVIDED_FILE_SYSTEM_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_PROVIDED_FILE_SYSTEM_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_FAKE_PROVIDED_FILE_SYSTEM_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_FAKE_PROVIDED_FILE_SYSTEM_H_
 
 #include <stdint.h>
 
@@ -18,11 +18,11 @@
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "base/task/cancelable_task_tracker.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_observer.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 #include "storage/browser/file_system/async_file_util.h"
 #include "storage/browser/file_system/watcher_manager.h"
 #include "url/gurl.h"
@@ -193,4 +193,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_PROVIDED_FILE_SYSTEM_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_FAKE_PROVIDED_FILE_SYSTEM_H_
diff --git a/chrome/browser/chromeos/file_system_provider/fake_registry.cc b/chrome/browser/ash/file_system_provider/fake_registry.cc
similarity index 90%
rename from chrome/browser/chromeos/file_system_provider/fake_registry.cc
rename to chrome/browser/ash/file_system_provider/fake_registry.cc
index 213b201..e836c84 100644
--- a/chrome/browser/chromeos/file_system_provider/fake_registry.cc
+++ b/chrome/browser/ash/file_system_provider/fake_registry.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/fake_registry.h"
+#include "chrome/browser/ash/file_system_provider/fake_registry.h"
 
 #include <memory>
 
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 
 namespace chromeos {
 namespace file_system_provider {
diff --git a/chrome/browser/chromeos/file_system_provider/fake_registry.h b/chrome/browser/ash/file_system_provider/fake_registry.h
similarity index 78%
rename from chrome/browser/chromeos/file_system_provider/fake_registry.h
rename to chrome/browser/ash/file_system_provider/fake_registry.h
index a16e2350..9faa287 100644
--- a/chrome/browser/chromeos/file_system_provider/fake_registry.h
+++ b/chrome/browser/ash/file_system_provider/fake_registry.h
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_REGISTRY_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_REGISTRY_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_FAKE_REGISTRY_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_FAKE_REGISTRY_H_
 
-#include "chrome/browser/chromeos/file_system_provider/registry_interface.h"
+#include "chrome/browser/ash/file_system_provider/registry_interface.h"
 
 #include "base/macros.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 
 namespace chromeos {
 namespace file_system_provider {
@@ -42,4 +42,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_FAKE_REGISTRY_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_FAKE_REGISTRY_H_
diff --git a/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader.cc b/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader.cc
index 52f39c10..983cae43 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader.cc
@@ -13,11 +13,11 @@
 #include "base/memory/ptr_util.h"
 #include "base/memory/ref_counted.h"
 #include "base/trace_event/trace_event.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
 #include "chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/scoped_file_opener.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/scoped_file_opener.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "net/base/io_buffer.h"
diff --git a/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader_unittest.cc b/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader_unittest.cc
index eb27cd5d..b925c12 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader_unittest.cc
@@ -19,10 +19,10 @@
 #include "base/memory/weak_ptr.h"
 #include "base/numerics/safe_math.h"
 #include "base/run_loop.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
diff --git a/chrome/browser/ash/file_system_provider/fileapi/file_stream_writer.cc b/chrome/browser/ash/file_system_provider/fileapi/file_stream_writer.cc
index 37bbdf1a..2a15f62b 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/file_stream_writer.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/file_stream_writer.cc
@@ -12,11 +12,11 @@
 #include "base/memory/ref_counted.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/trace_event/trace_event.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
 #include "chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/scoped_file_opener.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/scoped_file_opener.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "net/base/io_buffer.h"
diff --git a/chrome/browser/ash/file_system_provider/fileapi/file_stream_writer_unittest.cc b/chrome/browser/ash/file_system_provider/fileapi/file_stream_writer_unittest.cc
index 15bbc0e..6e7293e1 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/file_stream_writer_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/file_stream_writer_unittest.cc
@@ -17,10 +17,10 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/memory/weak_ptr.h"
 #include "base/run_loop.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
diff --git a/chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util.cc b/chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util.cc
index 0113870..30c834b 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util.cc
@@ -15,8 +15,8 @@
 #include "base/files/file_path.h"
 #include "base/memory/ptr_util.h"
 #include "base/notreached.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "storage/browser/blob/shareable_file_reference.h"
diff --git a/chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util_unittest.cc b/chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util_unittest.cc
index 8d75fde8..c34d143 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/provider_async_file_util_unittest.cc
@@ -18,10 +18,10 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/run_loop.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
diff --git a/chrome/browser/ash/file_system_provider/fileapi/watcher_manager.cc b/chrome/browser/ash/file_system_provider/fileapi/watcher_manager.cc
index e50c796..4f931a09 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/watcher_manager.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/watcher_manager.cc
@@ -6,9 +6,9 @@
 
 #include "base/bind.h"
 #include "base/files/file.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "storage/browser/file_system/file_system_url.h"
diff --git a/chrome/browser/chromeos/file_system_provider/icon_set.cc b/chrome/browser/ash/file_system_provider/icon_set.cc
similarity index 91%
rename from chrome/browser/chromeos/file_system_provider/icon_set.cc
rename to chrome/browser/ash/file_system_provider/icon_set.cc
index 8d84d60d..934b7da 100644
--- a/chrome/browser/chromeos/file_system_provider/icon_set.cc
+++ b/chrome/browser/ash/file_system_provider/icon_set.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 
 namespace chromeos {
 namespace file_system_provider {
diff --git a/chrome/browser/chromeos/file_system_provider/icon_set.h b/chrome/browser/ash/file_system_provider/icon_set.h
similarity index 83%
rename from chrome/browser/chromeos/file_system_provider/icon_set.h
rename to chrome/browser/ash/file_system_provider/icon_set.h
index 7b7bfe4..33100b7 100644
--- a/chrome/browser/chromeos/file_system_provider/icon_set.h
+++ b/chrome/browser/ash/file_system_provider/icon_set.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_ICON_SET_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_ICON_SET_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_ICON_SET_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_ICON_SET_H_
 
 #include <map>
 
@@ -44,4 +44,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_ICON_SET_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_ICON_SET_H_
diff --git a/chrome/browser/chromeos/file_system_provider/logging_observer.cc b/chrome/browser/ash/file_system_provider/logging_observer.cc
similarity index 92%
rename from chrome/browser/chromeos/file_system_provider/logging_observer.cc
rename to chrome/browser/ash/file_system_provider/logging_observer.cc
index 12f5641..88c7636e 100644
--- a/chrome/browser/chromeos/file_system_provider/logging_observer.cc
+++ b/chrome/browser/ash/file_system_provider/logging_observer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/logging_observer.h"
+#include "chrome/browser/ash/file_system_provider/logging_observer.h"
 
 namespace chromeos {
 namespace file_system_provider {
diff --git a/chrome/browser/chromeos/file_system_provider/logging_observer.h b/chrome/browser/ash/file_system_provider/logging_observer.h
similarity index 80%
rename from chrome/browser/chromeos/file_system_provider/logging_observer.h
rename to chrome/browser/ash/file_system_provider/logging_observer.h
index 7d8c5a13..27a9401 100644
--- a/chrome/browser/chromeos/file_system_provider/logging_observer.h
+++ b/chrome/browser/ash/file_system_provider/logging_observer.h
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_LOGGING_OBSERVER_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_LOGGING_OBSERVER_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_LOGGING_OBSERVER_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_LOGGING_OBSERVER_H_
 
-#include "chrome/browser/chromeos/file_system_provider/observer.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/observer.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 
 namespace chromeos {
 namespace file_system_provider {
@@ -57,4 +57,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_LOGGING_OBSERVER_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_LOGGING_OBSERVER_H_
diff --git a/chrome/browser/chromeos/file_system_provider/mount_path_util.cc b/chrome/browser/ash/file_system_provider/mount_path_util.cc
similarity index 94%
rename from chrome/browser/chromeos/file_system_provider/mount_path_util.cc
rename to chrome/browser/ash/file_system_provider/mount_path_util.cc
index 4d9568d0..6222ca1 100644
--- a/chrome/browser/chromeos/file_system_provider/mount_path_util.cc
+++ b/chrome/browser/ash/file_system_provider/mount_path_util.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
 
 #include <stddef.h>
 
@@ -10,11 +10,11 @@
 
 #include "base/stl_util.h"
 #include "base/strings/stringprintf.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/browser_process.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "components/user_manager/user.h"
diff --git a/chrome/browser/chromeos/file_system_provider/mount_path_util.h b/chrome/browser/ash/file_system_provider/mount_path_util.h
similarity index 91%
rename from chrome/browser/chromeos/file_system_provider/mount_path_util.h
rename to chrome/browser/ash/file_system_provider/mount_path_util.h
index 3f62fa2..f80eff4 100644
--- a/chrome/browser/chromeos/file_system_provider/mount_path_util.h
+++ b/chrome/browser/ash/file_system_provider/mount_path_util.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_MOUNT_PATH_UTIL_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_MOUNT_PATH_UTIL_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_MOUNT_PATH_UTIL_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_MOUNT_PATH_UTIL_H_
 
 #include <string>
 
@@ -79,4 +79,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_MOUNT_PATH_UTIL_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_MOUNT_PATH_UTIL_H_
diff --git a/chrome/browser/chromeos/file_system_provider/mount_path_util_unittest.cc b/chrome/browser/ash/file_system_provider/mount_path_util_unittest.cc
similarity index 95%
rename from chrome/browser/chromeos/file_system_provider/mount_path_util_unittest.cc
rename to chrome/browser/ash/file_system_provider/mount_path_util_unittest.cc
index 58cd002..496044de 100644
--- a/chrome/browser/chromeos/file_system_provider/mount_path_util_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/mount_path_util_unittest.cc
@@ -2,20 +2,20 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
 
 #include <memory>
 #include <string>
 
 #include "base/files/file.h"
 #include "base/memory/ptr_util.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/test/base/testing_browser_process.h"
diff --git a/chrome/browser/chromeos/file_system_provider/notification_manager.cc b/chrome/browser/ash/file_system_provider/notification_manager.cc
similarity index 97%
rename from chrome/browser/chromeos/file_system_provider/notification_manager.cc
rename to chrome/browser/ash/file_system_provider/notification_manager.cc
index b73abdc..a51ddaa3 100644
--- a/chrome/browser/chromeos/file_system_provider/notification_manager.cc
+++ b/chrome/browser/ash/file_system_provider/notification_manager.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/notification_manager.h"
+#include "chrome/browser/ash/file_system_provider/notification_manager.h"
 
 #include "base/macros.h"
 #include "base/strings/utf_string_conversions.h"
diff --git a/chrome/browser/chromeos/file_system_provider/notification_manager.h b/chrome/browser/ash/file_system_provider/notification_manager.h
similarity index 86%
rename from chrome/browser/chromeos/file_system_provider/notification_manager.h
rename to chrome/browser/ash/file_system_provider/notification_manager.h
index b394c95..93f32b8 100644
--- a/chrome/browser/chromeos/file_system_provider/notification_manager.h
+++ b/chrome/browser/ash/file_system_provider/notification_manager.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_H_
 
 #include <map>
 #include <memory>
@@ -12,8 +12,8 @@
 #include "base/callback.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "chrome/browser/chromeos/file_system_provider/notification_manager_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/notification_manager_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "chrome/browser/ui/app_icon_loader.h"
 #include "ui/gfx/image/image.h"
 #include "ui/message_center/public/cpp/notification_delegate.h"
@@ -80,4 +80,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_H_
diff --git a/chrome/browser/chromeos/file_system_provider/notification_manager_interface.h b/chrome/browser/ash/file_system_provider/notification_manager_interface.h
similarity index 81%
rename from chrome/browser/chromeos/file_system_provider/notification_manager_interface.h
rename to chrome/browser/ash/file_system_provider/notification_manager_interface.h
index ade108ed4..65cf388 100644
--- a/chrome/browser/chromeos/file_system_provider/notification_manager_interface.h
+++ b/chrome/browser/ash/file_system_provider/notification_manager_interface.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_INTERFACE_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_INTERFACE_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_INTERFACE_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_INTERFACE_H_
 
 #include "base/callback.h"
 #include "base/macros.h"
@@ -38,4 +38,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_INTERFACE_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_INTERFACE_H_
diff --git a/chrome/browser/chromeos/file_system_provider/observer.h b/chrome/browser/ash/file_system_provider/observer.h
similarity index 86%
rename from chrome/browser/chromeos/file_system_provider/observer.h
rename to chrome/browser/ash/file_system_provider/observer.h
index c45293a..1e495f8d 100644
--- a/chrome/browser/chromeos/file_system_provider/observer.h
+++ b/chrome/browser/ash/file_system_provider/observer.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OBSERVER_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OBSERVER_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_OBSERVER_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_OBSERVER_H_
 
 #include "base/files/file.h"
 
@@ -40,4 +40,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OBSERVER_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_OBSERVER_H_
diff --git a/chrome/browser/ash/file_system_provider/operations/abort.h b/chrome/browser/ash/file_system_provider/operations/abort.h
index 5b216dac..0a4c805 100644
--- a/chrome/browser/ash/file_system_provider/operations/abort.h
+++ b/chrome/browser/ash/file_system_provider/operations/abort.h
@@ -10,9 +10,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace extensions {
diff --git a/chrome/browser/ash/file_system_provider/operations/abort_unittest.cc b/chrome/browser/ash/file_system_provider/operations/abort_unittest.cc
index 4d7fc017..87345ff 100644
--- a/chrome/browser/ash/file_system_provider/operations/abort_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/abort_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/add_watcher.h b/chrome/browser/ash/file_system_provider/operations/add_watcher.h
index d625bd1..fa0e223 100644
--- a/chrome/browser/ash/file_system_provider/operations/add_watcher.h
+++ b/chrome/browser/ash/file_system_provider/operations/add_watcher.h
@@ -10,9 +10,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/add_watcher_unittest.cc b/chrome/browser/ash/file_system_provider/operations/add_watcher_unittest.cc
index 74619f2..7294b3f 100644
--- a/chrome/browser/ash/file_system_provider/operations/add_watcher_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/add_watcher_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/close_file.h b/chrome/browser/ash/file_system_provider/operations/close_file.h
index 6f7288e..8f6204e8 100644
--- a/chrome/browser/ash/file_system_provider/operations/close_file.h
+++ b/chrome/browser/ash/file_system_provider/operations/close_file.h
@@ -10,9 +10,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace extensions {
diff --git a/chrome/browser/ash/file_system_provider/operations/close_file_unittest.cc b/chrome/browser/ash/file_system_provider/operations/close_file_unittest.cc
index 9104eb9..aa53f1e2 100644
--- a/chrome/browser/ash/file_system_provider/operations/close_file_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/close_file_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/configure_unittest.cc b/chrome/browser/ash/file_system_provider/operations/configure_unittest.cc
index fc43cd6..55e35b9 100644
--- a/chrome/browser/ash/file_system_provider/operations/configure_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/configure_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/copy_entry.h b/chrome/browser/ash/file_system_provider/operations/copy_entry.h
index bbc2f3e..116e45bd 100644
--- a/chrome/browser/ash/file_system_provider/operations/copy_entry.h
+++ b/chrome/browser/ash/file_system_provider/operations/copy_entry.h
@@ -10,9 +10,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/copy_entry_unittest.cc b/chrome/browser/ash/file_system_provider/operations/copy_entry_unittest.cc
index ef681df5..2d5eddf 100644
--- a/chrome/browser/ash/file_system_provider/operations/copy_entry_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/copy_entry_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/create_directory.h b/chrome/browser/ash/file_system_provider/operations/create_directory.h
index 58e80e6..4fea37e4 100644
--- a/chrome/browser/ash/file_system_provider/operations/create_directory.h
+++ b/chrome/browser/ash/file_system_provider/operations/create_directory.h
@@ -10,8 +10,8 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/create_directory_unittest.cc b/chrome/browser/ash/file_system_provider/operations/create_directory_unittest.cc
index 37fb0d38..309d8b0 100644
--- a/chrome/browser/ash/file_system_provider/operations/create_directory_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/create_directory_unittest.cc
@@ -13,9 +13,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/create_file.h b/chrome/browser/ash/file_system_provider/operations/create_file.h
index 80530fa..ad52d56 100644
--- a/chrome/browser/ash/file_system_provider/operations/create_file.h
+++ b/chrome/browser/ash/file_system_provider/operations/create_file.h
@@ -10,9 +10,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/create_file_unittest.cc b/chrome/browser/ash/file_system_provider/operations/create_file_unittest.cc
index f6be164..06b3d15 100644
--- a/chrome/browser/ash/file_system_provider/operations/create_file_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/create_file_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/delete_entry.h b/chrome/browser/ash/file_system_provider/operations/delete_entry.h
index 395b7b5..07716a88 100644
--- a/chrome/browser/ash/file_system_provider/operations/delete_entry.h
+++ b/chrome/browser/ash/file_system_provider/operations/delete_entry.h
@@ -10,8 +10,8 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/delete_entry_unittest.cc b/chrome/browser/ash/file_system_provider/operations/delete_entry_unittest.cc
index a629b41..902a37b 100644
--- a/chrome/browser/ash/file_system_provider/operations/delete_entry_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/delete_entry_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/execute_action.h b/chrome/browser/ash/file_system_provider/operations/execute_action.h
index 61c41c8..cfcf745 100644
--- a/chrome/browser/ash/file_system_provider/operations/execute_action.h
+++ b/chrome/browser/ash/file_system_provider/operations/execute_action.h
@@ -12,9 +12,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
 #include "storage/browser/file_system/async_file_util.h"
 
diff --git a/chrome/browser/ash/file_system_provider/operations/execute_action_unittest.cc b/chrome/browser/ash/file_system_provider/operations/execute_action_unittest.cc
index 8abacf1..c1e66fd6 100644
--- a/chrome/browser/ash/file_system_provider/operations/execute_action_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/execute_action_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/get_actions.h b/chrome/browser/ash/file_system_provider/operations/get_actions.h
index 224c98b..492e7cc 100644
--- a/chrome/browser/ash/file_system_provider/operations/get_actions.h
+++ b/chrome/browser/ash/file_system_provider/operations/get_actions.h
@@ -11,9 +11,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/get_actions_unittest.cc b/chrome/browser/ash/file_system_provider/operations/get_actions_unittest.cc
index 403e57c..d6ede20 100644
--- a/chrome/browser/ash/file_system_provider/operations/get_actions_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/get_actions_unittest.cc
@@ -15,9 +15,9 @@
 #include "base/json/json_reader.h"
 #include "base/macros.h"
 #include "base/values.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/get_metadata.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/get_metadata.h b/chrome/browser/ash/file_system_provider/operations/get_metadata.h
index b04a9663..cca190a6 100644
--- a/chrome/browser/ash/file_system_provider/operations/get_metadata.h
+++ b/chrome/browser/ash/file_system_provider/operations/get_metadata.h
@@ -11,9 +11,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/get_metadata_unittest.cc b/chrome/browser/ash/file_system_provider/operations/get_metadata_unittest.cc
index ffb8250..cca6bfaf 100644
--- a/chrome/browser/ash/file_system_provider/operations/get_metadata_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/get_metadata_unittest.cc
@@ -15,8 +15,8 @@
 #include "base/json/json_reader.h"
 #include "base/macros.h"
 #include "base/values.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/move_entry.h b/chrome/browser/ash/file_system_provider/operations/move_entry.h
index 34c8036c..66318976 100644
--- a/chrome/browser/ash/file_system_provider/operations/move_entry.h
+++ b/chrome/browser/ash/file_system_provider/operations/move_entry.h
@@ -10,9 +10,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/move_entry_unittest.cc b/chrome/browser/ash/file_system_provider/operations/move_entry_unittest.cc
index 082f1c1..27551276 100644
--- a/chrome/browser/ash/file_system_provider/operations/move_entry_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/move_entry_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/open_file.h b/chrome/browser/ash/file_system_provider/operations/open_file.h
index 89722451..6cdd09993 100644
--- a/chrome/browser/ash/file_system_provider/operations/open_file.h
+++ b/chrome/browser/ash/file_system_provider/operations/open_file.h
@@ -10,9 +10,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/open_file_unittest.cc b/chrome/browser/ash/file_system_provider/operations/open_file_unittest.cc
index 5a60e4dd..51a8d88 100644
--- a/chrome/browser/ash/file_system_provider/operations/open_file_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/open_file_unittest.cc
@@ -12,9 +12,9 @@
 #include "base/files/file.h"
 #include "base/files/file_path.h"
 #include "base/macros.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/operation.cc b/chrome/browser/ash/file_system_provider/operations/operation.cc
index aa567a8..359a6c0 100644
--- a/chrome/browser/ash/file_system_provider/operations/operation.cc
+++ b/chrome/browser/ash/file_system_provider/operations/operation.cc
@@ -7,7 +7,7 @@
 #include <utility>
 
 #include "base/bind.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "extensions/browser/event_router.h"
 #include "extensions/common/extension_id.h"
 
diff --git a/chrome/browser/ash/file_system_provider/operations/operation.h b/chrome/browser/ash/file_system_provider/operations/operation.h
index d56c8ca..43872e8e 100644
--- a/chrome/browser/ash/file_system_provider/operations/operation.h
+++ b/chrome/browser/ash/file_system_provider/operations/operation.h
@@ -10,8 +10,8 @@
 
 #include "base/files/file.h"
 #include "base/macros.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/request_manager.h"
 #include "extensions/browser/extension_event_histogram_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
diff --git a/chrome/browser/ash/file_system_provider/operations/read_directory.h b/chrome/browser/ash/file_system_provider/operations/read_directory.h
index ab5bdb4..c119e96 100644
--- a/chrome/browser/ash/file_system_provider/operations/read_directory.h
+++ b/chrome/browser/ash/file_system_provider/operations/read_directory.h
@@ -10,8 +10,8 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/read_directory_unittest.cc b/chrome/browser/ash/file_system_provider/operations/read_directory_unittest.cc
index 89e7186b..68b96b9 100644
--- a/chrome/browser/ash/file_system_provider/operations/read_directory_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/read_directory_unittest.cc
@@ -15,9 +15,9 @@
 #include "base/json/json_reader.h"
 #include "base/macros.h"
 #include "base/values.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/get_metadata.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/read_file.h b/chrome/browser/ash/file_system_provider/operations/read_file.h
index b6e5b41..d211ef9 100644
--- a/chrome/browser/ash/file_system_provider/operations/read_file.h
+++ b/chrome/browser/ash/file_system_provider/operations/read_file.h
@@ -13,9 +13,9 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "net/base/io_buffer.h"
 #include "storage/browser/file_system/async_file_util.h"
 
diff --git a/chrome/browser/ash/file_system_provider/operations/read_file_unittest.cc b/chrome/browser/ash/file_system_provider/operations/read_file_unittest.cc
index 1d5ecc8..0186f458 100644
--- a/chrome/browser/ash/file_system_provider/operations/read_file_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/read_file_unittest.cc
@@ -15,8 +15,8 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/values.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/remove_watcher.h b/chrome/browser/ash/file_system_provider/operations/remove_watcher.h
index f0d399fe..11697c4d 100644
--- a/chrome/browser/ash/file_system_provider/operations/remove_watcher.h
+++ b/chrome/browser/ash/file_system_provider/operations/remove_watcher.h
@@ -10,9 +10,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/remove_watcher_unittest.cc b/chrome/browser/ash/file_system_provider/operations/remove_watcher_unittest.cc
index 3c37fc4..e7ce7b30 100644
--- a/chrome/browser/ash/file_system_provider/operations/remove_watcher_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/remove_watcher_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/truncate.h b/chrome/browser/ash/file_system_provider/operations/truncate.h
index 9b339031..cd7448a 100644
--- a/chrome/browser/ash/file_system_provider/operations/truncate.h
+++ b/chrome/browser/ash/file_system_provider/operations/truncate.h
@@ -12,9 +12,9 @@
 #include "base/files/file.h"
 #include "base/macros.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace base {
diff --git a/chrome/browser/ash/file_system_provider/operations/truncate_unittest.cc b/chrome/browser/ash/file_system_provider/operations/truncate_unittest.cc
index 639ee35..d0edf4f 100644
--- a/chrome/browser/ash/file_system_provider/operations/truncate_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/truncate_unittest.cc
@@ -13,9 +13,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/unmount_unittest.cc b/chrome/browser/ash/file_system_provider/operations/unmount_unittest.cc
index 896f36f..71fb5c4 100644
--- a/chrome/browser/ash/file_system_provider/operations/unmount_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/unmount_unittest.cc
@@ -11,9 +11,9 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/files/file_path.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/ash/file_system_provider/operations/write_file.h b/chrome/browser/ash/file_system_provider/operations/write_file.h
index c868b2a..e19a9599 100644
--- a/chrome/browser/ash/file_system_provider/operations/write_file.h
+++ b/chrome/browser/ash/file_system_provider/operations/write_file.h
@@ -13,9 +13,9 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "chrome/browser/ash/file_system_provider/operations/operation.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "net/base/io_buffer.h"
 #include "storage/browser/file_system/async_file_util.h"
 
diff --git a/chrome/browser/ash/file_system_provider/operations/write_file_unittest.cc b/chrome/browser/ash/file_system_provider/operations/write_file_unittest.cc
index dc195bc..dec6c3c 100644
--- a/chrome/browser/ash/file_system_provider/operations/write_file_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/write_file_unittest.cc
@@ -14,8 +14,8 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/values.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/browser/ash/file_system_provider/operations/test_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system.cc b/chrome/browser/ash/file_system_provider/provided_file_system.cc
similarity index 99%
rename from chrome/browser/chromeos/file_system_provider/provided_file_system.cc
rename to chrome/browser/ash/file_system_provider/provided_file_system.cc
index 79287d01..1401719 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system.cc
+++ b/chrome/browser/ash/file_system_provider/provided_file_system.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system.h"
 
 #include <memory>
 #include <utility>
@@ -14,6 +14,7 @@
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "base/trace_event/trace_event.h"
+#include "chrome/browser/ash/file_system_provider/notification_manager.h"
 #include "chrome/browser/ash/file_system_provider/operations/abort.h"
 #include "chrome/browser/ash/file_system_provider/operations/add_watcher.h"
 #include "chrome/browser/ash/file_system_provider/operations/close_file.h"
@@ -33,8 +34,7 @@
 #include "chrome/browser/ash/file_system_provider/operations/truncate.h"
 #include "chrome/browser/ash/file_system_provider/operations/unmount.h"
 #include "chrome/browser/ash/file_system_provider/operations/write_file.h"
-#include "chrome/browser/chromeos/file_system_provider/notification_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
+#include "chrome/browser/ash/file_system_provider/request_manager.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "extensions/browser/event_router.h"
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system.h b/chrome/browser/ash/file_system_provider/provided_file_system.h
similarity index 93%
rename from chrome/browser/chromeos/file_system_provider/provided_file_system.h
rename to chrome/browser/ash/file_system_provider/provided_file_system.h
index be5def3..ae9874f7 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system.h
+++ b/chrome/browser/ash/file_system_provider/provided_file_system.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -15,12 +15,12 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h"
-#include "chrome/browser/chromeos/file_system_provider/queue.h"
-#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_observer.h"
+#include "chrome/browser/ash/file_system_provider/queue.h"
+#include "chrome/browser/ash/file_system_provider/request_manager.h"
 #include "storage/browser/file_system/async_file_util.h"
 #include "storage/browser/file_system/watcher_manager.h"
 #include "url/gurl.h"
@@ -258,4 +258,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system_info.cc b/chrome/browser/ash/file_system_provider/provided_file_system_info.cc
similarity index 97%
rename from chrome/browser/chromeos/file_system_provider/provided_file_system_info.cc
rename to chrome/browser/ash/file_system_provider/provided_file_system_info.cc
index e5c8f36d..e8fd9b7b 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system_info.cc
+++ b/chrome/browser/ash/file_system_provider/provided_file_system_info.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 
 #include "base/check_op.h"
 
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system_info.h b/chrome/browser/ash/file_system_provider/provided_file_system_info.h
similarity index 93%
rename from chrome/browser/chromeos/file_system_provider/provided_file_system_info.h
rename to chrome/browser/ash/file_system_provider/provided_file_system_info.h
index adb8523..4e8c06c8 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system_info.h
+++ b/chrome/browser/ash/file_system_provider/provided_file_system_info.h
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INFO_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INFO_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INFO_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INFO_H_
 
 #include <string>
 
 #include "base/files/file_path.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "extensions/common/extension_id.h"
 
@@ -140,4 +140,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INFO_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INFO_H_
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.cc b/chrome/browser/ash/file_system_provider/provided_file_system_interface.cc
similarity index 86%
rename from chrome/browser/chromeos/file_system_provider/provided_file_system_interface.cc
rename to chrome/browser/ash/file_system_provider/provided_file_system_interface.cc
index 4f0fca9..a66dcb9 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.cc
+++ b/chrome/browser/ash/file_system_provider/provided_file_system_interface.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 
 namespace chromeos {
 namespace file_system_provider {
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h b/chrome/browser/ash/file_system_provider/provided_file_system_interface.h
similarity index 95%
rename from chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h
rename to chrome/browser/ash/file_system_provider/provided_file_system_interface.h
index 2f5dd3fe..1e56da4 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h
+++ b/chrome/browser/ash/file_system_provider/provided_file_system_interface.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INTERFACE_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INTERFACE_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INTERFACE_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INTERFACE_H_
 
 #include <stdint.h>
 
@@ -18,9 +18,9 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_observer.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 #include "storage/browser/file_system/async_file_util.h"
 #include "storage/browser/file_system/watcher_manager.h"
 #include "url/gurl.h"
@@ -285,4 +285,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INTERFACE_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INTERFACE_H_
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system_observer.cc b/chrome/browser/ash/file_system_provider/provided_file_system_observer.cc
similarity index 83%
rename from chrome/browser/chromeos/file_system_provider/provided_file_system_observer.cc
rename to chrome/browser/ash/file_system_provider/provided_file_system_observer.cc
index 8e367a1..f53da1f8 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system_observer.cc
+++ b/chrome/browser/ash/file_system_provider/provided_file_system_observer.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_observer.h"
 
 namespace chromeos {
 namespace file_system_provider {
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h b/chrome/browser/ash/file_system_provider/provided_file_system_observer.h
similarity index 85%
rename from chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h
rename to chrome/browser/ash/file_system_provider/provided_file_system_observer.h
index 1a02ae1..c58fdc0 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h
+++ b/chrome/browser/ash/file_system_provider/provided_file_system_observer.h
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_OBSERVER_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_OBSERVER_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_OBSERVER_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_OBSERVER_H_
 
 #include <string>
 #include <vector>
 
 #include "base/callback.h"
 #include "base/files/file_path.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 #include "storage/browser/file_system/watcher_manager.h"
 
 namespace chromeos {
@@ -60,4 +60,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_OBSERVER_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_OBSERVER_H_
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system_unittest.cc b/chrome/browser/ash/file_system_provider/provided_file_system_unittest.cc
similarity index 97%
rename from chrome/browser/chromeos/file_system_provider/provided_file_system_unittest.cc
rename to chrome/browser/ash/file_system_provider/provided_file_system_unittest.cc
index 08dde30..b59e2e0d 100644
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/provided_file_system_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system.h"
 
 #include <memory>
 #include <string>
@@ -17,14 +17,14 @@
 #include "base/run_loop.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/values.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/notification_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h"
-#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/notification_manager.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_observer.h"
+#include "chrome/browser/ash/file_system_provider/request_manager.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/chromeos/file_system_provider/provider_interface.h b/chrome/browser/ash/file_system_provider/provider_interface.h
similarity index 84%
rename from chrome/browser/chromeos/file_system_provider/provider_interface.h
rename to chrome/browser/ash/file_system_provider/provider_interface.h
index a0f33f96..60b62c9 100644
--- a/chrome/browser/chromeos/file_system_provider/provider_interface.h
+++ b/chrome/browser/ash/file_system_provider/provider_interface.h
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDER_INTERFACE_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDER_INTERFACE_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDER_INTERFACE_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDER_INTERFACE_H_
 
 #include <memory>
 #include <string>
 
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 
@@ -76,4 +76,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDER_INTERFACE_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_PROVIDER_INTERFACE_H_
diff --git a/chrome/browser/chromeos/file_system_provider/queue.cc b/chrome/browser/ash/file_system_provider/queue.cc
similarity index 97%
rename from chrome/browser/chromeos/file_system_provider/queue.cc
rename to chrome/browser/ash/file_system_provider/queue.cc
index bb5b1f6..b581794e 100644
--- a/chrome/browser/chromeos/file_system_provider/queue.cc
+++ b/chrome/browser/ash/file_system_provider/queue.cc
@@ -2,7 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/queue.h"
+#include "chrome/browser/ash/file_system_provider/queue.h"
+
 #include "base/bind.h"
 #include "base/check_op.h"
 #include "base/location.h"
diff --git a/chrome/browser/chromeos/file_system_provider/queue.h b/chrome/browser/ash/file_system_provider/queue.h
similarity index 91%
rename from chrome/browser/chromeos/file_system_provider/queue.h
rename to chrome/browser/ash/file_system_provider/queue.h
index 8890815..a76df97 100644
--- a/chrome/browser/chromeos/file_system_provider/queue.h
+++ b/chrome/browser/ash/file_system_provider/queue.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_QUEUE_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_QUEUE_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_QUEUE_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_QUEUE_H_
 
 #include <stddef.h>
 
@@ -14,7 +14,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
 #include "storage/browser/file_system/async_file_util.h"
 
 namespace chromeos {
@@ -94,4 +94,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_QUEUE_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_QUEUE_H_
diff --git a/chrome/browser/chromeos/file_system_provider/queue_unittest.cc b/chrome/browser/ash/file_system_provider/queue_unittest.cc
similarity index 98%
rename from chrome/browser/chromeos/file_system_provider/queue_unittest.cc
rename to chrome/browser/ash/file_system_provider/queue_unittest.cc
index 23ea0d0..4264f31 100644
--- a/chrome/browser/chromeos/file_system_provider/queue_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/queue_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/queue.h"
+#include "chrome/browser/ash/file_system_provider/queue.h"
 
 #include <stddef.h>
 
diff --git a/chrome/browser/chromeos/file_system_provider/registry.cc b/chrome/browser/ash/file_system_provider/registry.cc
similarity index 96%
rename from chrome/browser/chromeos/file_system_provider/registry.cc
rename to chrome/browser/ash/file_system_provider/registry.cc
index bf5a6f5c..c6d6bb0f 100644
--- a/chrome/browser/chromeos/file_system_provider/registry.cc
+++ b/chrome/browser/ash/file_system_provider/registry.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/registry.h"
+#include "chrome/browser/ash/file_system_provider/registry.h"
 
 #include <utility>
 
@@ -10,11 +10,11 @@
 #include "base/memory/ptr_util.h"
 #include "base/stl_util.h"
 #include "base/values.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/observer.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/observer.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/pref_names.h"
 #include "components/pref_registry/pref_registry_syncable.h"
diff --git a/chrome/browser/chromeos/file_system_provider/registry.h b/chrome/browser/ash/file_system_provider/registry.h
similarity index 84%
rename from chrome/browser/chromeos/file_system_provider/registry.h
rename to chrome/browser/ash/file_system_provider/registry.h
index d9bcf9b..e87feb2d 100644
--- a/chrome/browser/chromeos/file_system_provider/registry.h
+++ b/chrome/browser/ash/file_system_provider/registry.h
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REGISTRY_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REGISTRY_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REGISTRY_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REGISTRY_H_
 
 #include <memory>
 #include <string>
 
 #include "base/macros.h"
-#include "chrome/browser/chromeos/file_system_provider/registry_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/registry_interface.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 
 class Profile;
 
@@ -62,4 +62,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REGISTRY_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REGISTRY_H_
diff --git a/chrome/browser/chromeos/file_system_provider/registry_interface.cc b/chrome/browser/ash/file_system_provider/registry_interface.cc
similarity index 87%
rename from chrome/browser/chromeos/file_system_provider/registry_interface.cc
rename to chrome/browser/ash/file_system_provider/registry_interface.cc
index b5b3f2fd..6262992 100644
--- a/chrome/browser/chromeos/file_system_provider/registry_interface.cc
+++ b/chrome/browser/ash/file_system_provider/registry_interface.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/registry_interface.h"
+#include "chrome/browser/ash/file_system_provider/registry_interface.h"
 
 namespace chromeos {
 namespace file_system_provider {
diff --git a/chrome/browser/chromeos/file_system_provider/registry_interface.h b/chrome/browser/ash/file_system_provider/registry_interface.h
similarity index 82%
rename from chrome/browser/chromeos/file_system_provider/registry_interface.h
rename to chrome/browser/ash/file_system_provider/registry_interface.h
index d286dd63..7af41be1 100644
--- a/chrome/browser/chromeos/file_system_provider/registry_interface.h
+++ b/chrome/browser/ash/file_system_provider/registry_interface.h
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REGISTRY_INTERFACE_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REGISTRY_INTERFACE_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REGISTRY_INTERFACE_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REGISTRY_INTERFACE_H_
 
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 
 namespace chromeos {
 namespace file_system_provider {
@@ -61,4 +61,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REGISTRY_INTERFACE_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REGISTRY_INTERFACE_H_
diff --git a/chrome/browser/chromeos/file_system_provider/registry_unittest.cc b/chrome/browser/ash/file_system_provider/registry_unittest.cc
similarity index 98%
rename from chrome/browser/chromeos/file_system_provider/registry_unittest.cc
rename to chrome/browser/ash/file_system_provider/registry_unittest.cc
index d2a4eb0..bab92b6 100644
--- a/chrome/browser/chromeos/file_system_provider/registry_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/registry_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/registry.h"
+#include "chrome/browser/ash/file_system_provider/registry.h"
 
 #include <memory>
 #include <string>
@@ -10,8 +10,8 @@
 #include <vector>
 
 #include "base/files/file_path.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/testing_browser_process.h"
diff --git a/chrome/browser/chromeos/file_system_provider/request_manager.cc b/chrome/browser/ash/file_system_provider/request_manager.cc
similarity index 98%
rename from chrome/browser/chromeos/file_system_provider/request_manager.cc
rename to chrome/browser/ash/file_system_provider/request_manager.cc
index c37f9e9..c8f62db 100644
--- a/chrome/browser/chromeos/file_system_provider/request_manager.cc
+++ b/chrome/browser/ash/file_system_provider/request_manager.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
+#include "chrome/browser/ash/file_system_provider/request_manager.h"
 
 #include <utility>
 
diff --git a/chrome/browser/chromeos/file_system_provider/request_manager.h b/chrome/browser/ash/file_system_provider/request_manager.h
similarity index 94%
rename from chrome/browser/chromeos/file_system_provider/request_manager.h
rename to chrome/browser/ash/file_system_provider/request_manager.h
index 42c5f95..fc96b74 100644
--- a/chrome/browser/chromeos/file_system_provider/request_manager.h
+++ b/chrome/browser/ash/file_system_provider/request_manager.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REQUEST_MANAGER_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REQUEST_MANAGER_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REQUEST_MANAGER_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REQUEST_MANAGER_H_
 
 #include <map>
 #include <memory>
@@ -17,8 +17,8 @@
 #include "base/observer_list.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
-#include "chrome/browser/chromeos/file_system_provider/notification_manager_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/notification_manager_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 
 class Profile;
 
@@ -194,4 +194,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REQUEST_MANAGER_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REQUEST_MANAGER_H_
diff --git a/chrome/browser/chromeos/file_system_provider/request_manager_unittest.cc b/chrome/browser/ash/file_system_provider/request_manager_unittest.cc
similarity index 98%
rename from chrome/browser/chromeos/file_system_provider/request_manager_unittest.cc
rename to chrome/browser/ash/file_system_provider/request_manager_unittest.cc
index 5469ae8..c31d592 100644
--- a/chrome/browser/chromeos/file_system_provider/request_manager_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/request_manager_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
+#include "chrome/browser/ash/file_system_provider/request_manager.h"
 
 #include <stddef.h>
 
@@ -20,8 +20,8 @@
 #include "base/memory/ptr_util.h"
 #include "base/memory/weak_ptr.h"
 #include "base/run_loop.h"
-#include "chrome/browser/chromeos/file_system_provider/notification_manager_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/notification_manager_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 #include "chrome/test/base/testing_profile.h"
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/chromeos/file_system_provider/request_value.cc b/chrome/browser/ash/file_system_provider/request_value.cc
similarity index 97%
rename from chrome/browser/chromeos/file_system_provider/request_value.cc
rename to chrome/browser/ash/file_system_provider/request_value.cc
index 8af49b8..54aadcc 100644
--- a/chrome/browser/chromeos/file_system_provider/request_value.cc
+++ b/chrome/browser/ash/file_system_provider/request_value.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
 
 #include <memory>
 #include <utility>
diff --git a/chrome/browser/chromeos/file_system_provider/request_value.h b/chrome/browser/ash/file_system_provider/request_value.h
similarity index 95%
rename from chrome/browser/chromeos/file_system_provider/request_value.h
rename to chrome/browser/ash/file_system_provider/request_value.h
index d5f4382f..753919d 100644
--- a/chrome/browser/chromeos/file_system_provider/request_value.h
+++ b/chrome/browser/ash/file_system_provider/request_value.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REQUEST_VALUE_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REQUEST_VALUE_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REQUEST_VALUE_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REQUEST_VALUE_H_
 
 #include <memory>
 #include <string>
@@ -130,4 +130,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_REQUEST_VALUE_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_REQUEST_VALUE_H_
diff --git a/chrome/browser/chromeos/file_system_provider/scoped_file_opener.cc b/chrome/browser/ash/file_system_provider/scoped_file_opener.cc
similarity index 96%
rename from chrome/browser/chromeos/file_system_provider/scoped_file_opener.cc
rename to chrome/browser/ash/file_system_provider/scoped_file_opener.cc
index d3885090..4528bd4d 100644
--- a/chrome/browser/chromeos/file_system_provider/scoped_file_opener.cc
+++ b/chrome/browser/ash/file_system_provider/scoped_file_opener.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/scoped_file_opener.h"
+#include "chrome/browser/ash/file_system_provider/scoped_file_opener.h"
 
 #include "base/bind.h"
 #include "base/memory/weak_ptr.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
 
 namespace chromeos {
 namespace file_system_provider {
diff --git a/chrome/browser/chromeos/file_system_provider/scoped_file_opener.h b/chrome/browser/ash/file_system_provider/scoped_file_opener.h
similarity index 75%
rename from chrome/browser/chromeos/file_system_provider/scoped_file_opener.h
rename to chrome/browser/ash/file_system_provider/scoped_file_opener.h
index 22415e1..a0f5886 100644
--- a/chrome/browser/chromeos/file_system_provider/scoped_file_opener.h
+++ b/chrome/browser/ash/file_system_provider/scoped_file_opener.h
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_SCOPED_FILE_OPENER_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_SCOPED_FILE_OPENER_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_SCOPED_FILE_OPENER_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_SCOPED_FILE_OPENER_H_
 
 #include "base/memory/ref_counted.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 
 namespace base {
 class FilePath;
@@ -35,4 +35,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_SCOPED_FILE_OPENER_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_SCOPED_FILE_OPENER_H_
diff --git a/chrome/browser/chromeos/file_system_provider/scoped_file_opener_unittest.cc b/chrome/browser/ash/file_system_provider/scoped_file_opener_unittest.cc
similarity index 94%
rename from chrome/browser/chromeos/file_system_provider/scoped_file_opener_unittest.cc
rename to chrome/browser/ash/file_system_provider/scoped_file_opener_unittest.cc
index 9cbe6f7f..0c957f5 100644
--- a/chrome/browser/chromeos/file_system_provider/scoped_file_opener_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/scoped_file_opener_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/scoped_file_opener.h"
+#include "chrome/browser/ash/file_system_provider/scoped_file_opener.h"
 
 #include <memory>
 #include <vector>
@@ -12,8 +12,8 @@
 #include "base/run_loop.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/threading/thread_task_runner_handle.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/chrome/browser/chromeos/file_system_provider/service.cc b/chrome/browser/ash/file_system_provider/service.cc
similarity index 95%
rename from chrome/browser/chromeos/file_system_provider/service.cc
rename to chrome/browser/ash/file_system_provider/service.cc
index c47783b..b47df1d 100644
--- a/chrome/browser/chromeos/file_system_provider/service.cc
+++ b/chrome/browser/ash/file_system_provider/service.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 
 #include <stddef.h>
 
@@ -11,14 +11,14 @@
 #include "base/bind.h"
 #include "base/files/file_path.h"
 #include "base/values.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/observer.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/provider_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/registry.h"
-#include "chrome/browser/chromeos/file_system_provider/registry_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
-#include "chrome/browser/chromeos/file_system_provider/throttled_file_system.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/observer.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/provider_interface.h"
+#include "chrome/browser/ash/file_system_provider/registry.h"
+#include "chrome/browser/ash/file_system_provider/registry_interface.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
+#include "chrome/browser/ash/file_system_provider/throttled_file_system.h"
 #include "components/prefs/pref_service.h"
 #include "components/prefs/scoped_user_pref_update.h"
 #include "extensions/browser/extension_registry.h"
diff --git a/chrome/browser/chromeos/file_system_provider/service.h b/chrome/browser/ash/file_system_provider/service.h
similarity index 92%
rename from chrome/browser/chromeos/file_system_provider/service.h
rename to chrome/browser/ash/file_system_provider/service.h
index bb99dd5..7431e22 100644
--- a/chrome/browser/chromeos/file_system_provider/service.h
+++ b/chrome/browser/ash/file_system_provider/service.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_SERVICE_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_SERVICE_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_SERVICE_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_SERVICE_H_
 
 #include <map>
 #include <memory>
@@ -17,13 +17,13 @@
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "base/threading/thread_checker.h"
-#include "chrome/browser/chromeos/file_system_provider/extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/observer.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h"
-#include "chrome/browser/chromeos/file_system_provider/provider_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/observer.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_observer.h"
+#include "chrome/browser/ash/file_system_provider/provider_interface.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
@@ -215,4 +215,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_SERVICE_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_SERVICE_H_
diff --git a/chrome/browser/chromeos/file_system_provider/service_factory.cc b/chrome/browser/ash/file_system_provider/service_factory.cc
similarity index 93%
rename from chrome/browser/chromeos/file_system_provider/service_factory.cc
rename to chrome/browser/ash/file_system_provider/service_factory.cc
index 392e4ab26..daefbde 100644
--- a/chrome/browser/chromeos/file_system_provider/service_factory.cc
+++ b/chrome/browser/ash/file_system_provider/service_factory.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 
-#include "chrome/browser/chromeos/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/extensions/extension_system_factory.h"
 #include "chrome/browser/notifications/notification_display_service_factory.h"
 #include "chrome/browser/profiles/incognito_helpers.h"
diff --git a/chrome/browser/chromeos/file_system_provider/service_factory.h b/chrome/browser/ash/file_system_provider/service_factory.h
similarity index 86%
rename from chrome/browser/chromeos/file_system_provider/service_factory.h
rename to chrome/browser/ash/file_system_provider/service_factory.h
index 665684ad..ee2cd58 100644
--- a/chrome/browser/chromeos/file_system_provider/service_factory.h
+++ b/chrome/browser/ash/file_system_provider/service_factory.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_SERVICE_FACTORY_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_SERVICE_FACTORY_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_SERVICE_FACTORY_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_SERVICE_FACTORY_H_
 
 #include "base/macros.h"
 #include "base/memory/singleton.h"
@@ -47,4 +47,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_SERVICE_FACTORY_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_SERVICE_FACTORY_H_
diff --git a/chrome/browser/chromeos/file_system_provider/service_unittest.cc b/chrome/browser/ash/file_system_provider/service_unittest.cc
similarity index 95%
rename from chrome/browser/chromeos/file_system_provider/service_unittest.cc
rename to chrome/browser/ash/file_system_provider/service_unittest.cc
index 89781a6..ddb9ad1 100644
--- a/chrome/browser/chromeos/file_system_provider/service_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/service_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 
 #include <stddef.h>
 
@@ -15,16 +15,16 @@
 #include "base/memory/ptr_util.h"
 #include "base/memory/ref_counted.h"
 #include "base/strings/string_number_conversions.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/fake_registry.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/logging_observer.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/observer.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/registry_interface.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_registry.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/logging_observer.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/observer.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/registry_interface.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
diff --git a/chrome/browser/chromeos/file_system_provider/throttled_file_system.cc b/chrome/browser/ash/file_system_provider/throttled_file_system.cc
similarity index 98%
rename from chrome/browser/chromeos/file_system_provider/throttled_file_system.cc
rename to chrome/browser/ash/file_system_provider/throttled_file_system.cc
index 2581537b..03f78a6 100644
--- a/chrome/browser/chromeos/file_system_provider/throttled_file_system.cc
+++ b/chrome/browser/ash/file_system_provider/throttled_file_system.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/throttled_file_system.h"
+#include "chrome/browser/ash/file_system_provider/throttled_file_system.h"
 
 #include <stddef.h>
 
@@ -12,7 +12,7 @@
 
 #include "base/bind.h"
 #include "base/files/file.h"
-#include "chrome/browser/chromeos/file_system_provider/queue.h"
+#include "chrome/browser/ash/file_system_provider/queue.h"
 
 namespace chromeos {
 namespace file_system_provider {
diff --git a/chrome/browser/chromeos/file_system_provider/throttled_file_system.h b/chrome/browser/ash/file_system_provider/throttled_file_system.h
similarity index 89%
rename from chrome/browser/chromeos/file_system_provider/throttled_file_system.h
rename to chrome/browser/ash/file_system_provider/throttled_file_system.h
index e83c377..0b818aa2 100644
--- a/chrome/browser/chromeos/file_system_provider/throttled_file_system.h
+++ b/chrome/browser/ash/file_system_provider/throttled_file_system.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_THROTTLED_FILE_SYSTEM_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_THROTTLED_FILE_SYSTEM_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_THROTTLED_FILE_SYSTEM_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_THROTTLED_FILE_SYSTEM_H_
 
 #include <stdint.h>
 
@@ -14,11 +14,11 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_observer.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_observer.h"
 #include "storage/browser/file_system/async_file_util.h"
 #include "storage/browser/file_system/watcher_manager.h"
 #include "url/gurl.h"
@@ -153,4 +153,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_THROTTLED_FILE_SYSTEM_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_THROTTLED_FILE_SYSTEM_H_
diff --git a/chrome/browser/chromeos/file_system_provider/throttled_file_system_unittest.cc b/chrome/browser/ash/file_system_provider/throttled_file_system_unittest.cc
similarity index 93%
rename from chrome/browser/chromeos/file_system_provider/throttled_file_system_unittest.cc
rename to chrome/browser/ash/file_system_provider/throttled_file_system_unittest.cc
index 3cb4f8e..1c3e9f0f 100644
--- a/chrome/browser/chromeos/file_system_provider/throttled_file_system_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/throttled_file_system_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/throttled_file_system.h"
+#include "chrome/browser/ash/file_system_provider/throttled_file_system.h"
 
 #include <stddef.h>
 
@@ -12,10 +12,10 @@
 #include "base/bind.h"
 #include "base/files/file.h"
 #include "base/run_loop.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "chrome/common/extensions/api/file_system_provider_capabilities/file_system_provider_capabilities_handler.h"
 #include "content/public/test/browser_task_environment.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/chromeos/file_system_provider/watcher.cc b/chrome/browser/ash/file_system_provider/watcher.cc
similarity index 93%
rename from chrome/browser/chromeos/file_system_provider/watcher.cc
rename to chrome/browser/ash/file_system_provider/watcher.cc
index f2ae1288..efa338ac 100644
--- a/chrome/browser/chromeos/file_system_provider/watcher.cc
+++ b/chrome/browser/ash/file_system_provider/watcher.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 
 namespace chromeos {
 namespace file_system_provider {
diff --git a/chrome/browser/chromeos/file_system_provider/watcher.h b/chrome/browser/ash/file_system_provider/watcher.h
similarity index 91%
rename from chrome/browser/chromeos/file_system_provider/watcher.h
rename to chrome/browser/ash/file_system_provider/watcher.h
index 80520f1..919eb58 100644
--- a/chrome/browser/chromeos/file_system_provider/watcher.h
+++ b/chrome/browser/ash/file_system_provider/watcher.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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_WATCHER_H_
-#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_WATCHER_H_
+#ifndef CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_WATCHER_H_
+#define CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_WATCHER_H_
 
 #include <map>
 #include <set>
@@ -83,4 +83,4 @@
 }  // namespace file_system_provider
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_WATCHER_H_
+#endif  // CHROME_BROWSER_ASH_FILE_SYSTEM_PROVIDER_WATCHER_H_
diff --git a/chrome/browser/ash/guest_os/guest_os_share_path_unittest.cc b/chrome/browser/ash/guest_os/guest_os_share_path_unittest.cc
index 7a5114f..9a92806 100644
--- a/chrome/browser/ash/guest_os/guest_os_share_path_unittest.cc
+++ b/chrome/browser/ash/guest_os/guest_os_share_path_unittest.cc
@@ -14,13 +14,13 @@
 #include "chrome/browser/ash/crostini/crostini_manager.h"
 #include "chrome/browser/ash/crostini/crostini_pref_names.h"
 #include "chrome/browser/ash/crostini/crostini_util.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/browser/ash/guest_os/guest_os_pref_names.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
 #include "chrome/browser/chromeos/file_manager/fake_disk_mount_manager.h"
 #include "chrome/browser/chromeos/file_manager/path_util.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager_factory.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
 #include "chrome/browser/component_updater/fake_cros_component_manager.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/test/base/browser_process_platform_part_test_api_chromeos.h"
@@ -28,10 +28,10 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/dlcservice/dlcservice_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/fake_seneschal_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/dbus/seneschal/seneschal_service.pb.h"
diff --git a/chrome/browser/ash/guest_os/guest_os_stability_monitor.h b/chrome/browser/ash/guest_os/guest_os_stability_monitor.h
index 3ce9590d..eced66d5 100644
--- a/chrome/browser/ash/guest_os/guest_os_stability_monitor.h
+++ b/chrome/browser/ash/guest_os/guest_os_stability_monitor.h
@@ -9,7 +9,7 @@
 #include "base/scoped_observation.h"
 #include "chromeos/dbus/chunneld_client.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 
 namespace guest_os {
diff --git a/chrome/browser/ash/guest_os/guest_os_stability_monitor_unittest.cc b/chrome/browser/ash/guest_os/guest_os_stability_monitor_unittest.cc
index 6bbb64e..4fca3eb8 100644
--- a/chrome/browser/ash/guest_os/guest_os_stability_monitor_unittest.cc
+++ b/chrome/browser/ash/guest_os/guest_os_stability_monitor_unittest.cc
@@ -16,10 +16,10 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_chunneld_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/fake_seneschal_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/ash/lock_screen_apps/app_manager_impl_unittest.cc b/chrome/browser/ash/lock_screen_apps/app_manager_impl_unittest.cc
index 191d1fe..61c8492 100644
--- a/chrome/browser/ash/lock_screen_apps/app_manager_impl_unittest.cc
+++ b/chrome/browser/ash/lock_screen_apps/app_manager_impl_unittest.cc
@@ -31,7 +31,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/arc/arc_service_manager.h"
 #include "components/arc/session/arc_session.h"
diff --git a/chrome/browser/ash/lock_screen_apps/lock_screen_profile_creator_impl_unittest.cc b/chrome/browser/ash/lock_screen_apps/lock_screen_profile_creator_impl_unittest.cc
index 0a3f34f..d7e784a 100644
--- a/chrome/browser/ash/lock_screen_apps/lock_screen_profile_creator_impl_unittest.cc
+++ b/chrome/browser/ash/lock_screen_apps/lock_screen_profile_creator_impl_unittest.cc
@@ -31,7 +31,7 @@
 #include "chrome/test/base/scoped_testing_local_state.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/arc/arc_service_manager.h"
 #include "components/arc/session/arc_session.h"
diff --git a/chrome/browser/ash/lock_screen_apps/state_controller_unittest.cc b/chrome/browser/ash/lock_screen_apps/state_controller_unittest.cc
index eca3d68..bf10bbf7 100644
--- a/chrome/browser/ash/lock_screen_apps/state_controller_unittest.cc
+++ b/chrome/browser/ash/lock_screen_apps/state_controller_unittest.cc
@@ -37,7 +37,7 @@
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/power/fake_power_manager_client.h"
 #include "chromeos/dbus/power_manager/suspend.pb.h"
diff --git a/chrome/browser/ash/login/demo_mode/demo_mode_test_helper.cc b/chrome/browser/ash/login/demo_mode/demo_mode_test_helper.cc
index ae8d7d37..255e088 100644
--- a/chrome/browser/ash/login/demo_mode/demo_mode_test_helper.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_mode_test_helper.cc
@@ -17,7 +17,7 @@
 #include "chrome/browser/browser_process_platform_part.h"
 #include "chrome/browser/component_updater/fake_cros_component_manager.h"
 #include "chrome/test/base/testing_browser_process.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 
 namespace ash {
diff --git a/chrome/browser/ash/login/demo_mode/demo_session_unittest.cc b/chrome/browser/ash/login/demo_mode/demo_session_unittest.cc
index 9375918..ff24533 100644
--- a/chrome/browser/ash/login/demo_mode/demo_session_unittest.cc
+++ b/chrome/browser/ash/login/demo_mode/demo_session_unittest.cc
@@ -32,7 +32,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/language/core/browser/pref_names.h"
 #include "components/session_manager/core/session_manager.h"
diff --git a/chrome/browser/ash/login/lock/screen_locker_unittest.cc b/chrome/browser/ash/login/lock/screen_locker_unittest.cc
index 40140b1..7a6ac01 100644
--- a/chrome/browser/ash/login/lock/screen_locker_unittest.cc
+++ b/chrome/browser/ash/login/lock/screen_locker_unittest.cc
@@ -34,7 +34,7 @@
 #include "chromeos/cryptohome/system_salt_getter.h"
 #include "chromeos/dbus/audio/cras_audio_client.h"
 #include "chromeos/dbus/biod/biod_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/tpm_manager/tpm_manager_client.h"
 #include "chromeos/dbus/userdataauth/cryptohome_misc_client.h"
diff --git a/chrome/browser/ash/login/session/user_session_initializer.cc b/chrome/browser/ash/login/session/user_session_initializer.cc
index 0c633f9..6900538 100644
--- a/chrome/browser/ash/login/session/user_session_initializer.cc
+++ b/chrome/browser/ash/login/session/user_session_initializer.cc
@@ -108,7 +108,13 @@
   user_manager::User* user = ProfileHelper::Get()->GetUserByProfile(profile);
 
   if (user_manager::UserManager::Get()->GetPrimaryUser() == user) {
-    DCHECK_EQ(primary_profile_, nullptr);
+    // TODO(https://crbug.com/1208416): Investigate why OnUserProfileLoaded
+    // is called more than once.
+    if (primary_profile_ != nullptr) {
+      NOTREACHED();
+      CHECK_EQ(primary_profile_, profile);
+      return;
+    }
     primary_profile_ = profile;
 
     InitRlz(profile);
diff --git a/chrome/browser/ash/login/users/user_manager_unittest.cc b/chrome/browser/ash/login/users/user_manager_unittest.cc
index ec306b2..b093e461 100644
--- a/chrome/browser/ash/login/users/user_manager_unittest.cc
+++ b/chrome/browser/ash/login/users/user_manager_unittest.cc
@@ -25,7 +25,7 @@
 #include "chrome/test/base/scoped_testing_local_state.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chromeos/cryptohome/system_salt_getter.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/settings/cros_settings_names.h"
 #include "components/prefs/pref_service.h"
diff --git a/chrome/browser/ash/notifications/gnubby_notification_unittest.cc b/chrome/browser/ash/notifications/gnubby_notification_unittest.cc
index 961f1542..1737ffc 100644
--- a/chrome/browser/ash/notifications/gnubby_notification_unittest.cc
+++ b/chrome/browser/ash/notifications/gnubby_notification_unittest.cc
@@ -9,7 +9,7 @@
 #include "chrome/grit/generated_resources.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "chrome/test/base/testing_browser_process.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_gnubby_client.h"
 #include "ui/base/l10n/l10n_util.h"
diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_diagnostics.cc b/chrome/browser/ash/plugin_vm/plugin_vm_diagnostics.cc
index 8fa98485..699d3080d 100644
--- a/chrome/browser/ash/plugin_vm/plugin_vm_diagnostics.cc
+++ b/chrome/browser/ash/plugin_vm/plugin_vm_diagnostics.cc
@@ -18,8 +18,8 @@
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
 #include "components/prefs/pref_service.h"
 #include "third_party/protobuf/src/google/protobuf/repeated_field.h"
 
diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_files_unittest.cc b/chrome/browser/ash/plugin_vm/plugin_vm_files_unittest.cc
index 8a8528f..fa5a06fd 100644
--- a/chrome/browser/ash/plugin_vm/plugin_vm_files_unittest.cc
+++ b/chrome/browser/ash/plugin_vm/plugin_vm_files_unittest.cc
@@ -24,7 +24,7 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/dbus/vm_applications/apps.pb.h"
diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_installer.h b/chrome/browser/ash/plugin_vm/plugin_vm_installer.h
index 049ef3c..3e1f0f58d 100644
--- a/chrome/browser/ash/plugin_vm/plugin_vm_installer.h
+++ b/chrome/browser/ash/plugin_vm/plugin_vm_installer.h
@@ -11,8 +11,8 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "chrome/browser/ash/plugin_vm/plugin_vm_license_checker.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
 #include "chromeos/dbus/dlcservice/dlcservice_client.h"
 #include "components/download/public/background_service/download_params.h"
 #include "components/keyed_service/core/keyed_service.h"
diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_installer_unittest.cc b/chrome/browser/ash/plugin_vm/plugin_vm_installer_unittest.cc
index f349992..787b324 100644
--- a/chrome/browser/ash/plugin_vm/plugin_vm_installer_unittest.cc
+++ b/chrome/browser/ash/plugin_vm/plugin_vm_installer_unittest.cc
@@ -27,10 +27,10 @@
 #include "chrome/browser/ash/settings/scoped_cros_settings_test_helper.h"
 #include "chrome/browser/prefs/browser_prefs.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/dlcservice/fake_dlcservice_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "components/account_id/account_id.h"
 #include "components/download/public/background_service/test/test_download_service.h"
 #include "components/drive/service/dummy_drive_service.h"
diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_manager_impl_unittest.cc b/chrome/browser/ash/plugin_vm/plugin_vm_manager_impl_unittest.cc
index 2b53cb4..7358311 100644
--- a/chrome/browser/ash/plugin_vm/plugin_vm_manager_impl_unittest.cc
+++ b/chrome/browser/ash/plugin_vm/plugin_vm_manager_impl_unittest.cc
@@ -24,10 +24,10 @@
 #include "chrome/browser/ui/ash/shelf/shelf_spinner_controller.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/dlcservice/fake_dlcservice_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/fake_vm_plugin_dispatcher_client.h"
 #include "chromeos/dbus/seneschal/fake_seneschal_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
@@ -70,6 +70,7 @@
   }
 
   ~PluginVmManagerImplTest() override {
+    chromeos::DlcserviceClient::Shutdown();
     histogram_tester_.reset();
     chrome_shelf_controller_.reset();
     shelf_model_.reset();
@@ -80,8 +81,6 @@
     chromeos::ConciergeClient::Shutdown();
     chromeos::CiceroneClient::Shutdown();
     chromeos::DBusThreadManager::Shutdown();
-    // TODO(yusukes): Fix the shutdown order.
-    chromeos::DlcserviceClient::Shutdown();
   }
 
  protected:
diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_test_helper.h b/chrome/browser/ash/plugin_vm/plugin_vm_test_helper.h
index 07021236..fa5ab167 100644
--- a/chrome/browser/ash/plugin_vm/plugin_vm_test_helper.h
+++ b/chrome/browser/ash/plugin_vm/plugin_vm_test_helper.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_ASH_PLUGIN_VM_PLUGIN_VM_TEST_HELPER_H_
 
 #include "base/test/scoped_feature_list.h"
-#include "chromeos/dbus/fake_concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 
 class TestingProfile;
 
diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_util_unittest.cc b/chrome/browser/ash/plugin_vm/plugin_vm_util_unittest.cc
index bda63b7..bfaf1cd85 100644
--- a/chrome/browser/ash/plugin_vm/plugin_vm_util_unittest.cc
+++ b/chrome/browser/ash/plugin_vm/plugin_vm_util_unittest.cc
@@ -10,7 +10,7 @@
 #include "chrome/browser/ash/settings/cros_settings.h"
 #include "chrome/browser/ash/settings/scoped_cros_settings_test_helper.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/tpm/stub_install_attributes.h"
 #include "components/prefs/pref_service.h"
diff --git a/chrome/browser/ash/settings/device_settings_test_helper.cc b/chrome/browser/ash/settings/device_settings_test_helper.cc
index 0a57fd5..27a4b6e 100644
--- a/chrome/browser/ash/settings/device_settings_test_helper.cc
+++ b/chrome/browser/ash/settings/device_settings_test_helper.cc
@@ -14,7 +14,7 @@
 #include "chrome/browser/ash/settings/device_settings_service.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/cryptohome/cryptohome_parameters.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/power/fake_power_manager_client.h"
 #include "chromeos/dbus/tpm_manager/tpm_manager_client.h"
diff --git a/chrome/browser/ash/system_logs/single_log_file_log_source_unittest.cc b/chrome/browser/ash/system_logs/single_log_file_log_source_unittest.cc
index 51eb151..418b0647 100644
--- a/chrome/browser/ash/system_logs/single_log_file_log_source_unittest.cc
+++ b/chrome/browser/ash/system_logs/single_log_file_log_source_unittest.cc
@@ -71,8 +71,7 @@
   }
   bool AppendToFile(const base::FilePath& relative_path,
                     const std::string& input) {
-    return base::AppendToFile(log_dir_.GetPath().Append(relative_path),
-                              input.data(), input.size());
+    return base::AppendToFile(log_dir_.GetPath().Append(relative_path), input);
   }
 
   // Moves source file to destination path, then creates an empty file at the
diff --git a/chrome/browser/ash/usb/cros_usb_detector.cc b/chrome/browser/ash/usb/cros_usb_detector.cc
index 375db6b4..8291ad8b 100644
--- a/chrome/browser/ash/usb/cros_usb_detector.cc
+++ b/chrome/browser/ash/usb/cros_usb_detector.cc
@@ -27,7 +27,7 @@
 #include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h"
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/grit/generated_resources.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/disks/disk.h"
 #include "chromeos/disks/disk_mount_manager.h"
diff --git a/chrome/browser/ash/usb/cros_usb_detector.h b/chrome/browser/ash/usb/cros_usb_detector.h
index 4aa77b7..99119c9 100644
--- a/chrome/browser/ash/usb/cros_usb_detector.h
+++ b/chrome/browser/ash/usb/cros_usb_detector.h
@@ -14,7 +14,7 @@
 #include "base/containers/flat_map.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/vm_plugin_dispatcher_client.h"
 #include "chromeos/disks/disk_mount_manager.h"
 #include "mojo/public/cpp/bindings/associated_receiver.h"
diff --git a/chrome/browser/ash/usb/cros_usb_detector_unittest.cc b/chrome/browser/ash/usb/cros_usb_detector_unittest.cc
index f73f6c6..8116aec 100644
--- a/chrome/browser/ash/usb/cros_usb_detector_unittest.cc
+++ b/chrome/browser/ash/usb/cros_usb_detector_unittest.cc
@@ -29,10 +29,10 @@
 #include "chrome/test/base/testing_profile_manager.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/cros_disks_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/fake_vm_plugin_dispatcher_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/disks/disk.h"
diff --git a/chrome/browser/attribution_reporting/android/internal/BUILD.gn b/chrome/browser/attribution_reporting/android/internal/BUILD.gn
index 68c1856..9f9c8d71 100644
--- a/chrome/browser/attribution_reporting/android/internal/BUILD.gn
+++ b/chrome/browser/attribution_reporting/android/internal/BUILD.gn
@@ -20,7 +20,11 @@
   bypass_platform_checks = true
   testonly = true
 
-  sources = [ "java/src/org/chromium/chrome/browser/attribution_reporting/AttributionIntentHandlerImplTest.java" ]
+  sources = [
+    "java/src/org/chromium/chrome/browser/attribution_reporting/AttributionIntentHandlerImplTest.java",
+    # TODO(https://crbug.com/1198308): Compile and run this test suite once Robolectric supports R.
+    # "java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidatorTest.java",
+  ]
 
   deps = [
     ":java",
@@ -34,3 +38,20 @@
     "//third_party/mockito:mockito_java",
   ]
 }
+
+android_library("javatests") {
+  testonly = true
+  sources = [ "java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidatorManualTest.java" ]
+
+  deps = [
+    ":java",
+    "//base:base_java",
+    "//base:base_java_test_support",
+    "//chrome/browser/flags:java",
+    "//chrome/test/android:chrome_java_test_support",
+    "//content/public/test/android:content_java_test_support",
+    "//third_party/androidx:androidx_test_runner_java",
+    "//third_party/junit",
+    "//ui/android:ui_java_test_support",
+  ]
+}
diff --git a/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidator.java b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidator.java
index 9a1094c..67daa7f 100644
--- a/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidator.java
+++ b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidator.java
@@ -7,7 +7,13 @@
 import android.content.Context;
 import android.hardware.input.InputManager;
 import android.os.Build;
+import android.os.SystemClock;
 import android.view.InputEvent;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.VerifiedInputEvent;
+import android.view.VerifiedKeyEvent;
+import android.view.VerifiedMotionEvent;
 
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Predicate;
@@ -18,6 +24,14 @@
  * on Android R+.
  */
 public class InputEventValidator implements Predicate<InputEvent> {
+    private static final long NANOS_PER_MILLISECOND = 1000000;
+
+    // 10 second expiry time for InputEvents to allow for slow devices having to launch Chrome.
+    /* package */ static final long INPUT_EXPIRY_MILLIS = 10 * 1000;
+
+    // In SystemClock#uptimeMillis time base, in nanos.
+    private long mLastEventDowntime;
+
     @Override
     public boolean test(InputEvent inputEvent) {
         // We cannot verify input events pre-R, so we're making a trade-off of compat vs. security
@@ -27,7 +41,36 @@
         InputManager im = (InputManager) ContextUtils.getApplicationContext().getSystemService(
                 Context.INPUT_SERVICE);
 
-        // TODO(https://crbug.com/1198308): Ensure we aren't being sent duplicate or old Events.
-        return ApiHelperForR.verifyInputEvent(im, inputEvent) != null;
+        VerifiedInputEvent verifiedEvent = ApiHelperForR.verifyInputEvent(im, inputEvent);
+        if (verifiedEvent == null) return false;
+
+        // Per documentation, EventTimeNanos is in the SystemClock.uptimeMillis() time base, just
+        // with nanosecond precision (but likely not nanosecond accuracy).
+        long eventTimeMillis = verifiedEvent.getEventTimeNanos() / NANOS_PER_MILLISECOND;
+        if (SystemClock.uptimeMillis() - eventTimeMillis > INPUT_EXPIRY_MILLIS) return false;
+
+        long eventDownTime;
+        if (verifiedEvent instanceof VerifiedMotionEvent) {
+            VerifiedMotionEvent motionEvent = (VerifiedMotionEvent) verifiedEvent;
+
+            // Only allow ACTION_UP to be more equivalent to User Activitation on the web and
+            // prevent canceled events from triggering attribution.
+            if (motionEvent.getActionMasked() != MotionEvent.ACTION_UP) return false;
+            eventDownTime = motionEvent.getDownTimeNanos();
+        } else if (verifiedEvent instanceof VerifiedKeyEvent) {
+            VerifiedKeyEvent keyEvent = (VerifiedKeyEvent) verifiedEvent;
+            if (keyEvent.getAction() != KeyEvent.ACTION_UP) return false;
+            eventDownTime = keyEvent.getDownTimeNanos();
+        } else {
+            // Not reachable as of API level 30.
+            assert false;
+            return false;
+        }
+
+        // In order to avoid event re-use, make sure that the input sequence/gesture that triggered
+        // this attribution is newer than the last event to have triggered an attribution.
+        if (eventDownTime <= mLastEventDowntime) return false;
+        mLastEventDowntime = eventDownTime;
+        return true;
     }
 }
diff --git a/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidatorManualTest.java b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidatorManualTest.java
new file mode 100644
index 0000000..4559fdf
--- /dev/null
+++ b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidatorManualTest.java
@@ -0,0 +1,141 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.attribution_reporting;
+
+import android.os.Build;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.widget.TextView;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.ThreadUtils;
+import org.chromium.base.test.util.Manual;
+import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
+import org.chromium.ui.test.util.DummyUiActivityTestCase;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * Manual tests for InputEventValidator. VerifiedInputEvents cannot be generated for tests, so
+ * true integration tests have to be manual.
+ *
+ * You can run these tests with:
+ * tools/autotest.py -C out/<dir> InputEventValidatorManualTest -A Manual
+ *
+ * These tests only work on R+.
+ */
+@RunWith(ChromeJUnit4ClassRunner.class)
+public class InputEventValidatorManualTest extends DummyUiActivityTestCase {
+    private String mPackageName = "com.android.packageName";
+    private byte mPackageMac[];
+
+    @Before
+    public void setUp() {
+        // We could use DisableIf, but given these are only run manually, this makes it easier to
+        // realize that the tests don't run pre-R if you run them on the wrong device.
+        assert Build.VERSION.SDK_INT >= Build.VERSION_CODES.R;
+    }
+
+    private void setText(String text) {
+        ThreadUtils.runOnUiThreadBlocking(() -> {
+            TextView textView = new TextView(getActivity());
+            textView.setText(text);
+            getActivity().setContentView(textView);
+        });
+    }
+
+    private MotionEvent waitForMotionEventWithAction(int action) throws Exception {
+        final AtomicReference<MotionEvent> motionEvent = new AtomicReference<MotionEvent>();
+        final CountDownLatch countDownLatch = new CountDownLatch(1);
+        getActivity().setTouchEventCallback((event) -> {
+            if (event.getActionMasked() != action) return;
+            motionEvent.set(event);
+            countDownLatch.countDown();
+        });
+        countDownLatch.await();
+        return motionEvent.get();
+    }
+
+    private KeyEvent waitForKeyEventWithAction(int action) throws Exception {
+        final AtomicReference<KeyEvent> keyEvent = new AtomicReference<KeyEvent>();
+        final CountDownLatch countDownLatch = new CountDownLatch(1);
+        getActivity().setKeyEventCallback((event) -> {
+            if (event.getAction() != action) return;
+            keyEvent.set(event);
+            countDownLatch.countDown();
+        });
+        countDownLatch.await();
+        return keyEvent.get();
+    }
+
+    @Test
+    @Manual
+    public void testValidMotionEvent() throws Exception {
+        setText("Tap the screen to continue.");
+        MotionEvent validEvent = waitForMotionEventWithAction(MotionEvent.ACTION_UP);
+
+        InputEventValidator validator = new InputEventValidator();
+        Assert.assertTrue(validator.test(validEvent));
+        Assert.assertFalse(validator.test(validEvent));
+    }
+
+    @Test
+    @Manual
+    public void testInvalidMotionEvent() throws Exception {
+        setText("Tap the screen to continue.");
+        MotionEvent invalidEvent = waitForMotionEventWithAction(MotionEvent.ACTION_DOWN);
+
+        InputEventValidator validator = new InputEventValidator();
+        Assert.assertFalse(validator.test(invalidEvent));
+    }
+
+    @Test
+    @Manual
+    public void testOldMotionEvent() throws Exception {
+        setText("Tap the screen then wait 10 seconds.");
+        MotionEvent validEvent = waitForMotionEventWithAction(MotionEvent.ACTION_UP);
+
+        Thread.sleep(InputEventValidator.INPUT_EXPIRY_MILLIS + 100);
+        InputEventValidator validator = new InputEventValidator();
+        Assert.assertFalse(validator.test(validEvent));
+    }
+
+    @Test
+    @Manual
+    public void testValidKeyEvent() throws Exception {
+        setText("Press a key to continue.\n eg. adb shell input keyevent 23");
+        KeyEvent validEvent = waitForKeyEventWithAction(KeyEvent.ACTION_UP);
+
+        InputEventValidator validator = new InputEventValidator();
+        Assert.assertTrue(validator.test(validEvent));
+        Assert.assertFalse(validator.test(validEvent));
+    }
+
+    @Test
+    @Manual
+    public void testInvalidKeyEvent() throws Exception {
+        setText("Press a key to continue.\n eg. adb shell input keyevent 23");
+        KeyEvent validEvent = waitForKeyEventWithAction(KeyEvent.ACTION_DOWN);
+
+        InputEventValidator validator = new InputEventValidator();
+        Assert.assertFalse(validator.test(validEvent));
+    }
+
+    @Test
+    @Manual
+    public void testOldKeyEvent() throws Exception {
+        setText("Press a key then wait 10 seconds.\n eg. adb shell input keyevent 23");
+        KeyEvent validEvent = waitForKeyEventWithAction(KeyEvent.ACTION_UP);
+
+        Thread.sleep(InputEventValidator.INPUT_EXPIRY_MILLIS + 100);
+        InputEventValidator validator = new InputEventValidator();
+        Assert.assertFalse(validator.test(validEvent));
+    }
+}
diff --git a/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidatorTest.java b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidatorTest.java
new file mode 100644
index 0000000..86c4c05
--- /dev/null
+++ b/chrome/browser/attribution_reporting/android/internal/java/src/org/chromium/chrome/browser/attribution_reporting/InputEventValidatorTest.java
@@ -0,0 +1,81 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.attribution_reporting;
+
+import static org.mockito.ArgumentMatchers.eq;
+
+import android.content.Context;
+import android.hardware.input.InputManager;
+import android.os.Build;
+import android.os.SystemClock;
+import android.view.InputEvent;
+import android.view.VerifiedKeyEvent;
+import android.view.VerifiedMotionEvent;
+
+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;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.mockito.quality.Strictness;
+import org.robolectric.annotation.Config;
+
+import org.chromium.base.ContextUtils;
+import org.chromium.base.test.BaseRobolectricTestRunner;
+
+/**
+ * Unit tests for InputEventValidator.
+ *
+ * These tests are not currently compiled and run because Robolectric doesn't support Android R at
+ * the time of writing.
+ *
+ * TODO(https://crbug.com/1198308): Compile, run, and extend this test suite once we can update
+ * Robolectric to support R.
+ */
+@RunWith(BaseRobolectricTestRunner.class)
+@Config(manifest = Config.NONE, sdk = Build.VERSION_CODES.R)
+public class InputEventValidatorTest {
+    @Rule
+    public MockitoRule mMockitoRule = MockitoJUnit.rule().strictness(Strictness.STRICT_STUBS);
+
+    @Mock
+    private InputEvent mInputEvent;
+
+    @Mock
+    private VerifiedMotionEvent mMotionEvent;
+
+    @Mock
+    private VerifiedKeyEvent mKeyEvent;
+
+    @Mock
+    private InputManager mInputManager;
+
+    @Mock
+    private Context mContext;
+
+    private InputEventValidator mInputEventValidator = new InputEventValidator();
+
+    @Before
+    public void setUp() {
+        // Reset by BaseRobolectricTestRunner.
+        ContextUtils.initApplicationContextForTests(mContext);
+        Mockito.when(mContext.getSystemService(eq(Context.INPUT_SERVICE)))
+                .thenReturn(mInputManager);
+    }
+
+    @Test
+    public void testValidMotionEvent() throws Exception {
+        VerifiedMotionEvent mMotionEvent = Mockito.mock(VerifiedMotionEvent.class);
+        Mockito.when(mInputManager.verifyInputEvent(eq(mInputEvent))).thenReturn(mMotionEvent);
+        Mockito.when(mMotionEvent.getEventTimeNanos()).thenReturn(SystemClock.uptimeMillis());
+        Mockito.when(mMotionEvent.getDownTimeNanos()).thenReturn(SystemClock.uptimeMillis() - 1);
+        Assert.assertTrue(mInputEventValidator.test(mInputEvent));
+        Assert.assertFalse(mInputEventValidator.test(mInputEvent));
+    }
+}
diff --git a/chrome/browser/autofill/android/save_address_profile_prompt_controller.cc b/chrome/browser/autofill/android/save_address_profile_prompt_controller.cc
index ec0ac51..adbf24c 100644
--- a/chrome/browser/autofill/android/save_address_profile_prompt_controller.cc
+++ b/chrome/browser/autofill/android/save_address_profile_prompt_controller.cc
@@ -130,9 +130,7 @@
     const base::android::JavaParamRef<jobject>& obj) {
   had_user_interaction_ = true;
   RunSaveAddressProfileCallback(
-      was_profile_edited
-          ? AutofillClient::SaveAddressProfileOfferUserDecision::kEdited
-          : AutofillClient::SaveAddressProfileOfferUserDecision::kAccepted);
+      AutofillClient::SaveAddressProfileOfferUserDecision::kAccepted);
 }
 
 void SaveAddressProfilePromptController::OnUserDeclined(
@@ -147,12 +145,13 @@
     JNIEnv* env,
     const base::android::JavaParamRef<jobject>& obj,
     const base::android::JavaParamRef<jobject>& jprofile) {
-  was_profile_edited = true;
+  had_user_interaction_ = true;
   AutofillProfile edited_profile;
   PersonalDataManagerAndroid::PopulateNativeProfileFromJava(jprofile, env,
                                                             &edited_profile);
   profile_ = edited_profile;
-  prompt_view_->RefreshContent();
+  RunSaveAddressProfileCallback(
+      AutofillClient::SaveAddressProfileOfferUserDecision::kEdited);
 }
 
 void SaveAddressProfilePromptController::OnPromptDismissed(
diff --git a/chrome/browser/autofill/android/save_address_profile_prompt_controller.h b/chrome/browser/autofill/android/save_address_profile_prompt_controller.h
index 185927f..efe6527 100644
--- a/chrome/browser/autofill/android/save_address_profile_prompt_controller.h
+++ b/chrome/browser/autofill/android/save_address_profile_prompt_controller.h
@@ -70,10 +70,8 @@
   void RunSaveAddressProfileCallback(
       AutofillClient::SaveAddressProfileOfferUserDecision decision);
 
-  // If the user explicitly accepted/dismissed the profile.
+  // If the user explicitly accepted/dismissed/edited the profile.
   bool had_user_interaction_ = false;
-  // If the user at least once edited the profile.
-  bool was_profile_edited = false;
   // View that displays the prompt.
   std::unique_ptr<SaveAddressProfilePromptView> prompt_view_;
   // The profile which is being confirmed by the user.
diff --git a/chrome/browser/autofill/android/save_address_profile_prompt_controller_unittest.cc b/chrome/browser/autofill/android/save_address_profile_prompt_controller_unittest.cc
index 926d6fed..eb801f9a 100644
--- a/chrome/browser/autofill/android/save_address_profile_prompt_controller_unittest.cc
+++ b/chrome/browser/autofill/android/save_address_profile_prompt_controller_unittest.cc
@@ -29,7 +29,6 @@
                const AutofillProfile& autofill_profile,
                bool is_update),
               (override));
-  MOCK_METHOD(void, RefreshContent, (), (override));
 };
 
 class SaveAddressProfilePromptControllerTest : public testing::Test {
@@ -135,7 +134,7 @@
 }
 
 TEST_F(SaveAddressProfilePromptControllerTest,
-       ShouldInvokeSaveCallbackWhenUserAcceptsAfterEditingTheProfile) {
+       ShouldInvokeSaveCallbackWhenUserEditsProfile) {
   controller_->DisplayPrompt();
 
   AutofillProfile edited_profile = GetFullProfileNoStatus();
@@ -148,7 +147,6 @@
   controller_->OnUserEdited(
       env_, mock_caller_,
       base::android::JavaParamRef<jobject>(env_, edited_profile_java.obj()));
-  controller_->OnUserAccepted(env_, mock_caller_);
 }
 
 TEST_F(SaveAddressProfilePromptControllerTest,
@@ -194,26 +192,4 @@
   EXPECT_EQ(u"Cancel", controller_->GetNegativeButtonText());
 }
 
-TEST_F(SaveAddressProfilePromptControllerTest,
-       ShouldRefreshContentAfterEditingTheProfile) {
-  controller_->DisplayPrompt();
-
-  AutofillProfile edited_profile = GetFullProfileNoStatus();
-  base::android::ScopedJavaLocalRef<jobject> edited_profile_java =
-      PersonalDataManagerAndroid::CreateJavaProfileFromNative(env_,
-                                                              edited_profile);
-  EXPECT_CALL(*prompt_view_, RefreshContent());
-  controller_->OnUserEdited(
-      env_, mock_caller_,
-      base::android::JavaParamRef<jobject>(env_, edited_profile_java.obj()));
-
-  // Also the getters should return data for the `edited_profile`.
-  EXPECT_EQ(
-      u"Mona J. Liza\nCompany Inc.\n33 Narrow Street\nApt 42\nPlaya Vista, LA "
-      u"12345\nUnited States",
-      controller_->GetAddress());
-  EXPECT_EQ(u"email@example.com", controller_->GetEmail());
-  EXPECT_EQ(u"13105551234", controller_->GetPhoneNumber());
-}
-
 }  // namespace autofill
diff --git a/chrome/browser/autofill/android/save_address_profile_prompt_view.h b/chrome/browser/autofill/android/save_address_profile_prompt_view.h
index f471e61b..419c7e7 100644
--- a/chrome/browser/autofill/android/save_address_profile_prompt_view.h
+++ b/chrome/browser/autofill/android/save_address_profile_prompt_view.h
@@ -20,8 +20,6 @@
                     const AutofillProfile& autofill_profile,
                     bool is_update) = 0;
 
-  virtual void RefreshContent() = 0;
-
   virtual ~SaveAddressProfilePromptView() = default;
 };
 
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 1e5ad9e9..a8eb2cf 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -877,8 +877,8 @@
 
     if (password_store) {
       password_store->DisableAutoSignInForOrigins(
-          filter, base::AdaptCallbackForRepeating(CreateTaskCompletionClosure(
-                      TracingDataType::kDisableAutoSignin)));
+          filter,
+          CreateTaskCompletionClosure(TracingDataType::kDisableAutoSignin));
     }
   }
 
@@ -891,8 +891,7 @@
     if (password_store) {
       password_store->RemoveStatisticsByOriginAndTime(
           nullable_filter, delete_begin_, delete_end_,
-          base::AdaptCallbackForRepeating(CreateTaskCompletionClosure(
-              TracingDataType::kPasswordsStatistics)));
+          CreateTaskCompletionClosure(TracingDataType::kPasswordsStatistics));
       password_store->RemoveFieldInfoByTime(
           delete_begin_, delete_end_,
           CreateTaskCompletionClosure(TracingDataType::kFieldInfo));
@@ -998,11 +997,9 @@
               profile_);
       if (offline_page_model)
         offline_page_model->DeleteCachedPagesByURLPredicate(
-            filter, base::AdaptCallbackForRepeating(
-                        IgnoreArgument<
-                            offline_pages::OfflinePageModel::DeletePageResult>(
-                            CreateTaskCompletionClosure(
-                                TracingDataType::kOfflinePages))));
+            filter,
+            IgnoreArgument<offline_pages::OfflinePageModel::DeletePageResult>(
+                CreateTaskCompletionClosure(TracingDataType::kOfflinePages)));
     }
 #endif
 
diff --git a/chrome/browser/certificate_manager_model.cc b/chrome/browser/certificate_manager_model.cc
index be8a2c1e..b86d41c 100644
--- a/chrome/browser/certificate_manager_model.cc
+++ b/chrome/browser/certificate_manager_model.cc
@@ -717,14 +717,14 @@
     CreationCallback callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
-  auto did_get_cert_db_callback = base::AdaptCallbackForRepeating(
+  auto split_callback = base::SplitOnceCallback(
       base::BindOnce(&CertificateManagerModel::DidGetCertDBOnIOThread,
                      std::move(params), observer, std::move(callback)));
 
   net::NSSCertDatabase* cert_db =
-      std::move(database_getter).Run(did_get_cert_db_callback);
+      std::move(database_getter).Run(std::move(split_callback.first));
   // If the NSS database was already available, |cert_db| is non-null and
   // |did_get_cert_db_callback| has not been called. Call it explicitly.
   if (cert_db)
-    did_get_cert_db_callback.Run(cert_db);
+    std::move(split_callback.second).Run(cert_db);
 }
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index a549567..c93d506 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -1233,6 +1233,9 @@
     "../ash/drive/fileapi/drivefs_async_file_util.h",
     "../ash/drive/fileapi/drivefs_file_system_backend_delegate.cc",
     "../ash/drive/fileapi/drivefs_file_system_backend_delegate.h",
+    "../ash/file_system_provider/abort_callback.h",
+    "../ash/file_system_provider/extension_provider.cc",
+    "../ash/file_system_provider/extension_provider.h",
     "../ash/file_system_provider/fileapi/backend_delegate.cc",
     "../ash/file_system_provider/fileapi/backend_delegate.h",
     "../ash/file_system_provider/fileapi/buffering_file_stream_reader.cc",
@@ -1247,6 +1250,14 @@
     "../ash/file_system_provider/fileapi/provider_async_file_util.h",
     "../ash/file_system_provider/fileapi/watcher_manager.cc",
     "../ash/file_system_provider/fileapi/watcher_manager.h",
+    "../ash/file_system_provider/icon_set.cc",
+    "../ash/file_system_provider/icon_set.h",
+    "../ash/file_system_provider/mount_path_util.cc",
+    "../ash/file_system_provider/mount_path_util.h",
+    "../ash/file_system_provider/notification_manager.cc",
+    "../ash/file_system_provider/notification_manager.h",
+    "../ash/file_system_provider/notification_manager_interface.h",
+    "../ash/file_system_provider/observer.h",
     "../ash/file_system_provider/operations/abort.cc",
     "../ash/file_system_provider/operations/abort.h",
     "../ash/file_system_provider/operations/add_watcher.cc",
@@ -1287,6 +1298,35 @@
     "../ash/file_system_provider/operations/unmount.h",
     "../ash/file_system_provider/operations/write_file.cc",
     "../ash/file_system_provider/operations/write_file.h",
+    "../ash/file_system_provider/provided_file_system.cc",
+    "../ash/file_system_provider/provided_file_system.h",
+    "../ash/file_system_provider/provided_file_system_info.cc",
+    "../ash/file_system_provider/provided_file_system_info.h",
+    "../ash/file_system_provider/provided_file_system_interface.cc",
+    "../ash/file_system_provider/provided_file_system_interface.h",
+    "../ash/file_system_provider/provided_file_system_observer.cc",
+    "../ash/file_system_provider/provided_file_system_observer.h",
+    "../ash/file_system_provider/provider_interface.h",
+    "../ash/file_system_provider/queue.cc",
+    "../ash/file_system_provider/queue.h",
+    "../ash/file_system_provider/registry.cc",
+    "../ash/file_system_provider/registry.h",
+    "../ash/file_system_provider/registry_interface.cc",
+    "../ash/file_system_provider/registry_interface.h",
+    "../ash/file_system_provider/request_manager.cc",
+    "../ash/file_system_provider/request_manager.h",
+    "../ash/file_system_provider/request_value.cc",
+    "../ash/file_system_provider/request_value.h",
+    "../ash/file_system_provider/scoped_file_opener.cc",
+    "../ash/file_system_provider/scoped_file_opener.h",
+    "../ash/file_system_provider/service.cc",
+    "../ash/file_system_provider/service.h",
+    "../ash/file_system_provider/service_factory.cc",
+    "../ash/file_system_provider/service_factory.h",
+    "../ash/file_system_provider/throttled_file_system.cc",
+    "../ash/file_system_provider/throttled_file_system.h",
+    "../ash/file_system_provider/watcher.cc",
+    "../ash/file_system_provider/watcher.h",
     "../ash/guest_os/guest_os_diagnostics_builder.cc",
     "../ash/guest_os/guest_os_diagnostics_builder.h",
     "../ash/guest_os/guest_os_external_protocol_handler.cc",
@@ -2214,46 +2254,6 @@
     "file_manager/volume_manager_observer.h",
     "file_manager/web_file_tasks.cc",
     "file_manager/web_file_tasks.h",
-    "file_system_provider/abort_callback.h",
-    "file_system_provider/extension_provider.cc",
-    "file_system_provider/extension_provider.h",
-    "file_system_provider/icon_set.cc",
-    "file_system_provider/icon_set.h",
-    "file_system_provider/mount_path_util.cc",
-    "file_system_provider/mount_path_util.h",
-    "file_system_provider/notification_manager.cc",
-    "file_system_provider/notification_manager.h",
-    "file_system_provider/notification_manager_interface.h",
-    "file_system_provider/observer.h",
-    "file_system_provider/provided_file_system.cc",
-    "file_system_provider/provided_file_system.h",
-    "file_system_provider/provided_file_system_info.cc",
-    "file_system_provider/provided_file_system_info.h",
-    "file_system_provider/provided_file_system_interface.cc",
-    "file_system_provider/provided_file_system_interface.h",
-    "file_system_provider/provided_file_system_observer.cc",
-    "file_system_provider/provided_file_system_observer.h",
-    "file_system_provider/provider_interface.h",
-    "file_system_provider/queue.cc",
-    "file_system_provider/queue.h",
-    "file_system_provider/registry.cc",
-    "file_system_provider/registry.h",
-    "file_system_provider/registry_interface.cc",
-    "file_system_provider/registry_interface.h",
-    "file_system_provider/request_manager.cc",
-    "file_system_provider/request_manager.h",
-    "file_system_provider/request_value.cc",
-    "file_system_provider/request_value.h",
-    "file_system_provider/scoped_file_opener.cc",
-    "file_system_provider/scoped_file_opener.h",
-    "file_system_provider/service.cc",
-    "file_system_provider/service.h",
-    "file_system_provider/service_factory.cc",
-    "file_system_provider/service_factory.h",
-    "file_system_provider/throttled_file_system.cc",
-    "file_system_provider/throttled_file_system.h",
-    "file_system_provider/watcher.cc",
-    "file_system_provider/watcher.h",
     "fileapi/external_file_resolver.cc",
     "fileapi/external_file_resolver.h",
     "fileapi/external_file_url_loader_factory.cc",
@@ -3783,11 +3783,20 @@
     "../ash/drive/drive_integration_service_unittest.cc",
     "../ash/drive/drivefs_native_message_host_unittest.cc",
     "../ash/drive/file_system_util_unittest.cc",
+    "../ash/file_system_provider/fake_extension_provider.cc",
+    "../ash/file_system_provider/fake_extension_provider.h",
+    "../ash/file_system_provider/fake_provided_file_system.cc",
+    "../ash/file_system_provider/fake_provided_file_system.h",
+    "../ash/file_system_provider/fake_registry.cc",
+    "../ash/file_system_provider/fake_registry.h",
     "../ash/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc",
     "../ash/file_system_provider/fileapi/buffering_file_stream_writer_unittest.cc",
     "../ash/file_system_provider/fileapi/file_stream_reader_unittest.cc",
     "../ash/file_system_provider/fileapi/file_stream_writer_unittest.cc",
     "../ash/file_system_provider/fileapi/provider_async_file_util_unittest.cc",
+    "../ash/file_system_provider/logging_observer.cc",
+    "../ash/file_system_provider/logging_observer.h",
+    "../ash/file_system_provider/mount_path_util_unittest.cc",
     "../ash/file_system_provider/operations/abort_unittest.cc",
     "../ash/file_system_provider/operations/add_watcher_unittest.cc",
     "../ash/file_system_provider/operations/close_file_unittest.cc",
@@ -3809,6 +3818,13 @@
     "../ash/file_system_provider/operations/truncate_unittest.cc",
     "../ash/file_system_provider/operations/unmount_unittest.cc",
     "../ash/file_system_provider/operations/write_file_unittest.cc",
+    "../ash/file_system_provider/provided_file_system_unittest.cc",
+    "../ash/file_system_provider/queue_unittest.cc",
+    "../ash/file_system_provider/registry_unittest.cc",
+    "../ash/file_system_provider/request_manager_unittest.cc",
+    "../ash/file_system_provider/scoped_file_opener_unittest.cc",
+    "../ash/file_system_provider/service_unittest.cc",
+    "../ash/file_system_provider/throttled_file_system_unittest.cc",
     "../ash/guest_os/guest_os_external_protocol_handler_unittest.cc",
     "../ash/guest_os/guest_os_registry_service_unittest.cc",
     "../ash/guest_os/guest_os_share_path_unittest.cc",
@@ -3998,22 +4014,6 @@
     "file_manager/url_util_unittest.cc",
     "file_manager/volume_manager_unittest.cc",
     "file_manager/web_file_tasks_unittest.cc",
-    "file_system_provider/fake_extension_provider.cc",
-    "file_system_provider/fake_extension_provider.h",
-    "file_system_provider/fake_provided_file_system.cc",
-    "file_system_provider/fake_provided_file_system.h",
-    "file_system_provider/fake_registry.cc",
-    "file_system_provider/fake_registry.h",
-    "file_system_provider/logging_observer.cc",
-    "file_system_provider/logging_observer.h",
-    "file_system_provider/mount_path_util_unittest.cc",
-    "file_system_provider/provided_file_system_unittest.cc",
-    "file_system_provider/queue_unittest.cc",
-    "file_system_provider/registry_unittest.cc",
-    "file_system_provider/request_manager_unittest.cc",
-    "file_system_provider/scoped_file_opener_unittest.cc",
-    "file_system_provider/service_unittest.cc",
-    "file_system_provider/throttled_file_system_unittest.cc",
     "fileapi/external_file_url_loader_factory_unittest.cc",
     "fileapi/external_file_url_util_unittest.cc",
     "fileapi/file_access_permissions_unittest.cc",
diff --git a/chrome/browser/chromeos/browser_context_keyed_service_factories.cc b/chrome/browser/chromeos/browser_context_keyed_service_factories.cc
index 36c449a..9bf450a 100644
--- a/chrome/browser/chromeos/browser_context_keyed_service_factories.cc
+++ b/chrome/browser/chromeos/browser_context_keyed_service_factories.cc
@@ -11,6 +11,7 @@
 #include "chrome/browser/ash/borealis/borealis_service_factory.h"
 #include "chrome/browser/ash/cert_provisioning/cert_provisioning_scheduler_user_service.h"
 #include "chrome/browser/ash/crostini/crostini_engagement_metrics_service.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/browser/ash/guest_os/guest_os_registry_service_factory.h"
 #include "chrome/browser/ash/kerberos/kerberos_credentials_manager_factory.h"
 #include "chrome/browser/ash/login/easy_unlock/easy_unlock_service_factory.h"
@@ -25,7 +26,6 @@
 #include "chrome/browser/chromeos/extensions/media_player_api.h"
 #include "chrome/browser/chromeos/extensions/printing_metrics/print_job_finished_event_dispatcher.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager_factory.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
 #include "chrome/browser/chromeos/fileapi/file_change_service_factory.h"
 #include "chrome/browser/chromeos/full_restore/full_restore_service_factory.h"
 #include "chrome/browser/chromeos/launcher_search_provider/launcher_search_provider_service_factory.h"
diff --git a/chrome/browser/chromeos/concierge_helper_service.cc b/chrome/browser/chromeos/concierge_helper_service.cc
index bcf607f..3e7ef90 100644
--- a/chrome/browser/chromeos/concierge_helper_service.cc
+++ b/chrome/browser/chromeos/concierge_helper_service.cc
@@ -7,8 +7,8 @@
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/optional.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
-#include "chromeos/dbus/concierge_client.h"
 #include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
 #include "components/keyed_service/content/browser_context_dependency_manager.h"
 #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
diff --git a/chrome/browser/chromeos/concierge_helper_service_unittest.cc b/chrome/browser/chromeos/concierge_helper_service_unittest.cc
index 5eb5ffe..b91080c 100644
--- a/chrome/browser/chromeos/concierge_helper_service_unittest.cc
+++ b/chrome/browser/chromeos/concierge_helper_service_unittest.cc
@@ -10,8 +10,8 @@
 #include "base/run_loop.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/concierge/concierge_service.pb.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "content/public/test/browser_task_environment.h"
 #include "dbus/bus.h"
 #include "dbus/object_proxy.h"
diff --git a/chrome/browser/chromeos/dbus/dbus_helper.cc b/chrome/browser/chromeos/dbus/dbus_helper.cc
index ccb22e7..7745c56 100644
--- a/chrome/browser/chromeos/dbus/dbus_helper.cc
+++ b/chrome/browser/chromeos/dbus/dbus_helper.cc
@@ -21,7 +21,7 @@
 #include "chromeos/dbus/biod/biod_client.h"
 #include "chromeos/dbus/cdm_factory_daemon/cdm_factory_daemon_client.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/constants/dbus_paths.h"
 #include "chromeos/dbus/cros_healthd/cros_healthd_client.h"
 #include "chromeos/dbus/cups_proxy/cups_proxy_client.h"
diff --git a/chrome/browser/chromeos/eol_notification_unittest.cc b/chrome/browser/chromeos/eol_notification_unittest.cc
index 8a4d1d2e..fe0c8f2 100644
--- a/chrome/browser/chromeos/eol_notification_unittest.cc
+++ b/chrome/browser/chromeos/eol_notification_unittest.cc
@@ -15,7 +15,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_update_engine_client.h"
 #include "ui/base/l10n/l10n_util.h"
diff --git a/chrome/browser/chromeos/exo/chrome_data_exchange_delegate_unittest.cc b/chrome/browser/chromeos/exo/chrome_data_exchange_delegate_unittest.cc
index 213fab8b..8e910ab8 100644
--- a/chrome/browser/chromeos/exo/chrome_data_exchange_delegate_unittest.cc
+++ b/chrome/browser/chromeos/exo/chrome_data_exchange_delegate_unittest.cc
@@ -19,7 +19,7 @@
 #include "chrome/browser/chromeos/file_manager/path_util.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/fake_seneschal_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
diff --git a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
index d3166e7..1056ac0 100644
--- a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
+++ b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
@@ -657,9 +657,9 @@
 
 aura::Window* FindAppWindowById(const int64_t id) {
   auto list = ash::GetAppWindowList();
-  auto iter =
-      std::find_if(list.begin(), list.end(),
-                   [id](aura::Window* window) { return window->id() == id; });
+  auto iter = std::find_if(
+      list.begin(), list.end(),
+      [id](aura::Window* window) { return window->GetId() == id; });
   if (iter == list.end())
     return nullptr;
   return *iter;
@@ -3764,10 +3764,10 @@
   std::vector<api::autotest_private::AppWindowInfo> result_list;
 
   for (auto* window : window_list) {
-    if (window->id() == aura::Window::kInitialId)
-      window->set_id(id_count--);
+    if (window->GetId() == aura::Window::kInitialId)
+      window->SetId(id_count--);
     api::autotest_private::AppWindowInfo window_info;
-    window_info.id = window->id();
+    window_info.id = window->GetId();
     window_info.name = window->GetName();
     window_info.window_type = GetAppWindowType(
         static_cast<ash::AppType>(window->GetProperty(aura::client::kAppType)));
@@ -3800,7 +3800,7 @@
             std::make_unique<std::string>(*package_name);
       } else {
         LOG(ERROR) << "The package name for window " << window->GetTitle()
-                   << " (ID: " << window->id()
+                   << " (ID: " << window->GetId()
                    << ") isn't available even though it is an ARC window.";
       }
     }
@@ -3854,7 +3854,7 @@
       // All widgets for app windows in chromeos should have a frame with
       // immersive controller. Non app windows may not have a frame and
       // frame mode will be NONE.
-      DCHECK(!widget || widget->GetNativeWindow()->type() !=
+      DCHECK(!widget || widget->GetNativeWindow()->GetType() !=
                             aura::client::WINDOW_TYPE_NORMAL);
       window_info.frame_mode =
           api::autotest_private::FrameMode::FRAME_MODE_NONE;
diff --git a/chrome/browser/chromeos/extensions/file_manager/file_manager_private_apitest.cc b/chrome/browser/chromeos/extensions/file_manager/file_manager_private_apitest.cc
index d054d1bb..6e79975 100644
--- a/chrome/browser/chromeos/extensions/file_manager/file_manager_private_apitest.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/file_manager_private_apitest.cc
@@ -17,14 +17,14 @@
 #include "chrome/browser/ash/crostini/crostini_pref_names.h"
 #include "chrome/browser/ash/crostini/fake_crostini_features.h"
 #include "chrome/browser/ash/drive/drivefs_test_support.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "chrome/browser/chromeos/extensions/file_manager/event_router.h"
 #include "chrome/browser/chromeos/extensions/file_manager/event_router_factory.h"
 #include "chrome/browser/chromeos/extensions/file_manager/private_api_misc.h"
 #include "chrome/browser/chromeos/file_manager/file_watcher.h"
 #include "chrome/browser/chromeos/file_manager/mount_test_util.h"
 #include "chrome/browser/chromeos/file_manager/path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/browser/extensions/extension_function_test_utils.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
index d8ccf77..5cfe834 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc
@@ -28,6 +28,8 @@
 #include "chrome/browser/ash/drive/drive_integration_service.h"
 #include "chrome/browser/ash/drive/drivefs_native_message_host.h"
 #include "chrome/browser/ash/drive/file_system_util.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/chromeos/extensions/file_manager/event_router.h"
 #include "chrome/browser/chromeos/extensions/file_manager/event_router_factory.h"
@@ -35,8 +37,6 @@
 #include "chrome/browser/chromeos/file_manager/file_tasks.h"
 #include "chrome/browser/chromeos/file_manager/fileapi_util.h"
 #include "chrome/browser/chromeos/file_manager/url_util.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
 #include "chrome/browser/chromeos/fileapi/external_file_url_util.h"
 #include "chrome/browser/chromeos/fileapi/file_system_backend.h"
 #include "chrome/browser/net/system_network_context_manager.h"
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
index 1c0e5cd6..5f502ca 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
@@ -26,6 +26,8 @@
 #include "chrome/browser/ash/crostini/crostini_package_service.h"
 #include "chrome/browser/ash/drive/drive_integration_service.h"
 #include "chrome/browser/ash/drive/file_system_util.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/ash/guest_os/guest_os_share_path.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/browser_process.h"
@@ -33,8 +35,6 @@
 #include "chrome/browser/chromeos/file_manager/fileapi_util.h"
 #include "chrome/browser/chromeos/file_manager/path_util.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
 #include "chrome/browser/chromeos/fileapi/recent_file.h"
 #include "chrome/browser/chromeos/fileapi/recent_model.h"
 #include "chrome/browser/devtools/devtools_window.h"
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.h b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.h
index 74218049..c606f02 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.h
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.h
@@ -13,9 +13,9 @@
 #include <vector>
 
 #include "base/files/file.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/browser/chromeos/extensions/file_manager/files_extension_function.h"
 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
 #include "chrome/common/extensions/api/file_manager_private.h"
 #include "google_apis/drive/drive_api_error_codes.h"
 #include "storage/browser/file_system/file_system_url.h"
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_util.h b/chrome/browser/chromeos/extensions/file_manager/private_api_util.h
index 2dcfa8c0..98669ca 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_util.h
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_util.h
@@ -14,7 +14,7 @@
 #include "base/callback_forward.h"
 #include "base/memory/weak_ptr.h"
 #include "base/strings/strcat.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
 #include "chromeos/components/drivefs/mojom/drivefs.mojom-forward.h"
 #include "components/drive/file_errors.h"
 #include "storage/browser/file_system/file_system_url.h"
diff --git a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc
index ca24ba5..ef55585 100644
--- a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc
+++ b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc
@@ -13,11 +13,11 @@
 #include "base/memory/ptr_util.h"
 #include "base/trace_event/trace_event.h"
 #include "base/values.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_manager.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/extensions/chrome_extension_function_details.h"
 #include "chrome/common/extensions/api/file_system_provider.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
diff --git a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_apitest.cc b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_apitest.cc
index 55c5bb5..45353a42 100644
--- a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_apitest.cc
+++ b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_apitest.cc
@@ -10,15 +10,15 @@
 #include "base/macros.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/time.h"
+#include "chrome/browser/ash/file_system_provider/notification_manager_interface.h"
+#include "chrome/browser/ash/file_system_provider/observer.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_manager.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
 #include "chrome/browser/browser_process.h"
-#include "chrome/browser/chromeos/file_system_provider/notification_manager_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/observer.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/browser/notifications/notification_display_service_tester.h"
 #include "content/public/test/browser_test.h"
diff --git a/chrome/browser/chromeos/extensions/file_system_provider/provider_function.cc b/chrome/browser/chromeos/extensions/file_system_provider/provider_function.cc
index 79402b41..044565a 100644
--- a/chrome/browser/chromeos/extensions/file_system_provider/provider_function.cc
+++ b/chrome/browser/chromeos/extensions/file_system_provider/provider_function.cc
@@ -4,11 +4,11 @@
 
 #include <utility>
 
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/request_manager.h"
+#include "chrome/browser/ash/file_system_provider/request_value.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/request_value.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
 #include "chrome/common/extensions/api/file_system_provider_internal.h"
 
 using chromeos::file_system_provider::ProvidedFileSystemInterface;
diff --git a/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc b/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc
index acde92a..73a7b7dd 100644
--- a/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc
@@ -28,7 +28,7 @@
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
 #include "components/prefs/testing_pref_service.h"
diff --git a/chrome/browser/chromeos/file_manager/file_watcher_unittest.cc b/chrome/browser/chromeos/file_manager/file_watcher_unittest.cc
index 0e4e16e..a2bc5ba3 100644
--- a/chrome/browser/chromeos/file_manager/file_watcher_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/file_watcher_unittest.cc
@@ -18,7 +18,7 @@
 #include "chromeos/dbus/cicerone/cicerone_client.h"
 #include "chromeos/dbus/cicerone/cicerone_service.pb.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc b/chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc
index faa86f9..cf7fc21 100644
--- a/chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc
@@ -10,9 +10,9 @@
 #include "base/bind.h"
 #include "base/strings/strcat.h"
 #include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
diff --git a/chrome/browser/chromeos/file_manager/filesystem_api_util.cc b/chrome/browser/chromeos/file_manager/filesystem_api_util.cc
index cf43d50..4e38db7 100644
--- a/chrome/browser/chromeos/file_manager/filesystem_api_util.cc
+++ b/chrome/browser/chromeos/file_manager/filesystem_api_util.cc
@@ -16,10 +16,10 @@
 #include "chrome/browser/ash/arc/fileapi/arc_file_system_operation_runner.h"
 #include "chrome/browser/ash/drive/drive_integration_service.h"
 #include "chrome/browser/ash/drive/file_system_util.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
 #include "chrome/browser/chromeos/file_manager/app_id.h"
 #include "chrome/browser/chromeos/file_manager/fileapi_util.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
 #include "chrome/browser/extensions/extension_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/arc/arc_service_manager.h"
diff --git a/chrome/browser/chromeos/file_manager/path_util_unittest.cc b/chrome/browser/chromeos/file_manager/path_util_unittest.cc
index 06ea42c..0677b719 100644
--- a/chrome/browser/chromeos/file_manager/path_util_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/path_util_unittest.cc
@@ -28,7 +28,7 @@
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/disks/disk.h"
diff --git a/chrome/browser/chromeos/file_manager/volume_manager.cc b/chrome/browser/chromeos/file_manager/volume_manager.cc
index 25e5fdf7..2dd3925 100644
--- a/chrome/browser/chromeos/file_manager/volume_manager.cc
+++ b/chrome/browser/chromeos/file_manager/volume_manager.cc
@@ -35,12 +35,12 @@
 #include "chrome/browser/ash/crostini/crostini_util.h"
 #include "chrome/browser/ash/drive/drive_integration_service.h"
 #include "chrome/browser/ash/drive/file_system_util.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/chromeos/file_manager/path_util.h"
 #include "chrome/browser/chromeos/file_manager/snapshot_manager.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager_factory.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager_observer.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
 #include "chrome/browser/media_galleries/fileapi/mtp_device_map_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/pref_names.h"
diff --git a/chrome/browser/chromeos/file_manager/volume_manager.h b/chrome/browser/chromeos/file_manager/volume_manager.h
index 87fbdf4..a8516b9 100644
--- a/chrome/browser/chromeos/file_manager/volume_manager.h
+++ b/chrome/browser/chromeos/file_manager/volume_manager.h
@@ -18,11 +18,11 @@
 #include "base/observer_list.h"
 #include "chrome/browser/ash/arc/session/arc_session_manager_observer.h"
 #include "chrome/browser/ash/drive/drive_integration_service.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/observer.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/chromeos/file_manager/documents_provider_root_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/observer.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
 #include "chromeos/dbus/cros_disks_client.h"
 #include "chromeos/disks/disk_mount_manager.h"
 #include "components/keyed_service/core/keyed_service.h"
diff --git a/chrome/browser/chromeos/file_manager/volume_manager_factory.cc b/chrome/browser/chromeos/file_manager/volume_manager_factory.cc
index 6cc161e..a7921117 100644
--- a/chrome/browser/chromeos/file_manager/volume_manager_factory.cc
+++ b/chrome/browser/chromeos/file_manager/volume_manager_factory.cc
@@ -7,8 +7,8 @@
 #include "base/bind.h"
 #include "base/memory/singleton.h"
 #include "chrome/browser/ash/drive/drive_integration_service.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
 #include "chrome/browser/profiles/incognito_helpers.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chromeos/dbus/power/power_manager_client.h"
diff --git a/chrome/browser/chromeos/file_manager/volume_manager_unittest.cc b/chrome/browser/chromeos/file_manager/volume_manager_unittest.cc
index 3990826b..4e47633 100644
--- a/chrome/browser/chromeos/file_manager/volume_manager_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/volume_manager_unittest.cc
@@ -19,11 +19,11 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/scoped_running_on_chromeos.h"
 #include "chrome/browser/ash/drive/file_system_util.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/chromeos/file_manager/fake_disk_mount_manager.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager_observer.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/power/fake_power_manager_client.h"
diff --git a/chrome/browser/chromeos/file_system_provider/OWNERS b/chrome/browser/chromeos/file_system_provider/OWNERS
deleted file mode 100644
index 944af1c..0000000
--- a/chrome/browser/chromeos/file_system_provider/OWNERS
+++ /dev/null
@@ -1,3 +0,0 @@
-# TODO(https://crbug.com/1164001): Share OWNERS until the migration of
-# //chrome/browser/chromeos/file_system_provider completes.
-file://chrome/browser/ash/file_system_provider/OWNERS
diff --git a/chrome/browser/chromeos/fileapi/external_file_url_loader_factory_unittest.cc b/chrome/browser/chromeos/fileapi/external_file_url_loader_factory_unittest.cc
index 4beba36..cdc4448 100644
--- a/chrome/browser/chromeos/fileapi/external_file_url_loader_factory_unittest.cc
+++ b/chrome/browser/chromeos/fileapi/external_file_url_loader_factory_unittest.cc
@@ -9,9 +9,9 @@
 #include <memory>
 
 #include "base/bind.h"
+#include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_extension_provider.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
 #include "content/public/browser/child_process_security_policy.h"
diff --git a/chrome/browser/chromeos/net/network_health/network_health.cc b/chrome/browser/chromeos/net/network_health/network_health.cc
index e3e1d7a5..bfbcbf4 100644
--- a/chrome/browser/chromeos/net/network_health/network_health.cc
+++ b/chrome/browser/chromeos/net/network_health/network_health.cc
@@ -136,6 +136,7 @@
     std::vector<network_config::mojom::NetworkStatePropertiesPtr>
         active_networks) {
   HandleNetworkEventsForActiveNetworks(std::move(active_networks));
+  RequestNetworkStateList();
 }
 
 void NetworkHealth::OnNetworkStateChanged(
@@ -144,6 +145,7 @@
     return;
   }
   HandleNetworkEventsForInactiveNetworks(std::move(network_state));
+  RequestNetworkStateList();
 }
 
 void NetworkHealth::OnVpnProvidersChanged() {}
@@ -245,29 +247,23 @@
 void NetworkHealth::HandleNetworkEventsForActiveNetworks(
     std::vector<network_config::mojom::NetworkStatePropertiesPtr>
         active_networks) {
-  bool refresh_network_health_state = false;
   for (const auto& network_state : active_networks) {
     const mojom::NetworkPtr* const network =
         FindMatchingNetwork(network_state->guid);
     // Fire an event if the network is new or a connection state change
     // occurred.
     if (!network || ConnectionStateChanged(*network, network_state)) {
-      refresh_network_health_state = true;
       NotifyObserversConnectionStateChanged(
           network_state->guid,
           ConnectionStateToNetworkState(network_state->connection_state));
     }
     // Fire an event if the network is new or a signal strength change occurred.
     if (!network || SignalStrengthChanged(*network, network_state)) {
-      refresh_network_health_state = true;
       NotifyObserversSignalStrengthChanged(
           network_state->guid,
           network_config::GetWirelessSignalStrength(network_state.get()));
     }
   }
-  if (refresh_network_health_state) {
-    RefreshNetworkHealthState();
-  }
 }
 
 void NetworkHealth::HandleNetworkEventsForInactiveNetworks(
@@ -287,7 +283,6 @@
     NotifyObserversConnectionStateChanged(
         network_state->guid,
         ConnectionStateToNetworkState(network_state->connection_state));
-    RefreshNetworkHealthState();
   }
 }
 
diff --git a/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc b/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
index c4dbed7..0236775 100644
--- a/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
+++ b/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
@@ -24,7 +24,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/shill/shill_device_client.h"
 #include "chromeos/dbus/shill/shill_service_client.h"
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc
index a5c71bf..106db83 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc
@@ -452,7 +452,7 @@
       continue;
     }
     aura::Window* web_contents_window = entry.first->GetNativeView();
-    if (web_contents_window->occlusion_state() ==
+    if (web_contents_window->GetOcclusionState() ==
         aura::Window::OcclusionState::OCCLUDED) {
       continue;
     }
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc
index d537638..a95622af 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc
@@ -52,14 +52,22 @@
 const DlpContentRestrictionSet kScreenshotRestricted(
     DlpContentRestriction::kScreenshot,
     DlpRulesManager::Level::kBlock);
+const DlpContentRestrictionSet kScreenshotReported(
+    DlpContentRestriction::kScreenshot,
+    DlpRulesManager::Level::kReport);
 const DlpContentRestrictionSet kPrivacyScreenEnforced(
     DlpContentRestriction::kPrivacyScreen,
     DlpRulesManager::Level::kBlock);
 const DlpContentRestrictionSet kPrintRestricted(DlpContentRestriction::kPrint,
                                                 DlpRulesManager::Level::kBlock);
+const DlpContentRestrictionSet kPrintReported(DlpContentRestriction::kPrint,
+                                              DlpRulesManager::Level::kReport);
 const DlpContentRestrictionSet kVideoCaptureRestricted(
     DlpContentRestriction::kVideoCapture,
     DlpRulesManager::Level::kBlock);
+const DlpContentRestrictionSet kVideoCaptureReported(
+    DlpContentRestriction::kVideoCapture,
+    DlpRulesManager::Level::kReport);
 const DlpContentRestrictionSet kScreenShareRestricted(
     DlpContentRestriction::kScreenShare,
     DlpRulesManager::Level::kBlock);
@@ -75,6 +83,7 @@
 constexpr char kUrl2[] = "https://example2.com";
 constexpr char kUrl3[] = "https://example3.com";
 constexpr char kUrl4[] = "https://example4.com";
+constexpr char kSrcPattern[] = "example.com";
 }  // namespace
 
 class DlpContentManagerBrowserTest : public InProcessBrowserTest {
@@ -103,6 +112,27 @@
     ASSERT_TRUE(DlpRulesManagerFactory::GetForPrimaryProfile());
   }
 
+  void SetupReporting() {
+    SetupDlpRulesManager();
+    EXPECT_CALL(*mock_rules_manager_, GetSourceUrlPattern(_, _, _))
+        .WillRepeatedly(testing::Return(kSrcPattern));
+    EXPECT_CALL(*mock_rules_manager_, IsRestricted(_, _))
+        .WillRepeatedly(testing::Return(DlpRulesManager::Level::kAllow));
+
+    // Set up mock report queue.
+    SetReportQueueForReportingManager(helper_.GetReportingManager(), events_);
+  }
+
+  void CheckEvents(DlpRulesManager::Restriction restriction,
+                   DlpRulesManager::Level level,
+                   size_t count) {
+    EXPECT_EQ(events_.size(), count);
+    for (int i = 0; i < count; ++i) {
+      EXPECT_THAT(events_[i], IsDlpPolicyEvent(CreateDlpPolicyEvent(
+                                  kSrcPattern, restriction, level)));
+    }
+  }
+
  protected:
   DlpContentManagerTestHelper helper_;
   base::HistogramTester histogram_tester_;
@@ -110,9 +140,11 @@
 
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
+  std::vector<DlpPolicyEvent> events_;
 };
 
 IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest, ScreenshotsRestricted) {
+  SetupReporting();
   DlpContentManager* manager = helper_.GetContentManager();
   ui_test_utils::NavigateToURL(browser(), GURL("https://example.com"));
   content::WebContents* web_contents =
@@ -140,6 +172,8 @@
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, true, 0);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, false, 4);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 0u);
 
   helper_.ChangeConfidentiality(web_contents, kScreenshotRestricted);
   EXPECT_TRUE(manager->IsScreenshotRestricted(fullscreen));
@@ -150,6 +184,8 @@
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, true, 3);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, false, 5);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 3u);
 
   web_contents->WasHidden();
   helper_.ChangeVisibility(web_contents);
@@ -161,6 +197,8 @@
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, true, 4);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, false, 8);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 4u);
 
   web_contents->WasShown();
   helper_.ChangeVisibility(web_contents);
@@ -172,6 +210,8 @@
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, true, 7);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, false, 9);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 7u);
 
   helper_.DestroyWebContents(web_contents);
   EXPECT_FALSE(manager->IsScreenshotRestricted(fullscreen));
@@ -181,10 +221,79 @@
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, true, 7);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, false, 12);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 7u);
+}
+
+IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest, ScreenshotsReported) {
+  SetupReporting();
+  DlpContentManager* manager = helper_.GetContentManager();
+  ui_test_utils::NavigateToURL(browser(), GURL("https://example.com"));
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  aura::Window* root_window =
+      browser()->window()->GetNativeWindow()->GetRootWindow();
+  ScreenshotArea fullscreen = ScreenshotArea::CreateForAllRootWindows();
+  ScreenshotArea window =
+      ScreenshotArea::CreateForWindow(web_contents->GetNativeView());
+  const gfx::Rect web_contents_rect = web_contents->GetContainerBounds();
+  gfx::Rect out_rect(web_contents_rect);
+  out_rect.Offset(web_contents_rect.width(), web_contents_rect.height());
+  gfx::Rect in_rect(web_contents_rect);
+  in_rect.Offset(web_contents_rect.width() / 2, web_contents_rect.height() / 2);
+  ScreenshotArea partial_out =
+      ScreenshotArea::CreateForPartialWindow(root_window, out_rect);
+  ScreenshotArea partial_in =
+      ScreenshotArea::CreateForPartialWindow(root_window, in_rect);
+
+  EXPECT_FALSE(manager->IsScreenshotRestricted(fullscreen));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(window));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_in));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_out));
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kReport, 0u);
+
+  helper_.ChangeConfidentiality(web_contents, kScreenshotReported);
+  EXPECT_FALSE(manager->IsScreenshotRestricted(fullscreen));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(window));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_in));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_out));
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kReport, 3u);
+
+  web_contents->WasHidden();
+  helper_.ChangeVisibility(web_contents);
+  EXPECT_FALSE(manager->IsScreenshotRestricted(fullscreen));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(window));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_in));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_out));
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kReport, 4u);
+
+  web_contents->WasShown();
+  helper_.ChangeVisibility(web_contents);
+  EXPECT_FALSE(manager->IsScreenshotRestricted(fullscreen));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(window));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_in));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_out));
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kReport, 7u);
+
+  helper_.DestroyWebContents(web_contents);
+  EXPECT_FALSE(manager->IsScreenshotRestricted(fullscreen));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_in));
+  EXPECT_FALSE(manager->IsScreenshotRestricted(partial_out));
+  histogram_tester_.ExpectBucketCount(
+      GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, true, 0);
+  histogram_tester_.ExpectBucketCount(
+      GetDlpHistogramPrefix() + dlp::kScreenshotBlockedUMA, false, 19);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kReport, 7u);
 }
 
 IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest,
                        VideoCaptureStoppedWhenConfidentialWindowResized) {
+  SetupReporting();
   aura::Window* root_window =
       browser()->window()->GetNativeWindow()->GetRootWindow();
 
@@ -214,6 +323,8 @@
   auto* capture_mode_delegate = ChromeCaptureModeDelegate::Get();
   capture_mode_delegate->StartObservingRestrictedContent(
       root_window, root_window->bounds(), run_loop.QuitClosure());
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 0u);
 
   // Move first window with confidential content to make it visible.
   browser1->window()->SetBounds(gfx::Rect(100, 100, 700, 700));
@@ -225,10 +336,61 @@
   browser2->window()->Close();
   histogram_tester_.ExpectUniqueSample(
       GetDlpHistogramPrefix() + dlp::kVideoCaptureInterruptedUMA, true, 1);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 1u);
+}
+
+IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest, VideoCaptureReported) {
+  SetupReporting();
+  aura::Window* root_window =
+      browser()->window()->GetNativeWindow()->GetRootWindow();
+
+  // Open first browser window.
+  Browser* browser1 = browser();
+  chrome::NewTab(browser1);
+  ui_test_utils::NavigateToURL(browser1, GURL("https://example.com"));
+  content::WebContents* web_contents1 =
+      browser1->tab_strip_model()->GetActiveWebContents();
+
+  // Open second browser window.
+  Browser* browser2 =
+      Browser::Create(Browser::CreateParams(browser()->profile(), true));
+  chrome::NewTab(browser2);
+  ui_test_utils::NavigateToURL(browser2, GURL("https://google.com"));
+
+  // Resize browsers so that second window covers the first one.
+  // Browser window can't have width less than 500.
+  browser1->window()->SetBounds(gfx::Rect(100, 100, 500, 500));
+  browser2->window()->SetBounds(gfx::Rect(0, 0, 700, 700));
+
+  // Make first window content as confidential.
+  helper_.ChangeConfidentiality(web_contents1, kVideoCaptureReported);
+
+  // Start capture of the whole screen.
+  base::RunLoop run_loop;
+  auto* capture_mode_delegate = ChromeCaptureModeDelegate::Get();
+  capture_mode_delegate->StartObservingRestrictedContent(
+      root_window, root_window->bounds(), base::BindOnce([] {
+        FAIL() << "Video capture stop callback shouldn't be called";
+      }));
+
+  // Move first window with confidential content to make it visible.
+  browser1->window()->SetBounds(gfx::Rect(100, 100, 700, 700));
+
+  // Check that capture was not requested to be stopped via callback.
+  run_loop.RunUntilIdle();
+  capture_mode_delegate->StopObservingRestrictedContent();
+
+  browser2->window()->Close();
+  histogram_tester_.ExpectBucketCount(
+      GetDlpHistogramPrefix() + dlp::kVideoCaptureInterruptedUMA, true, 0);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kReport, 1u);
 }
 
 IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest,
                        VideoCaptureStoppedWhenNonConfidentialWindowResized) {
+  SetupReporting();
   aura::Window* root_window =
       browser()->window()->GetNativeWindow()->GetRootWindow();
 
@@ -258,6 +420,8 @@
   auto* capture_mode_delegate = ChromeCaptureModeDelegate::Get();
   capture_mode_delegate->StartObservingRestrictedContent(
       root_window, root_window->bounds(), run_loop.QuitClosure());
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 0u);
 
   // Move second window to make first window with confidential content visible.
   browser2->window()->SetBounds(gfx::Rect(150, 150, 700, 700));
@@ -269,10 +433,13 @@
   browser2->window()->Close();
   histogram_tester_.ExpectUniqueSample(
       GetDlpHistogramPrefix() + dlp::kVideoCaptureInterruptedUMA, true, 1);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 1u);
 }
 
 IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest,
                        VideoCaptureNotStoppedWhenConfidentialWindowHidden) {
+  SetupReporting();
   aura::Window* root_window =
       browser()->window()->GetNativeWindow()->GetRootWindow();
 
@@ -315,10 +482,13 @@
   browser2->window()->Close();
   histogram_tester_.ExpectTotalCount(
       GetDlpHistogramPrefix() + dlp::kVideoCaptureInterruptedUMA, 0);
+  CheckEvents(DlpRulesManager::Restriction::kScreenshot,
+              DlpRulesManager::Level::kBlock, 0u);
 }
 
 IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest,
                        ScreenCaptureNotification) {
+  SetupReporting();
   NotificationDisplayServiceTester display_service_tester(browser()->profile());
   DlpContentManager* manager = helper_.GetContentManager();
   ui_test_utils::NavigateToURL(browser(), GURL("https://example.com"));
@@ -342,6 +512,8 @@
 
   helper_.ChangeConfidentiality(web_contents, kScreenShareRestricted);
 
+  CheckEvents(DlpRulesManager::Restriction::kScreenShare,
+              DlpRulesManager::Level::kBlock, 1u);
   EXPECT_TRUE(display_service_tester.GetNotification(
       kScreenCapturePausedNotificationId));
   EXPECT_FALSE(display_service_tester.GetNotification(
@@ -372,9 +544,12 @@
       GetDlpHistogramPrefix() + dlp::kScreenSharePausedOrResumedUMA, true, 1);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kScreenSharePausedOrResumedUMA, false, 1);
+  CheckEvents(DlpRulesManager::Restriction::kScreenShare,
+              DlpRulesManager::Level::kBlock, 1u);
 }
 
 IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest, PrintingRestricted) {
+  SetupReporting();
   ui_test_utils::NavigateToURL(browser(), GURL(kExampleUrl));
   content::WebContents* web_contents =
       browser()->tab_strip_model()->GetActiveWebContents();
@@ -382,31 +557,20 @@
 
   DlpContentManager* manager = helper_.GetContentManager();
 
-  SetupDlpRulesManager();
-  EXPECT_CALL(*mock_rules_manager_, GetSourceUrlPattern(_, _, _))
-      .Times(2)
-      .WillRepeatedly(testing::Return(src_pattern));
-
-  // Set up mock report queue.
-  std::vector<DlpPolicyEvent> events;
-  SetReportQueueForReportingManager(helper_.GetReportingManager(), events);
-
   NotificationDisplayServiceTester display_service_tester(browser()->profile());
 
   // No event should be emitted when there is no restriction.
   EXPECT_FALSE(manager->IsPrintingRestricted(web_contents));
-  EXPECT_TRUE(events.empty());
+  CheckEvents(DlpRulesManager::Restriction::kPrinting,
+              DlpRulesManager::Level::kBlock, 0u);
 
   // Set up printing restriction.
   helper_.ChangeConfidentiality(web_contents, kPrintRestricted);
 
   // Check that IsPrintingRestricted emitted an event.
   EXPECT_TRUE(manager->IsPrintingRestricted(web_contents));
-  EXPECT_EQ(events.size(), 1u);
-  EXPECT_THAT(events[0],
-              IsDlpPolicyEvent(CreateDlpPolicyEvent(
-                  src_pattern, DlpRulesManager::Restriction::kPrinting,
-                  DlpRulesManager::Level::kBlock)));
+  CheckEvents(DlpRulesManager::Restriction::kPrinting,
+              DlpRulesManager::Level::kBlock, 1u);
 
   // Start printing, check for notification about printing restriction, and
   // another event emitted.
@@ -416,24 +580,16 @@
                        /*print_only_selection=*/false);
   EXPECT_TRUE(
       display_service_tester.GetNotification(kPrintBlockedNotificationId));
-  EXPECT_EQ(events.size(), 2u);
-  EXPECT_THAT(events[1],
-              IsDlpPolicyEvent(CreateDlpPolicyEvent(
-                  src_pattern, DlpRulesManager::Restriction::kPrinting,
-                  DlpRulesManager::Level::kBlock)));
+  CheckEvents(DlpRulesManager::Restriction::kPrinting,
+              DlpRulesManager::Level::kBlock, 2u);
 }
 
 IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest, PrintingNotRestricted) {
+  SetupReporting();
   ui_test_utils::NavigateToURL(browser(), GURL(kExampleUrl));
   content::WebContents* web_contents =
       browser()->tab_strip_model()->GetActiveWebContents();
 
-  SetupDlpRulesManager();
-  EXPECT_CALL(*mock_rules_manager_, GetSourceUrlPattern(_, _, _)).Times(0);
-
-  std::vector<DlpPolicyEvent> events;
-  SetReportQueueForReportingManager(helper_.GetReportingManager(), events);
-
   NotificationDisplayServiceTester display_service_tester(browser()->profile());
 
   EXPECT_FALSE(helper_.GetContentManager()->IsPrintingRestricted(web_contents));
@@ -446,7 +602,35 @@
                        /*print_only_selection=*/false);
   EXPECT_FALSE(
       display_service_tester.GetNotification(kPrintBlockedNotificationId));
-  EXPECT_TRUE(events.empty());
+  CheckEvents(DlpRulesManager::Restriction::kPrinting,
+              DlpRulesManager::Level::kBlock, 0u);
+}
+
+IN_PROC_BROWSER_TEST_F(DlpContentManagerBrowserTest, PrintingReported) {
+  SetupReporting();
+  ui_test_utils::NavigateToURL(browser(), GURL(kExampleUrl));
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+
+  NotificationDisplayServiceTester display_service_tester(browser()->profile());
+
+  // Set up printing restriction.
+  helper_.ChangeConfidentiality(web_contents, kPrintReported);
+
+  EXPECT_FALSE(helper_.GetContentManager()->IsPrintingRestricted(web_contents));
+  CheckEvents(DlpRulesManager::Restriction::kPrinting,
+              DlpRulesManager::Level::kReport, 1u);
+
+  // Start printing and check that there is no notification when printing is not
+  // restricted.
+  printing::StartPrint(web_contents,
+                       /*print_renderer=*/mojo::NullAssociatedRemote(),
+                       /*print_preview_disabled=*/false,
+                       /*print_only_selection=*/false);
+  EXPECT_FALSE(
+      display_service_tester.GetNotification(kPrintBlockedNotificationId));
+  CheckEvents(DlpRulesManager::Restriction::kPrinting,
+              DlpRulesManager::Level::kReport, 2u);
 }
 
 class DlpContentManagerPolicyBrowserTest : public LoginPolicyTestBase {
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_unittest.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_unittest.cc
index 85a5ff3..83c4d5d 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_unittest.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_unittest.cc
@@ -49,6 +49,9 @@
 const DlpContentRestrictionSet kPrivacyScreenEnforced(
     DlpContentRestriction::kPrivacyScreen,
     DlpRulesManager::Level::kBlock);
+const DlpContentRestrictionSet kPrivacyScreenReported(
+    DlpContentRestriction::kPrivacyScreen,
+    DlpRulesManager::Level::kReport);
 const DlpContentRestrictionSet kPrintingRestricted(
     DlpContentRestriction::kPrint,
     DlpRulesManager::Level::kBlock);
@@ -266,6 +269,13 @@
 }
 
 TEST_F(DlpContentManagerTest, PrivacyScreenEnforcement) {
+  LoginFakeUser();
+  SetReportQueueForReportingManager();
+  SetupDlpRulesManager();
+  const std::string src_pattern("example.com");
+  EXPECT_CALL(*mock_rules_manager_, GetSourceUrlPattern(_, _, _))
+      .WillRepeatedly(::testing::Return(src_pattern));
+
   MockPrivacyScreenHelper mock_privacy_screen_helper;
   EXPECT_CALL(mock_privacy_screen_helper, SetEnforced(testing::_)).Times(0);
   std::unique_ptr<content::WebContents> web_contents = CreateWebContents();
@@ -277,6 +287,11 @@
       GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, true, 1);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, false, 0);
+  EXPECT_EQ(events_.size(), 1u);
+  EXPECT_THAT(events_[0],
+              IsDlpPolicyEvent(CreateDlpPolicyEvent(
+                  src_pattern, DlpRulesManager::Restriction::kPrivacyScreen,
+                  DlpRulesManager::Level::kBlock)));
 
   testing::Mock::VerifyAndClearExpectations(&mock_privacy_screen_helper);
   EXPECT_CALL(mock_privacy_screen_helper, SetEnforced(false)).Times(1);
@@ -287,6 +302,7 @@
       GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, true, 1);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, false, 1);
+  EXPECT_EQ(events_.size(), 1u);
 
   testing::Mock::VerifyAndClearExpectations(&mock_privacy_screen_helper);
   EXPECT_CALL(mock_privacy_screen_helper, SetEnforced(true)).Times(1);
@@ -296,6 +312,11 @@
       GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, true, 2);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, false, 1);
+  EXPECT_EQ(events_.size(), 2u);
+  EXPECT_THAT(events_[1],
+              IsDlpPolicyEvent(CreateDlpPolicyEvent(
+                  src_pattern, DlpRulesManager::Restriction::kPrivacyScreen,
+                  DlpRulesManager::Level::kBlock)));
 
   testing::Mock::VerifyAndClearExpectations(&mock_privacy_screen_helper);
   EXPECT_CALL(mock_privacy_screen_helper, SetEnforced(false)).Times(1);
@@ -305,6 +326,49 @@
       GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, true, 2);
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, false, 2);
+  EXPECT_EQ(events_.size(), 2u);
+}
+
+TEST_F(DlpContentManagerTest, PrivacyScreenReported) {
+  LoginFakeUser();
+  SetReportQueueForReportingManager();
+  SetupDlpRulesManager();
+  const std::string src_pattern("example.com");
+  EXPECT_CALL(*mock_rules_manager_, GetSourceUrlPattern(_, _, _))
+      .WillRepeatedly(::testing::Return(src_pattern));
+
+  // Privacy screen should never be enforced.
+  MockPrivacyScreenHelper mock_privacy_screen_helper;
+  EXPECT_CALL(mock_privacy_screen_helper, SetEnforced(testing::_)).Times(0);
+  std::unique_ptr<content::WebContents> web_contents = CreateWebContents();
+
+  helper_.ChangeConfidentiality(web_contents.get(), kPrivacyScreenReported);
+  EXPECT_EQ(events_.size(), 1u);
+  EXPECT_THAT(events_[0],
+              IsDlpPolicyEvent(CreateDlpPolicyEvent(
+                  src_pattern, DlpRulesManager::Restriction::kPrivacyScreen,
+                  DlpRulesManager::Level::kReport)));
+
+  web_contents->WasHidden();
+  helper_.ChangeVisibility(web_contents.get());
+  task_environment_.FastForwardBy(helper_.GetPrivacyScreenOffDelay());
+  EXPECT_EQ(events_.size(), 1u);
+
+  web_contents->WasShown();
+  helper_.ChangeVisibility(web_contents.get());
+  EXPECT_EQ(events_.size(), 2u);
+  EXPECT_THAT(events_[1],
+              IsDlpPolicyEvent(CreateDlpPolicyEvent(
+                  src_pattern, DlpRulesManager::Restriction::kPrivacyScreen,
+                  DlpRulesManager::Level::kReport)));
+
+  helper_.DestroyWebContents(web_contents.get());
+  task_environment_.FastForwardBy(helper_.GetPrivacyScreenOffDelay());
+  histogram_tester_.ExpectBucketCount(
+      GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, true, 0);
+  histogram_tester_.ExpectBucketCount(
+      GetDlpHistogramPrefix() + dlp::kPrivacyScreenEnforcedUMA, false, 0);
+  EXPECT_EQ(events_.size(), 2u);
 }
 
 TEST_F(DlpContentManagerTest, PrintingRestricted) {
@@ -351,4 +415,5 @@
   histogram_tester_.ExpectBucketCount(
       GetDlpHistogramPrefix() + dlp::kPrintingBlockedUMA, false, 2);
 }
+
 }  // namespace policy
diff --git a/chrome/browser/chromeos/policy/lock_to_single_user_manager.h b/chrome/browser/chromeos/policy/lock_to_single_user_manager.h
index 6c92860..b1af4b7e 100644
--- a/chrome/browser/chromeos/policy/lock_to_single_user_manager.h
+++ b/chrome/browser/chromeos/policy/lock_to_single_user_manager.h
@@ -11,7 +11,7 @@
 #include "base/scoped_observation.h"
 #include "chrome/browser/ash/arc/session/arc_session_manager.h"
 #include "chrome/browser/chromeos/vm_starting_observer.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/cryptohome/UserDataAuth.pb.h"
 #include "components/user_manager/user_manager.h"
 
diff --git a/chrome/browser/chromeos/policy/lock_to_single_user_manager_unittest.cc b/chrome/browser/chromeos/policy/lock_to_single_user_manager_unittest.cc
index 0f6c5ea..1061ebf 100644
--- a/chrome/browser/chromeos/policy/lock_to_single_user_manager_unittest.cc
+++ b/chrome/browser/chromeos/policy/lock_to_single_user_manager_unittest.cc
@@ -15,9 +15,9 @@
 #include "chrome/browser/ui/app_list/arc/arc_app_test.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/dbus/userdataauth/fake_cryptohome_misc_client.h"
 #include "chromeos/login/session/session_termination_manager.h"
diff --git a/chrome/browser/chromeos/policy/policy_cert_service_factory.cc b/chrome/browser/chromeos/policy/policy_cert_service_factory.cc
index 5bb9f35..c1fab71 100644
--- a/chrome/browser/chromeos/policy/policy_cert_service_factory.cc
+++ b/chrome/browser/chromeos/policy/policy_cert_service_factory.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/chromeos/policy/policy_cert_service_factory.h"
 
+#include "base/containers/contains.h"
 #include "base/memory/singleton.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/browser_process.h"
@@ -87,8 +88,7 @@
     NOTREACHED();
     return false;
   }
-  // TODO(crbug.com/1187106): Use base::Contains once |list| is not a ListValue.
-  return std::find(list->begin(), list->end(), value) != list->end();
+  return base::Contains(list->GetList(), value);
 }
 
 // static
diff --git a/chrome/browser/chromeos/policy/status_collector/child_status_collector_browsertest.cc b/chrome/browser/chromeos/policy/status_collector/child_status_collector_browsertest.cc
index 51eb6f1..3092737 100644
--- a/chrome/browser/chromeos/policy/status_collector/child_status_collector_browsertest.cc
+++ b/chrome/browser/chromeos/policy/status_collector/child_status_collector_browsertest.cc
@@ -43,7 +43,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_update_engine_client.h"
 #include "chromeos/dbus/power/fake_power_manager_client.h"
diff --git a/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc b/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc
index 7ab942f..f1a91b8 100644
--- a/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc
+++ b/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc
@@ -58,7 +58,7 @@
 #include "chrome/test/base/testing_profile_manager.h"
 #include "chromeos/dbus/attestation/attestation_client.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/cros_disks_client.h"
 #include "chromeos/dbus/cros_healthd/cros_healthd_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc
index 2fb26f2..f0efcf7 100644
--- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc
+++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc
@@ -827,9 +827,9 @@
   shutdown_subscription_ =
       UserCloudPolicyManagerChromeOSNotifierFactory::GetInstance()
           ->Get(profile_)
-          ->Subscribe(base::AdaptCallbackForRepeating(
-              base::BindOnce(&UserCloudPolicyManagerChromeOS::ProfileShutdown,
-                             base::Unretained(this))));
+          ->Subscribe(base::BindRepeating(
+              &UserCloudPolicyManagerChromeOS::ProfileShutdown,
+              base::Unretained(this)));
 }
 
 void UserCloudPolicyManagerChromeOS::ProfileShutdown() {
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
index 7c5c7e3..7f8227c9 100644
--- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
+++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
@@ -37,7 +37,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/tpm/stub_install_attributes.h"
 #include "components/enterprise/browser/reporting/common_pref_names.h"
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_token_forwarder_unittest.cc b/chrome/browser/chromeos/policy/user_cloud_policy_token_forwarder_unittest.cc
index 7315860e..6f61dad 100644
--- a/chrome/browser/chromeos/policy/user_cloud_policy_token_forwarder_unittest.cc
+++ b/chrome/browser/chromeos/policy/user_cloud_policy_token_forwarder_unittest.cc
@@ -26,7 +26,7 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/account_id/account_id.h"
 #include "components/policy/core/common/cloud/mock_cloud_external_data_manager.h"
diff --git a/chrome/browser/chromeos/printing/printer_setup_util.cc b/chrome/browser/chromeos/printing/printer_setup_util.cc
index ae53bbf..87dc537 100644
--- a/chrome/browser/chromeos/printing/printer_setup_util.cc
+++ b/chrome/browser/chromeos/printing/printer_setup_util.cc
@@ -26,6 +26,7 @@
 #include "chromeos/printing/printer_configuration.h"
 #include "components/crash/core/common/crash_keys.h"
 #include "content/public/browser/browser_thread.h"
+#include "printing/mojom/print.mojom.h"
 #include "printing/printing_features.h"
 
 namespace printing {
@@ -86,38 +87,54 @@
 
 // This runs on a ThreadPoolForegroundWorker and not the UI thread.
 base::Optional<PrinterSemanticCapsAndDefaults>
-FetchCapabilitiesOnBlockingTaskRunner(const std::string& device_name,
+FetchCapabilitiesOnBlockingTaskRunner(const std::string& printer_id,
                                       const std::string& locale) {
   auto print_backend = PrintBackend::CreateInstance(locale);
   base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
                                                 base::BlockingType::MAY_BLOCK);
 
-  VLOG(1) << "Get printer capabilities start for " << device_name;
+  VLOG(1) << "Get printer capabilities start for " << printer_id;
   crash_keys::ScopedPrinterInfo crash_key(
-      print_backend->GetPrinterDriverInfo(device_name));
+      print_backend->GetPrinterDriverInfo(printer_id));
 
   auto caps = base::make_optional<PrinterSemanticCapsAndDefaults>();
-  if (print_backend->GetPrinterSemanticCapsAndDefaults(device_name, &*caps) !=
+  if (print_backend->GetPrinterSemanticCapsAndDefaults(printer_id, &*caps) !=
       mojom::ResultCode::kSuccess) {
     // Failed to get capabilities, but proceed to assemble the settings to
     // return what information we do have.
-    LOG(WARNING) << "Failed to get capabilities for " << device_name;
+    LOG(WARNING) << "Failed to get capabilities for " << printer_id;
     return base::nullopt;
   }
   return caps;
 }
 
-void FetchCapabilities(
+void CapabilitiesFetchedFromService(
     const std::string& printer_id,
-    base::OnceCallback<
-        void(const base::Optional<PrinterSemanticCapsAndDefaults>&)> cb) {
+    GetPrinterCapabilitiesCallback cb,
+    mojom::PrinterSemanticCapsAndDefaultsResultPtr printer_caps) {
+  if (printer_caps->is_result_code()) {
+    LOG(WARNING) << "Failure fetching printer capabilities from service for "
+                 << printer_id << " - error "
+                 << printer_caps->get_result_code();
+    std::move(cb).Run(base::nullopt);
+    return;
+  }
+  VLOG(1) << "Successfully received printer capabilities from service for "
+          << printer_id;
+  std::move(cb).Run(printer_caps->get_printer_caps());
+}
+
+void FetchCapabilities(const std::string& printer_id,
+                       GetPrinterCapabilitiesCallback cb) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
   if (base::FeatureList::IsEnabled(features::kEnableOopPrintDrivers)) {
     VLOG(1) << "Fetching printer capabilities via service";
     auto& service = PrintBackendServiceManager::GetInstance().GetService(
         g_browser_process->GetApplicationLocale(), printer_id);
-    service->GetPrinterSemanticCapsAndDefaults(printer_id, std::move(cb));
+    service->GetPrinterSemanticCapsAndDefaults(
+        printer_id, base::BindOnce(&CapabilitiesFetchedFromService, printer_id,
+                                   std::move(cb)));
   } else {
     VLOG(1) << "Fetching printer capabilities in-process";
     // USER_VISIBLE because the result is displayed in the print preview dialog.
@@ -149,12 +166,10 @@
 
 }  // namespace
 
-void SetUpPrinter(
-    chromeos::CupsPrintersManager* printers_manager,
-    chromeos::PrinterConfigurer* printer_configurer,
-    const chromeos::Printer& printer,
-    base::OnceCallback<
-        void(const base::Optional<PrinterSemanticCapsAndDefaults>&)> cb) {
+void SetUpPrinter(chromeos::CupsPrintersManager* printers_manager,
+                  chromeos::PrinterConfigurer* printer_configurer,
+                  const chromeos::Printer& printer,
+                  GetPrinterCapabilitiesCallback cb) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
   // Log printer configuration for selected printer.
diff --git a/chrome/browser/chromeos/printing/printer_setup_util.h b/chrome/browser/chromeos/printing/printer_setup_util.h
index caf6124..7cb8e9f 100644
--- a/chrome/browser/chromeos/printing/printer_setup_util.h
+++ b/chrome/browser/chromeos/printing/printer_setup_util.h
@@ -14,18 +14,19 @@
 
 namespace printing {
 
+using GetPrinterCapabilitiesCallback = base::OnceCallback<void(
+    const base::Optional<PrinterSemanticCapsAndDefaults>&)>;
+
 // Sets up a printer (if necessary) and runs a callback with the printer
 // capabilities once printer setup is complete. The callback is run
 // regardless of whether or not the printer needed to be set up.
 // This function must be called from the UI thread.
 // This function is called when setting up a printer from Print Preview
 // and records a metric with the printer setup result code.
-void SetUpPrinter(
-    chromeos::CupsPrintersManager* printers_manager,
-    chromeos::PrinterConfigurer* printer_configurer,
-    const chromeos::Printer& printer,
-    base::OnceCallback<
-        void(const base::Optional<PrinterSemanticCapsAndDefaults>&)> cb);
+void SetUpPrinter(chromeos::CupsPrintersManager* printers_manager,
+                  chromeos::PrinterConfigurer* printer_configurer,
+                  const chromeos::Printer& printer,
+                  GetPrinterCapabilitiesCallback cb);
 
 }  // namespace printing
 
diff --git a/chrome/browser/chromeos/smb_client/smb_file_system.cc b/chrome/browser/chromeos/smb_client/smb_file_system.cc
index 04066529..218dab75 100644
--- a/chrome/browser/chromeos/smb_client/smb_file_system.cc
+++ b/chrome/browser/chromeos/smb_client/smb_file_system.cc
@@ -14,7 +14,7 @@
 #include "base/posix/eintr_wrapper.h"
 #include "base/task/post_task.h"
 #include "base/task/thread_pool.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/chromeos/smb_client/smb_errors.h"
 #include "chrome/browser/chromeos/smb_client/smb_file_system_id.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
@@ -661,14 +661,19 @@
     return;
   }
 
-  auto copyable_callback = base::AdaptCallbackForRepeating(std::move(callback));
   for (int i = 0; i < delete_list.entries_size(); ++i) {
     const base::FilePath entry_path(delete_list.entries(i));
     bool is_last_entry = (i == delete_list.entries_size() - 1);
 
-    auto reply =
-        base::BindOnce(&SmbFileSystem::HandleDeleteEntryCallback, AsWeakPtr(),
-                       copyable_callback, list_error, is_last_entry);
+    // The `reply` callbacks will run `callback` only once, but we need to bind
+    // it into each reply callback, so we must SplitOnceCallback() to each
+    // `reply`.
+    auto split_callback = base::SplitOnceCallback(std::move(callback));
+    callback = std::move(split_callback.first);
+
+    auto reply = base::BindOnce(&SmbFileSystem::HandleDeleteEntryCallback,
+                                AsWeakPtr(), std::move(split_callback.second),
+                                list_error, is_last_entry);
 
     SmbTask task = base::BindOnce(
         &SmbProviderClient::DeleteEntry, GetWeakSmbProviderClient(),
diff --git a/chrome/browser/chromeos/smb_client/smb_file_system.h b/chrome/browser/chromeos/smb_client/smb_file_system.h
index 47f8339f..90c33eb 100644
--- a/chrome/browser/chromeos/smb_client/smb_file_system.h
+++ b/chrome/browser/chromeos/smb_client/smb_file_system.h
@@ -17,10 +17,10 @@
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "base/timer/elapsed_timer.h"
-#include "chrome/browser/chromeos/file_system_provider/abort_callback.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/watcher.h"
+#include "chrome/browser/ash/file_system_provider/abort_callback.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/watcher.h"
 #include "chrome/browser/chromeos/smb_client/smb_service.h"
 #include "chrome/browser/chromeos/smb_client/smb_task_queue.h"
 #include "chrome/browser/chromeos/smb_client/temp_file_manager.h"
diff --git a/chrome/browser/chromeos/smb_client/smb_file_system_unittest.cc b/chrome/browser/chromeos/smb_client/smb_file_system_unittest.cc
index 09908eb..e74875d 100644
--- a/chrome/browser/chromeos/smb_client/smb_file_system_unittest.cc
+++ b/chrome/browser/chromeos/smb_client/smb_file_system_unittest.cc
@@ -11,7 +11,7 @@
 #include "base/files/file_path.h"
 #include "base/run_loop.h"
 #include "base/test/bind.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_smb_provider_client.h"
 #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/chromeos/smb_client/smb_provider.cc b/chrome/browser/chromeos/smb_client/smb_provider.cc
index 9d9bf22..f07fa143 100644
--- a/chrome/browser/chromeos/smb_client/smb_provider.cc
+++ b/chrome/browser/chromeos/smb_client/smb_provider.cc
@@ -6,9 +6,9 @@
 
 #include <utility>
 
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/chromeos/smb_client/smb_file_system.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/webui/chromeos/smb_shares/smb_share_dialog.h"
diff --git a/chrome/browser/chromeos/smb_client/smb_provider.h b/chrome/browser/chromeos/smb_client/smb_provider.h
index 270d65d7..0f87a22 100644
--- a/chrome/browser/chromeos/smb_client/smb_provider.h
+++ b/chrome/browser/chromeos/smb_client/smb_provider.h
@@ -8,10 +8,10 @@
 #include <memory>
 #include <string>
 
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/provider_interface.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/ash/file_system_provider/provider_interface.h"
 #include "chrome/browser/chromeos/smb_client/smb_file_system.h"
 
 class Profile;
diff --git a/chrome/browser/chromeos/smb_client/smb_service.cc b/chrome/browser/chromeos/smb_client/smb_service.cc
index 0844ec3..ca5b255b 100644
--- a/chrome/browser/chromeos/smb_client/smb_service.cc
+++ b/chrome/browser/chromeos/smb_client/smb_service.cc
@@ -16,11 +16,11 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/default_tick_clock.h"
 #include "base/unguessable_token.h"
+#include "chrome/browser/ash/file_system_provider/mount_path_util.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "chrome/browser/ash/kerberos/kerberos_credentials_manager.h"
 #include "chrome/browser/ash/kerberos/kerberos_credentials_manager_factory.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
-#include "chrome/browser/chromeos/file_system_provider/mount_path_util.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
 #include "chrome/browser/chromeos/smb_client/discovery/mdns_host_locator.h"
 #include "chrome/browser/chromeos/smb_client/discovery/netbios_client.h"
 #include "chrome/browser/chromeos/smb_client/discovery/netbios_host_locator.h"
diff --git a/chrome/browser/chromeos/smb_client/smb_service.h b/chrome/browser/chromeos/smb_client/smb_service.h
index 64ec08a..e6ae955d 100644
--- a/chrome/browser/chromeos/smb_client/smb_service.h
+++ b/chrome/browser/chromeos/smb_client/smb_service.h
@@ -16,9 +16,9 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/provider_interface.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provider_interface.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/chromeos/smb_client/smb_errors.h"
 #include "chrome/browser/chromeos/smb_client/smb_persisted_share_registry.h"
 #include "chrome/browser/chromeos/smb_client/smb_share_finder.h"
diff --git a/chrome/browser/chromeos/smb_client/smb_service_factory.cc b/chrome/browser/chromeos/smb_client/smb_service_factory.cc
index 84cd128..db6e9a544 100644
--- a/chrome/browser/chromeos/smb_client/smb_service_factory.cc
+++ b/chrome/browser/chromeos/smb_client/smb_service_factory.cc
@@ -8,10 +8,10 @@
 
 #include "base/time/default_tick_clock.h"
 #include "chrome/browser/ash/authpolicy/authpolicy_credentials_manager.h"
+#include "chrome/browser/ash/file_system_provider/service_factory.h"
 #include "chrome/browser/ash/kerberos/kerberos_credentials_manager_factory.h"
 #include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager_factory.h"
-#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
 #include "chrome/browser/chromeos/smb_client/smb_service.h"
 #include "chrome/browser/profiles/incognito_helpers.h"
 #include "chrome/common/pref_names.h"
diff --git a/chrome/browser/chromeos/smb_client/smb_service_unittest.cc b/chrome/browser/chromeos/smb_client/smb_service_unittest.cc
index 23487f1..1a9e332 100644
--- a/chrome/browser/chromeos/smb_client/smb_service_unittest.cc
+++ b/chrome/browser/chromeos/smb_client/smb_service_unittest.cc
@@ -23,15 +23,15 @@
 #include "base/test/scoped_feature_list.h"
 #include "base/test/simple_test_tick_clock.h"
 #include "base/threading/thread_task_runner_handle.h"
+#include "chrome/browser/ash/file_system_provider/fake_provided_file_system.h"
+#include "chrome/browser/ash/file_system_provider/fake_registry.h"
+#include "chrome/browser/ash/file_system_provider/icon_set.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/service.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
 #include "chrome/browser/chromeos/file_manager/fake_disk_mount_manager.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager.h"
 #include "chrome/browser/chromeos/file_manager/volume_manager_factory.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
-#include "chrome/browser/chromeos/file_system_provider/fake_registry.h"
-#include "chrome/browser/chromeos/file_system_provider/icon_set.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
-#include "chrome/browser/chromeos/file_system_provider/service.h"
 #include "chrome/browser/chromeos/smb_client/smb_file_system_id.h"
 #include "chrome/browser/chromeos/smb_client/smb_persisted_share_registry.h"
 #include "chrome/common/chrome_features.h"
@@ -41,7 +41,7 @@
 #include "chrome/test/base/testing_profile_manager.h"
 #include "chromeos/components/smbfs/smbfs_host.h"
 #include "chromeos/components/smbfs/smbfs_mounter.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_smb_provider_client.h"
 #include "chromeos/disks/disk_mount_manager.h"
diff --git a/chrome/browser/chromeos/window_throttle_observer_base.cc b/chrome/browser/chromeos/window_throttle_observer_base.cc
index 4aecc9ee..a1c1475 100644
--- a/chrome/browser/chromeos/window_throttle_observer_base.cc
+++ b/chrome/browser/chromeos/window_throttle_observer_base.cc
@@ -19,7 +19,7 @@
 
   const aura::Window* parent = window->parent();
   return parent &&
-         parent->id() == ash::ShellWindowId::kShellWindowId_AppListContainer;
+         parent->GetId() == ash::ShellWindowId::kShellWindowId_AppListContainer;
 }
 
 // Returns true if this window activation should be ignored (app list
diff --git a/chrome/browser/continuous_search/internal/BUILD.gn b/chrome/browser/continuous_search/internal/BUILD.gn
index e403cca..8416be5 100644
--- a/chrome/browser/continuous_search/internal/BUILD.gn
+++ b/chrome/browser/continuous_search/internal/BUILD.gn
@@ -46,6 +46,8 @@
 
   sources = [
     "android/junit/org/chromium/chrome/browser/continuous_search/BackNavigationTabObserverTest.java",
+    "android/junit/org/chromium/chrome/browser/continuous_search/ContinuousNavigationUserDataImplTest.java",
+    "android/junit/org/chromium/chrome/browser/continuous_search/ContinuousSearchTabObserverTest.java",
     "android/junit/org/chromium/chrome/browser/continuous_search/SearchResultExtractorProducerTest.java",
   ]
 
diff --git a/chrome/browser/continuous_search/internal/android/java/src/org/chromium/chrome/browser/continuous_search/ContinuousNavigationUserDataImpl.java b/chrome/browser/continuous_search/internal/android/java/src/org/chromium/chrome/browser/continuous_search/ContinuousNavigationUserDataImpl.java
index 8608c28..f61ec92 100644
--- a/chrome/browser/continuous_search/internal/android/java/src/org/chromium/chrome/browser/continuous_search/ContinuousNavigationUserDataImpl.java
+++ b/chrome/browser/continuous_search/internal/android/java/src/org/chromium/chrome/browser/continuous_search/ContinuousNavigationUserDataImpl.java
@@ -24,6 +24,8 @@
     private HashSet<ContinuousNavigationUserDataObserver> mObservers = new HashSet<>();
     private GURL mCurrentUrl;
     private int mCurrentPosition = INVALID_POSITION;
+    @VisibleForTesting
+    boolean mAllowNativeUrlChecks = true;
 
     private static ContinuousNavigationUserDataImpl sInstanceForTesting;
 
@@ -92,9 +94,7 @@
         if (!isValid()) return null;
 
         for (GURL validUrl : mValidUrls) {
-            // Match the origin and path ignoring query and ref.
-            if (validUrl.getOrigin().equals(url.getOrigin())
-                    && validUrl.getPath().equals(url.getPath())) {
+            if (equalsValidUrl(validUrl, url)) {
                 return validUrl;
             }
         }
@@ -135,6 +135,13 @@
                 && SearchUrlHelper.getSrpPageCategoryFromUrl(url) == mData.getCategory();
     }
 
+    private boolean equalsValidUrl(GURL validUrl, GURL url) {
+        // Allow matching the origin and path ignoring query and ref.
+        return validUrl.equals(url)
+                || (mAllowNativeUrlChecks && validUrl.getOrigin().equals(url.getOrigin())
+                        && validUrl.getPath().equals(url.getPath()));
+    }
+
     @VisibleForTesting
     static void setInstanceForTesting(ContinuousNavigationUserDataImpl instance) {
         sInstanceForTesting = instance;
diff --git a/chrome/browser/continuous_search/internal/android/junit/org/chromium/chrome/browser/continuous_search/ContinuousNavigationUserDataImplTest.java b/chrome/browser/continuous_search/internal/android/junit/org/chromium/chrome/browser/continuous_search/ContinuousNavigationUserDataImplTest.java
new file mode 100644
index 0000000..23ddd5c
--- /dev/null
+++ b/chrome/browser/continuous_search/internal/android/junit/org/chromium/chrome/browser/continuous_search/ContinuousNavigationUserDataImplTest.java
@@ -0,0 +1,224 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.continuous_search;
+
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+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;
+
+import org.chromium.base.UserDataHost;
+import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.base.test.util.JniMocker;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.url.GURL;
+import org.chromium.url.JUnitTestGURLs;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Test of {@link ContinuousNavigationUserDataImplTest}.
+ */
+@RunWith(BaseRobolectricTestRunner.class)
+public class ContinuousNavigationUserDataImplTest {
+    private static final String TEST_QUERY = "Bar";
+    private static final int TEST_RESULT_TYPE = 1;
+
+    @Mock
+    private Tab mTabMock;
+    @Mock
+    private SearchUrlHelper.Natives mSearchUrlHelperJniMock;
+
+    private GURL mSrpUrl;
+    private GURL mResultUrl1;
+    private GURL mResultUrl2;
+    private GURL mInvalidUrl;
+    private UserDataHost mUserDataHost;
+    private ContinuousNavigationUserDataImpl mUserData;
+
+    @Rule
+    public JniMocker mJniMocker = new JniMocker();
+
+    @Before
+    public void setUp() {
+        initMocks(this);
+        mUserDataHost = new UserDataHost();
+        mSrpUrl = JUnitTestGURLs.getGURL(JUnitTestGURLs.SEARCH_URL);
+        mJniMocker.mock(SearchUrlHelperJni.TEST_HOOKS, mSearchUrlHelperJniMock);
+        doReturn(TEST_QUERY).when(mSearchUrlHelperJniMock).getQueryIfValidSrpUrl(eq(mSrpUrl));
+        doReturn(TEST_RESULT_TYPE)
+                .when(mSearchUrlHelperJniMock)
+                .getSrpPageCategoryFromUrl(eq(mSrpUrl));
+        mResultUrl1 = JUnitTestGURLs.getGURL(JUnitTestGURLs.RED_1);
+        mResultUrl2 = JUnitTestGURLs.getGURL(JUnitTestGURLs.BLUE_1);
+        mInvalidUrl = JUnitTestGURLs.getGURL(JUnitTestGURLs.RED_2);
+        doReturn(mUserDataHost).when(mTabMock).getUserDataHost();
+        mUserData = ContinuousNavigationUserDataImpl.getOrCreateForTab(mTabMock);
+        mUserData.mAllowNativeUrlChecks = false;
+    }
+
+    class FakeContinuousNavigationUserDataObserver implements ContinuousNavigationUserDataObserver {
+        private boolean mInvalidated;
+        private ContinuousNavigationMetadata mMetadata;
+        private GURL mUrl;
+        private boolean mOnSrp;
+
+        @Override
+        public void onInvalidate() {
+            mInvalidated = true;
+            mMetadata = null;
+            mUrl = null;
+            mOnSrp = false;
+        }
+
+        @Override
+        public void onUpdate(ContinuousNavigationMetadata metadata) {
+            mMetadata = metadata;
+            mInvalidated = false;
+        }
+
+        @Override
+        public void onUrlChanged(GURL url, boolean onSrp) {
+            mUrl = url;
+            mOnSrp = onSrp;
+        }
+
+        public boolean wasInvalidated() {
+            return mInvalidated;
+        }
+
+        public ContinuousNavigationMetadata getMetadata() {
+            return mMetadata;
+        }
+
+        public GURL getCurrentUrl() {
+            return mUrl;
+        }
+
+        public boolean getOnSrp() {
+            return mOnSrp;
+        }
+    }
+
+    /**
+     * Verifies that if data exists a new observer will immediately observe it.
+     */
+    @Test
+    public void testAddObserverWithData() {
+        ContinuousNavigationMetadata metadata = loadData();
+        FakeContinuousNavigationUserDataObserver observer = attachObserver();
+
+        Assert.assertFalse(observer.wasInvalidated());
+        Assert.assertEquals(mSrpUrl, observer.getCurrentUrl());
+        Assert.assertTrue(observer.getOnSrp());
+        Assert.assertEquals(metadata, observer.getMetadata());
+    }
+
+    /**
+     * Verifies that when data is updated an observer will get the notification.
+     */
+    @Test
+    public void testObserveUpdateData() {
+        FakeContinuousNavigationUserDataObserver observer = attachObserver();
+        ContinuousNavigationMetadata metadata = loadData();
+
+        Assert.assertFalse(observer.wasInvalidated());
+        Assert.assertEquals(mSrpUrl, observer.getCurrentUrl());
+        Assert.assertTrue(observer.getOnSrp());
+        Assert.assertEquals(metadata, observer.getMetadata());
+    }
+
+    /**
+     * Verifies that when the current URL is updated an observer receives the correct information.
+     */
+    @Test
+    public void testUpdateCurrentUrl() {
+        FakeContinuousNavigationUserDataObserver observer = attachObserver();
+
+        // No-op without data.
+        mUserData.updateCurrentUrl(mSrpUrl);
+        Assert.assertFalse(observer.wasInvalidated());
+        Assert.assertNull(observer.getCurrentUrl());
+        Assert.assertFalse(observer.getOnSrp());
+
+        loadData();
+
+        // On SRP.
+        mUserData.updateCurrentUrl(mSrpUrl);
+        Assert.assertFalse(observer.wasInvalidated());
+        Assert.assertEquals(mSrpUrl, observer.getCurrentUrl());
+        Assert.assertTrue(observer.getOnSrp());
+
+        // On result.
+        mUserData.updateCurrentUrl(mResultUrl1);
+        Assert.assertFalse(observer.wasInvalidated());
+        Assert.assertEquals(mResultUrl1, observer.getCurrentUrl());
+        Assert.assertFalse(observer.getOnSrp());
+
+        // On invalid result.
+        mUserData.updateCurrentUrl(mInvalidUrl);
+        Assert.assertTrue(observer.wasInvalidated());
+        Assert.assertNull(observer.getCurrentUrl());
+        Assert.assertFalse(observer.getOnSrp());
+
+        Assert.assertFalse(mUserData.isValid());
+    }
+
+    /**
+     * Verifies that a removed observer will no longer get updates.
+     */
+    @Test
+    public void testAddRemoveObserver() {
+        FakeContinuousNavigationUserDataObserver observer = attachObserver();
+        loadData();
+
+        mUserData.updateCurrentUrl(mResultUrl2);
+        Assert.assertFalse(observer.wasInvalidated());
+        Assert.assertEquals(mResultUrl2, observer.getCurrentUrl());
+        Assert.assertFalse(observer.getOnSrp());
+
+        mUserData.removeObserver(observer);
+
+        mUserData.updateCurrentUrl(mInvalidUrl);
+        // No-change as no longer observing.
+        Assert.assertFalse(observer.wasInvalidated());
+        Assert.assertEquals(mResultUrl2, observer.getCurrentUrl());
+        Assert.assertFalse(observer.getOnSrp());
+    }
+
+    private FakeContinuousNavigationUserDataObserver attachObserver() {
+        FakeContinuousNavigationUserDataObserver observer =
+                new FakeContinuousNavigationUserDataObserver();
+        mUserData.addObserver(observer);
+        return observer;
+    }
+
+    private ContinuousNavigationMetadata loadData() {
+        GURL url3 = JUnitTestGURLs.getGURL(JUnitTestGURLs.BLUE_2);
+        GURL url4 = JUnitTestGURLs.getGURL(JUnitTestGURLs.BLUE_3);
+
+        List<PageGroup> groups = new ArrayList<PageGroup>();
+        List<PageItem> results1 = new ArrayList<PageItem>();
+        results1.add(new PageItem(mResultUrl1, "Foo.com 1"));
+        groups.add(new PageGroup("Foo", false, results1));
+        List<PageItem> results2 = new ArrayList<PageItem>();
+        results2.add(new PageItem(mResultUrl2, "Bar.com 1"));
+        results2.add(new PageItem(url3, "Bar.com 2"));
+        results2.add(new PageItem(url4, "Bar.com 3"));
+        groups.add(new PageGroup("Bar", true, results2));
+
+        ContinuousNavigationMetadata metadata =
+                new ContinuousNavigationMetadata(mSrpUrl, TEST_QUERY, TEST_RESULT_TYPE, groups);
+        mUserData.updateData(metadata, mSrpUrl);
+        return metadata;
+    }
+}
diff --git a/chrome/browser/continuous_search/internal/android/junit/org/chromium/chrome/browser/continuous_search/ContinuousSearchTabObserverTest.java b/chrome/browser/continuous_search/internal/android/junit/org/chromium/chrome/browser/continuous_search/ContinuousSearchTabObserverTest.java
new file mode 100644
index 0000000..3d895e3
--- /dev/null
+++ b/chrome/browser/continuous_search/internal/android/junit/org/chromium/chrome/browser/continuous_search/ContinuousSearchTabObserverTest.java
@@ -0,0 +1,165 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.continuous_search;
+
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InOrder;
+import org.mockito.Mock;
+
+import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.base.test.util.JniMocker;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.url.GURL;
+import org.chromium.url.JUnitTestGURLs;
+
+/**
+ * Tests for {@link ContinuousSearchTabObserver}.
+ */
+@RunWith(BaseRobolectricTestRunner.class)
+public class ContinuousSearchTabObserverTest {
+    private static final String TEST_QUERY = "Foo";
+
+    @Mock
+    private Tab mTabMock;
+    @Mock
+    private SearchUrlHelper.Natives mSearchUrlHelperJniMock;
+    @Mock
+    private ContinuousNavigationUserDataImpl mUserDataMock;
+    @Mock
+    private SearchResultProducer mProducerMock;
+
+    private GURL mSrpUrl;
+    private GURL mNonSrpUrl;
+    private ContinuousSearchTabObserver mObserver;
+
+    @Rule
+    public JniMocker mJniMocker = new JniMocker();
+
+    class FakeSearchResultProducerFactory
+            implements SearchResultProducerFactory.SearchResultProducerFactoryImpl {
+        @Override
+        public SearchResultProducer create(Tab tab, SearchResultListener listener) {
+            return mProducerMock;
+        }
+    }
+
+    @Before
+    public void setUp() {
+        mSrpUrl = JUnitTestGURLs.getGURL(JUnitTestGURLs.URL_1);
+        mNonSrpUrl = JUnitTestGURLs.getGURL(JUnitTestGURLs.URL_2);
+
+        initMocks(this);
+        mJniMocker.mock(SearchUrlHelperJni.TEST_HOOKS, mSearchUrlHelperJniMock);
+        doReturn(TEST_QUERY).when(mSearchUrlHelperJniMock).getQueryIfValidSrpUrl(eq(mSrpUrl));
+        doReturn(null).when(mSearchUrlHelperJniMock).getQueryIfValidSrpUrl(eq(mNonSrpUrl));
+        ContinuousNavigationUserDataImpl.setInstanceForTesting(mUserDataMock);
+
+        SearchResultProducerFactory.overrideFactory(new FakeSearchResultProducerFactory());
+
+        mObserver = new ContinuousSearchTabObserver(mTabMock);
+        verify(mTabMock, times(1)).addObserver(eq(mObserver));
+    }
+
+    @After
+    public void tearDown() {
+        mObserver.onDestroyed(mTabMock);
+        verify(mTabMock, times(1)).removeObserver(mObserver);
+    }
+
+    /**
+     * Verifies that nothing significant occurs when a non-SRP URL is loaded.
+     */
+    @Test
+    public void testLoadNonSrpUrl() {
+        InOrder inOrder = inOrder(mUserDataMock);
+
+        mObserver.onPageLoadStarted(mTabMock, mNonSrpUrl);
+        inOrder.verify(mUserDataMock).updateCurrentUrl(eq(mNonSrpUrl));
+
+        mObserver.onPageLoadFinished(mTabMock, mNonSrpUrl);
+        inOrder.verify(mUserDataMock).updateCurrentUrl(eq(mNonSrpUrl));
+    }
+
+    /**
+     * Verifies that results are requested and handled when a SRP URL is loaded.
+     */
+    @Test
+    public void testLoadSrpUrl() {
+        InOrder inOrder = inOrder(mUserDataMock, mProducerMock);
+
+        mObserver.onPageLoadStarted(mTabMock, mSrpUrl);
+        inOrder.verify(mUserDataMock).updateCurrentUrl(eq(mSrpUrl));
+
+        mObserver.onPageLoadFinished(mTabMock, mSrpUrl);
+        inOrder.verify(mUserDataMock).updateCurrentUrl(eq(mSrpUrl));
+        inOrder.verify(mProducerMock).fetchResults(eq(mSrpUrl), eq(TEST_QUERY));
+
+        ContinuousNavigationMetadata metadata = mock(ContinuousNavigationMetadata.class);
+        doReturn(mSrpUrl).when(mTabMock).getUrl();
+        mObserver.onResult(metadata);
+        inOrder.verify(mUserDataMock).updateData(eq(metadata), eq(mSrpUrl));
+
+        inOrder.verifyNoMoreInteractions();
+    }
+
+    /**
+     * Verifies that results are requested when a SRP URL is loaded and errors are handled.
+     */
+    @Test
+    public void testLoadSrpUrlWithError() {
+        InOrder inOrder = inOrder(mUserDataMock, mProducerMock);
+
+        mObserver.onPageLoadStarted(mTabMock, mSrpUrl);
+        inOrder.verify(mUserDataMock).updateCurrentUrl(eq(mSrpUrl));
+
+        mObserver.onPageLoadFinished(mTabMock, mSrpUrl);
+        inOrder.verify(mUserDataMock).updateCurrentUrl(eq(mSrpUrl));
+        inOrder.verify(mProducerMock).fetchResults(eq(mSrpUrl), eq(TEST_QUERY));
+
+        mObserver.onError(1);
+        inOrder.verifyNoMoreInteractions();
+    }
+
+    /**
+     * Verifies that results are requested when a SRP URL is loaded and interruption with closing
+     * contents is handled.
+     */
+    @Test
+    public void testCloseContents() {
+        InOrder inOrder = inOrder(mUserDataMock, mProducerMock);
+
+        mObserver.onPageLoadStarted(mTabMock, mSrpUrl);
+        inOrder.verify(mUserDataMock).updateCurrentUrl(eq(mSrpUrl));
+
+        mObserver.onPageLoadFinished(mTabMock, mSrpUrl);
+        inOrder.verify(mUserDataMock).updateCurrentUrl(eq(mSrpUrl));
+        inOrder.verify(mProducerMock).fetchResults(eq(mSrpUrl), eq(TEST_QUERY));
+
+        mObserver.onCloseContents(mTabMock);
+        inOrder.verify(mUserDataMock).invalidateData();
+        inOrder.verifyNoMoreInteractions();
+    }
+
+    /**
+     * Verifies that changing activity attachment is a no-op.
+     */
+    @Test
+    public void testOnActivityAttachmentChanged() {
+        // Test no-op.
+        mObserver.onActivityAttachmentChanged(mTabMock, null);
+    }
+}
diff --git a/chrome/browser/device_identity/device_oauth2_token_service.h b/chrome/browser/device_identity/device_oauth2_token_service.h
index 8dc16bf..5369919 100644
--- a/chrome/browser/device_identity/device_oauth2_token_service.h
+++ b/chrome/browser/device_identity/device_oauth2_token_service.h
@@ -34,8 +34,8 @@
                                  public gaia::GaiaOAuthClient::Delegate,
                                  public DeviceOAuth2TokenStore::Observer {
  public:
-  typedef base::RepeatingCallback<void()> RefreshTokenAvailableCallback;
-  typedef base::RepeatingCallback<void(bool)> StatusCallback;
+  using RefreshTokenAvailableCallback = base::RepeatingClosure;
+  using StatusCallback = base::OnceCallback<void(bool)>;
 
   // Persist the given refresh token on the device. Overwrites any previous
   // value. Should only be called during initial device setup. Signals
diff --git a/chrome/browser/devtools/devtools_file_helper.cc b/chrome/browser/devtools/devtools_file_helper.cc
index aefe724..012065cc 100644
--- a/chrome/browser/devtools/devtools_file_helper.cc
+++ b/chrome/browser/devtools/devtools_file_helper.cc
@@ -136,7 +136,7 @@
 void AppendToFile(const base::FilePath& path, const std::string& content) {
   DCHECK(!path.empty());
 
-  base::AppendToFile(path, content.c_str(), content.size());
+  base::AppendToFile(path, content);
 }
 
 storage::IsolatedContext* isolated_context() {
diff --git a/chrome/browser/enterprise/connectors/device_trust/attestation_protos/attestation_ca.proto b/chrome/browser/enterprise/connectors/device_trust/attestation_protos/attestation_ca.proto
index 3432715..e3fac270 100644
--- a/chrome/browser/enterprise/connectors/device_trust/attestation_protos/attestation_ca.proto
+++ b/chrome/browser/enterprise/connectors/device_trust/attestation_protos/attestation_ca.proto
@@ -319,9 +319,9 @@
 message KeyInfo {
   // Indicates whether the key is an EMK or EUK.
   optional KeyProfile key_type = 1;
-  // Domain information about the user associated with the key. For an
-  // EMK, this value is empty - customer_id is used instead.
-  // For an EUK, this value is the user's email address.
+  // Domain information about the device or user associated with the key. For an
+  // EMK, this value is the enrolled domain. For an EUK, this value is the
+  // user's email address.
   optional string domain = 2;
   // The virtual device ID associated with the device or user.
   optional bytes device_id = 3;
@@ -334,6 +334,79 @@
   // The identifier of the customer, as defined by the Google Admin SDK at
   // https://developers.google.com/admin-sdk/directory/v1/guides/manage-customers
   optional string customer_id = 6;
+  // A new field which contains public key generated by the CBCM-enrolled
+  // browser if key type is CBCM
+  optional bytes browser_instance_public_key = 7;
+  // A new field which indicated the signing scheme used for the outer
+  // SignedData message. We should populate this for any key type. For EUK/EMK
+  // (Chrome OS use case), this will currently say "SHA256withRSA" at all times,
+  // but we should start supporting ECDSA signing in the near future as per 2020
+  // OKRs. For CBCM, this will be one of the permitted_schemes from
+  // DeviceIdentity policy.
+  optional string signing_scheme = 8;
+  // Device Trust Signals
+  optional DeviceTrustSignals device_trust_signals = 9;
+}
+
+// Device Trust Signals
+message DeviceTrustSignals {
+  // Device Id
+  optional string device_id = 1;
+  // Customer Id
+  optional string customer_id = 2;
+  // OrgUnit Id
+  optional string ou_id = 3;
+  // Human readable name for this device
+  optional string display_name = 4;
+  // OS running on the device (e.g. Chrome OS)
+  optional string os = 5;
+  // Device manufacturer (e.g. Dell)
+  optional string device_manufacturer = 6;
+  // Device model (e.g. iPhone 12 Max)
+  optional string device_model = 7;
+  // OS version (e.g. macOS 10.15.7)
+  optional string os_version = 8;
+  // IMEI
+  optional string imei = 9;
+  // MEID
+  optional string meid = 10;
+  // Hash of the EKPub certificate of the TPM on the device, if available.
+  optional string tpm_hash = 11;
+  // Is the disk encrypted
+  optional bool is_disk_encrypted = 12;
+  // Allow Screen Lock
+  optional bool allow_screen_lock = 13;
+  // Is the access to the OS user protected by a password
+  optional bool is_protected_by_password = 14;
+  // Is the device jailbroken or modified
+  optional bool is_jailbroken = 15;
+  // The CBCM enrollment domain of the browser.
+  optional string enrollment_domain = 16;
+  // Browser Version
+  optional string browser_version = 17;
+  // SafeBrowsingProtectionLevel
+  optional int32 safe_browsing_protection_level = 18;
+  // Site Isolation enabled
+  optional bool site_isolation_enabled = 19;
+  // ThirdPartyBlockingEnabled
+  optional bool third_party_blocking_enabled = 20;
+  // To determine whether users can access other computers
+  // from Chrome using Chrome Remote Desktop
+  optional bool remote_desktop_available = 21;
+  // Signed in profile name
+  optional string signed_in_profile_name = 22;
+  // ChromeCleanupEnabled
+  optional bool chrome_cleanup_enabled = 23;
+  // PasswordProtectionWarningTrigger
+  optional int32 password_protection_warning_trigger = 24;
+  // DNS address
+  optional string dns_address = 25;
+  // BuiltInDnsClientEnabled
+  optional bool built_in_dns_client_enabled = 26;
+  // Whether the OS firewall is turned on
+  optional bool firewall_on = 27;
+  // The Windows domain the device has joined
+  optional string windows_domain = 28;
 }
 
 enum KeyProfile {
@@ -341,4 +414,6 @@
   EMK = 0;
   // Enterprise user key.
   EUK = 1;
-}
+  // CBCM key.
+  CBCM = 2;
+}
\ No newline at end of file
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.cc b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.cc
index 23ff41c..42ae478 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.cc
@@ -23,37 +23,46 @@
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/mojom/url_response_head.mojom.h"
 
-#define LOG_API_FAIL(severity, class, net_error, headers, body)   \
-  DLOG(severity) << "[BoxApiCallFlow] "                           \
-                 << class << " failed; net error = " << net_error \
-                 << "; code = " << headers->response_code()       \
-                 << ";\nheader: " << headers->raw_headers()       \
+#define LOG_API_FAIL(severity, flow, net_error, headers, body) \
+  DLOG(severity) << "[BoxApiCallFlow] " << flow                \
+                 << " failed; net error = " << net_error       \
+                 << "; code = " << headers->response_code()    \
+                 << ";\nheader: " << headers->raw_headers()    \
                  << ";\nbody: " << (body ? *body : "<null>");
 
-#define LOG_PARSE_FAIL(severity, class, result)                             \
-  DLOG(severity) << "[BoxApiCallFlow] " << class << " OnJsonParsed Error: " \
+#define LOG_PARSE_FAIL(severity, flow, result)                             \
+  DLOG(severity) << "[BoxApiCallFlow] " << flow << " OnJsonParsed Error: " \
                  << (result.error ? result.error->data() : "<no error info>");
 
+#define LOG_PARSE_FAIL_IF(log_condition, severity, flow, result) \
+  if (log_condition) {                                           \
+    LOG_PARSE_FAIL(severity, flow, result);                      \
+  }
+
 namespace {
 
 // Create folder at root.
 static const char kParentFolderId[] = "0";
 
-std::string ExtractFolderId(const base::Value& entry) {
-  const base::Value* folder_id = entry.FindPath("id");
-  if (!folder_id) {
-    DLOG(ERROR) << "[BoxApiCallFlow] Can't find folder id! " << entry;
+std::string ExtractId(const base::Value& entry) {
+  DCHECK(entry.is_dict()) << entry;
+  const base::Value* id_val = entry.FindPath("id");
+  if (!id_val) {
+    DLOG(ERROR) << "[BoxApiCallFlow] Can't find id! " << entry;
     return std::string();
   }
 
   std::string id;
-  if (folder_id->type() == base::Value::Type::STRING) {
-    id = folder_id->GetString();
-  } else if (folder_id->type() == base::Value::Type::INTEGER) {
-    id = base::NumberToString(folder_id->GetInt());
-  } else {
-    const char* type_name = folder_id->GetTypeName(folder_id->type());
-    DLOG(ERROR) << "[BoxApiCallFlow] Invalid folder_id type: " << type_name;
+  switch (id_val->type()) {
+    case base::Value::Type::STRING:
+      id = id_val->GetString();
+      break;
+    case base::Value::Type::INTEGER:
+      id = base::NumberToString(id_val->GetInt());
+      break;
+    default:
+      DLOG(ERROR) << "[BoxApiCallFlow] Invalid id_val type: "
+                  << id_val->GetTypeName(id_val->type());
   }
   return id;
 }
@@ -99,6 +108,46 @@
   return true;
 }
 
+using Box = enterprise_connectors::BoxApiCallFlow;
+
+bool ExtractEntriesList(const Box::ParseResult& result,
+                        base::Value::ConstListView* list) {
+  if (!result.value) {
+    return false;
+  }
+
+  const base::Value* entries = result.value->FindPath("entries");
+  if (!entries || !entries->is_list()) {
+    return false;
+  }
+
+  CHECK(list);
+  *list = entries->GetList();
+  return true;
+}
+
+GURL ExtractUploadedFileUrl(const Box::ParseResult& result) {
+  base::Value::ConstListView list;
+  std::string file_id;
+  if (ExtractEntriesList(result, &list) && !list.empty()) {
+    file_id = ExtractId(list.front());
+  }
+  LOG_PARSE_FAIL_IF(file_id.empty(), ERROR, "ExtractUploadedFileUrl", result);
+  return file_id.empty() ? GURL() : Box::MakeUrlToShowFile(file_id);
+}
+
+void ProcessUploadSuccessResponse(const network::mojom::URLResponseHead* head,
+                                  std::unique_ptr<std::string> body,
+                                  base::OnceCallback<void(GURL)> callback) {
+  data_decoder::DataDecoder::ParseJsonIsolated(
+      *body, base::BindOnce(
+                 [](decltype(callback) cb, Box::ParseResult result) {
+                   auto url = ExtractUploadedFileUrl(result);
+                   std::move(cb).Run(url);
+                 },
+                 std::move(callback)));
+}
+
 }  // namespace
 
 namespace enterprise_connectors {
@@ -156,6 +205,19 @@
   return base::StringPrintf("sha=%s=", sha_digest.c_str());
 }
 
+// static
+GURL BoxApiCallFlow::MakeUrlToShowFile(const std::string& file_id) {
+  DCHECK(file_id.size());
+  return GURL("https://app.box.com/file/").Resolve(file_id);
+}
+
+// static
+GURL BoxApiCallFlow::MakeUrlToShowFolder(const std::string& folder_id) {
+  return folder_id.empty()
+             ? GURL()
+             : GURL("https://app.box.com/folder/").Resolve(folder_id);
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // FindUpstreamFolder
 ////////////////////////////////////////////////////////////////////////////////
@@ -193,29 +255,16 @@
   std::move(callback_).Run(false, response_code, std::string());
 }
 
-void BoxFindUpstreamFolderApiCallFlow::OnJsonParsed(
-    data_decoder::DataDecoder::ValueOrError result) {
-  if (!result.value) {
-    LOG_PARSE_FAIL(ERROR, "FindUpstreamFolder", result);
-    std::move(callback_).Run(false, net::HTTP_OK, std::string());
-    return;
+void BoxFindUpstreamFolderApiCallFlow::OnJsonParsed(ParseResult result) {
+  base::Value::ConstListView list;
+  bool extract_entries = ExtractEntriesList(result, &list);
+  if (extract_entries && !list.empty()) {
+    std::string folder_id = ExtractId(list.front());
+    std::move(callback_).Run(!folder_id.empty(), net::HTTP_OK, folder_id);
+  } else {
+    LOG_PARSE_FAIL_IF(!extract_entries, ERROR, "FindUpstreamFolder", result);
+    std::move(callback_).Run(extract_entries, net::HTTP_OK, std::string());
   }
-
-  const base::Value* entries = result.value->FindPath("entries");
-  if (entries && entries->is_list()) {
-    auto entries_list = entries->GetList();
-    if (!entries_list.empty()) {
-      std::string folder_id = ExtractFolderId(entries_list.front());
-      std::move(callback_).Run(!folder_id.empty(), net::HTTP_OK, folder_id);
-    } else {
-      // Can't find folder, so return empty id but success status.
-      std::move(callback_).Run(true, net::HTTP_OK, std::string());
-    }
-    return;
-  }
-
-  DLOG(ERROR) << "[BoxApiCallFlow] FindUpstreamFolder returned invalid entries";
-  std::move(callback_).Run(false, net::HTTP_OK, std::string());
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -267,14 +316,12 @@
   std::move(callback_).Run(false, response_code, std::string());
 }
 
-void BoxCreateUpstreamFolderApiCallFlow::OnJsonParsed(
-    data_decoder::DataDecoder::ValueOrError result) {
+void BoxCreateUpstreamFolderApiCallFlow::OnJsonParsed(ParseResult result) {
   std::string folder_id;
   if (result.value) {
-    folder_id = ExtractFolderId(*result.value);
-  } else {
-    LOG_PARSE_FAIL(ERROR, "CreateUpstreamFolder", result);
+    folder_id = ExtractId(*result.value);
   }
+  LOG_PARSE_FAIL_IF(folder_id.empty(), ERROR, "CreateUpstreamFolder", result);
   std::move(callback_).Run(!folder_id.empty(), net::HTTP_CREATED, folder_id);
   return;
 }
@@ -362,7 +409,7 @@
   // Ensure that file extension was valid and file type was obtained.
   if (file_mime_type_.empty()) {
     DLOG(ERROR) << "Couldn't obtain proper file type for " << target_file_name_;
-    std::move(callback_).Run(false, 0);
+    std::move(callback_).Run(false, 0, GURL());
   }
 
   // Forward the arguments via PostReadFileTask() then OnFileRead() into
@@ -400,7 +447,7 @@
   if (!file_read) {
     DLOG(ERROR) << "[BoxApiCallFlow] WholeFileUpload read file failed";
     // TODO(https://crbug.com/1165972): error handling
-    std::move(callback_).Run(false, 0);
+    std::move(callback_).Run(false, 0, GURL());
     return;
   }
   DCHECK_LE(file_read->size(), kWholeFileUploadMaxSize);
@@ -450,11 +497,14 @@
 bool BoxWholeFileUploadApiCallFlow::IsExpectedSuccessCode(int code) const {
   return code == net::HTTP_CREATED;
 }
+
 void BoxWholeFileUploadApiCallFlow::ProcessApiCallSuccess(
     const network::mojom::URLResponseHead* head,
     std::unique_ptr<std::string> body) {
-  auto response_code = head->headers->response_code();
-  std::move(callback_).Run(true, response_code);
+  DCHECK_EQ(head->headers->response_code(), net::HTTP_CREATED);
+  ProcessUploadSuccessResponse(
+      head, std::move(body),
+      base::BindOnce(std::move(callback_), true, net::HTTP_CREATED));
 }
 
 void BoxWholeFileUploadApiCallFlow::ProcessApiCallFailure(
@@ -463,7 +513,7 @@
     std::unique_ptr<std::string> body) {
   LOG_API_FAIL(ERROR, "WholeFileUpload", net_error, head->headers, body);
   auto response_code = head->headers->response_code();
-  std::move(callback_).Run(false, response_code);
+  std::move(callback_).Run(false, response_code, GURL());
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -528,8 +578,7 @@
   std::move(callback_).Run(false, response_code, CreateEmptyDict(), 0);
 }
 
-void BoxCreateUploadSessionApiCallFlow::OnJsonParsed(
-    data_decoder::DataDecoder::ValueOrError result) {
+void BoxCreateUploadSessionApiCallFlow::OnJsonParsed(ParseResult result) {
   bool valid_response = result.value.has_value();
   if (!valid_response) {
     LOG_PARSE_FAIL(ERROR, "CreateUploadSession", result);
@@ -642,8 +691,7 @@
   std::move(callback_).Run(false, response_code, base::Value());
 }
 
-void BoxPartFileUploadApiCallFlow::OnJsonParsed(
-    data_decoder::DataDecoder::ValueOrError result) {
+void BoxPartFileUploadApiCallFlow::OnJsonParsed(ParseResult result) {
   if (!result.value) {
     LOG_PARSE_FAIL(ERROR, "PartFileUpload", result);
     std::move(callback_).Run(false, net::HTTP_OK, base::Value());
@@ -739,18 +787,26 @@
     const network::mojom::URLResponseHead* head,
     std::unique_ptr<std::string> body) {
   auto response_code = head->headers->response_code();
-  bool success = true;
+
+  if (response_code == net::HTTP_CREATED) {
+    auto created_cb = base::BindOnce(std::move(callback_), true, response_code,
+                                     base::TimeDelta());
+    return ProcessUploadSuccessResponse(head, std::move(body),
+                                        std::move(created_cb));
+  }
+
+  bool success = false;
   base::TimeDelta retry_after;
   if (response_code == net::HTTP_ACCEPTED) {
     std::string retry_string;
-    success &=
-        head->headers->EnumerateHeader(nullptr, "Retry-After", &retry_string);
-    success &= net::HttpUtil::ParseRetryAfterHeader(
-        retry_string, base::Time::Now(), &retry_after);
-    DCHECK(success) << "Unable to find Retry-After header. Headers: "
-                    << head->headers->raw_headers();
+    success =
+        head->headers->EnumerateHeader(nullptr, "Retry-After", &retry_string) &&
+        net::HttpUtil::ParseRetryAfterHeader(retry_string, base::Time::Now(),
+                                             &retry_after);
   }
-  std::move(callback_).Run(success, response_code, retry_after);
+
+  DCHECK(success) << head->headers->raw_headers();
+  std::move(callback_).Run(success, response_code, retry_after, GURL());
 }
 
 void BoxCommitUploadSessionApiCallFlow::ProcessApiCallFailure(
@@ -759,7 +815,7 @@
     std::unique_ptr<std::string> body) {
   LOG_API_FAIL(ERROR, "CommitUploadSession", net_error, head->headers, body);
   auto response_code = head->headers->response_code();
-  std::move(callback_).Run(false, response_code, base::TimeDelta());
+  std::move(callback_).Run(false, response_code, base::TimeDelta(), GURL());
 }
 
 }  // namespace enterprise_connectors
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.h b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.h
index ee29a859a..7306586 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.h
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow.h
@@ -32,11 +32,15 @@
       override;
 
   static std::string FormatSHA1Digest(const std::string& sha_digest);
+  static GURL MakeUrlToShowFile(const std::string& file_id);
+  static GURL MakeUrlToShowFolder(const std::string& folder_id);
 
   // Used by BoxApiCallFlow inherited classes and BoxUploader
   // to determine whether to use WholeFileUpload or ChunkedFileUpload
   static const size_t kChunkFileUploadMinSize;
   static const size_t kWholeFileUploadMaxSize;
+
+  using ParseResult = data_decoder::DataDecoder::ValueOrError;
 };
 
 // Helper for finding the downloads folder in Box.
@@ -59,7 +63,7 @@
 
  private:
   // Callback for JsonParser that extracts folder id in ProcessApiCallSuccess().
-  void OnJsonParsed(data_decoder::DataDecoder::ValueOrError result);
+  void OnJsonParsed(ParseResult result);
 
   // Callback from the uploader to report success, http_code, folder_id.
   TaskCallback callback_;
@@ -88,7 +92,7 @@
 
  private:
   // Callback for JsonParser that extracts folder id in ProcessApiCallSuccess().
-  void OnJsonParsed(data_decoder::DataDecoder::ValueOrError result);
+  void OnJsonParsed(ParseResult result);
 
   // Callback from the uploader to report success, http_code, folder_id.
   TaskCallback callback_;
@@ -128,6 +132,8 @@
 // downloads folder in box.
 class BoxWholeFileUploadApiCallFlow : public BoxApiCallFlow {
  public:
+  // Additional args are: url to show the uploaded item on Box.
+  using TaskCallback = base::OnceCallback<void(bool, int, GURL)>;
   BoxWholeFileUploadApiCallFlow(TaskCallback callback,
                                 const std::string& folder_id,
                                 const base::FilePath& target_file_name,
@@ -208,7 +214,7 @@
                              std::unique_ptr<std::string> body) override;
 
  private:
-  void OnJsonParsed(data_decoder::DataDecoder::ValueOrError result);
+  void OnJsonParsed(ParseResult result);
 
   TaskCallback callback_;
   const std::string folder_id_;
@@ -267,7 +273,7 @@
                              std::unique_ptr<std::string> body) override;
 
  private:
-  void OnJsonParsed(data_decoder::DataDecoder::ValueOrError result);
+  void OnJsonParsed(ParseResult result);
   TaskCallback callback_;
   const std::string& part_content_;
   const std::string content_range_;
@@ -302,7 +308,10 @@
 class BoxCommitUploadSessionApiCallFlow
     : public BoxChunkedUploadBaseApiCallFlow {
  public:
-  using TaskCallback = base::OnceCallback<void(bool, int, base::TimeDelta)>;
+  // Additional args are: Retry-After header duration, and url to show the
+  // uploaded item on Box.
+  using TaskCallback =
+      base::OnceCallback<void(bool, int, base::TimeDelta, GURL)>;
   BoxCommitUploadSessionApiCallFlow(TaskCallback callback,
                                     const std::string& session_endpoint,
                                     const base::Value& parts,
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc
index 2334cec..ec44371 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_flow_unittest.cc
@@ -92,126 +92,99 @@
   ASSERT_EQ(processed_folder_id_, "");
 }
 
-class BoxFindUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess
-    : public BoxFindUpstreamFolderApiCallFlowTest {
- protected:
-  void SetUp() override {
-    BoxFindUpstreamFolderApiCallFlowTest::SetUp();
-    head_ = network::CreateURLResponseHead(net::HTTP_OK);
-  }
-  data_decoder::test::InProcessDataDecoder decoder_;
-  network::mojom::URLResponseHeadPtr head_;
+struct FindUpstreamFolderSuccessResponses {
+  base::StringPiece body;
+  bool expected_success;
+  std::string expected_folder_id;
 };
 
-TEST_F(BoxFindUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess, EmptyBody) {
-  flow_->ProcessApiCallSuccess(head_.get(), std::make_unique<std::string>());
-  base::RunLoop().RunUntilIdle();
-  ASSERT_FALSE(processed_success_);
-  ASSERT_EQ(processed_folder_id_, "");
-}
+class BoxFindUpstreamFolder_ProcessApiCallSuccessTest
+    : public BoxFindUpstreamFolderApiCallFlowTest,
+      public testing::WithParamInterface<FindUpstreamFolderSuccessResponses> {
+ protected:
+  void ProcessApiCallSuccess(base::StringPiece body) {
+    network::mojom::URLResponseHeadPtr head =
+        network::CreateURLResponseHead(net::HTTP_OK);
+    flow_->ProcessApiCallSuccess(
+        head.get(), std::make_unique<std::string>(body.data(), body.size()));
+    base::RunLoop().RunUntilIdle();
+  }
 
-TEST_F(BoxFindUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess,
-       InvalidBody) {
-  flow_->ProcessApiCallSuccess(head_.get(),
-                               std::make_unique<std::string>("adgafdga"));
-  base::RunLoop().RunUntilIdle();
-  ASSERT_FALSE(processed_success_);
-  ASSERT_EQ(processed_folder_id_, "");
-}
+ private:
+  data_decoder::test::InProcessDataDecoder decoder_;
+};
 
-TEST_F(BoxFindUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess,
-       EmptyEntries) {
-  flow_->ProcessApiCallSuccess(
-      head_.get(), std::make_unique<std::string>(
-                       kFileSystemBoxFindFolderResponseEmptyEntriesList));
-  base::RunLoop().RunUntilIdle();
-  ASSERT_TRUE(processed_success_);
+TEST_P(BoxFindUpstreamFolder_ProcessApiCallSuccessTest, ExtractFolderId) {
+  const auto& body = GetParam().body;
+  ProcessApiCallSuccess(body);
   ASSERT_EQ(response_code_, net::HTTP_OK);
-  ASSERT_EQ(processed_folder_id_, "");
+  ASSERT_EQ(processed_success_, GetParam().expected_success) << body;
+  ASSERT_EQ(processed_folder_id_, GetParam().expected_folder_id) << body;
 }
 
-TEST_F(BoxFindUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess, NoFolderId) {
-  std::string body(R"({
-    "entries": [
-      {
-        "etag": 1,
-        "type": "folder",
-        "sequence_id": 3,
-        "name": "ChromeDownloads"
-      }
-    ]
-  })");
-  flow_->ProcessApiCallSuccess(head_.get(),
-                               std::make_unique<std::string>(body));
-  base::RunLoop().RunUntilIdle();
-  ASSERT_FALSE(processed_success_);
-  ASSERT_EQ(response_code_, net::HTTP_OK);
-  ASSERT_EQ(processed_folder_id_, "");
-}
+const char kFileSystemBoxFindFolderResponseNoFolderId[] = R"({
+  "entries": [
+    {
+      "etag": 1,
+      "type": "folder",
+      "sequence_id": 3,
+      "name": "ChromeDownloads"
+    }
+  ]
+})";
 
-TEST_F(BoxFindUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess,
-       EmptyFolderId) {
-  std::string body(R"({
-    "entries": [
-      {
-        "id": ,
-        "etag": 1,
-        "type": "folder",
-        "sequence_id": 3,
-        "name": "ChromeDownloads"
-      }
-    ]
-  })");
-  flow_->ProcessApiCallSuccess(head_.get(),
-                               std::make_unique<std::string>(body));
-  base::RunLoop().RunUntilIdle();
-  ASSERT_FALSE(processed_success_);
-  ASSERT_EQ(response_code_, net::HTTP_OK);
-  ASSERT_EQ(processed_folder_id_, "");
-}
+const char kFileSystemBoxFindFolderResponseEmptyFolderId[] = R"({
+  "entries": [
+    {
+      "id": ,
+      "etag": 1,
+      "type": "folder",
+      "sequence_id": 3,
+      "name": "ChromeDownloads"
+    }
+  ]
+})";
 
-TEST_F(BoxFindUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess,
-       IntegerFolderId) {
-  flow_->ProcessApiCallSuccess(
-      head_.get(),
-      std::make_unique<std::string>(kFileSystemBoxFindFolderResponseBody));
-  base::RunLoop().RunUntilIdle();
-  ASSERT_TRUE(processed_success_);
-  ASSERT_EQ(response_code_, net::HTTP_OK);
-  ASSERT_EQ(processed_folder_id_, kFileSystemBoxFindFolderResponseFolderId);
-}
+const char kFileSystemBoxFindFolderResponseBodyWithStringFolderId[] = R"({
+  "entries": [
+    {
+      "id": "12345",
+      "etag": 1,
+      "type": "folder",
+      "sequence_id": 3,
+      "name": "ChromeDownloads"
+    }
+  ]
+})";
 
-TEST_F(BoxFindUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess,
-       StringFolderId) {
-  flow_->ProcessApiCallSuccess(
-      head_.get(),
-      std::make_unique<std::string>(kFileSystemBoxFindFolderResponseBody));
-  base::RunLoop().RunUntilIdle();
-  ASSERT_TRUE(processed_success_);
-  ASSERT_EQ(response_code_, net::HTTP_OK);
-  ASSERT_EQ(processed_folder_id_, kFileSystemBoxFindFolderResponseFolderId);
-}
+const char kFileSystemBoxFindFolderResponseBodyWithFloatFolderId[] = R"({
+  "entries": [
+    {
+      "id": 123.5,
+      "etag": 1,
+      "type": "folder",
+      "sequence_id": 3,
+      "name": "ChromeDownloads"
+    }
+  ]
+})";
 
-TEST_F(BoxFindUpstreamFolderApiCallFlowTest_ProcessApiCallSuccess,
-       FloatFolderId) {
-  std::string body(R"({
-    "entries": [
-      {
-        "id": 123.5,
-        "etag": 1,
-        "type": "folder",
-        "sequence_id": 3,
-        "name": "ChromeDownloads"
-      }
-    ]
-  })");
-  flow_->ProcessApiCallSuccess(head_.get(),
-                               std::make_unique<std::string>(body));
-  base::RunLoop().RunUntilIdle();
-  ASSERT_FALSE(processed_success_);
-  ASSERT_EQ(response_code_, net::HTTP_OK);
-  ASSERT_EQ(processed_folder_id_, "");
-}
+std::vector<FindUpstreamFolderSuccessResponses> kTestSuccessResponses = {
+    {{}, false, ""},  // No body.
+    {kEmptyResponseBody, false, ""},
+    {"adgafdga", false, ""},  // Invalid body.
+    {kFileSystemBoxFindFolderResponseEmptyEntriesList, true, ""},
+    {kFileSystemBoxFindFolderResponseNoFolderId, false, ""},
+    {kFileSystemBoxFindFolderResponseEmptyFolderId, false, ""},
+    {kFileSystemBoxFindFolderResponseBody, true,
+     kFileSystemBoxFindFolderResponseFolderId},
+    {kFileSystemBoxFindFolderResponseBodyWithStringFolderId, true,
+     kFileSystemBoxFindFolderResponseFolderId},
+    {kFileSystemBoxFindFolderResponseBodyWithFloatFolderId, false, ""}};
+
+INSTANTIATE_TEST_SUITE_P(BoxFindUpstreamFolderApiCallFlowTest,
+                         BoxFindUpstreamFolder_ProcessApiCallSuccessTest,
+                         testing::ValuesIn(kTestSuccessResponses));
 
 ////////////////////////////////////////////////////////////////////////////////
 // CreateUpstreamFolder
@@ -380,9 +353,10 @@
         folder_id_, file_name_, file_path_);
   }
 
-  void OnResponse(bool success, int response_code) {
+  void OnResponse(bool success, int response_code, GURL file_url) {
     processed_success_ = success;
     response_code_ = response_code;
+    file_url_ = file_url;
     if (quit_closure_)
       std::move(quit_closure_).Run();
   }
@@ -392,8 +366,11 @@
       FILE_PATH_LITERAL("box_whole_file_upload_test.txt")};
   base::FilePath file_path_;
 
+  GURL file_url_;
+
   base::ScopedTempDir temp_dir_;
   base::test::TaskEnvironment task_environment_;
+  data_decoder::test::InProcessDataDecoder decoder_;
   base::OnceClosure quit_closure_;
   base::WeakPtrFactory<BoxWholeFileUploadApiCallFlowTest> factory_{this};
 };
@@ -444,7 +421,7 @@
   ASSERT_FALSE(flow_->IsExpectedSuccessCode(409));
 }
 
-TEST_F(BoxWholeFileUploadApiCallFlowTest, ProcessApiCallSuccess) {
+TEST_F(BoxWholeFileUploadApiCallFlowTest, ProcessApiCallSuccess_EmptyBody) {
   // Create a temporary file to be deleted in ProcessApiCallSuccess().
   ASSERT_TRUE(base::WriteFile(file_path_, "BoxWholeFileUploadApiCallFlowTest"))
       << file_path_;
@@ -458,11 +435,38 @@
 
   flow_->ProcessApiCallSuccess(http_head.get(),
                                std::make_unique<std::string>());
-  // Empty placeholder body since we don't read from body for now.
   run_loop.Run();
 
   ASSERT_EQ(response_code_, net::HTTP_CREATED);
   ASSERT_TRUE(processed_success_) << "Failed with file " << file_path_;
+  ASSERT_FALSE(file_url_.is_valid()) << file_url_;
+  ASSERT_TRUE(base::PathExists(file_path_))
+      << "File " << file_path_
+      << " must still exist / not have been deleted by another thread so that "
+         "BoxUploader can delete it.";
+}
+
+TEST_F(BoxWholeFileUploadApiCallFlowTest, ProcessApiCallSuccess_ValidUrl) {
+  // Create a temporary file to be deleted in ProcessApiCallSuccess().
+  ASSERT_TRUE(base::WriteFile(file_path_, "BoxWholeFileUploadApiCallFlowTest"))
+      << file_path_;
+
+  auto http_head = network::CreateURLResponseHead(net::HTTP_CREATED);
+  std::string body(kFileSystemBoxUploadResponseBody);
+
+  // Because we post tasks to base::ThreadPool, cannot use
+  // base::RunLoop().RunUntilIdle().
+  base::RunLoop run_loop;
+  quit_closure_ = run_loop.QuitClosure();
+
+  flow_->ProcessApiCallSuccess(http_head.get(),
+                               std::make_unique<std::string>(body));
+  run_loop.Run();
+
+  ASSERT_EQ(response_code_, net::HTTP_CREATED);
+  ASSERT_TRUE(processed_success_) << "Failed with file " << file_path_;
+  ASSERT_TRUE(file_url_.is_valid()) << file_url_;
+  ASSERT_EQ(file_url_, GURL(kFileSystemBoxUploadResponseFileUrl));
   ASSERT_TRUE(base::PathExists(file_path_))
       << "File " << file_path_
       << " must still exist / not have been deleted by another thread so that "
@@ -971,10 +975,12 @@
 
   void OnResponse(bool success,
                   int response_code,
-                  base::TimeDelta retry_after) {
+                  base::TimeDelta retry_after,
+                  GURL file_url) {
     processed_success_ = success;
     response_code_ = response_code;
     retry_after_ = retry_after;
+    file_url_ = file_url;
     if (quit_closure_)
       std::move(quit_closure_).Run();
   }
@@ -982,6 +988,7 @@
   base::Value upload_session_parts_;
   std::string expected_body_;
   base::TimeDelta retry_after_;
+  GURL file_url_;
 
   base::test::TaskEnvironment task_environment_;
   base::OnceClosure quit_closure_;
@@ -1034,12 +1041,21 @@
 }
 
 TEST_F(BoxCommitUploadSessionApiCallFlowTest, ProcessApiCallSuccess_Created) {
+  data_decoder::test::InProcessDataDecoder decoder;  // For file url extraction.
   auto http_head = network::CreateURLResponseHead(net::HTTP_CREATED);
-  flow_->ProcessApiCallSuccess(http_head.get(), {});
-  base::RunLoop().RunUntilIdle();
+  std::string body(kFileSystemBoxUploadResponseBody);
+
+  base::RunLoop run_loop;
+  quit_closure_ = run_loop.QuitClosure();
+  flow_->ProcessApiCallSuccess(http_head.get(),
+                               std::make_unique<std::string>(body));
+  run_loop.Run();
+
   ASSERT_TRUE(processed_success_);
   ASSERT_EQ(response_code_, net::HTTP_CREATED);
   ASSERT_EQ(retry_after_, base::TimeDelta::FromSeconds(0));
+  ASSERT_TRUE(file_url_.is_valid()) << file_url_;
+  ASSERT_EQ(file_url_, GURL(kFileSystemBoxUploadResponseFileUrl));
 }
 
 }  // namespace enterprise_connectors
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.cc b/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.cc
index d646e8fe..c8a41a0 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.cc
@@ -28,8 +28,8 @@
     ]
   })";
 
-// Should match id in kFileSystemBoxFindFolderResponseBody, as it's used to
-// verify extracted folder_id from body above.
+// Should match id's above, as it's used to verify extracted folder_id from
+// bodies above.
 const char kFileSystemBoxFindFolderResponseFolderId[] = "12345";
 
 // This is the folder_id stored for the kFileSystemUploadFolderIdPref key in
@@ -82,6 +82,8 @@
 // verify extracted folder_id from body above.
 const char kFileSystemBoxCreateFolderResponseFolderId[] = "67890";
 
+// For Box Chunked Uploads /////////////////////////////////////////////////////
+
 const char kFileSystemBoxChunkedUploadCreateSessionUrl[] =
     "https://upload.box.com/api/2.0/files/upload_sessions";
 const char kFileSystemBoxChunkedUploadSessionUrl[] =
@@ -137,4 +139,95 @@
   return expected_read_count;
 }
 
+// For Box Uploads (both methods) //////////////////////////////////////////////
+
+const char kFileSystemBoxUploadResponseBody[] = R"({
+  "entries": [
+    {
+      "id": 314159,
+      "etag": 1,
+      "type": "file",
+      "sequence_id": 3,
+      "name": "Contract.pdf",
+      "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
+      "file_version": {
+        "id": 12345,
+        "type": "file_version",
+        "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc"
+      },
+      "description": "Contract for Q1 renewal",
+      "size": 629644,
+      "path_collection": {
+        "total_count": 1,
+        "entries": [
+          {
+            "id": 12345,
+            "etag": 1,
+            "type": "folder",
+            "sequence_id": 3,
+            "name": "Contracts"
+          }
+        ]
+      },
+      "created_at": "2012-12-12T10:53:43-08:00",
+      "modified_at": "2012-12-12T10:53:43-08:00",
+      "trashed_at": "2012-12-12T10:53:43-08:00",
+      "purged_at": "2012-12-12T10:53:43-08:00",
+      "content_created_at": "2012-12-12T10:53:43-08:00",
+      "content_modified_at": "2012-12-12T10:53:43-08:00",
+      "created_by": {
+        "id": 11446498,
+        "type": "user",
+        "name": "Aaron Levie",
+        "login": "ceo@example.com"
+      },
+      "modified_by": {
+        "id": 11446498,
+        "type": "user",
+        "name": "Aaron Levie",
+        "login": "ceo@example.com"
+      },
+      "owned_by": {
+        "id": 11446498,
+        "type": "user",
+        "name": "Aaron Levie",
+        "login": "ceo@example.com"
+      },
+      "shared_link": {
+        "url": "https://www.box.com/s/vspke7y05sb214wjokpk",
+        "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
+        "vanity_url": "https://acme.app.box.com/v/my_url/",
+        "vanity_name": "my_url",
+        "access": "open",
+        "effective_access": "company",
+        "effective_permission": "can_download",
+        "unshared_at": "2018-04-13T13:53:23-07:00",
+        "is_password_enabled": true,
+        "permissions": {
+          "can_download": true,
+          "can_preview": true
+        },
+        "download_count": 3,
+        "preview_count": 3
+      },
+      "parent": {
+        "id": 12345,
+        "etag": 1,
+        "type": "folder",
+        "sequence_id": 3,
+        "name": "Contracts"
+      },
+      "item_status": "active"
+    }
+  ],
+  "total_count": 1
+})";
+
+// File id should match up id extracted from above.
+const char kFileSystemBoxUploadResponseFileUrl[] =
+    "https://app.box.com/file/314159";
+
+const char kFileSystemBoxUploadResponseFolderUrl[] =
+    "https://app.box.com/folder/1337";
+
 }  // namespace enterprise_connectors
diff --git a/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.h b/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.h
index bf8a642..5329aef 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.h
+++ b/chrome/browser/enterprise/connectors/file_system/box_api_call_test_helper.h
@@ -35,6 +35,8 @@
 // Saved folder id extracted from the kFileSystemUploadFolderIdPref pref.
 extern const char kFileSystemBoxFolderIdInPref[];
 
+// For Box Chunked Uploads /////////////////////////////////////////////////////
+
 // Expected url's for each of the Box mini classes for chunked file upload.
 extern const char kFileSystemBoxChunkedUploadCreateSessionUrl[];
 extern const char kFileSystemBoxChunkedUploadSessionUrl[];
@@ -53,6 +55,15 @@
 
 size_t CalculateExpectedChunkReadCount(size_t file_size, size_t chunk_size);
 
+// For Box Uploads (both methods) //////////////////////////////////////////////
+
+// Expected response from kFileSystemBoxDirectUploadUrl or
+// kFileSystemBoxChunkedUploadCommitUrl after successful upload.
+extern const char kFileSystemBoxUploadResponseBody[];
+// Expected file url extracted from above.
+extern const char kFileSystemBoxUploadResponseFileUrl[];
+// Expected folder url for the uploaded file with kFileSystemBoxFolderIdInPref.
+extern const char kFileSystemBoxUploadResponseFolderUrl[];
 }  // namespace enterprise_connectors
 
 #endif  // CHROME_BROWSER_ENTERPRISE_CONNECTORS_FILE_SYSTEM_BOX_API_CALL_TEST_HELPER_H_
diff --git a/chrome/browser/enterprise/connectors/file_system/box_uploader.cc b/chrome/browser/enterprise/connectors/file_system/box_uploader.cc
index 61c1962..8bfa7a04 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_uploader.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_uploader.cc
@@ -14,6 +14,7 @@
 #include "net/http/http_status_code.h"
 
 namespace {
+
 bool DeleteIfExists(base::FilePath file_path) {
   if (!base::PathExists(file_path)) {
     // If the file is deleted by some other thread, how can we be sure what we
@@ -25,6 +26,7 @@
   }
   return base::DeleteFile(file_path);
 }
+
 }  // namespace
 
 namespace enterprise_connectors {
@@ -51,11 +53,11 @@
 BoxUploader::~BoxUploader() = default;
 
 void BoxUploader::Init(
-    base::RepeatingCallback<void(void)> authentication_retry_callback,
-    base::OnceCallback<void(bool)> download_callback,
+    base::RepeatingCallback<void(void)> authen_retry_callback,
+    RenameHandlerCallback download_callback,
     PrefService* prefs) {
   prefs_ = prefs;
-  authentication_retry_callback_ = authentication_retry_callback;
+  authentication_retry_callback_ = authen_retry_callback;
   download_callback_ = std::move(download_callback);
   SetCurrentApiCall(GetFolderId().empty() ? MakeFindUpstreamFolderApiCall()
                                           : MakePreflightCheckApiCall());
@@ -101,22 +103,28 @@
 }
 
 void BoxUploader::OnApiCallFlowFailure() {
-  OnApiCallFlowDone(false);
+  OnApiCallFlowDone(false, GURL());
 }
 
-void BoxUploader::OnApiCallFlowDone(bool upload_success) {
+void BoxUploader::OnApiCallFlowDone(bool upload_success, GURL file_url) {
   if (!upload_success) {
     DLOG(ERROR) << "Upload failed";
     // TODO(https://crbug.com/1165972): on upload failure, decide whether to
     // queue up the file to retry later, or also delete as usual. At this stage,
     // for trusted testers (TT), deleting as usual for now. Need to determine
     // how to communicate the failure/error to user.
+  } else {
+    file_url_ = file_url;
   }
 
   PostDeleteFileTask(base::BindOnce(
       &BoxUploader::OnFileDeleted, weak_factory_.GetWeakPtr(), upload_success));
 }
 
+void BoxUploader::NotifyResult(bool success) {
+  std::move(download_callback_).Run(success);
+}
+
 void BoxUploader::OnFindUpstreamFolderResponse(bool success,
                                                int response_code,
                                                const std::string& folder_id) {
@@ -186,7 +194,7 @@
   return std::make_unique<BoxPreflightCheckApiCallFlow>(
       base::BindOnce(&BoxUploader::OnPreflightCheckResponse,
                      weak_factory_.GetWeakPtr()),
-      target_file_name_, folder_id_);
+      GetTargetFileName(), folder_id_);
 }
 
 std::unique_ptr<OAuth2ApiCallFlow>
@@ -204,6 +212,14 @@
 
 // Getters & Setters ///////////////////////////////////////////////////////////
 
+GURL BoxUploader::GetUploadedFileUrl() const {
+  return file_url_;
+}
+
+GURL BoxUploader::GetDestinationFolderUrl() const {
+  return BoxApiCallFlow::MakeUrlToShowFolder(GetFolderId());
+}
+
 const base::FilePath BoxUploader::GetLocalFilePath() const {
   return local_file_path_;
 }
@@ -220,6 +236,10 @@
   return folder_id_;
 }
 
+const std::string BoxUploader::GetFolderId() const {
+  return folder_id_;
+}
+
 void BoxUploader::SetFolderId(std::string folder_id) {
   folder_id_ = folder_id;
   prefs_->SetString(kFileSystemUploadFolderIdPref, folder_id);
@@ -234,7 +254,7 @@
 
 void BoxUploader::PostDeleteFileTask(
     base::OnceCallback<void(bool)> delete_file_reply) {
-  auto delete_file_task = base::BindOnce(&DeleteIfExists, local_file_path_);
+  auto delete_file_task = base::BindOnce(&DeleteIfExists, GetLocalFilePath());
   base::ThreadPool::PostTaskAndReplyWithResult(
       FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
       std::move(delete_file_task), std::move(delete_file_reply));
@@ -242,9 +262,9 @@
 
 void BoxUploader::OnFileDeleted(bool upload_success, bool delete_success) {
   if (!delete_success) {
-    DLOG(ERROR) << "Failed to delete local temp file " << local_file_path_;
+    DLOG(ERROR) << "Failed to delete local temp file " << GetLocalFilePath();
   }
-  std::move(download_callback_).Run(upload_success && delete_success);
+  NotifyResult(upload_success && delete_success);
 }
 
 // Helper methods for tests ////////////////////////////////////////////////////
@@ -258,7 +278,7 @@
 }
 
 void BoxUploader::NotifyResultForTesting(bool success) {
-  std::move(download_callback_).Run(success);
+  NotifyResult(success);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -278,14 +298,15 @@
 }
 
 void BoxDirectUploader::OnWholeFileUploadResponse(bool success,
-                                                  int response_code) {
+                                                  int response_code,
+                                                  GURL uploaded_file_url) {
   if (!EnsureSuccessResponse(success, response_code)) {
     SetCurrentApiCall(MakeFileUploadApiCall());
     return;
   }
 
   // Report upload success back to the download thread.
-  OnApiCallFlowDone(success);
+  OnApiCallFlowDone(success, uploaded_file_url);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -404,7 +425,8 @@
 void BoxChunkedUploader::OnCommitUploadSsessionResponse(
     bool success,
     int response_code,
-    base::TimeDelta retry_after) {
+    base::TimeDelta retry_after,
+    GURL file_url) {
   if (!EnsureSuccessResponse(success, response_code)) {
     if (response_code == net::HTTP_UNAUTHORIZED) {
       SetCurrentApiCall(MakeCommitUploadSessionApiCall());
@@ -419,7 +441,7 @@
                        weak_factory_.GetWeakPtr(), sha1_digest_),
         retry_after);
   } else {
-    OnApiCallFlowDone(success);
+    OnApiCallFlowDone(success, file_url);
   }
 }
 
diff --git a/chrome/browser/enterprise/connectors/file_system/box_uploader.h b/chrome/browser/enterprise/connectors/file_system/box_uploader.h
index 697bf1d6..a625cc8 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_uploader.h
+++ b/chrome/browser/enterprise/connectors/file_system/box_uploader.h
@@ -24,11 +24,13 @@
 
   virtual ~BoxUploader();
 
+  using RenameHandlerCallback = base::OnceCallback<void(bool)>;
+
   // Initialize with callbacks from FileSystemRenameHandler, set
   // current_api_call_ to be the first step of the whole API call workflow. Must
   // be called before calling TryTask() for the first time.
   void Init(base::RepeatingCallback<void(void)> authen_retry_callback,
-            base::OnceCallback<void(bool)> download_callback,
+            RenameHandlerCallback download_callback,
             PrefService* prefs);
 
   // Kick off the workflow from the step stored in current_api_call_. Will
@@ -38,6 +40,9 @@
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
       const std::string& access_token);
 
+  virtual GURL GetUploadedFileUrl() const;
+  virtual GURL GetDestinationFolderUrl() const;
+
   // Helper methods for unit tests.
   std::string GetFolderIdForTesting() const;
   void NotifyOAuth2ErrorForTesting();
@@ -53,7 +58,8 @@
 
   void TryCurrentApiCall();
   bool EnsureSuccessResponse(bool success, int response_code);
-  void OnApiCallFlowDone(bool upload_success);
+  void OnApiCallFlowDone(bool upload_success, GURL uploaded_file_url);
+  void NotifyResult(bool success);
 
   // To be overridden to test API calls flow and file delete separately.
   virtual void StartCurrentApiCall();
@@ -66,6 +72,7 @@
   const base::FilePath GetLocalFilePath() const;
   const base::FilePath GetTargetFileName() const;
   const std::string GetFolderId();
+  const std::string GetFolderId() const;
   void SetFolderId(std::string folder_id);
   void SetCurrentApiCall(std::unique_ptr<OAuth2ApiCallFlow> api_call);
 
@@ -92,13 +99,14 @@
   // Callback attached in PostDeleteFileTask(). Report success back to original
   // thread via download_callback_.
   void OnFileDeleted(bool upload_success, bool delete_success);
+
   // File details.
   const base::FilePath local_file_path_;   // Path of the local temporary file.
   const base::FilePath target_file_name_;  // File name to be used finally.
   // Callback when API call gives Authenetication Error.
   base::RepeatingCallback<void(void)> authentication_retry_callback_;
   // Callback when the entire flow is completed to notify the download thread.
-  base::OnceCallback<void(bool)> download_callback_;
+  RenameHandlerCallback download_callback_;
   // Used for OAuth2ApiCallFlow::Start():
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
   std::string access_token_;
@@ -112,6 +120,8 @@
   std::string folder_id_;
   // PrefService used to store folder_id.
   PrefService* prefs_;
+  // URL to show uploaded file.
+  GURL file_url_;
 
   base::WeakPtrFactory<BoxUploader> weak_factory_{this};
 };
@@ -129,7 +139,7 @@
   std::unique_ptr<OAuth2ApiCallFlow> MakeFileUploadApiCall() override;
 
   // Box API call step.
-  void OnWholeFileUploadResponse(bool success, int response_code);
+  void OnWholeFileUploadResponse(bool success, int response_code, GURL url);
 
   base::WeakPtrFactory<BoxDirectUploader> weak_factory_{this};
 };
@@ -172,7 +182,8 @@
                                 base::Value part_info);
   void OnCommitUploadSsessionResponse(bool success,
                                       int response_code,
-                                      base::TimeDelta retry_after);
+                                      base::TimeDelta retry_after,
+                                      GURL file_url);
   void OnAbortUploadSsessionResponse(bool success, int response_code);
 
   // Callbacks for chunks_handler_.
diff --git a/chrome/browser/enterprise/connectors/file_system/box_uploader_test_helper.cc b/chrome/browser/enterprise/connectors/file_system/box_uploader_test_helper.cc
index 5c85725f..fc19f010 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_uploader_test_helper.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_uploader_test_helper.cc
@@ -78,7 +78,7 @@
   ASSERT_TRUE(uploader);
   uploader->Init(base::BindRepeating(&BoxUploaderTestBase::AuthenticationRetry,
                                      base::Unretained(this)),
-                 base::BindOnce(&BoxUploaderTestBase::UploaderFinished,
+                 base::BindOnce(&BoxUploaderTestBase::OnUploaderFinished,
                                 base::Unretained(this)),
                  prefs_);
 }
@@ -128,7 +128,7 @@
   Quit();
 }
 
-void BoxUploaderTestBase::UploaderFinished(bool success) {
+void BoxUploaderTestBase::OnUploaderFinished(bool success) {
   download_thread_cb_called_ = true;
   upload_success_ = success;
   Quit();
diff --git a/chrome/browser/enterprise/connectors/file_system/box_uploader_test_helper.h b/chrome/browser/enterprise/connectors/file_system/box_uploader_test_helper.h
index 6fe250b..d61bff64 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_uploader_test_helper.h
+++ b/chrome/browser/enterprise/connectors/file_system/box_uploader_test_helper.h
@@ -52,7 +52,7 @@
   void InitUploader(BoxUploader* uploader);
 
   void AuthenticationRetry();
-  void UploaderFinished(bool success);
+  void OnUploaderFinished(bool success);
 
   // Add a mock response to http requests made to the url. Only the last
   // response added is used.
diff --git a/chrome/browser/enterprise/connectors/file_system/box_uploader_unittest.cc b/chrome/browser/enterprise/connectors/file_system/box_uploader_unittest.cc
index 050f80f..6bccfdc 100644
--- a/chrome/browser/enterprise/connectors/file_system/box_uploader_unittest.cc
+++ b/chrome/browser/enterprise/connectors/file_system/box_uploader_unittest.cc
@@ -344,7 +344,9 @@
   std::unique_ptr<OAuth2ApiCallFlow> MakeFileUploadApiCall() override {
     return std::make_unique<MockApiCallFlow>();
   }
-  void StartCurrentApiCall() override { OnApiCallFlowDone(true); }
+  void StartCurrentApiCall() override {
+    OnApiCallFlowDone(true, GURL(kFileSystemBoxUploadResponseFileUrl));
+  }
 };
 
 class BoxUploader_FileDeleteTest : public BoxUploaderTestBase {
@@ -364,6 +366,7 @@
   void TearDown() override {
     EXPECT_EQ(authentication_retry_, 0);
     EXPECT_TRUE(download_thread_cb_called_);
+    EXPECT_FALSE(test_item_.GetFileExternallyRemoved());
   }
 
   std::unique_ptr<BoxUploaderForFileDeleteTest> uploader_;
@@ -383,7 +386,7 @@
   // Make sure file doesn't exist.
   ASSERT_FALSE(base::PathExists(GetFilePath()));
 
-  uploader_->OnApiCallFlowDone(true);
+  uploader_->OnApiCallFlowDone(true, GURL(kFileSystemBoxUploadResponseFileUrl));
   RunWithQuitClosure();
 
   EXPECT_FALSE(base::PathExists(GetFilePath())) << "No file should be created.";
@@ -393,7 +396,7 @@
 TEST_F(BoxUploader_FileDeleteTest, OnApiCallFlowFailure) {
   CreateTemporaryFile();
 
-  uploader_->OnApiCallFlowDone(false);
+  uploader_->OnApiCallFlowDone(false, GURL());
   RunWithQuitClosure();
 
   EXPECT_FALSE(base::PathExists(GetFilePath()));  // Make sure file is deleted.
@@ -432,7 +435,8 @@
 };
 
 TEST_F(BoxDirectUploaderTest, SuccessfulUpload) {
-  AddFetchResult(kFileSystemBoxDirectUploadUrl, net::HTTP_CREATED);
+  AddFetchResult(kFileSystemBoxDirectUploadUrl, net::HTTP_CREATED,
+                 kFileSystemBoxUploadResponseBody);
 
   uploader_->TryTask(url_factory_, "test_token");
   RunWithQuitClosure();
@@ -440,6 +444,10 @@
   ASSERT_EQ(authentication_retry_, 0);
   EXPECT_TRUE(download_thread_cb_called_);
   EXPECT_TRUE(upload_success_);
+  EXPECT_EQ(uploader_->GetUploadedFileUrl(),
+            kFileSystemBoxUploadResponseFileUrl);
+  EXPECT_EQ(uploader_->GetDestinationFolderUrl(),
+            kFileSystemBoxUploadResponseFolderUrl);
 }
 
 TEST_F(BoxDirectUploaderTest, UnexpectedFailure) {
diff --git a/chrome/browser/enterprise/connectors/file_system/rename_handler.cc b/chrome/browser/enterprise/connectors/file_system/rename_handler.cc
index 8212d5c6..8cb54f6d 100644
--- a/chrome/browser/enterprise/connectors/file_system/rename_handler.cc
+++ b/chrome/browser/enterprise/connectors/file_system/rename_handler.cc
@@ -12,6 +12,8 @@
 #include "chrome/browser/enterprise/connectors/file_system/box_uploader.h"
 #include "chrome/browser/enterprise/connectors/file_system/signin_dialog_delegate.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
 #include "components/download/public/common/download_item.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/browser_context.h"
@@ -146,9 +148,22 @@
   uploader_ = std::move(fake_uploader);
 }
 
-void FileSystemRenameHandler::OpenDownload() {}
+void FileSystemRenameHandler::OpenDownload() {
+  AddTabToShowDownload(uploader_->GetUploadedFileUrl());
+}
 
-void FileSystemRenameHandler::ShowDownloadInContext() {}
+void FileSystemRenameHandler::ShowDownloadInContext() {
+  AddTabToShowDownload(uploader_->GetDestinationFolderUrl());
+}
+
+void FileSystemRenameHandler::AddTabToShowDownload(GURL url) {
+  content::BrowserContext* context =
+      content::DownloadItemUtils::GetBrowserContext(download_item());
+  Profile* profile = Profile::FromBrowserContext(context);
+  chrome::ScopedTabbedBrowserDisplayer displayer(profile);
+  Browser* browser = displayer.browser();
+  chrome::AddTabAt(browser, url, /*index =*/-1, /*foreground =*/true);
+}
 
 void FileSystemRenameHandler::StartInternal() {
   PrefService* prefs;
@@ -249,9 +264,12 @@
   PrefService* prefs = GetPrefs();
   if (prefs && ClearFileSystemAccessToken(prefs, settings_.service_provider)) {
     // Case 2b, but also Case 1c and 3b so that now both tokens are cleared.
+    VLOG(20) << "Re-authenticating...";
     StartInternal();
   } else {
+    DLOG(ERROR) << "Failed to clear OAuth2 tokens. Notifying failure back.";
     NotifyResultToDownloadThread(false);
+    // TODO(https://crbug.com/1184351): Handle local temporary file.
   }
 }
 
@@ -266,7 +284,7 @@
 }
 
 void FileSystemRenameHandler::OnApiAuthenticationError() {
-  DLOG(ERROR) << "Authentication failed in service provider API calls.";
+  VLOG(20) << "Authentication failed in service provider API calls.";
   return OnAuthenticationError(
       GoogleServiceAuthError::FromInvalidGaiaCredentialsReason(
           GoogleServiceAuthError::InvalidGaiaCredentialsReason::
@@ -279,6 +297,11 @@
                         : download::DOWNLOAD_INTERRUPT_REASON_FILE_FAILED;
   // Make sure target_path_ has been initialized.
   DCHECK(!target_path_.empty());
+  // TODO(https://crbug.com/1206299): Returns the uploaded file URL here using
+  // uploader_->GetUploadedFileUrl() instead, but make sure the download UI
+  // displays the uploaded status properly. Currently, upon opening the
+  // item/folder for the first time, DownloadItem detects that the file is
+  // deleted and turns the menu bar grey.
   std::move(download_callback_).Run(reason, target_path_);
 }
 
diff --git a/chrome/browser/enterprise/connectors/file_system/rename_handler.h b/chrome/browser/enterprise/connectors/file_system/rename_handler.h
index 665ffd3..6686cdeb 100644
--- a/chrome/browser/enterprise/connectors/file_system/rename_handler.h
+++ b/chrome/browser/enterprise/connectors/file_system/rename_handler.h
@@ -41,6 +41,11 @@
   ~FileSystemRenameHandler() override;
 
  protected:
+  // download::DownloadItemRenameHandler interface.
+  void Start(Callback callback) override;
+  void OpenDownload() override;
+  void ShowDownloadInContext() override;
+
   // These methods are declared protected to override in tests so that calls to
   // other components can be isolated.
   virtual void TryUploaderTask(content::BrowserContext* context,
@@ -68,15 +73,13 @@
       download::DownloadItem* download_item,
       FileSystemSettings settings);
 
-  // download::DownloadItemRenameHandler interface.
-  void Start(Callback callback) override;
-  void OpenDownload() override;
-  void ShowDownloadInContext() override;
-
   void StartInternal();
   scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory(
       content::BrowserContext* context);
 
+  // Helper method used in OpenDownload() and ShowDownloadInContext().
+  void AddTabToShowDownload(GURL url);
+
   // Called when failure status is returned via callbacks but is not
   // GoogleServiceAuthError::State::REQUEST_CANCELED.
   void OnAuthenticationError(const GoogleServiceAuthError& error);
@@ -85,7 +88,7 @@
   void OnSignInCancellation();
   // Callback for uploader_ upon API requests returning authentication error.
   void OnApiAuthenticationError();
-  // Callback for uploader_ as well as upon failure.
+  // Notify upload success or failure back to the download thread.
   void NotifyResultToDownloadThread(bool success);
 
   PrefService* GetPrefs();
diff --git a/chrome/browser/enterprise/connectors/file_system/rename_handler_unittest.cc b/chrome/browser/enterprise/connectors/file_system/rename_handler_unittest.cc
index d11c5c4..1f82d401c 100644
--- a/chrome/browser/enterprise/connectors/file_system/rename_handler_unittest.cc
+++ b/chrome/browser/enterprise/connectors/file_system/rename_handler_unittest.cc
@@ -11,6 +11,7 @@
 #include "chrome/browser/enterprise/connectors/connectors_service.h"
 #include "chrome/browser/enterprise/connectors/file_system/access_token_fetcher.h"
 #include "chrome/browser/enterprise/connectors/file_system/box_uploader.h"
+#include "chrome/test/base/browser_with_test_window_test.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
 #include "components/os_crypt/os_crypt_mocker.h"
@@ -181,7 +182,9 @@
 class RenameHandlerForTest : public FileSystemRenameHandler {
  public:
   using FileSystemRenameHandler::FileSystemRenameHandler;
+  using FileSystemRenameHandler::OpenDownload;
   using FileSystemRenameHandler::SetUploaderForTesting;
+  using FileSystemRenameHandler::ShowDownloadInContext;
 
   MOCK_METHOD(void,
               PromptUserSignInForAuthorization,
@@ -226,10 +229,17 @@
   }
 };
 
+const char kUploadedFileUrl[] = "https://example.com/file/314159";
+const char kDestinationFolderUrl[] = "https://example.com/folder/1337";
+
 class MockUploader : public BoxUploader {
  public:
   explicit MockUploader(download::DownloadItem* download_item)
       : BoxUploader(download_item) {}
+  GURL GetUploadedFileUrl() const override { return GURL(kUploadedFileUrl); }
+  GURL GetDestinationFolderUrl() const override {
+    return GURL(kDestinationFolderUrl);
+  }
 
   MOCK_METHOD(
       void,
@@ -598,4 +608,41 @@
   ASSERT_EQ(rtoken, RTokenForFetcher);
 }
 
+class RenameHandlerOpenDownloadTest : public BrowserWithTestWindowTest,
+                                      public RenameHandlerTestBase {
+ protected:
+  void SetUp() override {
+    BrowserWithTestWindowTest::SetUp();
+    RenameHandlerTestBase::SetUp(profile());
+    EXPECT_CALL(*handler(), PromptUserSignInForAuthorization(_)).Times(0);
+    EXPECT_CALL(*handler(), FetchAccessToken(_, _)).Times(0);
+    EXPECT_CALL(*uploader(), TryTask(_, _)).Times(0);
+  }
+
+  void TearDown() override {
+    RenameHandlerTestBase::TearDown();
+    BrowserWithTestWindowTest::TearDown();
+  }
+
+  const GURL GetVisibleURL() {
+    TabStripModel* tab_strip = browser()->tab_strip_model();
+    CHECK(tab_strip);
+    content::WebContents* active_contents = tab_strip->GetActiveWebContents();
+    CHECK(active_contents);
+    return active_contents->GetVisibleURL();
+  }
+};
+
+TEST_F(RenameHandlerOpenDownloadTest, OpenDownloadItem) {
+  handler()->OpenDownload();
+  // Verify that the active tab has the correct uploaded file URL.
+  EXPECT_EQ(GetVisibleURL(), kUploadedFileUrl);
+}
+
+TEST_F(RenameHandlerOpenDownloadTest, ShowDownloadInContext) {
+  handler()->ShowDownloadInContext();
+  // Verify that the active tab has the correct destination folder URL.
+  EXPECT_EQ(GetVisibleURL(), kDestinationFolderUrl);
+}
+
 }  // namespace enterprise_connectors
diff --git a/chrome/browser/extensions/api/identity/identity_apitest.cc b/chrome/browser/extensions/api/identity/identity_apitest.cc
index c5acb75..f7bdce37 100644
--- a/chrome/browser/extensions/api/identity/identity_apitest.cc
+++ b/chrome/browser/extensions/api/identity/identity_apitest.cc
@@ -2785,23 +2785,42 @@
 }
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-class GetAuthTokenFunctionPublicSessionTest : public GetAuthTokenFunctionTest {
+class GetAuthTokenFunctionDeviceLocalAccountTest
+    : public GetAuthTokenFunctionTest {
  public:
-  GetAuthTokenFunctionPublicSessionTest()
+  GetAuthTokenFunctionDeviceLocalAccountTest()
       : user_manager_(new ash::MockUserManager) {}
 
- protected:
-  void SetUpInProcessBrowserTestFixture() override {
-    GetAuthTokenFunctionTest::SetUpInProcessBrowserTestFixture();
+  void SetUpOnMainThread() override {
+    GetAuthTokenFunctionTest::SetUpOnMainThread();
+    scoped_user_manager_ = std::make_unique<user_manager::ScopedUserManager>(
+        base::WrapUnique(user_manager_));
+  }
 
-    // Set up the user manager to fake a public session.
-    EXPECT_CALL(*user_manager_, IsLoggedInAsKioskApp())
-        .WillRepeatedly(Return(false));
-    EXPECT_CALL(*user_manager_, IsLoggedInAsPublicAccount())
-        .WillRepeatedly(Return(true));
-    EXPECT_CALL(*user_manager_, GetLoggedInUsers())
-        .WillRepeatedly(
-            testing::Invoke(user_manager_, &ash::MockUserManager::GetUsers));
+  void TearDownOnMainThread() override {
+    GetAuthTokenFunctionTest::TearDownOnMainThread();
+    scoped_user_manager_.reset();
+  }
+
+ protected:
+  void RunExtensionAndVerifyNoError(bool is_extension_allowlisted) {
+    scoped_refptr<FakeGetAuthTokenFunction> func(
+        new FakeGetAuthTokenFunction());
+    std::string extension_id = is_extension_allowlisted
+                                   ? "ljacajndfccfgnfohlgkdphmbnpkjflk"
+                                   : "test-id";
+    func->set_extension(CreateTestExtension(extension_id));
+    func->push_mint_token_result(TestOAuth2MintTokenFlow::MINT_TOKEN_SUCCESS);
+
+    std::string access_token;
+    std::set<std::string> granted_scopes;
+    RunGetAuthTokenFunction(func.get(), "[{}]", browser(), &access_token,
+                            &granted_scopes);
+    EXPECT_EQ(std::string(kAccessToken), access_token);
+    EXPECT_EQ(func->GetExtensionTokenKeyForTest()->scopes, granted_scopes);
+    histogram_tester()->ExpectUniqueSample(
+        kGetAuthTokenResultHistogramName,
+        IdentityGetAuthTokenError::State::kNone, 1);
   }
 
   scoped_refptr<const Extension> CreateTestExtension(const std::string& id) {
@@ -2823,13 +2842,31 @@
 
   // Owned by |user_manager_enabler|.
   ash::MockUserManager* user_manager_;
+  std::unique_ptr<user_manager::ScopedUserManager> scoped_user_manager_;
+};
+
+class GetAuthTokenFunctionPublicSessionTest
+    : public GetAuthTokenFunctionDeviceLocalAccountTest {
+ protected:
+  void SetUpInProcessBrowserTestFixture() override {
+    GetAuthTokenFunctionTest::SetUpInProcessBrowserTestFixture();
+
+    // Set up the user manager to fake a public session.
+    EXPECT_CALL(*user_manager_, IsLoggedInAsKioskApp())
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*user_manager_, IsLoggedInAsWebKioskApp())
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*user_manager_, IsLoggedInAsPublicAccount())
+        .WillRepeatedly(Return(true));
+    EXPECT_CALL(*user_manager_, GetLoggedInUsers())
+        .WillRepeatedly(
+            testing::Invoke(user_manager_, &ash::MockUserManager::GetUsers));
+  }
 };
 
 IN_PROC_BROWSER_TEST_F(GetAuthTokenFunctionPublicSessionTest, NonAllowlisted) {
   // GetAuthToken() should return UserNotSignedIn in public sessions for
   // non-allowlisted extensions.
-  user_manager::ScopedUserManager user_manager_enabler(
-      base::WrapUnique(user_manager_));
   scoped_refptr<FakeGetAuthTokenFunction> func(new FakeGetAuthTokenFunction());
   func->set_extension(CreateTestExtension("test-id"));
   std::string error =
@@ -2844,21 +2881,69 @@
 
 IN_PROC_BROWSER_TEST_F(GetAuthTokenFunctionPublicSessionTest, Allowlisted) {
   // GetAuthToken() should return a token for allowlisted extensions.
-  user_manager::ScopedUserManager user_manager_enabler(
-      base::WrapUnique(user_manager_));
-  scoped_refptr<FakeGetAuthTokenFunction> func(new FakeGetAuthTokenFunction());
-  func->set_extension(CreateTestExtension("ljacajndfccfgnfohlgkdphmbnpkjflk"));
-  func->push_mint_token_result(TestOAuth2MintTokenFlow::MINT_TOKEN_SUCCESS);
+  RunExtensionAndVerifyNoError(/*is_extension_allowlisted=*/true);
+}
 
-  std::string access_token;
-  std::set<std::string> granted_scopes;
-  RunGetAuthTokenFunction(func.get(), "[{}]", browser(), &access_token,
-                          &granted_scopes);
-  EXPECT_EQ(std::string(kAccessToken), access_token);
-  EXPECT_EQ(func->GetExtensionTokenKeyForTest()->scopes, granted_scopes);
-  histogram_tester()->ExpectUniqueSample(
-      kGetAuthTokenResultHistogramName, IdentityGetAuthTokenError::State::kNone,
-      1);
+class GetAuthTokenFunctionChromeKioskTest
+    : public GetAuthTokenFunctionDeviceLocalAccountTest {
+ protected:
+  void SetUpInProcessBrowserTestFixture() override {
+    GetAuthTokenFunctionTest::SetUpInProcessBrowserTestFixture();
+
+    // Set up the user manager to fake a Chrome Kiosk session.
+    EXPECT_CALL(*user_manager_, IsLoggedInAsKioskApp())
+        .WillRepeatedly(Return(true));
+    EXPECT_CALL(*user_manager_, IsLoggedInAsWebKioskApp())
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*user_manager_, IsLoggedInAsPublicAccount())
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*user_manager_, GetLoggedInUsers())
+        .WillRepeatedly(
+            testing::Invoke(user_manager_, &ash::MockUserManager::GetUsers));
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(GetAuthTokenFunctionChromeKioskTest, NonAllowlisted) {
+  // GetAuthToken() should return a token for non-allowlisted extensions in the
+  // Chrome Kiosk session.
+  RunExtensionAndVerifyNoError(/*is_extension_allowlisted=*/false);
+}
+
+IN_PROC_BROWSER_TEST_F(GetAuthTokenFunctionChromeKioskTest, Allowlisted) {
+  // GetAuthToken() should return a token for allowlisted extensions in the
+  // Chrome Kiosk session.
+  RunExtensionAndVerifyNoError(/*is_extension_allowlisted=*/true);
+}
+
+class GetAuthTokenFunctionWebKioskTest
+    : public GetAuthTokenFunctionDeviceLocalAccountTest {
+ protected:
+  void SetUpInProcessBrowserTestFixture() override {
+    GetAuthTokenFunctionTest::SetUpInProcessBrowserTestFixture();
+
+    // Set up the user manager to fake a web Kiosk session.
+    EXPECT_CALL(*user_manager_, IsLoggedInAsKioskApp())
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*user_manager_, IsLoggedInAsWebKioskApp())
+        .WillRepeatedly(Return(true));
+    EXPECT_CALL(*user_manager_, IsLoggedInAsPublicAccount())
+        .WillRepeatedly(Return(false));
+    EXPECT_CALL(*user_manager_, GetLoggedInUsers())
+        .WillRepeatedly(
+            testing::Invoke(user_manager_, &ash::MockUserManager::GetUsers));
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(GetAuthTokenFunctionWebKioskTest, NonAllowlisted) {
+  // GetAuthToken() should return a token for non-allowlisted extensions in the
+  // web Kiosk session.
+  RunExtensionAndVerifyNoError(/*is_extension_allowlisted=*/false);
+}
+
+IN_PROC_BROWSER_TEST_F(GetAuthTokenFunctionWebKioskTest, Allowlisted) {
+  // GetAuthToken() should return a token for allowlisted extensions in the
+  // web Kiosk session.
+  RunExtensionAndVerifyNoError(/*is_extension_allowlisted=*/true);
 }
 
 #endif
diff --git a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
index 1077bcf..1adcac1 100644
--- a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
+++ b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
@@ -249,7 +249,8 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   policy::BrowserPolicyConnectorChromeOS* connector =
       g_browser_process->platform_part()->browser_policy_connector_chromeos();
-  bool is_kiosk = user_manager::UserManager::Get()->IsLoggedInAsKioskApp();
+  bool is_kiosk = user_manager::UserManager::Get()->IsLoggedInAsKioskApp() ||
+                  user_manager::UserManager::Get()->IsLoggedInAsWebKioskApp();
   bool is_public_session =
       user_manager::UserManager::Get()->IsLoggedInAsPublicAccount();
 
@@ -489,6 +490,7 @@
         }
 
         if (user_manager::UserManager::Get()->IsLoggedInAsKioskApp() ||
+            user_manager::UserManager::Get()->IsLoggedInAsWebKioskApp() ||
             user_manager::UserManager::Get()->IsLoggedInAsPublicAccount()) {
           gaia_mint_token_mode_ = OAuth2MintTokenFlow::MODE_MINT_TOKEN_FORCE;
           policy::BrowserPolicyConnectorChromeOS* connector =
diff --git a/chrome/browser/extensions/api/image_writer_private/test_utils.cc b/chrome/browser/extensions/api/image_writer_private/test_utils.cc
index 2d166a15..6e8f02e9 100644
--- a/chrome/browser/extensions/api/image_writer_private/test_utils.cc
+++ b/chrome/browser/extensions/api/image_writer_private/test_utils.cc
@@ -20,7 +20,7 @@
 #include "chrome/common/chrome_paths.h"
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_image_burner_client.h"
 #include "chromeos/disks/disk.h"
diff --git a/chrome/browser/extensions/content_verifier_browsertest.cc b/chrome/browser/extensions/content_verifier_browsertest.cc
index 498697f..63a68c6 100644
--- a/chrome/browser/extensions/content_verifier_browsertest.cc
+++ b/chrome/browser/extensions/content_verifier_browsertest.cc
@@ -166,7 +166,7 @@
     std::string extra = "some_extra_function_call();";
     {
       base::ScopedAllowBlockingForTesting allow_blocking;
-      ASSERT_TRUE(base::AppendToFile(scriptfile, extra.data(), extra.size()));
+      ASSERT_TRUE(base::AppendToFile(scriptfile, extra));
     }
     DisableExtension(id);
     job_observer.ExpectJobResult(id, script_relfilepath, Result::FAILURE);
@@ -444,7 +444,7 @@
     base::ScopedAllowBlockingForTesting allow_blocking;
     base::FilePath real_path = extension->path().Append(kResource);
     std::string extra = "some_extra_function_call();";
-    ASSERT_TRUE(base::AppendToFile(real_path, extra.data(), extra.size()));
+    ASSERT_TRUE(base::AppendToFile(real_path, extra));
   }
 
   GURL page_url = extension->GetResourceURL("page.html");
@@ -538,7 +538,7 @@
     base::FilePath real_path = extension->path().AppendASCII(kResource);
     ASSERT_TRUE(base::PathExists(real_path));
     std::string extra = "some_extra_function_call();";
-    ASSERT_TRUE(base::AppendToFile(real_path, extra.data(), extra.size()));
+    ASSERT_TRUE(base::AppendToFile(real_path, extra));
   }
 
   NavigateToResourceAndExpectExtensionDisabled(
diff --git a/chrome/browser/extensions/content_verifier_hash_fetch_behavior_browsertest.cc b/chrome/browser/extensions/content_verifier_hash_fetch_behavior_browsertest.cc
index 61d4c02..445a54f 100644
--- a/chrome/browser/extensions/content_verifier_hash_fetch_behavior_browsertest.cc
+++ b/chrome/browser/extensions/content_verifier_hash_fetch_behavior_browsertest.cc
@@ -153,7 +153,7 @@
     base::FilePath computed_hashes_path =
         file_util::GetComputedHashesPath(info_->extension_root);
     std::string extra = R"({hello:"world"})";
-    if (!base::AppendToFile(computed_hashes_path, extra.data(), extra.size())) {
+    if (!base::AppendToFile(computed_hashes_path, extra)) {
       return testing::AssertionFailure()
              << "Could not tamper computed_hashes.json";
     }
@@ -170,7 +170,7 @@
     std::string extra = "some_extra_function_call();";
     base::FilePath real_path =
         info_->extension_root.AppendASCII(resource_to_tamper);
-    if (!base::AppendToFile(real_path, extra.data(), extra.size())) {
+    if (!base::AppendToFile(real_path, extra)) {
       return testing::AssertionFailure()
              << "Could not tamper " << resource_to_tamper << ".";
     }
diff --git a/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc b/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc
index cf1cf41..72038dd 100644
--- a/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc
+++ b/chrome/browser/extensions/extension_gcm_app_handler_unittest.cc
@@ -69,7 +69,7 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 #include "chrome/browser/ash/login/users/scoped_test_user_manager.h"
 #include "chrome/browser/ash/settings/scoped_cros_settings_test_helper.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #endif
 
diff --git a/chrome/browser/feed/android/java/res/layout/feed_management_activity.xml b/chrome/browser/feed/android/java/res/layout/feed_management_activity.xml
index 9788d596..e504795 100644
--- a/chrome/browser/feed/android/java/res/layout/feed_management_activity.xml
+++ b/chrome/browser/feed/android/java/res/layout/feed_management_activity.xml
@@ -30,6 +30,7 @@
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_gravity="center"
+          android:layout_marginStart="@dimen/follow_margin"
           style="@style/TextAppearance.Headline.Primary"
           android:text="@string/ntp_manage_feed" />
   </LinearLayout>
diff --git a/chrome/browser/feed/android/java/res/layout/feed_management_list_item.xml b/chrome/browser/feed/android/java/res/layout/feed_management_list_item.xml
index 4221ff0..bc1aeaa 100644
--- a/chrome/browser/feed/android/java/res/layout/feed_management_list_item.xml
+++ b/chrome/browser/feed/android/java/res/layout/feed_management_list_item.xml
@@ -19,7 +19,8 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:layout_margin="@dimen/follow_margin" >
+        android:layout_marginHorizontal="@dimen/follow_margin"
+        android:layout_marginVertical="@dimen/follow_item_margin" >
 
         <TextView
             android:id="@+id/feed_management_menu_item_text"
diff --git a/chrome/browser/feed/android/java/res/layout/follow_management_activity.xml b/chrome/browser/feed/android/java/res/layout/follow_management_activity.xml
index e8615a99..ea6d34b4 100644
--- a/chrome/browser/feed/android/java/res/layout/follow_management_activity.xml
+++ b/chrome/browser/feed/android/java/res/layout/follow_management_activity.xml
@@ -30,6 +30,7 @@
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_gravity="center"
+          android:layout_marginStart="@dimen/follow_margin"
           style="@style/TextAppearance.Headline.Primary"
           android:text="@string/follow_manage_following" />
   </LinearLayout>
diff --git a/chrome/browser/feed/android/java/res/layout/follow_management_item.xml b/chrome/browser/feed/android/java/res/layout/follow_management_item.xml
index f272d74..e23a61c 100644
--- a/chrome/browser/feed/android/java/res/layout/follow_management_item.xml
+++ b/chrome/browser/feed/android/java/res/layout/follow_management_item.xml
@@ -18,12 +18,14 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_margin="@dimen/follow_margin"
+        android:layout_gravity="center_vertical"
         android:src="@drawable/star_gray"
         tools:ignore="ContentDescription" />
 
     <RelativeLayout
         android:layout_width="0dp"
         android:layout_height="wrap_content"
+        android:layout_marginVertical="@dimen/follow_item_margin"
         android:layout_weight="1" >
 
         <TextView
@@ -53,6 +55,7 @@
         android:id="@+id/follow_management_subscribed_checkbox"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
         android:layout_marginEnd="9dp" />
 
 </org.chromium.chrome.browser.feed.followmanagement.FollowManagementItemView>
diff --git a/chrome/browser/feed/android/java/res/values/dimens.xml b/chrome/browser/feed/android/java/res/values/dimens.xml
index 97983fc..d144509e 100644
--- a/chrome/browser/feed/android/java/res/values/dimens.xml
+++ b/chrome/browser/feed/android/java/res/values/dimens.xml
@@ -25,4 +25,5 @@
     <dimen name="feed_management_header_height">56dp</dimen>
     <dimen name="follow_arrow_size">24dp</dimen>
     <dimen name="follow_margin">16dp</dimen>
+    <dimen name="follow_item_margin">10dp</dimen>
 </resources>
diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/followmanagement/FollowManagementMediator.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/followmanagement/FollowManagementMediator.java
index 4c5d3c3..43509d6 100644
--- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/followmanagement/FollowManagementMediator.java
+++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/followmanagement/FollowManagementMediator.java
@@ -114,8 +114,8 @@
                 boolean isColorDefault, @IconType int iconType) {
             // If we have a favicon, set it into the bitmap.  If not, make a monogram and put that
             // into the bitmap.
-            int faviconSize =
-                    mContext.getResources().getDimensionPixelSize(R.dimen.web_feed_icon_size);
+            int faviconSize = mContext.getResources().getDimensionPixelSize(
+                    R.dimen.web_feed_management_icon_size);
 
             if (favicon == null) {
                 // TODO(crbug/1152592): Update monogram according to specs.
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 8672dd0..6f2661ae 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -234,11 +234,6 @@
     "expiry_milestone": -1
   },
   {
-    "name": "ash-enable-interactive-window-cycle-list",
-    "owners": [ "chinsenj", "tclaiborne" ],
-    "expiry_milestone": 91
-  },
-  {
     "name": "ash-enable-pip-rounded-corners",
     "owners": [ "edcourtney" ],
     "expiry_milestone": 90
@@ -281,11 +276,6 @@
     "expiry_milestone": 94
   },
   {
-    "name": "audio-worklet-realtime-thread",
-    "owners": [ "//third_party/blink/renderer/modules/webaudio/OWNERS" ],
-    "expiry_milestone": 90
-  },
-  {
     "name": "auto-screen-brightness",
     "owners": [ "jiameng", "napper" ],
     "expiry_milestone": 90
@@ -1140,7 +1130,7 @@
   {
     "name": "dns-httpssvc",
     "owners": [ "dmcardle", "ericorth" ],
-    "expiry_milestone": 91
+    "expiry_milestone": 93
   },
   {
     "name": "dns-over-https",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 060db44..b6cef0f 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -163,12 +163,6 @@
     "a blob and the verification process of the signed exchange is skipped for "
     "the succeeding navigation.";
 
-const char kAudioWorkletRealtimeThreadName[] =
-    "Use realtime priority thread for Audio Worklet";
-const char kAudioWorkletRealtimeThreadDescription[] =
-    "Run Audio Worklet operation on a realtime priority thread for better "
-    "audio stream stability.";
-
 const char kUpdatedCellularActivationUiName[] =
     "Updated Cellular Activation UI";
 const char kUpdatedCellularActivationUiDescription[] =
@@ -4573,12 +4567,6 @@
 const char kIntentPickerPWAPersistenceDescription[] =
     "Allow user to always open with PWA in intent picker.";
 
-const char kInteractiveWindowCycleList[] =
-    "Enable Alt-Tab interactivity improvements.";
-const char kInteractiveWindowCycleListDescription[] =
-    "Adds mouse behavior, three-finger touchpad swipe, left/right "
-    "arrow navigation, and space/enter confirmation to Alt-Tab.";
-
 const char kKeyboardBasedDisplayArrangementInSettingsName[] =
     "Keyboard-based Display Arrangement in Settings";
 const char kKeyboardBasedDisplayArrangementInSettingsDescription[] =
@@ -4983,36 +4971,6 @@
     "Enables printing interactions with the operating system to be performed "
     "out-of-process.";
 
-const char kRemoteCopyReceiverName[] =
-    "Enables the remote copy feature to receive messages";
-const char kRemoteCopyReceiverDescription[] =
-    "Enables the remote copy feature to handle messages by writing content to "
-    "the clipboard and showing a notification to the user.";
-
-const char kRemoteCopyImageNotificationName[] =
-    "Enables image notifications for the remote copy feature";
-const char kRemoteCopyImageNotificationDescription[] =
-    "Enables image notifications to be shown for the remote copy feature "
-    "when receiving a message.";
-
-const char kRemoteCopyPersistentNotificationName[] =
-    "Enables persistent notifications for the remote copy feature";
-const char kRemoteCopyPersistentNotificationDescription[] =
-    "Enables persistent notifications to be shown for the remote copy feature "
-    "when receiving a message.";
-
-const char kRemoteCopyProgressNotificationName[] =
-    "Enables progress notifications for the remote copy feature";
-const char kRemoteCopyProgressNotificationDescription[] =
-    "Enables progress notifications to be shown for the remote copy feature "
-    "when receiving a message.";
-
-#endif  // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
-        // defined(OS_CHROMEOS)
-
-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
-    defined(OS_CHROMEOS)
-
 const char kDirectManipulationStylusName[] = "Direct Manipulation Stylus";
 const char kDirectManipulationStylusDescription[] =
     "If enabled, Chrome will scroll web pages on stylus drag.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 2aaa7bb..5f227f9 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -124,9 +124,6 @@
 extern const char kEnableSignedExchangePrefetchCacheForNavigationsName[];
 extern const char kEnableSignedExchangePrefetchCacheForNavigationsDescription[];
 
-extern const char kAudioWorkletRealtimeThreadName[];
-extern const char kAudioWorkletRealtimeThreadDescription[];
-
 extern const char kUpdatedCellularActivationUiName[];
 extern const char kUpdatedCellularActivationUiDescription[];
 
@@ -2662,9 +2659,6 @@
 extern const char kIntentPickerPWAPersistenceName[];
 extern const char kIntentPickerPWAPersistenceDescription[];
 
-extern const char kInteractiveWindowCycleList[];
-extern const char kInteractiveWindowCycleListDescription[];
-
 extern const char kKeyboardBasedDisplayArrangementInSettingsName[];
 extern const char kKeyboardBasedDisplayArrangementInSettingsDescription[];
 
@@ -2913,18 +2907,6 @@
 extern const char kEnableOopPrintDriversName[];
 extern const char kEnableOopPrintDriversDescription[];
 
-extern const char kRemoteCopyReceiverName[];
-extern const char kRemoteCopyReceiverDescription[];
-
-extern const char kRemoteCopyImageNotificationName[];
-extern const char kRemoteCopyImageNotificationDescription[];
-
-extern const char kRemoteCopyPersistentNotificationName[];
-extern const char kRemoteCopyPersistentNotificationDescription[];
-
-extern const char kRemoteCopyProgressNotificationName[];
-extern const char kRemoteCopyProgressNotificationDescription[];
-
 extern const char kDirectManipulationStylusName[];
 extern const char kDirectManipulationStylusDescription[];
 
diff --git a/chrome/browser/gcm/gcm_profile_service_unittest.cc b/chrome/browser/gcm/gcm_profile_service_unittest.cc
index 57c755b..338a8977 100644
--- a/chrome/browser/gcm/gcm_profile_service_unittest.cc
+++ b/chrome/browser/gcm/gcm_profile_service_unittest.cc
@@ -40,7 +40,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #endif
 
diff --git a/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc b/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc
index f41033e..332f5ca3 100644
--- a/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc
+++ b/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc
@@ -46,10 +46,10 @@
 
 using content::BrowserThread;
 
-using RepeatingMediaResponseCallback =
-    base::RepeatingCallback<void(const blink::MediaStreamDevices& devices,
-                                 blink::mojom::MediaStreamRequestResult result,
-                                 std::unique_ptr<content::MediaStreamUI> ui)>;
+using MediaResponseCallback =
+    base::OnceCallback<void(const blink::MediaStreamDevices& devices,
+                            blink::mojom::MediaStreamRequestResult result,
+                            std::unique_ptr<content::MediaStreamUI> ui)>;
 
 #if defined(OS_MAC)
 using system_media_permissions::SystemPermission;
@@ -121,14 +121,13 @@
 
 struct PermissionBubbleMediaAccessHandler::PendingAccessRequest {
   PendingAccessRequest(const content::MediaStreamRequest& request,
-                       RepeatingMediaResponseCallback callback)
-      : request(request), callback(callback) {}
-  ~PendingAccessRequest() {}
+                       MediaResponseCallback callback)
+      : request(request), callback(std::move(callback)) {}
 
   // TODO(gbillock): make the MediaStreamDevicesController owned by
   // this object when we're using bubbles.
   content::MediaStreamRequest request;
-  RepeatingMediaResponseCallback callback;
+  MediaResponseCallback callback;
 };
 
 PermissionBubbleMediaAccessHandler::PermissionBubbleMediaAccessHandler()
@@ -200,10 +199,8 @@
   web_contents_collection_.StartObserving(web_contents);
 
   RequestsMap& requests_map = pending_requests_[web_contents];
-  requests_map.emplace(
-      next_request_id_++,
-      PendingAccessRequest(
-          request, base::AdaptCallbackForRepeating(std::move(callback))));
+  requests_map.emplace(next_request_id_++,
+                       PendingAccessRequest(request, std::move(callback)));
 
   // If this is the only request then show the infobar.
   if (requests_map.size() == 1)
@@ -403,8 +400,7 @@
   }
 #endif  // defined(OS_MAC)
 
-  RepeatingMediaResponseCallback callback =
-      std::move(request_it->second.callback);
+  MediaResponseCallback callback = std::move(request_it->second.callback);
   requests_map.erase(request_it);
 
   if (!requests_map.empty()) {
diff --git a/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.cc b/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.cc
index 404d7324..5b9ee06 100644
--- a/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.cc
+++ b/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.cc
@@ -168,12 +168,9 @@
     int bytes_written = -1;
 
     if (base::PathExists(dump_path_)) {
-      bytes_written =
-          base::AppendToFile(dump_path_, reinterpret_cast<const char*>(
-                                             compressed_buffer.data()),
-                             compressed_buffer.size())
-              ? compressed_buffer.size()
-              : -1;
+      bytes_written = base::AppendToFile(dump_path_, compressed_buffer)
+                          ? compressed_buffer.size()
+                          : -1;
     } else {
       bytes_written = base::WriteFile(
           dump_path_,
@@ -238,9 +235,7 @@
     memset(&stream_, 0, sizeof(z_stream));
 
     DCHECK(!output_buffer.empty());
-    return base::AppendToFile(
-        dump_path_, reinterpret_cast<const char*>(output_buffer.data()),
-        output_buffer.size());
+    return base::AppendToFile(dump_path_, output_buffer);
   }
 
   const base::FilePath dump_path_;
diff --git a/chrome/browser/media_galleries/chromeos/mtp_read_file_worker.cc b/chrome/browser/media_galleries/chromeos/mtp_read_file_worker.cc
index 43e71d7..cb36d82 100644
--- a/chrome/browser/media_galleries/chromeos/mtp_read_file_worker.cc
+++ b/chrome/browser/media_galleries/chromeos/mtp_read_file_worker.cc
@@ -29,7 +29,7 @@
 uint32_t WriteDataChunkIntoSnapshotFileOnFileThread(
     const base::FilePath& snapshot_file_path,
     const std::string& data) {
-  return base::AppendToFile(snapshot_file_path, data.c_str(), data.size())
+  return base::AppendToFile(snapshot_file_path, data)
              ? base::checked_cast<uint32_t>(data.size())
              : 0;
 }
diff --git a/chrome/browser/media_galleries/win/mtp_device_operations_util.cc b/chrome/browser/media_galleries/win/mtp_device_operations_util.cc
index e613c5f..c03f669 100644
--- a/chrome/browser/media_galleries/win/mtp_device_operations_util.cc
+++ b/chrome/browser/media_galleries/win/mtp_device_operations_util.cc
@@ -399,13 +399,9 @@
   if (FAILED(hr))
     return 0U;
   DCHECK_GT(bytes_read, 0U);
-  CHECK_LE(bytes_read, buffer.length());
-  int data_len =
-      base::checked_cast<int>(
-          std::min(bytes_read,
-                   base::checked_cast<DWORD>(buffer.length())));
-  return base::AppendToFile(local_path, buffer.c_str(), data_len) ? data_len
-                                                                  : 0;
+  CHECK_LE(bytes_read, buffer.size());
+  buffer.resize(bytes_read);
+  return base::AppendToFile(local_path, buffer) ? buffer.size() : 0;
 }
 
 std::wstring GetObjectIdFromName(IPortableDevice* device,
diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc
index 3f5b288..8e508bf 100644
--- a/chrome/browser/memory_details.cc
+++ b/chrome/browser/memory_details.cc
@@ -362,8 +362,6 @@
   base::EraseIf(vector, is_unknown);
 
   // Grab a memory dump for all processes.
-  // Using AdaptCallbackForRepeating allows for an easier transition to
-  // OnceCallbacks for https://crbug.com/714018.
   memory_instrumentation::MemoryInstrumentation::GetInstance()
       ->RequestPrivateMemoryFootprint(
           base::kNullProcessId,
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_browsertest.cc b/chrome/browser/navigation_predictor/navigation_predictor_browsertest.cc
index a05e602..2bb2384ce 100644
--- a/chrome/browser/navigation_predictor/navigation_predictor_browsertest.cc
+++ b/chrome/browser/navigation_predictor/navigation_predictor_browsertest.cc
@@ -10,6 +10,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/bind.h"
 #include "base/test/scoped_feature_list.h"
+#include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service.h"
@@ -295,7 +296,13 @@
 }
 
 // Tests that anchors from iframes are reported.
-IN_PROC_BROWSER_TEST_F(NavigationPredictorBrowserTest, PageWithIframe) {
+// TODO(crbug.com/1208143): Test is flaky.
+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS)
+#define MAYBE_PageWithIframe DISABLED_PageWithIframe
+#else
+#define MAYBE_PageWithIframe PageWithIframe
+#endif
+IN_PROC_BROWSER_TEST_F(NavigationPredictorBrowserTest, MAYBE_PageWithIframe) {
   auto test_ukm_recorder = std::make_unique<ukm::TestAutoSetUkmRecorder>();
   ResetUKM();
 
diff --git a/chrome/browser/net/nss_context.cc b/chrome/browser/net/nss_context.cc
index e5305c9..31bc2a38 100644
--- a/chrome/browser/net/nss_context.cc
+++ b/chrome/browser/net/nss_context.cc
@@ -36,13 +36,12 @@
 
   // Note that the callback will be used only if the cert database hasn't yet
   // been initialized.
-  auto completion_callback = base::AdaptCallbackForRepeating(base::BindOnce(
+  auto split_callback = base::SplitOnceCallback(base::BindOnce(
       &DidGetCertDBOnIOThread, response_task_runner, std::move(callback)));
   net::NSSCertDatabase* cert_db =
-      std::move(database_getter).Run(completion_callback);
-
+      std::move(database_getter).Run(std::move(split_callback.first));
   if (cert_db)
-    completion_callback.Run(cert_db);
+    std::move(split_callback.second).Run(cert_db);
 }
 
 }  // namespace
diff --git a/chrome/browser/offline_pages/visuals_decoder_impl.cc b/chrome/browser/offline_pages/visuals_decoder_impl.cc
index f230d3b..fb706f2 100644
--- a/chrome/browser/offline_pages/visuals_decoder_impl.cc
+++ b/chrome/browser/offline_pages/visuals_decoder_impl.cc
@@ -56,9 +56,8 @@
 
   // kPreferredFaviconSize only has an effect for images with multiple frames
   // (.ico) and shouldn't make a difference for thumbnails.
-  image_decoder_->DecodeImage(
-      thumbnail_data, kPreferredFaviconSize,
-      base::AdaptCallbackForRepeating(std::move(callback)));
+  image_decoder_->DecodeImage(thumbnail_data, kPreferredFaviconSize,
+                              std::move(callback));
 }
 
 }  // namespace offline_pages
diff --git a/chrome/browser/optimization_guide/hints_fetcher_browsertest.cc b/chrome/browser/optimization_guide/hints_fetcher_browsertest.cc
index 6fd418da..6b053d4e 100644
--- a/chrome/browser/optimization_guide/hints_fetcher_browsertest.cc
+++ b/chrome/browser/optimization_guide/hints_fetcher_browsertest.cc
@@ -1538,8 +1538,9 @@
   }
 };
 
+// TODO(crbug.com/1208585): Test is flaky.
 IN_PROC_BROWSER_TEST_F(HintsFetcherSearchPageBrowserTest,
-                       HintsFetcher_SRP_Slow_Connection) {
+                       DISABLED_HintsFetcher_SRP_Slow_Connection) {
   g_browser_process->network_quality_tracker()
       ->ReportEffectiveConnectionTypeForTesting(
           net::EFFECTIVE_CONNECTION_TYPE_2G);
diff --git a/chrome/browser/optimization_guide/page_content_annotations_service_browsertest.cc b/chrome/browser/optimization_guide/page_content_annotations_service_browsertest.cc
index 7dc545094..78099223 100644
--- a/chrome/browser/optimization_guide/page_content_annotations_service_browsertest.cc
+++ b/chrome/browser/optimization_guide/page_content_annotations_service_browsertest.cc
@@ -397,9 +397,10 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
+// Flaky: crbug/1208866
 // Regression test for crbug/1204162.
 IN_PROC_BROWSER_TEST_F(PageContentAnnotationsServiceLoadEachExecutionTest,
-                       ModelLoadsAndExecutes) {
+                       DISABLED_ModelLoadsAndExecutes) {
   base::HistogramTester histogram_tester;
 
   GURL url(embedded_test_server()->GetURL("a.com", "/hello.html"));
diff --git a/chrome/browser/optimization_guide/prediction/prediction_manager.cc b/chrome/browser/optimization_guide/prediction/prediction_manager.cc
index 26df478..712cea0c 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_manager.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_manager.cc
@@ -734,13 +734,9 @@
   // Create the download manager here if we are allowed to.
   if (features::IsModelDownloadingEnabled() && !profile_->IsOffTheRecord() &&
       !prediction_model_download_manager_) {
-    base::FilePath models_dir;
-    base::PathService::Get(chrome::DIR_OPTIMIZATION_GUIDE_PREDICTION_MODELS,
-                           &models_dir);
     prediction_model_download_manager_ =
         std::make_unique<PredictionModelDownloadManager>(
             DownloadServiceFactory::GetForKey(profile_->GetProfileKey()),
-            models_dir,
             base::ThreadPool::CreateSequencedTaskRunner(
                 {base::MayBlock(), base::TaskPriority::BEST_EFFORT}));
     prediction_model_download_manager_->AddObserver(this);
diff --git a/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc b/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
index 3df26f46..7af274a2 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_manager_browsertest.cc
@@ -6,6 +6,7 @@
 
 #include "base/base64.h"
 #include "base/callback_helpers.h"
+#include "base/files/file_util.h"
 #include "base/run_loop.h"
 #include "base/task/thread_pool/thread_pool_instance.h"
 #include "base/test/bind.h"
@@ -781,6 +782,10 @@
   histogram_tester.ExpectUniqueSample(
       "OptimizationGuide.PredictionModelDownloadManager.DownloadStatus",
       PredictionModelDownloadStatus::kSuccess, 1);
+
+  // No error when moving the file so there will be no record.
+  histogram_tester.ExpectTotalCount(
+      "OptimizationGuide.PredictionModelDownloadManager.ReplaceFileError", 0);
   histogram_tester.ExpectUniqueSample(
       "OptimizationGuide.PredictionModelUpdateVersion.PainfulPageLoad", 123, 1);
   histogram_tester.ExpectUniqueSample(
diff --git a/chrome/browser/optimization_guide/prediction/prediction_manager_unittest.cc b/chrome/browser/optimization_guide/prediction/prediction_manager_unittest.cc
index 7dee759..8284fd7 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_manager_unittest.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_manager_unittest.cc
@@ -163,7 +163,6 @@
   FakePredictionModelDownloadManager(
       scoped_refptr<base::SequencedTaskRunner> task_runner)
       : PredictionModelDownloadManager(/*download_service=*/nullptr,
-                                       base::FilePath(),
                                        task_runner) {}
   ~FakePredictionModelDownloadManager() override = default;
 
diff --git a/chrome/browser/optimization_guide/prediction/prediction_model_download_manager.cc b/chrome/browser/optimization_guide/prediction/prediction_model_download_manager.cc
index d8871c7..9dd9983 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_model_download_manager.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_model_download_manager.cc
@@ -8,6 +8,8 @@
 #include "base/files/file_util.h"
 #include "base/guid.h"
 #include "base/metrics/histogram_functions.h"
+#include "base/metrics/histogram_macros.h"
+#include "base/path_service.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
@@ -15,6 +17,7 @@
 #include "base/task/thread_pool.h"
 #include "build/build_config.h"
 #include "chrome/browser/optimization_guide/prediction/prediction_model_download_observer.h"
+#include "chrome/common/chrome_paths.h"
 #include "components/crx_file/crx_verifier.h"
 #include "components/download/public/background_service/download_service.h"
 #include "components/optimization_guide/core/optimization_guide_enums.h"
@@ -95,10 +98,8 @@
 
 PredictionModelDownloadManager::PredictionModelDownloadManager(
     download::DownloadService* download_service,
-    const base::FilePath& models_dir,
     scoped_refptr<base::SequencedTaskRunner> background_task_runner)
     : download_service_(download_service),
-      models_dir_(models_dir),
       is_available_for_downloads_(true),
       api_key_(features::GetOptimizationGuideServiceAPIKey()),
       background_task_runner_(background_task_runner) {}
@@ -331,27 +332,47 @@
     return base::nullopt;
   }
 
-  // Move model file away from temp directory.
-  base::FilePath temp_model_path = unzipped_dir_path.Append(kModelFileName);
-  base::FilePath model_path = GetFilePathForModelInfo(models_dir_, model_info);
-  base::File::Error file_error;
-  if (!base::ReplaceFile(temp_model_path, model_path, &file_error)) {
-    if (file_error == base::File::FILE_ERROR_NOT_FOUND) {
+  if (!models_dir_) {
+    models_dir_ = base::FilePath();
+    if (!base::PathService::Get(
+            chrome::DIR_OPTIMIZATION_GUIDE_PREDICTION_MODELS,
+            &(*models_dir_))) {
       RecordPredictionModelDownloadStatus(
-          PredictionModelDownloadStatus::kFailedModelFileNotFound);
-    } else {
-      RecordPredictionModelDownloadStatus(
-          PredictionModelDownloadStatus::kFailedModelFileOtherError);
+          PredictionModelDownloadStatus::kModelDirectoryDoesNotExist);
+      models_dir_ = base::nullopt;
+      return base::nullopt;
     }
-    return base::nullopt;
   }
 
-  RecordPredictionModelDownloadStatus(PredictionModelDownloadStatus::kSuccess);
+  // Move model file away from temp directory.
+  base::FilePath temp_model_path = unzipped_dir_path.Append(kModelFileName);
+  base::FilePath model_path = GetFilePathForModelInfo(*models_dir_, model_info);
 
   proto::PredictionModel model;
   *model.mutable_model_info() = model_info;
   SetFilePathInPredictionModel(model_path, &model);
-  return model;
+
+  base::File::Error file_error;
+  if (base::ReplaceFile(temp_model_path, model_path, &file_error)) {
+    RecordPredictionModelDownloadStatus(
+        PredictionModelDownloadStatus::kSuccess);
+    return model;
+  }
+
+  // ReplaceFile failed, log the error code and attempt to utilize base::Move
+  // instead as the file could be on a different storage partition.
+  UMA_HISTOGRAM_ENUMERATION(
+      "OptimizationGuide.PredictionModelDownloadManager.ReplaceFileError",
+      -file_error, -base::File::FILE_ERROR_MAX);
+  if (base::Move(temp_model_path, model_path)) {
+    RecordPredictionModelDownloadStatus(
+        PredictionModelDownloadStatus::kSuccess);
+    return model;
+  }
+
+  RecordPredictionModelDownloadStatus(
+      PredictionModelDownloadStatus::kFailedModelFileOtherError);
+  return base::nullopt;
 }
 
 void PredictionModelDownloadManager::NotifyModelReady(
diff --git a/chrome/browser/optimization_guide/prediction/prediction_model_download_manager.h b/chrome/browser/optimization_guide/prediction/prediction_model_download_manager.h
index 3517343..c206e89 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_model_download_manager.h
+++ b/chrome/browser/optimization_guide/prediction/prediction_model_download_manager.h
@@ -32,7 +32,6 @@
  public:
   PredictionModelDownloadManager(
       download::DownloadService* download_service,
-      const base::FilePath& models_dir,
       scoped_refptr<base::SequencedTaskRunner> background_task_runner);
   virtual ~PredictionModelDownloadManager();
   PredictionModelDownloadManager(const PredictionModelDownloadManager&) =
@@ -125,7 +124,7 @@
   download::DownloadService* download_service_;
 
   // The directory to store verified models in.
-  base::FilePath models_dir_;
+  base::Optional<base::FilePath> models_dir_;
 
   // Whether the download service is available.
   bool is_available_for_downloads_;
diff --git a/chrome/browser/optimization_guide/prediction/prediction_model_download_manager_unittest.cc b/chrome/browser/optimization_guide/prediction/prediction_model_download_manager_unittest.cc
index c2b7b0847..5a3212c 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_model_download_manager_unittest.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_model_download_manager_unittest.cc
@@ -70,7 +70,7 @@
     mock_download_service_ =
         std::make_unique<download::test::MockDownloadService>();
     download_manager_ = std::make_unique<PredictionModelDownloadManager>(
-        mock_download_service_.get(), temp_dir_.GetPath(),
+        mock_download_service_.get(),
         task_environment_.GetMainThreadTaskRunner());
 
     unzip::SetUnzipperLaunchOverrideForTesting(
@@ -533,7 +533,11 @@
   histogram_tester.ExpectUniqueSample(
       "OptimizationGuide.PredictionModelDownloadManager."
       "DownloadStatus",
-      PredictionModelDownloadStatus::kFailedModelFileNotFound, 1);
+      PredictionModelDownloadStatus::kFailedModelFileOtherError, 1);
+  // The error code for ReplaceFile varies by platform for this test, only
+  // care that the error code is recorded.
+  histogram_tester.ExpectTotalCount(
+      "OptimizationGuide.PredictionModelDownloadManager.ReplaceFileError", 1);
 }
 
 TEST_F(
diff --git a/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc b/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc
index b7a77f83..dc1d2d4e 100644
--- a/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc
+++ b/chrome/browser/page_load_metrics/integration_tests/event_counts_browsertest.cc
@@ -8,7 +8,7 @@
 #include "content/public/test/browser_test_utils.h"
 
 #if defined(USE_AURA)
-IN_PROC_BROWSER_TEST_F(MetricIntegrationTest, EventCounts) {
+IN_PROC_BROWSER_TEST_F(MetricIntegrationTest, DISABLED_EventCounts) {
   LoadHTML(R"HTML(
     <p>Sample website</p>
   )HTML");
diff --git a/chrome/browser/policy/device_account_initializer.cc b/chrome/browser/policy/device_account_initializer.cc
index 505766a..b670918 100644
--- a/chrome/browser/policy/device_account_initializer.cc
+++ b/chrome/browser/policy/device_account_initializer.cc
@@ -130,9 +130,8 @@
   handling_request_ = true;
   DeviceOAuth2TokenServiceFactory::Get()->SetAndSaveRefreshToken(
       robot_refresh_token_,
-      base::AdaptCallbackForRepeating(base::BindOnce(
-          &DeviceAccountInitializer::HandleStoreRobotAuthTokenResult,
-          weak_ptr_factory_.GetWeakPtr())));
+      base::BindOnce(&DeviceAccountInitializer::HandleStoreRobotAuthTokenResult,
+                     weak_ptr_factory_.GetWeakPtr()));
 }
 
 void DeviceAccountInitializer::HandleStoreRobotAuthTokenResult(bool result) {
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 13d7598..c2f9b0c 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -290,6 +290,7 @@
 #include "chrome/browser/ash/borealis/borealis_prefs.h"
 #include "chrome/browser/ash/child_accounts/secondary_account_consent_logger.h"
 #include "chrome/browser/ash/crosapi/browser_util.h"
+#include "chrome/browser/ash/file_system_provider/registry.h"
 #include "chrome/browser/ash/guest_os/guest_os_pref_names.h"
 #include "chrome/browser/ash/lock_screen_apps/state_controller.h"
 #include "chrome/browser/ash/login/demo_mode/demo_mode_detector.h"
@@ -315,7 +316,6 @@
 #include "chrome/browser/ash/settings/device_settings_cache.h"
 #include "chrome/browser/ash/system/automatic_reboot_manager.h"
 #include "chrome/browser/ash/system/input_device_settings.h"
-#include "chrome/browser/chromeos/file_system_provider/registry.h"
 #include "chrome/browser/chromeos/first_run/first_run.h"
 #include "chrome/browser/chromeos/full_restore/full_restore_prefs.h"
 #include "chrome/browser/chromeos/net/network_throttling_observer.h"
diff --git a/chrome/browser/printing/print_backend_browsertest.cc b/chrome/browser/printing/print_backend_browsertest.cc
index 657cb28..33b46d2d 100644
--- a/chrome/browser/printing/print_backend_browsertest.cc
+++ b/chrome/browser/printing/print_backend_browsertest.cc
@@ -23,6 +23,7 @@
 #include "mojo/public/cpp/bindings/remote.h"
 #include "printing/backend/print_backend.h"
 #include "printing/backend/test_print_backend.h"
+#include "printing/mojom/print.mojom.h"
 #include "testing/gmock/include/gmock/gmock-matchers.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -35,6 +36,7 @@
 constexpr char kDefaultPrinterName[] = "default-test-printer";
 constexpr char kAnotherPrinterName[] = "another-test-printer";
 constexpr char kInvalidPrinterName[] = "invalid-test-printer";
+constexpr char kAccessDeniedPrinterName[] = "access-denied-test-printer";
 
 const PrinterBasicInfo kDefaultPrinterInfo(
     /*printer_name=*/kDefaultPrinterName,
@@ -89,39 +91,35 @@
         std::make_unique<PrinterBasicInfo>(kAnotherPrinterInfo));
   }
 
+  void AddAccessDeniedPrinter() {
+    test_print_backend_->AddAccessDeniedPrinter(kAccessDeniedPrinterName);
+  }
+
   // Public callbacks used by tests.
-  void OnDidEnumeratePrinters(base::Optional<PrinterList>* capture_printer_list,
-                              const base::Optional<PrinterList>& printer_list) {
-    *capture_printer_list = printer_list;
+  void OnDidEnumeratePrinters(mojom::PrinterListResultPtr& capture_printer_list,
+                              mojom::PrinterListResultPtr printer_list) {
+    capture_printer_list = std::move(printer_list);
     CheckForQuit();
   }
 
   void OnDidGetDefaultPrinterName(
-      base::Optional<std::string>* capture_printer_name,
+      base::Optional<std::string>& capture_printer_name,
       const base::Optional<std::string>& printer_name) {
-    *capture_printer_name = printer_name;
+    capture_printer_name = printer_name;
     CheckForQuit();
   }
 
   void OnDidGetPrinterSemanticCapsAndDefaults(
-      base::Optional<PrinterSemanticCapsAndDefaults>* capture_printer_caps,
-      const base::Optional<PrinterSemanticCapsAndDefaults>& printer_caps) {
-    *capture_printer_caps = printer_caps;
+      mojom::PrinterSemanticCapsAndDefaultsResultPtr& capture_printer_caps,
+      mojom::PrinterSemanticCapsAndDefaultsResultPtr printer_caps) {
+    capture_printer_caps = std::move(printer_caps);
     CheckForQuit();
   }
 
   void OnDidFetchCapabilities(
-      base::Optional<PrinterBasicInfo>* capture_printer_info,
-      base::Optional<PrinterSemanticCapsAndDefaults::Papers>*
-          capture_user_defined_papers,
-      base::Optional<PrinterSemanticCapsAndDefaults>* capture_printer_caps,
-      const base::Optional<PrinterBasicInfo>& printer_info,
-      const base::Optional<PrinterSemanticCapsAndDefaults::Papers>&
-          user_defined_papers,
-      const base::Optional<PrinterSemanticCapsAndDefaults>& printer_caps) {
-    *capture_printer_info = printer_info;
-    *capture_user_defined_papers = user_defined_papers;
-    *capture_printer_caps = printer_caps;
+      mojom::PrinterCapsAndInfoResultPtr& capture_caps_and_info,
+      mojom::PrinterCapsAndInfoResultPtr caps_and_info) {
+    capture_caps_and_info = std::move(caps_and_info);
     CheckForQuit();
   }
 
@@ -169,13 +167,13 @@
   LaunchUninitialized();
 
   base::Optional<std::string> default_printer_name;
-  base::Optional<PrinterSemanticCapsAndDefaults> printer_caps;
+  mojom::PrinterSemanticCapsAndDefaultsResultPtr printer_caps;
 
   // Safe to use base::Unretained(this) since waiting locally on the callback
   // forces a shorter lifetime than `this`.
   GetPrintBackendService()->GetDefaultPrinterName(
       base::BindOnce(&PrintBackendBrowserTest::OnDidGetDefaultPrinterName,
-                     base::Unretained(this), &default_printer_name));
+                     base::Unretained(this), std::ref(default_printer_name)));
   WaitUntilCallbackReceived();
   EXPECT_FALSE(default_printer_name.has_value());
 
@@ -183,9 +181,10 @@
       kDefaultPrinterName,
       base::BindOnce(
           &PrintBackendBrowserTest::OnDidGetPrinterSemanticCapsAndDefaults,
-          base::Unretained(this), &printer_caps));
+          base::Unretained(this), std::ref(printer_caps)));
   WaitUntilCallbackReceived();
-  EXPECT_FALSE(printer_caps.has_value());
+  ASSERT_TRUE(printer_caps->is_result_code());
+  EXPECT_EQ(printer_caps->get_result_code(), mojom::ResultCode::kFailed);
 }
 
 IN_PROC_BROWSER_TEST_F(PrintBackendBrowserTest, EnumeratePrinters) {
@@ -198,13 +197,13 @@
 
   // Safe to use base::Unretained(this) since waiting locally on the callback
   // forces a shorter lifetime than `this`.
-  base::Optional<PrinterList> printer_list;
+  mojom::PrinterListResultPtr printer_list;
   GetPrintBackendService()->EnumeratePrinters(
       base::BindOnce(&PrintBackendBrowserTest::OnDidEnumeratePrinters,
-                     base::Unretained(this), &printer_list));
+                     base::Unretained(this), std::ref(printer_list)));
   WaitUntilCallbackReceived();
-  ASSERT_TRUE(printer_list.has_value());
-  EXPECT_THAT(printer_list.value(),
+  ASSERT_TRUE(printer_list->is_printer_list());
+  EXPECT_THAT(printer_list->get_printer_list(),
               UnorderedElementsAreArray(kPrinterListExpected));
 }
 
@@ -218,7 +217,7 @@
   // forces a shorter lifetime than `this`.
   GetPrintBackendService()->GetDefaultPrinterName(
       base::BindOnce(&PrintBackendBrowserTest::OnDidGetDefaultPrinterName,
-                     base::Unretained(this), &default_printer_name));
+                     base::Unretained(this), std::ref(default_printer_name)));
   WaitUntilCallbackReceived();
   ASSERT_TRUE(default_printer_name.has_value());
   EXPECT_EQ(default_printer_name.value(), kDefaultPrinterName);
@@ -229,7 +228,7 @@
   LaunchService();
   AddDefaultPrinter();
 
-  base::Optional<PrinterSemanticCapsAndDefaults> printer_caps;
+  mojom::PrinterSemanticCapsAndDefaultsResultPtr printer_caps;
 
   // Safe to use base::Unretained(this) since waiting locally on the callback
   // forces a shorter lifetime than `this`.
@@ -237,53 +236,85 @@
       kDefaultPrinterName,
       base::BindOnce(
           &PrintBackendBrowserTest::OnDidGetPrinterSemanticCapsAndDefaults,
-          base::Unretained(this), &printer_caps));
+          base::Unretained(this), std::ref(printer_caps)));
   WaitUntilCallbackReceived();
-  ASSERT_TRUE(printer_caps.has_value());
-  EXPECT_EQ(printer_caps.value().copies_max, kCopiesMax);
+  ASSERT_TRUE(printer_caps->is_printer_caps());
+  EXPECT_EQ(printer_caps->get_printer_caps().copies_max, kCopiesMax);
 
   // Requesting for an invalid printer should not return capabilities.
   GetPrintBackendService()->GetPrinterSemanticCapsAndDefaults(
       kInvalidPrinterName,
       base::BindOnce(
           &PrintBackendBrowserTest::OnDidGetPrinterSemanticCapsAndDefaults,
-          base::Unretained(this), &printer_caps));
+          base::Unretained(this), std::ref(printer_caps)));
   WaitUntilCallbackReceived();
-  EXPECT_FALSE(printer_caps.has_value());
+  ASSERT_TRUE(printer_caps->is_result_code());
+  EXPECT_EQ(printer_caps->get_result_code(), mojom::ResultCode::kFailed);
+}
+
+IN_PROC_BROWSER_TEST_F(PrintBackendBrowserTest,
+                       GetPrinterSemanticCapsAndDefaultsAccessDenied) {
+  LaunchService();
+  AddAccessDeniedPrinter();
+
+  mojom::PrinterSemanticCapsAndDefaultsResultPtr printer_caps;
+
+  // Requesting for a printer which requires elevated privileges should not
+  // return capabilities, and should indicate that access was denied.
+  // Safe to use base::Unretained(this) since waiting locally on the callback
+  // forces a shorter lifetime than `this`.
+  GetPrintBackendService()->GetPrinterSemanticCapsAndDefaults(
+      kAccessDeniedPrinterName,
+      base::BindOnce(
+          &PrintBackendBrowserTest::OnDidGetPrinterSemanticCapsAndDefaults,
+          base::Unretained(this), std::ref(printer_caps)));
+  WaitUntilCallbackReceived();
+  ASSERT_TRUE(printer_caps->is_result_code());
+  EXPECT_EQ(printer_caps->get_result_code(), mojom::ResultCode::kAccessDenied);
 }
 
 IN_PROC_BROWSER_TEST_F(PrintBackendBrowserTest, FetchCapabilities) {
   LaunchService();
   AddDefaultPrinter();
 
-  base::Optional<PrinterBasicInfo> printer_info;
-  base::Optional<PrinterSemanticCapsAndDefaults::Papers> user_defined_papers;
-  base::Optional<PrinterSemanticCapsAndDefaults> printer_caps;
+  mojom::PrinterCapsAndInfoResultPtr caps_and_info;
 
   // Safe to use base::Unretained(this) since waiting locally on the callback
   // forces a shorter lifetime than `this`.
   GetPrintBackendService()->FetchCapabilities(
       kDefaultPrinterName,
       base::BindOnce(&PrintBackendBrowserTest::OnDidFetchCapabilities,
-                     base::Unretained(this), &printer_info,
-                     &user_defined_papers, &printer_caps));
+                     base::Unretained(this), std::ref(caps_and_info)));
   WaitUntilCallbackReceived();
-  ASSERT_TRUE(printer_info.has_value());
-  EXPECT_TRUE(user_defined_papers.has_value());
-  ASSERT_TRUE(printer_caps.has_value());
-  EXPECT_TRUE(printer_info.value().is_default);
-  EXPECT_EQ(printer_caps.value().copies_max, kCopiesMax);
+  ASSERT_TRUE(caps_and_info->is_printer_caps_and_info());
+  EXPECT_EQ(caps_and_info->get_printer_caps_and_info()->printer_caps.copies_max,
+            kCopiesMax);
 
   // Requesting for an invalid printer should not return capabilities.
   GetPrintBackendService()->FetchCapabilities(
       kInvalidPrinterName,
       base::BindOnce(&PrintBackendBrowserTest::OnDidFetchCapabilities,
-                     base::Unretained(this), &printer_info,
-                     &user_defined_papers, &printer_caps));
+                     base::Unretained(this), std::ref(caps_and_info)));
   WaitUntilCallbackReceived();
-  EXPECT_FALSE(printer_info.has_value());
-  EXPECT_FALSE(user_defined_papers.has_value());
-  EXPECT_FALSE(printer_caps.has_value());
+  ASSERT_TRUE(caps_and_info->is_result_code());
+  EXPECT_EQ(caps_and_info->get_result_code(), mojom::ResultCode::kFailed);
+}
+
+IN_PROC_BROWSER_TEST_F(PrintBackendBrowserTest, FetchCapabilitiesAccessDenied) {
+  LaunchService();
+  AddAccessDeniedPrinter();
+
+  mojom::PrinterCapsAndInfoResultPtr caps_and_info;
+
+  // Safe to use base::Unretained(this) since waiting locally on the callback
+  // forces a shorter lifetime than `this`.
+  GetPrintBackendService()->FetchCapabilities(
+      kAccessDeniedPrinterName,
+      base::BindOnce(&PrintBackendBrowserTest::OnDidFetchCapabilities,
+                     base::Unretained(this), std::ref(caps_and_info)));
+  WaitUntilCallbackReceived();
+  ASSERT_TRUE(caps_and_info->is_result_code());
+  EXPECT_EQ(caps_and_info->get_result_code(), mojom::ResultCode::kAccessDenied);
 }
 
 }  // namespace printing
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
index d5504d41..10818b89 100644
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -23,7 +23,6 @@
     public_deps += [
       ":component_extension_resources",
       ":dev_ui_paks",
-      ":local_ntp_resources",
       ":webid_resources",
       "bookmarks:resources",
       "commander:resources",
@@ -35,6 +34,7 @@
       "media_router:resources",
       "memories:resources",
       "new_tab_page:resources",
+      "new_tab_page_instant:resources",
       "new_tab_page_third_party:resources",
       "read_later:resources",
       "settings:resources",
@@ -113,12 +113,12 @@
         "history:closure_compile",
         "inline_login:closure_compile",
         "internals/user_education:closure_compile",
-        "local_ntp:closure_compile",
         "management:closure_compile",
         "media_router:closure_compile",
         "memories:closure_compile",
         "nearby_internals:closure_compile",
         "new_tab_page:closure_compile",
+        "new_tab_page_instant:closure_compile",
         "new_tab_page_third_party:closure_compile",
         "ntp4:closure_compile",
         "omnibox:closure_compile",
@@ -207,16 +207,6 @@
     output_dir = "$root_gen_dir/chrome"
   }
 
-  grit("local_ntp_resources") {
-    source = "local_ntp/local_ntp_resources.grd"
-    defines = chrome_grit_defines
-    outputs = [
-      "grit/local_ntp_resources.h",
-      "local_ntp_resources.pak",
-    ]
-    output_dir = "$root_gen_dir/chrome"
-  }
-
   grit("webid_resources") {
     source = "webid/webid_resources.grd"
     defines = chrome_grit_defines
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler.js
index 23297a78..41b2152 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler.js
@@ -47,6 +47,16 @@
     /** @private {AutomationNode} */
     this.lastValueTarget_ = null;
 
+    /**
+     * The last time we handled an alert event.
+     * @type {!Date}
+     * @private
+     */
+    this.lastAlertTime_ = new Date(0);
+
+    /** @private {string} */
+    this.lastAlertText_ = '';
+
     /** @private {string} */
     this.lastRootUrl_ = '';
 
@@ -177,11 +187,19 @@
     }
 
     const range = cursors.Range.fromNode(node);
-
     const output = new Output()
                        .withSpeechCategory(TtsCategory.LIVE)
                        .withSpeechAndBraille(range, null, evt.type);
 
+    const alertDelayMet = new Date() - this.lastAlertTime_ >
+        DesktopAutomationHandler.MIN_ALERT_DELAY_MS;
+    if (!alertDelayMet && output.toString() === this.lastAlertText_) {
+      return;
+    }
+
+    this.lastAlertTime_ = new Date();
+    this.lastAlertText_ = output.toString();
+
     // A workaround for alert nodes that contain no actual content.
     if (output.toString()) {
       output.go();
@@ -782,6 +800,12 @@
 DesktopAutomationHandler.MIN_VALUE_CHANGE_DELAY_MS = 50;
 
 /**
+ * Time to wait until processing more alert events with the same text content.
+ * @const {number}
+ */
+DesktopAutomationHandler.MIN_ALERT_DELAY_MS = 50;
+
+/**
  * Time to wait before announcing attribute changes that are otherwise too
  * disruptive.
  * @const {number}
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler_test.js
index 973f9b6..3de9dea 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler_test.js
@@ -122,3 +122,30 @@
         .replay();
   });
 });
+
+TEST_F(
+    'ChromeVoxDesktopAutomationHandlerTest', 'IgnoreRepeatedAlerts',
+    function() {
+      const mockFeedback = this.createMockFeedback();
+      const site = `<button>Hello world</button>`;
+      this.runWithLoadedTree(site, function(root) {
+        const button = root.find({role: RoleType.BUTTON});
+        assertTrue(!!button);
+        const event = new CustomAutomationEvent(EventType.ALERT, button);
+        mockFeedback
+            .call(() => {
+              DesktopAutomationHandler.MIN_ALERT_DELAY_MS = 20 * 1000;
+              this.handler_.onAlert(event);
+            })
+            .expectSpeech('Hello world')
+            .clearPendingOutput()
+            .call(() => {
+              // Repeated alerts should be ignored.
+              this.handler_.onAlert(event);
+              assertFalse(mockFeedback.utteranceInQueue('Hello world'));
+              this.handler_.onAlert(event);
+              assertFalse(mockFeedback.utteranceInQueue('Hello world'));
+            })
+            .replay();
+      });
+    });
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/pointer_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/pointer_handler.js
index 11ce705..b4ef0bf 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/pointer_handler.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/pointer_handler.js
@@ -9,6 +9,8 @@
 
 goog.provide('PointerHandler');
 
+goog.require('constants');
+goog.require('AutomationTreeWalker');
 goog.require('BaseAutomationHandler');
 
 const AutomationEvent = chrome.automation.AutomationEvent;
@@ -29,20 +31,31 @@
     this.lastNoPointerAnchorEarconPlayedTime_ = new Date();
     /** @private {!AutomationNode|undefined} */
     this.lastValidNodeBeforePointerInvalidation_;
+    /** @private {number} */
+    this.expectingHoverCount_ = 0;
     /** @private {boolean} */
-    this.isExpectingHover_ = false;
+    this.isChromebox_ = false;
+    /** @private {!Date} */
+    this.lastHoverRequested_ = new Date();
 
     chrome.automation.getDesktop((desktop) => {
       this.node_ = desktop;
       this.addListener_(EventType.MOUSE_MOVED, this.onMouseMove);
 
-      // This is needed for ARC++ which sends back hovers when we send mouse
-      // moves.
+      // This is needed for ARC++ and Lacros. They send mouse move and hit test
+      // respectively. Each responds with hover.
       this.addListener_(EventType.HOVER, (evt) => {
-        if (!this.isExpectingHover_) {
+        if (this.expectingHoverCount_ === 0) {
           return;
         }
-        this.isExpectingHover_ = false;
+
+        // Stop honoring expectingHoverCount_ if it comes far after its
+        // corresponding requested hit test.
+        if (new Date() - this.lastHoverRequested_ > 500) {
+          this.expectingHoverCount_ = 0;
+        }
+
+        this.expectingHoverCount_--;
         this.handleHitTestResult(evt.target);
         this.runHitTest();
       });
@@ -55,6 +68,11 @@
     if (localStorage['speakTextUnderMouse'] === String(true)) {
       chrome.accessibilityPrivate.enableMouseEvents(true);
     }
+
+    chrome.chromeosInfoPrivate.get(['deviceType'], (result) => {
+      this.isChromebox_ = result['deviceType'] ===
+          chrome.chromeosInfoPrivate.DeviceType.CHROMEBOX;
+    });
   }
 
   /**
@@ -73,19 +91,20 @@
       return;
     }
 
-    if (isTouch) {
+    if (isTouch && this.isChromebox_) {
       // TODO(accessibility): hit testing seems to be broken in some cases e.g.
       // on the main CFM UI. Synthesize mouse moves with the touch
       // accessibility flag for now for touch-based user gestures. Eliminate
       // this branch once hit testing is fixed.
       this.synthesizeMouseMove();
-    } else {
-      // Otherwise, use hit testing.
-      this.node_.hitTestWithReply(this.mouseX_, this.mouseY_, (target) => {
-        this.handleHitTestResult(target);
-        this.runHitTest();
-      });
+      return;
     }
+
+    this.node_.hitTestWithReply(this.mouseX_, this.mouseY_, (target) => {
+      this.handleHitTestResult(target);
+      this.runHitTest();
+    });
+
     this.hasPendingEvents_ = false;
   }
 
@@ -127,7 +146,8 @@
       return;
     }
 
-    this.isExpectingHover_ = true;
+    this.expectingHoverCount_++;
+    this.lastHoverRequested_ = new Date();
     EventGenerator.sendMouseMove(
         this.mouseX_, this.mouseY_, true /* touchAccessibility */);
   }
@@ -143,13 +163,31 @@
 
     let target = result;
 
-    // If the target is in an ExoSurface, which hosts remote content, trigger a
-    // mouse move. This only occurs when we programmatically hit test content
-    // within ARC++ for now. Mouse moves automatically trigger Android to send
-    // hover events back.
+    // The target is in an ExoSurface, which hosts remote content.
     if (target.role === RoleType.WINDOW &&
         target.className.indexOf('ExoSurface') === 0) {
-      this.synthesizeMouseMove();
+      // We first search for a node containing an appId, which indicates Lacros.
+      // Do so by restricting the search to stop at roots.
+      const walker = new AutomationTreeWalker(target, constants.Dir.FORWARD, {
+        skipInitialSubtree: false,
+        root: (node) => target.root !== node.root,
+        visit: (node) => node.appId
+      });
+      const appNode = walker.next().node;
+      if (appNode) {
+        // This means we've gotten the app, which is technically in a different
+        // tree so hit tests will be delivered to it properly and come back in
+        // our hover event handler.
+        // TODO: switch to hitTestWithReply once OnActionResult gets hooked up
+        // from Lacros.
+        appNode.hitTest(this.mouseX_, this.mouseY_, EventType.HOVER);
+        this.expectingHoverCount_++;
+        this.lastHoverRequested_ = new Date();
+      } else {
+        // Otherwise, we're in ARC++, which still requires a synthesized mouse
+        // event.
+        this.synthesizeMouseMove();
+      }
       return;
     }
 
diff --git a/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn
index aa684e8..1d041cd 100644
--- a/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn
+++ b/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn
@@ -151,6 +151,7 @@
   test_type = "extension"
   sources = [
     "array_util_test.js",
+    "automation_predicate_test.js",
     "automation_util_test.js",
     "cursors/cursors_test.js",
     "cursors/recovery_strategy_test.js",
@@ -164,6 +165,7 @@
     "../chromevox/testing/chromevox_next_e2e_test_base.js",
     "../chromevox/testing/mock_feedback.js",
     "array_util.js",
+    "automation_predicate.js",
     "testing/assert_additions.js",
     "testing/callback_helper.js",
     "testing/doc_utils.js",
diff --git a/chrome/browser/resources/chromeos/accessibility/common/automation_predicate.js b/chrome/browser/resources/chromeos/accessibility/common/automation_predicate.js
index f396e6d..8075e43 100644
--- a/chrome/browser/resources/chromeos/accessibility/common/automation_predicate.js
+++ b/chrome/browser/resources/chromeos/accessibility/common/automation_predicate.js
@@ -198,6 +198,7 @@
         node.role === Role.PORTAL || node.role === Role.RADIO_BUTTON ||
         node.role === Role.SLIDER || node.role === Role.SWITCH ||
         node.role === Role.TEXT_FIELD ||
+        node.role === Role.TEXT_FIELD_WITH_COMBO_BOX ||
         (node.role === Role.MENU_ITEM && !hasActionableDescendant(node));
   }
 
diff --git a/chrome/browser/resources/chromeos/accessibility/common/automation_predicate_test.js b/chrome/browser/resources/chromeos/accessibility/common/automation_predicate_test.js
new file mode 100644
index 0000000..7cc5dc27
--- /dev/null
+++ b/chrome/browser/resources/chromeos/accessibility/common/automation_predicate_test.js
@@ -0,0 +1,41 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+GEN_INCLUDE(
+    ['../chromevox/testing/chromevox_next_e2e_test_base.js', 'array_util.js']);
+
+/** Test fixture for automation_predicate.js. */
+AutomationPredicateTest = class extends ChromeVoxNextE2ETest {};
+
+TEST_F('AutomationPredicateTest', 'EquivalentRoles', function() {
+  const site = `
+    <input type="text"></input>
+    <input role="combobox"></input>
+  `;
+  this.runWithLoadedTree(site, (root) => {
+    // Text field is equivalent to text field with combo box.
+    const textField = root.find({role: RoleType.TEXT_FIELD});
+    assertTrue(!!textField, 'No text field found.');
+    const textFieldWithComboBox =
+        root.find({role: RoleType.TEXT_FIELD_WITH_COMBO_BOX});
+    assertTrue(!!textFieldWithComboBox, 'No text field with combo box found.');
+
+    // Gather all potential predicate names.
+    const keys = Object.getOwnPropertyNames(AutomationPredicate);
+    for (const key of keys) {
+      // Not all keys are functions or predicates e.g. makeTableCellPredicate.
+      if (typeof (AutomationPredicate[key]) !== 'function' ||
+          key.indexOf('make') === 0) {
+        continue;
+      }
+
+      const predicate = AutomationPredicate[key];
+      if (predicate(textField)) {
+        assertTrue(
+            !!predicate(textFieldWithComboBox),
+            `Textfield with combo box should match predicate ${key}`);
+      }
+    }
+  });
+});
diff --git a/chrome/browser/resources/chromeos/vm/app.html b/chrome/browser/resources/chromeos/vm/app.html
index 91078737..60c10c7 100644
--- a/chrome/browser/resources/chromeos/vm/app.html
+++ b/chrome/browser/resources/chromeos/vm/app.html
@@ -47,14 +47,14 @@
 
   <template is="dom-if" if="[[showContentsPage_]]">
     <ul>
-      <li><a href="/parallels">$i18n{pluginVmTitle}</a></li>
+      <li><a href="/parallels">[[getTitle("pluginVmAppName")]]</a></li>
     </ul>
   </template>
 
   <template is="dom-if" if="[[!showContentsPage_]]">
     <template is="dom-if" if="[[diagnostics_.topError]]">
       <div id="top-error">
-        $i18n{notEnabledLabel}: [[diagnostics_.topError.message]]
+        [[formatTopErrorMessage(diagnostics_.topError.message)]]
         <a href$="[[diagnostics_.topError.learnMoreLink]]"
             hidden$="[[!diagnostics_.topError.learnMoreLink]]">
           $i18n{learnMoreLabel}
diff --git a/chrome/browser/resources/chromeos/vm/app.js b/chrome/browser/resources/chromeos/vm/app.js
index e493dac..c995122 100644
--- a/chrome/browser/resources/chromeos/vm/app.js
+++ b/chrome/browser/resources/chromeos/vm/app.js
@@ -35,7 +35,7 @@
     const url = new URL(window.location.href);
     switch (url.pathname) {
       case '/parallels':
-        this.setTitle_(loadTimeData.getString('pluginVmTitle'));
+        this.setTitle_(this.getTitle('pluginVmAppName'));
         this.showContentsPage_ = false;
         this.diagnostics_ =
             (await VmDiagnosticsProvider.getRemote().getPluginVmDiagnostics())
@@ -81,6 +81,15 @@
         return '';
     }
   }
+
+  getTitle(appNameId) {
+    return loadTimeData.getStringF(
+        'pageTitle', loadTimeData.getString(appNameId));
+  }
+
+  formatTopErrorMessage(topErrorMessage) {
+    return loadTimeData.getStringF('notEnabledMessage', topErrorMessage);
+  }
 }
 
 customElements.define('vm-app', VmApp);
diff --git a/chrome/browser/resources/local_ntp/BUILD.gn b/chrome/browser/resources/local_ntp/BUILD.gn
deleted file mode 100644
index f6aa500..0000000
--- a/chrome/browser/resources/local_ntp/BUILD.gn
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2019 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//third_party/closure_compiler/compile_js.gni")
-
-js_type_check("closure_compile") {
-  deps = [ ":most_visited_title" ]
-}
-
-js_library("most_visited_title") {
-  sources = [ "most_visited_title.js" ]
-  deps = [ "//ui/webui/resources/js:assert" ]
-  externs_list = [ "externs.js" ]
-}
diff --git a/chrome/browser/resources/local_ntp/DIR_METADATA b/chrome/browser/resources/local_ntp/DIR_METADATA
deleted file mode 100644
index 4c751468..0000000
--- a/chrome/browser/resources/local_ntp/DIR_METADATA
+++ /dev/null
@@ -1,4 +0,0 @@
-monorail: {
-  component: "UI>Browser>NewTabPage"
-}
-team_email: "ntp-dev@chromium.org"
diff --git a/chrome/browser/resources/local_ntp/OWNERS b/chrome/browser/resources/local_ntp/OWNERS
deleted file mode 100644
index 802b327..0000000
--- a/chrome/browser/resources/local_ntp/OWNERS
+++ /dev/null
@@ -1,2 +0,0 @@
-file://components/search/OWNERS
-fserb@chromium.org
diff --git a/chrome/browser/resources/local_ntp/PRESUBMIT.py b/chrome/browser/resources/local_ntp/PRESUBMIT.py
deleted file mode 100644
index 9afd56da..0000000
--- a/chrome/browser/resources/local_ntp/PRESUBMIT.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2019 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-'Presubmit script for changes affecting chrome/browser/resources/local_ntp/'
-
-def NTPPresubmitChecks(input_api, output_api):
-  affected = input_api.change.AffectedFiles()
-  warning_str = ('Test HTML files in chrome/test/data/local_ntp/ should be '
-                 'updated when making changes to local_ntp.html');
-  if (any(f for f in affected if
-          f.LocalPath().endswith('local_ntp.html')) and
-      not any(f for f in affected if
-              f.LocalPath().endswith('local_ntp_browsertest.html'))):
-    return [output_api.PresubmitPromptWarning(warning_str)]
-  return []
-
-def CheckChangeOnUpload(input_api, output_api):
-  return NTPPresubmitChecks(input_api, output_api)
-
-def CheckChangeOnCommit(input_api, output_api):
-  return NTPPresubmitChecks(input_api, output_api)
diff --git a/chrome/browser/resources/local_ntp/icons/add.svg b/chrome/browser/resources/local_ntp/icons/add.svg
deleted file mode 100644
index 5eaf5f5..0000000
--- a/chrome/browser/resources/local_ntp/icons/add.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#616161" fill-rule="evenodd"><path d="M7 2h2v12H7z"/><path d="M2 9V7h12v2z"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/add_link.svg b/chrome/browser/resources/local_ntp/icons/add_link.svg
deleted file mode 100644
index 27c4df0a..0000000
--- a/chrome/browser/resources/local_ntp/icons/add_link.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#202124" fill-rule="evenodd"><path d="M7 2h2v12H7z"/><path d="M2 9V7h12v2z"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/add_link_white.svg b/chrome/browser/resources/local_ntp/icons/add_link_white.svg
deleted file mode 100644
index c0a2987..0000000
--- a/chrome/browser/resources/local_ntp/icons/add_link_white.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#E8EAED" fill-rule="evenodd"><path d="M7 2h2v12H7z"/><path d="M2 9V7h12v2z"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/backgrounds.svg b/chrome/browser/resources/local_ntp/icons/backgrounds.svg
deleted file mode 100644
index 94aa1e3c..0000000
--- a/chrome/browser/resources/local_ntp/icons/backgrounds.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 54.1 (76490) - https://sketchapp.com -->
-    <title>ic-ntp-background</title>
-    <desc>Created with Sketch.</desc>
-    <defs>
-        <path d="M4,4 L11,4 L11,2 L4,2 C2.9,2 2,2.9 2,4 L2,11 L4,11 L4,4 Z M10,13 L6,18 L18,18 L15,14 L12.97,16.71 L10,13 Z M17,8.5 C17,7.67 16.33,7 15.5,7 C14.67,7 14,7.67 14,8.5 C14,9.33 14.67,10 15.5,10 C16.33,10 17,9.33 17,8.5 Z M20,2 L13,2 L13,4 L20,4 L20,11 L22,11 L22,4 C22,2.9 21.1,2 20,2 Z M20,20 L13,20 L13,22 L20,22 C21.1,22 22,21.1 22,20 L22,13 L20,13 L20,20 Z M4,13 L2,13 L2,20 C2,21.1 2.9,22 4,22 L11,22 L11,20 L4,20 L4,13 Z" id="path-1"></path>
-    </defs>
-    <g id="ic-ntp-background" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <mask id="mask-2" fill="white">
-            <use xlink:href="#path-1"></use>
-        </mask>
-        <use id="Shape" fill="#000000" fill-rule="nonzero" xlink:href="#path-1"></use>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/brush.svg b/chrome/browser/resources/local_ntp/icons/brush.svg
deleted file mode 100644
index 75ff8383..0000000
--- a/chrome/browser/resources/local_ntp/icons/brush.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2 2.21 0 4-1.79 4-4 0-1.66-1.34-3-3-3zm13.71-9.37l-1.34-1.34c-.39-.39-1.02-.39-1.41 0L9 12.25 11.75 15l8.96-8.96c.39-.39.39-1.02 0-1.41z"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/check_circle.svg b/chrome/browser/resources/local_ntp/icons/check_circle.svg
deleted file mode 100644
index 8ca0ca42a..0000000
--- a/chrome/browser/resources/local_ntp/icons/check_circle.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="15" height="15"><defs><path d="M0 0h18v18H0V0z" id="a"/><path d="M10.12.47l1.16.55 1.05.74.91.91.74 1.04.55 1.17.35 1.27L15 7.5l-.12 1.35-.35 1.27-.55 1.16-.74 1.05-.91.91-1.05.74-1.16.55-1.27.35L7.5 15l-1.35-.12-1.27-.35-1.17-.55-1.04-.74-.91-.91-.74-1.05-.55-1.16-.35-1.27L0 7.5l.12-1.35.35-1.27.55-1.17.74-1.04.91-.91 1.04-.74L4.88.47 6.15.12 7.5 0l1.35.12 1.27.35zM3.31 6.44L2.25 7.5 6 11.25l6.75-6.75-1.06-1.06L6 9.13 3.31 6.44z" id="b"/></defs><use xlink:href="#a" fill-opacity="0"/><use xlink:href="#a" fill-opacity="0" stroke="#000" stroke-opacity="0"/><g><use xlink:href="#b" fill="#4285f4"/><use xlink:href="#b" fill-opacity="0" stroke="#000" stroke-opacity="0"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/chrome.svg b/chrome/browser/resources/local_ntp/icons/chrome.svg
deleted file mode 100644
index 0114b6f..0000000
--- a/chrome/browser/resources/local_ntp/icons/chrome.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><path id="a" d="M8 5.3h5.34C12.38 3.32 10.34 2 8 2c-1.86 0-3.54.84-4.62 2.16l1.98 3.42C5.54 6.32 6.68 5.3 8 5.3zm0 5.4c-1.02 0-1.86-.54-2.34-1.38L2.96 4.7C2.36 5.66 2 6.8 2 8c0 3 2.16 5.46 5.04 5.94l1.98-3.42c-.36.12-.66.18-1.02.18zM10.7 8c0-.84-.42-1.62-1.02-2.1h3.96c.24.66.36 1.38.36 2.1 0 3.3-2.7 6-6 6h-.36l2.7-4.68c.24-.36.36-.84.36-1.32zM8 10.1a2.1 2.1 0 1 1 0-4.2 2.1 2.1 0 0 1 0 4.2z"/></defs><use fill="#5F6368" xlink:href="#a" fill-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/colored_header.svg b/chrome/browser/resources/local_ntp/icons/colored_header.svg
deleted file mode 100644
index 288f6f4..0000000
--- a/chrome/browser/resources/local_ntp/icons/colored_header.svg
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="130px"
-   height="40px"
-   viewBox="0 0 130 40"
-   version="1.1"
-   id="svg4765"
-   sodipodi:docname="colored-header.svg"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)">
-  <metadata
-     id="metadata4771">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>ic-ntp-shortcuts-header</dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4769" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1297"
-     inkscape:window-height="688"
-     id="namedview4767"
-     showgrid="false"
-     inkscape:zoom="4.8"
-     inkscape:cx="76.144652"
-     inkscape:cy="32.314819"
-     inkscape:window-x="3486"
-     inkscape:window-y="298"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg4765" />
-  <!-- Generator: Sketch 54.1 (76490) - https://sketchapp.com -->
-  <title
-     id="title4758">ic-ntp-shortcuts-header</title>
-  <desc
-     id="desc4760">Created with Sketch.</desc>
-  <path
-     style="fill:#d93025;fill-opacity:1;stroke:#1a73e8;stroke-width:0.42092341;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
-     d="m 52.792125,16.638275 c -1.558053,-0.640709 -2.46799,-1.578762 -3.063032,-3.157678 -0.258437,-0.685749 -0.302859,-1.064041 -0.253341,-2.157386 0.07554,-1.6677974 0.544737,-2.7097496 1.692666,-3.7588922 1.12893,-1.0317787 2.113309,-1.3670063 3.799505,-1.2939114 1.164657,0.050487 1.439108,0.1180822 2.257734,0.5560648 1.700233,0.9096603 2.652276,2.4152882 2.778616,4.3942958 0.16603,2.600723 -1.339494,4.846853 -3.731181,5.566645 -1.067754,0.321347 -2.484458,0.260649 -3.480967,-0.149138 z m 3.677461,-2.238987 C 58.141804,13.055014 58.277858,10.477094 56.75087,9.0695662 55.705568,8.10604 54.548174,7.9476031 53.280665,8.5945264 c -0.664803,0.3393084 -0.94822,0.6565765 -1.321342,1.4791646 -0.598485,1.319424 -0.311237,3.055032 0.667322,4.032083 0.653851,0.652843 1.188222,0.836121 2.296145,0.787527 0.844457,-0.03704 1.066592,-0.107983 1.546796,-0.494013 z"
-     id="path4775"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#d93025;fill-opacity:1;stroke:#1a73e8;stroke-width:0.42092341;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
-     d="m 93.243638,16.791187 c -1.322385,-0.431646 -2.605435,-1.58809 -3.170464,-2.857618 -0.443424,-0.996302 -0.537766,-3.114174 -0.186146,-4.1787327 0.459731,-1.3918707 1.289274,-2.403738 2.498628,-3.0477998 0.656316,-0.3495315 0.897078,-0.3922845 2.209709,-0.3923856 1.750154,-1.347e-4 2.263078,0.211741 3.365322,1.3901286 0.739022,0.7900748 1.5471,2.3122585 1.328555,2.5026125 -0.06993,0.06091 -1.701563,0.761437 -3.625851,1.556728 -1.924288,0.795291 -3.498705,1.501853 -3.498705,1.570138 0,0.285461 1.0896,1.299941 1.564555,1.456691 0.644907,0.212838 1.770254,0.209983 2.343655,-0.0059 0.240652,-0.09062 0.683662,-0.403876 0.984466,-0.696115 l 0.546916,-0.531343 0.815738,0.541619 c 0.448656,0.29789 0.815737,0.60109 0.815737,0.673777 0,0.244635 -1.458021,1.445674 -2.168455,1.786257 -0.873904,0.41895 -2.878317,0.540562 -3.82366,0.231989 z m 1.314899,-6.424686 c 1.257312,-0.5311184 2.17288,-1.0008387 2.17288,-1.1147688 0,-0.3474108 -0.956531,-0.9438591 -1.67065,-1.04174 -0.932951,-0.1278751 -1.864461,0.242135 -2.510919,0.997376 -0.449206,0.5247962 -0.827104,1.4859958 -0.827104,2.1037728 0,0.266282 -0.145753,0.314835 2.835793,-0.94464 z"
-     id="path4777"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#1e8e3e;fill-opacity:1;stroke:#1a73e8;stroke-width:0.42092341;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
-     d="M 85.977501,8.5979031 V 0.64295185 h 1.104855 1.104854 V 8.5979031 16.552854 h -1.104854 -1.104855 z"
-     id="path4779"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#1a73e8;fill-opacity:1;stroke:#1a73e8;stroke-width:0.42092341;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
-     d="m 76.853462,21.598658 c -0.343214,-0.141956 -0.909847,-0.462726 -1.259185,-0.712823 -0.645316,-0.461992 -1.625016,-1.763251 -1.533724,-2.037126 0.02754,-0.08262 0.437826,-0.306096 0.911747,-0.49661 0.822217,-0.330527 0.868306,-0.334119 1.006551,-0.07845 0.07968,0.147368 0.394194,0.508587 0.698913,0.80271 0.996155,0.961517 2.691209,1.078986 3.833419,0.26566 0.566545,-0.403415 0.98745,-1.36764 1.104998,-2.531367 0.109543,-1.08448 -3.39e-4,-1.224342 -0.555555,-0.707086 -0.643892,0.599876 -1.324944,0.81664 -2.55194,0.812228 -1.054528,-0.0038 -1.276472,-0.05685 -2.109672,-0.504311 -3.862174,-2.074153 -3.866917,-7.5505053 -0.0084,-9.6505955 1.098347,-0.5977958 2.689293,-0.6943715 3.771247,-0.2289274 0.41605,0.1789801 0.870894,0.451871 1.010762,0.6064241 0.358633,0.3962852 0.503271,0.3500329 0.503271,-0.1609361 V 6.5355084 h 1.031197 1.031198 v 5.2960496 c 0,3.363351 -0.0605,5.580934 -0.165782,6.076699 -0.358712,1.689134 -1.289475,2.954312 -2.611208,3.549392 -0.95478,0.429866 -3.221381,0.507672 -4.107878,0.141009 z m 3.008287,-6.822942 c 1.131717,-0.427593 1.868493,-1.669606 1.873289,-3.157878 0.0028,-0.86476 -0.0659,-1.157805 -0.425589,-1.8156234 -0.676343,-1.2369441 -1.920296,-1.8165584 -3.204597,-1.4931677 -1.451145,0.3654025 -2.321474,1.597539 -2.321474,3.2865421 0,1.537167 0.698039,2.683174 1.936465,3.179195 0.475504,0.190451 1.638963,0.190957 2.141906,9.28e-4 z"
-     id="path5324"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#1a73e8;fill-opacity:1;stroke:#1a73e8;stroke-width:0.42092341;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
-     d="m 37.702732,16.572061 c -3.608224,-1.03865 -6.260841,-4.438713 -6.260841,-8.0249993 0,-2.2866039 0.798299,-4.1654259 2.489127,-5.8582377 3.117921,-3.12157795 7.698154,-3.49323118 11.097943,-0.9005189 l 0.704548,0.5372957 -0.760012,0.769572 -0.760013,0.769572 -0.462627,-0.352863 C 43.496412,3.317807 42.893279,2.9741312 42.410562,2.7481575 41.624111,2.3799977 41.37134,2.3372843 39.978457,2.3371791 c -1.500588,-1.131e-4 -1.59332,0.0191 -2.676931,0.5546499 -3.83901,1.8973419 -4.670343,7.0194203 -1.632356,10.057408 2.928466,2.928465 8.493062,1.988634 9.608529,-1.622829 0.16848,-0.545475 0.306327,-1.084227 0.306327,-1.197226 0,-0.16852 -0.50316,-0.2054536 -2.798964,-0.2054536 H 39.986098 V 8.818874 7.7140197 h 3.903818 3.903819 v 1.3185742 c 0,0.7252158 -0.07326,1.6698661 -0.162794,2.0992231 -0.548224,2.628905 -2.660726,4.780475 -5.382742,5.482292 -1.197723,0.308808 -3.397293,0.288461 -4.545467,-0.04205 z"
-     id="path5326"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#f9ab00;fill-opacity:1;stroke:#1a73e8;stroke-width:0.42092341;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
-     d="m 64.866306,16.647989 c -1.439659,-0.592221 -2.160555,-1.252384 -2.901767,-2.6573 -0.361404,-0.685017 -0.396953,-0.897517 -0.396953,-2.372851 0,-1.475786 0.03675,-1.6952858 0.41163,-2.4586817 0.535869,-1.0912251 1.754624,-2.2082083 2.866597,-2.6272209 0.69966,-0.2636455 1.07663,-0.309028 2.172388,-0.261528 1.164657,0.050487 1.439108,0.1180822 2.257735,0.5560648 1.687943,0.9030855 2.648433,2.4297048 2.782833,4.4230818 0.130768,1.939493 -0.710405,3.739671 -2.239559,4.79284 -1.466601,1.010086 -3.396096,1.246007 -4.952904,0.605595 z m 3.653558,-2.248701 c 1.16647,-0.93771 1.639777,-2.558997 1.164655,-3.989457 -0.890126,-2.6799185 -4.315102,-2.9848143 -5.575768,-0.4963623 -0.712317,1.4060553 -0.505574,3.0327553 0.523065,4.1155843 0.689046,0.725346 1.200834,0.914267 2.341252,0.864248 0.844457,-0.03704 1.066592,-0.107983 1.546796,-0.494013 z"
-     id="path5328"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#dadce0;fill-opacity:0;stroke:#1a73e8;stroke-width:0.42092341;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
-     d="M 3.7588617,39.742214 C 2.7434871,39.468647 2.1711297,39.11218 1.3945889,38.269732 0.42844335,37.221588 0.13699821,36.450285 0.14665102,34.967094 c 0.006563,-1.008469 0.0770533,-1.395522 0.36218888,-1.988738 0.5191587,-1.080096 1.671775,-2.172239 2.697566,-2.556037 l 0.849882,-0.317981 61.1647091,0.03753 61.164713,0.03753 0.77843,0.410145 c 1.9957,1.051511 3.04206,3.123768 2.65669,5.261441 -0.29425,1.632204 -1.31274,2.917822 -2.90184,3.662936 l -0.82791,0.388197 -60.766989,0.02759 C 12.45324,39.953695 4.4533772,39.929334 3.7588617,39.742214 Z"
-     id="path5330"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#dadce0;fill-opacity:1;stroke:none;stroke-width:0.59527564;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0"
-     d="M 3.5863687,39.610766 C 3.201034,39.47132 2.5199554,39.050116 2.072861,38.674757 -0.6345187,36.401774 -0.1604641,32.205634 2.9805331,30.640409 L 4.0562879,30.104338 H 64.980795 c 45.632965,0 61.127055,0.06068 61.731505,0.241783 0.44385,0.13298 1.17305,0.555106 1.62044,0.938057 2.8374,2.428712 1.9498,7.048709 -1.59742,8.314586 -1.09987,0.392503 -122.0649315,0.404292 -123.1489513,0.012 z"
-     id="path5391"
-     inkscape:connector-curvature="0" />
-</svg>
diff --git a/chrome/browser/resources/local_ntp/icons/colorize.svg b/chrome/browser/resources/local_ntp/icons/colorize.svg
deleted file mode 100644
index 984de18..0000000
--- a/chrome/browser/resources/local_ntp/icons/colorize.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M17.66 5.41l.92.92-2.69 2.69-.92-.92 2.69-2.69M17.67 3c-.26 0-.51.1-.71.29l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42l-2.34-2.34c-.2-.19-.45-.29-.7-.29zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/colors.svg b/chrome/browser/resources/local_ntp/icons/colors.svg
deleted file mode 100644
index eda9b944..0000000
--- a/chrome/browser/resources/local_ntp/icons/colors.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 54.1 (76490) - https://sketchapp.com -->
-    <title>ic-ntp-colors</title>
-    <desc>Created with Sketch.</desc>
-    <defs>
-        <path d="M12,3 C7.03,3 3,7.03 3,12 C3,16.97 7.03,21 12,21 C12.83,21 13.5,20.33 13.5,19.5 C13.5,19.11 13.35,18.76 13.11,18.49 C12.88,18.23 12.73,17.88 12.73,17.5 C12.73,16.67 13.4,16 14.23,16 L16,16 C18.76,16 21,13.76 21,11 C21,6.58 16.97,3 12,3 Z M6.5,12 C5.67,12 5,11.33 5,10.5 C5,9.67 5.67,9 6.5,9 C7.33,9 8,9.67 8,10.5 C8,11.33 7.33,12 6.5,12 Z M9.5,8 C8.67,8 8,7.33 8,6.5 C8,5.67 8.67,5 9.5,5 C10.33,5 11,5.67 11,6.5 C11,7.33 10.33,8 9.5,8 Z M14.5,8 C13.67,8 13,7.33 13,6.5 C13,5.67 13.67,5 14.5,5 C15.33,5 16,5.67 16,6.5 C16,7.33 15.33,8 14.5,8 Z M17.5,12 C16.67,12 16,11.33 16,10.5 C16,9.67 16.67,9 17.5,9 C18.33,9 19,9.67 19,10.5 C19,11.33 18.33,12 17.5,12 Z" id="path-1"></path>
-    </defs>
-    <g id="ic-ntp-colors" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <mask id="mask-2" fill="white">
-            <use xlink:href="#path-1"></use>
-        </mask>
-        <use id="Shape" fill="#000000" fill-rule="nonzero" xlink:href="#path-1"></use>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/copy.svg b/chrome/browser/resources/local_ntp/icons/copy.svg
deleted file mode 100644
index fd4c870..0000000
--- a/chrome/browser/resources/local_ntp/icons/copy.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48"><path d="M35.25 14a.76.76 0 0 1 .75.75v25.5a.76.76 0 0 1-.75.75h-16.5a.76.76 0 0 1-.75-.75v-25.5a.76.76 0 0 1 .75-.75h16.5m0-4h-16.5A4.77 4.77 0 0 0 14 14.75v25.5A4.77 4.77 0 0 0 18.75 45h16.5A4.77 4.77 0 0 0 40 40.25v-25.5A4.77 4.77 0 0 0 35.25 10z" fill="#666"/><path d="M9 38V9.75A4.77 4.77 0 0 1 13.75 5h19.16" fill="none" stroke="#666" stroke-miterlimit="10" stroke-width="4"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/default_theme.svg b/chrome/browser/resources/local_ntp/icons/default_theme.svg
deleted file mode 100644
index 6ec0f96..0000000
--- a/chrome/browser/resources/local_ntp/icons/default_theme.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><path d="M32 64C14.34 64 0 49.66 0 32S14.34 0 32 0s32 14.34 32 32-14.34 32-32 32z" id="a"/><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="32" y1="32" x2="32.08" y2="32"><stop offset="0%" stop-color="#fff"/><stop offset="100%" stop-color="#dee1e6"/></linearGradient><clipPath id="c"><use xlink:href="#a"/></clipPath></defs><use xlink:href="#a" fill="url(#b)"/><g clip-path="url(#c)"><use xlink:href="#a" fill-opacity="0" stroke="#dee1e6" stroke-width="2"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/default_theme_dark.svg b/chrome/browser/resources/local_ntp/icons/default_theme_dark.svg
deleted file mode 100644
index 70f2abb..0000000
--- a/chrome/browser/resources/local_ntp/icons/default_theme_dark.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64"><defs><path d="M32 64C14.34 64 0 49.66 0 32S14.34 0 32 0s32 14.34 32 32-14.34 32-32 32z" id="a"/><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="32" y1="32" x2="32.08" y2="32"><stop offset="0%" stop-color="#323639"/><stop offset="100%" stop-color="#202124"/></linearGradient><clipPath id="c"><use xlink:href="#a"/></clipPath></defs><use xlink:href="#a" fill="url(#b)"/><g clip-path="url(#c)"><use xlink:href="#a" fill-opacity="0" stroke="#202124" stroke-width="2"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/edit_menu.svg b/chrome/browser/resources/local_ntp/icons/edit_menu.svg
deleted file mode 100644
index 76656662..0000000
--- a/chrome/browser/resources/local_ntp/icons/edit_menu.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12"><g fill="#000" fill-rule="evenodd"><circle cx="6" cy="3" r="1"/><circle cx="6" cy="6" r="1"/><circle cx="6" cy="9" r="1"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/facebook.svg b/chrome/browser/resources/local_ntp/icons/facebook.svg
deleted file mode 100644
index dbf2fd8..0000000
--- a/chrome/browser/resources/local_ntp/icons/facebook.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48"><path d="M43.5 48h-39C2 48 0 46 0 43.5v-39C0 2 2 0 4.5 0h39C46 0 48 2 48 4.5v39c0 2.5-2 4.5-4.5 4.5z" fill="#3a589b"/><path d="M39.4 29.4l.9-7.3h-7.2v-4.7c0-2.1.6-3.5 3.6-3.5h3.8V7.5c-.7-.1-2.9-.3-5.6-.3-5.5 0-9.3 3.4-9.3 9.6v5.3h-6.2v7.3h6.2V48h7.5V29.4h6.3z" fill="#fff"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/googlemic_clr_24px.svg b/chrome/browser/resources/local_ntp/icons/googlemic_clr_24px.svg
deleted file mode 100644
index 05068f8..0000000
--- a/chrome/browser/resources/local_ntp/icons/googlemic_clr_24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path fill="#4285F4" d="M12 15c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v7c0 1.66 1.34 3 3 3z"/><path fill="#34A853" d="M11 18.92h2V22h-2z"/><path fill="#F4B400" d="M7 12H5c0 1.93.78 3.68 2.05 4.95l1.41-1.41C7.56 14.63 7 13.38 7 12z"/><path fill="#EA4335" d="M12 17c-1.38 0-2.63-.56-3.54-1.47l-1.41 1.41A6.99 6.99 0 0 0 12.01 19c3.87 0 6.98-3.14 6.98-7h-2c0 2.76-2.23 5-4.99 5z"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/header.svg b/chrome/browser/resources/local_ntp/icons/header.svg
deleted file mode 100644
index dc6ba05..0000000
--- a/chrome/browser/resources/local_ntp/icons/header.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="130px" height="40px" viewBox="0 0 130 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 54.1 (76490) - https://sketchapp.com -->
-    <title>ic-ntp-shortcuts-header</title>
-    <desc>Created with Sketch.</desc>
-    <g id="ic-ntp-shortcuts-header" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <path d="M39.9720015,16.9685185 C35.2874047,16.9685185 31.3516129,13.1592593 31.3516129,8.48425926 C31.3516129,3.80925926 35.2874047,0 39.9720015,0 C42.5654235,0 44.4100406,1.01154971 45.7980692,2.34205653 L44.1634828,3.97329435 C43.1681202,3.04376218 41.8166186,2.31471735 39.9720015,2.31471735 C36.5475887,2.31471735 33.8719808,5.0668616 33.8719808,8.48425926 C33.8719808,11.9007456 36.5475887,14.6538012 39.9720015,14.6538012 C42.191021,14.6538012 43.451205,13.7598099 44.2639323,12.9587719 C44.9305513,12.2935185 45.3597444,11.3457602 45.5241162,10.0425926 L39.9720015,10.0425926 L39.9720015,7.71876218 L47.7887946,7.71876218 C47.8709805,8.1288499 47.9166393,8.63006823 47.9166393,9.16773879 C47.9166393,10.9083333 47.4417874,13.0590156 45.9076504,14.5900097 C44.4100406,16.13923 42.5106329,16.9685185 39.9720015,16.9685185 Z M57.7623449,11.6019069 C57.7623449,9.61860141 56.3528333,8.26885183 54.7236576,8.26885183 C53.0944819,8.26885183 51.6849704,9.62778338 51.6849704,11.6019069 C51.6849704,13.5576665 53.0944819,14.934962 54.7236576,14.934962 C56.3528333,14.934962 57.7623449,13.5668485 57.7623449,11.6019069 Z M60.132887,11.6019069 C60.132887,14.7696866 57.7074288,17.1019069 54.7236576,17.1019069 C51.7398864,17.1019069 49.3144282,14.7696866 49.3144282,11.6019069 C49.3144282,8.41576335 51.7398864,6.10190692 54.7236576,6.10190692 C57.7074288,6.10190692 60.132887,8.41576335 60.132887,11.6019069 Z M69.8146875,11.6019069 C69.8146875,9.61860141 68.405176,8.26885183 66.7760003,8.26885183 C65.1468246,8.26885183 63.737313,9.62778338 63.737313,11.6019069 C63.737313,13.5576665 65.1468246,14.934962 66.7760003,14.934962 C68.405176,14.944144 69.8146875,13.5668485 69.8146875,11.6019069 Z M72.176077,11.6019069 C72.176077,14.7696866 69.7506188,17.1019069 66.7668476,17.1019069 C63.7922291,17.1019069 61.3576182,14.7696866 61.3576182,11.6019069 C61.3576182,8.41576335 63.7830764,6.10190692 66.7668476,6.10190692 C69.7506188,6.10190692 72.176077,8.41576335 72.176077,11.6019069 Z M81.7090477,11.6177388 C81.7090477,9.68765502 80.4315539,8.26982095 78.8097711,8.26982095 C77.1608075,8.26982095 75.7836511,9.6785077 75.7836511,11.6177388 C75.7836511,13.529528 77.1608075,14.9199201 78.8097711,14.9199201 C80.4315539,14.9199201 81.7090477,13.529528 81.7090477,11.6177388 Z M83.8110232,6.44035763 L83.8110232,16.2828703 C83.8110232,20.3351315 81.4463007,21.9907958 78.6466868,21.9907958 C76.0101571,21.9907958 74.4345815,20.2070691 73.8366057,18.7526457 L75.9114005,17.8836507 C76.2828703,18.7810024 77.1888943,19.8320291 78.6466868,19.8320291 C80.4415202,19.8320291 81.5459634,18.7069092 81.5459634,16.6121737 L81.5459634,15.8255044 L81.4644212,15.8255044 C80.9307731,16.4941733 79.8969998,17.0695395 78.6013856,17.0695395 C75.8833138,17.0695395 73.4008082,14.6820899 73.4008082,11.6085915 C73.4008082,8.5167985 75.892374,6.10190692 78.6013856,6.10190692 C79.8969998,6.10190692 80.9307731,6.68733518 81.4644212,7.32764734 L81.5459634,7.32764734 L81.5459634,6.44035763 L83.8110232,6.44035763 Z M85.8522419,16.6944995 L85.8522419,0.60190692 L88.3017042,0.60190692 L88.3017042,16.6944995 L85.8522419,16.6944995 Z M91.8324784,11.4274495 L96.71994,9.38905216 C96.4472999,8.70040442 95.6448808,8.22294198 94.6865371,8.22294198 C93.4646717,8.22294198 91.7695614,9.30641443 91.8324784,11.4274495 Z M97.5679511,13.410755 L99.4281043,14.6595029 C98.82629,15.559336 97.3764647,17.1019069 94.8689051,17.1019069 C91.7595312,17.1019069 89.5264354,14.6870488 89.5264354,11.6019069 C89.5264354,8.33312562 91.7868864,6.10190692 94.6044715,6.10190692 C97.4402935,6.10190692 98.82629,8.3698535 99.28221,9.60023747 L99.5284067,10.2246114 L92.2254814,13.2730255 C92.7807918,14.3748618 93.6561581,14.944144 94.8780235,14.944144 C96.1008007,14.944144 96.9479,14.328952 97.5679511,13.410755 Z" id="Combined-Shape" fill="#000000"></path>
-        <rect id="Rectangle" fill="#000000" x="0" y="30" width="130" height="10" rx="5"></rect>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/icon_pencil.svg b/chrome/browser/resources/local_ntp/icons/icon_pencil.svg
deleted file mode 100644
index b3dc49f..0000000
--- a/chrome/browser/resources/local_ntp/icons/icon_pencil.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/><path d="M0 0h24v24H0z" fill="none"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/link.svg b/chrome/browser/resources/local_ntp/icons/link.svg
deleted file mode 100644
index 6f1d5f4..0000000
--- a/chrome/browser/resources/local_ntp/icons/link.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="none" fill-rule="evenodd"><path d="M0 0h16v16H0z"/><path fill="#fff" fill-rule="nonzero" d="M1.52 8A2.482 2.482 0 0 1 4 5.52h3.2V4H4C1.792 4 0 5.792 0 8s1.792 4 4 4h3.2v-1.52H4A2.482 2.482 0 0 1 1.52 8zm3.28.8h6.4V7.2H4.8v1.6zM12 4H8.8v1.52H12A2.482 2.482 0 0 1 14.48 8 2.482 2.482 0 0 1 12 10.48H8.8V12H12c2.208 0 4-1.792 4-4s-1.792-4-4-4z"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/link_gray.svg b/chrome/browser/resources/local_ntp/icons/link_gray.svg
deleted file mode 100644
index 44625b1..0000000
--- a/chrome/browser/resources/local_ntp/icons/link_gray.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="none" fill-rule="evenodd"><path d="M0 0h16v16H0z"/><path fill="#5F6368" fill-rule="nonzero" d="M1.52 8A2.482 2.482 0 0 1 4 5.52h3.2V4H4C1.792 4 0 5.792 0 8s1.792 4 4 4h3.2v-1.52H4A2.482 2.482 0 0 1 1.52 8zm3.28.8h6.4V7.2H4.8v1.6zM12 4H8.8v1.52H12A2.482 2.482 0 0 1 14.48 8 2.482 2.482 0 0 1 12 10.48H8.8V12H12c2.208 0 4-1.792 4-4s-1.792-4-4-4z"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/mail.svg b/chrome/browser/resources/local_ntp/icons/mail.svg
deleted file mode 100644
index 8851e42..0000000
--- a/chrome/browser/resources/local_ntp/icons/mail.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48"><path d="M43.5 48h-39C2 48 0 46 0 43.5v-39C0 2 2 0 4.5 0h39C46 0 48 2 48 4.5v39c0 2.5-2 4.5-4.5 4.5z" fill="#9da6aa"/><path d="M35.9 12.8H12.1c-2.2 0-4 1.8-4 4v14.4c0 2.2 1.8 4 4 4h23.8c2.2 0 4-1.8 4-4V16.8c0-2.2-1.8-4-4-4z" fill="#fff"/><path fill="none" stroke="#9da6aa" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M35.4 17.2L24 26.1l-11.4-8.9"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/shortcut-circles.svg b/chrome/browser/resources/local_ntp/icons/shortcut-circles.svg
deleted file mode 100644
index 18b8c40..0000000
--- a/chrome/browser/resources/local_ntp/icons/shortcut-circles.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="116px" height="42px" viewBox="0 0 116 42" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 54.1 (76490) - https://sketchapp.com -->
-    <title>ic-ntp-shortcuts-shortcuts</title>
-    <desc>Created with Sketch.</desc>
-    <g id="ic-ntp-shortcuts-shortcuts" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <path d="M6.00869565,11.3801242 C2.92962241,11.3801242 0.433540373,8.88404218 0.433540373,5.80496894 C0.433540373,2.72589571 2.92962241,0.229813665 6.00869565,0.229813665 C9.08776889,0.229813665 11.5838509,2.72589571 11.5838509,5.80496894 C11.5838509,8.88404218 9.08776889,11.3801242 6.00869565,11.3801242 Z M58.0434783,11.3801242 C54.964405,11.3801242 52.468323,8.88404218 52.468323,5.80496894 C52.468323,2.72589571 54.964405,0.229813665 58.0434783,0.229813665 C61.1225515,0.229813665 63.6186335,2.72589571 63.6186335,5.80496894 C63.6186335,8.88404218 61.1225515,11.3801242 58.0434783,11.3801242 Z M32.026087,11.3801242 C28.9470137,11.3801242 26.4509317,8.88404218 26.4509317,5.80496894 C26.4509317,2.72589571 28.9470137,0.229813665 32.026087,0.229813665 C35.1051602,0.229813665 37.6012422,2.72589571 37.6012422,5.80496894 C37.6012422,8.88404218 35.1051602,11.3801242 32.026087,11.3801242 Z M84.0608696,11.3801242 C80.9817963,11.3801242 78.4857143,8.88404218 78.4857143,5.80496894 C78.4857143,2.72589571 80.9817963,0.229813665 84.0608696,0.229813665 C87.1399428,0.229813665 89.6360248,2.72589571 89.6360248,5.80496894 C89.6360248,8.88404218 87.1399428,11.3801242 84.0608696,11.3801242 Z M110.078261,11.3801242 C106.999188,11.3801242 104.503106,8.88404218 104.503106,5.80496894 C104.503106,2.72589571 106.999188,0.229813665 110.078261,0.229813665 C113.157334,0.229813665 115.653416,2.72589571 115.653416,5.80496894 C115.653416,8.88404218 113.157334,11.3801242 110.078261,11.3801242 Z M6.00869565,41.1142857 C2.92962241,41.1142857 0.433540373,38.6182037 0.433540373,35.5391304 C0.433540373,32.4600572 2.92962241,29.9639752 6.00869565,29.9639752 C9.08776889,29.9639752 11.5838509,32.4600572 11.5838509,35.5391304 C11.5838509,38.6182037 9.08776889,41.1142857 6.00869565,41.1142857 Z M58.0434783,41.1142857 C54.964405,41.1142857 52.468323,38.6182037 52.468323,35.5391304 C52.468323,32.4600572 54.964405,29.9639752 58.0434783,29.9639752 C61.1225515,29.9639752 63.6186335,32.4600572 63.6186335,35.5391304 C63.6186335,38.6182037 61.1225515,41.1142857 58.0434783,41.1142857 Z M32.026087,41.1142857 C28.9470137,41.1142857 26.4509317,38.6182037 26.4509317,35.5391304 C26.4509317,32.4600572 28.9470137,29.9639752 32.026087,29.9639752 C35.1051602,29.9639752 37.6012422,32.4600572 37.6012422,35.5391304 C37.6012422,38.6182037 35.1051602,41.1142857 32.026087,41.1142857 Z M84.0608696,41.1142857 C80.9817963,41.1142857 78.4857143,38.6182037 78.4857143,35.5391304 C78.4857143,32.4600572 80.9817963,29.9639752 84.0608696,29.9639752 C87.1399428,29.9639752 89.6360248,32.4600572 89.6360248,35.5391304 C89.6360248,38.6182037 87.1399428,41.1142857 84.0608696,41.1142857 Z M110.078261,41.1142857 C106.999188,41.1142857 104.503106,38.6182037 104.503106,35.5391304 C104.503106,32.4600572 106.999188,29.9639752 110.078261,29.9639752 C113.157334,29.9639752 115.653416,32.4600572 115.653416,35.5391304 C115.653416,38.6182037 113.157334,41.1142857 110.078261,41.1142857 Z" id="Combined-Shape" fill="#000000"></path>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/twitter.svg b/chrome/browser/resources/local_ntp/icons/twitter.svg
deleted file mode 100644
index 4aeae35..0000000
--- a/chrome/browser/resources/local_ntp/icons/twitter.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48"><path d="M43.5 48h-39C2 48 0 46 0 43.5v-39C0 2 2 0 4.5 0h39C46 0 48 2 48 4.5v39c0 2.5-2 4.5-4.5 4.5z" fill="#3aaae1"/><path d="M39.3 15.5c-1.1.5-2.3.8-3.5.9 1.2-.7 2.2-1.9 2.6-3.3-1.1.7-2.5 1.2-3.8 1.5-1.1-1.1-2.6-1.9-4.4-1.9-3.3 0-6 2.7-6 6 0 .5.1.9.1 1.3-4.9-.3-9.4-2.6-12.4-6.3-.5.9-.8 1.9-.8 3 0 2 1.1 3.9 2.7 5-1 0-1.9-.3-2.7-.8v.1c0 2.9 2 5.3 4.8 5.9-.5.1-1.1.2-1.6.2-.4 0-.8-.1-1.1-.1.8 2.4 3 4.1 5.6 4.2-2 1.6-4.7 2.5-7.4 2.5-.5 0-1 0-1.4-.1 2.7 1.7 5.8 2.7 9.2 2.7 11 0 17-9.1 17-17v-.8c1.3-.8 2.3-1.8 3.1-3z" fill="#fff"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/upload.svg b/chrome/browser/resources/local_ntp/icons/upload.svg
deleted file mode 100644
index 3900228..0000000
--- a/chrome/browser/resources/local_ntp/icons/upload.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#000" fill-rule="evenodd"><path fill-rule="nonzero" d="M3 12v2h10v-2z"/><path d="M3 6.846h2.99V11h3.996V6.846H13L8 2z"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/icons/wallpapers.svg b/chrome/browser/resources/local_ntp/icons/wallpapers.svg
deleted file mode 100644
index 8f3a2a3..0000000
--- a/chrome/browser/resources/local_ntp/icons/wallpapers.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24"><defs><circle id="a" cx="11.936" cy="11.932" r="11.932"/><path id="c" d="M23.828 12.915L16.78 5.867a2.443 2.443 0 0 0-4.224.697h-.42l-.753-1.192a.91.91 0 0 0-1.538 0l-6.311 9.99a.91.91 0 0 0 .16 1.152l7.376 7.32c.286.02.573.03.865.03 6.26 0 11.394-4.819 11.893-10.949z"/><linearGradient id="d" x1="18.237%" x2="80.781%" y1="16.317%" y2="82.979%"><stop offset="0%" stop-color="#1C3AA9" stop-opacity=".2"/><stop offset="100%" stop-color="#1C3AA9" stop-opacity=".02"/></linearGradient><path id="f" d="M23.828 12.915L16.78 5.867a2.443 2.443 0 0 0-4.224.697h-.42l-.753-1.192a.91.91 0 0 0-1.538 0l-6.311 9.99a.91.91 0 0 0 .16 1.152l7.376 7.32c.286.02.573.03.865.03 6.26 0 11.394-4.819 11.893-10.949z"/><path id="h" d="M23.828 12.915L16.78 5.867a2.443 2.443 0 0 0-4.224.697h-.42l-.753-1.192a.91.91 0 0 0-1.538 0l-6.311 9.99a.91.91 0 0 0 .16 1.152l7.376 7.32c.286.02.573.03.865.03 6.26 0 11.394-4.819 11.893-10.949z"/><path id="j" d="M23.828 12.915L16.78 5.867a2.443 2.443 0 0 0-4.224.697h-.42l-.753-1.192a.91.91 0 0 0-1.538 0l-6.311 9.99a.91.91 0 0 0 .16 1.152l7.376 7.32c.286.02.573.03.865.03 6.26 0 11.394-4.819 11.893-10.949z"/><path id="l" d="M23.828 12.915L16.78 5.867a2.443 2.443 0 0 0-4.224.697h-.42l-.753-1.192a.91.91 0 0 0-1.538 0l-6.311 9.99a.91.91 0 0 0 .16 1.152l7.376 7.32c.286.02.573.03.865.03 6.26 0 11.394-4.819 11.893-10.949z"/><path id="n" d="M23.828 12.915L16.78 5.867a2.443 2.443 0 0 0-4.224.697h-.42l-.753-1.192a.91.91 0 0 0-1.538 0l-6.311 9.99a.91.91 0 0 0 .16 1.152l7.376 7.32c.286.02.573.03.865.03 6.26 0 11.394-4.819 11.893-10.949z"/><path id="p" d="M23.828 12.915L16.78 5.867a2.443 2.443 0 0 0-4.224.697h-.42l-.753-1.192a.91.91 0 0 0-1.538 0l-6.311 9.99a.91.91 0 0 0 .16 1.152l7.376 7.32c.286.02.573.03.865.03 6.26 0 11.394-4.819 11.893-10.949z"/><linearGradient id="r" x1="14.132%" x2="85.172%" y1="14.136%" y2="85.175%"><stop offset="0%" stop-color="#FFF" stop-opacity=".1"/><stop offset="100%" stop-color="#FFF" stop-opacity="0"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><circle cx="11.936" cy="11.932" r="11.932" fill="#4285F4" fill-rule="nonzero" mask="url(#b)"/><mask id="e" fill="#fff"><use xlink:href="#c"/></mask><path fill="url(#d)" fill-rule="nonzero" d="M23.828 12.915L16.78 5.867a2.443 2.443 0 0 0-4.224.697h-.42l-.753-1.192a.91.91 0 0 0-1.538 0l-6.311 9.99a.906.906 0 0 0 .181 1.17l7.573 7.572c.068-.25.357-.238.648-.238 6.26-.002 11.393-4.82 11.892-10.95z" mask="url(#e)"/><mask id="g" fill="#fff"><use xlink:href="#f"/></mask><path fill="#EEE" fill-rule="nonzero" d="M20.338 15.361l-1.988-3.145a.91.91 0 0 0-1.538 0l-.552.873-4.876-7.717a.91.91 0 0 0-1.537 0l-6.312 9.99a.903.903 0 0 0 .769 1.384h15.265a.903.903 0 0 0 .769-1.385z" mask="url(#g)"/><mask id="i" fill="#fff"><use xlink:href="#h"/></mask><path fill="#FFF" fill-opacity=".4" fill-rule="nonzero" d="M3.535 15.497l6.312-9.99a.91.91 0 0 1 1.537 0l4.876 7.717.552-.873a.91.91 0 0 1 1.538 0l1.988 3.146a.896.896 0 0 1 .137.414.884.884 0 0 0-.137-.55l-1.988-3.145a.91.91 0 0 0-1.538 0l-.552.873-4.876-7.717a.91.91 0 0 0-1.537 0l-6.312 9.99a.89.89 0 0 0-.137.549c.01-.14.053-.281.137-.414z" mask="url(#i)"/><mask id="k" fill="#fff"><use xlink:href="#j"/></mask><path fill="#A1C2FA" fill-rule="nonzero" d="M11.993 6.564h.563a2.444 2.444 0 0 1 4.747.815c0 1.35-1.094 2.332-2.443 2.332h-2.867c-.899 0-1.628-.594-1.628-1.494s.73-1.653 1.628-1.653z" mask="url(#k)"/><mask id="m" fill="#fff"><use xlink:href="#l"/></mask><path fill="#212121" fill-opacity=".1" fill-rule="nonzero" d="M19.569 16.61H4.304a.906.906 0 0 1-.906-.836.907.907 0 0 0 .906.972h15.265a.906.906 0 0 0 .906-.972.906.906 0 0 1-.906.836z" mask="url(#m)"/><mask id="o" fill="#fff"><use xlink:href="#n"/></mask><path fill="#FFF" fill-opacity=".2" fill-rule="nonzero" d="M11.993 6.7h.563a2.442 2.442 0 0 1 4.743.747c0-.023.004-.045.004-.068a2.444 2.444 0 0 0-4.747-.815h-.563c-.899 0-1.628.753-1.628 1.653 0 .023.002.045.004.068.035-.87.748-1.585 1.624-1.585z" mask="url(#o)"/><mask id="q" fill="#fff"><use xlink:href="#p"/></mask><path fill="#1A237E" fill-opacity=".2" fill-rule="nonzero" d="M14.86 9.71h-2.867c-.876 0-1.589-.566-1.626-1.427 0 .023-.004.045-.004.068 0 .9.73 1.494 1.629 1.494h2.866c1.35 0 2.444-.981 2.444-2.332 0-.023-.003-.045-.004-.068-.034 1.314-1.11 2.265-2.438 2.265z" mask="url(#q)"/><path fill="#1A237E" fill-rule="nonzero" d="M11.936 23.729C5.368 23.729.041 18.423.004 11.864l-.001.068c0 6.59 5.342 11.932 11.932 11.932 6.59 0 11.932-5.342 11.932-11.932l-.001-.068c-.035 6.56-5.363 11.865-11.93 11.865z" mask="url(#q)" opacity=".2"/><path fill="#FFF" fill-rule="nonzero" d="M11.936.136C18.503.136 23.831 5.44 23.867 12l.001-.068C23.868 5.342 18.526 0 11.936 0 5.346 0 .004 5.342.004 11.932L.005 12C.041 5.441 5.368.136 11.936.136z" mask="url(#q)" opacity=".2"/><circle cx="11.936" cy="11.932" r="11.932" fill="url(#r)" fill-rule="nonzero" mask="url(#q)"/><path mask="url(#q)" d="M-1.081-1.085h26.034v26.034H-1.081z"/></g></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/local_ntp/local_ntp_resources.grd b/chrome/browser/resources/local_ntp/local_ntp_resources.grd
deleted file mode 100644
index 3a5b8c7..0000000
--- a/chrome/browser/resources/local_ntp/local_ntp_resources.grd
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<grit latest_public_release="0" current_release="1" output_all_resource_defines="false">
-  <outputs>
-    <output filename="grit/local_ntp_resources.h" type="rc_header">
-      <emit emit_type='prepend'></emit>
-    </output>
-    <output filename="local_ntp_resources.pak" type="data_package" />
-  </outputs>
-  <release seq="1">
-    <includes>
-      <include name="IDR_MOST_VISITED_TITLE_CSS" file="most_visited_title.css" type="BINDATA" />
-      <include name="IDR_MOST_VISITED_TITLE_HTML" file="most_visited_title.html" type="BINDATA" />
-      <include name="IDR_MOST_VISITED_TITLE_JS" file="most_visited_title.js" type="BINDATA" />
-    </includes>
-  </release>
-</grit>
diff --git a/chrome/browser/resources/media_router/BUILD.gn b/chrome/browser/resources/media_router/BUILD.gn
index e54caf722..a86703b 100644
--- a/chrome/browser/resources/media_router/BUILD.gn
+++ b/chrome/browser/resources/media_router/BUILD.gn
@@ -46,18 +46,18 @@
   in_folder = target_gen_dir
   out_folder = "$target_gen_dir/$preprocess_folder"
   out_manifest = "$target_gen_dir/$preprocess_web_components_manifest"
-  in_files = [ "feedback_ui.js" ]
+  in_files = [ "cast_feedback_ui.js" ]
 }
 
 js_type_check("closure_compile") {
   is_polymer3 = true
   deps = [
-    ":feedback_ui",
+    ":cast_feedback_ui",
     ":media_router_internals",
   ]
 }
 
-js_library("feedback_ui") {
+js_library("cast_feedback_ui") {
   deps = [
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/cr_elements/cr_button:cr_button.m",
@@ -66,9 +66,13 @@
     "//ui/webui/resources/cr_elements/cr_input:cr_input.m",
     "//ui/webui/resources/cr_elements/cr_radio_button:cr_radio_button.m",
     "//ui/webui/resources/cr_elements/cr_radio_group:cr_radio_group.m",
+    "//ui/webui/resources/js:cr.m",
     "//ui/webui/resources/js:load_time_data.m",
   ]
-  externs_list = [ "$externs_path/feedback_private.js" ]
+  externs_list = [
+    "$externs_path/feedback_private.js",
+    "$externs_path/chrome_send.js",
+  ]
 }
 
 js_library("media_router_internals") {
@@ -81,5 +85,5 @@
 # Expand {__html_template__} in .js files using content from the
 # corresponding .html files.
 html_to_js("web_components") {
-  js_files = [ "feedback_ui.js" ]
+  js_files = [ "cast_feedback_ui.js" ]
 }
diff --git a/chrome/browser/resources/media_router/feedback_ui.html b/chrome/browser/resources/media_router/cast_feedback_ui.html
similarity index 100%
rename from chrome/browser/resources/media_router/feedback_ui.html
rename to chrome/browser/resources/media_router/cast_feedback_ui.html
diff --git a/chrome/browser/resources/media_router/feedback_ui.js b/chrome/browser/resources/media_router/cast_feedback_ui.js
similarity index 77%
rename from chrome/browser/resources/media_router/feedback_ui.js
rename to chrome/browser/resources/media_router/cast_feedback_ui.js
index bd81812..67d919b 100644
--- a/chrome/browser/resources/media_router/feedback_ui.js
+++ b/chrome/browser/resources/media_router/cast_feedback_ui.js
@@ -12,6 +12,7 @@
 import '//resources/cr_elements/shared_style_css.m.js';
 import '//resources/cr_elements/shared_vars_css.m.js';
 
+import {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
@@ -25,10 +26,10 @@
 };
 
 /**
- * Keep in sync with UMA MediaRouterCastFeedbackEvent enum.
+ * Keep in sync with MediaRouterCastFeedbackEvent in enums.xml.
  * @enum {number}
  */
-const FeedbackEvent = {
+export const FeedbackEvent = {
   OPENED: 0,
   SENDING: 1,
   RESENDING: 2,
@@ -37,21 +38,74 @@
   MAX_VALUE: 4,
 };
 
-const MAX_SEND_ATTEMPTS = 4;
-const RESEND_DELAY_MS = 10000;
+/**
+ * See
+ * https://docs.google.com/document/d/1c20VYdwpUPyBRQeAS0CMr6ahwWnb0s26gByomOwqDjk
+ * @interface
+ */
+export class FeedbackUiBrowserProxy {
+  /**
+   * Records an event using Chrome Metrics.
+   * @param {FeedbackEvent} event
+   */
+  recordEvent(event) {}
+
+  /**
+   * Proxy for chrome.feedbackPrivate.sendFeedback().
+   * @param {chrome.feedbackPrivate.FeedbackInfo} info
+   * @return {!Promise<chrome.feedbackPrivate.Status>}
+   */
+  sendFeedback(info) {}
+}
+
+/** @implements {FeedbackUiBrowserProxy} */
+export class FeedbackUiBrowserProxyImpl {
+  /** @override */
+  recordEvent(event) {
+    chrome.send(
+        'metricsHandler:recordInHistogram',
+        ['MediaRouter.Cast.Feedback.Event', event, FeedbackEvent.MAX_VALUE]);
+  }
+
+  /** @override */
+  sendFeedback(info) {
+    return new Promise(
+        resolve => chrome.feedbackPrivate.sendFeedback(info, resolve));
+  }
+}
+
+addSingletonGetter(FeedbackUiBrowserProxyImpl);
 
 export class FeedbackUiElement extends PolymerElement {
   constructor() {
     super();
 
-    /** @private {boolean} */
-    this.feedbackSent_ = false;
+    /** @private {FeedbackUiBrowserProxy} */
+    this.browserProxy_ = FeedbackUiBrowserProxyImpl.getInstance();
+
+    /**
+     * Public/mutable for testing.
+     * @type {number}
+     */
+    this.resendDelayMs = 10000;
+
+    /**
+     * Public/mutable for testing.
+     * @type {number}
+     */
+    this.maxResendAttempts = 4;
+
+    /**
+     * Public for testing.
+     * @type {boolean}
+     */
+    this.feedbackSent = false;
 
     chrome.feedbackPrivate.getUserEmail(email => {
       this.userEmail_ = email;
     });
 
-    this.recordEvent_(FeedbackEvent.OPENED);
+    this.browserProxy_.recordEvent(FeedbackEvent.OPENED);
   }
 
   static get is() {
@@ -193,7 +247,6 @@
     return this.feedbackType_ === FeedbackType.DISCOVERY;
   }
 
-  /** @private */
   onSubmit_() {
     const parts = [`Type: ${this.feedbackType_}`, ''];
     const append = (label, value) => {
@@ -251,38 +304,24 @@
   trySendFeedback_(feedback, failureCount, delayMs) {
     setTimeout(() => {
       const sendStartTime = Date.now();
-      chrome.feedbackPrivate.sendFeedback(
-          feedback, (status, landingPageType) => {
-            if (status == chrome.feedbackPrivate.Status.SUCCESS) {
-              this.feedbackSent_ = true;
-              this.updateSendDialog_(
-                  FeedbackEvent.SUCCEEDED, 'sendSuccess', true);
-            } else if (failureCount < MAX_SEND_ATTEMPTS) {
-              this.updateSendDialog_(
-                  FeedbackEvent.RESENDING, 'resending', false);
-              const sendDuration = Date.now() - sendStartTime;
-              this.trySendFeedback_(
-                  feedback, failureCount + 1,
-                  Math.max(0, RESEND_DELAY_MS - sendDuration));
-            } else {
-              this.updateSendDialog_(FeedbackEvent.FAILED, 'sendFail', true);
-            }
-          });
+      this.browserProxy_.sendFeedback(feedback).then(status => {
+        if (status == chrome.feedbackPrivate.Status.SUCCESS) {
+          this.feedbackSent = true;
+          this.updateSendDialog_(FeedbackEvent.SUCCEEDED, 'sendSuccess', true);
+        } else if (failureCount < this.maxResendAttempts) {
+          this.updateSendDialog_(FeedbackEvent.RESENDING, 'resending', false);
+          const sendDuration = Date.now() - sendStartTime;
+          this.trySendFeedback_(
+              feedback, failureCount + 1,
+              Math.max(0, this.resendDelayMs - sendDuration));
+        } else {
+          this.updateSendDialog_(FeedbackEvent.FAILED, 'sendFail', true);
+        }
+      });
     }, delayMs);
   }
 
   /**
-   * Records an event using UMA.
-   * @param {FeedbackEvent} event
-   * @private
-   */
-  recordEvent_(event) {
-    chrome.send(
-        'metricsHandler:recordInHistogram',
-        ['MediaRouter.Cast.Feedback.Event', event, FeedbackEvent.MAX_VALUE]);
-  }
-
-  /**
    * Updates the status of the "send" dialog and records the event.
    * @param {FeedbackEvent} event
    * @param {string} stringKey
@@ -290,14 +329,14 @@
    * @private
    */
   updateSendDialog_(event, stringKey, isInteractive) {
-    this.recordEvent_(event);
+    this.browserProxy_.recordEvent(event);
     this.sendDialogText_ = loadTimeData.getString(stringKey);
     this.sendDialogIsInteractive_ = isInteractive;
   }
 
   /** @private */
   onSendDialogOk_() {
-    if (this.feedbackSent_) {
+    if (this.feedbackSent) {
       chrome.send('close');
     } else {
       this.$.sendDialog.close();
diff --git a/chrome/browser/resources/media_router/feedback.html b/chrome/browser/resources/media_router/feedback.html
index 611b6855..4610868 100644
--- a/chrome/browser/resources/media_router/feedback.html
+++ b/chrome/browser/resources/media_router/feedback.html
@@ -8,12 +8,12 @@
     <link rel="stylesheet" href="//resources/css/widgets.css">
     <style>
       body {
-          margin: 0;
+        margin: 0;
       }
     </style>
   </head>
   <body>
-    <script type="module" src="feedback_ui.js"></script>
+    <script type="module" src="cast_feedback_ui.js"></script>
     <feedback-ui></feedback-ui>
   </body>
 </html>
diff --git a/chrome/browser/resources/network_speech_synthesis/OWNERS b/chrome/browser/resources/network_speech_synthesis/OWNERS
new file mode 100644
index 0000000..976b955
--- /dev/null
+++ b/chrome/browser/resources/network_speech_synthesis/OWNERS
@@ -0,0 +1 @@
+file://ui/accessibility/OWNERS
diff --git a/chrome/browser/resources/network_speech_synthesis/tts_extension.js b/chrome/browser/resources/network_speech_synthesis/tts_extension.js
index 7ecbbec..37908805 100644
--- a/chrome/browser/resources/network_speech_synthesis/tts_extension.js
+++ b/chrome/browser/resources/network_speech_synthesis/tts_extension.js
@@ -112,6 +112,13 @@
    * @private
    */
   onSpeak_(utterance, options, callback) {
+    // Ignore the utterance if it is empty. Continue such processing causes no
+    // speech and fails all subsequent calls to process additional utterances.
+    if (utterance.length == 0) {
+      callback({'type': 'end', 'charIndex': 0});
+      return;
+    }
+
     // Truncate the utterance if it's too long. Both Chrome's tts
     // extension api and the web speech api specify 32k as the
     // maximum limit for an utterance.
diff --git a/chrome/browser/resources/new_tab_page/app.js b/chrome/browser/resources/new_tab_page/app.js
index 6b62f6c..af519b0 100644
--- a/chrome/browser/resources/new_tab_page/app.js
+++ b/chrome/browser/resources/new_tab_page/app.js
@@ -35,6 +35,30 @@
  */
 let CommandData;
 
+/**
+ * Elements on the NTP. This enum must match the numbering for NTPElement in
+ * enums.xml. These values are persisted to logs. Entries should not be
+ * renumbered, removed or reused.
+ * @enum {number}
+ */
+export const NtpElement = {
+  kOther: 0,
+  kBackground: 1,
+  kOneGoogleBar: 2,
+  kLogo: 3,
+  kRealbox: 4,
+  kMostVisited: 5,
+  kMiddleSlotPromo: 6,
+  kModule: 7,
+  kCustomize: 8,
+};
+
+/** @param {NtpElement} element */
+function recordClick(element) {
+  chrome.metricsPrivate.recordEnumerationValue(
+      'NewTabPage.Click', element, Object.keys(NtpElement).length);
+}
+
 // Adds a <script> tag that holds the lazy loaded code.
 function ensureLazyLoaded() {
   const script = document.createElement('script');
@@ -265,6 +289,8 @@
       }
     });
     this.eventTracker_.add(window, 'keydown', e => this.onWindowKeydown_(e));
+    this.eventTracker_.add(
+        window, 'click', e => this.onWindowClick_(e), /*capture=*/ true);
     if (this.shouldPrintPerformance_) {
       // It is possible that the background image has already loaded by now.
       // If it has, we request it to re-send the load time so that we can
@@ -701,6 +727,8 @@
     } else if (data.messageType === 'execute-browser-command') {
       this.executePromoBrowserCommand_(
           /** @type {!CommandData} */ (data.data), event.source, event.origin);
+    } else if (data.messageType === 'click') {
+      recordClick(NtpElement.kOneGoogleBar);
     }
   }
 
@@ -760,6 +788,41 @@
       log(entry);
     });
   }
+
+  /**
+   * @param {Event} e
+   * @private
+   */
+  onWindowClick_(e) {
+    if (e.composedPath() && e.composedPath()[0] === $$(this, '#content')) {
+      recordClick(NtpElement.kBackground);
+      return;
+    }
+    for (const target of e.composedPath()) {
+      switch (target) {
+        case $$(this, 'ntp-logo'):
+          recordClick(NtpElement.kLogo);
+          return;
+        case $$(this, 'ntp-realbox'):
+          recordClick(NtpElement.kRealbox);
+          return;
+        case $$(this, 'ntp-most-visited'):
+          recordClick(NtpElement.kMostVisited);
+          return;
+        case $$(this, 'ntp-middle-slot-promo'):
+          recordClick(NtpElement.kMiddleSlotPromo);
+          return;
+        case $$(this, 'ntp-modules'):
+          recordClick(NtpElement.kModule);
+          return;
+        case $$(this, '#customizeButton'):
+        case $$(this, 'ntp-customize-dialog'):
+          recordClick(NtpElement.kCustomize);
+          return;
+      }
+    }
+    recordClick(NtpElement.kOther);
+  }
 }
 
 customElements.define(AppElement.is, AppElement);
diff --git a/chrome/browser/resources/new_tab_page/new_tab_page.js b/chrome/browser/resources/new_tab_page/new_tab_page.js
index 976d67a..e01fe23 100644
--- a/chrome/browser/resources/new_tab_page/new_tab_page.js
+++ b/chrome/browser/resources/new_tab_page/new_tab_page.js
@@ -10,8 +10,7 @@
  * things tests need.
  */
 
-import './app.js';
-
+export {NtpElement} from './app.js';
 export {BackgroundManager} from './background_manager.js';
 export {BackgroundSelectionType, CustomizeDialogPage} from './customize_dialog_types.js';
 export {ImgElement} from './img.js';
diff --git a/chrome/browser/resources/new_tab_page/untrusted/one_google_bar.js b/chrome/browser/resources/new_tab_page/untrusted/one_google_bar.js
index 0852482..73e62d3 100644
--- a/chrome/browser/resources/new_tab_page/untrusted/one_google_bar.js
+++ b/chrome/browser/resources/new_tab_page/untrusted/one_google_bar.js
@@ -7,11 +7,7 @@
  *  - loaded: sent on initial load.
  *  - overlaysUpdated: sent when an overlay is updated. The overlay bounding
  *        rects are included in the |data|.
- *  - activate/deactivate: When an overlay is open, 'activate' is sent to the
- *        to ntp-app so it can layer the OneGoogleBar over the NTP content. When
- *        no overlays are open, 'deactivate' is sent to ntp-app so the NTP
- *        content can be on top. The top bar of the OneGoogleBar is always on
- *        top.
+ *  - click: sent when the OGB was clicked.
  * @param {string} messageType
  * @param {Object} data
  */
@@ -287,6 +283,10 @@
   }
 });
 
+window.addEventListener('click', () => {
+  postMessage('click');
+}, /*useCapture=*/ true);
+
 document.addEventListener('DOMContentLoaded', () => {
   // TODO(crbug.com/1039913): remove after OneGoogleBar links are updated.
   // Updates <a>'s so they load on the top frame instead of the iframe.
diff --git a/chrome/browser/resources/new_tab_page_instant/BUILD.gn b/chrome/browser/resources/new_tab_page_instant/BUILD.gn
new file mode 100644
index 0000000..7c54bef
--- /dev/null
+++ b/chrome/browser/resources/new_tab_page_instant/BUILD.gn
@@ -0,0 +1,43 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//chrome/common/features.gni")
+import("//third_party/closure_compiler/compile_js.gni")
+import("//tools/grit/grit_rule.gni")
+import("//ui/webui/resources/tools/generate_grd.gni")
+
+js_type_check("closure_compile") {
+  deps = [ ":most_visited_title" ]
+}
+
+js_library("most_visited_title") {
+  sources = [ "most_visited_title.js" ]
+  deps = [ "//ui/webui/resources/js:assert" ]
+  externs_list = [ "externs.js" ]
+}
+
+generate_grd("build_grd") {
+  grd_prefix = "new_tab_page_instant"
+  out_grd = "$target_gen_dir/resources.grd"
+  input_files = [
+    "most_visited_title.css",
+    "most_visited_title.html",
+    "most_visited_title.js",
+  ]
+  input_files_base_dir = rebase_path(".", "//")
+}
+
+grit("resources") {
+  defines = chrome_grit_defines + [ "is_official_build=$is_official_build" ]
+  enable_input_discovery_for_gn_analyze = false
+  source = "$target_gen_dir/resources.grd"
+  deps = [ ":build_grd" ]
+  outputs = [
+    "grit/new_tab_page_instant_resources.h",
+    "grit/new_tab_page_instant_resources_map.cc",
+    "grit/new_tab_page_instant_resources_map.h",
+    "new_tab_page_instant_resources.pak",
+  ]
+  output_dir = "$root_gen_dir/chrome"
+}
diff --git a/chrome/browser/resources/new_tab_page_instant/DIR_METADATA b/chrome/browser/resources/new_tab_page_instant/DIR_METADATA
new file mode 100644
index 0000000..eb6250a8
--- /dev/null
+++ b/chrome/browser/resources/new_tab_page_instant/DIR_METADATA
@@ -0,0 +1,3 @@
+monorail: {
+  component: "UI>Browser>NewTabPage"
+}
diff --git a/chrome/browser/resources/new_tab_page_instant/OWNERS b/chrome/browser/resources/new_tab_page_instant/OWNERS
new file mode 100644
index 0000000..5616d30
--- /dev/null
+++ b/chrome/browser/resources/new_tab_page_instant/OWNERS
@@ -0,0 +1,2 @@
+mahmadi@chromium.org
+tiborg@chromium.org
diff --git a/chrome/browser/resources/local_ntp/externs.js b/chrome/browser/resources/new_tab_page_instant/externs.js
similarity index 96%
rename from chrome/browser/resources/local_ntp/externs.js
rename to chrome/browser/resources/new_tab_page_instant/externs.js
index 1ca0dc9..1acb8a46 100644
--- a/chrome/browser/resources/local_ntp/externs.js
+++ b/chrome/browser/resources/new_tab_page_instant/externs.js
@@ -80,8 +80,3 @@
 
 /** @type {?NtpTheme} */
 window.chrome.embeddedSearch.newTabPage.ntpTheme;
-
-/**
- * No params.
- */
-window.chrome.embeddedSearch.newTabPage.useDefaultTheme;
diff --git a/chrome/browser/resources/local_ntp/most_visited_title.css b/chrome/browser/resources/new_tab_page_instant/most_visited_title.css
similarity index 100%
rename from chrome/browser/resources/local_ntp/most_visited_title.css
rename to chrome/browser/resources/new_tab_page_instant/most_visited_title.css
diff --git a/chrome/browser/resources/local_ntp/most_visited_title.html b/chrome/browser/resources/new_tab_page_instant/most_visited_title.html
similarity index 100%
rename from chrome/browser/resources/local_ntp/most_visited_title.html
rename to chrome/browser/resources/new_tab_page_instant/most_visited_title.html
diff --git a/chrome/browser/resources/local_ntp/most_visited_title.js b/chrome/browser/resources/new_tab_page_instant/most_visited_title.js
similarity index 100%
rename from chrome/browser/resources/local_ntp/most_visited_title.js
rename to chrome/browser/resources/new_tab_page_instant/most_visited_title.js
diff --git a/chrome/browser/resources/new_tab_page_third_party/DIR_METADATA b/chrome/browser/resources/new_tab_page_third_party/DIR_METADATA
new file mode 100644
index 0000000..eb6250a8
--- /dev/null
+++ b/chrome/browser/resources/new_tab_page_third_party/DIR_METADATA
@@ -0,0 +1,3 @@
+monorail: {
+  component: "UI>Browser>NewTabPage"
+}
diff --git a/chrome/browser/resources/read_later/app.html b/chrome/browser/resources/read_later/app.html
index 794a6eb..bcaade63 100644
--- a/chrome/browser/resources/read_later/app.html
+++ b/chrome/browser/resources/read_later/app.html
@@ -121,8 +121,8 @@
       </read-later-item>
     </template>
   </iron-selector>
-  <div hidden="[[!isReadingListEmpty_(unreadItems_, readItems_)]]">
-    <div id="empty-state-header">$i18n{emptyStateHeader}</div>
-    <div id="empty-state-subheader">$i18n{emptyStateSubheader}</div>
-  </div>
+</div>
+<div hidden="[[!isReadingListEmpty_(unreadItems_, readItems_)]]">
+  <div id="empty-state-header">$i18n{emptyStateHeader}</div>
+  <div id="empty-state-subheader">$i18n{emptyStateSubheader}</div>
 </div>
diff --git a/chrome/browser/resources/read_later/app.js b/chrome/browser/resources/read_later/app.js
index 5dcf1a2..d3632c8 100644
--- a/chrome/browser/resources/read_later/app.js
+++ b/chrome/browser/resources/read_later/app.js
@@ -112,11 +112,16 @@
         'ReadingList.WebUI.ReadingListDataReceived',
         Math.round(Date.now() - getEntriesStartTimestamp));
 
-    listenOnce(this.$.readLaterList, 'dom-change', () => {
-      // Push ShowUI() callback to the event queue to allow deferred rendering
-      // to take place.
+    if (entries.unreadEntries.length !== 0 ||
+        entries.readEntries.length !== 0) {
+      listenOnce(this.$.readLaterList, 'dom-change', () => {
+        // Push ShowUI() callback to the event queue to allow deferred rendering
+        // to take place.
+        setTimeout(() => this.apiProxy_.showUI(), 0);
+      });
+    } else {
       setTimeout(() => this.apiProxy_.showUI(), 0);
-    });
+    }
 
     this.updateItems_(entries);
   }
diff --git a/chrome/browser/resources/read_later/read_later_api_proxy.js b/chrome/browser/resources/read_later/read_later_api_proxy.js
index a443be4..f0179c9f 100644
--- a/chrome/browser/resources/read_later/read_later_api_proxy.js
+++ b/chrome/browser/resources/read_later/read_later_api_proxy.js
@@ -16,8 +16,11 @@
    */
   getReadLaterEntries() {}
 
-  /** @param {!url.mojom.Url} url */
-  openSavedEntry(url) {}
+  /**
+   * @param {!url.mojom.Url} url
+   * @param {boolean} mark_as_read
+   */
+  openURL(url, mark_as_read) {}
 
   /**
    * @param {!url.mojom.Url} url
@@ -57,8 +60,8 @@
   }
 
   /** @override */
-  openSavedEntry(url) {
-    this.handler.openSavedEntry(url);
+  openURL(url, mark_as_read) {
+    this.handler.openURL(url, mark_as_read);
   }
 
   /** @override */
diff --git a/chrome/browser/resources/read_later/read_later_item.js b/chrome/browser/resources/read_later/read_later_item.js
index 265ad52..04ef5da 100644
--- a/chrome/browser/resources/read_later/read_later_item.js
+++ b/chrome/browser/resources/read_later/read_later_item.js
@@ -63,7 +63,7 @@
 
   /** @private */
   onClick_() {
-    this.apiProxy_.openSavedEntry(this.data.url);
+    this.apiProxy_.openURL(this.data.url, true);
   }
 
   /**
diff --git a/chrome/browser/resources/read_later/side_panel/BUILD.gn b/chrome/browser/resources/read_later/side_panel/BUILD.gn
index 8e00ee1..8276061f 100644
--- a/chrome/browser/resources/read_later/side_panel/BUILD.gn
+++ b/chrome/browser/resources/read_later/side_panel/BUILD.gn
@@ -32,6 +32,7 @@
 
 js_library("bookmark_folder") {
   deps = [
+    "../:read_later_api_proxy",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/cr_elements/cr_icon_button:cr_icon_button.m",
     "//ui/webui/resources/js:icon.m",
diff --git a/chrome/browser/resources/read_later/side_panel/bookmark_folder.js b/chrome/browser/resources/read_later/side_panel/bookmark_folder.js
index da9f5cc..6a52ee91 100644
--- a/chrome/browser/resources/read_later/side_panel/bookmark_folder.js
+++ b/chrome/browser/resources/read_later/side_panel/bookmark_folder.js
@@ -7,6 +7,7 @@
 
 import {getFaviconForPageURL} from 'chrome://resources/js/icon.m.js';
 import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {ReadLaterApiProxy, ReadLaterApiProxyImpl} from '../read_later_api_proxy.js';
 
 export class BookmarkFolderElement extends PolymerElement {
   static get is() {
@@ -44,6 +45,13 @@
     };
   }
 
+  constructor() {
+    super();
+
+    /** @private @const {!ReadLaterApiProxy} */
+    this.readLaterApi_ = ReadLaterApiProxyImpl.getInstance();
+  }
+
   ready() {
     super.ready();
     this.open_ = this.openByDefault;
@@ -55,7 +63,7 @@
    */
   onBookmarkClick_(event) {
     event.preventDefault();
-    // TODO(johntlee): Navigate to bookmark URL in current tab.
+    this.readLaterApi_.openURL({url: event.model.item.url}, false);
   }
 
   /**
diff --git a/chrome/browser/resources/settings/chromeos/BUILD.gn b/chrome/browser/resources/settings/chromeos/BUILD.gn
index e0cf7ce..cceca8b 100644
--- a/chrome/browser/resources/settings/chromeos/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/BUILD.gn
@@ -257,9 +257,9 @@
     "chromeos/ambient_mode_page/constants.m.js",
     "chromeos/ambient_mode_page/topic_source_item.m.js",
     "chromeos/ambient_mode_page/topic_source_list.m.js",
-    "chromeos/bluetooth_page/bluetooth_device_list_item.m.js",
-    "chromeos/bluetooth_page/bluetooth_page.m.js",
-    "chromeos/bluetooth_page/bluetooth_subpage.m.js",
+    "chromeos/bluetooth_page/bluetooth_device_list_item.js",
+    "chromeos/bluetooth_page/bluetooth_page.js",
+    "chromeos/bluetooth_page/bluetooth_subpage.js",
     "chromeos/crostini_page/crostini_arc_adb.m.js",
     "chromeos/crostini_page/crostini_arc_adb_confirmation_dialog.m.js",
     "chromeos/crostini_page/crostini_browser_proxy.m.js",
@@ -653,7 +653,7 @@
   public_deps = [
     # Sub-folder targets
     "ambient_mode_page:polymer3_elements",
-    "bluetooth_page:polymer3_elements",
+    "bluetooth_page:web_components",
     "crostini_page:polymer3_elements",
     "date_time_page:polymer3_elements",
     "device_page:polymer3_elements",
diff --git a/chrome/browser/resources/settings/chromeos/bluetooth_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/bluetooth_page/BUILD.gn
index 5e31e04..35387b4 100644
--- a/chrome/browser/resources/settings/chromeos/bluetooth_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/bluetooth_page/BUILD.gn
@@ -3,21 +3,20 @@
 # found in the LICENSE file.
 
 import("//third_party/closure_compiler/compile_js.gni")
-import("//tools/polymer/polymer.gni")
+import("//tools/polymer/html_to_js.gni")
 import("../os_settings.gni")
 
 js_type_check("closure_compile_module") {
   closure_flags = os_settings_closure_flags
   is_polymer3 = true
   deps = [
-    ":bluetooth_device_list_item.m",
-    ":bluetooth_page.m",
-    ":bluetooth_subpage.m",
+    ":bluetooth_device_list_item",
+    ":bluetooth_page",
+    ":bluetooth_subpage",
   ]
 }
 
-js_library("bluetooth_device_list_item.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.m.js" ]
+js_library("bluetooth_device_list_item") {
   deps = [
     "//services/device/public/mojom:mojom_js_library_for_compile",
     "//ui/webui/resources/cr_elements/cr_action_menu:cr_action_menu.m",
@@ -25,13 +24,11 @@
     "//ui/webui/resources/js/cr/ui:focus_row_behavior.m",
   ]
   externs_list = [ "$externs_path/bluetooth.js" ]
-  extra_deps = [ ":bluetooth_device_list_item_module" ]
 }
 
-js_library("bluetooth_page.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.m.js" ]
+js_library("bluetooth_page") {
   deps = [
-    ":bluetooth_subpage.m",
+    ":bluetooth_subpage",
     "..:deep_linking_behavior.m",
     "..:metrics_recorder.m",
     "..:os_route.m",
@@ -46,11 +43,9 @@
     "$externs_path/bluetooth.js",
     "$externs_path/bluetooth_private.js",
   ]
-  extra_deps = [ ":bluetooth_page_module" ]
 }
 
-js_library("bluetooth_subpage.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.m.js" ]
+js_library("bluetooth_subpage") {
   deps = [
     "..:deep_linking_behavior.m",
     "..:metrics_recorder.m",
@@ -68,40 +63,12 @@
     "$externs_path/bluetooth.js",
     "$externs_path/bluetooth_private.js",
   ]
-  extra_deps = [ ":bluetooth_subpage_module" ]
 }
 
-group("polymer3_elements") {
-  public_deps = [
-    ":bluetooth_device_list_item_module",
-    ":bluetooth_page_module",
-    ":bluetooth_subpage_module",
+html_to_js("web_components") {
+  js_files = [
+    "bluetooth_device_list_item.js",
+    "bluetooth_page.js",
+    "bluetooth_subpage.js",
   ]
 }
-
-polymer_modulizer("bluetooth_device_list_item") {
-  js_file = "bluetooth_device_list_item.js"
-  html_file = "bluetooth_device_list_item.html"
-  html_type = "dom-module"
-  migrated_imports = os_settings_migrated_imports
-  namespace_rewrites = os_settings_namespace_rewrites
-  auto_imports = os_settings_auto_imports
-}
-
-polymer_modulizer("bluetooth_page") {
-  js_file = "bluetooth_page.js"
-  html_file = "bluetooth_page.html"
-  html_type = "dom-module"
-  migrated_imports = os_settings_migrated_imports
-  namespace_rewrites = os_settings_namespace_rewrites
-  auto_imports = os_settings_auto_imports
-}
-
-polymer_modulizer("bluetooth_subpage") {
-  js_file = "bluetooth_subpage.js"
-  html_file = "bluetooth_subpage.html"
-  html_type = "dom-module"
-  migrated_imports = os_settings_migrated_imports
-  namespace_rewrites = os_settings_namespace_rewrites
-  auto_imports = os_settings_auto_imports
-}
diff --git a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.html b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.html
index 3d2be7c6..42377ca 100644
--- a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.html
+++ b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.html
@@ -1,68 +1,52 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
+<style include="settings-shared">
+  .name[connected] {
+    font-weight: 500;
+  }
 
-<link rel="import" href="chrome://resources/cr_elements/cr_action_menu/cr_action_menu.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html">
-<link rel="import" href="chrome://resources/cr_elements/icons.html">
-<link rel="import" href="chrome://resources/html/i18n_behavior.html">
-<link rel="import" href="chrome://resources/html/cr/ui/focus_row_behavior.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
-<link rel="import" href="../../chromeos/os_icons.html">
-<link rel="import" href="../../settings_shared_css.html">
-
-<dom-module id="bluetooth-device-list-item">
-  <template>
-    <style include="settings-shared">
-      .name[connected] {
-        font-weight: 500;
-      }
-
-      .state[connected] {
-        color: var(--google-green-500);
-      }
-    </style>
-    <div focus-row-container>
-      <div class="list-item"
-          focus-row-control
-          focus-type="rowWrapper"
-          aria-label$="[[ariaLabel]]"
-          role="button"
-          selectable
-          on-keydown="onKeyDown_"
-          on-click="onClick_">
-        <iron-icon id="deviceIcon" icon="[[getDeviceIcon_(device)]]">
-        </iron-icon>
-        <div class="middle">
-          <div class="name"
-              connected$="[[device.connected]]"
-              aria-hidden="true">
-            [[getDeviceName_(device)]]
-          </div>
-          <div class="state secondary"
-              connected$="[[device.connected]]"
-              hidden$="[[!hasConnectionStatusText_(device)]]">
-            [[getConnectionStatusText_(device)]]
-          </div>
-        </div>
-        <div hidden$="[[!device.paired]]">
-          <cr-icon-button id="menuButton"
-              class="icon-more-vert"
-              focus-row-control
-              focus-type="menuButton"
-              on-click="onMenuButtonTap_"
-              tabindex$="[[tabindex]]"
-              title="$i18n{moreActions}"
-              on-keydown="ignoreEnterKey_"></cr-icon-button>
-        </div>
+  .state[connected] {
+    color: var(--google-green-500);
+  }
+</style>
+<div focus-row-container>
+  <div class="list-item"
+      focus-row-control
+      focus-type="rowWrapper"
+      aria-label$="[[ariaLabel]]"
+      role="button"
+      selectable
+      on-keydown="onKeyDown_"
+      on-click="onClick_">
+    <iron-icon id="deviceIcon" icon="[[getDeviceIcon_(device)]]">
+    </iron-icon>
+    <div class="middle">
+      <div class="name"
+          connected$="[[device.connected]]"
+          aria-hidden="true">
+        [[getDeviceName_(device)]]
+      </div>
+      <div class="state secondary"
+          connected$="[[device.connected]]"
+          hidden$="[[!hasConnectionStatusText_(device)]]">
+        [[getConnectionStatusText_(device)]]
       </div>
     </div>
-    <cr-action-menu id="dotsMenu" role-description="$i18n{menu}">
-      <button class="dropdown-item" on-click="onConnectActionTap_">
-        [[getConnectActionText_(device.connected)]]
-      </button>
-      <button class="dropdown-item" on-click="onRemoveTap_">
-        $i18n{bluetoothRemove}
-      </button>
-    </cr-action-menu>
-  </template>
-  <script src="bluetooth_device_list_item.js"></script>
-</dom-module>
+    <div hidden$="[[!device.paired]]">
+      <cr-icon-button id="menuButton"
+          class="icon-more-vert"
+          focus-row-control
+          focus-type="menuButton"
+          on-click="onMenuButtonTap_"
+          tabindex$="[[tabindex]]"
+          title="$i18n{moreActions}"
+          on-keydown="ignoreEnterKey_"></cr-icon-button>
+    </div>
+  </div>
+</div>
+<cr-action-menu id="dotsMenu" role-description="$i18n{menu}">
+  <button class="dropdown-item" on-click="onConnectActionTap_">
+    [[getConnectActionText_(device.connected)]]
+  </button>
+  <button class="dropdown-item" on-click="onRemoveTap_">
+    $i18n{bluetoothRemove}
+  </button>
+</cr-action-menu>
diff --git a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.js b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.js
index 66fbce9..cbd984db 100644
--- a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.js
+++ b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.js
@@ -6,10 +6,22 @@
  * @fileoverview Polymer element for displaying a bluetooth device in a list.
  */
 
+import '//resources/cr_elements/cr_action_menu/cr_action_menu.m.js';
+import '//resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
+import '//resources/cr_elements/icons.m.js';
+import '//resources/polymer/v3_0/iron-icon/iron-icon.js';
+import '../os_icons.m.js';
+import '../../settings_shared_css.js';
+
+import {FocusRowBehavior} from '//resources/js/cr/ui/focus_row_behavior.m.js';
+import {I18nBehavior} from '//resources/js/i18n_behavior.m.js';
+import {html, Polymer} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
 Polymer({
+  _template: html`{__html_template__}`,
   is: 'bluetooth-device-list-item',
 
-  behaviors: [I18nBehavior, cr.ui.FocusRowBehavior],
+  behaviors: [I18nBehavior, FocusRowBehavior],
 
   properties: {
     /**
diff --git a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.html b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.html
index 6b91431..fceb80b 100644
--- a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.html
+++ b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.html
@@ -1,91 +1,64 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
-
-<link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_toggle/cr_toggle.html">
-<link rel="import" href="chrome://resources/cr_elements/icons.html">
-<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_pref_indicator.html">
-<link rel="import" href="chrome://resources/html/i18n_behavior.html">
-<link rel="import" href="../../chromeos/os_icons.html">
-<link rel="import" href="../../i18n_setup.html">
-<link rel="import" href="../../prefs/prefs.html">
-<link rel="import" href="../../prefs/prefs_behavior.html">
-<link rel="import" href="../deep_linking_behavior.html">
-<link rel="import" href="../metrics_recorder.html">
-<link rel="import" href="../os_route.html">
-<link rel="import" href="../../router.html">
-<link rel="import" href="../../settings_page/settings_animated_pages.html">
-<link rel="import" href="../../settings_page/settings_subpage.html">
-<link rel="import" href="../../settings_shared_css.html">
-<link rel="import" href="bluetooth_subpage.html">
-
-<dom-module id="settings-bluetooth-page">
-  <template>
-    <style include="settings-shared"></style>
-    <settings-animated-pages id="pages" section="bluetooth"
-        focus-config="[[focusConfig_]]">
-      <div route-path="default">
-        <template is="dom-if" if="[[!isSecondaryUser_]]">
-          <div id="bluetoothDevices"
-              class="settings-box two-line first no-padding">
-            <div class="link-wrapper" actionable on-click="onTap_">
-              <iron-icon icon="[[getIcon_(bluetoothToggleState_)]]"></iron-icon>
-              <div class="middle settings-box-text" aria-hidden="true">
-                $i18n{bluetoothPageTitle}
-                <div class="secondary" id="bluetoothSecondary">
-                  [[getOnOffString_(bluetoothToggleState_,
-                  '$i18nPolymer{deviceOn}', '$i18nPolymer{deviceOff}')]]
-                </div>
-              </div>
-              <cr-policy-pref-indicator
-                  icon-aria-label="$i18n{bluetoothPageTitle}"
-                  pref="[[prefs.cros.device.allow_bluetooth]]"
-                  hidden="[[prefs.cros.device.allow_bluetooth.value]]">
-              </cr-policy-pref-indicator>
-              <template is="dom-if" if="[[bluetoothToggleState_]]">
-                <cr-icon-button class="subpage-arrow"
-                    on-click="onSubpageArrowTap_"
-                    aria-label="$i18n{bluetoothPageTitle}"
-                    aria-describedby="bluetoothSecondary"
-                    aria-roledescription="$i18n{subpageArrowRoleDescription}">
-                </cr-icon-button>
-              </template>
-            </div>
-            <div class="separator"></div>
-            <cr-toggle id="enableBluetooth"
-                class="margin-matches-padding"
-                checked="{{bluetoothToggleState_}}"
-                disabled$="[[!isToggleEnabled_(
-                    adapterState_, stateChangeInProgress_)]]"
-                aria-label="$i18n{bluetoothToggleA11yLabel}"
-                deep-link-focus-id$="[[Setting.kBluetoothOnOff]]"
-                on-change="onBluetoothToggledByUser_">
-            </cr-toggle>
-          </div>
-        </template>
-        <template is="dom-if" if="[[isSecondaryUser_]]">
-          <div id="bluetoothDevices" class="settings-box two-line">
-            <iron-icon class="policy" icon="cr:group"></iron-icon>
-            <div class="middle settings-box-text">
-              [[i18n('bluetoothPrimaryUserControlled', primaryUserEmail_)]]
+<style include="settings-shared"></style>
+<settings-animated-pages id="pages" section="bluetooth"
+    focus-config="[[focusConfig_]]">
+  <div route-path="default">
+    <template is="dom-if" if="[[!isSecondaryUser_]]">
+      <div id="bluetoothDevices"
+          class="settings-box two-line first no-padding">
+        <div class="link-wrapper" actionable on-click="onTap_">
+          <iron-icon icon="[[getIcon_(bluetoothToggleState_)]]"></iron-icon>
+          <div class="middle settings-box-text" aria-hidden="true">
+            $i18n{bluetoothPageTitle}
+            <div class="secondary" id="bluetoothSecondary">
+              [[getOnOffString_(bluetoothToggleState_,
+              '$i18nPolymer{deviceOn}', '$i18nPolymer{deviceOff}')]]
             </div>
           </div>
-        </template>
+          <cr-policy-pref-indicator
+              icon-aria-label="$i18n{bluetoothPageTitle}"
+              pref="[[prefs.cros.device.allow_bluetooth]]"
+              hidden="[[prefs.cros.device.allow_bluetooth.value]]">
+          </cr-policy-pref-indicator>
+          <template is="dom-if" if="[[bluetoothToggleState_]]">
+            <cr-icon-button class="subpage-arrow"
+                on-click="onSubpageArrowTap_"
+                aria-label="$i18n{bluetoothPageTitle}"
+                aria-describedby="bluetoothSecondary"
+                aria-roledescription="$i18n{subpageArrowRoleDescription}">
+            </cr-icon-button>
+          </template>
+        </div>
+        <div class="separator"></div>
+        <cr-toggle id="enableBluetooth"
+            class="margin-matches-padding"
+            checked="{{bluetoothToggleState_}}"
+            disabled$="[[!isToggleEnabled_(
+                adapterState_, stateChangeInProgress_)]]"
+            aria-label="$i18n{bluetoothToggleA11yLabel}"
+            deep-link-focus-id$="[[Setting.kBluetoothOnOff]]"
+            on-change="onBluetoothToggledByUser_">
+        </cr-toggle>
       </div>
-
-      <template is="dom-if" route-path="/bluetoothDevices">
-        <settings-subpage associated-control="[[$$('#bluetoothDevices')]]"
-            page-title="$i18n{bluetoothPageTitle}">
-          <settings-bluetooth-subpage
-              adapter-state="[[adapterState_]]"
-              bluetooth-toggle-state="{{bluetoothToggleState_}}"
-              state-change-in-progress="[[stateChangeInProgress_]]"
-              bluetooth="[[bluetooth]]"
-              bluetooth-private="[[bluetoothPrivate]]">
-          </settings-bluetooth-subpage>
-        </settings-subpage>
-      </template>
-
-    </settings-animated-pages>
+    </template>
+    <template is="dom-if" if="[[isSecondaryUser_]]">
+      <div id="bluetoothDevices" class="settings-box two-line">
+        <iron-icon class="policy" icon="cr:group"></iron-icon>
+        <div class="middle settings-box-text">
+          [[i18n('bluetoothPrimaryUserControlled', primaryUserEmail_)]]
+        </div>
+      </div>
+    </template>
+  </div>
+  <template is="dom-if" route-path="/bluetoothDevices">
+    <settings-subpage associated-control="[[$$('#bluetoothDevices')]]"
+        page-title="$i18n{bluetoothPageTitle}">
+      <settings-bluetooth-subpage
+          adapter-state="[[adapterState_]]"
+          bluetooth-toggle-state="{{bluetoothToggleState_}}"
+          state-change-in-progress="[[stateChangeInProgress_]]"
+          bluetooth="[[bluetooth]]"
+          bluetooth-private="[[bluetoothPrivate]]">
+      </settings-bluetooth-subpage>
+    </settings-subpage>
   </template>
-  <script src="bluetooth_page.js"></script>
-</dom-module>
+</settings-animated-pages>
diff --git a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.js b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.js
index 18de73c..267a61b 100644
--- a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.js
+++ b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.js
@@ -8,7 +8,7 @@
  * just provodes a summary and link to the subpage.
  */
 
-/* #export */ const bluetoothApis = window['bluetoothApis'] || {
+export const bluetoothApis = window['bluetoothApis'] || {
   /**
    * Set this to provide a fake implementation for testing.
    * @type {Bluetooth}
@@ -22,14 +22,35 @@
   bluetoothPrivateApiForTest: null,
 };
 
+import {Polymer, html} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import '//resources/cr_elements/cr_icon_button/cr_icon_button.m.js';
+import '//resources/cr_elements/cr_toggle/cr_toggle.m.js';
+import '//resources/cr_elements/icons.m.js';
+import '//resources/cr_elements/policy/cr_policy_pref_indicator.m.js';
+import {I18nBehavior} from '//resources/js/i18n_behavior.m.js';
+import '../os_icons.m.js';
+import {loadTimeData} from '../../i18n_setup.js';
+import '../../prefs/prefs.js';
+import {PrefsBehavior} from '../../prefs/prefs_behavior.js';
+import {DeepLinkingBehavior} from '../deep_linking_behavior.m.js';
+import {recordSettingChange} from '../metrics_recorder.m.js';
+import {routes} from '../os_route.m.js';
+import {Router, Route, RouteObserverBehavior} from '../../router.js';
+import '../../settings_page/settings_animated_pages.js';
+import '../../settings_page/settings_subpage.js';
+import '../../settings_shared_css.js';
+import './bluetooth_subpage.js';
+
 Polymer({
+  _template: html`{__html_template__}`,
   is: 'settings-bluetooth-page',
 
   behaviors: [
     I18nBehavior,
     DeepLinkingBehavior,
     PrefsBehavior,
-    settings.RouteObserverBehavior,
+    RouteObserverBehavior,
   ],
 
   properties: {
@@ -76,9 +97,9 @@
       type: Object,
       value() {
         const map = new Map();
-        if (settings.routes.BLUETOOTH_DEVICES) {
+        if (routes.BLUETOOTH_DEVICES) {
           map.set(
-              settings.routes.BLUETOOTH_DEVICES.path,
+              routes.BLUETOOTH_DEVICES.path,
               '#bluetoothDevices .subpage-arrow');
         }
         return map;
@@ -178,14 +199,14 @@
   },
 
   /**
-   * settings.RouteObserverBehavior
-   * @param {!settings.Route} newRoute
-   * @param {!settings.Route} oldRoute
+   * RouteObserverBehavior
+   * @param {!Route} newRoute
+   * @param {!Route} oldRoute
    * @protected
    */
   currentRouteChanged(newRoute, oldRoute) {
     // Does not apply to this page.
-    if (newRoute !== settings.routes.BLUETOOTH) {
+    if (newRoute !== routes.BLUETOOTH) {
       return;
     }
 
@@ -245,7 +266,7 @@
    */
   onBluetoothToggledByUser_() {
     // Record that the user manually enabled/disabled Bluetooth.
-    settings.recordSettingChange(
+    recordSettingChange(
         chromeos.settings.mojom.Setting.kBluetoothOnOff,
         {boolValue: this.bluetoothToggleState_});
   },
@@ -297,6 +318,6 @@
 
   /** @private */
   openSubpage_() {
-    settings.Router.getInstance().navigateTo(settings.routes.BLUETOOTH_DEVICES);
+    Router.getInstance().navigateTo(routes.BLUETOOTH_DEVICES);
   }
 });
diff --git a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.html b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.html
index 750b2a6..64e0d91 100644
--- a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.html
+++ b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.html
@@ -1,135 +1,105 @@
-<link rel="import" href="chrome://resources/html/polymer.html">
+<style include="cr-shared-style settings-shared iron-flex">
+  .container {
+    display: flex;
+    flex-direction: column;
+    min-height: 10px;
+    overflow-y: auto;
+  }
 
-<link rel="import" href="chrome://resources/cr_components/chromeos/bluetooth/bluetooth_dialog.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_scrollable_behavior.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_toggle/cr_toggle.html">
-<link rel="import" href="chrome://resources/cr_elements/shared_style_css.html">
-<link rel="import" href="chrome://resources/html/i18n_behavior.html">
-<link rel="import" href="chrome://resources/html/list_property_update_behavior.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-list/iron-list.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-spinner/paper-spinner-lite.html">
-<link rel="import" href="../../i18n_setup.html">
-<link rel="import" href="../deep_linking_behavior.html">
-<link rel="import" href="../os_route.html">
-<link rel="import" href="../../router.html">
-<link rel="import" href="../../settings_shared_css.html">
-<link rel="import" href="../metrics_recorder.html">
-<link rel="import" href="bluetooth_device_list_item.html">
+  paper-spinner-lite {
+    height: var(--cr-icon-size);
+    margin-block-start: 18px; /* Align with h2. */
+    width: var(--cr-icon-size);
+  }
 
-<dom-module id="settings-bluetooth-subpage">
-  <template>
-    <style include="cr-shared-style settings-shared iron-flex">
-      .container {
-        display: flex;
-        flex-direction: column;
-        min-height: 10px;
-        overflow-y: auto;
-      }
+  #onOff {
+    font-weight: 500;
+  }
 
-      paper-spinner-lite {
-        height: var(--cr-icon-size);
-        margin-block-start: 18px; /* Align with h2. */
-        width: var(--cr-icon-size);
-      }
-
-      #onOff {
-        font-weight: 500;
-      }
-
-      #onOff[on] {
-        color: var(--cr-toggle-color);
-      }
-
-      /* Disables click events on #enableBluetooth during a state change.
-       * This is added in lieu of disabling #enableToggle to prevent
-       * transient disables from state changes to be varbalized by ChromeVox
-       * (see http://crbug/1007378 for more details). */
-      :host([state-change-in-progress]) #enableBluetooth {
-        cursor: initial;
-        opacity: var(--cr-disabled-opacity);
-        pointer-events: none;
-      }
-    </style>
-
-    <div id="enableBluetooth" class="cr-row first" on-click="onEnableTap_"
-        actionable>
-      <div id="onOff" class="flex cr-padded-text"
-          on$="[[bluetoothToggleState]]" aria-hidden="true">
-        [[getOnOffString_(bluetoothToggleState,
-          '$i18nPolymer{deviceOn}', '$i18nPolymer{deviceOff}')]]
-      </div>
-      <cr-toggle id="enableToggle"
-          checked="{{bluetoothToggleState}}"
-          disabled$="[[!isAdapterAvailable_(adapterState)]]"
-          aria-label="$i18n{bluetoothToggleA11yLabel}"
-          deep-link-focus-id$="[[Setting.kBluetoothOnOff]]">
-      </cr-toggle>
-    </div>
-
-    <!-- Paired device list -->
-    <div class="cr-row first" hidden="[[!bluetoothToggleState]]">
-      <h2 class="flex">$i18n{bluetoothDeviceListPaired}</h2>
-    </div>
-    <div id="noPairedDevices" class="list-frame cr-padded-text"
-        hidden="[[!showNoDevices_(bluetoothToggleState, pairedDeviceList_,
-            pairedDeviceList_.splices)]]">
-      $i18n{bluetoothNoDevices}
-    </div>
-    <div id="pairedContainer" class="container list-frame"
-        scrollable on-device-event="onDeviceEvent_"
-        hidden="[[!showDevices_(bluetoothToggleState, pairedDeviceList_,
-            pairedDeviceList_.splices)]]">
-      <iron-list id="pairedDevices" items="[[pairedDeviceList_]]"
-          scroll-target="pairedContainer" class="cr-separators" preserve-focus>
-        <template>
-          <bluetooth-device-list-item actionable device="[[item]]"
-              first$="[[!index]]" tabindex$="[[tabIndex]]"
-              focus-row-index="[[index]]" iron-list-tab-index="[[tabIndex]]"
-              last-focused="{{lastFocused_}}" list-blurred="{{listBlurred_}}"
-              deep-link-focus-id$="[[Setting.kBluetoothConnectToDevice]]
-                  [[Setting.kBluetoothDisconnectFromDevice]]
-                  [[Setting.kBluetoothUnpairDevice]]">
-          </bluetooth-device-list-item>
-        </template>
-      </iron-list>
-    </div>
-
-    <!-- Unpaired device list -->
-    <div class="cr-row first" hidden="[[!bluetoothToggleState]]">
-      <h2 class="flex">$i18n{bluetoothDeviceListUnpaired}</h2>
-      <paper-spinner-lite active="[[showSpinner_]]">
-      </paper-spinner-lite>
-    </div>
-    <div id="noUnpairedDevices" class="list-frame cr-padded-text"
-        hidden="[[!showNoDevices_(bluetoothToggleState, unpairedDeviceList_,
-            unpairedDeviceList_.splices)]]">
-      $i18n{bluetoothNoDevicesFound}
-    </div>
-    <div id="unpairedContainer" class="container list-frame"
-        scrollable on-device-event="onDeviceEvent_"
-        hidden="[[!showDevices_(bluetoothToggleState, unpairedDeviceList_,
-            unpairedDeviceList_.splices)]]">
-      <iron-list id="unpairedDevices" class="cr-separators"
-          preserve-focus items="[[unpairedDeviceList_]]"
-          scroll-target="unpairedContainer">
-        <template>
-          <bluetooth-device-list-item actionable device="[[item]]"
-              first$="[[!index]]" tabindex$="[[tabIndex]]"
-              deep-link-focus-id$="[[Setting.kBluetoothPairDevice]]">
-          </bluetooth-device-list-item>
-        </template>
-      </iron-list>
-    </div>
-
-    <bluetooth-dialog id="deviceDialog"
-        bluetooth="[[bluetooth]]"
-        bluetooth-private="[[bluetoothPrivate]]"
-        dialog-title="$i18n{bluetoothPairDevicePageTitle}"
-        on-close="onDialogClose_"
-        pairing-device="[[pairingDevice_]]">
-    </bluetooth-dialog>
-
-  </template>
-  <script src="bluetooth_subpage.js"></script>
-</dom-module>
+  #onOff[on] {
+    color: var(--cr-toggle-color);
+  }
+  /* Disables click events on #enableBluetooth during a state change.
+   * This is added in lieu of disabling #enableToggle to prevent
+   * transient disables from state changes to be varbalized by ChromeVox
+   * (see http://crbug/1007378 for more details). */
+  :host([state-change-in-progress]) #enableBluetooth {
+    cursor: initial;
+    opacity: var(--cr-disabled-opacity);
+    pointer-events: none;
+  }
+</style>
+<div id="enableBluetooth" class="cr-row first" on-click="onEnableTap_"
+    actionable>
+  <div id="onOff" class="flex cr-padded-text"
+      on$="[[bluetoothToggleState]]" aria-hidden="true">
+    [[getOnOffString_(bluetoothToggleState,
+      '$i18nPolymer{deviceOn}', '$i18nPolymer{deviceOff}')]]
+  </div>
+  <cr-toggle id="enableToggle"
+      checked="{{bluetoothToggleState}}"
+      disabled$="[[!isAdapterAvailable_(adapterState)]]"
+      aria-label="$i18n{bluetoothToggleA11yLabel}"
+      deep-link-focus-id$="[[Setting.kBluetoothOnOff]]">
+  </cr-toggle>
+</div>
+<!-- Paired device list -->
+<div class="cr-row first" hidden="[[!bluetoothToggleState]]">
+  <h2 class="flex">$i18n{bluetoothDeviceListPaired}</h2>
+</div>
+<div id="noPairedDevices" class="list-frame cr-padded-text"
+    hidden="[[!showNoDevices_(bluetoothToggleState, pairedDeviceList_,
+        pairedDeviceList_.splices)]]">
+  $i18n{bluetoothNoDevices}
+</div>
+<div id="pairedContainer" class="container list-frame"
+    scrollable on-device-event="onDeviceEvent_"
+    hidden="[[!showDevices_(bluetoothToggleState, pairedDeviceList_,
+        pairedDeviceList_.splices)]]">
+  <iron-list id="pairedDevices" items="[[pairedDeviceList_]]"
+      scroll-target="pairedContainer" class="cr-separators" preserve-focus>
+    <template>
+      <bluetooth-device-list-item actionable device="[[item]]"
+          first$="[[!index]]" tabindex$="[[tabIndex]]"
+          focus-row-index="[[index]]" iron-list-tab-index="[[tabIndex]]"
+          last-focused="{{lastFocused_}}" list-blurred="{{listBlurred_}}"
+          deep-link-focus-id$="[[Setting.kBluetoothConnectToDevice]]
+              [[Setting.kBluetoothDisconnectFromDevice]]
+              [[Setting.kBluetoothUnpairDevice]]">
+      </bluetooth-device-list-item>
+    </template>
+  </iron-list>
+</div>
+<!-- Unpaired device list -->
+<div class="cr-row first" hidden="[[!bluetoothToggleState]]">
+  <h2 class="flex">$i18n{bluetoothDeviceListUnpaired}</h2>
+  <paper-spinner-lite active="[[showSpinner_]]">
+  </paper-spinner-lite>
+</div>
+<div id="noUnpairedDevices" class="list-frame cr-padded-text"
+    hidden="[[!showNoDevices_(bluetoothToggleState, unpairedDeviceList_,
+        unpairedDeviceList_.splices)]]">
+  $i18n{bluetoothNoDevicesFound}
+</div>
+<div id="unpairedContainer" class="container list-frame"
+    scrollable on-device-event="onDeviceEvent_"
+    hidden="[[!showDevices_(bluetoothToggleState, unpairedDeviceList_,
+        unpairedDeviceList_.splices)]]">
+  <iron-list id="unpairedDevices" class="cr-separators"
+      preserve-focus items="[[unpairedDeviceList_]]"
+      scroll-target="unpairedContainer">
+    <template>
+      <bluetooth-device-list-item actionable device="[[item]]"
+          first$="[[!index]]" tabindex$="[[tabIndex]]"
+          deep-link-focus-id$="[[Setting.kBluetoothPairDevice]]">
+      </bluetooth-device-list-item>
+    </template>
+  </iron-list>
+</div>
+<bluetooth-dialog id="deviceDialog"
+    bluetooth="[[bluetooth]]"
+    bluetooth-private="[[bluetoothPrivate]]"
+    dialog-title="$i18n{bluetoothPairDevicePageTitle}"
+    on-close="onDialogClose_"
+    pairing-device="[[pairingDevice_]]">
+</bluetooth-dialog>
diff --git a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.js b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.js
index 5dc8636..248331b1 100644
--- a/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.js
+++ b/chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.js
@@ -14,7 +14,27 @@
  *  properties and devices.
  */
 
+import {Polymer, html, flush} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import '//resources/cr_components/chromeos/bluetooth/bluetooth_dialog.m.js';
+import {CrScrollableBehavior} from '//resources/cr_elements/cr_scrollable_behavior.m.js';
+import '//resources/cr_elements/cr_toggle/cr_toggle.m.js';
+import '//resources/cr_elements/shared_style_css.m.js';
+import {I18nBehavior} from '//resources/js/i18n_behavior.m.js';
+import {ListPropertyUpdateBehavior} from '//resources/js/list_property_update_behavior.m.js';
+import '//resources/polymer/v3_0/iron-flex-layout/iron-flex-layout-classes.js';
+import '//resources/polymer/v3_0/iron-list/iron-list.js';
+import '//resources/polymer/v3_0/paper-spinner/paper-spinner-lite.js';
+import {loadTimeData} from '../../i18n_setup.js';
+import {DeepLinkingBehavior} from '../deep_linking_behavior.m.js';
+import {routes} from '../os_route.m.js';
+import {Router, Route, RouteObserverBehavior} from '../../router.js';
+import '../../settings_shared_css.js';
+import {recordSettingChange} from '../metrics_recorder.m.js';
+import './bluetooth_device_list_item.js';
+
 Polymer({
+  _template: html`{__html_template__}`,
   is: 'settings-bluetooth-subpage',
 
   behaviors: [
@@ -22,7 +42,7 @@
     CrScrollableBehavior,
     DeepLinkingBehavior,
     ListPropertyUpdateBehavior,
-    settings.RouteObserverBehavior,
+    RouteObserverBehavior,
   ],
 
   properties: {
@@ -224,8 +244,8 @@
   },
 
   /**
-   * settings.RouteObserverBehavior
-   * @param {!settings.Route} route
+   * RouteObserverBehavior
+   * @param {!Route} route
    * @protected
    */
   currentRouteChanged(route) {
@@ -235,7 +255,7 @@
     this.startOrStopRefreshingDeviceList_();
 
     // Does not apply to this page.
-    if (route !== settings.routes.BLUETOOTH_DEVICES) {
+    if (route !== routes.BLUETOOTH_DEVICES) {
       return;
     }
 
@@ -315,8 +335,7 @@
     if (!this.adapterState || !this.adapterState.powered) {
       return;
     }
-    if (settings.Router.getInstance().getCurrentRoute() ===
-        settings.routes.BLUETOOTH_DEVICES) {
+    if (Router.getInstance().getCurrentRoute() === routes.BLUETOOTH_DEVICES) {
       this.startDiscovery_();
     } else {
       this.stopDiscovery_();
@@ -475,7 +494,7 @@
         this.$.deviceDialog.close();
       }
     });
-    settings.recordSettingChange();
+    recordSettingChange();
   },
 
   /**
@@ -490,7 +509,7 @@
             chrome.runtime.lastError.message);
       }
     });
-    settings.recordSettingChange();
+    recordSettingChange();
   },
 
   /**
@@ -505,7 +524,7 @@
             chrome.runtime.lastError.message);
       }
     });
-    settings.recordSettingChange();
+    recordSettingChange();
   },
 
   /** @private */
@@ -514,7 +533,7 @@
       return;
     }
     // Call flush so that the dialog gets sized correctly before it is opened.
-    Polymer.dom.flush();
+    flush();
     this.$.deviceDialog.open();
     this.dialogShown_ = true;
   },
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
index 4b4f4160..114478bf2 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
@@ -69,6 +69,7 @@
   deps = [
     "//chrome/browser/resources/settings:router",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+    "//ui/webui/resources/cr_components/chromeos/cellular_setup:esim_manager_listener_behavior.m",
     "//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider.m",
     "//ui/webui/resources/cr_components/chromeos/network:onc_mojo.m",
     "//ui/webui/resources/cr_elements/cr_icon_button:cr_icon_button.m",
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/cellular_networks_list.html b/chrome/browser/resources/settings/chromeos/internet_page/cellular_networks_list.html
index 2deb6ce..096c027 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/cellular_networks_list.html
+++ b/chrome/browser/resources/settings/chromeos/internet_page/cellular_networks_list.html
@@ -41,8 +41,6 @@
         align-items: center;
         display: flex;
         height: 72px;
-        padding-bottom: 16px;
-        padding-top: 16px;
       }
 
       .esim-list-title {
@@ -102,8 +100,7 @@
     <template is="dom-if" if="[[shouldShowEsimSection_(euicc_,
         cellularDeviceState, cellularDeviceState.*)]]" restamp>
       <div class="cellular-network-list-separator"></div>
-        <div class="cellular-network-list-header esim-list-header
-            flex settings-box-text">
+        <div class="cellular-network-list-header flex settings-box-text">
           <div class="flex-column">
             <div class="flex header-row">
               $i18n{cellularNetworkEsimLabel}
@@ -204,7 +201,7 @@
     <template is="dom-if"
         if="[[shouldShowTetherSection_(multiDevicePageContentData_)]]" restamp>
       <div class="cellular-network-list-separator"></div>
-      <div class="cellular-network-list-header">
+      <div class="cellular-network-list-header settings-box-text">
         $i18n{cellularNetworkTetherLabel}
       </div>
       <template is="dom-if"
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/cellular_setup_dialog.html b/chrome/browser/resources/settings/chromeos/internet_page/cellular_setup_dialog.html
index 95f23fb5..117bdbe 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/cellular_setup_dialog.html
+++ b/chrome/browser/resources/settings/chromeos/internet_page/cellular_setup_dialog.html
@@ -57,13 +57,12 @@
             [[dialogTitle_]]
           </div>
         </template>
-        <div id="header">
-          $i18n{cellularSetupDialogTitle}
-        </div>
+        <div id="header">[[getDialogHeader_(dialogHeader_)]]</div>
       </div>
       <div slot="body">
         <cellular-setup
             flow-title="{{dialogTitle_}}"
+            flow-header="{{dialogHeader_}}"
             delegate="[[delegate_]]"
             current-page-name="[[pageName]]">
         </cellular-setup>
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/cellular_setup_dialog.js b/chrome/browser/resources/settings/chromeos/internet_page/cellular_setup_dialog.js
index 4915e293..24820a8 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/cellular_setup_dialog.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/cellular_setup_dialog.js
@@ -9,6 +9,8 @@
 Polymer({
   is: 'os-settings-cellular-setup-dialog',
 
+  behaviors: [I18nBehavior],
+
   properties: {
 
     /**
@@ -25,7 +27,11 @@
     /*** @private */
     dialogTitle_: {
       type: String,
-      notify: true,
+    },
+
+    /*** @private */
+    dialogHeader_: {
+      type: String,
     },
   },
 
@@ -56,4 +62,16 @@
   shouldShowDialogTitle_(title) {
     return !!this.dialogTitle_;
   },
+
+  /**
+   * @return {string}
+   * @private
+   */
+  getDialogHeader_() {
+    if (this.dialogHeader_) {
+      return this.dialogHeader_;
+    }
+
+    return this.i18n('cellularSetupDialogTitle');
+  },
 });
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.html b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.html
index 4e19166d..e1288b6 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.html
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.html
@@ -2,6 +2,7 @@
 
 <link rel="import" href="chrome://resources/cr_components/chromeos/network/mojo_interface_provider.html">
 <link rel="import" href="chrome://resources/cr_components/chromeos/network/onc_mojo.html">
+<link rel="import" href="chrome://resources/cr_components/chromeos/cellular_setup/esim_manager_listener_behavior.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_action_menu/cr_action_menu.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html">
 <link rel="import" href="chrome://resources/cr_elements/cr_lazy_render/cr_lazy_render.html">
@@ -26,7 +27,7 @@
       }
     </style>
     <template is="dom-if"
-        if="[[shouldShowDotsMenuButton_(networkState_, isGuest_)]]" restamp>
+        if="[[shouldShowDotsMenuButton_(eSimNetworkState_, isGuest_)]]" restamp>
       <cr-icon-button class="icon-more-vert"
           title="$i18n{moreActions}"
           id="moreNetworkDetail"
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.js
index 5c43fd7..5a06106 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.js
@@ -13,6 +13,7 @@
   // to show the actions for search result.
   behaviors: [
     settings.RouteObserverBehavior,
+    ESimManagerListenerBehavior,
   ],
 
   properties: {
@@ -22,8 +23,11 @@
      */
     deviceState: Object,
 
-    /** @private {?OncMojo.NetworkStateProperties} */
-    networkState_: {
+    /**
+     * Null if current network on network detail page is not an eSIM network.
+     * @private {?OncMojo.NetworkStateProperties}
+     */
+    eSimNetworkState_: {
       type: Object,
       value: null,
     },
@@ -43,6 +47,12 @@
         return loadTimeData.getBoolean('isGuest');
       },
     },
+
+    /** @private*/
+    guid_: {
+      type: String,
+      value: '',
+    }
   },
 
   /**
@@ -52,11 +62,12 @@
    * @protected
    */
   currentRouteChanged(route, oldRoute) {
+    this.eSimNetworkState_ = null;
+    this.guid_ = '';
     if (route !== settings.routes.NETWORK_DETAIL ||
         !this.isUpdatedCellularUiEnabled_) {
       return;
     }
-    this.networkState_ = null;
 
     // Check if the current network is Cellular using the GUID in the
     // current route. We can't use the 'type' parameter in the url
@@ -68,16 +79,35 @@
       console.error('No guid specified for page:' + route);
       return;
     }
+    this.guid_ = guid;
+
+    // Needed to set initial eSimNetworkState_.
+    this.setESimNetworkState_();
+  },
+
+  /**
+   * ESimManagerListenerBehavior override
+   * @param {!chromeos.cellularSetup.mojom.ESimProfileRemote} profile
+   */
+  onProfileChanged(profile) {
+    this.setESimNetworkState_();
+  },
+
+  /**
+   * Gets and sets current eSIM network state.
+   * @private
+   */
+  setESimNetworkState_() {
     const networkConfig = network_config.MojoInterfaceProviderImpl.getInstance()
                               .getMojoServiceRemote();
-    networkConfig.getNetworkState(guid).then(response => {
+    networkConfig.getNetworkState(this.guid_).then(response => {
       if (response.result.type !==
               chromeos.networkConfig.mojom.NetworkType.kCellular ||
           !response.result.typeState.cellular.eid ||
           !response.result.typeState.cellular.iccid) {
         return;
       }
-      this.networkState_ = response.result;
+      this.eSimNetworkState_ = response.result;
     });
   },
 
@@ -105,9 +135,9 @@
       return false;
     }
 
-    // Show if |this.networkState_| has been fetched. Note that this only occurs
-    // if this is a cellular network with an ICCID.
-    return !!this.networkState_;
+    // Show if |this.eSimNetworkState_| has been fetched. Note that this only
+    // occurs if this is a cellular network with an ICCID.
+    return !!this.eSimNetworkState_;
   },
 
   /**
@@ -128,7 +158,8 @@
   onRenameESimProfileTap_(e) {
     this.closeMenu_();
     this.fire(
-        'show-esim-profile-rename-dialog', {networkState: this.networkState_});
+        'show-esim-profile-rename-dialog',
+        {networkState: this.eSimNetworkState_});
   },
 
   /**
@@ -138,7 +169,8 @@
   onRemoveESimProfileTap_(e) {
     this.closeMenu_();
     this.fire(
-        'show-esim-remove-profile-dialog', {networkState: this.networkState_});
+        'show-esim-remove-profile-dialog',
+        {networkState: this.eSimNetworkState_});
   },
 
   /** @private */
diff --git a/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.html b/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.html
index 80f03b9..74838ec 100644
--- a/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.html
+++ b/chrome/browser/resources/settings/chromeos/os_search_page/os_search_page.html
@@ -40,9 +40,11 @@
     <settings-animated-pages id="pages" section="osSearch"
         focus-config="[[focusConfig_]]">
       <div route-path="default">
-        <settings-search-engine
-            deep-link-focus-id$="[[Setting.kPreferredSearchEngine]]">
-        </settings-search-engine>
+        <template is="dom-if" if="[[!shouldShowQuickAnswersSettings_]]">
+          <settings-search-engine
+              deep-link-focus-id$="[[Setting.kPreferredSearchEngine]]">
+          </settings-search-engine>
+        </template>
         <template is="dom-if" if="[[shouldShowQuickAnswersSettings_]]">
           <cr-link-row id="search"
               id="searchSubpageTrigger"
diff --git a/chrome/browser/resources/settings/chromeos/os_search_page/search_subpage.html b/chrome/browser/resources/settings/chromeos/os_search_page/search_subpage.html
index 5dd0d61..31b7996 100644
--- a/chrome/browser/resources/settings/chromeos/os_search_page/search_subpage.html
+++ b/chrome/browser/resources/settings/chromeos/os_search_page/search_subpage.html
@@ -20,11 +20,15 @@
 <link rel="import" href="../../settings_vars_css.html">
 <link rel="import" href="../deep_linking_behavior.html">
 <link rel="import" href="../os_route.html">
+<link rel="import" href="search_engine.html">
 
 <dom-module id="settings-search-subpage">
   <template>
     <style include="cr-shared-style settings-shared">
     </style>
+    <settings-search-engine
+        deep-link-focus-id$="[[Setting.kPreferredSearchEngine]]">
+    </settings-search-engine>
     <settings-toggle-button id="quick-answers-enable"
         class="hr"
         pref="{{prefs.settings.quick_answers.enabled}}"
diff --git a/chrome/browser/resources/settings/chromeos/os_search_page/search_subpage.js b/chrome/browser/resources/settings/chromeos/os_search_page/search_subpage.js
index 41556390..4ba1732 100644
--- a/chrome/browser/resources/settings/chromeos/os_search_page/search_subpage.js
+++ b/chrome/browser/resources/settings/chromeos/os_search_page/search_subpage.js
@@ -23,6 +23,7 @@
     supportedSettingIds: {
       type: Object,
       value: () => new Set([
+        chromeos.settings.mojom.Setting.kPreferredSearchEngine,
         chromeos.settings.mojom.Setting.kQuickAnswersOnOff,
       ]),
     },
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.gni b/chrome/browser/resources/settings/chromeos/os_settings.gni
index 397b0e0..0140a18 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings.gni
+++ b/chrome/browser/resources/settings/chromeos/os_settings.gni
@@ -288,6 +288,9 @@
   "chrome/browser/resources/settings/a11y_page/captions_subpage.html",
   "chrome/browser/resources/settings/about_page/about_page_browser_proxy.html",
   "chrome/browser/resources/settings/appearance_page/fonts_browser_proxy.html",
+  "chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_device_list_item.html",
+  "chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_page.html",
+  "chrome/browser/resources/settings/chromeos/bluetooth_page/bluetooth_subpage.html",
   "chrome/browser/resources/settings/chromeos/google_assistant_page/google_assistant_page.html",
   "chrome/browser/resources/settings/chromeos/guest_os/guest_os_shared_paths.html",
   "chrome/browser/resources/settings/chromeos/guest_os/guest_os_shared_usb_devices.html",
diff --git a/chrome/browser/resources/settings/chromeos/os_settings.js b/chrome/browser/resources/settings/chromeos/os_settings.js
index 3f284df..4b6b4395 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings.js
+++ b/chrome/browser/resources/settings/chromeos/os_settings.js
@@ -4,9 +4,9 @@
 
 import '../prefs/prefs.js';
 import './ambient_mode_page/ambient_mode_page.m.js';
-import './bluetooth_page/bluetooth_device_list_item.m.js';
-import './bluetooth_page/bluetooth_page.m.js';
-import './bluetooth_page/bluetooth_subpage.m.js';
+import './bluetooth_page/bluetooth_device_list_item.js';
+import './bluetooth_page/bluetooth_page.js';
+import './bluetooth_page/bluetooth_subpage.js';
 import './device_page/device_page.m.js';
 import './device_page/display.m.js';
 import './device_page/display_layout.m.js';
@@ -94,7 +94,7 @@
 export {NearbySettings, NearbyShareSettingsBehavior} from '../shared/nearby_share_settings_behavior.m.js';
 export {AmbientModeBrowserProxyImpl} from './ambient_mode_page/ambient_mode_browser_proxy.m.js';
 export {AmbientModeTemperatureUnit, AmbientModeTopicSource} from './ambient_mode_page/constants.m.js';
-export {bluetoothApis} from './bluetooth_page/bluetooth_page.m.js';
+export {bluetoothApis} from './bluetooth_page/bluetooth_page.js';
 export {DevicePageBrowserProxy, DevicePageBrowserProxyImpl, IdleBehavior, LidClosedBehavior, NoteAppLockScreenSupport, setDisplayApiForTesting, StorageSpaceState} from './device_page/device_page_browser_proxy.m.js';
 export {GoogleAssistantBrowserProxyImpl} from './google_assistant_page/google_assistant_browser_proxy.js';
 export {ConsentStatus, DspHotwordState} from './google_assistant_page/google_assistant_page.js';
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/os_settings_page/BUILD.gn
index 40f5426e2..a83397a0 100644
--- a/chrome/browser/resources/settings/chromeos/os_settings_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/os_settings_page/BUILD.gn
@@ -27,7 +27,7 @@
     "../..:router",
     "../..:search_settings",
     "../../settings_page:settings_section",
-    "../bluetooth_page:bluetooth_page.m",
+    "../bluetooth_page:bluetooth_page",
     "../crostini_page:crostini_page.m",
     "../device_page:device_page.m",
     "../kerberos_page:kerberos_page.m",
diff --git a/chrome/browser/search/most_visited_iframe_source.cc b/chrome/browser/search/most_visited_iframe_source.cc
index f5409d2..7800972 100644
--- a/chrome/browser/search/most_visited_iframe_source.cc
+++ b/chrome/browser/search/most_visited_iframe_source.cc
@@ -10,7 +10,7 @@
 #include "build/build_config.h"
 #include "chrome/browser/search/instant_service.h"
 #include "chrome/common/url_constants.h"
-#include "chrome/grit/local_ntp_resources.h"
+#include "chrome/grit/new_tab_page_instant_resources.h"
 #include "components/search/ntp_features.h"
 #include "content/public/browser/navigation_entry.h"
 #include "content/public/browser/web_contents.h"
@@ -44,11 +44,14 @@
   const std::string path(url.path());
 
   if (path == kTitleHTMLPath) {
-    SendResource(IDR_MOST_VISITED_TITLE_HTML, std::move(callback));
+    SendResource(IDR_NEW_TAB_PAGE_INSTANT_MOST_VISITED_TITLE_HTML,
+                 std::move(callback));
   } else if (path == kTitleCSSPath) {
-    SendResource(IDR_MOST_VISITED_TITLE_CSS, std::move(callback));
+    SendResource(IDR_NEW_TAB_PAGE_INSTANT_MOST_VISITED_TITLE_CSS,
+                 std::move(callback));
   } else if (path == kTitleJSPath) {
-    SendJSWithOrigin(IDR_MOST_VISITED_TITLE_JS, wc_getter, std::move(callback));
+    SendJSWithOrigin(IDR_NEW_TAB_PAGE_INSTANT_MOST_VISITED_TITLE_JS, wc_getter,
+                     std::move(callback));
   } else if (path == kAssertJsPath) {
     SendResource(IDR_WEBUI_JS_ASSERT_JS, std::move(callback));
   } else {
diff --git a/chrome/browser/search/most_visited_iframe_source_unittest.cc b/chrome/browser/search/most_visited_iframe_source_unittest.cc
index eee3f341..556dd27 100644
--- a/chrome/browser/search/most_visited_iframe_source_unittest.cc
+++ b/chrome/browser/search/most_visited_iframe_source_unittest.cc
@@ -10,7 +10,7 @@
 #include "base/memory/ref_counted_memory.h"
 #include "chrome/browser/search/instant_service.h"
 #include "chrome/browser/search/instant_service_factory.h"
-#include "chrome/grit/local_ntp_resources.h"
+#include "chrome/grit/new_tab_page_instant_resources.h"
 #include "chrome/test/base/testing_profile.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/test/browser_task_environment.h"
@@ -150,18 +150,18 @@
 }
 
 TEST_F(MostVisitedIframeSourceTest, SendResource) {
-  SendResource(IDR_MOST_VISITED_TITLE_HTML);
+  SendResource(IDR_NEW_TAB_PAGE_INSTANT_MOST_VISITED_TITLE_HTML);
   EXPECT_FALSE(response_string().empty());
 }
 
 TEST_F(MostVisitedIframeSourceTest, SendJSWithOrigin) {
   source()->set_origin(kInstantOrigin);
-  SendJSWithOrigin(IDR_MOST_VISITED_TITLE_JS);
+  SendJSWithOrigin(IDR_NEW_TAB_PAGE_INSTANT_MOST_VISITED_TITLE_JS);
   EXPECT_FALSE(response_string().empty());
   source()->set_origin(kNonInstantOrigin);
-  SendJSWithOrigin(IDR_MOST_VISITED_TITLE_JS);
+  SendJSWithOrigin(IDR_NEW_TAB_PAGE_INSTANT_MOST_VISITED_TITLE_JS);
   EXPECT_FALSE(response_string().empty());
   source()->set_origin(std::string());
-  SendJSWithOrigin(IDR_MOST_VISITED_TITLE_JS);
+  SendJSWithOrigin(IDR_NEW_TAB_PAGE_INSTANT_MOST_VISITED_TITLE_JS);
   EXPECT_TRUE(response_string().empty());
 }
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java
index b4e4777..e3ec6ff 100644
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextCoordinator.java
@@ -45,13 +45,13 @@
     private final Tab mTab;
     private final ChromeShareExtras mChromeShareExtras;
     private final long mShareStartTime;
-    private final ShareParams mShareTextParams;
     private final long mRequestSelectorStartTime;
 
     private ShareParams mShareLinkParams;
     private TextFragmentReceiver mProducer;
     private boolean mCancelRequest;
     private String mSelectedText;
+    private ShareParams mShareTextParams;
 
     public LinkToTextCoordinator(Context context, Tab tab,
             ChromeOptionShareCallback chromeOptionShareCallback, String visibleUrl,
@@ -185,6 +185,10 @@
                     @Override
                     public void call(String[] matches) {
                         mSelectedText = String.join(",", matches);
+                        mShareTextParams =
+                                new ShareParams.Builder(mTab.getWindowAndroid(), /*title=*/"", "")
+                                        .setText(mSelectedText)
+                                        .build();
                         onSelectorReady(mVisibleUrl);
                     }
                 });
diff --git a/chrome/browser/sharing/shared_clipboard/feature_flags.cc b/chrome/browser/sharing/shared_clipboard/feature_flags.cc
index f0eea53c..1552b096 100644
--- a/chrome/browser/sharing/shared_clipboard/feature_flags.cc
+++ b/chrome/browser/sharing/shared_clipboard/feature_flags.cc
@@ -4,27 +4,5 @@
 
 #include "chrome/browser/sharing/shared_clipboard/feature_flags.h"
 
-#include "base/metrics/field_trial_params.h"
-
 const base::Feature kSharedClipboardUI{"SharedClipboardUI",
                                        base::FEATURE_DISABLED_BY_DEFAULT};
-
-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
-    defined(OS_CHROMEOS)
-const base::Feature kRemoteCopyReceiver{"RemoteCopyReceiver",
-                                        base::FEATURE_ENABLED_BY_DEFAULT};
-
-const base::FeatureParam<std::string> kRemoteCopyAllowedOrigins = {
-    &kRemoteCopyReceiver, "RemoteCopyAllowedOrigins",
-    "https://googleusercontent.com"};
-
-const base::Feature kRemoteCopyImageNotification{
-    "RemoteCopyImageNotification", base::FEATURE_DISABLED_BY_DEFAULT};
-
-const base::Feature kRemoteCopyPersistentNotification{
-    "RemoteCopyPersistentNotification", base::FEATURE_DISABLED_BY_DEFAULT};
-
-const base::Feature kRemoteCopyProgressNotification{
-    "RemoteCopyProgressNotification", base::FEATURE_DISABLED_BY_DEFAULT};
-#endif  // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
-        // defined(OS_CHROMEOS)
diff --git a/chrome/browser/sharing/shared_clipboard/feature_flags.h b/chrome/browser/sharing/shared_clipboard/feature_flags.h
index 65818f8..e9be85e 100644
--- a/chrome/browser/sharing/shared_clipboard/feature_flags.h
+++ b/chrome/browser/sharing/shared_clipboard/feature_flags.h
@@ -5,32 +5,9 @@
 #ifndef CHROME_BROWSER_SHARING_SHARED_CLIPBOARD_FEATURE_FLAGS_H_
 #define CHROME_BROWSER_SHARING_SHARED_CLIPBOARD_FEATURE_FLAGS_H_
 
-#include <string>
-
 #include "base/feature_list.h"
-#include "base/metrics/field_trial_params.h"
-#include "build/build_config.h"
 
 // Feature to allow shared clipboard gets processed.
 extern const base::Feature kSharedClipboardUI;
 
-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
-    defined(OS_CHROMEOS)
-// Feature to enable handling remote copy messages.
-extern const base::Feature kRemoteCopyReceiver;
-
-// List of allowed origins to fetch images from, comma separated.
-extern const base::FeatureParam<std::string> kRemoteCopyAllowedOrigins;
-
-// Feature to enable image notifications for remote copy messages.
-extern const base::Feature kRemoteCopyImageNotification;
-
-// Feature to enable persistent notifications for remote copy messages.
-extern const base::Feature kRemoteCopyPersistentNotification;
-
-// Feature to enable progress notifications for remote copy messages.
-extern const base::Feature kRemoteCopyProgressNotification;
-#endif  // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
-        // defined(OS_CHROMEOS)
-
 #endif  // CHROME_BROWSER_SHARING_SHARED_CLIPBOARD_FEATURE_FLAGS_H_
diff --git a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc
index f2520f8..2fb42d1 100644
--- a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc
+++ b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.cc
@@ -6,14 +6,10 @@
 
 #include <algorithm>
 #include <utility>
-#include <vector>
 
 #include "base/bind.h"
 #include "base/callback_helpers.h"
-#include "base/feature_list.h"
 #include "base/guid.h"
-#include "base/numerics/ranges.h"
-#include "base/strings/string_split.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/post_task.h"
 #include "base/task/thread_pool.h"
@@ -25,10 +21,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/sharing/proto/remote_copy_message.pb.h"
 #include "chrome/browser/sharing/proto/sharing_message.pb.h"
-#include "chrome/browser/sharing/shared_clipboard/feature_flags.h"
 #include "chrome/browser/sharing/sharing_metrics.h"
-#include "chrome/browser/sharing/sharing_service.h"
-#include "chrome/browser/sharing/sharing_service_factory.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/browser_thread.h"
@@ -40,13 +33,10 @@
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/cpp/simple_url_loader.h"
 #include "services/network/public/mojom/url_response_head.mojom.h"
-#include "skia/ext/image_operations.h"
 #include "ui/base/accelerators/accelerator.h"
 #include "ui/base/clipboard/clipboard_buffer.h"
 #include "ui/base/clipboard/scoped_clipboard_writer.h"
 #include "ui/base/l10n/l10n_util.h"
-#include "ui/base/l10n/time_format.h"
-#include "ui/base/text/bytes_formatting.h"
 #include "ui/events/event_constants.h"
 #include "ui/events/keycodes/keyboard_codes.h"
 #include "ui/gfx/image/image.h"
@@ -54,36 +44,17 @@
 #include "ui/message_center/public/cpp/notification_types.h"
 #include "ui/message_center/public/cpp/notifier_id.h"
 
-#if defined(OS_WIN)
-#include "chrome/browser/notifications/notification_platform_bridge_win.h"
-#endif  // defined(OS_WIN)
-
 namespace {
-constexpr size_t kMaxImageDownloadSize = 5 * 1024 * 1024;
 
-// These values are the 2x of the preferred width and height defined in
-// message_center_constants.h, which are in dip.
-constexpr int kNotificationImageMaxWidthPx = 720;
-constexpr int kNotificationImageMaxHeightPx = 480;
+constexpr char kRemoteCopyAllowedOrigin[] = "https://googleusercontent.com";
+
+constexpr size_t kMaxImageDownloadSize = 5 * 1024 * 1024;
 
 // The initial delay for the timer that detects clipboard writes. An exponential
 // backoff will double this value whenever the OneShotTimer reschedules.
 constexpr base::TimeDelta kInitialDetectionTimerDelay =
     base::TimeDelta::FromMilliseconds(1);
 
-// Interval at which to update the progress notification for image downloads.
-constexpr base::TimeDelta kImageDownloadUpdateProgressInterval =
-    base::TimeDelta::FromMilliseconds(250);
-
-// This method should be called on a ThreadPool thread because it performs a
-// potentially slow operation.
-SkBitmap ResizeImage(const SkBitmap& image, int width, int height) {
-  TRACE_EVENT2("sharing", "ResizeImage", "src_pixels",
-               image.width() * image.height(), "dst_pixels", width * height);
-  return skia::ImageOperations::Resize(
-      image, skia::ImageOperations::RESIZE_BEST, width, height);
-}
-
 const net::NetworkTrafficAnnotationTag kTrafficAnnotation =
     net::DefineNetworkTrafficAnnotation("remote_copy_message_handler",
                                         R"(
@@ -124,48 +95,10 @@
                    base::UTF8ToUTF16(device_name));
 }
 
-std::u16string GetRemainingTimeString(int64_t current,
-                                      int64_t total,
-                                      base::TimeDelta elapsed) {
-  if (total <= 0)
-    return std::u16string();
-
-  int64_t elapsed_ms = elapsed.InMilliseconds();
-  int64_t bytes_per_second = elapsed_ms == 0 ? 0 : current * 1000 / elapsed_ms;
-  int64_t remaining_bytes = total - current;
-  base::TimeDelta remaining_time =
-      base::TimeDelta::FromSeconds(remaining_bytes / bytes_per_second);
-
-  return ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_REMAINING,
-                                ui::TimeFormat::LENGTH_SHORT, remaining_time);
-}
-
-std::u16string GetProgressString(int64_t current, int64_t total) {
-  ui::DataUnits amount_units = ui::GetByteDisplayUnits(total);
-  std::u16string current_string =
-      ui::FormatBytesWithUnits(current, amount_units, /*show_units=*/false);
-  std::u16string total_string =
-      ui::FormatBytesWithUnits(total, amount_units, /*show_units=*/true);
-
-  return l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_SIZES, current_string,
-                                    total_string);
-}
-
-bool CanUpdateProgressNotification() {
-#if defined(OS_WIN)
-  // TODO(crbug.com/1064558): Windows system notifications don't support updates
-  // so only show the initial progress notification and replace it with the
-  // final image notification at the end.
-  if (NotificationPlatformBridgeWin::SystemNotificationEnabled())
-    return false;
-#endif  // defined(OS_WIN)
-  return true;
-}
-
 }  // namespace
 
 RemoteCopyMessageHandler::RemoteCopyMessageHandler(Profile* profile)
-    : profile_(profile) {}
+    : profile_(profile), allowed_origin_(kRemoteCopyAllowedOrigin) {}
 
 RemoteCopyMessageHandler::~RemoteCopyMessageHandler() = default;
 
@@ -222,7 +155,6 @@
       base::BindOnce(&RemoteCopyMessageHandler::DetectWrite,
                      base::Unretained(this), old_sequence_number,
                      base::TimeTicks::Now(), /*is_image=*/false));
-  notification_id_ = base::GenerateGUID();
   ShowNotification(GetTextNotificationTitle(device_name_), SkBitmap());
   Finish(RemoteCopyHandleMessageResult::kSuccessHandledText);
 }
@@ -242,18 +174,6 @@
     return;
   }
 
-  bool should_show_progress =
-      base::FeatureList::IsEnabled(kRemoteCopyProgressNotification);
-  bool can_update_notification = CanUpdateProgressNotification();
-
-  if (should_show_progress) {
-    ClearProgressAndCloseNotification();
-    UpdateProgressNotification(l10n_util::GetStringUTF16(
-        can_update_notification
-            ? IDS_SHARING_REMOTE_COPY_NOTIFICATION_PREPARING_DOWNLOAD
-            : IDS_SHARING_REMOTE_COPY_NOTIFICATION_PROCESSING_IMAGE));
-  }
-
   auto request = std::make_unique<network::ResourceRequest>();
   request->url = url;
   // This request should be unauthenticated (no cookies), and shouldn't be
@@ -265,14 +185,6 @@
       network::SimpleURLLoader::Create(std::move(request), kTrafficAnnotation);
   timer_ = base::ElapsedTimer();
   // Unretained(this) is safe here because |this| owns |url_loader_|.
-  if (should_show_progress && can_update_notification) {
-    url_loader_->SetOnResponseStartedCallback(
-        base::BindOnce(&RemoteCopyMessageHandler::OnImageResponseStarted,
-                       base::Unretained(this)));
-    url_loader_->SetOnDownloadProgressCallback(
-        base::BindRepeating(&RemoteCopyMessageHandler::OnImageDownloadProgress,
-                            base::Unretained(this)));
-  }
   url_loader_->DownloadToString(
       profile_->GetDefaultStoragePartition()
           ->GetURLLoaderFactoryForBrowserProcess()
@@ -283,163 +195,17 @@
 }
 
 bool RemoteCopyMessageHandler::IsImageSourceAllowed(const GURL& image_url) {
-  std::vector<std::string> parts =
-      base::SplitString(kRemoteCopyAllowedOrigins.Get(), ",",
-                        base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
-  for (const auto& part : parts) {
-    GURL allowed_origin(part);
-    // The actual image URL may have a hash in the subdomain. This means we
-    // cannot match the entire host - we'll match the domain instead.
-    if (image_url.SchemeIs(allowed_origin.scheme_piece()) &&
-        image_url.DomainIs(allowed_origin.host_piece()) &&
-        image_url.EffectiveIntPort() == allowed_origin.EffectiveIntPort()) {
-      return true;
-    }
-  }
-  return false;
-}
-
-void RemoteCopyMessageHandler::OnImageResponseStarted(
-    const GURL& final_url,
-    const network::mojom::URLResponseHead& response_head) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-  image_content_length_ = response_head.content_length;
-}
-
-void RemoteCopyMessageHandler::OnImageDownloadProgress(uint64_t current) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-  image_content_progress_ = current;
-}
-
-void RemoteCopyMessageHandler::UpdateProgressNotification(
-    const std::u16string& context) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-  if (notification_id_.empty()) {
-    notification_id_ = base::GenerateGUID();
-    // base::Unretained is safe as the SharingService owns |this| via the
-    // SharingHandlerRegistry and also the passed callback.
-    SharingServiceFactory::GetForBrowserContext(profile_)
-        ->SetNotificationActionHandler(
-            notification_id_,
-            base::BindRepeating(
-                &RemoteCopyMessageHandler::OnProgressNotificationAction,
-                base::Unretained(this)));
-  }
-
-  message_center::RichNotificationData rich_notification_data;
-  rich_notification_data.vector_small_image = &kSendTabToSelfIcon;
-  rich_notification_data.never_timeout = true;
-
-  message_center::Notification notification(
-      message_center::NOTIFICATION_TYPE_PROGRESS, notification_id_,
-      GetImageNotificationTitle(device_name_),
-      GetRemainingTimeString(image_content_progress_, image_content_length_,
-                             timer_.Elapsed()),
-      /*icon=*/gfx::Image(),
-      /*display_source=*/std::u16string(),
-      /*origin_url=*/GURL(), message_center::NotifierId(),
-      rich_notification_data,
-      /*delegate=*/nullptr);
-
-  std::vector<message_center::ButtonInfo> notification_actions;
-  message_center::ButtonInfo button_info =
-      message_center::ButtonInfo(l10n_util::GetStringUTF16(IDS_CANCEL));
-  notification_actions.push_back(button_info);
-  notification.set_buttons(notification_actions);
-
-  if (image_content_length_ <= 0) {
-    // TODO(knollr): Show transfer status if |image_content_progress_| is != 0.
-    // This might happen if we don't know the total size of the image but we
-    // still want to show how many bytes have been transferred.
-    notification.set_progress(-1);
-#if defined(OS_MAC)
-    // On macOS we only have the title and message available. The progress is
-    // prepended to the title and the message should be the context.
-    notification.set_message(context);
-#else
-    notification.set_progress_status(context);
-#endif  // defined(OS_MAC)
-  } else {
-    notification.set_progress(image_content_progress_ * 100 /
-                              image_content_length_);
-    std::u16string progress =
-        GetProgressString(image_content_progress_, image_content_length_);
-#if defined(OS_MAC)
-    // On macOS we only have the title and message available. The progress is
-    // prepended to the title and the message should be the progress.
-    notification.set_message(progress);
-#else
-    notification.set_progress_status(progress);
-#endif  // defined(OS_MAC)
-  }
-
-  NotificationDisplayServiceFactory::GetForProfile(profile_)->Display(
-      NotificationHandler::Type::SHARING, notification, /*metadata=*/nullptr);
-
-  if (!CanUpdateProgressNotification())
-    return;
-
-  // Unretained(this) is safe here because |this| owns
-  // |image_download_update_progress_timer_|.
-  image_download_update_progress_timer_.Start(
-      FROM_HERE, kImageDownloadUpdateProgressInterval,
-      base::BindOnce(&RemoteCopyMessageHandler::UpdateProgressNotification,
-                     base::Unretained(this), context));
-}
-
-void RemoteCopyMessageHandler::ClearProgressAndCloseNotification() {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-  image_content_length_ = -1;
-  image_content_progress_ = 0;
-  progress_notification_closed_ = false;
-
-  if (notification_id_.empty())
-    return;
-
-  SharingServiceFactory::GetForBrowserContext(profile_)
-      ->SetNotificationActionHandler(notification_id_, base::NullCallback());
-  NotificationDisplayServiceFactory::GetForProfile(profile_)->Close(
-      NotificationHandler::Type::SHARING, notification_id_);
-
-  notification_id_.clear();
-}
-
-void RemoteCopyMessageHandler::OnProgressNotificationAction(
-    base::Optional<int> button,
-    bool closed) {
-  // Clicks on the progress notification body are ignored.
-  if (!closed && !button)
-    return;
-
-  // Stop updating the progress notification.
-  image_download_update_progress_timer_.AbandonAndStop();
-
-  // Let the download continue if the notification was dismissed.
-  if (closed) {
-    // Remove the handler as this notification is now closed.
-    SharingServiceFactory::GetForBrowserContext(profile_)
-        ->SetNotificationActionHandler(notification_id_, base::NullCallback());
-    progress_notification_closed_ = true;
-    return;
-  }
-
-  // Cancel the download if the cancel button was pressed.
-  DCHECK_EQ(0, *button);
-  CancelAsyncTasks();
+  // The actual image URL may have a hash in the subdomain. This means we
+  // cannot match the entire host - we'll match the domain instead.
+  return image_url.SchemeIs(allowed_origin_.scheme_piece()) &&
+         image_url.DomainIs(allowed_origin_.host_piece()) &&
+         image_url.EffectiveIntPort() == allowed_origin_.EffectiveIntPort();
 }
 
 void RemoteCopyMessageHandler::OnURLLoadComplete(
     std::unique_ptr<std::string> content) {
   TRACE_EVENT0("sharing", "RemoteCopyMessageHandler::OnURLLoadComplete");
 
-  if (!progress_notification_closed_ && CanUpdateProgressNotification()) {
-    image_content_length_ = -1;
-    UpdateProgressNotification(l10n_util::GetStringUTF16(
-        IDS_SHARING_REMOTE_COPY_NOTIFICATION_PROCESSING_IMAGE));
-  }
-
-  image_download_update_progress_timer_.AbandonAndStop();
-
   int code;
   if (url_loader_->NetError() != net::OK) {
     code = url_loader_->NetError();
@@ -475,36 +241,7 @@
   LogRemoteCopyDecodeImageTime(timer_.Elapsed());
   LogRemoteCopyReceivedImageSizeAfterDecode(image.computeByteSize());
 
-  if (!base::FeatureList::IsEnabled(kRemoteCopyImageNotification)) {
-    WriteImageAndShowNotification(image, image);
-    return;
-  }
-
-  double scale = std::min(
-      static_cast<double>(kNotificationImageMaxWidthPx) / image.width(),
-      static_cast<double>(kNotificationImageMaxHeightPx) / image.height());
-
-  // If the image is too large to show in a notification, resize it first.
-  if (scale < 1.0) {
-    int resized_width =
-        base::ClampToRange(static_cast<int>(scale * image.width()), 0,
-                           kNotificationImageMaxWidthPx);
-    int resized_height =
-        base::ClampToRange(static_cast<int>(scale * image.height()), 0,
-                           kNotificationImageMaxHeightPx);
-
-    // Unretained(this) is safe here because |this| owns |resize_callback_|.
-    resize_callback_.Reset(
-        base::BindOnce(&RemoteCopyMessageHandler::WriteImageAndShowNotification,
-                       base::Unretained(this), image));
-    timer_ = base::ElapsedTimer();
-    base::ThreadPool::PostTaskAndReplyWithResult(
-        FROM_HERE, {base::TaskPriority::USER_VISIBLE},
-        base::BindOnce(&ResizeImage, image, resized_width, resized_height),
-        resize_callback_.callback());
-  } else {
-    WriteImageAndShowNotification(image, image);
-  }
+  WriteImageAndShowNotification(image);
 }
 
 void RemoteCopyMessageHandler::OnDecodeImageFailed() {
@@ -512,14 +249,10 @@
 }
 
 void RemoteCopyMessageHandler::WriteImageAndShowNotification(
-    const SkBitmap& original_image,
-    const SkBitmap& resized_image) {
+    const SkBitmap& image) {
   TRACE_EVENT1("sharing",
                "RemoteCopyMessageHandler::WriteImageAndShowNotification",
-               "bytes", original_image.computeByteSize());
-
-  if (original_image.dimensions() != resized_image.dimensions())
-    LogRemoteCopyResizeImageTime(timer_.Elapsed());
+               "bytes", image.computeByteSize());
 
   uint64_t old_sequence_number =
       ui::Clipboard::GetForCurrentThread()->GetSequenceNumber(
@@ -527,7 +260,7 @@
   base::ElapsedTimer write_timer;
   {
     ui::ScopedClipboardWriter(ui::ClipboardBuffer::kCopyPaste)
-        .WriteImage(original_image);
+        .WriteImage(image);
   }
   LogRemoteCopyWriteTime(write_timer.Elapsed(), /*is_image=*/true);
   // Unretained(this) is safe here because |this| owns |write_detection_timer_|.
@@ -537,26 +270,7 @@
                      base::Unretained(this), old_sequence_number,
                      base::TimeTicks::Now(), /*is_image=*/true));
 
-#if defined(OS_MAC)
-  // On macOS we can't replace a persistent notification with a non-persistent
-  // one because they are posted from different sources (app vs xpc). To avoid
-  // having both notifications on screen, remove the progress one first.
-  if (!progress_notification_closed_ &&
-      !base::FeatureList::IsEnabled(kRemoteCopyPersistentNotification)) {
-    ClearProgressAndCloseNotification();
-  }
-#endif  // defined(OS_MAC)
-
-  // If the notification id is not empty there must be a progress notification
-  // that can be updated. Just clear its action handler.
-  if (!notification_id_.empty()) {
-    SharingServiceFactory::GetForBrowserContext(profile_)
-        ->SetNotificationActionHandler(notification_id_, base::NullCallback());
-  } else {
-    notification_id_ = base::GenerateGUID();
-  }
-
-  ShowNotification(GetImageNotificationTitle(device_name_), resized_image);
+  ShowNotification(GetImageNotificationTitle(device_name_), image);
   Finish(RemoteCopyHandleMessageResult::kSuccessHandledImage);
 }
 
@@ -566,33 +280,13 @@
 
   gfx::Image icon;
   message_center::RichNotificationData rich_notification_data;
-
-  bool use_image_notification =
-      base::FeatureList::IsEnabled(kRemoteCopyImageNotification) &&
-      !image.drawsNothing();
-
-  if (use_image_notification) {
-#if defined(OS_MAC)
-    // On macOS notifications do not support large images so use the icon
-    // instead.
-    icon = gfx::Image::CreateFrom1xBitmap(image);
-#else
-    rich_notification_data.image = gfx::Image::CreateFrom1xBitmap(image);
-#endif  // defined(OS_MAC)
-  }
-
   rich_notification_data.vector_small_image = &kSendTabToSelfIcon;
-  rich_notification_data.never_timeout =
-      base::FeatureList::IsEnabled(kRemoteCopyPersistentNotification);
-
-  message_center::NotificationType type =
-      use_image_notification ? message_center::NOTIFICATION_TYPE_IMAGE
-                             : message_center::NOTIFICATION_TYPE_SIMPLE;
+  rich_notification_data.renotify = true;
 
   ui::Accelerator paste_accelerator(ui::VKEY_V, ui::EF_PLATFORM_ACCELERATOR);
 
   message_center::Notification notification(
-      type, notification_id_, title,
+      message_center::NOTIFICATION_TYPE_SIMPLE, base::GenerateGUID(), title,
       l10n_util::GetStringFUTF16(
           IDS_SHARING_REMOTE_COPY_NOTIFICATION_DESCRIPTION,
           paste_accelerator.GetShortcutText()),
@@ -602,15 +296,6 @@
       rich_notification_data,
       /*delegate=*/nullptr);
 
-  if (!CanUpdateProgressNotification())
-    notification.set_renotify(true);
-
-  // Make the notification silent if we're replacing a progress notification.
-  bool should_show_progress =
-      base::FeatureList::IsEnabled(kRemoteCopyProgressNotification);
-  if (should_show_progress && !progress_notification_closed_)
-    notification.set_silent(true);
-
   NotificationDisplayServiceFactory::GetForProfile(profile_)->Display(
       NotificationHandler::Type::SHARING, notification, /*metadata=*/nullptr);
 }
@@ -643,12 +328,6 @@
 
 void RemoteCopyMessageHandler::Finish(RemoteCopyHandleMessageResult result) {
   TRACE_EVENT1("sharing", "RemoteCopyMessageHandler::Finish", "result", result);
-
-  if (result != RemoteCopyHandleMessageResult::kSuccessHandledText &&
-      result != RemoteCopyHandleMessageResult::kSuccessHandledImage) {
-    ClearProgressAndCloseNotification();
-  }
-
   LogRemoteCopyHandleMessageResult(result);
   device_name_.clear();
 }
@@ -656,8 +335,5 @@
 void RemoteCopyMessageHandler::CancelAsyncTasks() {
   url_loader_.reset();
   ImageDecoder::Cancel(this);
-  resize_callback_.Cancel();
   write_detection_timer_.AbandonAndStop();
-  image_download_update_progress_timer_.AbandonAndStop();
-  ClearProgressAndCloseNotification();
 }
diff --git a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.h b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.h
index 5745cd0..4d7ee5f4 100644
--- a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.h
+++ b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.h
@@ -8,15 +8,11 @@
 #include <memory>
 #include <string>
 
-#include "base/cancelable_callback.h"
-#include "base/macros.h"
-#include "base/optional.h"
 #include "base/timer/elapsed_timer.h"
 #include "base/timer/timer.h"
 #include "chrome/browser/image_decoder/image_decoder.h"
 #include "chrome/browser/sharing/shared_clipboard/remote_copy_handle_message_result.h"
 #include "chrome/browser/sharing/sharing_message_handler.h"
-#include "services/network/public/mojom/url_response_head.mojom-forward.h"
 #include "url/gurl.h"
 
 class Profile;
@@ -30,6 +26,8 @@
                                  public ImageDecoder::ImageRequest {
  public:
   explicit RemoteCopyMessageHandler(Profile* profile);
+  RemoteCopyMessageHandler(const RemoteCopyMessageHandler&) = delete;
+  RemoteCopyMessageHandler& operator=(const RemoteCopyMessageHandler&) = delete;
   ~RemoteCopyMessageHandler() override;
 
   // SharingMessageHandler implementation:
@@ -43,18 +41,13 @@
   bool IsImageSourceAllowed(const GURL& image_url);
 
  private:
+  friend class RemoteCopyBrowserTest;
+  friend class RemoteCopyMessageHandlerTest;
+
   void HandleText(const std::string& text);
   void HandleImage(const std::string& image_url);
-  void OnImageResponseStarted(
-      const GURL& final_url,
-      const network::mojom::URLResponseHead& response_head);
-  void OnImageDownloadProgress(uint64_t current);
-  void UpdateProgressNotification(const std::u16string& context);
-  void ClearProgressAndCloseNotification();
-  void OnProgressNotificationAction(base::Optional<int> button, bool closed);
   void OnURLLoadComplete(std::unique_ptr<std::string> content);
-  void WriteImageAndShowNotification(const SkBitmap& original_image,
-                                     const SkBitmap& resized_image);
+  void WriteImageAndShowNotification(const SkBitmap& image);
   void ShowNotification(const std::u16string& title, const SkBitmap& image);
   void DetectWrite(uint64_t old_sequence_number,
                    base::TimeTicks start_ticks,
@@ -62,19 +55,16 @@
   void Finish(RemoteCopyHandleMessageResult result);
   void CancelAsyncTasks();
 
+  void set_allowed_origin_for_testing(const GURL& origin) {
+    allowed_origin_ = origin;
+  }
+
   Profile* profile_ = nullptr;
   std::unique_ptr<network::SimpleURLLoader> url_loader_;
-  base::CancelableOnceCallback<void(const SkBitmap&)> resize_callback_;
   std::string device_name_;
   base::ElapsedTimer timer_;
   base::OneShotTimer write_detection_timer_;
-  int64_t image_content_length_ = -1;
-  int64_t image_content_progress_ = 0;
-  std::string notification_id_;
-  bool progress_notification_closed_ = false;
-  base::OneShotTimer image_download_update_progress_timer_;
-
-  DISALLOW_COPY_AND_ASSIGN(RemoteCopyMessageHandler);
+  GURL allowed_origin_;
 };
 
 #endif  // CHROME_BROWSER_SHARING_SHARED_CLIPBOARD_REMOTE_COPY_MESSAGE_HANDLER_H_
diff --git a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler_unittest.cc b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler_unittest.cc
index c7852ff..9ece03c 100644
--- a/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler_unittest.cc
+++ b/chrome/browser/sharing/shared_clipboard/remote_copy_message_handler_unittest.cc
@@ -11,13 +11,11 @@
 #include "base/guid.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/metrics/histogram_tester.h"
-#include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "chrome/browser/notifications/notification_display_service_tester.h"
 #include "chrome/browser/sharing/mock_sharing_service.h"
 #include "chrome/browser/sharing/proto/remote_copy_message.pb.h"
 #include "chrome/browser/sharing/proto/sharing_message.pb.h"
-#include "chrome/browser/sharing/shared_clipboard/feature_flags.h"
 #include "chrome/browser/sharing/shared_clipboard/remote_copy_handle_message_result.h"
 #include "chrome/browser/sharing/shared_clipboard/shared_clipboard_test_base.h"
 #include "chrome/browser/sharing/sharing_service_factory.h"
@@ -34,10 +32,6 @@
 #include "ui/gfx/skia_util.h"
 #include "ui/message_center/public/cpp/notification.h"
 
-#if defined(OS_WIN)
-#include "chrome/browser/notifications/notification_platform_bridge_win.h"
-#endif  // defined(OS_WIN)
-
 namespace {
 
 const char kText[] = "clipboard text";
@@ -62,6 +56,8 @@
   base::RepeatingClosure callback_;
 };
 
+}  // namespace
+
 class RemoteCopyMessageHandlerTest : public SharedClipboardTestBase {
  public:
   RemoteCopyMessageHandlerTest()
@@ -81,6 +77,7 @@
     message_handler_ = std::make_unique<RemoteCopyMessageHandler>(&profile_);
   }
 
+ protected:
   chrome_browser_sharing::SharingMessage CreateMessageWithText(
       const std::string& guid,
       const std::string& device_name,
@@ -103,15 +100,10 @@
     return message;
   }
 
-  bool IsImageSourceAllowed(const std::string& image_url,
-                            const std::string& param_value) {
-    base::test::ScopedFeatureList feature_list;
-    feature_list.InitAndEnableFeatureWithParameters(
-        kRemoteCopyReceiver, {{kRemoteCopyAllowedOrigins.name, param_value}});
-    return message_handler_->IsImageSourceAllowed(GURL(image_url));
+  void SetAllowedOrigin(const std::string& origin) {
+    message_handler_->set_allowed_origin_for_testing(GURL(origin));
   }
 
- protected:
   // Intercepts network requests.
   bool HandleRequest(content::URLLoaderInterceptor::RequestParams* params) {
     if (!image_ || params->url_request.url != GURL(image_url_))
@@ -142,12 +134,8 @@
   data_decoder::test::InProcessDataDecoder in_process_data_decoder_;
   std::string image_url_;
   base::Optional<SkBitmap> image_;
-
-  DISALLOW_COPY_AND_ASSIGN(RemoteCopyMessageHandlerTest);
 };
 
-}  // namespace
-
 TEST_F(RemoteCopyMessageHandlerTest, NotificationWithoutDeviceName) {
   message_handler_->OnMessage(
       CreateMessageWithText(base::GenerateGUID(), kEmptyDeviceName, kText),
@@ -177,90 +165,24 @@
 TEST_F(RemoteCopyMessageHandlerTest, IsImageSourceAllowed) {
   std::string image_url = "https://foo.com/image.png";
   std::string image_url_with_subdomain = "https://www.foo.com/image.png";
-  EXPECT_TRUE(IsImageSourceAllowed(image_url, "https://foo.com"));
+
+  SetAllowedOrigin("https://foo.com");
+  EXPECT_TRUE(message_handler_->IsImageSourceAllowed(GURL(image_url)));
   EXPECT_TRUE(
-      IsImageSourceAllowed(image_url_with_subdomain, "https://foo.com"));
-  EXPECT_FALSE(IsImageSourceAllowed(image_url, ""));
-  EXPECT_FALSE(IsImageSourceAllowed(image_url, "foo][#';/.,"));
-  EXPECT_FALSE(IsImageSourceAllowed(image_url, "https://bar.com"));
-  EXPECT_FALSE(IsImageSourceAllowed(image_url,
-                                    "https://foo.com:80"));  // not default port
-  EXPECT_TRUE(
-      IsImageSourceAllowed(image_url, "https://foo.com:443"));  // default port
-  EXPECT_TRUE(
-      IsImageSourceAllowed(image_url, "https://foo.com,https://bar.com"));
-  EXPECT_TRUE(
-      IsImageSourceAllowed(image_url, "https://bar.com,https://foo.com"));
+      message_handler_->IsImageSourceAllowed(GURL(image_url_with_subdomain)));
+
+  SetAllowedOrigin("https://bar.com");
+  EXPECT_FALSE(message_handler_->IsImageSourceAllowed(GURL(image_url)));
+
+  SetAllowedOrigin("https://foo.com:80");  // not default port
+  EXPECT_FALSE(message_handler_->IsImageSourceAllowed(GURL(image_url)));
+
+  SetAllowedOrigin("https://foo.com:443");  // default port
+  EXPECT_TRUE(message_handler_->IsImageSourceAllowed(GURL(image_url)));
 }
 
-TEST_F(RemoteCopyMessageHandlerTest,
-       NoProgressNotificationWithoutProgressFlag) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeaturesAndParameters(
-      {{kRemoteCopyReceiver,
-        {{kRemoteCopyAllowedOrigins.name, kTestImageUrl}}}},
-      {kRemoteCopyProgressNotification});
-
-  message_handler_->OnMessage(CreateMessageWithImage(kTestImageUrl),
-                              base::DoNothing());
-
-  EXPECT_FALSE(HasProgressNotification());
-
-  // Calling GetDefaultStoragePartition creates tasks that need to run before
-  // the ScopedFeatureList is destroyed. See crbug.com/1060869
-  task_environment_.RunUntilIdle();
-}
-
-TEST_F(RemoteCopyMessageHandlerTest, ProgressNotificationWithProgressFlag) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeaturesAndParameters(
-      {{kRemoteCopyReceiver, {{kRemoteCopyAllowedOrigins.name, kTestImageUrl}}},
-       {kRemoteCopyProgressNotification, {}}},
-      {});
-
-  message_handler_->OnMessage(CreateMessageWithImage(kTestImageUrl),
-                              base::DoNothing());
-
-  ASSERT_TRUE(HasProgressNotification());
-  auto notification = GetProgressNotification();
-
-  EXPECT_EQ(l10n_util::GetStringFUTF16(
-                IDS_SHARING_REMOTE_COPY_NOTIFICATION_TITLE_IMAGE_CONTENT,
-                kDeviceNameInMessage16),
-            notification.title());
-
-#if defined(OS_MAC)
-  // On macOS the progress status is shown in the message.
-  std::u16string progress_status = notification.message();
-#else
-  std::u16string progress_status = notification.progress_status();
-#endif  // defined(OS_MAC)
-
-#if defined(OS_WIN)
-  std::u16string expected_status = l10n_util::GetStringUTF16(
-      NotificationPlatformBridgeWin::SystemNotificationEnabled()
-          ? IDS_SHARING_REMOTE_COPY_NOTIFICATION_PROCESSING_IMAGE
-          : IDS_SHARING_REMOTE_COPY_NOTIFICATION_PREPARING_DOWNLOAD);
-#else
-  std::u16string expected_status = l10n_util::GetStringUTF16(
-      IDS_SHARING_REMOTE_COPY_NOTIFICATION_PREPARING_DOWNLOAD);
-#endif  // defined(OS_WIN)
-
-  EXPECT_EQ(expected_status, progress_status);
-  EXPECT_EQ(-1, notification.progress());
-
-  // Calling GetDefaultStoragePartition creates tasks that need to run before
-  // the ScopedFeatureList is destroyed. See crbug.com/1060869
-  task_environment_.RunUntilIdle();
-}
-
-TEST_F(RemoteCopyMessageHandlerTest, ImageNotificationWithoutProgressFlag) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeaturesAndParameters(
-      {{kRemoteCopyReceiver, {{kRemoteCopyAllowedOrigins.name, kTestImageUrl}}},
-       {kRemoteCopyImageNotification, {}}},
-      {kRemoteCopyProgressNotification});
-
+TEST_F(RemoteCopyMessageHandlerTest, HandleImage) {
+  SetAllowedOrigin(kTestImageUrl);
   base::RunLoop run_loop;
   ClipboardObserver observer(run_loop.QuitClosure());
   ui::ClipboardMonitor::GetInstance()->AddObserver(&observer);
@@ -268,11 +190,8 @@
   message_handler_->OnMessage(CreateMessageWithImage(kTestImageUrl),
                               base::DoNothing());
 
-  // There should not be a progress notification without the flag set.
-  EXPECT_FALSE(HasProgressNotification());
-
   // Let tasks run until the image is decoded, written to the clipboard and the
-  // image notification is shown.
+  // simple notification is shown.
   run_loop.Run();
   ui::ClipboardMonitor::GetInstance()->RemoveObserver(&observer);
 
@@ -280,163 +199,7 @@
   SkBitmap image = GetClipboardImage();
   EXPECT_TRUE(gfx::BitmapsAreEqual(*image_, image));
 
-  // Expect an image notification showing the image.
-  auto notification = GetImageNotification();
-
-#if defined(OS_MAC)
-  // On macOS we show the image as the icon instead.
-  EXPECT_FALSE(notification.icon().IsEmpty());
-#else
-  EXPECT_FALSE(notification.image().IsEmpty());
-#endif  // defined(OS_MAC)
-
-  // Calling GetDefaultStoragePartition creates tasks that need to run before
-  // the ScopedFeatureList is destroyed. See crbug.com/1060869
-  task_environment_.RunUntilIdle();
-}
-
-TEST_F(RemoteCopyMessageHandlerTest,
-       NoImageAndNoProgressNotificationWhenDisabled) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeaturesAndParameters(
-      {{kRemoteCopyReceiver,
-        {{kRemoteCopyAllowedOrigins.name, kTestImageUrl}}}},
-      {kRemoteCopyImageNotification, kRemoteCopyProgressNotification});
-
-  base::RunLoop run_loop;
-  ClipboardObserver observer(run_loop.QuitClosure());
-  ui::ClipboardMonitor::GetInstance()->AddObserver(&observer);
-
-  message_handler_->OnMessage(CreateMessageWithImage(kTestImageUrl),
-                              base::DoNothing());
-
-  // There should be no progress notification with the flag disabled.
-  EXPECT_FALSE(HasProgressNotification());
-
-  // Let tasks run until the image is decoded, written to the clipboard and the
-  // simple notification is shown (the image notification feature is disabled).
-  run_loop.Run();
-  ui::ClipboardMonitor::GetInstance()->RemoveObserver(&observer);
-
-  // After finishing the transfer there should be no progress notification.
-  EXPECT_FALSE(HasProgressNotification());
-
-  // Expect the image to be in the clipboard now.
-  SkBitmap image = GetClipboardImage();
-  EXPECT_TRUE(gfx::BitmapsAreEqual(*image_, image));
-
   // Expect a simple notification.
   auto notification = GetNotification();
   EXPECT_TRUE(notification.image().IsEmpty());
-
-  // Calling GetDefaultStoragePartition creates tasks that need to run before
-  // the ScopedFeatureList is destroyed. See crbug.com/1060869
-  task_environment_.RunUntilIdle();
-}
-
-TEST_F(RemoteCopyMessageHandlerTest, ImageNotificationWithProgressFlag) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeaturesAndParameters(
-      {{kRemoteCopyReceiver, {{kRemoteCopyAllowedOrigins.name, kTestImageUrl}}},
-       {kRemoteCopyImageNotification, {}},
-       {kRemoteCopyProgressNotification, {}}},
-      {});
-
-  base::RunLoop run_loop;
-  ClipboardObserver observer(run_loop.QuitClosure());
-  ui::ClipboardMonitor::GetInstance()->AddObserver(&observer);
-
-  message_handler_->OnMessage(CreateMessageWithImage(kTestImageUrl),
-                              base::DoNothing());
-
-  // There should be a progress notification with the flag set.
-  EXPECT_TRUE(HasProgressNotification());
-
-  // Let tasks run until the image is decoded, written to the clipboard and the
-  // image notification is shown.
-  run_loop.Run();
-  ui::ClipboardMonitor::GetInstance()->RemoveObserver(&observer);
-
-  // After finishing the transfer there should be no progress notification.
-  EXPECT_FALSE(HasProgressNotification());
-
-  // Expect the image to be in the clipboard now.
-  SkBitmap image = GetClipboardImage();
-  EXPECT_TRUE(gfx::BitmapsAreEqual(*image_, image));
-
-  // Expect an image notification showing the image.
-  auto notification = GetImageNotification();
-
-#if defined(OS_MAC)
-  // On macOS we show the image as the icon instead.
-  EXPECT_FALSE(notification.icon().IsEmpty());
-#else
-  EXPECT_FALSE(notification.image().IsEmpty());
-#endif  // defined(OS_MAC)
-
-  // Calling GetDefaultStoragePartition creates tasks that need to run before
-  // the ScopedFeatureList is destroyed. See crbug.com/1060869
-  task_environment_.RunUntilIdle();
-}
-
-TEST_F(RemoteCopyMessageHandlerTest, CancelProgressNotification) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeaturesAndParameters(
-      {{kRemoteCopyReceiver, {{kRemoteCopyAllowedOrigins.name, kTestImageUrl}}},
-       {kRemoteCopyProgressNotification, {}}},
-      {});
-
-  message_handler_->OnMessage(CreateMessageWithImage(kTestImageUrl),
-                              base::DoNothing());
-  auto notification = GetProgressNotification();
-
-  // Simulate a click on the cancel button at index 0.
-  notification_tester_->SimulateClick(NotificationHandler::Type::SHARING,
-                                      notification.id(), /*action_index=*/0,
-                                      /*reply=*/base::nullopt);
-
-  // The progress notification should now be closed.
-  EXPECT_FALSE(HasProgressNotification());
-
-  // Run remaining tasks to ensure no notification is shown at the end.
-  task_environment_.RunUntilIdle();
-
-  EXPECT_FALSE(HasProgressNotification());
-  EXPECT_FALSE(HasImageNotification());
-}
-
-TEST_F(RemoteCopyMessageHandlerTest, DismissProgressNotification) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeaturesAndParameters(
-      {{kRemoteCopyReceiver, {{kRemoteCopyAllowedOrigins.name, kTestImageUrl}}},
-       {kRemoteCopyImageNotification, {}},
-       {kRemoteCopyProgressNotification, {}}},
-      {});
-
-  base::RunLoop run_loop;
-  ClipboardObserver observer(run_loop.QuitClosure());
-  ui::ClipboardMonitor::GetInstance()->AddObserver(&observer);
-
-  message_handler_->OnMessage(CreateMessageWithImage(kTestImageUrl),
-                              base::DoNothing());
-  auto notification = GetProgressNotification();
-
-  // Simulate closing the notification by the user.
-  notification_tester_->RemoveNotification(NotificationHandler::Type::SHARING,
-                                           notification.id(), /*by_user=*/true,
-                                           /*silent=*/false);
-
-  // The progress notification should now be closed.
-  EXPECT_FALSE(HasProgressNotification());
-
-  // Let tasks run until the image is decoded, written to the clipboard and the
-  // image notification is shown.
-  run_loop.Run();
-  ui::ClipboardMonitor::GetInstance()->RemoveObserver(&observer);
-
-  EXPECT_TRUE(HasImageNotification());
-
-  // Calling GetDefaultStoragePartition creates tasks that need to run before
-  // the ScopedFeatureList is destroyed. See crbug.com/1060869
-  task_environment_.RunUntilIdle();
 }
diff --git a/chrome/browser/sharing/shared_clipboard/shared_clipboard_test_base.cc b/chrome/browser/sharing/shared_clipboard/shared_clipboard_test_base.cc
index 14a0d3c..a6fda03 100644
--- a/chrome/browser/sharing/shared_clipboard/shared_clipboard_test_base.cc
+++ b/chrome/browser/sharing/shared_clipboard/shared_clipboard_test_base.cc
@@ -52,24 +52,6 @@
       ui::Clipboard::GetForCurrentThread());
 }
 
-bool SharedClipboardTestBase::HasImageNotification() {
-  auto notifications = notification_tester_->GetDisplayedNotificationsForType(
-      NotificationHandler::Type::SHARING);
-  if (notifications.size() != 1u)
-    return false;
-
-  return notifications[0].type() == message_center::NOTIFICATION_TYPE_IMAGE;
-}
-
-bool SharedClipboardTestBase::HasProgressNotification() {
-  auto notifications = notification_tester_->GetDisplayedNotificationsForType(
-      NotificationHandler::Type::SHARING);
-  if (notifications.size() != 1u)
-    return false;
-
-  return notifications[0].type() == message_center::NOTIFICATION_TYPE_PROGRESS;
-}
-
 message_center::Notification SharedClipboardTestBase::GetNotification() {
   auto notifications = notification_tester_->GetDisplayedNotificationsForType(
       NotificationHandler::Type::SHARING);
@@ -80,26 +62,3 @@
 
   return notification;
 }
-
-message_center::Notification
-SharedClipboardTestBase::GetProgressNotification() {
-  auto notifications = notification_tester_->GetDisplayedNotificationsForType(
-      NotificationHandler::Type::SHARING);
-  EXPECT_EQ(notifications.size(), 1u);
-
-  const message_center::Notification& notification = notifications[0];
-  EXPECT_EQ(message_center::NOTIFICATION_TYPE_PROGRESS, notification.type());
-
-  return notification;
-}
-
-message_center::Notification SharedClipboardTestBase::GetImageNotification() {
-  auto notifications = notification_tester_->GetDisplayedNotificationsForType(
-      NotificationHandler::Type::SHARING);
-  EXPECT_EQ(notifications.size(), 1u);
-
-  const message_center::Notification& notification = notifications[0];
-  EXPECT_EQ(message_center::NOTIFICATION_TYPE_IMAGE, notification.type());
-
-  return notification;
-}
diff --git a/chrome/browser/sharing/shared_clipboard/shared_clipboard_test_base.h b/chrome/browser/sharing/shared_clipboard/shared_clipboard_test_base.h
index 6922d399..41addb4 100644
--- a/chrome/browser/sharing/shared_clipboard/shared_clipboard_test_base.h
+++ b/chrome/browser/sharing/shared_clipboard/shared_clipboard_test_base.h
@@ -41,12 +41,7 @@
   std::string GetClipboardText();
   SkBitmap GetClipboardImage();
 
-  bool HasImageNotification();
-  bool HasProgressNotification();
-
   message_center::Notification GetNotification();
-  message_center::Notification GetProgressNotification();
-  message_center::Notification GetImageNotification();
 
  protected:
   content::BrowserTaskEnvironment task_environment_;
diff --git a/chrome/browser/sharing/sharing_device_registration.cc b/chrome/browser/sharing/sharing_device_registration.cc
index 0d13994b..5b6304ff 100644
--- a/chrome/browser/sharing/sharing_device_registration.cc
+++ b/chrome/browser/sharing/sharing_device_registration.cc
@@ -323,7 +323,7 @@
 bool SharingDeviceRegistration::IsRemoteCopySupported() const {
 #if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
     defined(OS_CHROMEOS)
-  return base::FeatureList::IsEnabled(kRemoteCopyReceiver);
+  return true;
 #else
   return false;
 #endif
diff --git a/chrome/browser/sharing/sharing_metrics.cc b/chrome/browser/sharing/sharing_metrics.cc
index a4deab2..d2268ac 100644
--- a/chrome/browser/sharing/sharing_metrics.cc
+++ b/chrome/browser/sharing/sharing_metrics.cc
@@ -409,10 +409,6 @@
   base::UmaHistogramMediumTimes("Sharing.RemoteCopyDecodeImageTime", time);
 }
 
-void LogRemoteCopyResizeImageTime(base::TimeDelta time) {
-  base::UmaHistogramMediumTimes("Sharing.RemoteCopyResizeImageTime", time);
-}
-
 void LogRemoteCopyWriteTime(base::TimeDelta time, bool is_image) {
   if (is_image)
     base::UmaHistogramMediumTimes("Sharing.RemoteCopyWriteImageTime", time);
diff --git a/chrome/browser/sharing/sharing_metrics.h b/chrome/browser/sharing/sharing_metrics.h
index 99fd967..b3df73c 100644
--- a/chrome/browser/sharing/sharing_metrics.h
+++ b/chrome/browser/sharing/sharing_metrics.h
@@ -150,9 +150,6 @@
 // Logs to UMA the time to decode an image for Remote Copy.
 void LogRemoteCopyDecodeImageTime(base::TimeDelta time);
 
-// Logs to UMA the time to resize an image for Remote Copy.
-void LogRemoteCopyResizeImageTime(base::TimeDelta time);
-
 // Logs to UMA the duration of a clipboard write for Remote Copy.
 void LogRemoteCopyWriteTime(base::TimeDelta time, bool is_image);
 
diff --git a/chrome/browser/sharing/sharing_service.cc b/chrome/browser/sharing/sharing_service.cc
index 216e6e9..1bb72ff 100644
--- a/chrome/browser/sharing/sharing_service.cc
+++ b/chrome/browser/sharing/sharing_service.cc
@@ -133,6 +133,11 @@
   return message_sender_.get();
 }
 
+SharingMessageHandler* SharingService::GetSharingHandlerForTesting(
+    chrome_browser_sharing::SharingMessage::PayloadCase payload_case) const {
+  return handler_registry_->GetSharingHandler(payload_case);
+}
+
 void SharingService::OnSyncShutdown(syncer::SyncService* sync) {
   if (sync_service_ && sync_service_->HasObserver(this))
     sync_service_->RemoveObserver(this);
diff --git a/chrome/browser/sharing/sharing_service.h b/chrome/browser/sharing/sharing_service.h
index c22e4a7..5fbb561 100644
--- a/chrome/browser/sharing/sharing_service.h
+++ b/chrome/browser/sharing/sharing_service.h
@@ -136,6 +136,10 @@
   // Returns SharingMessageSender for testing.
   SharingMessageSender* GetMessageSenderForTesting() const;
 
+  // Returns the message handler registered for |payload_case| for testing.
+  SharingMessageHandler* GetSharingHandlerForTesting(
+      chrome_browser_sharing::SharingMessage::PayloadCase payload_case) const;
+
  private:
   // Overrides for syncer::SyncServiceObserver.
   void OnSyncShutdown(syncer::SyncService* sync) override;
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index b16feeae..bd4f508 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1982,6 +1982,8 @@
       "ash/media_client_impl.h",
       "ash/media_notification_provider_impl.cc",
       "ash/media_notification_provider_impl.h",
+      "ash/microphone_mute_notification_delegate_impl.cc",
+      "ash/microphone_mute_notification_delegate_impl.h",
       "ash/multi_user/multi_profile_support.cc",
       "ash/multi_user/multi_profile_support.h",
       "ash/multi_user/multi_user_context_menu.h",
@@ -2728,6 +2730,7 @@
       "//chromeos/dbus/audio",
       "//chromeos/dbus/cryptohome",
       "//chromeos/dbus/cryptohome:cryptohome_proto",
+      "//chromeos/dbus/hermes",
       "//chromeos/dbus/kerberos:kerberos_proto",
       "//chromeos/dbus/pciguard:pciguard",
       "//chromeos/dbus/power",
diff --git a/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.cc b/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.cc
index 18846973..fe3c3d11 100644
--- a/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.cc
+++ b/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.cc
@@ -38,7 +38,6 @@
     SaveAddressProfilePromptController* controller,
     const AutofillProfile& autofill_profile,
     bool is_update) {
-  DCHECK(!controller_);
   DCHECK(controller);
   if (!web_contents_->GetTopLevelNativeWindow()) {
     return false;  // No window attached (yet or anymore).
@@ -67,35 +66,34 @@
   if (!java_object_)
     return false;
 
-  controller_ = controller;
-  is_update_ = is_update;
-  RefreshContent();
+  SetContent(controller, is_update);
   Java_SaveAddressProfilePrompt_show(env, java_object_);
   return true;
 }
 
-void SaveAddressProfilePromptViewAndroid::RefreshContent() {
-  DCHECK(controller_);
+void SaveAddressProfilePromptViewAndroid::SetContent(
+    SaveAddressProfilePromptController* controller,
+    bool is_update) {
+  DCHECK(controller);
   DCHECK(java_object_);
 
   JNIEnv* env = base::android::AttachCurrentThread();
   ScopedJavaLocalRef<jstring> title =
-      base::android::ConvertUTF16ToJavaString(env, controller_->GetTitle());
+      base::android::ConvertUTF16ToJavaString(env, controller->GetTitle());
   ScopedJavaLocalRef<jstring> positive_button_text =
       base::android::ConvertUTF16ToJavaString(
-          env, controller_->GetPositiveButtonText());
+          env, controller->GetPositiveButtonText());
   ScopedJavaLocalRef<jstring> negative_button_text =
       base::android::ConvertUTF16ToJavaString(
-          env, controller_->GetNegativeButtonText());
+          env, controller->GetNegativeButtonText());
   Java_SaveAddressProfilePrompt_setDialogDetails(
       env, java_object_, title, positive_button_text, negative_button_text);
 
-  if (is_update_) {
+  if (is_update) {
     ScopedJavaLocalRef<jstring> subtitle =
-        base::android::ConvertUTF16ToJavaString(env,
-                                                controller_->GetSubtitle());
+        base::android::ConvertUTF16ToJavaString(env, controller->GetSubtitle());
     std::pair<std::u16string, std::u16string> differences =
-        controller_->GetDiffFromOldToNewProfile();
+        controller->GetDiffFromOldToNewProfile();
     ScopedJavaLocalRef<jstring> old_details =
         base::android::ConvertUTF16ToJavaString(env, differences.first);
     ScopedJavaLocalRef<jstring> new_details =
@@ -104,11 +102,11 @@
                                                    old_details, new_details);
   } else {
     ScopedJavaLocalRef<jstring> address =
-        base::android::ConvertUTF16ToJavaString(env, controller_->GetAddress());
+        base::android::ConvertUTF16ToJavaString(env, controller->GetAddress());
     ScopedJavaLocalRef<jstring> email =
-        base::android::ConvertUTF16ToJavaString(env, controller_->GetEmail());
+        base::android::ConvertUTF16ToJavaString(env, controller->GetEmail());
     ScopedJavaLocalRef<jstring> phone = base::android::ConvertUTF16ToJavaString(
-        env, controller_->GetPhoneNumber());
+        env, controller->GetPhoneNumber());
     Java_SaveAddressProfilePrompt_setSaveDetails(env, java_object_, address,
                                                  email, phone);
   }
diff --git a/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.h b/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.h
index 842c803e..204f3ac4 100644
--- a/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.h
+++ b/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.h
@@ -35,16 +35,16 @@
   bool Show(SaveAddressProfilePromptController* controller,
             const AutofillProfile& profile,
             bool is_update) override;
-  void RefreshContent() override;
 
  private:
+  // Populates the content of the existing `java_object_` as a save or update
+  // prompt (according to `is_update`) with the details supplied by the
+  // `controller`.
+  void SetContent(SaveAddressProfilePromptController* controller,
+                  bool is_update);
+
   // The corresponding Java SaveAddressProfilePrompt owned by this class.
   base::android::ScopedJavaGlobalRef<jobject> java_object_;
-  // If the view is shown, true means it is an update prompt, false means it is
-  // a save prompt.
-  bool is_update_ = false;
-  // The controller to supply the content for the view,
-  SaveAddressProfilePromptController* controller_ = nullptr;
   content::WebContents* web_contents_;
 };
 
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
index ceb3976..e67fe4c 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -2799,7 +2799,7 @@
         Activity
       </message>
       <message name="IDS_FEED_MANAGE_ACTIVITY_DESCRIPTION" desc="Content description to manage my activity from the feed header overflow menu.">
-        Control your Google accounts data
+        Control your Google Account data
       </message>
       <message name="IDS_FEED_MANAGE_INTERESTS" desc="Menu item to manage settings from the feed header overflow menu.">
         Interests
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_ACTIVITY_DESCRIPTION.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_ACTIVITY_DESCRIPTION.png.sha1
index af3ed8e..98784588 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_ACTIVITY_DESCRIPTION.png.sha1
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_FEED_MANAGE_ACTIVITY_DESCRIPTION.png.sha1
@@ -1 +1 @@
-489b5bdc1a915b302f8e94332ea74d0d1d871b94
\ No newline at end of file
+ccd67bcd7bde95182892eca50fb30e6f8193696f
\ No newline at end of file
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 b9a6684c..1a928a73c 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Maak huidige oortjie toe</translation>
 <translation id="1258753120186372309">Google-logoskets: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Kon nie <ph name="CONTENT_TYPE" /> deel nie.</translation>
-<translation id="1276279242344007853">Bestuur die werwe wat jy volg</translation>
 <translation id="1283039547216852943">Tik om uit te vou</translation>
 <translation id="1285310382777185058">Verander taal</translation>
 <translation id="1291207594882862231">Maak geskiedenis, webkoekies, werfdata, kas skoon …</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Jy sal binnekort stories van <ph name="SITE_NAME" /> af sien wanneer jy 'n nuwe oortjie oopmaak. Jy kan die werwe wat jy volg, beheer in Bestuur wat gevolg word.</translation>
 <translation id="4699172675775169585">Gekaste prente en lêers</translation>
 <translation id="4714588616299687897">Spaar tot 60% van jou data</translation>
-<translation id="4716066120200945007">VOLG TANS</translation>
 <translation id="4719927025381752090">Aanbieding om te vertaal</translation>
 <translation id="4720023427747327413">Maak in <ph name="PRODUCT_NAME" /> oop</translation>
 <translation id="4720982865791209136">Help om Chrome te verbeter. <ph name="BEGIN_LINK" />Neem aan die opname deel<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Stel terug</translation>
 <translation id="5942872142862698679">Gebruik Google om te soek</translation>
 <translation id="5951119116059277034">Bekyk tans regstreekse bladsy</translation>
-<translation id="5951615825629292797">Taal is gereed; herbegin <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Stuur die URL van 'n bladsy wat jy probeer bereik na Google toe</translation>
 <translation id="5956665950594638604">Maak die Chrome-hulpsentrum in 'n nuwe oortjie oop</translation>
 <translation id="5957442310066583693">Tik op die Tuisknoppie om jou topwerwe te sien</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Moet nooit werwe vertaal nie</translation>
 <translation id="8349013245300336738">Rangskik volgens hoeveelheid data gebruik</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> aflaaie is teruggestel</translation>
-<translation id="8362134094656482681">Bestuur die onderwerpe waarin jy belangstel</translation>
 <translation id="8364299278605033898">Sien gewilde webwerwe</translation>
 <translation id="8368027906805972958">Onbekende of ongesteunde toestel (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> is gereed.</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 fd82f32..d3bd996 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">የአሁኑን ትር ዝጋ</translation>
 <translation id="1258753120186372309">Google doodle፦ <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ን ማጋራት አልተቻለም።</translation>
-<translation id="1276279242344007853">የሚከተሏቸውን ጣቢያዎች ያስተዳድሩ</translation>
 <translation id="1283039547216852943">ለመዘርጋት መታ ያድርጉ</translation>
 <translation id="1285310382777185058">ቋንቋ ይቀይሩ</translation>
 <translation id="1291207594882862231">ታሪክ፣ ኩኪዎች፣ የጣቢያ ውሂብ፣ መሸጎጫን አጽዳ…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">በቅርቡ አዲስ ትር ሲከፍቱ ከ<ph name="SITE_NAME" /> የመጡ ታሪኮችን ይመለከታሉ። የሚከተሏቸውን ጣቢያዎች በ«የምከተላቸውን አቀናብር» ውስጥ ማቀናበር ይችላሉ።</translation>
 <translation id="4699172675775169585">የተሸጎጡ ምስሎች እና ፋይሎች</translation>
 <translation id="4714588616299687897">እስከ 60% የሚደርስ ውሂብዎን ይቆጥቡ</translation>
-<translation id="4716066120200945007">በመከተል ላይ</translation>
 <translation id="4719927025381752090">ለመተርጎም ጥያቄ አቅርብ</translation>
 <translation id="4720023427747327413">በ<ph name="PRODUCT_NAME" /> ውስጥ ክፈት</translation>
 <translation id="4720982865791209136">Chrome እንዲሻሻል ያግዙ። <ph name="BEGIN_LINK" />የዳሰሳ ጥናት ይወሰዱ<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">ዳግም አስጀምር</translation>
 <translation id="5942872142862698679">ለፍለጋ Googleን መጠቀም</translation>
 <translation id="5951119116059277034">የቀጥታ ስርጭት ገጽን በማየት ላይ</translation>
-<translation id="5951615825629292797">ቋንቋ ዝግጁ ነው፣ <ph name="APP_NAME" />ን እንደገና ያስጀምሩ</translation>
 <translation id="5952764234151283551">ሊደርሱበት እየሞከሩ ያሉትን ገጽ ዩአርኤል ወደ Google ይልካል</translation>
 <translation id="5956665950594638604">የChrome እገዛ ማዕከልን በአዲስ ትር ውስጥ ክፈት</translation>
 <translation id="5957442310066583693">ከፍተኛዎቹን የእርስዎ ጣቢያዎች ለማየት የመነሻ አዝራሩን መታ ያድርጉት</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">ጣቢያዎችን በጭራሽ አይተርጉሙ</translation>
 <translation id="8349013245300336738">ጥቅም ላይ በዋለው የውሂብ መጠን ደርድር</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ውርዶች ወደነበሩበት ተመልሰዋል</translation>
-<translation id="8362134094656482681">የሚፈልጓቸውን ርዕሶች ያቀናብሩ</translation>
 <translation id="8364299278605033898">ታዋቂ ድር ጣቢያዎችን ይመልከቱ</translation>
 <translation id="8368027906805972958">ያልታወቀ ወይም የማይደገፍ መሣሪያ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> ዝግጁ ነው።</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 08fb0bb0..32918106a 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">إغلاق علامة التبويب الحالية</translation>
 <translation id="1258753120186372309">‏رسم الشعار المبتكر من Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">تعذَّرت مشاركة <ph name="CONTENT_TYPE" />.</translation>
-<translation id="1276279242344007853">إدارة المواقع الإلكترونية التي تتابعها</translation>
 <translation id="1283039547216852943">النقر للتوسيع</translation>
 <translation id="1285310382777185058">تغيير اللغة</translation>
 <translation id="1291207594882862231">محو السجل وملفات تعريف الارتباط وبيانات المواقع الإلكترونية وذاكرة التخزين المؤقت…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">قريبًا، ستظهر لك قصص من <ph name="SITE_NAME" /> عند فتح علامة تبويب جديدة. ويمكنك التحكّم في المواقع الإلكترونية التي تتابعها من خلال "إدارة المواقع الإلكترونية التي تتم متابعتها".</translation>
 <translation id="4699172675775169585">الصور والملفات المخزنة مؤقتًا</translation>
 <translation id="4714588616299687897">توفير ما يصل إلى 60% من بياناتك</translation>
-<translation id="4716066120200945007">تتم حاليًا متابعة:</translation>
 <translation id="4719927025381752090">عرض ترجمة</translation>
 <translation id="4720023427747327413">الفتح في <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">‏المساعدة في تحسين Chrome. <ph name="BEGIN_LINK" />المشاركة في الاستطلاع<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">إعادة الضبط</translation>
 <translation id="5942872142862698679">‏استخدام محرك Google للبحث</translation>
 <translation id="5951119116059277034">الاطّلاع على صفحة العرض المباشر</translation>
-<translation id="5951615825629292797">تم تنزيل حزمة اللغة المطلوبة. يُرجى إعادة تشغيل <ph name="APP_NAME" />.</translation>
 <translation id="5952764234151283551">‏يُرسِل عنوان URL لصفحة تحاول الوصول إليها إلى Google.</translation>
 <translation id="5956665950594638604">‏فتح مركز مساعدة Chrome في علامة تبويب جديدة</translation>
 <translation id="5957442310066583693">للاطّلاع على أهم المواقع الإلكترونية، انقر على زر "الشاشة الرئيسية".</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">مواقع إلكترونية لا أريد ترجمتها مطلقًا</translation>
 <translation id="8349013245300336738">الترتيب حسب مقدار البيانات المُستخدَمة</translation>
 <translation id="835847953965672673">تمّت استعادة <ph name="NUMBER_OF_DOWNLOADS" /> عملية تنزيل.</translation>
-<translation id="8362134094656482681">إدارة المواضيع التي تحظى باهتمامك</translation>
 <translation id="8364299278605033898">عرض المواقع الإلكترونية الشائعة</translation>
 <translation id="8368027906805972958">جهاز غير معروف أو غير متوافق (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">تم تنزيل حزمة اللغة <ph name="LANG" />.</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 b8484b4..876238c 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">বর্তমানৰ টেবটো বন্ধ কৰক</translation>
 <translation id="1258753120186372309">Google ডুডল্‌: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> শ্বেয়াৰ কৰিব পৰা নগ’ল</translation>
-<translation id="1276279242344007853">আপুনি ফ’ল’ কৰি থকা ছাইটসমূহ পৰিচালনা কৰক</translation>
 <translation id="1283039547216852943">বিস্তাৰ কৰিবলৈ টিপক</translation>
 <translation id="1285310382777185058">ভাষা সলনি কৰক</translation>
 <translation id="1291207594882862231">সন্ধান ইতিহাস, কুকি, ছাইটৰ ডেটা, কেশ্ব মচক…</translation>
@@ -533,6 +532,7 @@
 <translation id="4583164079174244168">{MINUTES,plural, =1{# মিনিট পূর্বে}one{# মিনিট পূর্বে}other{# মিনিট পূর্বে}}</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4594952190837476234">এই অফলাইন পৃষ্ঠাটো <ph name="CREATION_TIME" />ৰ আৰু এই পৃষ্ঠাটো অনলাইন সংস্কৰণতকৈ বেলেগ হ’ব পাৰে।</translation>
+<translation id="4615382002648696011">ফ'ল' কৰি থকা, নপঢ়া কাহিনীবোৰ সাজু আছে</translation>
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> খোলক</translation>
 <translation id="4619564267100705184">এয়া আপুনিয়েই বুলি সত্যাপন কৰক</translation>
 <translation id="4634124774493850572">পাছৱৰ্ড দিয়ক</translation>
@@ -549,7 +549,6 @@
 <translation id="4697543623252708062">সোনকালে, আপুনি এটা নতুন টেব খুলিলে <ph name="SITE_NAME" />ৰ কাহিনী দেখা পাব। আপুনি ফ'ল' কৰা ছাইট পৰিচালনা কৰকত আপুনি ফ'ল' কৰা ছাইট পৰিচালনা কৰিব পাৰে।</translation>
 <translation id="4699172675775169585">কেশ্ব প্ৰতিচ্ছবি আৰু ফাইল</translation>
 <translation id="4714588616299687897">আপোনাৰ ডেটা ৬০% পর্যন্ত ৰাহি কৰক</translation>
-<translation id="4716066120200945007">ফ’ল’ কৰি থকা হৈছে</translation>
 <translation id="4719927025381752090">অনুবাদ কৰাৰ প্ৰস্তাৱ দিয়ক</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />ত খোলক</translation>
 <translation id="4720982865791209136">Chromeক উন্নত কৰাত সহায় কৰক। <ph name="BEGIN_LINK" />সমীক্ষাত ভাগ লওক<ph name="END_LINK" /></translation>
@@ -751,7 +750,6 @@
 <translation id="5939518447894949180">ৰিছেট কৰক</translation>
 <translation id="5942872142862698679">সন্ধান কৰিবলৈ Google ব্যৱহাৰ কৰি থকা হৈছে</translation>
 <translation id="5951119116059277034">লাইভ পৃষ্ঠা চাই আছে</translation>
-<translation id="5951615825629292797">ভাষা সাজু হৈছে, <ph name="APP_NAME" /> ৰিষ্টাৰ্ট কৰক</translation>
 <translation id="5952764234151283551">আপুনি খুলিবলৈ চেষ্টা কৰি থকা পৃষ্ঠাটোৰ URL Googleলৈ পঠিয়াওক</translation>
 <translation id="5956665950594638604">এটা নতুন টেবত Chrome সহায় কেন্দ্ৰ খোলক</translation>
 <translation id="5957442310066583693">আপোনাৰ শীৰ্ষ ছাইটসমূহ চাবলৈ, গৃহপৃষ্ঠাৰ বুটামটো টিপক</translation>
@@ -1129,7 +1127,6 @@
 <translation id="834313815369870491">কেতিয়াও অনুবাদ কৰিব নলগীয়া ছাইট</translation>
 <translation id="8349013245300336738">ব্যৱহাৰ কৰা ডেটাৰ পৰিমাণ অনুসৰি সজাওক</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> টা ডাউনল’ড পুনঃস্থাপন কৰা হৈছে</translation>
-<translation id="8362134094656482681">আপুনি আগ্ৰহ প্ৰকাশ কৰা বিষয়বস্তু পৰিচালনা কৰক</translation>
 <translation id="8364299278605033898">জনপ্ৰিয় ৱেবছাইটসমূহ চাওক</translation>
 <translation id="8368027906805972958">অজ্ঞাত অথবা অসমৰ্থিত ডিভাইচ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> সাজু আছে।</translation>
@@ -1177,6 +1174,7 @@
 <translation id="8659579665266920523">Chromeৰ জৰিয়তে কেনেকৈ সন্ধান কৰিব লাগে</translation>
 <translation id="8662811608048051533">অধিকাংশ ছাইটৰ পৰা আপোনাক ছাইন আউট কৰায়।</translation>
 <translation id="8664979001105139458">এই ফাইলৰ নামটো ইতিমধ্যে আছে</translation>
+<translation id="8676789164135894283">ছাইন ইন কৰাৰ সত্যাপন</translation>
 <translation id="8683039184091909753">প্ৰতিচ্ছবি</translation>
 <translation id="8687353297350450808">{N_BARS,plural, =1{ছিগনেলৰ ক্ষমতাৰ স্তৰ: # বাৰ}one{ছিগনেলৰ ক্ষমতাৰ স্তৰ: # বাৰ}other{ছিগনেলৰ ক্ষমতাৰ স্তৰ: # বাৰ}}</translation>
 <translation id="869891660844655955">ম্যাদ উকলাৰ তাৰিখ</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 93f01695..9efaf92 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Cari paneli bağlayın</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> paylaşmaq mümkün olmnadı</translation>
-<translation id="1276279242344007853">İzlədiyiniz saytları idarə edin</translation>
 <translation id="1283039547216852943">Genişləndirmək üçün klikləyin</translation>
 <translation id="1285310382777185058">Dili dəyişin</translation>
 <translation id="1291207594882862231">Tarixçə, kuki, sayt datası və keşi təmizləyin…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Tezliklə yeni tab açdığınız zaman <ph name="SITE_NAME" /> saytından hekayələri görəcəksiniz. İzlədiyiniz saytları İzləmələri İdarəetmə bölməsində idarə edə bilərsiniz.</translation>
 <translation id="4699172675775169585">Keşlənmiş şəkillər və fayllar</translation>
 <translation id="4714588616299687897">60% data istifadəsinə qənaət edin</translation>
-<translation id="4716066120200945007">İZLƏNİLİR</translation>
 <translation id="4719927025381752090">Tərcümə təklif edin</translation>
 <translation id="4720023427747327413">Aç <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Chrome'u təkmilləşdirin. <ph name="BEGIN_LINK" />Sorğuya qatılın<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Sıfırlayın</translation>
 <translation id="5942872142862698679">Axtarış üçün Google istifadə edilir</translation>
 <translation id="5951119116059277034">Canlı səhifəyə baxılır</translation>
-<translation id="5951615825629292797">Dil hazırdır, <ph name="APP_NAME" /> tətbiqini yenidən başladın</translation>
 <translation id="5952764234151283551">Daxil olmağa çalışdığınız səhifənin veb ünvanı Google'a göndərilir</translation>
 <translation id="5956665950594638604">Chrome Yardım Mərkəzini yeni paneldə açın</translation>
 <translation id="5957442310066583693">Populyar saytlara baxmaq üçün Əsas səhifə düyməsinə toxunun</translation>
@@ -1129,10 +1126,10 @@
 <translation id="834313815369870491">Saytları heç vaxt tərcümə etməyin</translation>
 <translation id="8349013245300336738">İstifadə edilmiş data həcminə görə çeşidləyin</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> endirmə bərpa edilib</translation>
-<translation id="8362134094656482681">Sizi maraqlandıran mövzuları idarə edin</translation>
 <translation id="8364299278605033898">Populyar veb saytlara baxın</translation>
 <translation id="8368027906805972958">Naməlum və ya dəstəklənməyən cihaz (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> hazırdır.</translation>
+<translation id="8387617938027387193">Kimliyinizi doğrulayın</translation>
 <translation id="8393700583063109961">Mesaj göndərin</translation>
 <translation id="8410695015584479363">Qiymətləri izləyin</translation>
 <translation id="8413126021676339697">Tam tarixçəni göstərin</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 ea3dda2..7f8da32 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Закрыць бягучую ўкладку</translation>
 <translation id="1258753120186372309">Дудл Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Не ўдалося абагуліць змесціва наступнага тыпу: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Кіруйце сайтамі, на якія вы падпісаліся</translation>
 <translation id="1283039547216852943">Дакраніцеся, каб разгарнуць</translation>
 <translation id="1285310382777185058">Змяніць мову</translation>
 <translation id="1291207594882862231">Ачысціць гісторыю, файлы cookie, даныя сайта, кэш…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Неўзабаве пры адкрыцці новай укладкі вы будзеце бачыць артыкулы з сайта <ph name="SITE_NAME" />. Кіраваць падпіскамі на выбраныя вамі сайты можна ў раздзеле "Кіраванне падпіскамі".</translation>
 <translation id="4699172675775169585">Відарысы і файлы ў кэшы</translation>
 <translation id="4714588616299687897">Эканомце да 60 % трафіка</translation>
-<translation id="4716066120200945007">ВЫ ПАДПІСАНЫ</translation>
 <translation id="4719927025381752090">Прапаноўваць пераклад</translation>
 <translation id="4720023427747327413">Адкрыць у <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Дапамажыце палепшыць Chrome. <ph name="BEGIN_LINK" />Прыміце ўдзел у апытанні<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Скінуць</translation>
 <translation id="5942872142862698679">Выкарыстоўваецца пошукавая сістэма Google</translation>
 <translation id="5951119116059277034">Праглядаецца апублікаваная версія старонкі</translation>
-<translation id="5951615825629292797">Мова гатовая да выкарыстання, перазапусціце <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Адпраўляе ў Google URL-адрас старонкі, якую вы спрабуеце адкрыць</translation>
 <translation id="5956665950594638604">Адкрыць Даведачны цэнтр Chrome у новай укладцы</translation>
 <translation id="5957442310066583693">Каб прагледзець папулярныя сайты, націсніце кнопку "Галоўная старонка"</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">Ніколі не перакладаць наступныя сайты:</translation>
 <translation id="8349013245300336738">Сартаваць па аб'ёме выкарыстанага трафіка</translation>
 <translation id="835847953965672673">Спамповак адноўлена: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Кіруйце цікавымі для вас тэмамі</translation>
 <translation id="8364299278605033898">Праглядайце папулярныя вэб-сайты</translation>
 <translation id="8368027906805972958">Прылада невядомая або не падтрымліваецца (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Моўны пакет (<ph name="LANG" />) спампаваны.</translation>
+<translation id="8387617938027387193">Прайдзіце спраўджанне асобы</translation>
 <translation id="8393700583063109961">Адправіць паведамленне</translation>
 <translation id="8410695015584479363">Адсочваць цэны</translation>
 <translation id="8413126021676339697">Паказаць усю гісторыю</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 464e206..89cf8f4 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Затваряне на текущия раздел</translation>
 <translation id="1258753120186372309">Драскулка на Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Споделянето на <ph name="CONTENT_TYPE" /> не бе възможно</translation>
-<translation id="1276279242344007853">Управление на сайтовете, които следите</translation>
 <translation id="1283039547216852943">Докоснете за разгъване</translation>
 <translation id="1285310382777185058">Промяна на езика</translation>
 <translation id="1291207594882862231">Изчистване на историята, „бисквитките“, данните за сайтове и кеша…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Скоро ще виждате материали от <ph name="SITE_NAME" />, когато отворите нов раздел. Можете да управлявате сайтовете, които следвате, в „Управление на следванията“.</translation>
 <translation id="4699172675775169585">Кеширани изображения и файлове</translation>
 <translation id="4714588616299687897">Икономисвайте до 60% от данните</translation>
-<translation id="4716066120200945007">СЛЕДВАТЕ</translation>
 <translation id="4719927025381752090">Предложения за превод</translation>
 <translation id="4720023427747327413">Отваряне в <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Помогнете за подобряването на Chrome. <ph name="BEGIN_LINK" />Участвайте в анкетата<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Нулиране</translation>
 <translation id="5942872142862698679">За търсене ще се използва Google</translation>
 <translation id="5951119116059277034">Показва се активната страница</translation>
-<translation id="5951615825629292797">Езикът е готов, рестартирайте <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Изпраща до Google URL адреса на страницата, която искате да посетите</translation>
 <translation id="5956665950594638604">Отваряне на Помощния център на Chrome в нов раздел</translation>
 <translation id="5957442310066583693">За да видите водещите сайтове за вас, докоснете бутона „Начало“</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Сайтове, които никога да не се превеждат</translation>
 <translation id="8349013245300336738">Сортиране по количеството използвани данни</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> изтегляния бяха възстановени</translation>
-<translation id="8362134094656482681">Управлявайте темите, от които се интересувате</translation>
 <translation id="8364299278605033898">Вижте популярните уебсайтове</translation>
 <translation id="8368027906805972958">Неизвестно или неподдържано устройство (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Пакетът за <ph name="LANG" /> е готов.</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 8bba24d..2fea95fb 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">বর্তমান ট্যাব বন্ধ করুন</translation>
 <translation id="1258753120186372309">Google ডুডল: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> শেয়ার করা যায়নি</translation>
-<translation id="1276279242344007853">আপনি যেসব সাইট ফলো করেন সেগুলি ম্যানেজ করুন</translation>
 <translation id="1283039547216852943">প্রসারিত করতে আলতো চাপুন</translation>
 <translation id="1285310382777185058">ভাষা পরিবর্তন করুন</translation>
 <translation id="1291207594882862231">ইতিহাস, কুকিজ, সাইট ডেটা, ক্যাশে সাফ করে...</translation>
@@ -552,7 +551,6 @@
 <translation id="4697543623252708062">শীঘ্রই আপনি নতুন কোনও ট্যাব খুললেই, <ph name="SITE_NAME" />-এর গল্প পড়তে পারবেন। 'ফলো করা সাইট ম্যানেজ করুন' বিকল্প থেকে আপনার ফলো করা সাইটগুলি নিয়ন্ত্রণ করতে পারেন।</translation>
 <translation id="4699172675775169585">ক্যাশে করা ছবি এবং ফাইলগুলি</translation>
 <translation id="4714588616299687897">আপনার ডেটা ৬০% পর্যন্ত সেভ করুন</translation>
-<translation id="4716066120200945007">ফলো করছেন</translation>
 <translation id="4719927025381752090">অনুবাদ করুন</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> এ খুলুন</translation>
 <translation id="4720982865791209136">Chrome উন্নত করতে সাহায্য করুন। <ph name="BEGIN_LINK" />সমীক্ষায় অংশ নিন।<ph name="END_LINK" /></translation>
@@ -754,7 +752,6 @@
 <translation id="5939518447894949180">রিসেট করুন</translation>
 <translation id="5942872142862698679">সার্চের জন্য Google কে ব্যবহার করছে</translation>
 <translation id="5951119116059277034">লাইভ পৃষ্ঠা দেখছেন</translation>
-<translation id="5951615825629292797">ভাষা ডাউনলোড হয়ে গেছে, <ph name="APP_NAME" /> রিস্টার্ট করুন</translation>
 <translation id="5952764234151283551">যে পৃষ্ঠাটি দেখার চেষ্টা করছেন Google-কে সেটির ইউআরএল পাঠায়</translation>
 <translation id="5956665950594638604">Chrome সহায়তা কেন্দ্রকে একটি নতুন ট্যাবে খুলুন</translation>
 <translation id="5957442310066583693">আপনার জন্য বেছে নেওয়া সেরা সাইট দেখতে 'হোম' বোতাম টিপুন</translation>
@@ -1133,10 +1130,10 @@
 <translation id="834313815369870491">সাইট কখনও অনুবাদ করবেন না</translation>
 <translation id="8349013245300336738">ব্যবহার করা ডেটার পরিমাণ অনুযায়ী সাজান</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" />টি ডাউনলোড ফিরিয়ে আনা হয়েছে</translation>
-<translation id="8362134094656482681">আপনার আগ্রহের বিষয় ম্যানেজ করুন</translation>
 <translation id="8364299278605033898">জনপ্রিয় ওয়েবসাইট দেখুন</translation>
 <translation id="8368027906805972958">অপরিচিত বা কাজ করে না এমন ডিভাইস (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> ভাষা ডাউনলোড হয়ে গেছে।</translation>
+<translation id="8387617938027387193">আপনার পরিচয় যাচাই করান</translation>
 <translation id="8393700583063109961">বার্তা পাঠান</translation>
 <translation id="8410695015584479363">দাম ট্র্যাক করুন</translation>
 <translation id="8413126021676339697">সম্পূর্ণ ইতিহাস দেখান</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 38bb26a5..72644a5 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Zatvori trenutnu karticu</translation>
 <translation id="1258753120186372309">Google crtež: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Nije moguće podijeliti <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Upravljajte web lokacijama koje pratite</translation>
 <translation id="1283039547216852943">Dodirnite da proširite</translation>
 <translation id="1285310382777185058">Promijenite jezik</translation>
 <translation id="1291207594882862231">Brisanje historije, kolačića, podataka web lokacija, keš memorije…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Uskoro ćete vidjeti priče s web lokacije <ph name="SITE_NAME" /> kada otvorite novu karticu. Možete upravljati web lokacijama koje pratite u meniju Upravljajte praćenjima.</translation>
 <translation id="4699172675775169585">Slike i fajlovi u keš memoriji</translation>
 <translation id="4714588616299687897">Sačuvajte do 60% podataka</translation>
-<translation id="4716066120200945007">PRATITE</translation>
 <translation id="4719927025381752090">Ponudi prijevod</translation>
 <translation id="4720023427747327413">Otvori u aplikaciji <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Pomozite nam da poboljšamo Chrome. <ph name="BEGIN_LINK" />Učestvujte u anketi<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Ponovno postavi</translation>
 <translation id="5942872142862698679">Korištenje Googlea za pretraživanje</translation>
 <translation id="5951119116059277034">Prikazivanje aktivne stranice</translation>
-<translation id="5951615825629292797">Jezik je spreman. Ponovo pokrenite aplikaciju <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Googleu šalje URL stranice kojoj pokušavate pristupiti</translation>
 <translation id="5956665950594638604">Otvori Chrome Centar za pomoć u novoj kartici</translation>
 <translation id="5957442310066583693">Da pogledate najpopularnije web lokacije, dodirnite dugme za početni ekran</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Nikad ne prevodi web lokacije</translation>
 <translation id="8349013245300336738">Poredaj po količini korištenih podataka</translation>
 <translation id="835847953965672673">Broj vraćenih preuzimanja: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Upravljajte temama koje vas zanimaju</translation>
 <translation id="8364299278605033898">Pogledajte popularne web lokacije</translation>
 <translation id="8368027906805972958">Nepoznat ili nepodržan uređaj (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Jezik <ph name="LANG" /> je spreman.</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 55491a7f..faf0aa4 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Tanca la pestanya actual</translation>
 <translation id="1258753120186372309">Doodle de Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">No s'ha pogut compartir <ph name="CONTENT_TYPE" />.</translation>
-<translation id="1276279242344007853">Gestiona els llocs web que segueixes</translation>
 <translation id="1283039547216852943">Toca per desplegar</translation>
 <translation id="1285310382777185058">Canvia d'idioma</translation>
 <translation id="1291207594882862231">Esborra l'historial, les galetes, les dades dels llocs web, la memòria cau, etc.</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Properament, quan obris una pestanya nova, podràs veure històries de <ph name="SITE_NAME" />. Pots controlar els llocs web que segueixes a Gestiona els seguiments.</translation>
 <translation id="4699172675775169585">Imatges i fitxers desats a la memòria cau</translation>
 <translation id="4714588616299687897">Estalvia fins a un 60% de les dades</translation>
-<translation id="4716066120200945007">SEGUINT</translation>
 <translation id="4719927025381752090">Proposa traduir aquest idioma</translation>
 <translation id="4720023427747327413">Obre a <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Ajuda a millorar Chrome. <ph name="BEGIN_LINK" />Respon a l'enquesta<ph name="END_LINK" />.</translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Restableix</translation>
 <translation id="5942872142862698679">S'utilitza Google per a la cerca</translation>
 <translation id="5951119116059277034">Es mostra la pàgina publicada</translation>
-<translation id="5951615825629292797">L'idioma està llest, reinicia <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Envia a Google l'URL d'una pàgina que estàs provant de visitar</translation>
 <translation id="5956665950594638604">Obre Centre d'ajuda de Chrome en una pestanya nova</translation>
 <translation id="5957442310066583693">Per consultar els llocs web que més visites, toca el botó d'inici</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">No tradueixis mai els llocs web</translation>
 <translation id="8349013245300336738">Ordena per quantitat de dades utilitzades</translation>
 <translation id="835847953965672673">S'han restaurat <ph name="NUMBER_OF_DOWNLOADS" /> baixades</translation>
-<translation id="8362134094656482681">Gestiona els temes que t'interessen</translation>
 <translation id="8364299278605033898">Mostra llocs web populars</translation>
 <translation id="8368027906805972958">Dispositiu desconegut o no admès (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> ja està a punt.</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 c7197ed..993269d 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Zavřít aktuální kartu</translation>
 <translation id="1258753120186372309">Sváteční logo Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Sdílení obsahu typu <ph name="CONTENT_TYPE" /> se nezdařilo</translation>
-<translation id="1276279242344007853">Spravovat sledované weby</translation>
 <translation id="1283039547216852943">Klepnutím rozbalíte</translation>
 <translation id="1285310382777185058">Změna jazyka</translation>
 <translation id="1291207594882862231">Vymazat historii, soubory cookie, data webů, mezipaměť…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Brzy se vám po otevření nové karty začnou zobrazovat články z webu <ph name="SITE_NAME" />. Sledované weby můžete ovládat v sekci Spravovat sledované.</translation>
 <translation id="4699172675775169585">Obrázky a soubory v mezipaměti</translation>
 <translation id="4714588616299687897">Uspořte až 60 % svých dat</translation>
-<translation id="4716066120200945007">SLEDUJETE</translation>
 <translation id="4719927025381752090">Nabízet překlad</translation>
 <translation id="4720023427747327413">Otevřít v aplikaci <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Pomozte Chrome zlepšit. <ph name="BEGIN_LINK" />Zúčastněte se průzkumu<ph name="END_LINK" />.</translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Resetovat</translation>
 <translation id="5942872142862698679">K vyhledávání se používá Google</translation>
 <translation id="5951119116059277034">Zobrazení aktivní stránky</translation>
-<translation id="5951615825629292797">Jazyk je připraven, restartujte aplikaci <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Odesílá do Googlu adresu URL stránky, na kterou se pokoušíte přejít</translation>
 <translation id="5956665950594638604">Otevřít centrum nápovědy Chrome na nové kartě</translation>
 <translation id="5957442310066583693">Chcete-li zobrazit své top weby, klepněte na tlačítko domovské stránky</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">Weby nikdy nepřekládat</translation>
 <translation id="8349013245300336738">Seřadit podle množství využitých dat</translation>
 <translation id="835847953965672673">Obnovená stahování: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Spravovat témata, která vás zajímají</translation>
 <translation id="8364299278605033898">Zobrazit populární weby</translation>
 <translation id="8368027906805972958">Neznámé nebo nepodporované zařízení (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Jazyk <ph name="LANG" /> je připravený.</translation>
+<translation id="8387617938027387193">Potvrďte, že jste to vy</translation>
 <translation id="8393700583063109961">Odeslat zprávu</translation>
 <translation id="8410695015584479363">Sledovat ceny</translation>
 <translation id="8413126021676339697">Zobrazit celou historii</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 359d796..71ee002 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Luk aktuel fane</translation>
 <translation id="1258753120186372309">Google-doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Det var ikke muligt at dele <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Administrer de websites, du følger</translation>
 <translation id="1283039547216852943">Tryk for at udvide</translation>
 <translation id="1285310382777185058">Skift sprog</translation>
 <translation id="1291207594882862231">Ryd historik, cookies, websitedata, cache...</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Du får snart vist historier fra <ph name="SITE_NAME" />, når du åbner en ny fane. Du kan vælge, hvilke websites du følger, under Administrer Følger.</translation>
 <translation id="4699172675775169585">Billeder og filer, der er gemt i cache</translation>
 <translation id="4714588616299687897">Spar op til 60 % af dine data</translation>
-<translation id="4716066120200945007">FØLGER</translation>
 <translation id="4719927025381752090">Tilbyd at oversætte</translation>
 <translation id="4720023427747327413">Åbn i <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Vær med til at forbedre Chrome. <ph name="BEGIN_LINK" />Deltag i undersøgelsen<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Nulstil</translation>
 <translation id="5942872142862698679">Søgning via Google</translation>
 <translation id="5951119116059277034">Ser onlineside</translation>
-<translation id="5951615825629292797">Sproget er klar til brug – genstart <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Sender webadressen på en side, du forsøger at åbne, til Google</translation>
 <translation id="5956665950594638604">Åbn Hjælp til Chrome i en ny fane</translation>
 <translation id="5957442310066583693">Hvis du vil se dine mest anvendte websites, skal du trykke på knappen Hjem</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Oversæt aldrig websites</translation>
 <translation id="8349013245300336738">Sortér efter mængden af data, der er brugt</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> downloads blev gendannet</translation>
-<translation id="8362134094656482681">Administrer de emner, du er interesseret i</translation>
 <translation id="8364299278605033898">Se populære websites</translation>
 <translation id="8368027906805972958">Ukendt eller ikke-understøttet enhed (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> er klar.</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 845e2316..a178103 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Aktuellen Tab schließen</translation>
 <translation id="1258753120186372309">Google-Doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> konnte nicht geteilt werden</translation>
-<translation id="1276279242344007853">Websites verwalten, denen Sie folgen</translation>
 <translation id="1283039547216852943">Zum Maximieren tippen</translation>
 <translation id="1285310382777185058">Sprache ändern</translation>
 <translation id="1291207594882862231">Verlauf, Cookies, Websitedaten, Cache leeren…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Bald werden Sie beim Öffnen eines neuen Tabs „<ph name="SITE_NAME" />“-Artikel sehen. Wenn Sie die Websites verwalten möchten, denen Sie folgen, gehen Sie zu „Gefolgte Websites verwalten“.</translation>
 <translation id="4699172675775169585">Bilder und Dateien im Cache</translation>
 <translation id="4714588616299687897">Reduzieren Sie Ihre Daten um bis zu 60 %</translation>
-<translation id="4716066120200945007">FOLGE ICH</translation>
 <translation id="4719927025381752090">Übersetzung anbieten</translation>
 <translation id="4720023427747327413">In <ph name="PRODUCT_NAME" /> öffnen</translation>
 <translation id="4720982865791209136">Helfen Sie uns, Chrome zu verbessern. <ph name="BEGIN_LINK" />An Umfrage teilnehmen<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Zurücksetzen</translation>
 <translation id="5942872142862698679">Suche erfolgt mit Google</translation>
 <translation id="5951119116059277034">Live-Seite wird angezeigt</translation>
-<translation id="5951615825629292797">Sprachpaket heruntergeladen, <ph name="APP_NAME" /> neu starten</translation>
 <translation id="5952764234151283551">Die URL einer Seite, die Sie aufrufen möchten, wird an Google gesendet</translation>
 <translation id="5956665950594638604">Chrome-Hilfe in einem neuen Tab öffnen</translation>
 <translation id="5957442310066583693">Auf die Schaltfläche "Startseite" tippen, um Ihre Top-Websites aufzurufen</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Websites nie übersetzen</translation>
 <translation id="8349013245300336738">Nach Menge der verwendeten Daten sortieren</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> Downloads wurden wiederhergestellt</translation>
-<translation id="8362134094656482681">Themen verwalten, an denen Sie interessiert sind</translation>
 <translation id="8364299278605033898">Beliebte Websites ansehen</translation>
 <translation id="8368027906805972958">Unbekanntes oder nicht unterstütztes Gerät (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> ist bereit.</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 9a121817..304f218 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Κλείσιμο τρέχουσας καρτέλας</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Δεν ήταν δυνατή η κοινοποίηση <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Διαχειριστείτε τους ιστοτόπους που ακολουθείτε</translation>
 <translation id="1283039547216852943">Πατήστε για ανάπτυξη</translation>
 <translation id="1285310382777185058">Αλλαγή γλώσσας</translation>
 <translation id="1291207594882862231">Διαγραφή ιστορικού, cookie, δεδομένων ιστότοπου, κρυφής μνήμης…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Σύντομα, θα βλέπετε ειδήσεις από τον ιστότοπο <ph name="SITE_NAME" /> όταν ανοίγετε μια νέα καρτέλα. Μπορείτε να ελέγξετε τους ιστοτόπους που παρακολουθείτε στη Διαχείριση παρακολούθησης.</translation>
 <translation id="4699172675775169585">Εικόνες και αρχεία στην κρυφή μνήμη</translation>
 <translation id="4714588616299687897">Εξοικονομήστε έως και 60% των δεδομένων σας</translation>
-<translation id="4716066120200945007">ΑΚΟΛΟΥΘΕΙΤΕ</translation>
 <translation id="4719927025381752090">Πρόταση για μετάφραση</translation>
 <translation id="4720023427747327413">Άνοιγμα σε <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Συμβάλλετε στη βελτίωση του Chrome. <ph name="BEGIN_LINK" />Λάβετε μέρος στην έρευνα<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Επαναφορά</translation>
 <translation id="5942872142862698679">Χρήση του Google για αναζήτηση</translation>
 <translation id="5951119116059277034">Προβάλλεται η ζωντανή σελίδα</translation>
-<translation id="5951615825629292797">Η γλώσσα είναι έτοιμη. Επανεκκινήστε την εφαρμογή <ph name="APP_NAME" />.</translation>
 <translation id="5952764234151283551">Αποστέλλει στην Google το URL μιας σελίδας στην οποία προσπαθείτε να μεταβείτε</translation>
 <translation id="5956665950594638604">Άνοιγμα Κέντρου βοήθειας Chrome σε νέα καρτέλα</translation>
 <translation id="5957442310066583693">Για να δείτε τους κορυφαίους ιστοτόπους, πατήστε το κουμπί αρχικής οθόνης.</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Να μην γίνεται ποτέ μετάφραση ιστοτόπων</translation>
 <translation id="8349013245300336738">Ταξινόμηση κατά όγκο δεδομένων που χρησιμοποιήθηκαν</translation>
 <translation id="835847953965672673">Έγινε επαναφορά <ph name="NUMBER_OF_DOWNLOADS" /> λήψεων.</translation>
-<translation id="8362134094656482681">Διαχειριστείτε τα θέματα που σας ενδιαφέρουν</translation>
 <translation id="8364299278605033898">Δείτε δημοφιλείς ιστοτόπους</translation>
 <translation id="8368027906805972958">Άγνωστη ή μη υποστηριζόμενη συσκευή (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Η γλώσσα <ph name="LANG" /> είναι έτοιμη.</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 162c4be..4cba36c 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Close current tab</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Couldn't share <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Manage the sites that you're following</translation>
 <translation id="1283039547216852943">Tap to expand</translation>
 <translation id="1285310382777185058">Change language</translation>
 <translation id="1291207594882862231">Clear history, cookies, site data, cache…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Soon, you’ll see stories from <ph name="SITE_NAME" /> when you open a new tab. You can control the sites that you’re following in Manage Follows.</translation>
 <translation id="4699172675775169585">Cached images and files</translation>
 <translation id="4714588616299687897">Save up to 60% of your data</translation>
-<translation id="4716066120200945007">FOLLOWING</translation>
 <translation id="4719927025381752090">Offer to translate</translation>
 <translation id="4720023427747327413">Open in <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Help improve Chrome. <ph name="BEGIN_LINK" />Take survey<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Reset</translation>
 <translation id="5942872142862698679">Using Google for search</translation>
 <translation id="5951119116059277034">Viewing live page</translation>
-<translation id="5951615825629292797">Language ready, restart <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Sends the URL of a page that you're trying to reach to Google</translation>
 <translation id="5956665950594638604">Open the Chrome Help Centre in a new tab</translation>
 <translation id="5957442310066583693">To see your top sites, tap the Home button</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Never translate sites</translation>
 <translation id="8349013245300336738">Sort by amount of data used</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> downloads restored</translation>
-<translation id="8362134094656482681">Manage the topics that you're interested in</translation>
 <translation id="8364299278605033898">See popular websites</translation>
 <translation id="8368027906805972958">Unknown or unsupported device (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> is ready.</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 e5a2160..7f9ad46 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Cerrar la pestaña actual</translation>
 <translation id="1258753120186372309">Doodle de Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">No se pudo compartir <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Administra los sitios que sigues</translation>
 <translation id="1283039547216852943">Presiona para expandir</translation>
 <translation id="1285310382777185058">Cambiar el idioma</translation>
 <translation id="1291207594882862231">Borra el historial, las cookies, los datos del sitio, la caché…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Pronto, cuando abras una nueva pestaña, verás historias de <ph name="SITE_NAME" />. Puedes administrar los sitios que sigues en el menú Siguiendo.</translation>
 <translation id="4699172675775169585">Imágenes y archivos almacenados en caché</translation>
 <translation id="4714588616299687897">Ahorra hasta un 60% de tus datos</translation>
-<translation id="4716066120200945007">SIGUIENDO</translation>
 <translation id="4719927025381752090">Ofrecer la traducción</translation>
 <translation id="4720023427747327413">Abrir en <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Ayuda a mejorar Chrome. <ph name="BEGIN_LINK" />Realiza la encuesta<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Restablecer</translation>
 <translation id="5942872142862698679">Se usa Google para la búsqueda</translation>
 <translation id="5951119116059277034">Vista en vivo de la página</translation>
-<translation id="5951615825629292797">El idioma está listo; reinicia <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Envía a Google la URL de la página a la que intentas acceder</translation>
 <translation id="5956665950594638604">Abrir Centro de ayuda de Chrome en pestaña nueva</translation>
 <translation id="5957442310066583693">Para ver los sitios que más visitas, presiona el botón de la página principal</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Nunca traducir sitios</translation>
 <translation id="8349013245300336738">Ordenar por cantidad de datos utilizados</translation>
 <translation id="835847953965672673">Se restablecieron <ph name="NUMBER_OF_DOWNLOADS" /> descargas</translation>
-<translation id="8362134094656482681">Administra los temas que te interesan</translation>
 <translation id="8364299278605033898">Ver sitios populares</translation>
 <translation id="8368027906805972958">Dispositivo desconocido o no compatible (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">El idioma <ph name="LANG" /> está listo.</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 f16f87272..b511c91 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Cierra la pestaña actual</translation>
 <translation id="1258753120186372309">Doodles de Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">No se ha podido compartir: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Gestiona los sitios que sigues</translation>
 <translation id="1283039547216852943">Toca para ampliar</translation>
 <translation id="1285310382777185058">Cambiar idioma</translation>
 <translation id="1291207594882862231">Borra el historial, las cookies, los datos de sitios, la caché…</translation>
@@ -533,7 +532,7 @@
 <translation id="4583164079174244168">{MINUTES,plural, =1{Hace # minuto}other{Hace # minutos}}</translation>
 <translation id="4587589328781138893">Sitios web</translation>
 <translation id="4594952190837476234">Esta página sin conexión se creó el <ph name="CREATION_TIME" /> y puede ser distinta de la versión online.</translation>
-<translation id="4615382002648696011">Siguiente, historias no leídas listas</translation>
+<translation id="4615382002648696011">Siguiendo, hay historias no leídas</translation>
 <translation id="4616150815774728855">Abrir <ph name="WEBAPK_NAME" /></translation>
 <translation id="4619564267100705184">Verificar mi identidad</translation>
 <translation id="4634124774493850572">Utilizar contraseña</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Pronto verás historias de <ph name="SITE_NAME" /> cuando abras una pestaña nueva. Puedes gestionar los sitios que sigues en el menú Siguiendo.</translation>
 <translation id="4699172675775169585">Archivos e imágenes almacenados en caché</translation>
 <translation id="4714588616299687897">Ahorra hasta un 60% de tus datos</translation>
-<translation id="4716066120200945007">SIGUIENDO</translation>
 <translation id="4719927025381752090">Ofrecer la traducción</translation>
 <translation id="4720023427747327413">Abrir en <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136"><ph name="BEGIN_LINK" />Realiza la encuesta<ph name="END_LINK" /> para ayudar a mejorar Chrome</translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Restablecer</translation>
 <translation id="5942872142862698679">Google se ha establecido como motor de búsqueda predeterminado</translation>
 <translation id="5951119116059277034">Mostrando página publicada</translation>
-<translation id="5951615825629292797">Idioma listo, reinicia <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Envía a Google la URL de una página a la que intentas acceder</translation>
 <translation id="5956665950594638604">Abre la Ayuda de Chrome en una pestaña nueva</translation>
 <translation id="5957442310066583693">Para ver tus sitios favoritos, toca el botón de inicio</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">No traducir sitios nunca</translation>
 <translation id="8349013245300336738">Ordenar por cantidad de datos usados</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> descargas restauradas</translation>
-<translation id="8362134094656482681">Gestiona los temas que te interesan</translation>
 <translation id="8364299278605033898">Descubre los sitios web populares</translation>
 <translation id="8368027906805972958">Dispositivo desconocido o no compatible (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> ya está listo.</translation>
@@ -1181,7 +1177,7 @@
 <translation id="8659579665266920523">Cómo buscar con Chrome</translation>
 <translation id="8662811608048051533">Cierra tu sesión en la mayoría de los sitios.</translation>
 <translation id="8664979001105139458">El nombre del archivo ya existe</translation>
-<translation id="8676789164135894283">Verificaciones inicio de sesión</translation>
+<translation id="8676789164135894283">Verificar inicio de sesión</translation>
 <translation id="8683039184091909753">imagen</translation>
 <translation id="8687353297350450808">{N_BARS,plural, =1{Nivel de intensidad de la señal: # barra}other{Nivel de intensidad de la señal: # barras}}</translation>
 <translation id="869891660844655955">Fecha de caducidad</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 b0f4ed3..68ace17 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Aktiivse vahelehe sulgemine</translation>
 <translation id="1258753120186372309">Google'i Doodle'i vigurlogo: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Üksust <ph name="CONTENT_TYPE" /> ei õnnestunud jagada</translation>
-<translation id="1276279242344007853">Hallake saite, mida jälgite</translation>
 <translation id="1283039547216852943">Laiendamiseks puudutage</translation>
 <translation id="1285310382777185058">Keele muutmine</translation>
 <translation id="1291207594882862231">Ajaloo, küpsiste, saidiandmete, vahemälu kustutamine …</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Varsti näete uue vahelehe avamisel lugusid saidilt <ph name="SITE_NAME" />. Jälgitavaid saite saate hallata jaotises Jälgimise haldamine.</translation>
 <translation id="4699172675775169585">Vahemällu salvestatud kujutised ja failid</translation>
 <translation id="4714588616299687897">Säästke kuni 60% andmemahtu</translation>
-<translation id="4716066120200945007">JÄLGIN</translation>
 <translation id="4719927025381752090">Paku tõlkimist</translation>
 <translation id="4720023427747327413">Ava teenuses <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Aidake Chrome'i täiustada. <ph name="BEGIN_LINK" />Vastake küsitlusele<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Lähtesta</translation>
 <translation id="5942872142862698679">Otsimiseks kasutatakse Google'it</translation>
 <translation id="5951119116059277034">Kuvatud on aktiivne leht</translation>
-<translation id="5951615825629292797">Keel on valmis, taaskäivitage <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Saadab Google'ile teie soovitud lehe URL-i</translation>
 <translation id="5956665950594638604">Chrome'i abikeskuse avamine uuel vahelehel</translation>
 <translation id="5957442310066583693">Oma sageli külastatud saitide nägemiseks puudutage avakuva nuppu</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Ära kunagi tõlgi järgmisi saite</translation>
 <translation id="8349013245300336738">Sordi kasutatud andmemahu alusel</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> allalaadimist taastati</translation>
-<translation id="8362134094656482681">Hallake teemasid, mis teile huvi pakuvad</translation>
 <translation id="8364299278605033898">Vaadake populaarseid veebisaite</translation>
 <translation id="8368027906805972958">Tundmatu või toetamata seade (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> on valmis.</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 7bf30c39..1414d99 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Itxi oraingo fitxa</translation>
 <translation id="1258753120186372309">Google doodle-a: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Ezin izan da partekatu <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Kudeatu jarraitzen diezun webguneak</translation>
 <translation id="1283039547216852943">Sakatu zabaltzeko</translation>
 <translation id="1285310382777185058">Aldatu hizkuntza</translation>
 <translation id="1291207594882862231">Garbitu historia, cookieak, webguneetako datuak, cachea…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Laster, <ph name="SITE_NAME" /> webgunearen istorioak ikusiko dituzu fitxa berri bat irekitzean. Jarraitzaile zaituzten webguneak kontrolatzeko, joan haiek kudeatzeko atalera.</translation>
 <translation id="4699172675775169585">Cachean gordetako irudiak eta fitxategiak</translation>
 <translation id="4714588616299687897">Aurreztu datuen % 60raino</translation>
-<translation id="4716066120200945007">JARRAITZAILE ZAITUZTENAK</translation>
 <translation id="4719927025381752090">Eskaini itzultzea</translation>
 <translation id="4720023427747327413">Ireki <ph name="PRODUCT_NAME" />-n</translation>
 <translation id="4720982865791209136">Lagundu Chrome hobetzen. <ph name="BEGIN_LINK" />Hartu parte inkestan<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Berrezarri</translation>
 <translation id="5942872142862698679">Google erabiliko da bilatzaile gisa</translation>
 <translation id="5951119116059277034">Zuzeneko orria ikusten</translation>
-<translation id="5951615825629292797">Hizkuntza-paketea prest dago; berrabiarazi <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Atzitu nahi duzun orriaren URLa bidaltzen dio Google-ri</translation>
 <translation id="5956665950594638604">Ireki Chrome laguntza-zentroa beste fitxa batean</translation>
 <translation id="5957442310066583693">Zure webgune nagusiak ikusteko, sakatu Hasiera botoia</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Inoiz itzuli behar ez diren webguneak</translation>
 <translation id="8349013245300336738">Ordenatu erabilitako datu kopuruaren arabera</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> deskarga leheneratu dira</translation>
-<translation id="8362134094656482681">Kudeatu interesatzen zaizkizun gaiak</translation>
 <translation id="8364299278605033898">Ikusi webgune ezagunak</translation>
 <translation id="8368027906805972958">Gailu ezezaguna edo bateraezina (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> prest dago.</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 e0e5a54..591b67e 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">بستن برگه کنونی</translation>
 <translation id="1258753120186372309">‏Google doodle: ‏<ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> هم‌رسانی نشد</translation>
-<translation id="1276279242344007853">مدیریت سایت‌هایی که دنبال می‌کنید</translation>
 <translation id="1283039547216852943">برای بزرگ کردن ضربه بزنید</translation>
 <translation id="1285310382777185058">تغییر زبان</translation>
 <translation id="1291207594882862231">پاک کردن سابقه، کوکی‌ها، داده‌های سایت، حافظه پنهان…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">به‌زودی وقتی برگه جدیدی باز می‌کنید، داستان‌هایی از <ph name="SITE_NAME" /> را خواهید دید. می‌توانید سایت‌هایی را که دنبال می‌کنید در بخش «مدیریت دنبال کردن‌ها» کنترل کنید.</translation>
 <translation id="4699172675775169585">تصاویر و فایل‌های قرار گرفته در حافظه پنهان</translation>
 <translation id="4714588616299687897">صرفه‌جویی تا ۶۰ درصد داده‌ها</translation>
-<translation id="4716066120200945007">دنبال می‌کنید</translation>
 <translation id="4719927025381752090">پیشنهاد برای ترجمه</translation>
 <translation id="4720023427747327413">بازکردن در <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">‏به بهبود Chrome کمک کنید. <ph name="BEGIN_LINK" />در نظرسنجی شرکت کنید<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">بازنشانی</translation>
 <translation id="5942872142862698679">‏استفاده از Google برای جستجو</translation>
 <translation id="5951119116059277034">درحال مشاهده صفحه فعال</translation>
-<translation id="5951615825629292797">زبان آماده است، <ph name="APP_NAME" /> را بازراه‌اندازی کنید</translation>
 <translation id="5952764234151283551">‏نشانی وب صفحه‌ای را که باز می‌کنید به Google ارسال می‌کند</translation>
 <translation id="5956665950594638604">‏باز کردن مرکز راهنمایی Chrome در برگه جدید</translation>
 <translation id="5957442310066583693">برای دیدن سایت‌های برترتان، روی دکمه «صفحه اصلی» ضربه بزنید</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">سایت‌هایی که هرگز ترجمه نمی‌شوند</translation>
 <translation id="8349013245300336738">به‌ترتیب مقدار داده استفاده‌شده</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> بارگیری بازیابی شد</translation>
-<translation id="8362134094656482681">مدیریت موضوعاتی که به آن‌ها علاقه دارید</translation>
 <translation id="8364299278605033898">مشاهده وب‌سایت‌های پرطرفدار</translation>
 <translation id="8368027906805972958">دستگاه ناشناس یا پشتیبانی‌نشده (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> آماده است.</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 98374037..17a06227 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Sulje nykyinen välilehti</translation>
 <translation id="1258753120186372309">Google-piirros: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Jakaminen epäonnistui: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Valitse, mitä sivustoja haluat seurata</translation>
 <translation id="1283039547216852943">Laajenna napauttamalla.</translation>
 <translation id="1285310382777185058">Vaihda kieltä</translation>
 <translation id="1291207594882862231">Tyhjennä historia, evästeet, sivustojen tiedot, välimuisti ja niin edelleen.</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Näet pian tarinoita täältä avatessasi uuden välilehden: <ph name="SITE_NAME" />. Voit ylläpitää seuraamiasi sivustoja kohdasta Ylläpidä seuraamisia.</translation>
 <translation id="4699172675775169585">Välimuistissa olevat kuvat ja tiedostot</translation>
 <translation id="4714588616299687897">Käytä jopa 60 % vähemmän dataa</translation>
-<translation id="4716066120200945007">SEURATAAN</translation>
 <translation id="4719927025381752090">Tarjoudu kääntämään</translation>
 <translation id="4720023427747327413">Avaa kohteessa <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Auta parantamaan Chromea. <ph name="BEGIN_LINK" />Vastaa kyselyyn.<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Tyhjennä</translation>
 <translation id="5942872142862698679">Hakukoneena käytetään Googlea.</translation>
 <translation id="5951119116059277034">Katsotaan live-sivua</translation>
-<translation id="5951615825629292797">Kieli valmis, käynnistä <ph name="APP_NAME" /> uudelleen</translation>
 <translation id="5952764234151283551">Lähettää Googlelle etsimäsi sivun URL-osoitteen</translation>
 <translation id="5956665950594638604">Avaa Chromen ohjekeskus uudella välilehdellä</translation>
 <translation id="5957442310066583693">Katso suositut sivustosi napauttamalla Etusivu-painiketta</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">Älä koskaan käännä näitä sivustoja</translation>
 <translation id="8349013245300336738">Lajittele käytetyn datan määrän mukaan</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> latausta palautettu</translation>
-<translation id="8362134094656482681">Valitse sinua kiinnostavia aiheita</translation>
 <translation id="8364299278605033898">Katso suositut sivustot</translation>
 <translation id="8368027906805972958">Tuntematon tai ei-tuettu laite (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> on valmis.</translation>
+<translation id="8387617938027387193">Todenna henkilöllisyytesi</translation>
 <translation id="8393700583063109961">Lähetä viesti</translation>
 <translation id="8410695015584479363">Seuraa hintoja</translation>
 <translation id="8413126021676339697">Näytä koko selaushistoria</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 d959a00..9948a2a 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Isara ang kasalukuyang tab</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Hindi maibahagi ang <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Pamahalaan ang mga site na sinusubaybayan mo</translation>
 <translation id="1283039547216852943">I-tap upang palawakin</translation>
 <translation id="1285310382777185058">Palitan ang wika</translation>
 <translation id="1291207594882862231">I-clear ang history, cookies, site data, cache…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Hindi magtatagal at makakakita ka ng mga kuwento mula sa <ph name="SITE_NAME" /> kapag nagbukas ka ng bagong tab. Puwede mong kontrolin ang mga site na sinusubaybayan mo sa Pamahalaan ang Mga Sinusubaybayan.</translation>
 <translation id="4699172675775169585">Mga naka-cache na larawan at file</translation>
 <translation id="4714588616299687897">Makatipid nang hanggang 60% ng iyong data</translation>
-<translation id="4716066120200945007">SINUSUBAYBAYAN</translation>
 <translation id="4719927025381752090">Mag-alok na magsalin</translation>
 <translation id="4720023427747327413">Buksan sa <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Tumulong na pahusayin ang Chrome. <ph name="BEGIN_LINK" />Sagutan ang survey<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">I-reset</translation>
 <translation id="5942872142862698679">Ginagamit ang Google para sa paghahanap</translation>
 <translation id="5951119116059277034">Tinitingnan ang live na page</translation>
-<translation id="5951615825629292797">Handa na ang wika, i-restart ang <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Ipinapadala sa Google ang URL ng page na sinusubukan mong puntahan</translation>
 <translation id="5956665950594638604">Buksan ang Help Center ng Chrome sa bagong tab</translation>
 <translation id="5957442310066583693">Para makita ang iyong mga nangungunang site, i-tap ang button ng Home</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Huwag isalin kailanman ang mga site</translation>
 <translation id="8349013245300336738">Pagbukud-bukurin ayon sa dami ng data na nagamit</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> (na) download ang na-restore</translation>
-<translation id="8362134094656482681">Pamahalaan ang mga paksa kung saan ka interesado</translation>
 <translation id="8364299278605033898">Tingnan ang mga sikat na website</translation>
 <translation id="8368027906805972958">Hindi alam o hindi sinusuportahang device (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Handa na ang <ph name="LANG" />.</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 4ff9f4d7..e72c324 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Fermer l'onglet actuel</translation>
 <translation id="1258753120186372309">Logo commémoratif de Google : <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Partage impossible du contenu suivant : <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Gérer les sites auxquels vous êtes abonné</translation>
 <translation id="1283039547216852943">Toucher pour développer</translation>
 <translation id="1285310382777185058">Changer de langue</translation>
 <translation id="1291207594882862231">Effacer l'historique, les témoins, les données de site, le cache…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Vous verrez bientôt des histoires de <ph name="SITE_NAME" /> lorsque vous ouvrez un nouvel onglet. Vous pouvez gérer les sites que vous suivez sous Gérer les abonnements.</translation>
 <translation id="4699172675775169585">Images et fichiers dans la mémoire cache</translation>
 <translation id="4714588616299687897">Économisez jusqu'à 60 % de vos données</translation>
-<translation id="4716066120200945007">ABONNEMENTS</translation>
 <translation id="4719927025381752090">Proposer une traduction</translation>
 <translation id="4720023427747327413">Ouvrir dans <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Aidez-nous à améliorer Chrome. <ph name="BEGIN_LINK" />Répondez à notre sondage<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Recommencer</translation>
 <translation id="5942872142862698679">Google est utilisé pour la recherche</translation>
 <translation id="5951119116059277034">Affichage de la page en ligne</translation>
-<translation id="5951615825629292797">Langue prête à être utilisée. Redémarrez <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Envoie l'URL d'une page que vous essayez d'atteindre à Google</translation>
 <translation id="5956665950594638604">Centre d'aide de Chrome : nouvel onglet</translation>
 <translation id="5957442310066583693">Pour consulter vos sites les plus fréquentés, touchez le bouton Accueil</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Ne jamais traduire les sites suivants</translation>
 <translation id="8349013245300336738">Trier par quantité de données utilisées</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> téléchargements restaurés</translation>
-<translation id="8362134094656482681">Gérez les sujets qui vous intéressent</translation>
 <translation id="8364299278605033898">Afficher des sites Web populaires</translation>
 <translation id="8368027906805972958">Appareil inconnu ou non pris en charge (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> est prête à être utilisée.</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 6cdedb54..f85754f 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Fermer l'onglet actuel</translation>
 <translation id="1258753120186372309">Doodle : <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Impossible de partager le contenu suivant : <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Gérer les sites auxquels vous êtes abonné</translation>
 <translation id="1283039547216852943">Appuyer pour développer</translation>
 <translation id="1285310382777185058">Changer de langue</translation>
 <translation id="1291207594882862231">Effacer l'historique, vider le cache, supprimer les cookies et les données des sites…</translation>
@@ -533,7 +532,7 @@
 <translation id="4583164079174244168">{MINUTES,plural, =1{Il y a # minute}one{Il y a # minute}other{Il y a # minutes}}</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4594952190837476234">Cette page hors connexion date du <ph name="CREATION_TIME" /> et peut différer de la version en ligne.</translation>
-<translation id="4615382002648696011">Suivi, articles non lus prêts</translation>
+<translation id="4615382002648696011">Suivi, articles non lus disponibles</translation>
 <translation id="4616150815774728855">Ouvrir <ph name="WEBAPK_NAME" /></translation>
 <translation id="4619564267100705184">Confirmer votre identité</translation>
 <translation id="4634124774493850572">Utiliser le mot de passe</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Vous verrez bientôt les stories de <ph name="SITE_NAME" /> quand vous ouvrirez un onglet. Vous pouvez gérer les sites que vous suivez sur la page "Suivi".</translation>
 <translation id="4699172675775169585">Images et fichiers en cache</translation>
 <translation id="4714588616299687897">Économisez jusqu'à 60 % de vos données</translation>
-<translation id="4716066120200945007">SUIVI</translation>
 <translation id="4719927025381752090">Proposer de traduire</translation>
 <translation id="4720023427747327413">Ouvrir dans <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Aidez-nous à améliorer Chrome. <ph name="BEGIN_LINK" />Répondez à notre enquête<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Réinitialiser</translation>
 <translation id="5942872142862698679">Utilisation de Google pour les recherches</translation>
 <translation id="5951119116059277034">Page en ligne</translation>
-<translation id="5951615825629292797">Langue prête. Redémarrez <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Envoie l'URL de la page que vous essayez d'ouvrir à Google</translation>
 <translation id="5956665950594638604">Ouvrir le centre d'aide dans un nouvel onglet</translation>
 <translation id="5957442310066583693">Appuyez sur le bouton d'accueil pour retrouver les sites que vous consultez le plus</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Ne jamais traduire les sites</translation>
 <translation id="8349013245300336738">Trier en fonction de la quantité de données utilisées</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> téléchargements restaurés</translation>
-<translation id="8362134094656482681">Gérer les thèmes qui vous intéressent</translation>
 <translation id="8364299278605033898">Affichez les sites Web populaires</translation>
 <translation id="8368027906805972958">Appareil inconnu ou non compatible (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Module linguistique "<ph name="LANG" />" prêt.</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 a296bc0..537f66e 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Pechar a pestana actual</translation>
 <translation id="1258753120186372309">Doodle de Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Non se puido compartir este contido: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Xestionar sitios que segues</translation>
 <translation id="1283039547216852943">Toca para despregar</translation>
 <translation id="1285310382777185058">Cambiar idioma</translation>
 <translation id="1291207594882862231">Borrar o historial, as cookies, os datos dos sitios, a memoria caché…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Pronto se che mostrarán historias de <ph name="SITE_NAME" /> cando abras unha pestana nova. Para controlar os sitios que segues, accede a Xestionar seguimentos.</translation>
 <translation id="4699172675775169585">Imaxes e ficheiros almacenados na memoria caché</translation>
 <translation id="4714588616299687897">Aforra ata un 60 % dos datos</translation>
-<translation id="4716066120200945007">SEGUINDO</translation>
 <translation id="4719927025381752090">Ofrecer a tradución</translation>
 <translation id="4720023427747327413">Abrir en <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Axuda a mellorar Chrome. <ph name="BEGIN_LINK" />Responder enquisa<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Restablecer</translation>
 <translation id="5942872142862698679">Uso de Google para a busca</translation>
 <translation id="5951119116059277034">Vendo páxina publicada</translation>
-<translation id="5951615825629292797">O idioma xa está preparado. Reinicia <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Envía a Google o URL dunha páxina á que tentas acceder</translation>
 <translation id="5956665950594638604">Abrir o Centro de Axuda de Chrome nunha nova pestana</translation>
 <translation id="5957442310066583693">Tocar o botón Inicio para ver os teus sitios favoritos</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Sitios que non quero que se traduzan nunca</translation>
 <translation id="8349013245300336738">Ordenar por cantidade de datos usados</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> descargas restauradas</translation>
-<translation id="8362134094656482681">Xestionar temas que che interesan</translation>
 <translation id="8364299278605033898">Descubre sitios web populares</translation>
 <translation id="8368027906805972958">Dispositivo descoñecido ou non compatible (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">O idioma (<ph name="LANG" />) está listo.</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 b4995191..48220f8e 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">વર્તમાન ટૅબ બંધ કરો</translation>
 <translation id="1258753120186372309">Google ડૂડલ: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> શેર કરી શકાયો નથી</translation>
-<translation id="1276279242344007853">તમે ફૉલો કરી રહ્યાં હો, એવી સાઇટ મેનેજ કરો</translation>
 <translation id="1283039547216852943">વિસ્તૃત કરવા માટે ટૅપ કરો</translation>
 <translation id="1285310382777185058">ભાષા બદલો</translation>
 <translation id="1291207594882862231">ઇતિહાસ, કુકી, સાઇટ ડેટા, કૅશ સાફ કરો…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">ટૂંક સમયમાં, જ્યારે તમે નવી ટૅબ ખોલશો ત્યારે તમને <ph name="SITE_NAME" /> પરથી સ્ટોરી દેખાશે. તમે ફૉલો કરો છો તે સાઇટ તમે 'ફૉલો મેનેજ કરો'માં નિયંત્રિત કરી શકો છો.</translation>
 <translation id="4699172675775169585">કેશ કરેલ છબીઓ અને ફાઇલો</translation>
 <translation id="4714588616299687897">તમારો 60% જેટલો ડેટા બચાવો</translation>
-<translation id="4716066120200945007">ફૉલો કરી રહ્યાં છીએ</translation>
 <translation id="4719927025381752090">અનુવાદ કરવાની ઑફર કરો</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> માં ખોલો</translation>
 <translation id="4720982865791209136">Chromeને બહેતર બનાવવામાં સહાય કરો. <ph name="BEGIN_LINK" />સર્વેક્ષણમાં ભાગ લો<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">રીસેટ કરો</translation>
 <translation id="5942872142862698679">શોધ માટે Google નો ઉપયોગ કરી રહ્યાં છે</translation>
 <translation id="5951119116059277034">લાઇવ પેજ જોઈ રહ્યાં છીએ</translation>
-<translation id="5951615825629292797">ભાષા તૈયાર છે, <ph name="APP_NAME" />ને ફરી શરૂ કરો</translation>
 <translation id="5952764234151283551">તમે જેના પર પહોંચવાનો પ્રયાસ કરતા હોય તે પેજનું URL Googleને મોકલાવે છે</translation>
 <translation id="5956665950594638604">Chrome સહાયતા કેન્દ્રમાં એક નવું ટૅબ ખોલો</translation>
 <translation id="5957442310066583693">તમારા માટે શ્રેષ્ઠ હોય તેવી સાઇટ જોવા માટે હોમ બટન પર ટૅપ કરો</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">સાઇટનો ક્યારેય અનુવાદ કરશો નહીં</translation>
 <translation id="8349013245300336738">વપરાયેલ ડેટાના પ્રમાણ અનુસાર સૉર્ટ કરો</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ડાઉનલોડ રિસ્ટોર કર્યા</translation>
-<translation id="8362134094656482681">તમને જેમાં રુચિ હોય એવા વિષયો મેનેજ કરો</translation>
 <translation id="8364299278605033898">લોકપ્રિય વેબસાઇટ જુઓ</translation>
 <translation id="8368027906805972958">અજાણ્યું અથવા અસમર્થિત ડિવાઇસ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> તૈયાર છે.</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 46453c3..df13990 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">वर्तमान टैब को बंद करें</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> शेयर नहीं किया जा सका</translation>
-<translation id="1276279242344007853">उन साइटों को मैनेज करें जिन्हें आप फ़ॉलो कर रहे हैं</translation>
 <translation id="1283039547216852943">पूरा खोलने के लिए टैप करें</translation>
 <translation id="1285310382777185058">भाषा बदलें</translation>
 <translation id="1291207594882862231">इतिहास, कुकी, साइट डेटा, कैश साफ़ करें…</translation>
@@ -533,7 +532,7 @@
 <translation id="4583164079174244168">{MINUTES,plural, =1{# मिनट पहले}one{# मिनट पहले}other{# मिनट पहले}}</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4594952190837476234">यह पेज <ph name="CREATION_TIME" /> का है और यह ऑनलाइन वर्शन से अलग हो सकता है.</translation>
-<translation id="4615382002648696011">आगे फ़ीड के लिए, वह कॉन्टेंट दिया गया है जिसे पढ़ा नहीं गया है</translation>
+<translation id="4615382002648696011">आगे वाले फ़ीड में, वह कॉन्टेंट मौजूद है जिसे पढ़ा नहीं गया है</translation>
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> को खोलें</translation>
 <translation id="4619564267100705184">अपनी पहचान की पुष्टि करें</translation>
 <translation id="4634124774493850572">पासवर्ड का इस्तेमाल करें</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">जल्द ही आप कोई भी नया टैब खोलते ही, <ph name="SITE_NAME" /> से जुड़ी जानकारी देख सकेंगे. आप जिन साइटों को फ़ॉलो कर रहे हैं उन्हें 'फ़ॉलो की जा रही साइटों को मैनेज करें' टैब में जाकर कंट्रोल कर सकते हैं.</translation>
 <translation id="4699172675775169585">कैश इमेज और फ़ाइलें</translation>
 <translation id="4714588616299687897">अपना 60% तक डेटा बचाएं</translation>
-<translation id="4716066120200945007">फ़ॉलो किया जा रहा है</translation>
 <translation id="4719927025381752090">अनुवाद करना ऑफ़र करें</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> में खोलें</translation>
 <translation id="4720982865791209136">Chrome को बेहतर बनाने में सहायता करें. <ph name="BEGIN_LINK" />सर्वे में भाग लें<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">रीसेट करें</translation>
 <translation id="5942872142862698679">खोजने के लिए Google का उपयोग किया जा रहा है</translation>
 <translation id="5951119116059277034">लाइव पेज देखा जा रहा है</translation>
-<translation id="5951615825629292797">भाषा, इस्तेमाल के लिए तैयार है. <ph name="APP_NAME" /> को रीस्टार्ट करें</translation>
 <translation id="5952764234151283551">आप जिस पेज पर जाने की कोशिश कर रहे हैं उसका यूआरएल Google को भेजती है</translation>
 <translation id="5956665950594638604">Chrome सहायता केंद्र को नए टैब में खोलें</translation>
 <translation id="5957442310066583693">अपने हिसाब से खास साइटें देखने के लिए, होम बटन पर टैप करें</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">साइटों का अनुवाद कभी न करें</translation>
 <translation id="8349013245300336738">इस्तेमाल किए गए डेटा की मात्रा के हिसाब से क्रम में लगाएं</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> डाउनलोड वापस लाया गया</translation>
-<translation id="8362134094656482681">जो विषय आपको पसंद हैं उन्हें मैनेज करें</translation>
 <translation id="8364299278605033898">लोकप्रिय वेबसाइटें देखें</translation>
 <translation id="8368027906805972958">अज्ञात या काम न करने वाला डिवाइस (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> इस्तेमाल के लिए तैयार है.</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 fce3324..33857a6 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Zatvaranje trenutačne kartice</translation>
 <translation id="1258753120186372309">Googleov doodle logotip: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Nije moguće podijeliti <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Upravljanje web-lokacijama koje pratite</translation>
 <translation id="1283039547216852943">Dodirnite za proširivanje</translation>
 <translation id="1285310382777185058">Promjena jezika</translation>
 <translation id="1291207594882862231">Brisanje povijesti, kolačića, podataka web-lokacija, predmemorije...</translation>
@@ -549,7 +548,6 @@
 <translation id="4697543623252708062">Prilikom otvaranja nove kartice uskoro će se prikazivati članci s web-lokacije <ph name="SITE_NAME" />. Web-lokacijama koje pratite možete upravljati u odjeljku Upravljanje praćenjima.</translation>
 <translation id="4699172675775169585">Predmemorirane slike i datoteke</translation>
 <translation id="4714588616299687897">Uštedite do 60% podataka</translation>
-<translation id="4716066120200945007">PRAĆENO</translation>
 <translation id="4719927025381752090">Ponudi prijevod</translation>
 <translation id="4720023427747327413">Otvori u aplikaciji <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Pomognite poboljšati Chrome. <ph name="BEGIN_LINK" />Ispunite anketu<ph name="END_LINK" /></translation>
@@ -751,7 +749,6 @@
 <translation id="5939518447894949180">Ponovno postavi</translation>
 <translation id="5942872142862698679">Za pretraživanje se upotrebljava Google</translation>
 <translation id="5951119116059277034">Pregledavanje aktualne stranice</translation>
-<translation id="5951615825629292797">Jezik je spreman, ponovo pokrenite aplikaciju <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Googleu se šalje URL stranice koju pokušavate otvoriti</translation>
 <translation id="5956665950594638604">Otvaranje Chromeovog centra za pomoć na novoj kartici</translation>
 <translation id="5957442310066583693">Da biste vidjeli web-lokacije koje najčešće posjećujete, dodirnite gumb početnog zaslona</translation>
@@ -1130,7 +1127,6 @@
 <translation id="834313815369870491">Nikad ne prevodi web-lokacije</translation>
 <translation id="8349013245300336738">Poredaj po količini potrošenih podataka</translation>
 <translation id="835847953965672673">Vraćen je sljedeći broj preuzimanja: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Upravljajte temama koje vas zanimaju</translation>
 <translation id="8364299278605033898">Pogledajte popularne web-lokacije</translation>
 <translation id="8368027906805972958">Nepoznati ili nepodržani uređaj (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> je spreman.</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 5efe093..7c6ecb81 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Az aktuális lap bezárása</translation>
 <translation id="1258753120186372309">Google ünnepi embléma: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Nem sikerült a(z) <ph name="CONTENT_TYPE" /> megosztása</translation>
-<translation id="1276279242344007853">Az Ön által követett webhelyek kezelése</translation>
 <translation id="1283039547216852943">Koppintson a kibontáshoz</translation>
 <translation id="1285310382777185058">Nyelv módosítása</translation>
 <translation id="1291207594882862231">Előzmények, cookie-k, webhelyadatok és a gyorsítótár törlése…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Új lap megnyitásakor hamarosan látni fogja a(z) <ph name="SITE_NAME" /> webhely történeteit. A Manage Follows (Követések kezelése) szakaszban kezelheti a követett webhelyeket.</translation>
 <translation id="4699172675775169585">A gyorsítótárban szereplő képek és fájlok</translation>
 <translation id="4714588616299687897">Akár 60%-kal is csökkentheti adatforgalmát</translation>
-<translation id="4716066120200945007">KÖVETÉS</translation>
 <translation id="4719927025381752090">Fordítás felajánlása</translation>
 <translation id="4720023427747327413">Megnyitás itt: <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Segítsen a Chrome fejlesztésében. <ph name="BEGIN_LINK" />Töltse ki ezt a felmérést.<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Visszaállítás</translation>
 <translation id="5942872142862698679">A Google használata a kereséshez</translation>
 <translation id="5951119116059277034">Élő oldal megtekintése</translation>
-<translation id="5951615825629292797">A nyelv készen áll, indítsa újra a(z) <ph name="APP_NAME" /> alkalmazást</translation>
 <translation id="5952764234151283551">Az elérni kívánt oldal URL-címének elküldése a Google-nak</translation>
 <translation id="5956665950594638604">A Chrome súgójának megnyitása új lapon</translation>
 <translation id="5957442310066583693">Legkedveltebb webhelyeinek megtekintéséhez koppintson a Kezdőképernyő gombra</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Sosem fordított webhelyek</translation>
 <translation id="8349013245300336738">Rendezés a felhasznált adatmennyiség szerint</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> letöltés visszaállítva</translation>
-<translation id="8362134094656482681">Az Önt érdeklő témakörök kezelése</translation>
 <translation id="8364299278605033898">Tekintse meg a népszerű webhelyeket</translation>
 <translation id="8368027906805972958">Ismeretlen vagy nem támogatott eszköz (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">A(z) <ph name="LANG" /> készen áll.</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 d7c91c05..72341b9f 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Փակել ընթացիկ ներդիրը</translation>
 <translation id="1258753120186372309">Google doodle՝ <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Չհաջողվեց ուղարկել բովանդակությունը (<ph name="CONTENT_TYPE" />)</translation>
-<translation id="1276279242344007853">Կառավարեք կայքերը, որոնց բաժանորդագրված եք</translation>
 <translation id="1283039547216852943">Հպեք՝ ընդարձակելու համար</translation>
 <translation id="1285310382777185058">Փոխել լեզուն</translation>
 <translation id="1291207594882862231">Մաքրել պատմությունը, քուքիները, կայքի տվյալները, քեշը…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Շուտով, երբ նոր ներդիր բացեք, կտեսնեք նորություններ <ph name="SITE_NAME" /> կայքից։ «Հետևումների կառավարում» բաժնում կարող եք կառավարել կայքերը, որոնց հետևում եք։</translation>
 <translation id="4699172675775169585">Քեշավորված պատկերներ և ֆայլեր</translation>
 <translation id="4714588616299687897">Խնայեք թրաֆիկի մինչև 60%-ը</translation>
-<translation id="4716066120200945007">ԲԱԺԱՆՈՐԴԱԳՐՈՒԹՅՈՒՆՆԵՐ</translation>
 <translation id="4719927025381752090">Առաջարկել թարգմանել</translation>
 <translation id="4720023427747327413">Բացել <ph name="PRODUCT_NAME" />-ում</translation>
 <translation id="4720982865791209136">Օգնեք ավելի լավը դարձնել Chrome-ը: <ph name="BEGIN_LINK" />Մասնակցեք հարցմանը<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Վերակայել</translation>
 <translation id="5942872142862698679">Օգտագործվում է Google որոնման համակարգը</translation>
 <translation id="5951119116059277034">Ակտիվ էջի դիտում</translation>
-<translation id="5951615825629292797">Լեզուն պատրաստ է։ Վերագործարկեք <ph name="APP_NAME" /> հավելվածը։</translation>
 <translation id="5952764234151283551">Google-ին է ուղարկում այն էջի URL-ը, որը փորձում եք բացել</translation>
 <translation id="5956665950594638604">Բացել Chrome-ի օգնության կենտրոնը նոր ներդիրում</translation>
 <translation id="5957442310066583693">Ձեր թոփ կայքերը դիտելու համար սեղմեք գլխավոր էկրանի կոճակը</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Երբեք չթարգմանել կայքերը</translation>
 <translation id="8349013245300336738">Դասավորել ըստ օգտագործված տվյալների ծավալի</translation>
 <translation id="835847953965672673">Վերականգնվել է <ph name="NUMBER_OF_DOWNLOADS" /> ներբեռնում</translation>
-<translation id="8362134094656482681">Կառավարեք ձեզ հետաքրքրող թեմաները</translation>
 <translation id="8364299278605033898">Դիտեք թոփ կայքերը</translation>
 <translation id="8368027906805972958">Անհայտ կամ չաջակցվող սարք (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> լեզուն պատրաստ է։</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 ff3431b..cbd1fd3 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Menutup tab aktif</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Tidak dapat membagikan <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Kelola situs yang Anda ikuti</translation>
 <translation id="1283039547216852943">Ketuk untuk meluaskan</translation>
 <translation id="1285310382777185058">Ubah bahasa</translation>
 <translation id="1291207594882862231">Menghapus histori, cookie, data situs, cache...</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Sebentar lagi, Anda akan melihat artikel dari <ph name="SITE_NAME" /> saat membuka tab baru. Anda dapat mengontrol situs yang Anda ikuti di bagian Kelola Mengikuti.</translation>
 <translation id="4699172675775169585">Gambar dan file dalam cache</translation>
 <translation id="4714588616299687897">Hemat kuota hingga 60%</translation>
-<translation id="4716066120200945007">MENGIKUTI</translation>
 <translation id="4719927025381752090">Tawarkan penerjemahan</translation>
 <translation id="4720023427747327413">Buka di <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Bantu sempurnakan Chrome. <ph name="BEGIN_LINK" />Ikuti survei<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Reset</translation>
 <translation id="5942872142862698679">Menggunakan Google untuk penelusuran</translation>
 <translation id="5951119116059277034">Melihat halaman live</translation>
-<translation id="5951615825629292797">Bahasa sudah siap, mulai ulang <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Mengirimkan URL halaman yang ingin Anda buka ke Google</translation>
 <translation id="5956665950594638604">Membuka Pusat Bantuan Chrome di tab baru</translation>
 <translation id="5957442310066583693">Untuk melihat situs teratas Anda, ketuk tombol Beranda</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Jangan pernah terjemahkan situs</translation>
 <translation id="8349013245300336738">Urutkan menurut jumlah kuota yang digunakan</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> download dipulihkan</translation>
-<translation id="8362134094656482681">Kelola topik yang menarik bagi Anda</translation>
 <translation id="8364299278605033898">Lihat situs yang populer</translation>
 <translation id="8368027906805972958">Perangkat tidak dikenal atau tidak didukung (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Bahasa <ph name="LANG" /> sudah siap.</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 c3bd263..e36eb96 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Loka núverandi flipa</translation>
 <translation id="1258753120186372309">Google dúlla: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Ekki tókst að deila <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Stjórna vefsvæðum sem þú fylgir</translation>
 <translation id="1283039547216852943">Ýttu til að stækka</translation>
 <translation id="1285310382777185058">Skipta um tungumál</translation>
 <translation id="1291207594882862231">Hreinsa feril, fótspor, svæði, gögn, skyndiminni…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Fljótlega sérðu sögur frá <ph name="SITE_NAME" /> þegar þú opnar nýjan flipa. Þú getur stjórnað hvaða vefsvæðum þú fylgir í „Stjórna því sem er fylgt“.</translation>
 <translation id="4699172675775169585">Myndir og skrár í skyndiminni</translation>
 <translation id="4714588616299687897">Sparaðu allt að 60% af gögnum</translation>
-<translation id="4716066120200945007">FYLGIR</translation>
 <translation id="4719927025381752090">Boð um þýðingu</translation>
 <translation id="4720023427747327413">Opna í <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Hjálpaðu til við að bæta Chrome. <ph name="BEGIN_LINK" />Svara könnun<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Endurstilla</translation>
 <translation id="5942872142862698679">Notar Google fyrir leit</translation>
 <translation id="5951119116059277034">Skoðar síðu í beinni</translation>
-<translation id="5951615825629292797">Tungumál tilbúið, endurræstu <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Sendir vefslóð síðunnar sem þú reynir að opna til Google</translation>
 <translation id="5956665950594638604">Opna hjálparmiðstöð Chrome í nýjum flipa</translation>
 <translation id="5957442310066583693">Ýttu á heimahnappinn til að sjá vefsvæðin sem þú heimsækir oftast</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Aldrei þýða vefsvæði</translation>
 <translation id="8349013245300336738">Raða eftir gagnanotkun</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> niðurhöl endurheimt</translation>
-<translation id="8362134094656482681">Stjórna umfjöllunarefnum sem þú hefur áhuga á</translation>
 <translation id="8364299278605033898">Sjáðu vinsæl vefsvæði</translation>
 <translation id="8368027906805972958">Óþekkt eða óstutt tæki (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> er tilbú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 f41ddbe..445a1cfe 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Chiudi scheda corrente</translation>
 <translation id="1258753120186372309">Doodle di Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Impossibile condividere <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Gestisci i siti che segui</translation>
 <translation id="1283039547216852943">Tocca per espandere</translation>
 <translation id="1285310382777185058">Cambia lingua</translation>
 <translation id="1291207594882862231">Cancella la cronologia, i cookie, i dati dei siti, la cache…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">A breve vedrai articoli di <ph name="SITE_NAME" /> quando aprirai una nuova scheda. Puoi controllare i siti che segui nella sezione Gestisci contenuti seguiti.</translation>
 <translation id="4699172675775169585">Immagini e file memorizzati nella cache</translation>
 <translation id="4714588616299687897">Riduci l'utilizzo di dati fino al 60%</translation>
-<translation id="4716066120200945007">STAI SEGUENDO</translation>
 <translation id="4719927025381752090">Proponi di tradurre</translation>
 <translation id="4720023427747327413">Apri in <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Contribuisci a migliorare Chrome. <ph name="BEGIN_LINK" />Rispondi al sondaggio<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Reimposta</translation>
 <translation id="5942872142862698679">Google in uso per la ricerca</translation>
 <translation id="5951119116059277034">Visualizzazione della pagina attiva</translation>
-<translation id="5951615825629292797">Lingua pronta, riavvia <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Invia a Google l'URL della pagina a cui stai tentando di accedere</translation>
 <translation id="5956665950594638604">Apri Centro assistenza di Chrome in nuova scheda</translation>
 <translation id="5957442310066583693">Per vedere i tuoi siti principali, tocca il pulsante Home</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Non tradurre mai i siti</translation>
 <translation id="8349013245300336738">Ordina per quantità di dati utilizzati</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> download ripristinati</translation>
-<translation id="8362134094656482681">Gestisci gli argomenti che ti interessano</translation>
 <translation id="8364299278605033898">Scopri i siti web più visitati</translation>
 <translation id="8368027906805972958">Dispositivo sconosciuto o non supportato (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> è pronto.</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 3e3e522..ef7540ad 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">סגירת הכרטיסייה הנוכחית</translation>
 <translation id="1258753120186372309">‏דודל של Google‏: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">לא ניתן היה לשתף את ה<ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">ניהול האתרים שנמצאים במעקב שלך</translation>
 <translation id="1283039547216852943">יש להקיש כדי להרחיב</translation>
 <translation id="1285310382777185058">החלפת שפה</translation>
 <translation id="1291207594882862231">‏ניקוי ההיסטוריה, קובצי ה-Cookie, נתוני האתרים, המטמון…</translation>
@@ -533,7 +532,7 @@
 <translation id="4583164079174244168">{MINUTES,plural, =1{לפני דקה}two{לפני # דקות}many{לפני # דקות}other{לפני # דקות}}</translation>
 <translation id="4587589328781138893">אתרים</translation>
 <translation id="4594952190837476234">הדף האופליין הזה נוצר ב-<ph name="CREATION_TIME" /> ויכול להיות שהגרסה המקוונת שלו שונה.</translation>
-<translation id="4615382002648696011">במעקב, הכתבות שלא נקראו מוכנות</translation>
+<translation id="4615382002648696011">במעקב, יש תוכן שלא נקרא</translation>
 <translation id="4616150815774728855">פתיחה של <ph name="WEBAPK_NAME" /></translation>
 <translation id="4619564267100705184">אימות הזהות שלך</translation>
 <translation id="4634124774493850572">שימוש בסיסמה</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">בקרוב, בפתיחת כרטיסייה חדשה, יוצגו לך כתבות של <ph name="SITE_NAME" />. אפשר לשלוט באתרים שבמעקב דרך 'ניהול הפריטים שבמעקב'.</translation>
 <translation id="4699172675775169585">תמונות וקבצים במטמון</translation>
 <translation id="4714588616299687897">חיסכון של עד 60% בשימוש בחבילת הגלישה</translation>
-<translation id="4716066120200945007">במעקב</translation>
 <translation id="4719927025381752090">הצגת הצעות לתרגום</translation>
 <translation id="4720023427747327413">פתיחה ב-<ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">‏נשמח לקבל עזרה בשיפור Chrome. <ph name="BEGIN_LINK" />למילוי הסקר<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">איפוס</translation>
 <translation id="5942872142862698679">‏שימוש ב-Google לחיפוש</translation>
 <translation id="5951119116059277034">מוצג דף פעיל</translation>
-<translation id="5951615825629292797">השפה מוכנה, יש להפעיל מחדש את האפליקציה <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">‏שליחת כתובת האתר של הדף שאליו ניסית להגיע אל Google</translation>
 <translation id="5956665950594638604">‏פתיחת מרכז העזרה של Chrome בכרטיסייה חדשה</translation>
 <translation id="5957442310066583693">להצגת האתרים המובילים שלך, יש להקיש על לחצן דף הבית</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">אין לתרגם את האתרים אף פעם</translation>
 <translation id="8349013245300336738">מיון לפי כמות הנתונים שבהם נעשה שימוש</translation>
 <translation id="835847953965672673">שוחזרו <ph name="NUMBER_OF_DOWNLOADS" /> הורדות</translation>
-<translation id="8362134094656482681">ניהול הנושאים שמעניינים אותך</translation>
 <translation id="8364299278605033898">הצגת אתרים פופולריים</translation>
 <translation id="8368027906805972958">מכשיר לא ידוע או שאינו נתמך (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> מוכנה לשימוש.</translation>
@@ -1181,7 +1177,7 @@
 <translation id="8659579665266920523">‏איך לחפש באמצעות Chrome</translation>
 <translation id="8662811608048051533">תבוצע יציאה שלך מרוב האתרים.</translation>
 <translation id="8664979001105139458">שם הקובץ כבר קיים</translation>
-<translation id="8676789164135894283">אישורי הכניסה לחשבון</translation>
+<translation id="8676789164135894283">שימוש במכשיר לאימות כניסה לחשבון</translation>
 <translation id="8683039184091909753">תמונה</translation>
 <translation id="8687353297350450808">{N_BARS,plural, =1{רמת עוצמת אות: עמודה אחת}two{רמת עוצמת אות: שתי עמודות}many{רמת עוצמת אות: # עמודות}other{רמת עוצמת אות: # עמודות}}</translation>
 <translation id="869891660844655955">תאריך תפוגה</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 75e5f76..04aebdf 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">現在のタブを閉じる</translation>
 <translation id="1258753120186372309">Google Doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> を共有できませんでした</translation>
-<translation id="1276279242344007853">フォローしているサイトを管理します</translation>
 <translation id="1283039547216852943">タップして展開</translation>
 <translation id="1285310382777185058">言語を変更する</translation>
 <translation id="1291207594882862231">履歴、Cookie、サイトデータ、キャッシュを削除…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">まもなく、新しいタブを開くと、<ph name="SITE_NAME" /> のストーリーが表示されるようになります。[フォローを管理] でフォローするサイトを管理できます。</translation>
 <translation id="4699172675775169585">キャッシュされた画像とファイル</translation>
 <translation id="4714588616299687897">データを最大 60% 削減できます</translation>
-<translation id="4716066120200945007">フォロー中</translation>
 <translation id="4719927025381752090">翻訳するか尋ねる</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> で開く</translation>
 <translation id="4720982865791209136">Chrome の品質向上にご協力ください。<ph name="BEGIN_LINK" />アンケートに回答する<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">リセット</translation>
 <translation id="5942872142862698679">検索に Google を使用します</translation>
 <translation id="5951119116059277034">実際のページを表示しています</translation>
-<translation id="5951615825629292797">言語を使用できるようになりました。<ph name="APP_NAME" /> を再起動してください</translation>
 <translation id="5952764234151283551">アクセスしようとしているページの URL を Google に送信します</translation>
 <translation id="5956665950594638604">Chrome ヘルプセンターを新しいタブで開く</translation>
 <translation id="5957442310066583693">よく使用するサイトを表示するには、ホームボタンをタップします</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">翻訳しないサイト</translation>
 <translation id="8349013245300336738">データ使用量で並べ替え</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> 件のダウンロードが復元されました</translation>
-<translation id="8362134094656482681">興味のあるトピックを管理します</translation>
 <translation id="8364299278605033898">人気のウェブサイトを表示します</translation>
 <translation id="8368027906805972958">不明またはサポートされていないデバイス(<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> を使用できるようになりました。</translation>
+<translation id="8387617938027387193">本人確認</translation>
 <translation id="8393700583063109961">メッセージを送信</translation>
 <translation id="8410695015584479363">料金をチェック</translation>
 <translation id="8413126021676339697">全履歴を表示</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 b506566..9ef9af19 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">მიმდინარე ჩანართის დახურვა</translation>
 <translation id="1258753120186372309">Google Doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ვერ გაზიარდა</translation>
-<translation id="1276279242344007853">მართეთ საიტები, რომლებსაც თვალს ადევნებთ</translation>
 <translation id="1283039547216852943">შეეხეთ გასაშლელად</translation>
 <translation id="1285310382777185058">ენის შეცვლა</translation>
 <translation id="1291207594882862231">ისტორიის, ქუქი-ჩანაწერების, საიტის მონაცემების, ქეშის გასუფთავება…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">ახალი ჩანართის გახსნისას მალე იხილავთ ამბებს <ph name="SITE_NAME" />-დან. თვალმიდევნებული საიტების გაკონტროლება შეგიძლიათ სექციიდან „თვალის დევნების მართვა“.</translation>
 <translation id="4699172675775169585">ქეშირებული სურათები და ფაილები</translation>
 <translation id="4714588616299687897">დაზოგეთ მობილური ინტერნეტის პაკეტის 60%-მდე</translation>
-<translation id="4716066120200945007">თვალს ადევნებთ</translation>
 <translation id="4719927025381752090">თარგმანის შემოთავაზება</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />-ში გახსნა</translation>
 <translation id="4720982865791209136">შეუწყვეთ ხელი Chrome-ის გაუმჯობესებას. <ph name="BEGIN_LINK" />მიიღეთ მონაწილეობა გამოკითხვაში<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">გადატვირთვა</translation>
 <translation id="5942872142862698679">ძიებისთვის Google გამოიყენება</translation>
 <translation id="5951119116059277034">მიმდინარეობს გამოქვეყნებული გვერდის გადახედვა</translation>
-<translation id="5951615825629292797">ენა მზადაა, გადატვირთეთ <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Google-ს უგზავნის იმ გვერდის URL-ს, რომელზეც წვდომას ცდილობთ</translation>
 <translation id="5956665950594638604">Chrome-ის დახმარების ცენტრის ახალ ჩანართში გახსნა</translation>
 <translation id="5957442310066583693">თქვენთვის შერჩეული საუკეთესო საიტების სანახავად შეეხეთ საწყისი გვერდის ღილაკს</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">არასოდეს ითარგმნოს საიტები</translation>
 <translation id="8349013245300336738">დალაგება გამოყენებული მონაცემების მიხედვით</translation>
 <translation id="835847953965672673">აღდგენილია <ph name="NUMBER_OF_DOWNLOADS" /> ჩამოტვირთვა</translation>
-<translation id="8362134094656482681">მართეთ თქვენთვის საინტერესო თემები</translation>
 <translation id="8364299278605033898">იხილეთ პოპულარული ვებსაიტები</translation>
 <translation id="8368027906805972958">უცნობი ან მხარდაუჭერელი მოწყობილობა (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> მზადაა.</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 06b94ad..31cfeb5 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Ағымдағы қойындыны жабу</translation>
 <translation id="1258753120186372309">Google Doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> бөлісу мүмкін болмады.</translation>
-<translation id="1276279242344007853">Жазылған сайттарыңызды басқарыңыз.</translation>
 <translation id="1283039547216852943">Жаю үшін түртіңіз</translation>
 <translation id="1285310382777185058">Тілді ауыстыру</translation>
 <translation id="1291207594882862231">Тарихты, cookie файлдарын, сайт деректерін, кэшті жою…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Жаңа қойындыны ашқан кезде, жаңалықтарды <ph name="SITE_NAME" /> сайтынан көре аласыз. Жазылған сайттарыңызды "Жазылымдарды басқару" бөлімінде басқара аласыз.</translation>
 <translation id="4699172675775169585">Кэштелген кескіндер мен файлдар</translation>
 <translation id="4714588616299687897">Трафикті 60%-ға дейін үнемдеңіз</translation>
-<translation id="4716066120200945007">ЖАЗЫЛЫМДАР</translation>
 <translation id="4719927025381752090">Аудармасын ұсыну</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> ішінен ашу</translation>
 <translation id="4720982865791209136">Chrome браузерін жақсартуға көмектесіңіз. <ph name="BEGIN_LINK" />Сауалнамаға қатысыңыз<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Қалпына келтіру</translation>
 <translation id="5942872142862698679">Google қызметімен іздеу</translation>
 <translation id="5951119116059277034">Онлайн бет</translation>
-<translation id="5951615825629292797">Тіл бумасы дайын. <ph name="APP_NAME" /> қолданбасын қайта қосыңыз.</translation>
 <translation id="5952764234151283551">Кіргіңіз келетін беттің URL мекенжайын Google-ға жібереді</translation>
 <translation id="5956665950594638604">Chrome анықтама орталығын жаңа қойындыда ашу</translation>
 <translation id="5957442310066583693">Жиі қолданатын сайттарыңызды көру үшін негізгі экран түймесін түртіңіз.</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">Ешқашан сайттарды аудармау</translation>
 <translation id="8349013245300336738">Пайдаланылған деректер көлемі бойынша сұрыптау</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> жүктеп алынған файл қалпына келтірілді.</translation>
-<translation id="8362134094656482681">Өзіңізді қызықтыратын тақырыптарды басқарыңыз.</translation>
 <translation id="8364299278605033898">Танымал веб-сайттарды көріңіз.</translation>
 <translation id="8368027906805972958">Белгісіз немесе жарамсыз құрылғы (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> тіл бумасы дайын.</translation>
+<translation id="8387617938027387193">Жеке басыңызды растаңыз</translation>
 <translation id="8393700583063109961">Хабар жіберу</translation>
 <translation id="8410695015584479363">Бағаларды қадағалау</translation>
 <translation id="8413126021676339697">Толық журналды көрсету</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 45d998e..12e52072 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">បិទផ្ទាំងបច្ចុប្បន្ន</translation>
 <translation id="1258753120186372309">Google doodle៖ <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">មិនអាចចែករំលែក <ph name="CONTENT_TYPE" /> បានទេ</translation>
-<translation id="1276279242344007853">គ្រប់គ្រង​គេហទំព័រដែលអ្នក​កំពុងតាមដាន</translation>
 <translation id="1283039547216852943">ចុច​ដើម្បី​ពង្រីក</translation>
 <translation id="1285310382777185058">​ប្ដូរ​ភាសា</translation>
 <translation id="1291207594882862231">ជម្រះប្រវត្តិ ខុកឃី ទិន្នន័យគេហទំព័រ ឃ្លាំងសម្ងាត់…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">ឆាប់ៗនេះ អ្នកនឹងមើលឃើញអត្ថបទពី <ph name="SITE_NAME" /> នៅពេលអ្នកបើកផ្ទាំងថ្មី។ អ្នកអាចគ្រប់គ្រងគេហទំព័រដែលអ្នកកំពុងតាមដាននៅក្នុង "គ្រប់គ្រងការតាមដាន"។</translation>
 <translation id="4699172675775169585">រូបភាព និងឯកសារដែលផ្ទុកក្នុងឃ្លាំងសម្ងាត់</translation>
 <translation id="4714588616299687897">សន្សំសំចៃទិន្នន័យរបស់អ្នកបានរហូតដល់ 60%</translation>
-<translation id="4716066120200945007">កំពុងតាមដាន</translation>
 <translation id="4719927025381752090">ផ្តល់ជូន​ការ​បកប្រែ</translation>
 <translation id="4720023427747327413">បើកនៅក្នុង <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">ជួយ​កែលម្អ Chrome ។<ph name="BEGIN_LINK" />សូម​ធ្វើការ​ស្ទង់មតិ<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">កំណត់ឡើងវិញ</translation>
 <translation id="5942872142862698679">ប្រើ Google ដើម្បីធ្វើការស្វែងរក</translation>
 <translation id="5951119116059277034">កំពុងមើល​ទំព័របន្តផ្ទាល់</translation>
-<translation id="5951615825629292797">អាចប្រើភាសាបានហើយ សូមចាប់ផ្ដើម <ph name="APP_NAME" /> ឡើងវិញ</translation>
 <translation id="5952764234151283551">ផ្ញើ​ URL នៃ​ទំព័រ​ដែលអ្នក​កំពុងព្យាយាម​ចូល​មើលទៅ Google</translation>
 <translation id="5956665950594638604">បើកមជ្ឈមណ្ឌលជំនួយ Chrome នៅក្នុងផ្ទាំងថ្មី</translation>
 <translation id="5957442310066583693">ដើម្បី​មើលឃើញ​គេហទំព័រ​ពេញនិយម​របស់អ្នក សូមចុច​ប៊ូតុង​ដើម</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">កុំបកប្រែគេហទំព័រ</translation>
 <translation id="8349013245300336738">តម្រៀប​តាម​បរិមាណ​ទិន្នន័យ​ដែលបានប្រើ</translation>
 <translation id="835847953965672673">បានស្ដារការ​ទាញយក <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">គ្រប់គ្រងប្រធានបទ​ដែលអ្នកចាប់អារម្មណ៍</translation>
 <translation id="8364299278605033898">មើល​គេហទំព័រ​ពេញនិយម</translation>
 <translation id="8368027906805972958">ឧបករណ៍ដែល​មិនស្គាល់ ឬ​មិនអាច​ប្រើបាន (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">អាចប្រើភាសា<ph name="LANG" />បានហើយ។</translation>
+<translation id="8387617938027387193">ផ្ទៀងផ្ទាត់ថាជាអ្នក</translation>
 <translation id="8393700583063109961">ផ្ញើ​សារ</translation>
 <translation id="8410695015584479363">តាមដាន​តម្លៃ</translation>
 <translation id="8413126021676339697">បង្ហាញប្រវត្តិពេញលេញ</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 ad80ecf..54251b13 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">ಪ್ರಸ್ತುತ ಟ್ಯಾಬ್ ಮುಚ್ಚಿ</translation>
 <translation id="1258753120186372309">Google ಡೂಡಲ್‌: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
-<translation id="1276279242344007853">ನೀವು ಅನುಸರಿಸುತ್ತಿರುವ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="1283039547216852943">ವಿಸ್ತರಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
 <translation id="1285310382777185058">ಭಾಷೆಯನ್ನು ಬದಲಾಯಿಸಿ</translation>
 <translation id="1291207594882862231">ಇತಿಹಾಸ, ಕುಕೀಗಳು, ಸೈಟ್‌ ಡೇಟಾ, ಕ್ಯಾಷ್ ಅನ್ನು ತೆರವುಗೊಳಿಸಿ…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">ಶೀಘ್ರವೇ, ನೀವು ಹೊಸ ಟ್ಯಾಬ್ ಅನ್ನು ತೆರೆದಾಗ, ನೀವು <ph name="SITE_NAME" /> ನಿಂದ ಸ್ಟೋರಿಗಳನ್ನು ನೋಡುತ್ತೀರಿ. ಅನುಸರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುವುದರಲ್ಲಿ ನೀವು ಅನುಸರಿಸುತ್ತಿರುವ ಸೈಟ್‌ಗಳನ್ನು ನೀವು ನಿಯಂತ್ರಿಸಬಹುದು.</translation>
 <translation id="4699172675775169585">ಸಂಗ್ರಹಿಸಲಾಗಿರುವ ಚಿತ್ರಗಳು ಮತ್ತು ಫೈಲ್‌ಗಳು</translation>
 <translation id="4714588616299687897">60% ರವರೆಗೆ ನಿಮ್ಮ ಡೇಟಾ ಉಳಿಸಿ</translation>
-<translation id="4716066120200945007">ಅನುಸರಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="4719927025381752090">ಅನುವಾದಿಸಲು ಅವಕಾಶಿಸಿ</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="4720982865791209136">Chrome ಸುಧಾರಣೆಗೆ ಸಹಾಯ ಮಾಡಿ. <ph name="BEGIN_LINK" />ಸಮೀಕ್ಷೆಯಲ್ಲಿ ಭಾಗವಹಿಸಿ<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">ಮರುಹೊಂದಿಸು</translation>
 <translation id="5942872142862698679">ಹುಡುಕಲು Google ಬಳಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="5951119116059277034">ಲೈವ್ ಪುಟವನ್ನು ವೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ</translation>
-<translation id="5951615825629292797">ಭಾಷೆ ಸಿದ್ಧವಾಗಿದೆ, <ph name="APP_NAME" /> ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="5952764234151283551">ನೀವು ಸಂಪರ್ಕಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಪುಟದ URL ಅನ್ನು Google ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
 <translation id="5956665950594638604">ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ Chrome ಸಹಾಯ ಕೇಂದ್ರ ತೆರೆಯಿರಿ</translation>
 <translation id="5957442310066583693">ನಿಮ್ಮ ಪ್ರಮುಖ ಸೈಟ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಹೋಮ್ ಬಟನ್ ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">ಸೈಟ್‌ಗಳನ್ನು ಎಂದಿಗೂ ಅನುವಾದಿಸಬೇಡಿ</translation>
 <translation id="8349013245300336738">ಬಳಸಿದ ಡೇಟಾ ಪ್ರಮಾಣದ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗಿದೆ</translation>
-<translation id="8362134094656482681">ನೀವು ಆಸಕ್ತಿ ಹೊಂದಿರುವ ವಿಷಯಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="8364299278605033898">ಜನಪ್ರಿಯ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ನೋಡಿ</translation>
 <translation id="8368027906805972958">ಅಪರಿಚಿತ ಅಥವಾ ಬೆಂಬಲಿತವಲ್ಲದ ಸಾಧನ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> ಸಿದ್ಧವಾಗಿದೆ.</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 f08aa402..899713f 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">현재 탭 닫기</translation>
 <translation id="1258753120186372309">Google 기념일 로고: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> 공유할 수 없음</translation>
-<translation id="1276279242344007853">팔로우하는 사이트를 관리합니다.</translation>
 <translation id="1283039547216852943">탭하여 펼치기</translation>
 <translation id="1285310382777185058">언어 변경</translation>
 <translation id="1291207594882862231">방문 기록, 쿠키, 사이트 데이터, 캐시 삭제…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">곧 새 탭을 열 때 <ph name="SITE_NAME" /> 스토리가 표시됩니다. 팔로우 관리에서 팔로우 중인 사이트를 관리할 수 있습니다.</translation>
 <translation id="4699172675775169585">캐시된 이미지 및 파일</translation>
 <translation id="4714588616299687897">데이터 최대 60% 절약</translation>
-<translation id="4716066120200945007">팔로우 중</translation>
 <translation id="4719927025381752090">번역 옵션 제공</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />에서 열기</translation>
 <translation id="4720982865791209136">Chrome을 개선하는 데 도움을 주세요. <ph name="BEGIN_LINK" />설문조사 참여하기<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">초기화</translation>
 <translation id="5942872142862698679">검색할 때 Google 사용</translation>
 <translation id="5951119116059277034">라이브 페이지 보기 중</translation>
-<translation id="5951615825629292797">언어 준비됨, <ph name="APP_NAME" /> 다시 시작</translation>
 <translation id="5952764234151283551">접속하려는 페이지의 URL을 Google에 전송</translation>
 <translation id="5956665950594638604">새 탭에서 Chrome 고객센터 열기</translation>
 <translation id="5957442310066583693">맞춤 인기 사이트를 보려면 홈 버튼 탭하기</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">사이트 번역 안 함</translation>
 <translation id="8349013245300336738">사용된 데이터 양에 따라 정렬</translation>
 <translation id="835847953965672673">다운로드 <ph name="NUMBER_OF_DOWNLOADS" />개 복원됨</translation>
-<translation id="8362134094656482681">관심 주제를 관리합니다.</translation>
 <translation id="8364299278605033898">인기 웹사이트 보기</translation>
 <translation id="8368027906805972958">알 수 없거나 지원되지 않는 기기(<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" />를 사용할 준비가 되었습니다.</translation>
+<translation id="8387617938027387193">본인 인증</translation>
 <translation id="8393700583063109961">메시지 보내기</translation>
 <translation id="8410695015584479363">가격 추적</translation>
 <translation id="8413126021676339697">방문 기록 전체 보기</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 86ce0d7..b2e773c0 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Учурдагы өтмөктү жабуу</translation>
 <translation id="1258753120186372309">Google чиймелек: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> менен бөлүшүлгөн жок</translation>
-<translation id="1276279242344007853">Сайттарга жазылууларды башкарыңыз</translation>
 <translation id="1283039547216852943">Жайып көрсөтүү үчүн таптап коюңуз</translation>
 <translation id="1285310382777185058">Тилди өзгөртүү</translation>
 <translation id="1291207594882862231">Таржымалды, кукилерди, сайт дайындарын, кешти тазалоо…</translation>
@@ -282,7 +281,7 @@
 <translation id="2827278682606527653">Түрмөктөгү меню экрандын жарымына чейин ачылды</translation>
 <translation id="2830783625999891985">Алмашуу буфериндеги мазмундар жашырылган</translation>
 <translation id="2839327205551510876">Төмөнкүгө көз салуу токтотулду: <ph name="SITE_NAME" /></translation>
-<translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 күн мурда текшерилди}other{# күн мурда текшерилди}}</translation>
+<translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 күн мурун текшерилди}other{# күн мурун текшерилди}}</translation>
 <translation id="2842985007712546952">Түпкү куржун</translation>
 <translation id="2856503607207334158">Кирүү ишке ашкан жок</translation>
 <translation id="2860954141821109167">Телефон колдонмосу бул түзмөктө иштетилгенин текшериңиз</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Жакында жаңы өтмөктү ачкан сайын, <ph name="SITE_NAME" /> окуяларын көрүп турасыз. Жазылган сайттарды Жазылууларды башкаруу бөлүмүнөн көзөмөлдөй аласыз.</translation>
 <translation id="4699172675775169585">Кештелген сүрөттөр жана файлдар</translation>
 <translation id="4714588616299687897">Трафигиңизди 60% чейин үнөмдөңүз</translation>
-<translation id="4716066120200945007">ЖАЗЫЛГАНСЫЗ</translation>
 <translation id="4719927025381752090">Которуу сунушталсын</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> менен ачуу</translation>
 <translation id="4720982865791209136">Chrome'ду өркүндөтүүгө жардам бериңиз. <ph name="BEGIN_LINK" />Сурамжылоого катышыңыз<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Кайра коюу</translation>
 <translation id="5942872142862698679">Издөө үчүн Google колдонулууда</translation>
 <translation id="5951119116059277034">Жарыяланган баракты көрүп турасыз</translation>
-<translation id="5951615825629292797">Тил жүктөлүп алынды. <ph name="APP_NAME" /> колдонмосун өчүрүп күйгүзүңүз</translation>
 <translation id="5952764234151283551">Кирүүгө аракет кылып жаткан барактын URL'ин Google'га жөнөтөт</translation>
 <translation id="5956665950594638604">Chrome Жардам борборун жаңы өтмөктө ачуу</translation>
 <translation id="5957442310066583693">Мыкты сайттарды көрүү үчүн, Башкы бет баскычын таптап коюңуз</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">Сайттар эч качан которулбасын</translation>
 <translation id="8349013245300336738">Сарпталган трафик боюнча иргөө</translation>
 <translation id="835847953965672673">Жүктөлүп алынган <ph name="NUMBER_OF_DOWNLOADS" /> нерсе калыбына келтирилди</translation>
-<translation id="8362134094656482681">Кызыктуу темаларды башкарыңыз</translation>
 <translation id="8364299278605033898">Таанымал вебсайттарды көрүү</translation>
 <translation id="8368027906805972958">Белгисиз же колдоого алынбаган түзмөк (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Төмөнкү тил жүктөлүп алынды: <ph name="LANG" /></translation>
+<translation id="8387617938027387193">Өзүңүздү ырастаңыз</translation>
 <translation id="8393700583063109961">Билдирүү жөнөтүү</translation>
 <translation id="8410695015584479363">Бааларга көз салуу</translation>
 <translation id="8413126021676339697">Таржымалды толугу менен көрсөтүү</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 a158c8cd..1242c1d 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">ປິດແຖບປັດຈຸບັນ</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">ບໍ່ສາມາດແບ່ງປັນ <ph name="CONTENT_TYPE" /> ໄດ້</translation>
-<translation id="1276279242344007853">ຈັດການເວັບໄຊທີ່ທ່ານກຳລັງຕິດຕາມ</translation>
 <translation id="1283039547216852943">ແຕະເພື່ອຂະຫຍາຍ</translation>
 <translation id="1285310382777185058">ປ່ຽນພາສາ</translation>
 <translation id="1291207594882862231">ລຶບລ້າງປະຫວັດ, ຄຸກກີ້, ຂໍ້ມູນເວັບໄຊ, ແຄສ…</translation>
@@ -296,6 +295,7 @@
 <translation id="2904414404539560095">ລາຍການອຸປະກອນທີ່ຈະແບ່ງປັນແຖບນຳໂດຍເປີດຢູ່ທີ່ລະດັບລວງສູງເຕັມຈໍ.</translation>
 <translation id="2905036901251765993">ອະນຸຍາດໃຫ້ເຂົາເຈົ້າສະແກນລະຫັດ QR ນີ້ເພື່ອແບ່ງປັນກັບຄົນທີ່ຢູ່ໃກ້ຄຽງ</translation>
 <translation id="2909615210195135082">ແພລດຟອມການແຈ້ງເຕືອນຂອງ Google</translation>
+<translation id="2912296070571964914">ຈັດການຫົວຂໍ້ທີ່ທ່ານສົນໃຈ</translation>
 <translation id="2923908459366352541">ຊື່ໃຊ້ບໍ່ໄດ້</translation>
 <translation id="2932150158123903946">ບ່ອນເກັບຂໍ້ມູນ Google <ph name="APP_NAME" /></translation>
 <translation id="2932222164150889403">ແປ້ນພິມຂອງທ່ານຈະບໍ່ປ່ຽນແປງ</translation>
@@ -340,6 +340,8 @@
 <translation id="3254409185687681395">ໃສ່ບຸກມາກສ໌ຫນ້າ​ນີ້...</translation>
 <translation id="3259831549858767975">ເຮັດໃຫ້ທຸກຢ່າງໃນໜ້ານ້ອຍລົງ</translation>
 <translation id="3264124641674805320">ວິທີດາວໂຫຼດເນື້ອຫາສຳລັບພາຍຫຼັງ</translation>
+<translation id="3264259168916048410">ຄອມພິວເຕີຂອງທ່ານຕ້ອງການໃຊ້ອຸປະກອນນີ້ເພື່ອເຂົ້າສູ່ລະບົບຫາເວັບໄຊ</translation>
+<translation id="3265534588625245297">ຈັດການເວັບໄຊທີ່ທ່ານຕິດຕາມ</translation>
 <translation id="3269093882174072735">ໂຫຼດ​ຮູບ</translation>
 <translation id="3269956123044984603">ເພື່ອໃຊ້ແຖບຂອງທ່ານຈາກອຸປະກອນອື່ນ, ໃຫ້ເປີດ “ຊິ້ງຂໍ້ມູນອັດຕະໂນມັດ” ໃນການຕັ້ງຄ່າບັນຊີ Android ຂອງທ່ານ.</translation>
 <translation id="3282568296779691940">ລົງຊື່ເຂົ້າ​ໃຊ້ Chrome</translation>
@@ -498,6 +500,7 @@
 <translation id="4351244548802238354">ປິດ​ໜ້າ​ຕ່າງ</translation>
 <translation id="4378154925671717803">ໂທລະ​ສັບ</translation>
 <translation id="4384468725000734951">ກຳລັງໃຊ້ Sogou ສຳລັບການຊອກຫາ</translation>
+<translation id="4402611456429872546"><ph name="LANG" /> - ກຳລັງດາວໂຫຼດ…</translation>
 <translation id="4404568932422911380">ບໍ່ມີບຸກມາກ</translation>
 <translation id="4405224443901389797">ຍ້າຍໄປໃສ່…</translation>
 <translation id="4411535500181276704">ໂໝດ Lite</translation>
@@ -550,7 +553,6 @@
 <translation id="4697543623252708062">ໃນອີກບໍ່ດົນ, ທ່ານຈະເຫັນຂ່າວຈາກ <ph name="SITE_NAME" /> ເມື່ອທ່ານເປີດແຖບໃໝ່. ທ່ານສາມາດຄວບຄຸມເວັບໄຊທີ່ທ່ານກຳລັງຕິດຕາມໄດ້ໃນການຈັດການການຕິດຕາມ.</translation>
 <translation id="4699172675775169585">ຮູບ ແລະໄຟລ໌ທີ່ແຄຊ໌ແລ້ວ</translation>
 <translation id="4714588616299687897">ປະຢັດຂໍ້ມູນຂອງທ່ານໄດ້ເຖິງ 60%</translation>
-<translation id="4716066120200945007">ກຳລັງຕິດຕາມ</translation>
 <translation id="4719927025381752090">ໃຫ້ການແປພາສາ</translation>
 <translation id="4720023427747327413">ເປີດ​ຢູ່​ໃນ <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">ຊ່ວຍປັບປຸງ Chrome. <ph name="BEGIN_LINK" />ເຮັດການສຳຫຼວດ<ph name="END_LINK" /></translation>
@@ -585,6 +587,7 @@
 <translation id="488187801263602086">ປ່ຽນຊື່ໄຟລ໌</translation>
 <translation id="4882831918239250449">ຄວບຄຸມວ່າຈະໃຫ້ໃຊ້ປະຫວັດການທ່ອງເວັບຂອງທ່ານແນວໃດເພື່ອປັບແຕ່ງການຊອກຫາ, ໂຄສະນາ ແລະ ອື່ນໆອີກໃຫ້ເປັນແບບສ່ວນຕົວ</translation>
 <translation id="4885273946141277891">ຈໍາ​ນວນຂອງຕົວຢ່າງ Chrome ທີ່ບໍ່ຮອງຮັບ​.</translation>
+<translation id="4905269543817054577">ບໍ່ໄດ້ບັນທຶກປະຫວັດໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="4908869848243824489">Discover ໂດຍ Google</translation>
 <translation id="4910889077668685004">ແອັບຈ່າຍເງິນ</translation>
 <translation id="4913161338056004800">ຣີເຊັດສະຖິຕິ</translation>
@@ -752,7 +755,6 @@
 <translation id="5939518447894949180">ຕັ້ງຄ່າຄືນໃໝ່</translation>
 <translation id="5942872142862698679">ກຳລັງໃຊ້ Google ສຳລັບການຊອກຫາ</translation>
 <translation id="5951119116059277034">ກຳລັງເບິ່ງໜ້າສົດ</translation>
-<translation id="5951615825629292797">ພາສາພ້ອມແລ້ວ, ຣິສະຕາດ <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">ສົ່ງ URL ຂອງໜ້າທີ່ທ່ານກຳລັງພະຍາຍາມເຂົ້າຫາໃຫ້ Google</translation>
 <translation id="5956665950594638604">ເປີດສູນຊ່ວຍເຫຼືອ Chrome ໃນແຖບໃໝ່</translation>
 <translation id="5957442310066583693">ເພື່ອເບິ່ງເວັບໄຊຍອດນິຍົມຂອງທ່ານ, ກະລຸນາແຕະປຸ່ມໜ້າທຳອິດ</translation>
@@ -954,6 +956,7 @@
 <translation id="7191430249889272776">ແຖບທີ່ເປີດຢູ່ໃນພື້ນຫຼັງ.</translation>
 <translation id="7233236755231902816">ເພື່ອເຫັນເວັບເປັນພາສາຂອງທ່ານ, ກະລຸນາດາວໂຫຼດ Chrome ເວີຊັນຫຼ້າສຸດ</translation>
 <translation id="7248069434667874558">ກວດໃຫ້ແນ່ໃຈວ່າ <ph name="TARGET_DEVICE_NAME" /> ໄດ້ເປີດການຊິ້ງຂໍ້ມູນໃນ Chrome ແລ້ວ</translation>
+<translation id="7252076891734325316">ວາງໂທລະສັບຂອງທ່ານໄວ້ໃກ້ກັບຄອມພິວເຕີ</translation>
 <translation id="7274013316676448362">ເວັບໄຊທີ່ຖືກບລັອກໄວ້</translation>
 <translation id="7286572596625053347">ປ່ຽນ <ph name="LANGUAGE" /> ບໍ?</translation>
 <translation id="7290209999329137901">ບໍ່ສາມາດໃຊ້ການປ່ຽນຊື່ໄດ້</translation>
@@ -1020,6 +1023,7 @@
 <translation id="7630202231528827509">URL ຜູ້ໃຫ້ບໍລິການ</translation>
 <translation id="7638584964844754484">ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ</translation>
 <translation id="7641339528570811325">ລຶບລ້າງຂໍ້ມູນການທ່ອງເວັບ...</translation>
+<translation id="764170292089748542">Chrome ຈະບໍ່ບັນທຶກປະຫວັດການທ່ອງເວັບເມື່ອທ່ານເລືອກທ່ອງເວັບແບບສ່ວນຕົວ. ທ່ານຍັງຄົງສາມາດໃຊ້ບຸກມາກເພື່ອເຂົ້າເຖິງເວັບໄຊທີ່ທ່ານມັກໄດ້ຢູ່.</translation>
 <translation id="7646772052135772216">ການຊິ້ງຂໍ້ມູນລະຫັດຜ່ານບໍ່ເຮັດວຽກ</translation>
 <translation id="7658239707568436148">ຍົກ​ເລີກ​</translation>
 <translation id="7665369617277396874">ເພີ່ມ​ບັນ​ຊີ</translation>
@@ -1045,6 +1049,7 @@
 <translation id="7810647596859435254">ເປີດດ້ວຍ...</translation>
 <translation id="7815484226266492798">ຮູບໜ້າຈໍຍາວ</translation>
 <translation id="7821588508402923572">ການປະຢັດຂໍ້ມູນຂອງທ່ານຈະປາກົດຢູ່ບ່ອນນີ້</translation>
+<translation id="78270725016672455">ຄອມພິວເຕີຂອງທ່ານຕ້ອງການລົງທະບຽນອຸປະກອນນີ້ເພື່ອເຂົ້າສູ່ລະບົບຫາເວັບໄຊ</translation>
 <translation id="7844171778363018843">ບໍ່ໄດ້ເລືອກຂໍ້ມູນທີ່ຈະຊິ້ງ</translation>
 <translation id="7846296061357476882">ບໍລິການ Google</translation>
 <translation id="784934925303690534">ຂອບເຂດເວລາ</translation>
@@ -1131,7 +1136,6 @@
 <translation id="834313815369870491">ຢ່າແປເວັບໄຊ</translation>
 <translation id="8349013245300336738">ຮຽງຕາມປະລິມານອິນເຕີເນັດທີ່ໃຊ້</translation>
 <translation id="835847953965672673">ກູ້ຄືນການດາວໂຫຼດ <ph name="NUMBER_OF_DOWNLOADS" /> ລາຍການແລ້ວ</translation>
-<translation id="8362134094656482681">ຈັດການຫົວຂໍ້ທີ່ທ່ານສົນໃຈ</translation>
 <translation id="8364299278605033898">ເບິ່ງເວັບໄຊຍອດນິຍົມ</translation>
 <translation id="8368027906805972958">ອຸປະກອນທີ່ບໍ່ຮູ້ຈັກ ຫຼື ບໍ່ຮອງຮັບ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> ພ້ອມແລ້ວ.</translation>
@@ -1142,6 +1146,7 @@
 <translation id="8427875596167638501">ແຖບສະແດງຕົວຢ່າງເປີດເຄິ່ງໜຶ່ງ</translation>
 <translation id="8428213095426709021">ການ​ຕັ້ງຄ່າ</translation>
 <translation id="8438566539970814960">ເຮັດໃຫ້ການຊອກຫາ ແລະ ການທ່ອງເວັບດີຂຶ້ນ</translation>
+<translation id="8439974325294139057"><ph name="LANG" /> - ພາສາພ້ອມແລ້ວ, ຣີສະຕາດ <ph name="APP_NAME" />.</translation>
 <translation id="8442258441309440798">ບໍ່ມີເລື່ອງລາວ</translation>
 <translation id="8443209985646068659">Chrome ບໍ່ສາມາດອັບເດດໄດ້</translation>
 <translation id="8445448999790540984">ບໍ່ສາມາດສົ່ງລະຫັດຜ່ານອອກໄດ້</translation>
@@ -1214,6 +1219,7 @@
 <translation id="8937267401510745927">ເພື່ອຊ່ວຍທ່ານເຮັດສຳເລັດໜ້າວຽກ, Google ຈະໄດ້ຮັບ URL ແລະ ເນື້ອຫາຂອງເວັບໄຊທີ່ທ່ານໃຊ້ຜູ້ຊ່ວຍ, ພ້ອມກັບຂໍ້ມູນທີ່ທ່ານສົ່ງຜ່ານຜູ້ຊ່ວຍ. ຂໍ້ມູນນີ້ອາດຈະຖືກເກັບໄວ້ໃນບັນຊີ Google ຂອງທ່ານ. ທ່ານສາມາດປິດຜູ້ຊ່ວຍໄດ້ໃນການຕັ້ງຄ່າ Chrome.</translation>
 <translation id="8937772741022875483">ລຶບການເຄື່ອນໄຫວໃນ Chrome ຂອງທ່ານອອກຈາກ Digital Wellbeing ບໍ?</translation>
 <translation id="8942627711005830162">ເປີດໃນໜ້າຈໍອື່ນ</translation>
+<translation id="8945143127965743188"><ph name="LANG" /> - ບໍ່ສາມາດດາວໂຫຼດພາສານີ້ໄດ້. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ.</translation>
 <translation id="8951232171465285730">Chrome ຊ່ວຍທ່ານປະຢັດໄດ້ <ph name="MEGABYTES" /> MB</translation>
 <translation id="8965591936373831584">ຄ້າງຢູ່</translation>
 <translation id="8970887620466824814">ມີບາງຢ່າງຜິດພາດ.</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 e6d67bf..717fd45 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Uždaryti dabartinį skirtuką</translation>
 <translation id="1258753120186372309">„Google“ papuoštas logotipas: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Nepavyko bendrinti turinio: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Tvarkykite stebimas svetaines</translation>
 <translation id="1283039547216852943">Palieskite ir išskleiskite</translation>
 <translation id="1285310382777185058">Kalbos keitimas</translation>
 <translation id="1291207594882862231">Išvalykite istoriją, slapukus, svetainės duomenis, talpyklą…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Netrukus atidarę naują skirtuką matysite naujienas iš „<ph name="SITE_NAME" />“. Stebimas svetaines galite valdyti skiltyje „Tvarkyti stebimą turinį“.</translation>
 <translation id="4699172675775169585">Talpykloje esantys vaizdai ir failai</translation>
 <translation id="4714588616299687897">Sutaupykite iki 60 proc. duomenų</translation>
-<translation id="4716066120200945007">STEBIMA</translation>
 <translation id="4719927025381752090">Siūlyti versti</translation>
 <translation id="4720023427747327413">Atidaryti naudojant „<ph name="PRODUCT_NAME" />“</translation>
 <translation id="4720982865791209136">Padėkite tobulinti „Chrome“. <ph name="BEGIN_LINK" />Dalyvaukite apklausoje<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Nustatyti iš naujo</translation>
 <translation id="5942872142862698679">Atliekant paiešką naudojama „Google“</translation>
 <translation id="5951119116059277034">Peržiūrimas tiesioginis puslapis</translation>
-<translation id="5951615825629292797">Kalba paruošta, paleiskite „<ph name="APP_NAME" />“ iš naujo</translation>
 <translation id="5952764234151283551">Siunčiamas „Google“ puslapio, kurį bandote pasiekti, URL</translation>
 <translation id="5956665950594638604">Atidaryti „Chrome“ pagalb. centrą naujame skirtuke</translation>
 <translation id="5957442310066583693">Norėdami peržiūrėti populiariausias svetaines palieskite pagrindinio ekrano mygtuką</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Niekada neversti svetainių</translation>
 <translation id="8349013245300336738">Rūšiuoti pagal naudojamų duomenų kiekį</translation>
 <translation id="835847953965672673">Atkurta atsisiuntimų: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Tvarkykite jus dominančias temas</translation>
 <translation id="8364299278605033898">Žr. populiarias svetaines</translation>
 <translation id="8368027906805972958">Nežinomas arba nepalaikomas įrenginys (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> paruošta.</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 8fd5c88..d9775f6 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Aizvērt pašreizējo cilni</translation>
 <translation id="1258753120186372309">Google svētku logotips: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Nevarēja kopīgot: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Pārvaldiet vietnes, kurām sekojat</translation>
 <translation id="1283039547216852943">Pieskarties, lai izvērstu</translation>
 <translation id="1285310382777185058">Valodas maiņa</translation>
 <translation id="1291207594882862231">Dzēst vēsturi, sīkfailus, vietnes datus, kešatmiņu…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Drīzumā, atverot jaunu cilni, būs redzami raksti no vietnes <ph name="SITE_NAME" />. Vietnes, kurām sekojat, varat pārvaldīt sadaļā “Sekotā satura pārvaldība”.</translation>
 <translation id="4699172675775169585">Kešatmiņā ievietotie attēli un faili</translation>
 <translation id="4714588616299687897">Saglabājiet līdz pat 60% datu</translation>
-<translation id="4716066120200945007">SEKOJAT</translation>
 <translation id="4719927025381752090">Piedāvāt tulkot</translation>
 <translation id="4720023427747327413">Atvērt, izmantojot <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Palīdziet uzlabot pārlūku Chrome. <ph name="BEGIN_LINK" />Atbildiet uz aptaujas jautājumiem<ph name="END_LINK" />.</translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Atiestatīt</translation>
 <translation id="5942872142862698679">Tiek izmantota meklētājprogramma Google</translation>
 <translation id="5951119116059277034">Tiek skatīta tiešsaistē pieejamā lapa</translation>
-<translation id="5951615825629292797">Valoda ir sagatavota. Restartējiet lietotni <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Sūta Google serveriem tās lapas URL, kuru mēģināt sasniegt</translation>
 <translation id="5956665950594638604">Atvērt Chrome palīdzības centru jaunā cilnē</translation>
 <translation id="5957442310066583693">Lai skatītu vietnes, ko apmeklējat visbiežāk, pieskarieties pogai Sākumlapa</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Nekad netulkot vietnes</translation>
 <translation id="8349013245300336738">Kārtot pēc izmantoto datu apjoma</translation>
 <translation id="835847953965672673">Lejupielādes atjaunotas, skaits: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Pārvaldiet tēmas, kuras jums interesē</translation>
 <translation id="8364299278605033898">Skatīt populāras vietnes</translation>
 <translation id="8368027906805972958">Nezināma vai neatbalstīta ierīce (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Valoda <ph name="LANG" /> ir sagatavota.</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 ea1d1de..3e30fa3d5 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Затвори ја тековната картичка</translation>
 <translation id="1258753120186372309">Google Doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Не може да се сподели <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Управувајте со сајтовите што ги следите</translation>
 <translation id="1283039547216852943">Допрете за да се прошири</translation>
 <translation id="1285310382777185058">Изменете го јазикот</translation>
 <translation id="1291207594882862231">Исчистете ги историјата, колачињата, податоците на сајтот, кешот…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Наскоро ќе гледате стории од <ph name="SITE_NAME" /> при отворање нова картичка. Може да ги контролирате сајтовите што ги следите во „Управувајте со сајтовите што ги следите“.</translation>
 <translation id="4699172675775169585">Кеширани слики и датотеки</translation>
 <translation id="4714588616299687897">Заштедете до 60% од сообраќајот</translation>
-<translation id="4716066120200945007">СЕ СЛЕДИ</translation>
 <translation id="4719927025381752090">Понудувај превод</translation>
 <translation id="4720023427747327413">Отвори во <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Помогнете да се подобри Chrome. <ph name="BEGIN_LINK" />Учествувајте во анкетата<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Ресетирај</translation>
 <translation id="5942872142862698679">Се користи Google за пребарување</translation>
 <translation id="5951119116059277034">Се прикажува активна страница</translation>
-<translation id="5951615825629292797">Јазикот е подготвен, рестартирајте ја <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Ја испраќа URL-адресата од страница до којашто се обидувате да стигнете до Google</translation>
 <translation id="5956665950594638604">Отвори „Центар за помош на Chrome“ во нова картичка</translation>
 <translation id="5957442310066583693">За да ги гледате најдобрите сајтови, допрете го копчето за почетен екран</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Никогаш не преведувај сајтови</translation>
 <translation id="8349013245300336738">Подреди по количина на искористен сообраќај</translation>
 <translation id="835847953965672673">Вратени се <ph name="NUMBER_OF_DOWNLOADS" /> преземања</translation>
-<translation id="8362134094656482681">Управувајте со темите што ве интересираат</translation>
 <translation id="8364299278605033898">Разгледајте ги популарните веб-сајтови</translation>
 <translation id="8368027906805972958">Непознат или неподдржан уред (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> е подготвен.</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 53e4ce57..fbd1962 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">നിലവിലെ ടാബ് അടയ്‌ക്കുക</translation>
 <translation id="1258753120186372309">Google ഡൂഡിൽ: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> പങ്കിടാനായില്ല</translation>
-<translation id="1276279242344007853">നിങ്ങൾ പിന്തുടരുന്ന സൈറ്റുകൾ മാനേജ് ചെയ്യുക</translation>
 <translation id="1283039547216852943">വികസിപ്പിക്കാൻ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="1285310382777185058">ഭാഷ മാറ്റുക</translation>
 <translation id="1291207594882862231">ചരിത്രവും കുക്കികളും സൈറ്റ് വിവരവും കാഷെയും മായ്‌ക്കുക...</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">ഉടൻ, പുതിയൊരു ടാബ് തുറക്കുമ്പോൾ, നിങ്ങൾക്ക് <ph name="SITE_NAME" /> എന്നതിൽ നിന്നുള്ള സ്റ്റോറികൾ കാണാനാകും. പിന്തുടരുന്നവ മാനേജ് ചെയ്യുക എന്നതിൽ, നിങ്ങൾ പിന്തുടരുന്ന സൈറ്റുകൾ നിയന്ത്രിക്കാം.</translation>
 <translation id="4699172675775169585">കാഷെ ചെയ്‌ത ചിത്രങ്ങളും ഫയലുകളും</translation>
 <translation id="4714588616299687897">നിങ്ങളുടെ ഡാറ്റ 60% വരെ ലാഭിക്കൂ</translation>
-<translation id="4716066120200945007">പിന്തുടരുന്നു</translation>
 <translation id="4719927025381752090">വിവർത്തനം ചെയ്യാനുള്ള ഓഫർ</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />-ൽ തുറക്കുക</translation>
 <translation id="4720982865791209136">Chrome മെച്ചപ്പെടുത്താൻ സഹായിക്കുക. <ph name="BEGIN_LINK" />സർവേയിൽ പങ്കെടുക്കുക.<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">റീസെറ്റ് ചെയ്യുക</translation>
 <translation id="5942872142862698679">തിരയാൻ Google ഉപയോഗിക്കുന്നു</translation>
 <translation id="5951119116059277034">ലൈവ് പേജ് കാണിക്കുന്നു</translation>
-<translation id="5951615825629292797">ഭാഷ തയ്യാറാണ്, <ph name="APP_NAME" /> റീസ്റ്റാർട്ട് ചെയ്യുക</translation>
 <translation id="5952764234151283551">നിങ്ങൾ എത്തിച്ചേരാൻ ശ്രമിക്കുന്ന പേജിന്റെ URL Google-ലേക്ക് അയയ്ക്കുന്നു</translation>
 <translation id="5956665950594638604">പുതിയ ടാബിൽ Chrome സഹായകേന്ദ്രം തുറക്കുക</translation>
 <translation id="5957442310066583693">നിങ്ങളുടെ പ്രധാന സൈറ്റുകൾ കാണാൻ, ഹോം ബോട്ടൺ ടാപ്പ് ചെയ്യുക</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">സൈറ്റുകൾ ഒരിക്കലും വിവർത്തനം ചെയ്യരുത്</translation>
 <translation id="8349013245300336738">ഉപയോഗിച്ച ഡാറ്റയുടെ അളവിനനുസരിച്ച് അടുക്കുക</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ഡൗൺലോഡുകൾ പുനഃസ്ഥാപിച്ചു</translation>
-<translation id="8362134094656482681">നിങ്ങൾക്ക് താൽപ്പര്യമുള്ള വിഷയങ്ങൾ മാനേജ് ചെയ്യുക</translation>
 <translation id="8364299278605033898">ജനപ്രിയ വെബ്‌സൈറ്റുകൾ കാണുക</translation>
 <translation id="8368027906805972958">പരിചിതമല്ലാത്തതോ പിന്തുണയ്‌ക്കാത്തതോ ആയ ഉപകരണം (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> തയ്യാറാണ്.</translation>
+<translation id="8387617938027387193">ഇത് നിങ്ങളാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക</translation>
 <translation id="8393700583063109961">സന്ദേശം അയയ്ക്കുക</translation>
 <translation id="8410695015584479363">നിരക്കുകൾ ട്രാക്ക് ചെയ്യുക</translation>
 <translation id="8413126021676339697">മുഴുവന്‍ ചരിത്രവും കാണിക്കുക</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 e73eb7c..048d66ba 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Үндсэн чихтэй хуудсыг хаах</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" />-г хуваалцаж чадсангүй</translation>
-<translation id="1276279242344007853">Дагаж буй сайтуудаа удирдана уу</translation>
 <translation id="1283039547216852943">Дэлгэхийн тулд товших</translation>
 <translation id="1285310382777185058">Хэл өөрчлөх</translation>
 <translation id="1291207594882862231">Түүх, күүки, сайтын өгөгдөл, нөөцийг устгах...</translation>
@@ -296,6 +295,7 @@
 <translation id="2904414404539560095">Таб хуваалцах төхөөрөмжийн жагсаалтыг бүрэн өндрөөр нээлээ.</translation>
 <translation id="2905036901251765993">Ойролцоо байгаа хүмүүстэй хуваалцахын тулд тэдэнд энэ QR кодыг скан хийхийг зөвшөөрнө үү</translation>
 <translation id="2909615210195135082">Google мэдэгдлийн платформ</translation>
+<translation id="2912296070571964914">Сонирхдог сэдвүүдээ удирдана уу</translation>
 <translation id="2923908459366352541">Нэр буруу байна</translation>
 <translation id="2932150158123903946">Google <ph name="APP_NAME" /> сан</translation>
 <translation id="2932222164150889403">Таны гар өөрчлөгдөхгүй</translation>
@@ -340,6 +340,8 @@
 <translation id="3254409185687681395">Энэ хуудсыг хадгал</translation>
 <translation id="3259831549858767975">Хуудасны бүх зүйлийг жижиг болгох</translation>
 <translation id="3264124641674805320">Контентыг хэрхэн дараа үзэхээр татаж авах вэ</translation>
+<translation id="3264259168916048410">Таны компьютер энэ төхөөрөмжийг сайтад нэвтрэхийн тулд ашиглахыг хүсэж байна</translation>
+<translation id="3265534588625245297">Дагадаг сайтуудаа удирдана уу</translation>
 <translation id="3269093882174072735">Зураг ачаалах</translation>
 <translation id="3269956123044984603">Бусад төхөөрөмжөөсөө таб авахын тулд "Автоматаар синк хийх" тохиргоог Андройд бүртгэлийн тохиргоо хэсэгт асаана уу.</translation>
 <translation id="3282568296779691940">Chrome руу нэвтрэх</translation>
@@ -498,6 +500,7 @@
 <translation id="4351244548802238354">Харилцах цонхыг хаах</translation>
 <translation id="4378154925671717803">Утас</translation>
 <translation id="4384468725000734951">Sogou-р хайж байна</translation>
+<translation id="4402611456429872546"><ph name="LANG" /> - Татаж байна…</translation>
 <translation id="4404568932422911380">Хавчуурга алга</translation>
 <translation id="4405224443901389797">руу зөөх…</translation>
 <translation id="4411535500181276704">Lite горим</translation>
@@ -550,7 +553,6 @@
 <translation id="4697543623252708062">Удахгүй та шинэ таб нээх үедээ <ph name="SITE_NAME" />-с стори харна. Та Дагалтыг удирдах хэсэгт дагаж буй сайтуудаа хянах боломжтой.</translation>
 <translation id="4699172675775169585">Кэшлсэн дүрс ба файл</translation>
 <translation id="4714588616299687897">60% хүртэлх өгөгдлөө хадгална уу</translation>
-<translation id="4716066120200945007">ДАГАЖ БАЙНА</translation>
 <translation id="4719927025381752090">Орчуулахыг санал болгох</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />-д нээлттэй</translation>
 <translation id="4720982865791209136">Chrome-г сайжруулахад тусална уу. <ph name="BEGIN_LINK" />Судалгаанд оролцоно уу<ph name="END_LINK" /></translation>
@@ -584,6 +586,7 @@
 <translation id="488187801263602086">Файлын нэрийг өөрчлөх</translation>
 <translation id="4882831918239250449">Таны хайлтын түүхийг Хайлт, зар болон бусад үйлчилгээг тохируулахад хэрхэн ашигладгийг удирдах</translation>
 <translation id="4885273946141277891">Chrome-ийн хэд хэдэн дэмжигдээгүй тохиолдол</translation>
+<translation id="4905269543817054577">Нууцлалын горимд түүхийг хадгалдаггүй</translation>
 <translation id="4908869848243824489">Discover by Google</translation>
 <translation id="4910889077668685004">Төлбөрийн апп</translation>
 <translation id="4913161338056004800">Статистик шинэчлэх</translation>
@@ -751,7 +754,6 @@
 <translation id="5939518447894949180">Дахин сэргээх</translation>
 <translation id="5942872142862698679">Google-г хайж байна</translation>
 <translation id="5951119116059277034">Шууд хуудсыг үзэж байна</translation>
-<translation id="5951615825629292797">Хэл бэлэн байна, <ph name="APP_NAME" />-г дахин эхлүүлнэ үү</translation>
 <translation id="5952764234151283551">Таны зочлохыг оролдож буй хуудасны URL-г Google-д илгээдэг</translation>
 <translation id="5956665950594638604">Chrome тусламжийн төвийг шинэ табад нээх</translation>
 <translation id="5957442310066583693">Шилдэг сайтуудаа харахын тулд Нүүр хуудасны товчлуурыг товшино уу</translation>
@@ -953,6 +955,7 @@
 <translation id="7191430249889272776">Арын дэвсгэр дээр нээсэн цонх.</translation>
 <translation id="7233236755231902816">Вебийг өөрийн хэлээр үзэхийн тулд Chrome-н хамгийн сүүлийн үеийн хувилбарыг авна уу</translation>
 <translation id="7248069434667874558"><ph name="TARGET_DEVICE_NAME" /> нь Chrome дээр синк хийхийг асаасан эсэхийг шалгана уу</translation>
+<translation id="7252076891734325316">Утсаа компьютертой ойр байрлуулна уу</translation>
 <translation id="7274013316676448362">Блоклосон сайт</translation>
 <translation id="7286572596625053347"><ph name="LANGUAGE" />-г өөрчлөх үү?</translation>
 <translation id="7290209999329137901">Нэр өөрчлөх боломжгүй байна</translation>
@@ -1019,6 +1022,7 @@
 <translation id="7630202231528827509">Үйлчилгээ үзүүлэгчийн URL</translation>
 <translation id="7638584964844754484">Нэвтрэх хэллэг буруу байна</translation>
 <translation id="7641339528570811325">Хайлтын өгөгдлийг цэвэрлэх...</translation>
+<translation id="764170292089748542">Таныг нууцлалтайгаар үзэхээр сонгосон үед Chrome таны хөтчийн түүхийг хадгалдаггүй. Та дуртай сайтууддаа хандахын тулд хавчуургыг ашиглах боломжтой хэвээр байна.</translation>
 <translation id="7646772052135772216">Нууц үгийг синк хийх ажиллахгүй байна</translation>
 <translation id="7658239707568436148">Болих</translation>
 <translation id="7665369617277396874">Бүртгэл нэмэх</translation>
@@ -1044,6 +1048,7 @@
 <translation id="7810647596859435254">Дараахаар нээх...</translation>
 <translation id="7815484226266492798">Урт дэлгэцийн агшин</translation>
 <translation id="7821588508402923572">Таны дата хэмнэлт энд харагдана</translation>
+<translation id="78270725016672455">Таны компьютер энэ төхөөрөмжийг сайтад нэвтрэхэд бүртгүүлэхийг хүсэж байна</translation>
 <translation id="7844171778363018843">Синк хийх өгөгдөл сонгоогүй</translation>
 <translation id="7846296061357476882">Google-н үйлчилгээнүүд</translation>
 <translation id="784934925303690534">Цагийн хүрээ</translation>
@@ -1130,7 +1135,6 @@
 <translation id="834313815369870491">Сайтуудыг хэзээ ч бүү орчуул</translation>
 <translation id="8349013245300336738">Ашигласан өгөгдлийг хэмжээгээр нь эрэмбэлэх</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> татаж авсан файлыг сэргээсэн</translation>
-<translation id="8362134094656482681">Сонирхдог сэдвүүдээ удирдана уу</translation>
 <translation id="8364299278605033898">Түгээмэл хэрэглэгддэг веб сайтыг харах</translation>
 <translation id="8368027906805972958">Үл мэдэгдэх эсвэл дэмжигдээгүй төхөөрөмж (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> бэлэн байна.</translation>
@@ -1141,6 +1145,7 @@
 <translation id="8427875596167638501">Урьдчилан үзэх табыг хагас нээсэн</translation>
 <translation id="8428213095426709021">Тохиргоо</translation>
 <translation id="8438566539970814960">Хайлт болон хөтлөх явцыг сайжруулаарай</translation>
+<translation id="8439974325294139057"><ph name="LANG" /> - Хэл бэлэн байна. <ph name="APP_NAME" />-г дахин эхлүүлнэ үү.</translation>
 <translation id="8442258441309440798">Түүх алга байна</translation>
 <translation id="8443209985646068659">Chrome-г шинэчлэх боломжгүй</translation>
 <translation id="8445448999790540984">Нууц үгийг экспорт хийх боломжгүй</translation>
@@ -1213,6 +1218,7 @@
 <translation id="8937267401510745927">Google танд ажлуудаа дуусгахад тань туслахын тулд таны Туслахаа ашиглах сайтуудын URL болон контентоос гадна Туслахаар илгээх мэдээллийг хүлээн авна. Энэ мэдээллийг таны Google бүртгэлд хадгалж болзошгүй. Та Туслахыг Chrome-н тохиргоонд унтраах боломжтой.</translation>
 <translation id="8937772741022875483">Chrome-н үйл ажиллагаагаа Дижитал хэрэглээнээс устгах уу?</translation>
 <translation id="8942627711005830162">Өөр цонхонд нээх</translation>
+<translation id="8945143127965743188"><ph name="LANG" /> - Энэ хэлийг татаж чадсангүй. Дараа дахин оролдоно уу.</translation>
 <translation id="8951232171465285730">Chrome <ph name="MEGABYTES" /> МБ-ыг хэмнэсэн</translation>
 <translation id="8965591936373831584">хүлээгдэж байна</translation>
 <translation id="8970887620466824814">Алдаа гарлаа.</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 37cee2b..f3c67bae 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">वर्तमान टॅब बंद करा</translation>
 <translation id="1258753120186372309">Google डूडल: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> शेअर करू शकलो नाही</translation>
-<translation id="1276279242344007853">तुम्ही फॉलो करत असलेल्या साइट व्यवस्थापित करा</translation>
 <translation id="1283039547216852943">विस्तृत करण्यासाठी टॅप करा</translation>
 <translation id="1285310382777185058">भाषा बदला</translation>
 <translation id="1291207594882862231">इतिहास, कुकी, साइट डेटा, कॅशे  साफ करा…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">लवकरच, तुम्ही नवीन टॅब उघडल्यानंतर तुम्हाला <ph name="SITE_NAME" /> वरील स्टोरी दिसतील. तुम्ही फॉलो करता त्या साइट, फॉलो व्यवस्थापित करा यामध्ये नियंत्रित करू शकता.</translation>
 <translation id="4699172675775169585">कॅशे   इमेज आणि फाइल</translation>
 <translation id="4714588616299687897">तुमचा सुमारे 60% डेटा वाचवा</translation>
-<translation id="4716066120200945007">फॉलो करत आहे</translation>
 <translation id="4719927025381752090">भाषांतर करण्यास ऑफर करा</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> मध्‍ये उघडा</translation>
 <translation id="4720982865791209136">Chrome सुधारण्यात मदत करा. <ph name="BEGIN_LINK" />सर्वेक्षण करा<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">रीसेट करा</translation>
 <translation id="5942872142862698679">शोध करण्‍यासाठी Google वापरत आहे</translation>
 <translation id="5951119116059277034">लाइव्ह पेज पाहत आहे</translation>
-<translation id="5951615825629292797">भाषा तयार आहे, <ph name="APP_NAME" /> रीस्टार्ट करा</translation>
 <translation id="5952764234151283551">तुम्ही ज्या पेजवर पोहोचण्याचा प्रयत्न करत आहात त्याची URL Google ला पाठवते</translation>
 <translation id="5956665950594638604">नवीन टॅबमध्ये Chrome मदत केंद्र उघडा</translation>
 <translation id="5957442310066583693">तुमच्या टॉप साइट पाहण्यासाठी, होम बटणावर टॅप करा</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">साइटचे कधीही भाषांतर करू नका</translation>
 <translation id="8349013245300336738">वापरलेल्या डेटानुसार क्रमाने लावा</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> डाउनलोड रिस्टोअर केले</translation>
-<translation id="8362134094656482681">तुम्हाला स्वारस्य असलेले विषय व्यवस्थापित करा</translation>
 <translation id="8364299278605033898">लोकप्रिय वेबसाइट पाहा</translation>
 <translation id="8368027906805972958">अज्ञात किंवा सपोर्ट नसलेले डिव्हाइस (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> तयार आहे.</translation>
+<translation id="8387617938027387193">हे तुम्हीच आहात याची पडताळणी करा</translation>
 <translation id="8393700583063109961">संदेश पाठवा</translation>
 <translation id="8410695015584479363">किमती ट्रॅक करा</translation>
 <translation id="8413126021676339697">संपूर्ण इतिहास दर्शवा</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 2a853dc8..6384a223 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Tutup tab semasa</translation>
 <translation id="1258753120186372309">Coretan Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Tidak dapat berkongsi <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Urus laman yang anda ikuti</translation>
 <translation id="1283039547216852943">Ketik untuk kembangkan</translation>
 <translation id="1285310382777185058">Tukar bahasa</translation>
 <translation id="1291207594882862231">Hapuskan sejarah, kuki, data tapak, cache...</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Tidak lama lagi, anda akan melihat cerita daripada <ph name="SITE_NAME" /> apabila anda membuka tab baharu. Anda boleh mengawal laman yang anda ikuti dalam Urus Ikutan.</translation>
 <translation id="4699172675775169585">Imej dan fail dicache</translation>
 <translation id="4714588616299687897">Jimat sehingga 60% daripada data anda</translation>
-<translation id="4716066120200945007">MENGIKUTI</translation>
 <translation id="4719927025381752090">Tawaran untuk menterjemah</translation>
 <translation id="4720023427747327413">Buka dalam <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Bantu meningkatkan Chrome. <ph name="BEGIN_LINK" />Jawab tinjauan<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Tetapkan semula</translation>
 <translation id="5942872142862698679">Menggunakan Google untuk carian</translation>
 <translation id="5951119116059277034">Melihat halaman langsung</translation>
-<translation id="5951615825629292797">Bahasa sudah sedia, mulakan semula <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Menghantar URL halaman yang cuba anda capai kepada Google</translation>
 <translation id="5956665950594638604">Buka Pusat Bantuan Chrome dalam tab baharu</translation>
 <translation id="5957442310066583693">Untuk melihat tapak web yang paling kerap anda lawati, ketik butang Skrin Utama</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Jangan terjemah laman</translation>
 <translation id="8349013245300336738">Isih mengikut jumlah data yang digunakan</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> muat turun dipulihkan</translation>
-<translation id="8362134094656482681">Urus topik yang anda minati</translation>
 <translation id="8364299278605033898">Lihat tapak web popular</translation>
 <translation id="8368027906805972958">Peranti tidak diketahui atau tidak disokong (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> sudah sedia.</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 af6af99..12f4f8e 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">လက်ရှိတဘ်ကို ပိတ်ရန်</translation>
 <translation id="1258753120186372309">Google doodle- <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ကို မျှဝေ၍မရပါ။</translation>
-<translation id="1276279242344007853">သင်လိုက်ကြည့်နေသော ဝဘ်ဆိုက်များကို စီမံနိုင်သည်</translation>
 <translation id="1283039547216852943">ချဲ့ရန် တို့ပါ</translation>
 <translation id="1285310382777185058">ဘာသာစကား ပြောင်းခြင်း</translation>
 <translation id="1291207594882862231">မှတ်တမ်း၊ ကွတ်ကီး၊ ဆိုက်ဒေတာ၊ ကက်ရှ်များကို ရှင်းလင်းပါ...</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">တဘ်အသစ်ဖွင့်သောအခါ <ph name="SITE_NAME" /> မှ သတင်းဆောင်းပါးများကို မကြာမီ ကြည့်နိုင်ပါမည်။ ‘လိုက်ကြည့်ထားသည်များကို စီမံခြင်း’ တွင် သင်လိုက်ကြည့်နေသော ဝဘ်ဆိုက်များကို ထိန်းချုပ်နိုင်သည်။</translation>
 <translation id="4699172675775169585">ကက်ရှ်လုပ်ထားသည့် ပုံများနှင့် ဖိုင်များ</translation>
 <translation id="4714588616299687897">သင့်ဒေတာ ၆၀% အထိ ချွေတာလိုက်ပါ</translation>
-<translation id="4716066120200945007">လိုက်ကြည့်နေသည်များ</translation>
 <translation id="4719927025381752090">ဘာသာပြန်ရန် ပေးအပ်ချက်</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> တွင်ဖွင့်မည်</translation>
 <translation id="4720982865791209136">Chrome ပိုမိုကောင်းမွန်လာစေရန် ကူညီပါ။ <ph name="BEGIN_LINK" />စစ်တမ်းဖြေဆိုပါ<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">ပြန်ညှိ</translation>
 <translation id="5942872142862698679">ရှာဖွေမှုအတွက် Google ကို အသုံးပြုသည်</translation>
 <translation id="5951119116059277034">တိုက်ရိုက်လွှင့်စာမျက်နှာကို ကြည့်ရှုနေသည်</translation>
-<translation id="5951615825629292797">ဘာသာစကား အသင့်ဖြစ်ပြီ၊ <ph name="APP_NAME" /> ပြန်စပါ</translation>
 <translation id="5952764234151283551">သင်ဖွင့်နေသည့် စာမျက်နှာ၏ URL ကို Google သို့ ပို့သည်</translation>
 <translation id="5956665950594638604">Chrome ကူညီရေးရာဌာနကို တဘ်အသစ်တွင် ဖွင့်ရန်</translation>
 <translation id="5957442310066583693">သင်၏ ထိပ်တန်းဝဘ်ဆိုက်များကိုကြည့်ရန် 'ပင်မခလုတ်' ကို တို့ပါ</translation>
@@ -1130,7 +1127,6 @@
 <translation id="834313815369870491">ဝဘ်ဆိုက်များကို ဘယ်တော့မှ ဘာသာမပြန်ပါနှင့်</translation>
 <translation id="8349013245300336738">အသုံးပြုသည့် ဒေတာပမာဏအလိုက် စီရန်</translation>
 <translation id="835847953965672673">ဒေါင်းလုဒ် <ph name="NUMBER_OF_DOWNLOADS" /> ပြန်ယူပြီးပြီ</translation>
-<translation id="8362134094656482681">သင်စိတ်ဝင်စားသော အကြောင်းအရာများကို စီမံနိုင်သည်</translation>
 <translation id="8364299278605033898">လူကြိုက်များသော ဝဘ်ဆိုက်များ ကြည့်ရန်</translation>
 <translation id="8368027906805972958">အမျိုးအမည်မသိ သို့မဟုတ် ပံ့ပိုးမထားသည့် ကိရိယာ ( <ph name="DEVICE_ID" /> )</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> အသင့်ဖြစ်ပြီ။</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 6b496d99..ce45b7d2 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">हालको ट्याब बन्द गर्नुहोस्</translation>
 <translation id="1258753120186372309">Google केरकार: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> आदान प्रदान गर्न सकिएन</translation>
-<translation id="1276279242344007853">तपाईंले फलो गर्ने साइटहरू व्यवस्थापन गर्नुहोस्</translation>
 <translation id="1283039547216852943">विस्तृत गर्न ट्याप गर्नुहोस्</translation>
 <translation id="1285310382777185058">भाषा परिवर्तन गर्नुहोस्</translation>
 <translation id="1291207594882862231">इतिहास, कुकी, साइट सम्बन्धी डेटा, क्यासलाई खाली गर्नुहोस्…</translation>
@@ -549,7 +548,6 @@
 <translation id="4697543623252708062">चाँडै नै, तपाईंले नयाँ ट्याब खोल्दा <ph name="SITE_NAME" /> सम्बन्धी लेखहरू देखाइने छन्। तपाईं 'फलो गरिएका साइटहरू व्यवस्थापन गर्नुहोस्' नामक खण्डमा गई आफूले फलो गरिरहेका साइटहरू व्यवस्थापन गर्न सक्नुहुन्छ।</translation>
 <translation id="4699172675775169585">क्यास गरिएका छविहरू र फाइलहरू</translation>
 <translation id="4714588616299687897">आफ्नो डेटाको ६०% सम्म जोगाउनुहोस्</translation>
-<translation id="4716066120200945007">फलो गरिरहेको</translation>
 <translation id="4719927025381752090">अनुवादको गर्न प्रस्ताव गर्नुहोस्</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />मा खोल्नुहोस्</translation>
 <translation id="4720982865791209136">Chrome लाई सुधार्न मद्दत गर्नुहोस्। <ph name="BEGIN_LINK" />सर्वेक्षणमा भाग लिनुहोस्।<ph name="END_LINK" /></translation>
@@ -751,7 +749,6 @@
 <translation id="5939518447894949180">रिसेट गर्नुहोस्</translation>
 <translation id="5942872142862698679">खोजीका लागि Google प्रयोग गर्दै</translation>
 <translation id="5951119116059277034">लाइभ पेज हेरिँदै छ</translation>
-<translation id="5951615825629292797">भाषा प्याक तयार छ, <ph name="APP_NAME" /> रिस्टार्ट गर्नुहोस्</translation>
 <translation id="5952764234151283551">तपाईंले पहुँच राख्न खोजिरहनुभएको पृष्ठको URL Google मा पठाउँछ</translation>
 <translation id="5956665950594638604">Chrome को मद्दत केन्द्र एउटा नयाँ ट्याबमा खोल्नुहोस्</translation>
 <translation id="5957442310066583693">तपाईंका लागि सिफारिस गरिएका शीर्ष साइटहरू हेर्न होम बटनमा ट्याप गर्नुहोस्</translation>
@@ -1130,10 +1127,10 @@
 <translation id="834313815369870491">निम्न साइटहरूको पाठ कहिल्यै अनुवाद नगरियोस्</translation>
 <translation id="8349013245300336738">प्रयोग गरिएको डेटाको मात्राद्वारा क्रमबद्ध गर्नुहोस्</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> वटा डाउनलोड रिस्टोर गरिए</translation>
-<translation id="8362134094656482681">आफूलाई रुचि भएका विषयहरू व्यवस्थापन गर्नुहोस्</translation>
 <translation id="8364299278605033898">लोकप्रिय वेबसाइटहरू हेर्नुहोस्</translation>
 <translation id="8368027906805972958">अज्ञात वा प्रयोग गर्न नमिल्ने यन्त्र (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> भाषा प्याक तयार छ।</translation>
+<translation id="8387617938027387193">यो व्यक्ति तपाईं नै हो भन्ने कुरा पुष्टि गर्नुहोस्</translation>
 <translation id="8393700583063109961">सन्देश पठाउनुहोस्</translation>
 <translation id="8410695015584479363">मूल्यहरू ट्र्याक गर्नुहोस्</translation>
 <translation id="8413126021676339697">पूर्ण इतिहास देखाउनुहोस्</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 20e5b35..117b247 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Huidig tabblad sluiten</translation>
 <translation id="1258753120186372309">Google-doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Kan <ph name="CONTENT_TYPE" /> niet delen</translation>
-<translation id="1276279242344007853">Beheer de sites die je volgt</translation>
 <translation id="1283039547216852943">Tik om uit te vouwen</translation>
 <translation id="1285310382777185058">Taal wijzigen</translation>
 <translation id="1291207594882862231">Geschiedenis, cookies, sitegegevens, cachegeheugen wissen</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Binnenkort zie je artikelen van <ph name="SITE_NAME" /> als je een nieuw tabblad opent. Je kunt de sites die je volgt, beheren via Gevolgde items beheren.</translation>
 <translation id="4699172675775169585">Gecachte afbeeldingen en bestanden</translation>
 <translation id="4714588616299687897">Bespaar tot 60% van je gegevens</translation>
-<translation id="4716066120200945007">JE VOLGT</translation>
 <translation id="4719927025381752090">Aanbieden om te vertalen</translation>
 <translation id="4720023427747327413">Openen in <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Help bij het verbeteren van Chrome. <ph name="BEGIN_LINK" />Enquête invullen<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Resetten</translation>
 <translation id="5942872142862698679">Google wordt gebruikt om te zoeken</translation>
 <translation id="5951119116059277034">Live pagina bekijken</translation>
-<translation id="5951615825629292797">Taal klaar, start <ph name="APP_NAME" /> opnieuw op</translation>
 <translation id="5952764234151283551">Hiermee wordt de URL van de pagina die je probeert te openen, verzonden naar Google</translation>
 <translation id="5956665950594638604">Helpcentrum van Chrome openen in een nieuw tabblad</translation>
 <translation id="5957442310066583693">Tik op de startknop om je populaire sites te bekijken</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Sites nooit vertalen</translation>
 <translation id="8349013245300336738">Sorteren op hoeveelheid gebruikte data</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> downloads hersteld</translation>
-<translation id="8362134094656482681">Beheer de onderwerpen waarin je geïnteresseerd bent</translation>
 <translation id="8364299278605033898">Bekijk populaire websites</translation>
 <translation id="8368027906805972958">Onbekend of niet-ondersteund apparaat (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> is klaar.</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 a0d285a..c807e34 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Lukk den aktive fanen</translation>
 <translation id="1258753120186372309">Google-doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Kunne ikke dele <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Administrer hvilke nettsteder du følger</translation>
 <translation id="1283039547216852943">Trykk for å vise</translation>
 <translation id="1285310382777185058">Bytt språk</translation>
 <translation id="1291207594882862231">Slett loggoppføringer, informasjonskapsler, nettstedsdata, bufferen …</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Snart ser du artikler fra <ph name="SITE_NAME" /> når du åpner nye faner. Du kan kontrollere hvilke nettsteder du følger, i Administrer nettsteder du følger.</translation>
 <translation id="4699172675775169585">Bufrede bilder og filer</translation>
 <translation id="4714588616299687897">Reduser databruken med opptil 60 %</translation>
-<translation id="4716066120200945007">FØLGER</translation>
 <translation id="4719927025381752090">Tilby å oversette</translation>
 <translation id="4720023427747327413">Åpne i <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Hjelp til med å forbedre Chrome. <ph name="BEGIN_LINK" />Delta i undersøkelsen<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Tilbakestill</translation>
 <translation id="5942872142862698679">Bruker Google til å søke</translation>
 <translation id="5951119116059277034">Viser nyeste versjon av siden</translation>
-<translation id="5951615825629292797">Språket er klart. Start <ph name="APP_NAME" /> på nytt</translation>
 <translation id="5952764234151283551">Sender Google nettadressen til siden du prøver å åpne</translation>
 <translation id="5956665950594638604">Åpne brukerstøtten for Chrome i en ny fane</translation>
 <translation id="5957442310066583693">For å se toppnettstedene dine, trykk på knappen Gå til startsiden</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Oversett aldri nettsteder</translation>
 <translation id="8349013245300336738">Sortér etter mengden data som er brukt</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> nedlastinger er gjenopprettet</translation>
-<translation id="8362134094656482681">Administrer emnene du er interessert i</translation>
 <translation id="8364299278605033898">Se populære nettsteder</translation>
 <translation id="8368027906805972958">Ukjent eller ikke-støttet enhet (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> er klart.</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 f2236962..2594d04 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">ସାମ୍ପ୍ରତିକ ଟାବ୍ ବନ୍ଦ କରନ୍ତୁ</translation>
 <translation id="1258753120186372309">Google ଡୁଡଲ୍: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" />ସେୟାର୍ କରିହେଲା ନାହିଁ</translation>
-<translation id="1276279242344007853">ଆପଣ ଅନୁସରଣ କରୁଥିବା ସାଇଟଗୁଡ଼ିକୁ ପରିଚାଳନା କରନ୍ତୁ</translation>
 <translation id="1283039547216852943">ପ୍ରସାରଣ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ</translation>
 <translation id="1285310382777185058">ଭାଷା ବଦଳାନ୍ତୁ</translation>
 <translation id="1291207594882862231">ଇତିବୃତ୍ତି, କୁକୀ, ସାଇଟ୍ ଡାଟା, କ୍ୟାଚିକୁ ଖାଲି କରନ୍ତୁ…</translation>
@@ -533,6 +532,7 @@
 <translation id="4583164079174244168">{MINUTES,plural, =1{# ମିନିଟ୍‌ ପୂର୍ବେ}other{#ମିନିଟ୍ ପୂର୍ବେ}}</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4594952190837476234">ଏହି ପୃଷ୍ଠା <ph name="CREATION_TIME" />ର ଅଟେ ଏବଂ ଅନ୍‌ଲାଇନ୍ ସଂସ୍କରଣ ଠାରୁ ଅଲଗା ହୋଇପାରେ।</translation>
+<translation id="4615382002648696011">ଅନୁସରଣ କରାଯାଉଥିବା ଫିଡରେ, ପଢ଼ାଯାଇନଥିବା ଷ୍ଟୋରୀଗୁଡ଼ିକ ପ୍ରସ୍ତୁତ ଅଛି</translation>
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" /> ଖୋଲନ୍ତୁ</translation>
 <translation id="4619564267100705184">ଏହା ଆପଣ ବୋଲି ଯାଞ୍ଚ କରନ୍ତୁ</translation>
 <translation id="4634124774493850572">ପାସ୍‌ୱର୍ଡ ବ୍ୟବହାର କରନ୍ତୁ</translation>
@@ -549,7 +549,6 @@
 <translation id="4697543623252708062">ଶୀଘ୍ର, ଆପଣ ଏକ ନୂଆ ଟାବ୍ ଖୋଲିଲେ <ph name="SITE_NAME" />ରୁ ଷ୍ଟୋରୀଗୁଡ଼ିକୁ ଦେଖିବେ। ଆପଣ ଅନୁସରଣ କରୁଥିବା ସାଇଟଗୁଡ଼ିକୁ "ଅନୁସରଣ କରୁଥିବା ସାଇଟଗୁଡ଼ିକୁ ପରିଚାଳନା କରନ୍ତୁ"ରେ ନିୟନ୍ତ୍ରଣ କରିପାରିବେ।</translation>
 <translation id="4699172675775169585">କେଚ୍‍ ଛବି ଏବଂ ଫାଇଲ୍‌</translation>
 <translation id="4714588616299687897">ଆପଣଙ୍କ ଡାଟାର 60% ପର୍ଯ୍ୟନ୍ତ ସେଭ୍ କରନ୍ତୁ</translation>
-<translation id="4716066120200945007">ଅନୁସରଣ କରୁଛନ୍ତି</translation>
 <translation id="4719927025381752090">ଅନୁବାଦ କରିବାକୁ ପ୍ରସ୍ତାବ ଦିଅନ୍ତୁ</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />ରେ ଖୋଲନ୍ତୁ</translation>
 <translation id="4720982865791209136">Chromeକୁ ଉନ୍ନତ କରିବାରେ ସହାୟତା କରନ୍ତୁ। <ph name="BEGIN_LINK" />ସର୍ବେକ୍ଷଣରେ ଭାଗ ନିଅନ୍ତୁ<ph name="END_LINK" /></translation>
@@ -751,7 +750,6 @@
 <translation id="5939518447894949180">ପୁନଃସେଟ୍</translation>
 <translation id="5942872142862698679">ସନ୍ଧାନ ପାଇଁ Google ବ୍ୟବହାର କରାଯାଉଛି</translation>
 <translation id="5951119116059277034">ଲାଇଭ୍ ପୃଷ୍ଠା ଦେଖୁଛନ୍ତି</translation>
-<translation id="5951615825629292797">ଭାଷା ପ୍ରସ୍ତୁତ ଅଛି, <ph name="APP_NAME" />କୁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ</translation>
 <translation id="5952764234151283551">Googleରେ ପହଞ୍ଚିବା ପାଇଁ ଆପଣ ଚେଷ୍ଟା କରୁଥିବା ଗୋଟିଏ ପୃଷ୍ଠାର URLକୁ ପଠାଇଥାଏ</translation>
 <translation id="5956665950594638604">ଏକ ନୂଆ ଟାବ୍‌ରେ Chrome ସାହାଯ୍ୟ କେନ୍ଦ୍ର ଖୋଲନ୍ତୁ</translation>
 <translation id="5957442310066583693">ଆପଣଙ୍କ ଶ୍ରେଷ୍ଠ ସାଇଟଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ, ହୋମ୍ ବଟନରେ ଟାପ୍ କରନ୍ତୁ</translation>
@@ -1130,7 +1128,6 @@
 <translation id="834313815369870491">ସାଇଟଗୁଡ଼ିକୁ କେବେ ବି ଅନୁବାଦ କରନ୍ତୁ ନାହିଁ</translation>
 <translation id="8349013245300336738">ବ୍ୟବହାର କରାଯାଇଥିବା ଡାଟାର ପରିମାଣର କ୍ରମରେ ସଜାନ୍ତୁ</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" />ଟି ଡାଉନଲୋଡ୍ ରିଷ୍ଟୋର୍ କରାଯାଇଛି</translation>
-<translation id="8362134094656482681">ଆପଣଙ୍କ ଆଗ୍ରହ ଥିବା ବିଷୟଗୁଡ଼ିକୁ ପରିଚାଳନା କରନ୍ତୁ</translation>
 <translation id="8364299278605033898">ଲୋକପ୍ରିୟ ୱେବ୍‍ସାଇଟ୍‌ଗୁଡ଼ିକ ଦେଖନ୍ତୁ</translation>
 <translation id="8368027906805972958">ଅଜଣା କିମ୍ବା ଅସମର୍ଥିତ ଡିଭାଇସ୍ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> ପ୍ରସ୍ତୁତ ଅଛି।</translation>
@@ -1179,6 +1176,7 @@
 <translation id="8659579665266920523">Chrome ସହ କିପରି ସନ୍ଧାନ କରିବେ</translation>
 <translation id="8662811608048051533">ଆପଣଙ୍କୁ ଅଧିକାଂଶ ସାଇଟ୍‌ରୁ ସାଇନ୍ ଆଉଟ୍ କରିଦିଏ।</translation>
 <translation id="8664979001105139458">ଫାଇଲ୍‌ର ନାମ ପୂର୍ବରୁ ଅଛି</translation>
+<translation id="8676789164135894283">ସାଇନ୍-ଇନ୍ ପାଇଁ ଯାଞ୍ଚକରଣ</translation>
 <translation id="8683039184091909753">ଛବି</translation>
 <translation id="8687353297350450808">{N_BARS,plural, =1{ସିଗ୍‍ନାଲ୍‌ ଦକ୍ଷତାର ସ୍ତର: #ଟି ବାର୍‍}other{ସିଗ୍‍ନାଲ୍‌ ଦକ୍ଷତାର ସ୍ତର: #ଟି ବାର୍‍}}</translation>
 <translation id="869891660844655955">ମିଆଦ ଶେଷ ହେଉଥିବା ତାରିଖ</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 eb531e1..107e4cb 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">ਮੌਜੂਦਾ ਟੈਬ ਬੰਦ ਕਰੋ</translation>
 <translation id="1258753120186372309">Google ਡੂਡਲ: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ਨਾਲ ਸਾਂਝਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ</translation>
-<translation id="1276279242344007853">ਆਪਣੇ ਵੱਲੋਂ ਅਨੁਸਰਣ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਸਾਈਟਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
 <translation id="1283039547216852943">ਵਿਸਤਾਰ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ</translation>
 <translation id="1285310382777185058">ਭਾਸ਼ਾ ਬਦਲੋ</translation>
 <translation id="1291207594882862231">ਇਤਿਹਾਸ, ਕੁਕੀਜ਼, ਸਾਈਟ ਡਾਟਾ, ਕੈਸ਼ੇ ਸਾਫ਼ ਕਰੋ…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">ਜਲਦ ਹੀ, ਤੁਹਾਨੂੰ ਨਵੀਂ ਟੈਬ ਖੋਲ੍ਹਣ 'ਤੇ <ph name="SITE_NAME" /> ਦੀਆਂ ਕਹਾਣੀਆਂ ਦਿਖਾਈ ਦੇਣਗੀਆਂ। ਤੁਸੀਂ 'ਅਨੁਸਰਣ ਕੀਤੀਆਂ ਸਾਈਟਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ' ਵਿੱਚ ਜਾ ਕੇ ਤੁਹਾਡੇ ਵੱਲੋਂ ਅਨੁਸਰਣ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਸਾਈਟਾਂ ਨੂੰ ਕੰਟਰੋਲ ਕਰ ਸਕਦੇ ਹੋ।</translation>
 <translation id="4699172675775169585">ਕੈਚ ਕੀਤੇ ਚਿੱਤਰ ਅਤੇ ਫਾਈਲਾਂ</translation>
 <translation id="4714588616299687897">ਆਪਣੇ ਤਕਰੀਬਨ 60% ਡਾਟੇ ਦੀ ਬੱਚਤ ਕਰੋ</translation>
-<translation id="4716066120200945007">ਅਨੁਸਰਣ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
 <translation id="4719927025381752090">ਅਨੁਵਾਦ ਲਈ ਪੇਸ਼ਕਸ਼ ਕਰੋ</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
 <translation id="4720982865791209136">Chrome ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੋ। <ph name="BEGIN_LINK" />ਸਰਵੇਖਣ ਪੂਰਾ ਕਰੋ<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">ਰੀਸੈਟ ਕਰੋ</translation>
 <translation id="5942872142862698679">ਖੋਜ ਲਈ Google ਦੀ ਵਰਤੋਂ ਹੋ ਰਹੀ ਹੈ</translation>
 <translation id="5951119116059277034">ਲਾਈਵ ਪੰਨਾ ਦੇਖਿਆ ਜਾ ਰਿਹਾ ਹੈ</translation>
-<translation id="5951615825629292797">ਭਾਸ਼ਾ ਤਿਆਰ ਹੈ, <ph name="APP_NAME" /> ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ</translation>
 <translation id="5952764234151283551">Google ਨੂੰ ਉਸ ਪੰਨੇ ਦਾ URL ਭੇਜਦੀ ਹੈ, ਜਿਸ 'ਤੇ ਤੁਸੀਂ ਜਾਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹੋ</translation>
 <translation id="5956665950594638604">ਇੱਕ ਨਵੀਂ ਟੈਬ ਵਿੱਚ Chrome ਮਦਦ ਕੇਂਦਰ ਖੋਲ੍ਹੋ</translation>
 <translation id="5957442310066583693">ਆਪਣੀਆਂ ਪ੍ਰਮੁੱਖ ਸਾਈਟਾਂ ਨੂੰ ਦੇਖਣ ਲਈ, ਹੋਮ ਬਟਨ 'ਤੇ ਟੈਪ ਕਰੋ</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">ਕਦੇ ਵੀ ਇਹਨਾਂ ਸਾਈਟਾਂ ਦਾ ਅਨੁਵਾਦ ਨਾ ਕਰੋ</translation>
 <translation id="8349013245300336738">ਵਰਤੇ ਗਏ ਡਾਟੇ ਦੀ ਮਾਤਰਾ ਮੁਤਾਬਕ ਕ੍ਰਮ-ਬੱਧ ਕਰੋ</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ਡਾਊਨਲੋਡਾਂ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕੀਤਾ ਗਿਆ</translation>
-<translation id="8362134094656482681">ਆਪਣੀ ਦਿਲਚਸਪੀ ਵਾਲੇ ਵਿਸ਼ਿਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
 <translation id="8364299278605033898">ਪ੍ਰਸਿੱਧ ਵੈੱਬਸਾਈਟਾਂ ਦੇਖੋ</translation>
 <translation id="8368027906805972958">ਅਗਿਆਤ ਜਾਂ ਅਸਮਰਥਿਤ ਡੀਵਾਈਸ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> ਤਿਆਰ ਹੈ।</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 0634d956..00d0dba 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Zamknij bieżącą kartę</translation>
 <translation id="1258753120186372309">Doodle Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> – nie udało się udostępnić</translation>
-<translation id="1276279242344007853">Zarządzaj stronami, które obserwujesz</translation>
 <translation id="1283039547216852943">Kliknij, by rozwinąć</translation>
 <translation id="1285310382777185058">Zmień język</translation>
 <translation id="1291207594882862231">Wyczyść historię, pliki cookie, dane witryn, pamięć podręczną…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Już niedługo po otwarciu nowej karty będziesz widzieć relacje ze strony <ph name="SITE_NAME" />. Obserwowanymi stronami możesz zarządzać w sekcji Zarządzaj obserwowanymi.</translation>
 <translation id="4699172675775169585">Obrazy i pliki zapisane w pamięci podręcznej</translation>
 <translation id="4714588616299687897">Zaoszczędź nawet 60% na transmisji danych</translation>
-<translation id="4716066120200945007">OBSERWUJESZ</translation>
 <translation id="4719927025381752090">Proponuj tłumaczenie</translation>
 <translation id="4720023427747327413">Otwórz w: <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Pomóż w ulepszaniu Chrome. <ph name="BEGIN_LINK" />Wypełnij ankietę<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Resetuj</translation>
 <translation id="5942872142862698679">Korzystam z wyszukiwarki Google</translation>
 <translation id="5951119116059277034">Wyświetlam faktyczną stronę</translation>
-<translation id="5951615825629292797">Język jest gotowy. Uruchom ponownie aplikację <ph name="APP_NAME" />.</translation>
 <translation id="5952764234151283551">Adres URL strony, którą próbujesz otworzyć, zostanie wysłany do Google</translation>
 <translation id="5956665950594638604">Otwórz Centrum pomocy Chrome w nowej karcie</translation>
 <translation id="5957442310066583693">Aby zobaczyć swoje najczęściej odwiedzane strony, kliknij przycisk strony głównej</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Nigdy nie tłumacz stron</translation>
 <translation id="8349013245300336738">Sortuj według ilości wykorzystanych danych</translation>
 <translation id="835847953965672673">Przywrócone pliki: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Zarządzaj tematami, które Cię interesują</translation>
 <translation id="8364299278605033898">Zobacz najpopularniejsze strony</translation>
 <translation id="8368027906805972958">Nieznane lub nieobsługiwane urządzenie (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Język <ph name="LANG" /> jest gotowy.</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 5dcde3d..68049d7 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Fechar a guia atual</translation>
 <translation id="1258753120186372309">Doodle do Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Falha no compartilhamento de <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Gerenciar os sites seguidos</translation>
 <translation id="1283039547216852943">Toque para expandir</translation>
 <translation id="1285310382777185058">Mudar o idioma</translation>
 <translation id="1291207594882862231">Limpar histórico, cookies, dados do site, cache…</translation>
@@ -551,7 +550,6 @@
 <translation id="4697543623252708062">Em breve, você verá stories de <ph name="SITE_NAME" /> quando abrir uma nova guia. É possível controlar os sites que você está seguindo em "Gerenciar sites seguidos".</translation>
 <translation id="4699172675775169585">Imagens e arquivos armazenados em cache</translation>
 <translation id="4714588616299687897">Economize até 60% dos seus dados</translation>
-<translation id="4716066120200945007">SEGUINDO</translation>
 <translation id="4719927025381752090">Oferecer para traduzir</translation>
 <translation id="4720023427747327413">Abrir no <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Ajude a melhorar o Chrome. <ph name="BEGIN_LINK" />Responda à pesquisa.<ph name="END_LINK" /></translation>
@@ -753,7 +751,6 @@
 <translation id="5939518447894949180">Redefinir</translation>
 <translation id="5942872142862698679">Usando o Google para pesquisar</translation>
 <translation id="5951119116059277034">Visualizando página ativa</translation>
-<translation id="5951615825629292797">Idioma pronto. Reinicie o app <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Envia ao Google o URL de uma página que você está tentando acessar</translation>
 <translation id="5956665950594638604">Abrir Central de Ajuda do Chrome em uma nova guia</translation>
 <translation id="5957442310066583693">Para ver seus sites principais, toque no botão "Início"</translation>
@@ -1132,7 +1129,6 @@
 <translation id="834313815369870491">Nunca traduzir estes sites</translation>
 <translation id="8349013245300336738">Classificar por quantidade de dados usados</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> downloads restaurados</translation>
-<translation id="8362134094656482681">Gerencie os temas relevantes para você</translation>
 <translation id="8364299278605033898">Ver sites conhecidos</translation>
 <translation id="8368027906805972958">Dispositivo desconhecido ou incompatível (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">O <ph name="LANG" /> está pronto.</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 7314114..bd8cab3 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Fechar o separador atual</translation>
 <translation id="1258753120186372309">Doodle da Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Não foi possível partilhar <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Efetue a gestão dos sites que está a seguir</translation>
 <translation id="1283039547216852943">Toque para expandir</translation>
 <translation id="1285310382777185058">Altere o idioma</translation>
 <translation id="1291207594882862231">Limpar histórico, cookies, dados de sites, cache…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Em breve, serão apresentadas notícias de <ph name="SITE_NAME" /> quando abrir um novo separador. Pode controlar os sites que está a seguir em Gerir o que segue.</translation>
 <translation id="4699172675775169585">Imagens e ficheiros em cache</translation>
 <translation id="4714588616299687897">Poupe até 60% dos seus dados</translation>
-<translation id="4716066120200945007">A SEGUIR</translation>
 <translation id="4719927025381752090">Propor tradução</translation>
 <translation id="4720023427747327413">Abrir no <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Ajude a melhorar o Chrome. <ph name="BEGIN_LINK" />Responder ao inquérito<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Repor</translation>
 <translation id="5942872142862698679">A utilizar o Google para pesquisa</translation>
 <translation id="5951119116059277034">A ver a página publicada…</translation>
-<translation id="5951615825629292797">Idioma pronto, reinicie a app <ph name="APP_NAME" />.</translation>
 <translation id="5952764234151283551">Envia para a Google o URL de uma página à qual esteja a tentar aceder.</translation>
 <translation id="5956665950594638604">Abrir Centro de Ajuda do Chrome num novo separador</translation>
 <translation id="5957442310066583693">Para ver os seus sites principais, toque no botão página inicial.</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Nunca traduzir sites</translation>
 <translation id="8349013245300336738">Ordenar por quantidade de dados utilizados</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> transferências restauradas.</translation>
-<translation id="8362134094656482681">Efetue a gestão dos tópicos que lhe interessam</translation>
 <translation id="8364299278605033898">Veja Websites populares</translation>
 <translation id="8368027906805972958">Dispositivo desconhecido ou não suportado (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">O <ph name="LANG" /> está pronto.</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 7b5e1a9..407fe27 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Închide fila actuală</translation>
 <translation id="1258753120186372309">Doodle Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Nu s-a trimis <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Gestionează site-urile pe care le urmărești</translation>
 <translation id="1283039547216852943">Atinge pentru a extinde</translation>
 <translation id="1285310382777185058">Schimbă limba</translation>
 <translation id="1291207594882862231">Șterge istoricul, cookie-urile, datele privind site-urile și memoria cache…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">În curând vei vedea articole de la <ph name="SITE_NAME" /> când deschizi o filă nouă. Poți gestiona site-urile pe care le urmărești în Gestionează site-urile urmărite.</translation>
 <translation id="4699172675775169585">Imaginile și fișierele memorate în cache</translation>
 <translation id="4714588616299687897">Economisește până la 60% din date</translation>
-<translation id="4716066120200945007">URMĂREȘTI</translation>
 <translation id="4719927025381752090">Oferă traducerea</translation>
 <translation id="4720023427747327413">Deschide în <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Contribuie la îmbunătățirea browserului Chrome. <ph name="BEGIN_LINK" />Participă la sondaj.<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Resetează</translation>
 <translation id="5942872142862698679">Pentru căutare se folosește Google</translation>
 <translation id="5951119116059277034">Se afișează pagina live</translation>
-<translation id="5951615825629292797">Limba este gata, repornește <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Trimite la Google adresa URL a unei pagini pe care încerci să o accesezi</translation>
 <translation id="5956665950594638604">Deschide Centrul de ajutor Chrome într-o filă nouă</translation>
 <translation id="5957442310066583693">Pentru a vedea principalele site-uri, atinge butonul ecran de pornire</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Nu traduce niciodată site-uri</translation>
 <translation id="8349013245300336738">Sortează după volumul de date folosite</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> de descărcări au fost restabilite</translation>
-<translation id="8362134094656482681">Gestionează subiectele care te interesează</translation>
 <translation id="8364299278605033898">Vezi site-urile populare</translation>
 <translation id="8368027906805972958">Dispozitiv necunoscut sau neacceptat (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> este gata.</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 193eb36b..c6071e0b 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Закрыть вкладку</translation>
 <translation id="1258753120186372309">Дудл Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Не удалось отправить: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Управляйте сайтами, на которые подписаны</translation>
 <translation id="1283039547216852943">Нажмите, чтобы развернуть</translation>
 <translation id="1285310382777185058">Изменить язык</translation>
 <translation id="1291207594882862231">Удалить файлы cookie и данные сайтов, очистить историю и кеш</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Скоро, открывая новую вкладку, вы будете видеть статьи с сайта "<ph name="SITE_NAME" />". Вы можете настроить подписки по своему усмотрению в разделе "Управление подписками".</translation>
 <translation id="4699172675775169585">Изображения и другие файлы, сохраненные в кеше</translation>
 <translation id="4714588616299687897">Экономьте до 60% трафика</translation>
-<translation id="4716066120200945007">ВАШИ ПОДПИСКИ</translation>
 <translation id="4719927025381752090">Предлагать перевести</translation>
 <translation id="4720023427747327413">Открыть в <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Помогите улучшить Chrome. <ph name="BEGIN_LINK" />Пройти опрос<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Сбросить</translation>
 <translation id="5942872142862698679">Google используется как поисковая система по умолчанию</translation>
 <translation id="5951119116059277034">Просмотр действующей страницы.</translation>
-<translation id="5951615825629292797">Языковой пакет скачан, перезапустите <ph name="APP_NAME" />.</translation>
 <translation id="5952764234151283551">Отправлять в Google URL страниц, которые вы пытаетесь открыть</translation>
 <translation id="5956665950594638604">Открыть Справочный центр Chrome в новой вкладке</translation>
 <translation id="5957442310066583693">Нажмите эту кнопку, чтобы увидеть интересные вам сайты</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Никогда не переводить сайты</translation>
 <translation id="8349013245300336738">Сортировать по объему использованного трафика</translation>
 <translation id="835847953965672673">Восстановлено объектов: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Настройте темы, которые вас интересуют</translation>
 <translation id="8364299278605033898">Показать популярные сайты</translation>
 <translation id="8368027906805972958">Неизвестное или неподдерживаемое устройство (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Пакет "<ph name="LANG" />" скачан.</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 0ce78b3..2797b862 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">වත්මන් ටැබය වසන්න</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> බෙදා ගත නොහැකි විය</translation>
-<translation id="1276279242344007853">ඔබ අනුගමනය කරන අඩවි කළමනාකරණය කරන්න</translation>
 <translation id="1283039547216852943">දිග හැරීමට තට්ටු කරන්න</translation>
 <translation id="1285310382777185058">භාෂාව මාරු කරන්න</translation>
 <translation id="1291207594882862231">ඉතිහාසය, කුකීස්, අඩවි දත්ත, හැඹිලිය හිස් කරන්න...</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">ළඟදීම, ඔබ නව ටැබයක් විවෘත කරන විට <ph name="SITE_NAME" /> වෙතින් නව කතන්දර දකිනු ඇත. අනුගමනය කිරීම් කළමනාකරණය කරන්න තුළ ඔබට ඔබ අනුගමනය කරන අඩවි පාලනය කළ හැකිය.</translation>
 <translation id="4699172675775169585">අනුරූ සහ ගොනු කෑෂ් කරන්න</translation>
 <translation id="4714588616299687897">ඔබේ දත්තවලින් 60%ක් දක්වා සුරකින්න</translation>
-<translation id="4716066120200945007">අනුගමනය කරයි</translation>
 <translation id="4719927025381752090">පරිවර්තනය කිරීමට පිරිනමන්න</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> හි විවෘත කරන්න</translation>
 <translation id="4720982865791209136">Chrome වැඩි දියුණුවට උදවු කරන්න. <ph name="BEGIN_LINK" />සමීක්ෂණය ගන්න<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">නැවත සකසන්න</translation>
 <translation id="5942872142862698679">සෙවීම සඳහා Google භාවිත කරමින්</translation>
 <translation id="5951119116059277034">සජීවී පිටුව නරඹමින්</translation>
-<translation id="5951615825629292797">භාෂාව සූදානම්ය, <ph name="APP_NAME" /> යළි අරඹන්න</translation>
 <translation id="5952764234151283551">ඔබ Google වෙත ළඟා වීමට උත්සාහ කරන පිටුවේ URL යවයි</translation>
 <translation id="5956665950594638604">Chrome උදවු මධ්‍යස්ථානය නව ටැබයක විවෘත කරන්න</translation>
 <translation id="5957442310066583693">ඔබගේ ඉහළම අඩවි බැලීමට, මුල් පිටු බොත්තම තට්ටු කරන්න</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">කිසි විටක අඩවි පරිවර්තනය නොකරන්න</translation>
 <translation id="8349013245300336738">භාවිත දත්ත ප්‍රමාණයේ එකතුව අනුව අනුපිළිවෙලට සකසන්න</translation>
 <translation id="835847953965672673">බාගැනීම් <ph name="NUMBER_OF_DOWNLOADS" />ක් ප්‍රතිසාධනය කරන ලදි</translation>
-<translation id="8362134094656482681">ඔබ ලැදිකමක් දක්වන මාතෘකා කළමනාකරණය කරන්න</translation>
 <translation id="8364299278605033898">ජනප්‍රිය වෙබ් අඩවි බලන්න</translation>
 <translation id="8368027906805972958">නොදන්නා හෝ සහය නොදැක්වෙන උපාංගය (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> සූදානම්ය.</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 11854fe..dcad38b6 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Zavretie aktuálnej karty</translation>
 <translation id="1258753120186372309">Sviatočné logo Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> sa nepodarilo zdieľať</translation>
-<translation id="1276279242344007853">Spravujte weby, ktoré sledujete</translation>
 <translation id="1283039547216852943">Klepnutím rozbaliť</translation>
 <translation id="1285310382777185058">Zmena jazyka</translation>
 <translation id="1291207594882862231">Vymazať históriu, súbory cookie, dáta webov, vyrovnávaciu pamäť…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Keď otvoríte novú kartu, čoskoro sa vám budú zobrazovať príbehy z webu <ph name="SITE_NAME" />. Sledované weby môžete ovládať v sekcii Správa sledovaní.</translation>
 <translation id="4699172675775169585">Obrázky a súbory vo vyrovnávacej pamäti</translation>
 <translation id="4714588616299687897">Ušetrite až 60 % dát</translation>
-<translation id="4716066120200945007">SLEDOVANÉ</translation>
 <translation id="4719927025381752090">Ponúkať preklad</translation>
 <translation id="4720023427747327413">Otvoriť v aplikácii <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Pomôžte zlepšiť Chrome. <ph name="BEGIN_LINK" />Zúčastniť sa prieskumu<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Resetovať</translation>
 <translation id="5942872142862698679">Na vyhľadávanie sa používa Google</translation>
 <translation id="5951119116059277034">Je zobrazená zverejnená stránka</translation>
-<translation id="5951615825629292797">Jazyk je k dispozícii. Reštartujte <ph name="APP_NAME" />.</translation>
 <translation id="5952764234151283551">Odošle Googlu webovú adresu stránky, na ktorú sa pokúšate prejsť</translation>
 <translation id="5956665950594638604">Otvorenie Centra pomoci prehliadača Chrome na novej karte</translation>
 <translation id="5957442310066583693">Ak si chcete zobraziť najobľúbenejšie weby, klepnite na tlačidlo plochy</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Nikdy neprekladať weby</translation>
 <translation id="8349013245300336738">Zoradiť podľa množstva využitých dát</translation>
 <translation id="835847953965672673">Boli obnovené stiahnuté súbory (<ph name="NUMBER_OF_DOWNLOADS" />)</translation>
-<translation id="8362134094656482681">Spravujte témy, ktoré vás zaujímajú</translation>
 <translation id="8364299278605033898">Prezrite si obľúbené weby</translation>
 <translation id="8368027906805972958">Neznáme alebo nepodporované zariadenie (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> je k dispozícii.</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 3d7407db..0882063f 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Zapiranje trenutnega zavihka</translation>
 <translation id="1258753120186372309">Googlov priložnostni logotip: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Ni bilo mogoče deliti tega: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Upravljanje spletnim mest, ki jih spremljate.</translation>
 <translation id="1283039547216852943">Dotaknite se za razširitev</translation>
 <translation id="1285310382777185058">Spreminjanje jezika</translation>
 <translation id="1291207594882862231">Izbris zgodovine, piškotkov, podatkov spletnih mest, predpomnilnika …</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Kmalu bodo prikazane novice s spletnega mesta <ph name="SITE_NAME" />, ko boste odprli nov zavihek. Spletna mesta, ki jih spremljate, lahko nadzirate v razdelku za upravljanje spremljanih.</translation>
 <translation id="4699172675775169585">Predpomnjene slike in datoteke</translation>
 <translation id="4714588616299687897">Prenesite do 60 % manj podatkov</translation>
-<translation id="4716066120200945007">SPREMLJATE</translation>
 <translation id="4719927025381752090">Ponudi prevajanje</translation>
 <translation id="4720023427747327413">Odpri v: <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Pomagajte izboljšati Chrome. <ph name="BEGIN_LINK" />Sodelujte v anketi.<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Ponastavi</translation>
 <translation id="5942872142862698679">Uporaba iskalnika Google za iskanje</translation>
 <translation id="5951119116059277034">Ogledovanje strani v živo</translation>
-<translation id="5951615825629292797">Jezik je pripravljen, znova zaženite <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Googlu pošlje URL strani, ki jo želite odpreti</translation>
 <translation id="5956665950594638604">Odpiranje centra za pomoč za Chrome na nov. zavih.</translation>
 <translation id="5957442310066583693">Če si želite ogledati najbolj priljubljena spletna mesta, se dotaknite gumba za domačo stran</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Nikoli ne prevedi spletnih mest</translation>
 <translation id="8349013245300336738">Razvrsti glede na količino prenesenih podatkov</translation>
 <translation id="835847953965672673">Obnovljenih je bilo toliko prenosov: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Upravljanje tem, ki vas zanimajo.</translation>
 <translation id="8364299278605033898">Ogled priljubljenih spletnih mest</translation>
 <translation id="8368027906805972958">Neznana ali nepodprta naprava (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Jezik <ph name="LANG" /> je pripravljen.</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 3548c17..766ccbb 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Mbyll skedën aktuale</translation>
 <translation id="1258753120186372309">Logoja alternative e Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Nuk mund të ndahet <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Menaxho sajtet që po ndjek</translation>
 <translation id="1283039547216852943">Trokit për të zgjeruar</translation>
 <translation id="1285310382777185058">Ndrysho gjuhën</translation>
 <translation id="1291207594882862231">Pastro historikun, kukit, të dhënat e sajtit, memorien specifike…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Së shpejti do të shikosh histori nga <ph name="SITE_NAME" /> kur të hapësh një skedë të re. Mund t'i kontrollosh sajtet që ndjek te "Menaxho ndjekjet".</translation>
 <translation id="4699172675775169585">Imazhet dhe skedarët në memorien specifike</translation>
 <translation id="4714588616299687897">Kurse deri në 60% të të dhënave të tua</translation>
-<translation id="4716066120200945007">PO NDJEK</translation>
 <translation id="4719927025381752090">Ofro që t'i përkthesh</translation>
 <translation id="4720023427747327413">Hape në <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Ndihmo në përmirësimin e Chrome. <ph name="BEGIN_LINK" />Plotëso anketën<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Rivendos</translation>
 <translation id="5942872142862698679">Po përdor Google për kërkimin</translation>
 <translation id="5951119116059277034">Po shikon faqen drejtpërdrejt</translation>
-<translation id="5951615825629292797">Gjuha është gati, rinis <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Dërgon te Google URL-në e faqes që po përpiqesh të hapësh</translation>
 <translation id="5956665950594638604">Hap "Qendrën e ndihmës së Chrome" në një skedë të re</translation>
 <translation id="5957442310066583693">Për të parë sajtet e tua kryesore, trokit te butoni "Kreu"</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Mos i përkthe asnjëherë sajtet</translation>
 <translation id="8349013245300336738">Rendit sipas sasisë së të dhënave të përdorura</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> shkarkime u restauruan</translation>
-<translation id="8362134094656482681">Menaxho temat që të interesojnë</translation>
 <translation id="8364299278605033898">Shiko sajte uebi të mirënjohura</translation>
 <translation id="8368027906805972958">Pajisje e panjohur ose e pambështetur (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> është gati.</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 7ca0a92..c8d46da 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Zatvaranje aktuelne kartice</translation>
 <translation id="1258753120186372309">Google dudl logotip: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Nije uspelo deljenje: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Upravljajte sajtovima koje pratite</translation>
 <translation id="1283039547216852943">Dodirnite da biste proširili</translation>
 <translation id="1285310382777185058">Promenite jezik</translation>
 <translation id="1291207594882862231">Obrišite istoriju, kolačiće, podatke o sajtovima, keš...</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Uskoro ćete videti priče sa <ph name="SITE_NAME" /> kada otvorite novu karticu. Možete da kontrolišete sajtove koje pratite u Upravljanju praćenja.</translation>
 <translation id="4699172675775169585">Keširane slike i datoteke</translation>
 <translation id="4714588616299687897">Uštedite do 60% podataka</translation>
-<translation id="4716066120200945007">PRATITE</translation>
 <translation id="4719927025381752090">Ponudi prevod</translation>
 <translation id="4720023427747327413">Otvori u <ph name="PRODUCT_NAME" />-u</translation>
 <translation id="4720982865791209136">Pomozite nam da poboljšamo Chrome. <ph name="BEGIN_LINK" />Popunite anketu<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Resetuj</translation>
 <translation id="5942872142862698679">Koristite Google za pretragu</translation>
 <translation id="5951119116059277034">Prikazuje se aktivna stranica</translation>
-<translation id="5951615825629292797">Jezik je spreman, restartujte aplikaciju <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Šalje Google-u URL stranice kojoj pokušavate da pristupite</translation>
 <translation id="5956665950594638604">Otvaranje Chrome centra za pomoć na novoj kartici</translation>
 <translation id="5957442310066583693">Da biste videli sajtove koje najčešće posećujete, dodirnite dugme Početak</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Nikad ne prevodi sajtove</translation>
 <translation id="8349013245300336738">Sortiraj po količini iskorišćenih podataka</translation>
 <translation id="835847953965672673">Vraćena su preuzimanja (<ph name="NUMBER_OF_DOWNLOADS" />)</translation>
-<translation id="8362134094656482681">Upravljajte temama koje vas zanimaju u</translation>
 <translation id="8364299278605033898">Pogledajte popularne veb-sajtove</translation>
 <translation id="8368027906805972958">Nepoznat ili nepodržan uređaj (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Jezik <ph name="LANG" /> je spreman.</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 29e6595..7f5f2ff 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Затварање актуелне картице</translation>
 <translation id="1258753120186372309">Google дудл логотип: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Није успело дељење: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Управљајте сајтовима које пратите</translation>
 <translation id="1283039547216852943">Додирните да бисте проширили</translation>
 <translation id="1285310382777185058">Промените језик</translation>
 <translation id="1291207594882862231">Обришите историју, колачиће, податке о сајтовима, кеш...</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Ускоро ћете видети приче са <ph name="SITE_NAME" /> када отворите нову картицу. Можете да контролишете сајтове које пратите у Управљању праћења.</translation>
 <translation id="4699172675775169585">Кеширане слике и датотеке</translation>
 <translation id="4714588616299687897">Уштедите до 60% података</translation>
-<translation id="4716066120200945007">ПРАТИТЕ</translation>
 <translation id="4719927025381752090">Понуди превод</translation>
 <translation id="4720023427747327413">Отвори у <ph name="PRODUCT_NAME" />-у</translation>
 <translation id="4720982865791209136">Помозите нам да побољшамо Chrome. <ph name="BEGIN_LINK" />Попуните анкету<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Ресетуј</translation>
 <translation id="5942872142862698679">Користите Google за претрагу</translation>
 <translation id="5951119116059277034">Приказује се активна страница</translation>
-<translation id="5951615825629292797">Језик је спреман, рестартујте апликацију <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Шаље Google-у URL странице којој покушавате да приступите</translation>
 <translation id="5956665950594638604">Отварање Chrome центра за помоћ на новој картици</translation>
 <translation id="5957442310066583693">Да бисте видели сајтове које најчешће посећујете, додирните дугме Почетак</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Никад не преводи сајтове</translation>
 <translation id="8349013245300336738">Сортирај по количини искоришћених података</translation>
 <translation id="835847953965672673">Враћена су преузимања (<ph name="NUMBER_OF_DOWNLOADS" />)</translation>
-<translation id="8362134094656482681">Управљајте темама које вас занимају у</translation>
 <translation id="8364299278605033898">Погледајте популарне веб-сајтове</translation>
 <translation id="8368027906805972958">Непознат или неподржан уређај (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Језик <ph name="LANG" /> је спреман.</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 52d0faa..c805d58 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Stäng den aktuella fliken</translation>
 <translation id="1258753120186372309">Googles doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Det gick inte att dela <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Hantera webbplatser du följer</translation>
 <translation id="1283039547216852943">Tryck och utöka</translation>
 <translation id="1285310382777185058">Ändra språk</translation>
 <translation id="1291207594882862231">Rensa historiken, cookies, webbplatsdata, cacheminnet …</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Snart visas artiklar från <ph name="SITE_NAME" /> när du öppnar en ny flik. Nu kan du styra vilka webbplatser du följer i Hantera vad du följer.</translation>
 <translation id="4699172675775169585">Cachade bilder och filer</translation>
 <translation id="4714588616299687897">Spara upp till 60 % av din data</translation>
-<translation id="4716066120200945007">FÖLJER</translation>
 <translation id="4719927025381752090">Erbjud översättning</translation>
 <translation id="4720023427747327413">Öppna i <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Hjälp till att förbättra Chrome. <ph name="BEGIN_LINK" />Fyll i enkäten<ph name="END_LINK" />.</translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Återställ</translation>
 <translation id="5942872142862698679">Du söker med Google</translation>
 <translation id="5951119116059277034">Visar aktiv sida</translation>
-<translation id="5951615825629292797">Språket kan nu användas, starta om <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Skickar webbadressen till en sida som du försöker nå till Google</translation>
 <translation id="5956665950594638604">Öppna hjälpcentret för Chrome på en ny flik</translation>
 <translation id="5957442310066583693">Tryck på hemknappen om du vill se dina mest besökta webbplatser</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Översätt aldrig webbplatser</translation>
 <translation id="8349013245300336738">Sortera efter dataförbrukning</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> nedladdningar har återställts</translation>
-<translation id="8362134094656482681">Hantera ämnen som du är intresserad av</translation>
 <translation id="8364299278605033898">Visa populära webbplatser</translation>
 <translation id="8368027906805972958">Enheten är okänd eller stöds inte (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> är klart.</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 fce094c..4275db3 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Funga kichupo kilichofunguka</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Imeshindwa kushiriki <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Dhibiti tovuti unazofuatilia</translation>
 <translation id="1283039547216852943">Gusa ili upanue</translation>
 <translation id="1285310382777185058">Badilisha lugha</translation>
 <translation id="1291207594882862231">Futa historia, vidakuzi, data ya tovuti, akiba…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Hivi karibuni, utaona hadithi kutoka <ph name="SITE_NAME" /> ukifungua kichupo kipya. Unaweza kudhibiti tovuti unazofuatilia katika sehemu ya 'Dhibiti Mambo Unayoyafuatilia'.</translation>
 <translation id="4699172675775169585">Picha na faili zilizoakibishwa</translation>
 <translation id="4714588616299687897">Okoa hadi asilimia 60 ya data yako</translation>
-<translation id="4716066120200945007">UNAFUATILIA</translation>
 <translation id="4719927025381752090">Jitolee kutafsiri</translation>
 <translation id="4720023427747327413">Fungua katika <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Tusaidie kuboresha Chrome.<ph name="BEGIN_LINK" />Shiriki katika utafiti<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Weka upya</translation>
 <translation id="5942872142862698679">Unatumia Google kutafuta</translation>
 <translation id="5951119116059277034">Unaangalia ukurasa wa moja kwa moja</translation>
-<translation id="5951615825629292797">Lugha iko tayari, funga kisha ufungue <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Hutuma URL ya ukurasa unaojaribu kufikia kwa Google</translation>
 <translation id="5956665950594638604">Fungua Kituo cha Usaidizi cha Chrome katika kichupo kipya</translation>
 <translation id="5957442310066583693">Ili uone tovuti zako maarufu, gusa kitufe cha Ukurasa wa mwanzo</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Kamwe usitafsiri tovuti</translation>
 <translation id="8349013245300336738">Panga kulingana na kiasi cha data kilichotumika</translation>
 <translation id="835847953965672673">Umerejesha vipakuliwa <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Dhibiti mada zinazokuvutia</translation>
 <translation id="8364299278605033898">Ona tovuti maarufu</translation>
 <translation id="8368027906805972958">Kifaa kisichojulikana au kisichotumika (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> iko tayari.</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 9b2e2da0..dcfa665 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">தற்போதைய தாவலை மூடும்</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" />ஐப் பகிர முடியவில்லை</translation>
-<translation id="1276279242344007853">பின்தொடரும் தளங்களை நிர்வகிக்கலாம்</translation>
 <translation id="1283039547216852943">விரிவாக்க, தட்டவும்</translation>
 <translation id="1285310382777185058">மொழியை மாற்றுங்கள்</translation>
 <translation id="1291207594882862231">வரலாறு, குக்கீகள், தளத் தரவு, தற்காலிகச் சேமிப்பை அழி…</translation>
@@ -533,6 +532,7 @@
 <translation id="4583164079174244168">{MINUTES,plural, =1{# நிமிடத்திற்கு முன்பு}other{# நிமிடங்களுக்கு முன்பு}}</translation>
 <translation id="4587589328781138893">Sites</translation>
 <translation id="4594952190837476234"><ph name="CREATION_TIME" /> அன்று இந்த ஆஃப்லைன் பக்கம் உருவாக்கப்பட்டது. இது ஆன்லைன் பதிப்பிலிருந்து வேறுபடலாம்.</translation>
+<translation id="4615382002648696011">பின்தொடர்கிறீர்கள், படிக்காத கதைகள் தயாராக உள்ளன</translation>
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" />ஐத் திற</translation>
 <translation id="4619564267100705184">இது நீங்கள்தான் என உறுதிசெய்யுங்கள்</translation>
 <translation id="4634124774493850572">கடவுச்சொல்லைப் பயன்படுத்து</translation>
@@ -549,7 +549,6 @@
 <translation id="4697543623252708062">விரைவில், புதிய தாவலைத் திறக்கும்போது <ph name="SITE_NAME" /> தளத்தில் உள்ள கதைகள் காட்டப்படும். ‘பின்தொடர்பவற்றை நிர்வகியுங்கள்’ என்பதில் நீங்கள் பின்தொடரும் தளங்களைக் கட்டுப்படுத்தலாம்.</translation>
 <translation id="4699172675775169585">தற்காலிகமாகச் சேமிக்கப்பட்ட படங்கள் மற்றும் கோப்புகள்</translation>
 <translation id="4714588616299687897">தரவில் 60% வரை சேமியுங்கள்</translation>
-<translation id="4716066120200945007">பின்தொடர்பவை</translation>
 <translation id="4719927025381752090">மொழிபெயர்ப்பதற்கான சலுகை</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />இல் திற</translation>
 <translation id="4720982865791209136">Chromeஐ மேம்படுத்த உதவவும். <ph name="BEGIN_LINK" />கருத்துக்கணிப்பில் பங்கேற்கவும்<ph name="END_LINK" /></translation>
@@ -751,7 +750,6 @@
 <translation id="5939518447894949180">மீட்டமை</translation>
 <translation id="5942872142862698679">தேடலுக்கு Googleளைப் பயன்படுத்துகிறீர்கள்</translation>
 <translation id="5951119116059277034">நேரலைப் பக்கம் காட்டப்படுகிறது</translation>
-<translation id="5951615825629292797">மொழி பதிவிறக்கப்பட்டது, <ph name="APP_NAME" /> ஆப்ஸை மீண்டும் தொடங்கவும்</translation>
 <translation id="5952764234151283551">நீங்கள் செல்ல முயலும் பக்கத்தின் URLலை Googleளுக்கு அனுப்பும்</translation>
 <translation id="5956665950594638604">Chrome உதவி மையத்தைப் புதிய தாவலில் திறக்கும்</translation>
 <translation id="5957442310066583693">நீங்கள் அடிக்கடி பயன்படுத்தும் தளங்களைப் பார்க்க, முகப்புப் பட்டனைத் தட்டவும்</translation>
@@ -1130,7 +1128,6 @@
 <translation id="834313815369870491">மொழிபெயர்க்கக்கூடாத தளங்கள்</translation>
 <translation id="8349013245300336738">பயன்படுத்திய தரவு அளவின்படி வரிசைப்படுத்தும்</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> பதிவிறக்கங்கள் மீட்டெடுக்கப்பட்டன</translation>
-<translation id="8362134094656482681">உங்களுக்கு ஆர்வமுள்ள தலைப்புகளை நிர்வகிக்கலாம்</translation>
 <translation id="8364299278605033898">பிரபல இணையதளங்களைப் பாருங்கள்</translation>
 <translation id="8368027906805972958">அறியாத அல்லது ஆதரிக்கப்படாத சாதனம் (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> மொழித்தொகுப்பு தயாராக உள்ளது.</translation>
@@ -1179,6 +1176,7 @@
 <translation id="8659579665266920523">Chromeமைப் பயன்படுத்தி எப்படித் தேடுவது?</translation>
 <translation id="8662811608048051533">பெரும்பாலான தளங்களிலிருந்து உங்களை வெளியேற்றும்.</translation>
 <translation id="8664979001105139458">கோப்புப் பெயர் ஏற்கனவே உள்ளது</translation>
+<translation id="8676789164135894283">உள்நுழைவுச் சரிபார்ப்புகள்</translation>
 <translation id="8683039184091909753">படம்</translation>
 <translation id="8687353297350450808">{N_BARS,plural, =1{சிக்னல் வலிமையின் அளவு: # கோடு}other{சிக்னல் வலிமையின் அளவு: # கோடுகள்}}</translation>
 <translation id="869891660844655955">காலாவதியாகும் தேதி</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 bb2e2408..1b994c3 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">ప్రస్తుత ట్యాబ్‌ను మూసివేయండి</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" />ను షేర్ చేయడం సాధ్యపడలేదు</translation>
-<translation id="1276279242344007853">మీరు ఫాలో చేస్తున్న సైట్‌లను మేనేజ్ చేయండి</translation>
 <translation id="1283039547216852943">విస్త‌రించ‌డానికి నొక్కండి</translation>
 <translation id="1285310382777185058">భాషను మార్చండి</translation>
 <translation id="1291207594882862231">చరిత్ర, కుక్కీలు, సైట్ డేటా, కాష్‌ను తీసివేస్తుంది…</translation>
@@ -533,6 +532,7 @@
 <translation id="4583164079174244168">{MINUTES,plural, =1{# నిమిషం క్రితం}other{# నిమిషాల క్రితం}}</translation>
 <translation id="4587589328781138893">సైట్‌లు</translation>
 <translation id="4594952190837476234">ఈ ఆఫ్‌లైన్ పేజీ <ph name="CREATION_TIME" />కి చెందినది మరియు ఆన్‌లైన్ వెర్షన్ వేరుగా ఉండవచ్చు.</translation>
+<translation id="4615382002648696011">ఫాలో చేస్తున్నారు, చదవని కథనాలు సిద్ధంగా ఉన్నాయి</translation>
 <translation id="4616150815774728855"><ph name="WEBAPK_NAME" />ని తెరువు</translation>
 <translation id="4619564267100705184">ఇది మీరే అని వెరిఫై చేయండి</translation>
 <translation id="4634124774493850572">పాస్‌వర్డ్‌ను ఉపయోగించు</translation>
@@ -549,7 +549,6 @@
 <translation id="4697543623252708062">త్వరలో, మీరు కొత్త ట్యాబ్‌ను తెరిచినప్పుడు మీరు <ph name="SITE_NAME" /> నుండి కథనాలను చూస్తారు. 'ఫాలోలను మేనేజ్ చేయి'లో మీరు ఫాలో చేసే సైట్‌లను కంట్రోల్ చేయవచ్చు.</translation>
 <translation id="4699172675775169585">కాష్ చేసిన చిత్రాలు మరియు ఫైల్‌లు</translation>
 <translation id="4714588616299687897">మీ డేటాలో 60% వరకు ఆదా చేసుకోండి</translation>
-<translation id="4716066120200945007">ఫాలో చేస్తున్నారు</translation>
 <translation id="4719927025381752090">అనువదించమని ఆఫర్ చేయి</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" />లో తెరువు</translation>
 <translation id="4720982865791209136">Chromeను మెరుగుపరచడంలో సహాయపడండి. <ph name="BEGIN_LINK" />సర్వేలో పాల్గొనండి<ph name="END_LINK" /></translation>
@@ -751,7 +750,6 @@
 <translation id="5939518447894949180">రీసెట్ చేయి</translation>
 <translation id="5942872142862698679">శోధన కోసం Googleను ఉపయోగిస్తోంది</translation>
 <translation id="5951119116059277034">లైవ్ పేజీని చూస్తున్నారు</translation>
-<translation id="5951615825629292797">భాష సిద్ధంగా ఉంది, <ph name="APP_NAME" />ను రీస్టార్ట్ చేయండి</translation>
 <translation id="5952764234151283551">మీరు చేరుకోవాలని ప్రయత్నిస్తున్న పేజీ URLని Googleకి పంపుతుంది</translation>
 <translation id="5956665950594638604">Chrome సహాయ కేంద్రాన్ని కొత్త ట్యాబ్‌లో తెరవండి</translation>
 <translation id="5957442310066583693">మీ టాప్ సైట్‍లు చూడటానికి, హోమ్ బటన్‍ను ట్యాప్ చేయండి</translation>
@@ -1130,7 +1128,6 @@
 <translation id="834313815369870491">ఈ సైట్‌లను ఎప్పటికీ అనువదించవద్దు</translation>
 <translation id="8349013245300336738">వినియోగించిన డేటా పరిమాణం ద్వారా క్రమీకరించు</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> డౌన్‌లోడ్‌లు రీస్టోర్ చేయబడ్డాయి</translation>
-<translation id="8362134094656482681">మీరు ఆసక్తిని కలిగి ఉన్న అంశాలను మేనేజ్ చేయండి</translation>
 <translation id="8364299278605033898">ప్రసిద్ధ వెబ్‌సైట్‌లను చూడండి</translation>
 <translation id="8368027906805972958">తెలియని లేదా మద్దతు లేని పరికరం (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> సిద్ధంగా ఉంది.</translation>
@@ -1179,6 +1176,7 @@
 <translation id="8659579665266920523">Chromeతో సెర్చ్ చేయడం ఎలా</translation>
 <translation id="8662811608048051533">చాలా సైట్‌ల నుండి మిమ్మల్ని సైన్ అవుట్ చేస్తుంది.</translation>
 <translation id="8664979001105139458">ఫైల్ పేరు ఇప్పటికే ఉంది</translation>
+<translation id="8676789164135894283">సైన్ ఇన్ వెరిఫికేషన్‌లు</translation>
 <translation id="8683039184091909753">ఇమేజ్</translation>
 <translation id="8687353297350450808">{N_BARS,plural, =1{సిగ్నల్ సామర్థ్యం స్థాయి: # బార్}other{సిగ్నల్ సామర్థ్యం స్థాయి: # బార్‌లు}}</translation>
 <translation id="869891660844655955">గడువు తేదీ</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 c08130ef..5a5f2d8 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">ปิดแท็บปัจจุบัน</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">แชร์<ph name="CONTENT_TYPE" />ไม่ได้</translation>
-<translation id="1276279242344007853">จัดการเว็บไซต์ที่คุณกำลังติดตาม</translation>
 <translation id="1283039547216852943">แตะเพื่อขยาย</translation>
 <translation id="1285310382777185058">เปลี่ยนภาษา</translation>
 <translation id="1291207594882862231">ล้างประวัติการเข้าชม คุกกี้ ข้อมูลเว็บไซต์ แคช…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">เร็วๆ นี้คุณจะเห็นเรื่องราวจาก <ph name="SITE_NAME" /> เมื่อเปิดแท็บใหม่ และสามารถควบคุมเว็บไซต์ที่ติดตามได้ใน "จัดการการติดตาม"</translation>
 <translation id="4699172675775169585">รูปภาพและไฟล์ในแคช</translation>
 <translation id="4714588616299687897">ประหยัดการใช้ข้อมูลถึง 60%</translation>
-<translation id="4716066120200945007">กำลังติดตาม</translation>
 <translation id="4719927025381752090">เสนอการแปล</translation>
 <translation id="4720023427747327413">เปิดใน <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">ช่วยปรับปรุง Chrome ด้วยการ<ph name="BEGIN_LINK" />ตอบแบบสำรวจ<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">รีเซ็ต</translation>
 <translation id="5942872142862698679">กำลังใช้ Google ในการค้นหา</translation>
 <translation id="5951119116059277034">กำลังดูหน้าเว็บที่เผยแพร่</translation>
-<translation id="5951615825629292797">ภาษาพร้อมใช้งานแล้ว โปรดรีสตาร์ท <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">ส่ง URL ของหน้าที่คุณพยายามเข้าถึงไปยัง Google</translation>
 <translation id="5956665950594638604">เปิดศูนย์ช่วยเหลือของ Chrome ในแท็บใหม่</translation>
 <translation id="5957442310066583693">หากต้องการดูเว็บไซต์ยอดนิยม ให้แตะปุ่มหน้าแรก</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">ไม่ต้องแปลเว็บไซต์</translation>
 <translation id="8349013245300336738">จัดเรียงตามปริมาณเน็ตมือถือที่ใช้</translation>
 <translation id="835847953965672673">คืนค่าการดาวน์โหลด <ph name="NUMBER_OF_DOWNLOADS" /> รายการแล้ว</translation>
-<translation id="8362134094656482681">จัดการหัวข้อที่คุณสนใจ</translation>
 <translation id="8364299278605033898">ดูเว็บไซต์ยอดนิยม</translation>
 <translation id="8368027906805972958">อุปกรณ์ที่ไม่รู้จักหรือไม่รองรับ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">ภาษา<ph name="LANG" />พร้อมใช้งานแล้ว</translation>
+<translation id="8387617938027387193">ยืนยันว่าเป็นคุณ</translation>
 <translation id="8393700583063109961">ส่งข้อความ</translation>
 <translation id="8410695015584479363">ติดตามราคา</translation>
 <translation id="8413126021676339697">แสดงประวัติการเข้าชมทั้งหมด</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 d59eb672..a9d351d 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Geçerli sekmeyi kapatır</translation>
 <translation id="1258753120186372309">Google doodle'ı: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> paylaşılamadı</translation>
-<translation id="1276279242344007853">Takip ettiğiniz siteleri yönetin</translation>
 <translation id="1283039547216852943">Genişletmek için dokunun</translation>
 <translation id="1285310382777185058">Dili değiştirin</translation>
 <translation id="1291207594882862231">Geçmişi, çerezleri, site verilerini, önbelleği temizleyin…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Yakında yeni sekme açtığınızda <ph name="SITE_NAME" /> kaynağından haberler göreceksiniz. Takipleri Yönet bölümünde, takip ettiğiniz siteleri kontrol edebilirsiniz.</translation>
 <translation id="4699172675775169585">Önbelleğe alınan resimler ve dosyalar</translation>
 <translation id="4714588616299687897">%60'a kadar veri tasarrufu sağlayın</translation>
-<translation id="4716066120200945007">TAKİP EDİLİYOR</translation>
 <translation id="4719927025381752090">Çevirmeyi öner</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> uygulamasında aç</translation>
 <translation id="4720982865791209136">Chrome'u daha iyi hale getirmeye yardımcı olun. <ph name="BEGIN_LINK" />Ankete katıl<ph name="END_LINK" />.</translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Sıfırla</translation>
 <translation id="5942872142862698679">Arama için Google kullanılıyor</translation>
 <translation id="5951119116059277034">Yayındaki sayfa görüntüleniyor</translation>
-<translation id="5951615825629292797">Dil hazır, <ph name="APP_NAME" /> uygulamasını yeniden başlatın</translation>
 <translation id="5952764234151283551">Erişmeye çalıştığınız sayfanın URL'sini Google'a gönderir</translation>
 <translation id="5956665950594638604">Chrome Yardım Merkezi'ni yeni bir sekmede açar</translation>
 <translation id="5957442310066583693">Popüler sitelerinizi görmek için Ana sayfa düğmesine dokunun</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Siteleri asla çevirme</translation>
 <translation id="8349013245300336738">Kullanılan veri miktarına göre sırala</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> indirme geri yüklendi</translation>
-<translation id="8362134094656482681">İlgilendiğiniz konuları yönetin</translation>
 <translation id="8364299278605033898">Popüler web sitelerini görün</translation>
 <translation id="8368027906805972958">Bilinmeyen veya desteklenmeyen cihaz (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> hazır.</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 08284f5b..ed46fc7 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Закрити поточну вкладку</translation>
 <translation id="1258753120186372309">Дудл Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Не вдалося надіслати: <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Керуйте сайтами, на які підписалися</translation>
 <translation id="1283039547216852943">Торкніться, щоб розгорнути</translation>
 <translation id="1285310382777185058">Змінити мову</translation>
 <translation id="1291207594882862231">Очистити історію, файли cookie, дані сайтів, кеш…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Незабаром, відкривши нову вкладку, ви будете бачити історії із сайту <ph name="SITE_NAME" />. Сайти, на які ви підписалися, можна контролювати в розділі "Керувати підписками".</translation>
 <translation id="4699172675775169585">Кешовані зображення та файли</translation>
 <translation id="4714588616299687897">Заощаджуйте до 60% трафіку</translation>
-<translation id="4716066120200945007">ПІДПИСКИ</translation>
 <translation id="4719927025381752090">Пропонувати переклад</translation>
 <translation id="4720023427747327413">Відкрити в <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Допоможіть покращити Chrome. <ph name="BEGIN_LINK" />Візьміть участь в опитуванні<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Скинути</translation>
 <translation id="5942872142862698679">Пошук за допомогою Google</translation>
 <translation id="5951119116059277034">Перегляд активної сторінки</translation>
-<translation id="5951615825629292797">Мовний пакет завантажено, перезапустіть додаток <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Надсилає в Google URL-адресу сторінки, яку ви намагаєтеся відкрити</translation>
 <translation id="5956665950594638604">Відкрити Довідковий центр Chrome у новій вкладці</translation>
 <translation id="5957442310066583693">Щоб переглянути свої улюблені сайти, натисніть кнопку домашньої сторінки</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">Сайти, які не потрібно перекладати</translation>
 <translation id="8349013245300336738">Сортувати за кількістю використаного трафіку</translation>
 <translation id="835847953965672673">Відновлено стільки завантажень: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
-<translation id="8362134094656482681">Керуйте цікавими вам темами</translation>
 <translation id="8364299278605033898">Перегляньте популярні сайти</translation>
 <translation id="8368027906805972958">Невідомий чи непідтримуваний пристрій (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">Мовний пакет (<ph name="LANG" />) завантажено.</translation>
+<translation id="8387617938027387193">Підтвердьте свою особу</translation>
 <translation id="8393700583063109961">Надіслати повідомлення</translation>
 <translation id="8410695015584479363">Відстежувати ціни</translation>
 <translation id="8413126021676339697">Показати повну історію</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 71dbe556..bf120a4 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">موجودہ ٹیب بند کریں</translation>
 <translation id="1258753120186372309">Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> کا اشتراک نہیں کیا جا سکا</translation>
-<translation id="1276279242344007853">ان سائٹس کا نظم کریں جن کی آپ پیروی کر رہے ہیں</translation>
 <translation id="1283039547216852943">پھیلانے کیلئے تھپتھپائیں</translation>
 <translation id="1285310382777185058">زبان تبدیل کریں</translation>
 <translation id="1291207594882862231">سرگزشت، کوکیز، سائٹ ڈیٹا، کیش کو صاف کریں…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">جلد ہی، نیا ٹیب کھولنے پر آپ کو <ph name="SITE_NAME" /> سے کہانیاں دکھائی دیں گی۔ آپ جن سائٹس کی پیروی کر رہے ہیں انہیں 'پیروی کی جانے والی سائٹس کا نظم کریں' میں کنٹرول کر سکتے ہیں۔</translation>
 <translation id="4699172675775169585">کیش کردہ تصاویر اور فائلیں</translation>
 <translation id="4714588616299687897">60% تک اپنے ڈیٹا کی بچت کریں</translation>
-<translation id="4716066120200945007">پیروی کر رہے ہیں</translation>
 <translation id="4719927025381752090">ترجمہ کرنے کی پیشکش</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> میں کھولیں</translation>
 <translation id="4720982865791209136">‏Chrome کو بہتر بنانے میں مدد کریں۔ <ph name="BEGIN_LINK" />سروے مکمل کریں<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">دوبارہ ترتیب دیں</translation>
 <translation id="5942872142862698679">‏تلاش کیلئے Google کا استعمال کیا جا رہا ہے</translation>
 <translation id="5951119116059277034">لائیو صفحہ دیکھا جا رہا ہے</translation>
-<translation id="5951615825629292797">زبان تیار ہے، <ph name="APP_NAME" /> ری سٹارٹ کریں</translation>
 <translation id="5952764234151283551">‏Google کو اس صفحے کا URL بھیجتی ہے جس تک آپ رسائی حاصل کرنے کی کوشش کر رہے ہیں</translation>
 <translation id="5956665950594638604">‏Chrome امدادی مرکز کو ایک نئے ٹیب میں کھولیں</translation>
 <translation id="5957442310066583693">اپنی سر فہرست سائٹس دیکھنے کے لیے، ہوم بٹن پر تھپتھپائیں</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">سائٹس کا کبھی بھی ترجمہ نہ کریں</translation>
 <translation id="8349013245300336738">استعمال کردہ ڈیٹا کی مقدار کے لحاظ سے ترتیب دیں</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ڈاؤن لوڈز بحال کئے گئے</translation>
-<translation id="8362134094656482681">ان موضوعات کا نظم کریں جن میں آپ کو دلچسپی ہے</translation>
 <translation id="8364299278605033898">مقبول ویب سائٹس دیکھیں</translation>
 <translation id="8368027906805972958">نا معلوم یا غیر تعاون یافتہ آلہ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> تیار ہے۔</translation>
+<translation id="8387617938027387193">توثیق کریں کہ یہ آپ ہیں</translation>
 <translation id="8393700583063109961">پیغام بھیجیں</translation>
 <translation id="8410695015584479363">قیمتیں ٹریک کریں</translation>
 <translation id="8413126021676339697">مکمل سرگزشت دکھائیں</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 246a804..c3a223b 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Joriy varaqni yopish</translation>
 <translation id="1258753120186372309">Google-dudl: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> yuborilmadi</translation>
-<translation id="1276279242344007853">Siz obuna boʻlgan saytlarni boshqarish</translation>
 <translation id="1283039547216852943">Bosib yoyish</translation>
 <translation id="1285310382777185058">Tilni almashtirish</translation>
 <translation id="1291207594882862231">Brauzer tarixi, cookie-fayllar, kesh va boshqa sayt ma’lumotlarini tozalash...</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Tez orada yangi varaq ochilganda <ph name="SITE_NAME" /> hikoyalari chiqadi. Kuzatuvdagi saytlarni Kuzatuvlar boshqaruvi orqali tahrirlash mumkin.</translation>
 <translation id="4699172675775169585">Keshda saqlangan tavsirlar va boshqa fayllar</translation>
 <translation id="4714588616299687897">Trafigingizni 60% gacha tejang</translation>
-<translation id="4716066120200945007">KUZATYAPSIZ</translation>
 <translation id="4719927025381752090">Tarjima qilishni taklif qilish</translation>
 <translation id="4720023427747327413"><ph name="PRODUCT_NAME" /> orqali ochish</translation>
 <translation id="4720982865791209136">Chrome brauzerini yaxshilashga yordam bering. <ph name="BEGIN_LINK" />So‘rovnomada qatnashing.<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Asliga qaytarish</translation>
 <translation id="5942872142862698679">Asosiy qidiruv tizimi – Google</translation>
 <translation id="5951119116059277034">Hozirgi sahifani koʻryapsiz</translation>
-<translation id="5951615825629292797">Til tayyor, <ph name="APP_NAME" /> ilovasini qayta ishga tushiring</translation>
 <translation id="5952764234151283551">Kiritilgan sayt manzili Google serverlariga yuboriladi</translation>
 <translation id="5956665950594638604">Chrome yordam markazini yangi varaqda ochish</translation>
 <translation id="5957442310066583693">Eng sara saytlarni koʻrish uchun bosh sahifa tugmasini bosing</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Saytlar hech qachon tarjima qilinmasin</translation>
 <translation id="8349013245300336738">Sarflangan trafik asosida saralash</translation>
 <translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> ta yuklanma tiklandi</translation>
-<translation id="8362134094656482681">Qiziqarli mavzularni boshqarish</translation>
 <translation id="8364299278605033898">Mahalliy ommabop saytlar</translation>
 <translation id="8368027906805972958">Notanish yoki qoʻllab-quvvatlanmaydigan qurilma (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> tayyor.</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 86337a1..a357063 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
@@ -41,10 +41,9 @@
 <translation id="124678866338384709">Đóng thẻ hiện tại</translation>
 <translation id="1258753120186372309">Hình tượng trưng của Google: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Không thể chia sẻ <ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Quản lý các trang web mà bạn đang theo dõi</translation>
 <translation id="1283039547216852943">Nhấn để mở rộng</translation>
 <translation id="1285310382777185058">Thay đổi ngôn ngữ</translation>
-<translation id="1291207594882862231">Xóa lịch sử, cookie, dữ liệu trang web, bộ nhớ đệm…</translation>
+<translation id="1291207594882862231">Xóa dữ liệu duyệt web, cookie, dữ liệu trang web, bộ nhớ đệm…</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>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Bạn sẽ sớm thấy các tin bài của <ph name="SITE_NAME" /> khi mở một thẻ mới. Bạn có thể kiểm soát các trang web mà mình theo dõi trong phần Quản lý lượt theo dõi.</translation>
 <translation id="4699172675775169585">Tệp và hình ảnh được lưu trong bộ nhớ đệm</translation>
 <translation id="4714588616299687897">Tiết kiệm tới 60% dữ liệu</translation>
-<translation id="4716066120200945007">ĐANG THEO DÕI</translation>
 <translation id="4719927025381752090">Đề xuất dịch</translation>
 <translation id="4720023427747327413">Mở trong <ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Hãy giúp cải tiến Chrome. <ph name="BEGIN_LINK" />Tham gia khảo sát<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Đặt lại</translation>
 <translation id="5942872142862698679">Sử dụng Google để tìm kiếm</translation>
 <translation id="5951119116059277034">Đang xem trang hiển thị công khai</translation>
-<translation id="5951615825629292797">Ngôn ngữ đã sẵn sàng, hãy khởi động lại <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Gửi cho Google URL của trang bạn đang cố truy cập</translation>
 <translation id="5956665950594638604">Mở Trung tâm trợ giúp Chrome trong thẻ mới</translation>
 <translation id="5957442310066583693">Để xem các trang web hàng đầu của bạn, hãy nhấn vào nút Trang chủ</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Không bao giờ dịch các trang web</translation>
 <translation id="8349013245300336738">Sắp xếp theo lượng dữ liệu đã dùng</translation>
 <translation id="835847953965672673">Đã khôi phục <ph name="NUMBER_OF_DOWNLOADS" /> tệp đã tải xuống</translation>
-<translation id="8362134094656482681">Quản lý các chủ đề mà bạn quan tâm</translation>
 <translation id="8364299278605033898">Xem các trang web phổ biến</translation>
 <translation id="8368027906805972958">Thiết bị không xác định hoặc không được hỗ trợ (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" /> đã sẵn sàng.</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 99f7659..ff170ff 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">关闭当前标签页</translation>
 <translation id="1258753120186372309">Google 涂鸦:<ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">无法分享<ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">管理您关注的网站</translation>
 <translation id="1283039547216852943">点按即可展开</translation>
 <translation id="1285310382777185058">更改语言</translation>
 <translation id="1291207594882862231">清除历史记录、Cookie、网站数据、缓存内容…</translation>
@@ -533,6 +532,7 @@
 <translation id="4583164079174244168">{MINUTES,plural, =1{# 分钟前}other{# 分钟前}}</translation>
 <translation id="4587589328781138893">网站</translation>
 <translation id="4594952190837476234">此离线网页是在 <ph name="CREATION_TIME" />创建的,可能与在线版本有所不同。</translation>
+<translation id="4615382002648696011">已关注,有未读内容</translation>
 <translation id="4616150815774728855">打开<ph name="WEBAPK_NAME" /></translation>
 <translation id="4619564267100705184">请验证是您本人在操作</translation>
 <translation id="4634124774493850572">使用密码</translation>
@@ -549,7 +549,6 @@
 <translation id="4697543623252708062">不久之后,当打开新标签页时,您将看到来自 <ph name="SITE_NAME" /> 的故事。您可在“管理关注”页面中控制您关注的网站。</translation>
 <translation id="4699172675775169585">缓存的图片和文件</translation>
 <translation id="4714588616299687897">最多可为您节省 60% 的数据流量</translation>
-<translation id="4716066120200945007">已关注</translation>
 <translation id="4719927025381752090">提供翻译</translation>
 <translation id="4720023427747327413">在<ph name="PRODUCT_NAME" />中打开</translation>
 <translation id="4720982865791209136">欢迎帮助我们改进 Chrome。<ph name="BEGIN_LINK" />参与调查<ph name="END_LINK" /></translation>
@@ -751,7 +750,6 @@
 <translation id="5939518447894949180">重置</translation>
 <translation id="5942872142862698679">目前使用的搜索引擎是 Google</translation>
 <translation id="5951119116059277034">目前查看的是实际网页</translation>
-<translation id="5951615825629292797">可以使用此语言了,请重启 <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">将您尝试访问的网页的网址发送给 Google</translation>
 <translation id="5956665950594638604">在新标签页中打开 Chrome 帮助中心</translation>
 <translation id="5957442310066583693">若要查看为您推荐的热门网站,请点按“主屏幕”按钮</translation>
@@ -1130,7 +1128,6 @@
 <translation id="834313815369870491">一律不翻译网站</translation>
 <translation id="8349013245300336738">按已使用的数据流量排序</translation>
 <translation id="835847953965672673">已恢复 <ph name="NUMBER_OF_DOWNLOADS" /> 项下载内容</translation>
-<translation id="8362134094656482681">管理您感兴趣的主题</translation>
 <translation id="8364299278605033898">查看热门网站</translation>
 <translation id="8368027906805972958">未知或不支持的设备 (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">可以使用<ph name="LANG" />了。</translation>
@@ -1179,6 +1176,7 @@
 <translation id="8659579665266920523">如何使用 Chrome 进行搜索</translation>
 <translation id="8662811608048051533">会致使您从大多数网站退出。</translation>
 <translation id="8664979001105139458">文件名已存在</translation>
+<translation id="8676789164135894283">登录验证</translation>
 <translation id="8683039184091909753">图片</translation>
 <translation id="8687353297350450808">{N_BARS,plural, =1{信号强度:# 格}other{信号强度:# 格}}</translation>
 <translation id="869891660844655955">截止日期</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 0a6cd75a..180a997d 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">關閉目前分頁</translation>
 <translation id="1258753120186372309">Google Doodle:<ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">管理您正在追蹤的網站</translation>
 <translation id="1283039547216852943">輕按即可展開</translation>
 <translation id="1285310382777185058">變更語言</translation>
 <translation id="1291207594882862231">清除記錄、Cookie、網站資料、快取…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">不久後,您將會在開啟新分頁時看到 <ph name="SITE_NAME" /> 的內容。您可在「管理追蹤」中管理目前追蹤的網站。</translation>
 <translation id="4699172675775169585">快取圖片和檔案</translation>
 <translation id="4714588616299687897">節省高達 60% 數據用量</translation>
-<translation id="4716066120200945007">正在追蹤</translation>
 <translation id="4719927025381752090">提供翻譯</translation>
 <translation id="4720023427747327413">用 <ph name="PRODUCT_NAME" /> 開啟</translation>
 <translation id="4720982865791209136">協助改善 Chrome。<ph name="BEGIN_LINK" />請填寫我們的問卷調查<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">重設</translation>
 <translation id="5942872142862698679">使用 Google 搜尋內容</translation>
 <translation id="5951119116059277034">正在查看實際網頁</translation>
-<translation id="5951615825629292797">語言已就緒,請重新啟動 <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">將您嘗試瀏覽的網頁網址傳送至 Google</translation>
 <translation id="5956665950594638604">在新分頁中開啟 Chrome 說明中心</translation>
 <translation id="5957442310066583693">如要查看熱門網站,請輕按「主按鈕」</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">永遠不要翻譯的網站</translation>
 <translation id="8349013245300336738">依使用數據量排序</translation>
 <translation id="835847953965672673">還原咗 <ph name="NUMBER_OF_DOWNLOADS" /> 個下載嘅內容</translation>
-<translation id="8362134094656482681">管理您感興趣的主題</translation>
 <translation id="8364299278605033898">查看熱門網站</translation>
 <translation id="8368027906805972958">不明或不支援的裝置 (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" />已準備就緒。</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 d8e1680d..f78e5ac 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">關閉目前的分頁</translation>
 <translation id="1258753120186372309">Google Doodle:<ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">管理你正在追蹤的網站</translation>
 <translation id="1283039547216852943">輕觸即可展開</translation>
 <translation id="1285310382777185058">變更語言</translation>
 <translation id="1291207594882862231">清除歷史記錄、Cookie、網站資料、快取…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">不久後,你就會在開啟新分頁時看到「<ph name="SITE_NAME" />」的內容。你可以在「管理追蹤項目」中管理目前追蹤的網站。</translation>
 <translation id="4699172675775169585">快取圖片和檔案</translation>
 <translation id="4714588616299687897">最多可減少 60% 的數據流量</translation>
-<translation id="4716066120200945007">追蹤中</translation>
 <translation id="4719927025381752090">提供翻譯</translation>
 <translation id="4720023427747327413">在 <ph name="PRODUCT_NAME" /> 中開啟</translation>
 <translation id="4720982865791209136">想要協助改善 Chrome 嗎?<ph name="BEGIN_LINK" />請填寫這份問卷調查<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">重設</translation>
 <translation id="5942872142862698679">現已使用 Google 搜尋</translation>
 <translation id="5951119116059277034">正在查看實際網頁</translation>
-<translation id="5951615825629292797">這個語言套件已下載完成,請重新啟動 <ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">將你嘗試瀏覽的網頁網址傳送給 Google</translation>
 <translation id="5956665950594638604">在新分頁中開啟 Chrome 說明中心</translation>
 <translation id="5957442310066583693">如要查看常用網站,請輕觸「首頁」按鈕</translation>
@@ -1131,10 +1128,10 @@
 <translation id="834313815369870491">一律不翻譯的網站</translation>
 <translation id="8349013245300336738">依使用資料量排序</translation>
 <translation id="835847953965672673">已還原 <ph name="NUMBER_OF_DOWNLOADS" /> 個下載內容</translation>
-<translation id="8362134094656482681">管理你感興趣的主題</translation>
 <translation id="8364299278605033898">查看熱門網站</translation>
 <translation id="8368027906805972958">不明或不支援的裝置 (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381"><ph name="LANG" />套件已下載完成。</translation>
+<translation id="8387617938027387193">驗證你的身分</translation>
 <translation id="8393700583063109961">傳送訊息</translation>
 <translation id="8410695015584479363">追蹤價格</translation>
 <translation id="8413126021676339697">顯示完整記錄</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 3571c11..40d6206 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
@@ -41,7 +41,6 @@
 <translation id="124678866338384709">Vala ithebhu yamanje</translation>
 <translation id="1258753120186372309">I-Google doodle: <ph name="DOODLE_DESCRIPTION" /></translation>
 <translation id="1266864766717917324">Ayikwazanga ukwabelana nge-<ph name="CONTENT_TYPE" /></translation>
-<translation id="1276279242344007853">Phatha amasayithi owalandelayo</translation>
 <translation id="1283039547216852943">Thepha ukuze unwebe</translation>
 <translation id="1285310382777185058">Shintsha ulimi</translation>
 <translation id="1291207594882862231">Sula umlando, amakhukhi, idatha yesayithi, inqolobane…</translation>
@@ -550,7 +549,6 @@
 <translation id="4697543623252708062">Maduze, uzobona izindaba ezivela ku-<ph name="SITE_NAME" /> uma uvula ithebhu entsha. Ungalawula amasayithi owalandelayo kokuthi Phatha Okulandelayo.</translation>
 <translation id="4699172675775169585">Izithombe ezifakwe kunqolobane namafayela</translation>
 <translation id="4714588616299687897">Londoloza kufikela kokungu-60% wedatha yakho</translation>
-<translation id="4716066120200945007">UKULANDELA</translation>
 <translation id="4719927025381752090">Nika ukuhumusha</translation>
 <translation id="4720023427747327413">Vula ku-<ph name="PRODUCT_NAME" /></translation>
 <translation id="4720982865791209136">Siza ukuthuthukisa i-Chrome. <ph name="BEGIN_LINK" />Yenza inhlolovo<ph name="END_LINK" /></translation>
@@ -752,7 +750,6 @@
 <translation id="5939518447894949180">Setha kabusha</translation>
 <translation id="5942872142862698679">Isebenzisa i-Google ukuze iseshe</translation>
 <translation id="5951119116059277034">Ibuka ikhasi elibukhoma</translation>
-<translation id="5951615825629292797">Ulimi lulungile, qala kabusha i-<ph name="APP_NAME" /></translation>
 <translation id="5952764234151283551">Ithumela i-URL yekhasi ozama ukufinyelela kulo ku-Google</translation>
 <translation id="5956665950594638604">Vula isikhungo sosizo se-Chrome kuthebhu entsha</translation>
 <translation id="5957442310066583693">Ukuze ubone amasayithi akho aphezulu, thepha inkinobho Yasekhaya</translation>
@@ -1131,7 +1128,6 @@
 <translation id="834313815369870491">Ungalokothi uhumushe amasayithi</translation>
 <translation id="8349013245300336738">Hlunga ngenani ledatha elisetshenzisiwe</translation>
 <translation id="835847953965672673">Okulandiwe okungu-<ph name="NUMBER_OF_DOWNLOADS" /> okubuyiselwe</translation>
-<translation id="8362134094656482681">Phatha izihloko onentshisekelo kuzo</translation>
 <translation id="8364299278605033898">Bona amawebhusayithi adumile</translation>
 <translation id="8368027906805972958">Idivayisi engaziwa noma engasekelwe (<ph name="DEVICE_ID" />)</translation>
 <translation id="8372925856448695381">I-<ph name="LANG" /> ilungile.</translation>
diff --git a/chrome/browser/ui/app_list/app_service/app_service_app_model_builder_unittest.cc b/chrome/browser/ui/app_list/app_service/app_service_app_model_builder_unittest.cc
index 5013d57..af110ab 100644
--- a/chrome/browser/ui/app_list/app_service/app_service_app_model_builder_unittest.cc
+++ b/chrome/browser/ui/app_list/app_service/app_service_app_model_builder_unittest.cc
@@ -54,7 +54,7 @@
 #include "chrome/grit/generated_resources.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "chromeos/settings/cros_settings_names.h"
diff --git a/chrome/browser/ui/app_list/arc/arc_app_test.cc b/chrome/browser/ui/app_list/arc/arc_app_test.cc
index 5a90b311..c4d5787 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_test.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_test.cc
@@ -20,7 +20,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
 #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/arc/arc_service_manager.h"
 #include "components/arc/arc_util.h"
diff --git a/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc b/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
index 050b6515..525049f9 100644
--- a/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
+++ b/chrome/browser/ui/app_list/search/app_search_provider_unittest.cc
@@ -41,7 +41,7 @@
 #include "chrome/common/chrome_constants.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "components/arc/test/fake_app_instance.h"
diff --git a/chrome/browser/ui/ash/assistant/assistant_state_client_unittest.cc b/chrome/browser/ui/ash/assistant/assistant_state_client_unittest.cc
index 5e086eb..3c2f5cd 100644
--- a/chrome/browser/ui/ash/assistant/assistant_state_client_unittest.cc
+++ b/chrome/browser/ui/ash/assistant/assistant_state_client_unittest.cc
@@ -14,7 +14,7 @@
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
 #include "chrome/test/base/chrome_ash_test_base.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/arc/arc_util.h"
 #include "components/arc/test/fake_arc_session.h"
diff --git a/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc b/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc
index d45e56c..38cfa62 100644
--- a/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc
+++ b/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.h"
 
+#include <memory>
 #include <utility>
 
 #include "ash/constants/ash_features.h"
@@ -38,6 +39,7 @@
 #include "chrome/browser/ui/ash/login_screen_client_impl.h"
 #include "chrome/browser/ui/ash/media_client_impl.h"
 #include "chrome/browser/ui/ash/media_notification_provider_impl.h"
+#include "chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.h"
 #include "chrome/browser/ui/ash/network/mobile_data_notifications.h"
 #include "chrome/browser/ui/ash/network/network_connect_delegate_chromeos.h"
 #include "chrome/browser/ui/ash/network/network_portal_notification_controller.h"
@@ -216,6 +218,11 @@
   media_client_ = std::make_unique<MediaClientImpl>();
   media_client_->Init();
 
+  if (ash::features::IsMicMuteNotificationsEnabled()) {
+    microphone_mute_notification_delegate_ =
+        std::make_unique<MicrophoneMuteNotificationDelegateImpl>();
+  }
+
   // Instantiate DisplaySettingsHandler after CrosSettings has been
   // initialized.
   display_settings_handler_ =
diff --git a/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.h b/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.h
index 0916cfa..858b7226 100644
--- a/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.h
+++ b/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.h
@@ -32,6 +32,7 @@
 class InSessionAuthDialogClient;
 class LoginScreenClientImpl;
 class MediaClientImpl;
+class MicrophoneMuteNotificationDelegateImpl;
 class MobileDataNotifications;
 class NetworkConnectDelegateChromeOS;
 class NightLightClient;
@@ -111,6 +112,8 @@
   // Initialized in PostProfileInit in all configs:
   std::unique_ptr<LoginScreenClientImpl> login_screen_client_;
   std::unique_ptr<MediaClientImpl> media_client_;
+  std::unique_ptr<MicrophoneMuteNotificationDelegateImpl>
+      microphone_mute_notification_delegate_;
   std::unique_ptr<policy::DisplaySettingsHandler> display_settings_handler_;
 
   // Initialized in PostBrowserStart in all configs:
diff --git a/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.cc b/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.cc
new file mode 100644
index 0000000..97e9d3c6
--- /dev/null
+++ b/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.cc
@@ -0,0 +1,71 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <string>
+
+#include "chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.h"
+
+#include "base/optional.h"
+#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/apps/app_service/app_service_proxy.h"
+#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
+#include "chrome/browser/ash/profiles/profile_helper.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "components/account_id/account_id.h"
+#include "components/services/app_service/public/cpp/app_capability_access_cache.h"
+#include "components/services/app_service/public/cpp/app_capability_access_cache_wrapper.h"
+#include "components/services/app_service/public/cpp/app_registry_cache.h"
+#include "components/user_manager/user_manager.h"
+#include "ui/base/l10n/l10n_util.h"
+
+MicrophoneMuteNotificationDelegateImpl::
+    MicrophoneMuteNotificationDelegateImpl() = default;
+MicrophoneMuteNotificationDelegateImpl::
+    ~MicrophoneMuteNotificationDelegateImpl() = default;
+
+base::Optional<std::u16string>
+MicrophoneMuteNotificationDelegateImpl::GetAppAccessingMicrophone() {
+  auto* manager = user_manager::UserManager::Get();
+  const user_manager::User* active_user = manager->GetActiveUser();
+  if (!active_user)
+    return base::nullopt;
+
+  auto account_id = active_user->GetAccountId();
+  Profile* profile =
+      chromeos::ProfileHelper::Get()->GetProfileByUser(active_user);
+  apps::AppServiceProxyChromeOs* proxy =
+      apps::AppServiceProxyFactory::GetForProfile(profile);
+  apps::AppRegistryCache& reg_cache = proxy->AppRegistryCache();
+  apps::AppCapabilityAccessCache* cap_cache =
+      apps::AppCapabilityAccessCacheWrapper::Get().GetAppCapabilityAccessCache(
+          account_id);
+  DCHECK(cap_cache);
+  return GetAppAccessingMicrophone(cap_cache, &reg_cache);
+}
+
+base::Optional<std::u16string>
+MicrophoneMuteNotificationDelegateImpl::GetAppAccessingMicrophone(
+    apps::AppCapabilityAccessCache* capability_cache,
+    apps::AppRegistryCache* registry_cache) {
+  bool found_app = false;
+  DCHECK(capability_cache);
+  DCHECK(registry_cache);
+
+  for (const std::string& app :
+       capability_cache->GetAppsAccessingMicrophone()) {
+    found_app = true;
+    std::u16string name;
+    registry_cache->ForOneApp(app, [&name](const apps::AppUpdate& update) {
+      name = base::UTF8ToUTF16(update.ShortName());
+    });
+    if (!name.empty()) {
+      // We have an actual app name, so return it.
+      return base::Optional<std::u16string>(name);
+    }
+  }
+
+  // Returning an empty string means we found an app but no name, while
+  // returning base::nullopt means no app is using the mic.
+  return found_app ? base::make_optional(u"") : base::nullopt;
+}
diff --git a/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.h b/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.h
new file mode 100644
index 0000000..5ba9df0
--- /dev/null
+++ b/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.h
@@ -0,0 +1,43 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_ASH_MICROPHONE_MUTE_NOTIFICATION_DELEGATE_IMPL_H_
+#define CHROME_BROWSER_UI_ASH_MICROPHONE_MUTE_NOTIFICATION_DELEGATE_IMPL_H_
+
+#include <string>
+
+#include "ash/public/cpp/microphone_mute_notification_delegate.h"
+#include "base/memory/weak_ptr.h"
+#include "base/optional.h"
+
+namespace apps {
+class AppCapabilityAccessCache;
+class AppRegistryCache;
+}  // namespace apps
+
+class MicrophoneMuteNotificationDelegateImpl
+    : public ash::MicrophoneMuteNotificationDelegate {
+ public:
+  MicrophoneMuteNotificationDelegateImpl();
+  MicrophoneMuteNotificationDelegateImpl(
+      const MicrophoneMuteNotificationDelegateImpl&) = delete;
+  MicrophoneMuteNotificationDelegateImpl& operator=(
+      const MicrophoneMuteNotificationDelegateImpl&) = delete;
+  ~MicrophoneMuteNotificationDelegateImpl() override;
+
+  // ash::MicrophoneMuteNotificationDelegate
+  base::Optional<std::u16string> GetAppAccessingMicrophone() override;
+
+ private:
+  friend class MicrophoneMuteNotificationDelegateTest;
+
+  base::Optional<std::u16string> GetAppAccessingMicrophone(
+      apps::AppCapabilityAccessCache* capability_cache,
+      apps::AppRegistryCache* registry_cache);
+
+  base::WeakPtrFactory<MicrophoneMuteNotificationDelegateImpl>
+      weak_ptr_factory_{this};
+};
+
+#endif  // CHROME_BROWSER_UI_ASH_MICROPHONE_MUTE_NOTIFICATION_DELEGATE_IMPL_H_
diff --git a/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl_unittest.cc b/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl_unittest.cc
new file mode 100644
index 0000000..9bc1777
--- /dev/null
+++ b/chrome/browser/ui/ash/microphone_mute_notification_delegate_impl_unittest.cc
@@ -0,0 +1,131 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/ash/microphone_mute_notification_delegate_impl.h"
+
+#include <memory>
+
+#include "base/strings/utf_string_conversions.h"
+#include "components/services/app_service/public/cpp/app_capability_access_cache.h"
+#include "components/services/app_service/public/cpp/app_capability_access_cache_wrapper.h"
+#include "components/services/app_service/public/cpp/app_registry_cache.h"
+#include "components/services/app_service/public/cpp/app_registry_cache_wrapper.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+// Gmock matchers and actions that are used below.
+using ::testing::AnyOf;
+
+class MicrophoneMuteNotificationDelegateTest : public testing::Test {
+ public:
+  MicrophoneMuteNotificationDelegateTest() = default;
+  MicrophoneMuteNotificationDelegateTest(
+      const MicrophoneMuteNotificationDelegateTest&) = delete;
+  MicrophoneMuteNotificationDelegateTest& operator=(
+      const MicrophoneMuteNotificationDelegateTest&) = delete;
+  ~MicrophoneMuteNotificationDelegateTest() override = default;
+
+  void SetUp() override {
+    media_delegate_ =
+        std::make_unique<MicrophoneMuteNotificationDelegateImpl>();
+
+    registry_cache_.SetAccountId(account_id_);
+    apps::AppRegistryCacheWrapper::Get().AddAppRegistryCache(account_id_,
+                                                             &registry_cache_);
+    capability_access_cache_.SetAccountId(account_id_);
+    apps::AppCapabilityAccessCacheWrapper::Get().AddAppCapabilityAccessCache(
+        account_id_, &capability_access_cache_);
+  }
+
+  base::Optional<std::u16string> GetAppAccessingMicrophone() {
+    return media_delegate_->GetAppAccessingMicrophone(&capability_access_cache_,
+                                                      &registry_cache_);
+  }
+
+  void TearDown() override { media_delegate_.reset(); }
+
+  static apps::mojom::AppPtr MakeApp(const char* app_id, const char* name) {
+    apps::mojom::AppPtr app = apps::mojom::App::New();
+    app->app_id = app_id;
+    app->name = name;
+    app->short_name = name;
+    return app;
+  }
+
+  static apps::mojom::CapabilityAccessPtr MakeCapabilityAccess(
+      const char* app_id,
+      apps::mojom::OptionalBool microphone) {
+    apps::mojom::CapabilityAccessPtr access =
+        apps::mojom::CapabilityAccess::New();
+    access->app_id = app_id;
+    access->camera = apps::mojom::OptionalBool::kFalse;
+    access->microphone = microphone;
+    return access;
+  }
+
+  void LaunchApp(const char* id,
+                 const char* name,
+                 apps::mojom::OptionalBool use_microphone) {
+    std::vector<apps::mojom::AppPtr> registry_deltas;
+    registry_deltas.push_back(MakeApp(id, name));
+    registry_cache_.OnApps(std::move(registry_deltas),
+                           apps::mojom::AppType::kUnknown,
+                           /* should_notify_initialized = */ false);
+
+    std::vector<apps::mojom::CapabilityAccessPtr> capability_access_deltas;
+    capability_access_deltas.push_back(
+        MakeCapabilityAccess(id, use_microphone));
+    capability_access_cache_.OnCapabilityAccesses(
+        std::move(capability_access_deltas));
+  }
+
+  const std::string kPrimaryProfileName = "primary_profile";
+  const AccountId account_id_ = AccountId::FromUserEmail(kPrimaryProfileName);
+
+  std::unique_ptr<MicrophoneMuteNotificationDelegateImpl> media_delegate_;
+
+  apps::AppRegistryCache registry_cache_;
+  apps::AppCapabilityAccessCache capability_access_cache_;
+};
+
+TEST_F(MicrophoneMuteNotificationDelegateTest, NoAppsLaunched) {
+  // Should return a completely value-free app_name.
+  base::Optional<std::u16string> app_name = GetAppAccessingMicrophone();
+  EXPECT_FALSE(app_name.has_value());
+}
+
+TEST_F(MicrophoneMuteNotificationDelegateTest, AppLaunchedNotUsingMicrophone) {
+  LaunchApp("id_rose", "name_rose", apps::mojom::OptionalBool::kFalse);
+
+  // Should return a completely value-free app_name.
+  base::Optional<std::u16string> app_name = GetAppAccessingMicrophone();
+  EXPECT_FALSE(app_name.has_value());
+}
+
+TEST_F(MicrophoneMuteNotificationDelegateTest, AppLaunchedUsingMicrophone) {
+  LaunchApp("id_rose", "name_rose", apps::mojom::OptionalBool::kTrue);
+
+  // Should return the name of our app.
+  base::Optional<std::u16string> app_name = GetAppAccessingMicrophone();
+  EXPECT_TRUE(app_name.has_value());
+  std::string app_name_utf8 = base::UTF16ToUTF8(app_name.value());
+  EXPECT_STREQ(app_name_utf8.c_str(), "name_rose");
+}
+
+TEST_F(MicrophoneMuteNotificationDelegateTest,
+       MultipleAppsLaunchedUsingMicrophone) {
+  LaunchApp("id_rose", "name_rose", apps::mojom::OptionalBool::kTrue);
+  LaunchApp("id_mars", "name_mars", apps::mojom::OptionalBool::kTrue);
+  LaunchApp("id_zara", "name_zara", apps::mojom::OptionalBool::kTrue);
+  LaunchApp("id_oscar", "name_oscar", apps::mojom::OptionalBool::kFalse);
+
+  // Because AppCapabilityAccessCache::GetAppsAccessingMicrophone (invoked by
+  // GetAppAccessingMicrophone) returns a set, we have no guarantee of
+  // which app will be found first.  So we verify that the app name is one of
+  // our microphone-users.
+  base::Optional<std::u16string> app_name = GetAppAccessingMicrophone();
+  EXPECT_TRUE(app_name.has_value());
+  std::string app_name_utf8 = base::UTF16ToUTF8(app_name.value());
+  EXPECT_THAT(app_name_utf8, AnyOf("name_rose", "name_mars", "name_zara"));
+}
diff --git a/chrome/browser/ui/ash/recording_service_browsertest.cc b/chrome/browser/ui/ash/recording_service_browsertest.cc
index 37b994d..18d174f 100644
--- a/chrome/browser/ui/ash/recording_service_browsertest.cc
+++ b/chrome/browser/ui/ash/recording_service_browsertest.cc
@@ -221,7 +221,7 @@
     auto* browser_window = GetBrowserWindow();
     EXPECT_NE(new_root, browser_window->GetRootWindow());
     auto* target_container =
-        new_root->GetChildById(browser_window->parent()->id());
+        new_root->GetChildById(browser_window->parent()->GetId());
     DCHECK(target_container);
     target_container->AddChild(browser_window);
     EXPECT_EQ(new_root, browser_window->GetRootWindow());
diff --git a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_shelf_controller.cc b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_shelf_controller.cc
index 2f931eb..05b977dd 100644
--- a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_shelf_controller.cc
+++ b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_shelf_controller.cc
@@ -171,7 +171,8 @@
   // An app window has type WINDOW_TYPE_NORMAL, a WindowDelegate and
   // is a top level views widget. Tooltips, menus, and other kinds of transient
   // windows that can't activate are filtered out.
-  if (window->type() != aura::client::WINDOW_TYPE_NORMAL || !window->delegate())
+  if (window->GetType() != aura::client::WINDOW_TYPE_NORMAL ||
+      !window->delegate())
     return;
   views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window);
   if (!widget || !widget->is_top_level())
diff --git a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc
index dd83b9b..4ffccc7 100644
--- a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc
+++ b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc
@@ -105,7 +105,7 @@
 #include "chrome/test/base/test_browser_window_aura.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/account_id/account_id.h"
 #include "components/arc/arc_prefs.h"
@@ -1081,7 +1081,7 @@
   TestBrowserWindow* CreateTestBrowserWindowAura() {
     std::unique_ptr<aura::Window> window(
         new aura::Window(nullptr, aura::client::WINDOW_TYPE_NORMAL));
-    window->set_id(0);
+    window->SetId(0);
     window->Init(ui::LAYER_TEXTURED);
     aura::client::ParentWindowWithContext(window.get(), GetContext(),
                                           gfx::Rect(200, 200));
diff --git a/chrome/browser/ui/ash/shelf/shelf_context_menu_unittest.cc b/chrome/browser/ui/ash/shelf/shelf_context_menu_unittest.cc
index e8ddf0c..797d3c3 100644
--- a/chrome/browser/ui/ash/shelf/shelf_context_menu_unittest.cc
+++ b/chrome/browser/ui/ash/shelf/shelf_context_menu_unittest.cc
@@ -48,7 +48,7 @@
 #include "chrome/test/base/chrome_ash_test_base.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/seneschal/seneschal_client.h"
 #include "components/arc/metrics/arc_metrics_constants.h"
diff --git a/chrome/browser/ui/ash/tab_scrubber_browsertest.cc b/chrome/browser/ui/ash/tab_scrubber_browsertest.cc
index 39f63449..5b48544 100644
--- a/chrome/browser/ui/ash/tab_scrubber_browsertest.cc
+++ b/chrome/browser/ui/ash/tab_scrubber_browsertest.cc
@@ -9,7 +9,6 @@
 
 #include "ash/constants/ash_switches.h"
 #include "ash/display/event_transformation_handler.h"
-#include "ash/public/cpp/ash_features.h"
 #include "ash/shell.h"
 #include "base/command_line.h"
 #include "base/macros.h"
@@ -91,13 +90,6 @@
     command_line->AppendSwitch(chromeos::switches::kNaturalScrollDefault);
   }
 
-  // InProcessBrowserTest:
-  void SetUp() override {
-    scoped_feature_list_.InitAndEnableFeature(
-        ash::features::kInteractiveWindowCycleList);
-    InProcessBrowserTest::SetUp();
-  }
-
   void SetUpOnMainThread() override {
     TabScrubber::GetInstance()->use_default_activation_delay_ = false;
     // Disable external monitor scaling of coordinates.
@@ -321,8 +313,6 @@
     return std::make_unique<ui::test::EventGenerator>(root, window);
   }
 
-  base::test::ScopedFeatureList scoped_feature_list_;
-
   DISALLOW_COPY_AND_ASSIGN(TabScrubberTest);
 };
 
diff --git a/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc b/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc
index ef79c0a..437d515 100644
--- a/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc
+++ b/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc
@@ -23,6 +23,7 @@
 #include "ui/aura/env.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_tree_host.h"
+#include "ui/display/screen.h"
 #include "ui/views/accessibility/accessibility_alert_window.h"
 #include "ui/views/accessibility/ax_aura_obj_wrapper.h"
 #include "ui/views/accessibility/ax_event_manager.h"
@@ -30,12 +31,12 @@
 #include "ui/views/accessibility/ax_virtual_view.h"
 #include "ui/views/view.h"
 #include "ui/views/widget/widget.h"
+#include "ui/wm/core/coordinate_conversion.h"
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/shell.h"
 #include "ash/wm/window_util.h"
-#include "ui/wm/core/coordinate_conversion.h"
 #endif
 
 // static
@@ -297,10 +298,19 @@
 
 void AutomationManagerAura::PerformHitTest(
     const ui::AXActionData& original_action) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
   ui::AXActionData action = original_action;
-  aura::Window* root_window =
-      ash::window_util::GetRootWindowAt(action.target_point);
+  // Get the display nearest the point.
+  const display::Display& display =
+      display::Screen::GetScreen()->GetDisplayNearestPoint(action.target_point);
+
+  aura::Window* root_window = nullptr;
+  for (auto* host : aura::Env::GetInstance()->window_tree_hosts()) {
+    if (display.id() == host->GetDisplayId()) {
+      root_window = host->window();
+      break;
+    }
+  }
+
   if (!root_window)
     return;
 
@@ -351,9 +361,8 @@
     views::View* root_view = widget->GetRootView();
     views::View* hit_view =
         root_view->GetEventHandlerForPoint(action.target_point);
-    if (hit_view) {
+    if (hit_view)
       obj_to_send_event = cache_->GetOrCreate(hit_view);
-    }
   }
 
   // Otherwise, fire the event directly on the Window.
@@ -363,7 +372,6 @@
     PostEvent(obj_to_send_event->GetUniqueId(), action.hit_test_event_to_fire,
               action.request_id);
   }
-#endif
 }
 
 void AutomationManagerAura::OnSerializeFailure(ax::mojom::Event event_type,
diff --git a/chrome/browser/ui/global_media_controls/cast_media_session_controller.cc b/chrome/browser/ui/global_media_controls/cast_media_session_controller.cc
index fd8f6dd..47412c3 100644
--- a/chrome/browser/ui/global_media_controls/cast_media_session_controller.cc
+++ b/chrome/browser/ui/global_media_controls/cast_media_session_controller.cc
@@ -67,6 +67,7 @@
     case media_session::mojom::MediaSessionAction::kToggleMicrophone:
     case media_session::mojom::MediaSessionAction::kToggleCamera:
     case media_session::mojom::MediaSessionAction::kHangUp:
+    case media_session::mojom::MediaSessionAction::kRaise:
       NOTREACHED();
       return;
   }
diff --git a/chrome/browser/ui/views/crostini/crostini_recovery_view_browsertest.cc b/chrome/browser/ui/views/crostini/crostini_recovery_view_browsertest.cc
index d20c64b..4bc21f9 100644
--- a/chrome/browser/ui/views/crostini/crostini_recovery_view_browsertest.cc
+++ b/chrome/browser/ui/views/crostini/crostini_recovery_view_browsertest.cc
@@ -19,8 +19,8 @@
 #include "chrome/browser/ui/views/crostini/crostini_dialogue_browser_test_util.h"
 #include "chrome/browser/ui/web_applications/system_web_app_ui_utils.h"
 #include "chrome/browser/web_applications/web_app_provider.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "content/public/test/browser_test.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/chrome/browser/ui/views/crostini/crostini_uninstaller_view_browsertest.cc b/chrome/browser/ui/views/crostini/crostini_uninstaller_view_browsertest.cc
index 6f02df1..88e62102 100644
--- a/chrome/browser/ui/views/crostini/crostini_uninstaller_view_browsertest.cc
+++ b/chrome/browser/ui/views/crostini/crostini_uninstaller_view_browsertest.cc
@@ -18,7 +18,7 @@
 #include "chrome/browser/ui/views/crostini/crostini_dialogue_browser_test_util.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "components/crx_file/id_util.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/test/browser_test.h"
diff --git a/chrome/browser/ui/views/crostini/crostini_update_component_view_browsertest.cc b/chrome/browser/ui/views/crostini/crostini_update_component_view_browsertest.cc
index 99507d92..5395d9a 100644
--- a/chrome/browser/ui/views/crostini/crostini_update_component_view_browsertest.cc
+++ b/chrome/browser/ui/views/crostini/crostini_update_component_view_browsertest.cc
@@ -18,8 +18,8 @@
 #include "chrome/browser/web_applications/system_web_apps/system_web_app_manager.h"
 #include "chrome/browser/web_applications/web_app_provider.h"
 #include "chrome/test/base/in_process_browser_test.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "components/crx_file/id_util.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/test/browser_test.h"
diff --git a/chrome/browser/ui/views/crostini/crostini_update_filesystem_view_browsertest.cc b/chrome/browser/ui/views/crostini/crostini_update_filesystem_view_browsertest.cc
index c11462b..03fc411 100644
--- a/chrome/browser/ui/views/crostini/crostini_update_filesystem_view_browsertest.cc
+++ b/chrome/browser/ui/views/crostini/crostini_update_filesystem_view_browsertest.cc
@@ -15,7 +15,7 @@
 #include "chrome/browser/ui/views/crostini/crostini_dialogue_browser_test_util.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "components/crx_file/id_util.h"
 #include "content/public/test/browser_test.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.cc b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.cc
index 347d8111..f7d6209 100644
--- a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.cc
+++ b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.cc
@@ -48,11 +48,6 @@
 #include "ui/aura/window_tree_host.h"
 #endif
 
-#if defined(OS_CHROMEOS)
-#include "ash/public/cpp/projector/projector_controller.h"
-#include "ash/public/cpp/projector/projector_session.h"
-#endif
-
 using content::DesktopMediaID;
 
 enum class DesktopMediaPickerDialogView::DialogSource : int {
@@ -184,56 +179,6 @@
   }
 }
 
-bool IsProjectorEnabled() {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-  if (!ash::ProjectorController::Get())
-    return false;
-
-  // TODO(https://crbug.com/1184881): If there is a session ongoing we should
-  // disable the checkbox.
-  return ash::ProjectorController::Get()->IsEligible();
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
-  return false;
-}
-
-void SetProjectorToolsVisible(bool is_visible) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-  ash::ProjectorController::Get()->SetProjectorToolsVisible(is_visible);
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
-}
-
-void ProjectorCheckboxPressed(views::Checkbox* presenter_checkbox) {
-  DCHECK(presenter_checkbox);
-  SetProjectorToolsVisible(presenter_checkbox->GetChecked());
-}
-
-void StartProjectorSession(const content::DesktopMediaID& accepted_id) {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-  if (accepted_id.type == content::DesktopMediaID::TYPE_NONE)
-    return;
-
-  ash::SourceType scope;
-
-  switch (accepted_id.type) {
-    case content::DesktopMediaID::TYPE_SCREEN:
-      scope = ash::SourceType::kFullscreen;
-      break;
-    case content::DesktopMediaID::TYPE_WINDOW:
-      scope = ash::SourceType::kWindow;
-      break;
-    case content::DesktopMediaID::TYPE_WEB_CONTENTS:
-      scope = ash::SourceType::kTab;
-      break;
-    case content::DesktopMediaID::TYPE_NONE:
-      scope = ash::SourceType::kUnset;
-      break;
-  }
-
-  ash::ProjectorController::Get()->StartProjectorSession(
-      scope, content::DesktopMediaID::GetNativeWindowById(accepted_id));
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
-}
-
 }  // namespace
 
 DesktopMediaPickerDialogView::DesktopMediaPickerDialogView(
@@ -246,38 +191,12 @@
                  l10n_util::GetStringUTF16(IDS_DESKTOP_MEDIA_PICKER_SHARE));
   const ChromeLayoutProvider* provider = ChromeLayoutProvider::Get();
 
-  std::unique_ptr<views::View> extra_views_container;
-  if (params.request_audio || IsProjectorEnabled()) {
-    extra_views_container = std::make_unique<views::View>();
-    // A simple horizontal layout manager.
-    extra_views_container->SetLayoutManager(
-        std::make_unique<views::BoxLayout>());
-
-    if (params.request_audio) {
-      std::unique_ptr<views::Checkbox> audio_share_checkbox =
-          std::make_unique<views::Checkbox>(
-              l10n_util::GetStringUTF16(IDS_DESKTOP_MEDIA_PICKER_AUDIO_SHARE));
-      audio_share_checkbox->SetChecked(params.approve_audio_by_default);
-      audio_share_checkbox_ =
-          extra_views_container->AddChildView(std::move(audio_share_checkbox));
-    }
-
-    if (IsProjectorEnabled()) {
-      std::unique_ptr<views::Checkbox> presenter_tools_checkbox =
-          std::make_unique<views::Checkbox>(
-              l10n_util::GetStringUTF16(IDS_DESKTOP_MEDIA_PRESENTER_TOOLS));
-
-      presenter_tools_checkbox_ = extra_views_container->AddChildView(
-          std::move(presenter_tools_checkbox));
-      presenter_tools_checked_subscription_ =
-          presenter_tools_checkbox_->AddCheckedChangedCallback(
-              base::BindRepeating(&ProjectorCheckboxPressed,
-                                  presenter_tools_checkbox_));
-      presenter_tools_checkbox_->SetChecked(true);
-    }
-
-    extra_views_container_ = SetExtraView(std::move(extra_views_container));
-    extra_views_container_->SetVisible(true);
+  if (params.request_audio) {
+    std::unique_ptr<views::Checkbox> audio_share_checkbox =
+        std::make_unique<views::Checkbox>(
+            l10n_util::GetStringUTF16(IDS_DESKTOP_MEDIA_PICKER_AUDIO_SHARE));
+    audio_share_checkbox->SetChecked(params.approve_audio_by_default);
+    audio_share_checkbox_ = SetExtraView(std::move(audio_share_checkbox));
   }
 
   SetLayoutManager(std::make_unique<views::BoxLayout>(
@@ -643,24 +562,12 @@
   if (parent_)
     parent_->NotifyDialogResult(source);
 
-  bool notify_projector_session_start =
-      presenter_tools_checkbox_ && presenter_tools_checkbox_->GetChecked() &&
-      IsProjectorEnabled();
-  if (notify_projector_session_start) {
-    StartProjectorSession(source);
-  }
-
   // Return true to close the window.
   return true;
 }
 
 bool DesktopMediaPickerDialogView::Cancel() {
   RecordUmaCancellation(dialog_source_);
-  bool hide_projector_tools =
-      presenter_tools_checkbox_ && presenter_tools_checkbox_->GetChecked();
-  // If the user cancels while the projector tools are visible, hide them.
-  if (hide_projector_tools)
-    SetProjectorToolsVisible(false);
   return views::DialogDelegateView::Cancel();
 }
 
diff --git a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h
index 2567707..21a7edd 100644
--- a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h
+++ b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h
@@ -5,7 +5,6 @@
 #ifndef CHROME_BROWSER_UI_VIEWS_DESKTOP_CAPTURE_DESKTOP_MEDIA_PICKER_VIEWS_H_
 #define CHROME_BROWSER_UI_VIEWS_DESKTOP_CAPTURE_DESKTOP_MEDIA_PICKER_VIEWS_H_
 
-#include "base/callback_list.h"
 #include "build/build_config.h"
 #include "chrome/browser/media/webrtc/desktop_media_picker.h"
 #include "chrome/browser/ui/views/desktop_capture/desktop_media_list_controller.h"
@@ -85,16 +84,8 @@
 
   views::Label* description_label_ = nullptr;
 
-  views::Checkbox* presenter_tools_checkbox_ = nullptr;
-
-  base::CallbackListSubscription presenter_tools_checked_subscription_;
-
   views::Checkbox* audio_share_checkbox_ = nullptr;
 
-  // Contains |presenter_tools_checkbox_| and |audio_share_checkbox_| if
-  // present.
-  views::View* extra_views_container_ = nullptr;
-
   views::TabbedPane* tabbed_pane_ = nullptr;
   std::vector<std::unique_ptr<DesktopMediaListController>> list_controllers_;
   std::vector<DesktopMediaList::Type> source_types_;
diff --git a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_test_api.cc b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_test_api.cc
index c6a37efab..9f7664ec 100644
--- a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_test_api.cc
+++ b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_test_api.cc
@@ -122,10 +122,6 @@
   return picker_->dialog_->audio_share_checkbox_;
 }
 
-views::Checkbox* DesktopMediaPickerViewsTestApi::GetPresenterToolsCheckbox() {
-  return picker_->dialog_->presenter_tools_checkbox_;
-}
-
 const views::View* DesktopMediaPickerViewsTestApi::GetSourceAtIndex(
     size_t index) const {
   views::View* list = picker_->dialog_->GetSelectedController()->view_;
diff --git a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_test_api.h b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_test_api.h
index e0abb87..1983125 100644
--- a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_test_api.h
+++ b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_test_api.h
@@ -36,7 +36,6 @@
   void PressKeyOnSourceAtIndex(size_t index, const ui::KeyEvent& event);
   void SelectTabForSourceType(DesktopMediaList::Type source_type);
   views::Checkbox* GetAudioShareCheckbox();
-  views::Checkbox* GetPresenterToolsCheckbox();
 
   bool HasSourceAtIndex(size_t index) const;
   void FocusSourceAtIndex(size_t index, bool select = true);
diff --git a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_unittest.cc b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_unittest.cc
index f2403444..8c834064 100644
--- a/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_unittest.cc
+++ b/chrome/browser/ui/views/desktop_capture/desktop_media_picker_views_unittest.cc
@@ -38,11 +38,6 @@
 #include "ui/views/widget/widget.h"
 #include "ui/views/window/dialog_delegate.h"
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-#include "ash/public/cpp/projector/projector_controller.h"
-#include "ash/public/cpp/projector/projector_session.h"
-#endif
-
 using content::DesktopMediaID;
 
 namespace views {
@@ -388,82 +383,6 @@
   EXPECT_EQ(kFakeId, WaitForPickerDone());
 }
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-
-class ProjectorControllerMock : public ash::ProjectorController {
- public:
-  ProjectorControllerMock() = default;
-  ~ProjectorControllerMock() = default;
-  MOCK_METHOD1(SetClient, void(ash::ProjectorClient*));
-  MOCK_METHOD1(OnSpeechRecognitionAvailable, void(bool));
-  MOCK_METHOD5(OnTranscription,
-               void(const std::u16string&,
-                    base::Optional<base::TimeDelta>,
-                    base::Optional<base::TimeDelta>,
-                    const base::Optional<std::vector<base::TimeDelta>>&,
-                    bool));
-  MOCK_METHOD1(SetProjectorToolsVisible, void(bool));
-  MOCK_METHOD2(StartProjectorSession,
-               void(ash::SourceType scope, aura::Window* window));
-  MOCK_CONST_METHOD0(IsEligible, bool());
-};
-
-TEST_F(DesktopMediaPickerViewsTest, ProjectorIneligible) {
-  ProjectorControllerMock mock;
-  ON_CALL(mock, IsEligible).WillByDefault(testing::Return(false));
-  EXPECT_EQ(test_api_.GetPresenterToolsCheckbox(), nullptr);
-}
-
-TEST_F(DesktopMediaPickerViewsTest, ProjectorEligible) {
-  ProjectorControllerMock mock;
-  ON_CALL(mock, IsEligible).WillByDefault(testing::Return(true));
-
-  EXPECT_CALL(mock, SetProjectorToolsVisible(true)).Times(1);
-  CreatePickerViews();
-
-  test_api_.SelectTabForSourceType(DesktopMediaList::Type::kScreen);
-  EXPECT_TRUE(test_api_.GetPresenterToolsCheckbox()->GetVisible());
-
-  test_api_.SelectTabForSourceType(DesktopMediaList::Type::kWindow);
-  EXPECT_TRUE(test_api_.GetPresenterToolsCheckbox()->GetVisible());
-
-  test_api_.SelectTabForSourceType(DesktopMediaList::Type::kWebContents);
-  EXPECT_TRUE(test_api_.GetPresenterToolsCheckbox()->GetVisible());
-
-  // Button is visible but unchecked.
-  test_api_.GetPresenterToolsCheckbox()->SetChecked(true);
-
-  // When the dialog is cancelled, we expect that ProjectorController to hide
-  // the toolbar.
-  EXPECT_CALL(mock, SetProjectorToolsVisible(false)).Times(1);
-
-  // Cancel and dismiss the Dialog
-  GetPickerDialogView()->Cancel();
-}
-
-TEST_F(DesktopMediaPickerViewsTest, ProjectorStartSession) {
-  constexpr DesktopMediaID kOriginId(DesktopMediaID::TYPE_WEB_CONTENTS, 222);
-
-  ProjectorControllerMock mock;
-  ON_CALL(mock, IsEligible).WillByDefault(testing::Return(true));
-  CreatePickerViews();
-
-  media_lists_[DesktopMediaList::Type::kWebContents]->AddSourceByFullMediaID(
-      kOriginId);
-
-  test_api_.SelectTabForSourceType(DesktopMediaList::Type::kWebContents);
-  test_api_.GetPresenterToolsCheckbox()->SetChecked(true);
-  test_api_.FocusSourceAtIndex(0);
-
-  EXPECT_CALL(mock, StartProjectorSession(ash::SourceType::kTab, testing::_))
-      .Times(1);
-
-  GetPickerDialogView()->AcceptDialog();
-  WaitForPickerDone();
-}
-
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
-
 // Creates a single pane DesktopMediaPickerViews that only has a tab list.
 class DesktopMediaPickerViewsSingleTabPaneTest
     : public DesktopMediaPickerViewsTest {
diff --git a/chrome/browser/ui/views/extensions/extension_action_test_helper_aura.cc b/chrome/browser/ui/views/extensions/extension_action_test_helper_aura.cc
index dd126af..93283988 100644
--- a/chrome/browser/ui/views/extensions/extension_action_test_helper_aura.cc
+++ b/chrome/browser/ui/views/extensions/extension_action_test_helper_aura.cc
@@ -15,7 +15,7 @@
 
 aura::Window* GetPopupAuraWindow(aura::Window* current) {
   DCHECK(current);
-  while (current && (current->type() != aura::client::WINDOW_TYPE_POPUP))
+  while (current && (current->GetType() != aura::client::WINDOW_TYPE_POPUP))
     current = current->parent();
   return current;
 }
diff --git a/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc b/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc
index c13dfc1bc..5a01e2e6 100644
--- a/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc
+++ b/chrome/browser/ui/views/find_bar_views_interactive_uitest.cc
@@ -307,9 +307,10 @@
 #define MAYBE_SelectionRestoreOnTabSwitch SelectionRestoreOnTabSwitch
 #endif
 IN_PROC_BROWSER_TEST_F(FindInPageTest, MAYBE_SelectionRestoreOnTabSwitch) {
+#if defined(OS_MAC)
   // Mac intentionally changes selection on focus.
-  if (views::PlatformStyle::kTextfieldScrollsToStartOnFocusChange)
-    return;
+  GTEST_SKIP() << "Mac intentionally has different behavior";
+#endif
   ASSERT_TRUE(embedded_test_server()->Start());
 
   // Make sure Chrome is in the foreground, otherwise sending input
@@ -412,9 +413,7 @@
   ui_test_utils::FindInPage(
       browser()->tab_strip_model()->GetActiveWebContents(), u"b", true, false,
       nullptr, nullptr);
-  // Mac intentionally changes selection on focus.
-  if (!views::PlatformStyle::kTextfieldScrollsToStartOnFocusChange)
-    EXPECT_EQ(u"b", GetFindBarSelectedText());
+  EXPECT_EQ(u"b", GetFindBarSelectedText());
 
   // Set focus away from the Find bar (to the Location bar).
   chrome::FocusLocationBar(browser());
@@ -424,8 +423,7 @@
   browser()->tab_strip_model()->ActivateTabAt(
       0, {TabStripModel::GestureType::kOther});
   EXPECT_TRUE(IsViewFocused(browser(), VIEW_ID_FIND_IN_PAGE_TEXT_FIELD));
-  if (!views::PlatformStyle::kTextfieldScrollsToStartOnFocusChange)
-    EXPECT_EQ(u"a", GetFindBarSelectedText());
+  EXPECT_EQ(u"a", GetFindBarSelectedText());
 
   // Select tab B. Location bar should get focus.
   browser()->tab_strip_model()->ActivateTabAt(
diff --git a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.cc b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.cc
index 8e72525..d2875e6 100644
--- a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.cc
+++ b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.cc
@@ -28,10 +28,10 @@
 // BrowserDesktopWindowTreeHostLacros,
 //     DesktopWindowTreeHostPlatform implementation:
 
-bool BrowserDesktopWindowTreeHostLacros::ShouldUseLayerForShapedWindow() const {
-  // Lacros doesn't need to use layer for shaped window since it is already
-  // done in views.
-  return false;
+SkPath BrowserDesktopWindowTreeHostLacros::GetWindowMaskForClipping() const {
+  // Lacros doesn't need to request clipping since it is already
+  // done in views, so returns empty window mask.
+  return SkPath();
 }
 
 void BrowserDesktopWindowTreeHostLacros::OnSurfaceFrameLockingChanged(
diff --git a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.h b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.h
index f9eb22a..e92aff6 100644
--- a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.h
+++ b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.h
@@ -27,7 +27,7 @@
 
  private:
   // views::DesktopWindowTreeHostPlatform:
-  bool ShouldUseLayerForShapedWindow() const override;
+  SkPath GetWindowMaskForClipping() const override;
   void OnSurfaceFrameLockingChanged(bool lock) override;
 
   views::DesktopNativeWidgetAura* desktop_native_widget_aura_ = nullptr;
diff --git a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
index da310c0..4a5c5b8 100644
--- a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
+++ b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
@@ -154,7 +154,7 @@
       [](IconLabelBubbleView* host) {
         std::unique_ptr<views::InkDrop> ink_drop =
             views::InkDrop::CreateInkDropForFloodFillRipple(
-                host->ink_drop(), /*highlight_on_hover=*/false,
+                host->ink_drop(), /*highlight_on_hover=*/true,
                 /*highlight_on_focus=*/!host->focus_ring());
         ink_drop->AddObserver(host);
         return ink_drop;
diff --git a/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view_browsertest.cc b/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view_browsertest.cc
index d15812a..e99b8c407 100644
--- a/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view_browsertest.cc
+++ b/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view_browsertest.cc
@@ -21,9 +21,9 @@
 #include "chrome/browser/ui/test/test_browser_dialog.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/grit/generated_resources.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/fake_vm_plugin_dispatcher_client.h"
 #include "chromeos/tpm/stub_install_attributes.h"
 #include "components/account_id/account_id.h"
diff --git a/chrome/browser/ui/views/sharing/remote_copy_browsertest.cc b/chrome/browser/ui/views/sharing/remote_copy_browsertest.cc
index 3ac8b47..1f3eb78 100644
--- a/chrome/browser/ui/views/sharing/remote_copy_browsertest.cc
+++ b/chrome/browser/ui/views/sharing/remote_copy_browsertest.cc
@@ -15,8 +15,8 @@
 #include "build/build_config.h"
 #include "chrome/browser/notifications/notification_display_service_tester.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/sharing/shared_clipboard/feature_flags.h"
 #include "chrome/browser/sharing/shared_clipboard/remote_copy_handle_message_result.h"
+#include "chrome/browser/sharing/shared_clipboard/remote_copy_message_handler.h"
 #include "chrome/browser/sharing/sharing_constants.h"
 #include "chrome/browser/sharing/sharing_fcm_handler.h"
 #include "chrome/browser/sharing/sharing_service.h"
@@ -49,7 +49,6 @@
 const char kStatusCodeHistogram[] = "Sharing.RemoteCopyLoadImageStatusCode";
 const char kLoadTimeHistogram[] = "Sharing.RemoteCopyLoadImageTime";
 const char kDecodeTimeHistogram[] = "Sharing.RemoteCopyDecodeImageTime";
-const char kResizeTimeHistogram[] = "Sharing.RemoteCopyResizeImageTime";
 
 class ClipboardObserver : public ui::ClipboardObserver {
  public:
@@ -67,10 +66,16 @@
 }  // namespace
 
 // Browser tests for the Remote Copy feature.
-class RemoteCopyBrowserTestBase : public InProcessBrowserTest {
+class RemoteCopyBrowserTest : public InProcessBrowserTest {
  public:
-  RemoteCopyBrowserTestBase() = default;
-  ~RemoteCopyBrowserTestBase() override = default;
+  RemoteCopyBrowserTest() {
+    server_ = std::make_unique<net::EmbeddedTestServer>(
+        net::EmbeddedTestServer::TYPE_HTTP);
+    server_->ServeFilesFromSourceDirectory(GetChromeTestDataDir());
+    EXPECT_TRUE(server_->Start());
+  }
+
+  ~RemoteCopyBrowserTest() override = default;
 
   void SetUpOnMainThread() override {
     ui::TestClipboard::CreateForCurrentThread();
@@ -78,6 +83,11 @@
         browser()->profile());
     sharing_service_ =
         SharingServiceFactory::GetForBrowserContext(browser()->profile());
+    auto* remote_copy_handler = static_cast<RemoteCopyMessageHandler*>(
+        sharing_service_->GetSharingHandlerForTesting(
+            chrome_browser_sharing::SharingMessage::kRemoteCopyMessage));
+    ASSERT_TRUE(remote_copy_handler);
+    remote_copy_handler->set_allowed_origin_for_testing(server_->base_url());
   }
 
   void TearDownOnMainThread() override {
@@ -150,51 +160,10 @@
   }
 
  protected:
-  base::test::ScopedFeatureList feature_list_;
   base::HistogramTester histograms_;
   std::unique_ptr<NotificationDisplayServiceTester> notification_tester_;
   SharingService* sharing_service_;
   std::unique_ptr<net::EmbeddedTestServer> server_;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(RemoteCopyBrowserTestBase);
-};
-
-class RemoteCopyDisabledBrowserTest : public RemoteCopyBrowserTestBase {
- public:
-  RemoteCopyDisabledBrowserTest() {
-    feature_list_.InitAndDisableFeature(kRemoteCopyReceiver);
-  }
-};
-
-IN_PROC_BROWSER_TEST_F(RemoteCopyDisabledBrowserTest, FeatureDisabled) {
-  // The clipboard is empty.
-  ASSERT_TRUE(GetAvailableClipboardTypes().empty());
-
-  // Send a message with text.
-  SendTextMessage(kDeviceName, kText);
-
-  // The clipboard is still empty because the feature is disabled and the
-  // handler is not installed.
-  ASSERT_TRUE(GetAvailableClipboardTypes().empty());
-  histograms_.ExpectTotalCount(kResultHistogram, 0);
-}
-
-class RemoteCopyBrowserTest : public RemoteCopyBrowserTestBase {
- public:
-  RemoteCopyBrowserTest() {
-    server_ = std::make_unique<net::EmbeddedTestServer>(
-        net::EmbeddedTestServer::TYPE_HTTP);
-    server_->ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-    EXPECT_TRUE(server_->Start());
-
-    url::Origin allowlist_origin = url::Origin::Create(server_->base_url());
-    feature_list_.InitWithFeaturesAndParameters(
-        {{kRemoteCopyReceiver,
-          {{kRemoteCopyAllowedOrigins.name, allowlist_origin.Serialize()}}},
-         {kRemoteCopyImageNotification, {}}},
-        {});
-  }
 };
 
 IN_PROC_BROWSER_TEST_F(RemoteCopyBrowserTest, Text) {
@@ -250,21 +219,12 @@
                 IDS_SHARING_REMOTE_COPY_NOTIFICATION_TITLE_IMAGE_CONTENT,
                 kDeviceName16),
             notification.title());
-  ASSERT_EQ(message_center::NOTIFICATION_TYPE_IMAGE, notification.type());
-#if defined(OS_MAC)
-  // We show the image in the notification icon on macOS.
-  ASSERT_EQ(640, notification.icon().Width());
-  ASSERT_EQ(480, notification.icon().Height());
-#else
-  ASSERT_EQ(640, notification.rich_notification_data().image.Width());
-  ASSERT_EQ(480, notification.rich_notification_data().image.Height());
-#endif  // defined(OS_MAC)
+  ASSERT_EQ(message_center::NOTIFICATION_TYPE_SIMPLE, notification.type());
   histograms_.ExpectUniqueSample(kStatusCodeHistogram, net::HTTP_OK, 1);
   histograms_.ExpectTotalCount(kLoadTimeHistogram, 1);
   histograms_.ExpectUniqueSample(kImageSizeBeforeDecodeHistogram, 810490, 1);
   histograms_.ExpectTotalCount(kDecodeTimeHistogram, 1);
   histograms_.ExpectUniqueSample(kImageSizeAfterDecodeHistogram, 19660800, 1);
-  histograms_.ExpectTotalCount(kResizeTimeHistogram, 1);
   histograms_.ExpectUniqueSample(
       kResultHistogram, RemoteCopyHandleMessageResult::kSuccessHandledImage, 1);
 }
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
index 8e62718..445214e 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -1945,7 +1945,7 @@
       // already topmost and it is safe to return with no stacking change.
       if (*it == browser_window)
         return;
-      if ((*it)->type() != aura::client::WINDOW_TYPE_POPUP) {
+      if ((*it)->GetType() != aura::client::WINDOW_TYPE_POPUP) {
         widget_window->StackAbove(*it);
         break;
       }
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view_unittest.cc b/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view_unittest.cc
index f39b2aa..6d7d62c 100644
--- a/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view_unittest.cc
+++ b/chrome/browser/ui/views/toolbar/chrome_labs_bubble_view_unittest.cc
@@ -70,7 +70,12 @@
 class ChromeLabsBubbleTest : public TestWithBrowserView {
  public:
   ChromeLabsBubbleTest()
-      : scoped_feature_entries_(
+      :
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+        user_manager_(new ash::FakeChromeUserManager()),
+        user_manager_enabler_(base::WrapUnique(user_manager_)),
+#endif
+        scoped_feature_entries_(
             {{kFirstTestFeatureId, "", "",
               flags_ui::FlagsState::GetCurrentPlatform(),
               FEATURE_VALUE_TYPE(kTestFeature1)},
@@ -91,6 +96,13 @@
   }
 
   void SetUp() override {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+    const AccountId account_id(
+        AccountId::FromUserEmailGaiaId(kFakeUserName, kFakeGaiaId));
+    user_manager_->AddUser(account_id);
+    user_manager_->LoginUser(account_id);
+#endif
+
     scoped_feature_list_.InitAndEnableFeature(features::kChromeLabs);
 
     // Set up test data on the model.
@@ -199,6 +211,11 @@
     return test_feature_info;
   }
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+  ash::FakeChromeUserManager* user_manager_;
+  user_manager::ScopedUserManager user_manager_enabler_;
+#endif
+
   about_flags::testing::ScopedFeatureEntries scoped_feature_entries_;
   base::test::ScopedFeatureList scoped_feature_list_;
 
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_button.cc b/chrome/browser/ui/views/toolbar/chrome_labs_button.cc
index 1dd537e..c15f0f0 100644
--- a/chrome/browser/ui/views/toolbar/chrome_labs_button.cc
+++ b/chrome/browser/ui/views/toolbar/chrome_labs_button.cc
@@ -17,9 +17,11 @@
 #include "ui/views/controls/button/button_controller.h"
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
+#include "ash/constants/ash_switches.h"
 #include "base/system/sys_info.h"
 #include "chrome/browser/ash/ownership/owner_settings_service_ash.h"
 #include "chrome/browser/ash/ownership/owner_settings_service_ash_factory.h"
+#include "chrome/browser/ash/profiles/profile_helper.h"
 #include "chrome/browser/ash/settings/owner_flags_storage.h"
 #endif
 
@@ -71,8 +73,15 @@
 }
 
 // static
-bool ChromeLabsButton::ShouldShowButton(
-    const ChromeLabsBubbleViewModel* model) {
+bool ChromeLabsButton::ShouldShowButton(const ChromeLabsBubbleViewModel* model,
+                                        Profile* profile) {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+          ash::switches::kSafeMode) ||
+      !ash::ProfileHelper::IsPrimaryProfile(profile)) {
+    return false;
+  }
+#endif
   const std::vector<LabInfo>& all_labs = model->GetLabInfo();
   for (const auto& lab : all_labs) {
     const flags_ui::FeatureEntry* entry =
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_button.h b/chrome/browser/ui/views/toolbar/chrome_labs_button.h
index 693beedf..f7e1d63f 100644
--- a/chrome/browser/ui/views/toolbar/chrome_labs_button.h
+++ b/chrome/browser/ui/views/toolbar/chrome_labs_button.h
@@ -10,6 +10,7 @@
 #include "ui/base/metadata/metadata_header_macros.h"
 
 class Browser;
+class Profile;
 
 class ChromeLabsButton : public ToolbarButton {
  public:
@@ -20,7 +21,8 @@
   ChromeLabsButton& operator=(const ChromeLabsButton&) = delete;
   ~ChromeLabsButton() override;
 
-  static bool ShouldShowButton(const ChromeLabsBubbleViewModel* model);
+  static bool ShouldShowButton(const ChromeLabsBubbleViewModel* model,
+                               Profile* profile);
 
  private:
   void ButtonPressed();
diff --git a/chrome/browser/ui/views/toolbar/chrome_labs_button_unittest.cc b/chrome/browser/ui/views/toolbar/chrome_labs_button_unittest.cc
index 14f8cd9..82d7853 100644
--- a/chrome/browser/ui/views/toolbar/chrome_labs_button_unittest.cc
+++ b/chrome/browser/ui/views/toolbar/chrome_labs_button_unittest.cc
@@ -17,7 +17,22 @@
 #include "ui/views/test/button_test_api.h"
 #include "ui/views/test/widget_test.h"
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+#include "ash/constants/ash_switches.h"
+#include "base/command_line.h"
+#include "base/memory/ptr_util.h"
+#include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
+#include "chrome/common/pref_names.h"
+#include "components/user_manager/scoped_user_manager.h"
+#endif
+
 namespace {
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+constexpr char kFakeUserName[] = "test@example.com";
+constexpr char kFakeGaiaId[] = "1234567890";
+#endif
+
 const char kFirstTestFeatureId[] = "feature-1";
 const base::Feature kTestFeature1{"FeatureName1",
                                   base::FEATURE_ENABLED_BY_DEFAULT};
@@ -29,10 +44,24 @@
 class ChromeLabsButtonTest : public TestWithBrowserView {
  public:
   ChromeLabsButtonTest()
-      : scoped_feature_entries_({{kFirstTestFeatureId, "", "",
+      :
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+        user_manager_(new ash::FakeChromeUserManager()),
+        user_manager_enabler_(base::WrapUnique(user_manager_)),
+#endif
+
+        scoped_feature_entries_({{kFirstTestFeatureId, "", "",
                                   flags_ui::FlagsState::GetCurrentPlatform(),
-                                  FEATURE_VALUE_TYPE(kTestFeature1)}}) {}
+                                  FEATURE_VALUE_TYPE(kTestFeature1)}}) {
+  }
   void SetUp() override {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+    const AccountId account_id(
+        AccountId::FromUserEmailGaiaId(kFakeUserName, kFakeGaiaId));
+    user_manager_->AddUser(account_id);
+    user_manager_->LoginUser(account_id);
+#endif
+
     scoped_feature_list_.InitAndEnableFeature(features::kChromeLabs);
 
     std::vector<LabInfo> test_feature_info = {
@@ -44,6 +73,12 @@
                                       true);
   }
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+ protected:
+  ash::FakeChromeUserManager* user_manager_;
+  user_manager::ScopedUserManager user_manager_enabler_;
+#endif
+
  private:
   about_flags::testing::ScopedFeatureEntries scoped_feature_entries_;
   base::test::ScopedFeatureList scoped_feature_list_;
@@ -82,6 +117,49 @@
   EXPECT_FALSE(browser_view()->toolbar()->chrome_labs_button()->GetVisible());
 }
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+
+class ChromeLabsButtonTestSafeMode : public ChromeLabsButtonTest {
+ public:
+  ChromeLabsButtonTestSafeMode() : ChromeLabsButtonTest() {}
+  void SetUp() override {
+    base::CommandLine::ForCurrentProcess()->AppendSwitch(
+        ash::switches::kSafeMode);
+    ChromeLabsButtonTest::SetUp();
+  }
+
+  void TearDown() override {
+    base::CommandLine::ForCurrentProcess()->RemoveSwitch(
+        ash::switches::kSafeMode);
+    ChromeLabsButtonTest::TearDown();
+  }
+};
+
+TEST_F(ChromeLabsButtonTestSafeMode, ShouldButtonShowTest) {
+  EXPECT_EQ(browser_view()->toolbar()->chrome_labs_button(), nullptr);
+}
+
+class ChromeLabsButtonTestSecondaryUser : public ChromeLabsButtonTest {
+ public:
+  ChromeLabsButtonTestSecondaryUser() : ChromeLabsButtonTest() {}
+
+  void SetUp() override {
+    // Set the email of |secondary_user| to
+    // |TestingProfile::kDefaultProfileUserName| so
+    // |ProfileHelperImpl::GetUserByProfile| returns this user.
+    AccountId secondary_user =
+        AccountId::FromUserEmail(TestingProfile::kDefaultProfileUserName);
+    user_manager_->AddUser(secondary_user);
+    ChromeLabsButtonTest::SetUp();
+  }
+};
+
+TEST_F(ChromeLabsButtonTestSecondaryUser, ShouldButtonShowTest) {
+  EXPECT_EQ(browser_view()->toolbar()->chrome_labs_button(), nullptr);
+}
+
+#endif
+
 class ChromeLabsButtonNoExperimentsAvailableTest : public TestWithBrowserView {
  public:
   ChromeLabsButtonNoExperimentsAvailableTest()
diff --git a/chrome/browser/ui/views/toolbar/read_later_toolbar_button.cc b/chrome/browser/ui/views/toolbar/read_later_toolbar_button.cc
index a06f41c..10aa70f6 100644
--- a/chrome/browser/ui/views/toolbar/read_later_toolbar_button.cc
+++ b/chrome/browser/ui/views/toolbar/read_later_toolbar_button.cc
@@ -26,13 +26,23 @@
             IDS_READ_LATER_TITLE,
             /*enable_extension_apis=*/true,
             /*webui_resizes_host=*/false)) {
+    SetVisible(false);
     contents_wrapper_->SetHost(weak_factory_.GetWeakPtr());
     contents_wrapper_->ReloadWebContents();
     SetWebContents(contents_wrapper_->web_contents());
   }
 
+  void ViewHierarchyChanged(
+      const views::ViewHierarchyChangedDetails& details) override {
+    WebView::ViewHierarchyChanged(details);
+    // Ensure the WebContents is in a visible state after being added to the
+    // side panel so the correct lifecycle hooks are triggered.
+    if (details.is_add && details.child == this)
+      contents_wrapper_->web_contents()->WasShown();
+  }
+
   // BubbleContentsWrapper::Host:
-  void ShowUI() override {}
+  void ShowUI() override { SetVisible(true); }
   void CloseUI() override { close_cb_.Run(); }
 
  private:
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc
index a8cf2c42..5b64231 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -296,7 +296,8 @@
 
   if (base::FeatureList::IsEnabled(features::kChromeLabs)) {
     chrome_labs_model_ = std::make_unique<ChromeLabsBubbleViewModel>();
-    if (ChromeLabsButton::ShouldShowButton(chrome_labs_model_.get())) {
+    if (ChromeLabsButton::ShouldShowButton(chrome_labs_model_.get(),
+                                           browser_->profile())) {
       chrome_labs_button_ = AddChildView(std::make_unique<ChromeLabsButton>(
           browser_, chrome_labs_model_.get()));
 
diff --git a/chrome/browser/ui/web_applications/app_browser_controller.cc b/chrome/browser/ui/web_applications/app_browser_controller.cc
index 3ae708a2..a939ba2 100644
--- a/chrome/browser/ui/web_applications/app_browser_controller.cc
+++ b/chrome/browser/ui/web_applications/app_browser_controller.cc
@@ -449,8 +449,13 @@
       web_contents->GetController().GetVisibleEntry();
   std::u16string raw_title = entry ? entry->GetTitle() : std::u16string();
 
-  if (!base::FeatureList::IsEnabled(features::kPrefixWebAppWindowsWithAppName))
+  // The AppBrowserController is still used for focus mode windows, which do not
+  // have an `app_id_`. Exit early in that case.
+  if (!base::FeatureList::IsEnabled(
+          features::kPrefixWebAppWindowsWithAppName) ||
+      !HasAppId()) {
     return raw_title;
+  }
 
   std::u16string app_name =
       base::UTF8ToUTF16(WebAppProvider::Get(browser()->profile())
diff --git a/chrome/browser/ui/web_applications/web_app_browsertest.cc b/chrome/browser/ui/web_applications/web_app_browsertest.cc
index 4bd0581..28d2a7e4 100644
--- a/chrome/browser/ui/web_applications/web_app_browsertest.cc
+++ b/chrome/browser/ui/web_applications/web_app_browsertest.cc
@@ -4,6 +4,7 @@
 
 #include <string>
 
+#include "base/feature_list.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
@@ -67,6 +68,7 @@
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/test_utils.h"
 #include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/skia/include/core/SkColor.h"
 #include "ui/base/clipboard/clipboard.h"
 #include "ui/base/clipboard/clipboard_buffer.h"
@@ -1002,24 +1004,66 @@
       "navigator.geolocation.getCurrentPosition(function(){});"));
 }
 
+class WebAppBrowserTest_PrefixInTitle
+    : public WebAppBrowserTest,
+      public testing::WithParamInterface<bool> {
+ public:
+  WebAppBrowserTest_PrefixInTitle() {
+    // Focus mode uses AppBrowserController without an AppId, which we must
+    // handle in `GetTitle()`, so we have to test with this feature.
+    if (GetParam()) {
+      scoped_feature_list_.InitWithFeatures(
+          {features::kFocusMode, features::kPrefixWebAppWindowsWithAppName},
+          {});
+    } else {
+      scoped_feature_list_.InitWithFeatures(
+          {features::kFocusMode}, {features::kPrefixWebAppWindowsWithAppName});
+    }
+  }
+
+  bool ExpectPrefixInTitle() { return GetParam(); }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
 // Ensure that web app windows with blank titles don't display the URL as a
 // default window title.
-IN_PROC_BROWSER_TEST_F(WebAppBrowserTest, EmptyTitlesDoNotDisplayUrl) {
+IN_PROC_BROWSER_TEST_P(WebAppBrowserTest_PrefixInTitle,
+                       WebAppWindowTitleForEmptyAndSimpleWebContentTitles) {
+  // Ensure web app windows show the expected title when the contents have an
+  // empty or simple title.
   const GURL app_url = https_server()->GetURL("app.site.com", "/empty.html");
-  const AppId app_id = InstallPWA(app_url);
+  const std::u16string app_title = u"A Web App";
+  auto web_app_info = std::make_unique<WebApplicationInfo>();
+  web_app_info->start_url = app_url;
+  web_app_info->scope = app_url.GetWithoutFilename();
+  web_app_info->title = app_title;
+  const AppId app_id = InstallWebApp(std::move(web_app_info));
   Browser* const app_browser = LaunchWebAppBrowser(app_id);
   content::WebContents* const web_contents =
       app_browser->tab_strip_model()->GetActiveWebContents();
   EXPECT_TRUE(content::WaitForLoadStop(web_contents));
-  EXPECT_EQ(std::u16string(), app_browser->GetWindowTitleForCurrentTab(false));
+  if (ExpectPrefixInTitle()) {
+    EXPECT_EQ(app_title, app_browser->GetWindowTitleForCurrentTab(false));
+  } else {
+    EXPECT_EQ(std::u16string(),
+              app_browser->GetWindowTitleForCurrentTab(false));
+  }
   NavigateToURLAndWait(app_browser,
                        https_server()->GetURL("app.site.com", "/simple.html"));
-  EXPECT_EQ(u"OK", app_browser->GetWindowTitleForCurrentTab(false));
+  if (ExpectPrefixInTitle()) {
+    EXPECT_EQ(u"A Web App - OK",
+              app_browser->GetWindowTitleForCurrentTab(false));
+  } else {
+    EXPECT_EQ(u"OK", app_browser->GetWindowTitleForCurrentTab(false));
+  }
 }
 
 // Ensure that web app windows display the app title instead of the page
 // title when off scope.
-IN_PROC_BROWSER_TEST_F(WebAppBrowserTest, OffScopeUrlsDisplayAppTitle) {
+IN_PROC_BROWSER_TEST_P(WebAppBrowserTest_PrefixInTitle,
+                       OffScopeUrlsDisplayAppTitle) {
   const GURL app_url = GetSecureAppURL();
   const std::u16string app_title = u"A Web App";
 
@@ -1035,8 +1079,12 @@
   EXPECT_TRUE(content::WaitForLoadStop(web_contents));
 
   // When we are within scope, show the page title.
-  EXPECT_EQ(u"Google", app_browser->GetWindowTitleForCurrentTab(false));
-
+  if (ExpectPrefixInTitle()) {
+    EXPECT_EQ(u"A Web App - Google",
+              app_browser->GetWindowTitleForCurrentTab(false));
+  } else {
+    EXPECT_EQ(u"Google", app_browser->GetWindowTitleForCurrentTab(false));
+  }
   NavigateToURLAndWait(app_browser,
                        https_server()->GetURL("app.site.com", "/simple.html"));
 
@@ -1044,6 +1092,34 @@
   EXPECT_EQ(app_title, app_browser->GetWindowTitleForCurrentTab(false));
 }
 
+IN_PROC_BROWSER_TEST_P(WebAppBrowserTest_PrefixInTitle,
+                       GetTitleWorksWithNoAppId) {
+  // Focus mode uses web app window codepaths without installing a web app,
+  // which means there is no available app id.
+  const GURL url("http://aaa.com/empty.html");
+  ui_test_utils::NavigateToURL(browser(), url);
+
+  Browser* app_browser = web_app::ReparentWebContentsForFocusMode(
+      browser()->tab_strip_model()->GetWebContentsAt(0));
+  EXPECT_TRUE(app_browser->is_type_app());
+  EXPECT_NE(app_browser, browser());
+
+  content::WebContents* main_browser_web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  ASSERT_TRUE(main_browser_web_contents);
+  EXPECT_NE(url, main_browser_web_contents->GetLastCommittedURL());
+
+  GURL app_browser_url = app_browser->tab_strip_model()
+                             ->GetActiveWebContents()
+                             ->GetLastCommittedURL();
+  EXPECT_EQ(url, app_browser_url);
+  EXPECT_TRUE(app_browser->is_focus_mode());
+}
+
+INSTANTIATE_TEST_SUITE_P(WebAppBrowserTestTitlePrefix,
+                         WebAppBrowserTest_PrefixInTitle,
+                         ::testing::Values(true, false));
+
 // Ensure that web app windows display the app title instead of the page
 // title when using http.
 IN_PROC_BROWSER_TEST_F(WebAppBrowserTest, InScopeHttpUrlsDisplayAppTitle) {
@@ -1067,55 +1143,6 @@
   EXPECT_EQ(app_title, app_browser->GetWindowTitleForCurrentTab(false));
 }
 
-class WebAppBrowserTest_PrefixInTitle : public WebAppBrowserTest {
- public:
-  WebAppBrowserTest_PrefixInTitle() {
-    scoped_feature_list_.InitAndEnableFeature(
-        features::kPrefixWebAppWindowsWithAppName);
-  }
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
-};
-
-// Ensure that web app windows display the app title as a prefix.
-IN_PROC_BROWSER_TEST_F(WebAppBrowserTest_PrefixInTitle, PrefixExistsInTitle) {
-  const GURL app_url = GetSecureAppURL();
-  const std::u16string app_title = u"A Web App";
-
-  auto web_app_info = std::make_unique<WebApplicationInfo>();
-  web_app_info->start_url = app_url;
-  web_app_info->scope = app_url.GetWithoutFilename();
-  web_app_info->title = app_title;
-  const AppId app_id = InstallWebApp(std::move(web_app_info));
-
-  Browser* const app_browser = LaunchWebAppBrowser(app_id);
-  content::WebContents* const web_contents =
-      app_browser->tab_strip_model()->GetActiveWebContents();
-  EXPECT_TRUE(content::WaitForLoadStop(web_contents));
-
-  // The page title should be the combination of app name and title.
-  EXPECT_EQ(u"A Web App - Google",
-            app_browser->GetWindowTitleForCurrentTab(false));
-}
-
-// Ensure that web app windows with blank titles only display the app name.
-IN_PROC_BROWSER_TEST_F(WebAppBrowserTest_PrefixInTitle,
-                       EmptyTitlesDisplayAppName) {
-  const GURL app_url = https_server()->GetURL("app.site.com", "/empty.html");
-  const std::u16string app_title = u"A Web App";
-  auto web_app_info = std::make_unique<WebApplicationInfo>();
-  web_app_info->start_url = app_url;
-  web_app_info->scope = app_url.GetWithoutFilename();
-  web_app_info->title = app_title;
-  const AppId app_id = InstallWebApp(std::move(web_app_info));
-  Browser* const app_browser = LaunchWebAppBrowser(app_id);
-  content::WebContents* const web_contents =
-      app_browser->tab_strip_model()->GetActiveWebContents();
-  EXPECT_TRUE(content::WaitForLoadStop(web_contents));
-  EXPECT_EQ(app_title, app_browser->GetWindowTitleForCurrentTab(false));
-}
-
 class WebAppBrowserTest_HideOrigin : public WebAppBrowserTest {
  public:
   WebAppBrowserTest_HideOrigin() {
diff --git a/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc b/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc
index 528ed76..541ee04 100644
--- a/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/chromeos/cellular_setup/cellular_setup_localized_strings_provider.cc
@@ -51,6 +51,8 @@
     {"pSimfinalPageMessage", IDS_CELLULAR_SETUP_PSIM_FINAL_PAGE_MESSAGE},
     {"finalPageErrorTitle", IDS_CELLULAR_SETUP_FINAL_PAGE_ERROR_TITLE},
     {"finalPageErrorMessage", IDS_CELLULAR_SETUP_FINAL_PAGE_ERROR_MESSAGE},
+    {"eSimFinalPageSuccessHeader",
+     IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_SUCCESS_HEADER},
     {"eSimFinalPageMessage", IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_MESSAGE},
     {"eSimFinalPageErrorMessage",
      IDS_CELLULAR_SETUP_ESIM_FINAL_PAGE_ERROR_MESSAGE},
diff --git a/chrome/browser/ui/webui/chromeos/login/l10n_util.cc b/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
index 898e39e..51d7235 100644
--- a/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
+++ b/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
@@ -478,22 +478,19 @@
     const std::vector<std::string>& most_relevant_language_codes,
     const base::ListValue& available_locales,
     const std::string& fallback_locale) {
-  for (std::vector<std::string>::const_iterator most_relevant_it =
-          most_relevant_language_codes.begin();
-       most_relevant_it != most_relevant_language_codes.end();
-       ++most_relevant_it) {
-    for (base::ListValue::const_iterator available_it =
-             available_locales.begin();
-         available_it != available_locales.end(); ++available_it) {
-      const base::DictionaryValue* dict;
-      std::string available_locale;
-      if (!available_it->GetAsDictionary(&dict) ||
-          !dict->GetString("value", &available_locale)) {
+  for (const auto& most_relevant : most_relevant_language_codes) {
+    for (const auto& entry : available_locales.GetList()) {
+      const std::string* available_locale = nullptr;
+      if (entry.is_dict())
+        available_locale = entry.FindStringKey("value");
+
+      if (!available_locale) {
         NOTREACHED();
         continue;
       }
-      if (available_locale == *most_relevant_it)
-        return *most_relevant_it;
+
+      if (*available_locale == most_relevant)
+        return most_relevant;
     }
   }
 
diff --git a/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.cc b/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.cc
index 6d11883..bb7d013 100644
--- a/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/saml_challenge_key_handler.cc
@@ -49,7 +49,7 @@
                  << ". Check may be slow.";
   }
 
-  for (const base::Value& cur_pattern : *patterns) {
+  for (const base::Value& cur_pattern : patterns->GetList()) {
     if (ContentSettingsPattern::FromString(cur_pattern.GetString())
             .Matches(url)) {
       return true;
diff --git a/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.cc b/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.cc
index 43c2ad7..7ccee0b9 100644
--- a/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.cc
@@ -9,7 +9,7 @@
 
 #include "base/bind.h"
 #include "base/values.h"
-#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
 #include "chrome/browser/chromeos/smb_client/smb_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 
diff --git a/chrome/browser/ui/webui/chromeos/vm/vm_ui.cc b/chrome/browser/ui/webui/chromeos/vm/vm_ui.cc
index 8a6325d..3e954ca 100644
--- a/chrome/browser/ui/webui/chromeos/vm/vm_ui.cc
+++ b/chrome/browser/ui/webui/chromeos/vm/vm_ui.cc
@@ -13,9 +13,12 @@
 #include "chrome/browser/ui/webui/webui_util.h"
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/grit/browser_resources.h"
+#include "chrome/grit/generated_resources.h"
+#include "components/strings/grit/components_strings.h"
 #include "content/public/browser/url_data_source.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "mojo/public/cpp/bindings/receiver.h"
+#include "ui/base/webui/web_ui_util.h"
 
 // TODO(b/173653141) We need to port this to lacros eventually.
 
@@ -40,17 +43,20 @@
 };
 
 void AddStringResources(content::WebUIDataSource* source) {
-  source->AddString("contentsPageTitle", "VM debugging page");
-  source->AddString("pluginVmTitle", "Parallels Desktop status");
-  source->AddString("passLabel", "Pass");
-  source->AddString("failLabel", "Fail");
-  source->AddString("notApplicableLabel", "N/A");
-  source->AddString("notEnabledLabel", "Not Enabled");
-  source->AddString("learnMoreLabel", "Learn more");
-
-  source->AddString("requirementLabel", "Requirement");
-  source->AddString("statusLabel", "Status");
-  source->AddString("explanationLabel", "Explanation");
+  static constexpr webui::LocalizedString kStrings[] = {
+      {"contentsPageTitle", IDS_VM_STATUS_INDEX_PAGE_TITLE},
+      {"passLabel", IDS_VM_STATUS_PAGE_PASS_LABEL},
+      {"failLabel", IDS_VM_STATUS_PAGE_FAIL_LABEL},
+      {"notApplicableLabel", IDS_VM_STATUS_PAGE_NOT_APPLICABLE_LABEL},
+      {"notEnabledMessage", IDS_VM_STATUS_PAGE_NOT_ENABLED_MESSAGE},
+      {"learnMoreLabel", IDS_LEARN_MORE},
+      {"requirementLabel", IDS_VM_STATUS_PAGE_REQUIREMENT_LABEL},
+      {"statusLabel", IDS_VM_STATUS_PAGE_STATUS_LABEL},
+      {"explanationLabel", IDS_VM_STATUS_PAGE_EXPLANATION_LABEL},
+      {"pageTitle", IDS_VM_STATUS_PAGE_TITLE},
+      {"pluginVmAppName", IDS_PLUGIN_VM_APP_NAME},
+  };
+  source->AddLocalizedStrings(kStrings);
 }
 
 }  // namespace
diff --git a/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc b/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc
index 4a9e498..17fcb398 100644
--- a/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc
+++ b/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc
@@ -46,7 +46,7 @@
       {"audioPoor", IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_POOR},
       {"audioQuality", IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_QUALITY},
       {"audioUnintelligible", IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_UNINTELLIGIBLE},
-      {"cancelButton", IDS_CANCEL},
+      {"cancel", IDS_CANCEL},
       {"contentQuestion", IDS_MEDIA_ROUTER_FEEDBACK_CONTENT_QUESTION},
       {"didNotTry", IDS_MEDIA_ROUTER_FEEDBACK_DID_NOT_TRY},
       {"discardConfirmation", IDS_MEDIA_ROUTER_FEEDBACK_DISCARD_CONFIRMATION},
diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browser/ui/webui/policy/policy_ui_handler.cc
index 05fb408..fafa082 100644
--- a/chrome/browser/ui/webui/policy/policy_ui_handler.cc
+++ b/chrome/browser/ui/webui/policy/policy_ui_handler.cc
@@ -49,6 +49,8 @@
 #include "components/policy/core/browser/cloud/message_util.h"
 #include "components/policy/core/browser/configuration_policy_handler_list.h"
 #include "components/policy/core/browser/policy_conversions.h"
+#include "components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.h"
+#include "components/policy/core/browser/webui/policy_status_provider.h"
 #include "components/policy/core/common/cloud/cloud_policy_client.h"
 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
 #include "components/policy/core/common/cloud/cloud_policy_core.h"
@@ -129,101 +131,6 @@
 
 namespace {
 
-// Formats the association state indicated by |data|. If |data| is NULL, the
-// state is considered to be UNMANAGED.
-std::u16string FormatAssociationState(const em::PolicyData* data) {
-  if (data) {
-    switch (data->state()) {
-      case em::PolicyData::ACTIVE:
-        return l10n_util::GetStringUTF16(IDS_POLICY_ASSOCIATION_STATE_ACTIVE);
-      case em::PolicyData::UNMANAGED:
-        return l10n_util::GetStringUTF16(
-            IDS_POLICY_ASSOCIATION_STATE_UNMANAGED);
-      case em::PolicyData::DEPROVISIONED:
-        return l10n_util::GetStringUTF16(
-            IDS_POLICY_ASSOCIATION_STATE_DEPROVISIONED);
-    }
-    NOTREACHED() << "Unknown state " << data->state();
-  }
-
-  // Default to UNMANAGED for the case of missing policy or bad state enum.
-  return l10n_util::GetStringUTF16(IDS_POLICY_ASSOCIATION_STATE_UNMANAGED);
-}
-
-// CloudPolicyStore errors take precedence to show in the status message.
-// Other errors (such as transient policy fetching problems) get displayed
-// only if CloudPolicyStore is in STATUS_OK.
-std::u16string GetPolicyStatusFromStore(
-    const policy::CloudPolicyStore* store,
-    const policy::CloudPolicyClient* client) {
-  std::u16string status =
-      policy::FormatStoreStatus(store->status(), store->validation_status());
-  if (store->status() == policy::CloudPolicyStore::STATUS_OK) {
-    if (client && client->status() != policy::DM_STATUS_SUCCESS)
-      status = policy::FormatDeviceManagementStatus(client->status());
-    else if (!store->is_managed())
-      status = FormatAssociationState(store->policy());
-  }
-  return status;
-}
-
-std::u16string GetTimeSinceLastRefreshString(base::Time last_refresh_time) {
-  if (last_refresh_time.is_null())
-    return l10n_util::GetStringUTF16(IDS_POLICY_NEVER_FETCHED);
-  base::Time now = base::Time::NowFromSystemTime();
-  base::TimeDelta elapsed_time;
-  if (now > last_refresh_time)
-    elapsed_time = now - last_refresh_time;
-  return ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_ELAPSED,
-                                ui::TimeFormat::LENGTH_SHORT, elapsed_time);
-}
-
-void GetStatusFromCore(const policy::CloudPolicyCore* core,
-                       base::DictionaryValue* dict) {
-  const policy::CloudPolicyStore* store = core->store();
-  const policy::CloudPolicyClient* client = core->client();
-  const policy::CloudPolicyRefreshScheduler* refresh_scheduler =
-      core->refresh_scheduler();
-
-  const std::u16string status = GetPolicyStatusFromStore(store, client);
-
-  const em::PolicyData* policy = store->policy();
-  std::string client_id = policy ? policy->device_id() : std::string();
-  std::string username = policy ? policy->username() : std::string();
-
-  if (policy && policy->has_annotated_asset_id())
-    dict->SetString("assetId", policy->annotated_asset_id());
-  if (policy && policy->has_annotated_location())
-    dict->SetString("location", policy->annotated_location());
-  if (policy && policy->has_directory_api_id())
-    dict->SetString("directoryApiId", policy->directory_api_id());
-  if (policy && policy->has_gaia_id())
-    dict->SetString("gaiaId", policy->gaia_id());
-
-  base::TimeDelta refresh_interval = base::TimeDelta::FromMilliseconds(
-      refresh_scheduler
-          ? refresh_scheduler->GetActualRefreshDelay()
-          : policy::CloudPolicyRefreshScheduler::kDefaultRefreshDelayMs);
-  base::Time last_refresh_time =
-      refresh_scheduler ? refresh_scheduler->last_refresh() : base::Time();
-
-  bool no_error = store->status() == policy::CloudPolicyStore::STATUS_OK &&
-                  client && client->status() == policy::DM_STATUS_SUCCESS;
-  dict->SetBoolean("error", !no_error);
-  dict->SetBoolean(
-      "policiesPushAvailable",
-      refresh_scheduler ? refresh_scheduler->invalidations_available() : false);
-  dict->SetString("status", status);
-  dict->SetString("clientId", client_id);
-  dict->SetString("username", username);
-  dict->SetString(
-      "refreshInterval",
-      ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_DURATION,
-                             ui::TimeFormat::LENGTH_SHORT, refresh_interval));
-  dict->SetString("timeSinceLastRefresh",
-                  GetTimeSinceLastRefreshString(last_refresh_time));
-}
-
 // Adds a new entry to |dict| with the affiliation status of the user associated
 // with |profile|. This method shouldn't be called for device scope status.
 void GetUserAffiliationStatus(base::DictionaryValue* dict, Profile* profile) {
@@ -277,34 +184,12 @@
 
 }  // namespace
 
-// An interface for querying the status of a policy provider.  It surfaces
-// things like last fetch time or status of the backing store, but not the
-// actual policies themselves.
-class PolicyStatusProvider {
- public:
-  PolicyStatusProvider();
-  virtual ~PolicyStatusProvider();
-
-  // Sets a callback to invoke upon status changes.
-  void SetStatusChangeCallback(const base::RepeatingClosure& callback);
-
-  virtual void GetStatus(base::DictionaryValue* dict);
-
- protected:
-  void NotifyStatusChange();
-
- private:
-  base::RepeatingClosure callback_;
-
-  DISALLOW_COPY_AND_ASSIGN(PolicyStatusProvider);
-};
-
 // Status provider implementation that pulls cloud policy status from a
 // CloudPolicyCore instance provided at construction time. Also listens for
 // changes on that CloudPolicyCore and reports them through the status change
 // callback.
 class CloudPolicyCoreStatusProvider
-    : public PolicyStatusProvider,
+    : public policy::PolicyStatusProvider,
       public policy::CloudPolicyStore::Observer {
  public:
   explicit CloudPolicyCoreStatusProvider(policy::CloudPolicyCore* core);
@@ -356,30 +241,6 @@
 };
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
-#if !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
-class MachineLevelUserCloudPolicyStatusProvider
-    : public PolicyStatusProvider,
-      public policy::CloudPolicyStore::Observer {
- public:
-  explicit MachineLevelUserCloudPolicyStatusProvider(
-      policy::CloudPolicyCore* core,
-      PrefService* pref_service);
-  ~MachineLevelUserCloudPolicyStatusProvider() override;
-
-  void GetStatus(base::DictionaryValue* dict) override;
-
-  // policy::CloudPolicyStore::Observer implementation.
-  void OnStoreLoaded(policy::CloudPolicyStore* store) override;
-  void OnStoreError(policy::CloudPolicyStore* store) override;
-
- private:
-  policy::CloudPolicyCore* core_;
-  PrefService* pref_service_;
-
-  DISALLOW_COPY_AND_ASSIGN(MachineLevelUserCloudPolicyStatusProvider);
-};
-#endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
-
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 // A cloud policy status provider for device policy.
 class DeviceCloudPolicyStatusProviderChromeOS
@@ -405,7 +266,7 @@
 // may go away any time behind the scenes, at which point the status message
 // text will indicate CloudPolicyStore::STATUS_BAD_STATE.
 class DeviceLocalAccountPolicyStatusProvider
-    : public PolicyStatusProvider,
+    : public policy::PolicyStatusProvider,
       public policy::DeviceLocalAccountPolicyService::Observer {
  public:
   DeviceLocalAccountPolicyStatusProvider(
@@ -429,7 +290,7 @@
 
 // Provides status for Active Directory user policy.
 class UserActiveDirectoryPolicyStatusProvider
-    : public PolicyStatusProvider,
+    : public policy::PolicyStatusProvider,
       public policy::CloudPolicyStore::Observer {
  public:
   explicit UserActiveDirectoryPolicyStatusProvider(
@@ -472,7 +333,7 @@
 #endif
 
 #if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
-class UpdaterStatusProvider : public PolicyStatusProvider {
+class UpdaterStatusProvider : public policy::PolicyStatusProvider {
  public:
   UpdaterStatusProvider();
   ~UpdaterStatusProvider() override = default;
@@ -489,22 +350,6 @@
 };
 #endif
 
-PolicyStatusProvider::PolicyStatusProvider() {}
-
-PolicyStatusProvider::~PolicyStatusProvider() {}
-
-void PolicyStatusProvider::SetStatusChangeCallback(
-    const base::RepeatingClosure& callback) {
-  callback_ = callback;
-}
-
-void PolicyStatusProvider::GetStatus(base::DictionaryValue* dict) {}
-
-void PolicyStatusProvider::NotifyStatusChange() {
-  if (!callback_.is_null())
-    callback_.Run();
-}
-
 CloudPolicyCoreStatusProvider::CloudPolicyCoreStatusProvider(
     policy::CloudPolicyCore* core)
     : core_(core) {
@@ -538,7 +383,7 @@
 void UserCloudPolicyStatusProvider::GetStatus(base::DictionaryValue* dict) {
   if (!core_->store()->is_managed())
     return;
-  GetStatusFromCore(core_, dict);
+  policy::PolicyStatusProvider::GetStatusFromCore(core_, dict);
   ExtractDomainFromUsername(dict);
   GetUserAffiliationStatus(dict, profile_);
 }
@@ -564,89 +409,6 @@
 }
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
-#if !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
-
-MachineLevelUserCloudPolicyStatusProvider::
-    MachineLevelUserCloudPolicyStatusProvider(policy::CloudPolicyCore* core,
-                                              PrefService* pref_service)
-    : core_(core), pref_service_(pref_service) {
-  if (core_->store())
-    core_->store()->AddObserver(this);
-}
-
-MachineLevelUserCloudPolicyStatusProvider::
-    ~MachineLevelUserCloudPolicyStatusProvider() {
-  if (core_->store())
-    core_->store()->RemoveObserver(this);
-}
-
-void MachineLevelUserCloudPolicyStatusProvider::GetStatus(
-    base::DictionaryValue* dict) {
-  policy::CloudPolicyStore* store = core_->store();
-  policy::CloudPolicyClient* client = core_->client();
-  policy::CloudPolicyRefreshScheduler* refresh_scheduler =
-      core_->refresh_scheduler();
-
-  policy::BrowserDMTokenStorage* dmTokenStorage =
-      policy::BrowserDMTokenStorage::Get();
-
-  dict->SetString(
-      "refreshInterval",
-      ui::TimeFormat::Simple(
-          ui::TimeFormat::FORMAT_DURATION, ui::TimeFormat::LENGTH_SHORT,
-          base::TimeDelta::FromMilliseconds(
-              refresh_scheduler ? refresh_scheduler->GetActualRefreshDelay()
-                                : policy::CloudPolicyRefreshScheduler::
-                                      kDefaultRefreshDelayMs)));
-  dict->SetBoolean(
-      "policiesPushAvailable",
-      refresh_scheduler ? refresh_scheduler->invalidations_available() : false);
-
-  if (dmTokenStorage) {
-    dict->SetString("enrollmentToken",
-                    dmTokenStorage->RetrieveEnrollmentToken());
-
-    dict->SetString("deviceId", dmTokenStorage->RetrieveClientId());
-  }
-  if (store) {
-    std::u16string status = GetPolicyStatusFromStore(store, client);
-
-    dict->SetString("status", status);
-    const em::PolicyData* policy = store->policy();
-    if (policy) {
-      dict->SetString("timeSinceLastRefresh",
-                      GetTimeSinceLastRefreshString(
-                          refresh_scheduler ? refresh_scheduler->last_refresh()
-                                            : base::Time()));
-      std::string username = policy->username();
-      dict->SetString("domain", gaia::ExtractDomainName(username));
-    }
-  }
-  dict->SetString("machine", policy::GetMachineName());
-
-  if (pref_service_->HasPrefPath(
-          enterprise_reporting::kLastUploadSucceededTimestamp)) {
-    auto sent_time = pref_service_->GetTime(
-        enterprise_reporting::kLastUploadSucceededTimestamp);
-    dict->SetString("lastCloudReportSentTimestamp",
-                    base::TimeFormatShortDateAndTimeWithTimeZone(sent_time));
-    dict->SetString("timeSinceLastCloudReportSent",
-                    GetTimeSinceLastRefreshString(sent_time));
-  }
-}
-
-void MachineLevelUserCloudPolicyStatusProvider::OnStoreLoaded(
-    policy::CloudPolicyStore* store) {
-  NotifyStatusChange();
-}
-
-void MachineLevelUserCloudPolicyStatusProvider::OnStoreError(
-    policy::CloudPolicyStore* store) {
-  NotifyStatusChange();
-}
-
-#endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
-
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 DeviceCloudPolicyStatusProviderChromeOS::
     DeviceCloudPolicyStatusProviderChromeOS(
@@ -661,7 +423,7 @@
 
 void DeviceCloudPolicyStatusProviderChromeOS::GetStatus(
     base::DictionaryValue* dict) {
-  GetStatusFromCore(core_, dict);
+  policy::PolicyStatusProvider::GetStatusFromCore(core_, dict);
   dict->SetString("enterpriseDomainManager", enterprise_domain_manager_);
   GetOffHoursStatus(dict);
 }
@@ -683,7 +445,7 @@
   const policy::DeviceLocalAccountPolicyBroker* broker =
       service_->GetBrokerForUser(user_id_);
   if (broker) {
-    GetStatusFromCore(broker->core(), dict);
+    policy::PolicyStatusProvider::GetStatusFromCore(broker->core(), dict);
   } else {
     dict->SetBoolean("error", true);
     dict->SetString("status",
@@ -945,9 +707,24 @@
           ->machine_level_user_cloud_policy_manager();
 
   if (manager) {
+    policy::BrowserDMTokenStorage* dmTokenStorage =
+        policy::BrowserDMTokenStorage::Get();
+
+    base::Time lastCloudReportSent;
+    PrefService* prefService = g_browser_process->local_state();
+
+    if (prefService->HasPrefPath(
+            enterprise_reporting::kLastUploadSucceededTimestamp)) {
+      lastCloudReportSent = prefService->GetTime(
+          enterprise_reporting::kLastUploadSucceededTimestamp);
+    }
+
     machine_status_provider_ =
-        std::make_unique<MachineLevelUserCloudPolicyStatusProvider>(
-            manager->core(), g_browser_process->local_state());
+        std::make_unique<policy::MachineLevelUserCloudPolicyStatusProvider>(
+            manager->core(),
+            new policy::MachineLevelUserCloudPolicyContext(
+                {dmTokenStorage->RetrieveEnrollmentToken(),
+                 dmTokenStorage->RetrieveClientId(), lastCloudReportSent}));
   }
 #endif  // !defined(OS_ANDROID)
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -957,13 +734,13 @@
 #endif  // defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
 
   if (!user_status_provider_.get())
-    user_status_provider_ = std::make_unique<PolicyStatusProvider>();
+    user_status_provider_ = std::make_unique<policy::PolicyStatusProvider>();
   if (!device_status_provider_.get())
-    device_status_provider_ = std::make_unique<PolicyStatusProvider>();
+    device_status_provider_ = std::make_unique<policy::PolicyStatusProvider>();
   if (!machine_status_provider_.get())
-    machine_status_provider_ = std::make_unique<PolicyStatusProvider>();
+    machine_status_provider_ = std::make_unique<policy::PolicyStatusProvider>();
   if (!updater_status_provider_.get())
-    updater_status_provider_ = std::make_unique<PolicyStatusProvider>();
+    updater_status_provider_ = std::make_unique<policy::PolicyStatusProvider>();
 
   auto update_callback(base::BindRepeating(&PolicyUIHandler::SendStatus,
                                            base::Unretained(this)));
diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser/ui/webui/policy/policy_ui_handler.h
index 6acf616..d48c060 100644
--- a/chrome/browser/ui/webui/policy/policy_ui_handler.h
+++ b/chrome/browser/ui/webui/policy/policy_ui_handler.h
@@ -31,12 +31,12 @@
 #include "extensions/browser/extension_registry_observer.h"
 #endif
 
-class PolicyStatusProvider;
 class PrefChangeRegistrar;
 struct GoogleUpdatePoliciesAndState;
 
 namespace policy {
 class PolicyMap;
+class PolicyStatusProvider;
 }
 
 // The JavaScript message handler for the chrome://policy page.
@@ -129,10 +129,10 @@
   // Providers that supply status dictionaries for user and device policy,
   // respectively. These are created on initialization time as appropriate for
   // the platform (Chrome OS / desktop) and type of policy that is in effect.
-  std::unique_ptr<PolicyStatusProvider> user_status_provider_;
-  std::unique_ptr<PolicyStatusProvider> device_status_provider_;
-  std::unique_ptr<PolicyStatusProvider> machine_status_provider_;
-  std::unique_ptr<PolicyStatusProvider> updater_status_provider_;
+  std::unique_ptr<policy::PolicyStatusProvider> user_status_provider_;
+  std::unique_ptr<policy::PolicyStatusProvider> device_status_provider_;
+  std::unique_ptr<policy::PolicyStatusProvider> machine_status_provider_;
+  std::unique_ptr<policy::PolicyStatusProvider> updater_status_provider_;
 
 #if defined(OS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
   std::unique_ptr<policy::PolicyMap> updater_policies_;
diff --git a/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos_unittest.cc b/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos_unittest.cc
index d5a7a3b..b57b84fc 100644
--- a/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos_unittest.cc
+++ b/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos_unittest.cc
@@ -163,14 +163,19 @@
   void AddPrinter(const std::string& id,
                   const std::string& display_name,
                   const std::string& description,
-                  bool is_default) {
+                  bool is_default,
+                  bool requires_elevated_permissions) {
     auto caps = std::make_unique<PrinterSemanticCapsAndDefaults>();
     caps->papers.push_back({"bar", "vendor", {600, 600}});
     auto basic_info = std::make_unique<PrinterBasicInfo>(
         id, display_name, description, /*printer_status=*/0, is_default,
         PrinterBasicInfoOptions{});
-    test_backend_->AddValidPrinter("printer1", std::move(caps),
-                                   std::move(basic_info));
+    if (requires_elevated_permissions) {
+      test_backend_->AddAccessDeniedPrinter(id);
+    } else {
+      test_backend_->AddValidPrinter(id, std::move(caps),
+                                     std::move(basic_info));
+    }
   }
 
   void RunUntilIdle() { task_environment_.RunUntilIdle(); }
@@ -307,7 +312,8 @@
   printers_manager().InstallPrinter("printer1");
 
   // Add printer capabilities to `test_backend_`.
-  AddPrinter("printer1", "saved", "description1", true);
+  AddPrinter("printer1", "saved", "description1", /*is_default=*/true,
+             /*requires_elevated_permissions=*/false);
 
   base::Value fetched_caps;
   local_printer_handler()->StartGetCapability(
@@ -331,7 +337,8 @@
   printers_manager().AddPrinter(discovered_printer, PrinterClass::kDiscovered);
 
   // Add printer capabilities to `test_backend_`.
-  AddPrinter("printer1", "discovered", "description1", true);
+  AddPrinter("printer1", "discovered", "description1", /*is_default=*/true,
+             /*requires_elevated_permissions=*/false);
 
   base::Value fetched_caps;
   local_printer_handler()->StartGetCapability(
@@ -346,7 +353,8 @@
 
 // In this test we expect the `StartGetCapability` to bail early because the
 // provided printer can't be found in the `CupsPrintersManager`.
-TEST_F(LocalPrinterHandlerChromeosTest, StartGetCapabilityInvalidPrinter) {
+TEST_P(LocalPrinterHandlerChromeosProcessScopeTest,
+       StartGetCapabilityInvalidPrinter) {
   base::Value fetched_caps("dummy");
   local_printer_handler()->StartGetCapability(
       "invalid printer",
@@ -357,6 +365,33 @@
   EXPECT_TRUE(fetched_caps.is_none());
 }
 
+// Test that installed printers to which the user does not have permission to
+// access will receive a dictionary for the capabilities but will not have any
+// settings in that.
+TEST_P(LocalPrinterHandlerChromeosProcessScopeTest,
+       StartGetCapabilityAccessDenied) {
+  Printer saved_printer =
+      CreateTestPrinter("printer1", "saved", "description1");
+  printers_manager().AddPrinter(saved_printer, PrinterClass::kSaved);
+  printers_manager().InstallPrinter("printer1");
+
+  // Add printer capabilities to `test_backend_`.
+  AddPrinter("printer1", "saved", "description1", /*is_default=*/true,
+             /*requires_elevated_permissions=*/true);
+
+  base::Value fetched_caps;
+  local_printer_handler()->StartGetCapability(
+      "printer1", base::BindOnce(&RecordGetCapability, std::ref(fetched_caps)));
+
+  RunUntilIdle();
+
+  ASSERT_TRUE(fetched_caps.is_dict());
+  const base::Value* settings = fetched_caps.FindKey(kSettingCapabilities);
+  ASSERT_TRUE(settings);
+  ASSERT_TRUE(settings->is_dict());
+  EXPECT_TRUE(settings->DictEmpty());
+}
+
 TEST_F(LocalPrinterHandlerChromeosTest, GetNativePrinterPolicies) {
   sync_preferences::TestingPrefServiceSyncable* prefs =
       profile().GetTestingPrefService();
diff --git a/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc b/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
index 4503dd3..ee85b91 100644
--- a/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
+++ b/chrome/browser/ui/webui/print_preview/local_printer_handler_default.cc
@@ -18,7 +18,9 @@
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/printing/print_backend_service_manager.h"
 #include "chrome/browser/ui/webui/print_preview/print_preview_utils.h"
+#include "chrome/browser/ui/webui/print_preview/printer_handler.h"
 #include "chrome/common/printing/printer_capabilities.h"
+#include "chrome/services/printing/public/mojom/print_backend_service.mojom.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "printing/mojom/print.mojom.h"
@@ -73,39 +75,37 @@
 void OnDidEnumeratePrinters(
     PrinterHandler::AddedPrintersCallback added_printers_callback,
     PrinterHandler::GetPrintersDoneCallback done_callback,
-    const base::Optional<PrinterList>& printer_list) {
-  const bool have_printers = printer_list.has_value();
-  if (!have_printers)
-    LOG(WARNING) << "Failure enumerating local printers.";
+    mojom::PrinterListResultPtr printer_list) {
+  if (printer_list->is_result_code()) {
+    LOG(WARNING) << "Failure enumerating local printers, result: "
+                 << printer_list->get_result_code();
+  }
 
   ConvertPrinterListForCallback(
       std::move(added_printers_callback), std::move(done_callback),
-      have_printers ? printer_list.value() : PrinterList());
+      printer_list->is_printer_list() ? printer_list->get_printer_list()
+                                      : PrinterList());
 }
 
 void OnDidFetchCapabilities(
     const std::string& device_name,
     bool has_secure_protocol,
     PrinterHandler::GetCapabilityCallback callback,
-    const base::Optional<PrinterBasicInfo>& printer_info,
-    const base::Optional<PrinterSemanticCapsAndDefaults::Papers>&
-        user_defined_papers,
-    const base::Optional<PrinterSemanticCapsAndDefaults>& caps_and_defaults) {
-  const bool has_values = printer_info.has_value() &&
-                          user_defined_papers.has_value() &&
-                          caps_and_defaults.has_value();
-  if (!has_values) {
-    LOG(WARNING) << "Failure fetching printer capabilities for  "
-                 << device_name;
+    mojom::PrinterCapsAndInfoResultPtr printer_caps_and_info) {
+  if (printer_caps_and_info->is_result_code()) {
+    LOG(WARNING) << "Failure fetching printer capabilities for " << device_name
+                 << " - error " << printer_caps_and_info->get_result_code();
     std::move(callback).Run(base::Value());
     return;
   }
 
   VLOG(1) << "Received printer info & capabilities for " << device_name;
-  PrinterSemanticCapsAndDefaults caps = caps_and_defaults.value();
+  const mojom::PrinterCapsAndInfoPtr& caps_and_info =
+      printer_caps_and_info->get_printer_caps_and_info();
   base::Value settings = AssemblePrinterSettings(
-      device_name, printer_info.value(), user_defined_papers.value(),
-      has_secure_protocol, &caps);
+      device_name, caps_and_info->printer_info,
+      caps_and_info->user_defined_papers, has_secure_protocol,
+      &caps_and_info->printer_caps);
   std::move(callback).Run(std::move(settings));
 }
 
diff --git a/chrome/browser/ui/webui/print_preview/local_printer_handler_default_unittest.cc b/chrome/browser/ui/webui/print_preview/local_printer_handler_default_unittest.cc
index e6afbe5..39657c2 100644
--- a/chrome/browser/ui/webui/print_preview/local_printer_handler_default_unittest.cc
+++ b/chrome/browser/ui/webui/print_preview/local_printer_handler_default_unittest.cc
@@ -100,7 +100,8 @@
   void AddPrinter(const std::string& id,
                   const std::string& display_name,
                   const std::string& description,
-                  bool is_default) {
+                  bool is_default,
+                  bool requires_elevated_permissions) {
     auto caps = std::make_unique<PrinterSemanticCapsAndDefaults>();
     caps->papers.emplace_back(
         PrinterSemanticCapsAndDefaults::Paper{"bar", "vendor", {600, 600}});
@@ -108,8 +109,12 @@
         id, display_name, description,
         /*printer_status=*/0, is_default, PrinterBasicInfoOptions{});
 
-    print_backend()->AddValidPrinter(id, std::move(caps),
-                                     std::move(basic_info));
+    if (requires_elevated_permissions) {
+      print_backend()->AddAccessDeniedPrinter(id);
+    } else {
+      print_backend()->AddValidPrinter(id, std::move(caps),
+                                       std::move(basic_info));
+    }
   }
 
   void RunUntilIdle() { task_environment_.RunUntilIdle(); }
@@ -136,9 +141,12 @@
 
 // Tests that getting default printer is successful.
 TEST_P(LocalPrinterHandlerDefaultTest, GetDefaultPrinter) {
-  AddPrinter("printer1", "default1", "description1", true);
-  AddPrinter("printer2", "non-default2", "description2", false);
-  AddPrinter("printer3", "non-default3", "description3", false);
+  AddPrinter("printer1", "default1", "description1", /*is_default=*/true,
+             /*requires_elevated_permissions=*/false);
+  AddPrinter("printer2", "non-default2", "description2", /*is_default=*/false,
+             /*requires_elevated_permissions=*/false);
+  AddPrinter("printer3", "non-default3", "description3", /*is_default=*/false,
+             /*requires_elevated_permissions=*/false);
 
   std::string default_printer;
   local_printer_handler()->GetDefaultPrinter(
@@ -162,9 +170,12 @@
 }
 
 TEST_P(LocalPrinterHandlerDefaultTest, GetPrinters) {
-  AddPrinter("printer1", "default1", "description1", true);
-  AddPrinter("printer2", "non-default2", "description2", false);
-  AddPrinter("printer3", "non-default3", "description3", false);
+  AddPrinter("printer1", "default1", "description1", /*is_default=*/true,
+             /*requires_elevated_permissions=*/false);
+  AddPrinter("printer2", "non-default2", "description2", /*is_default=*/false,
+             /*requires_elevated_permissions=*/false);
+  AddPrinter("printer3", "non-default3", "description3", /*is_default=*/false,
+             /*requires_elevated_permissions=*/false);
 
   size_t call_count = 0;
   std::unique_ptr<base::ListValue> printers;
@@ -231,7 +242,8 @@
 // Tests that fetching capabilities for an existing installed printer is
 // successful.
 TEST_P(LocalPrinterHandlerDefaultTest, StartGetCapabilityValidPrinter) {
-  AddPrinter("printer1", "default1", "description1", true);
+  AddPrinter("printer1", "default1", "description1", /*is_default=*/true,
+             /*requires_elevated_permissions=*/false);
 
   base::Value fetched_caps;
   local_printer_handler()->StartGetCapability(
@@ -257,4 +269,20 @@
   EXPECT_TRUE(fetched_caps.is_none());
 }
 
+// Test that installed printers to which the user does not have permission to
+// access will fail to get any capabilities.
+TEST_P(LocalPrinterHandlerDefaultTest, StartGetCapabilityAccessDenied) {
+  AddPrinter("printer1", "default1", "description1", /*is_default=*/true,
+             /*requires_elevated_permissions=*/true);
+
+  base::Value fetched_caps("dummy");
+  local_printer_handler()->StartGetCapability(
+      /*destination_id=*/"printer1",
+      base::BindOnce(&RecordGetCapability, std::ref(fetched_caps)));
+
+  RunUntilIdle();
+
+  EXPECT_TRUE(fetched_caps.is_none());
+}
+
 }  // namespace printing
diff --git a/chrome/browser/ui/webui/read_later/read_later.mojom b/chrome/browser/ui/webui/read_later/read_later.mojom
index 9803a5dd..dcaa854 100644
--- a/chrome/browser/ui/webui/read_later/read_later.mojom
+++ b/chrome/browser/ui/webui/read_later/read_later.mojom
@@ -35,8 +35,10 @@
   // Get unread and read read later entries.
   GetReadLaterEntries() => (ReadLaterEntriesByStatus entries);
 
-  // Open a saved read later entry.
-  OpenSavedEntry(url.mojom.Url url);
+  // Open a saved read later entry and mark as read if needed. Reading list
+  // items are marked as read when opened, while Bookmark links do not need to
+  // be mark as read when opened.
+  OpenURL(url.mojom.Url url, bool mark_as_read);
 
   // Updates a read later entry's read status.
   UpdateReadStatus(url.mojom.Url url, bool read);
diff --git a/chrome/browser/ui/webui/read_later/read_later_page_handler.cc b/chrome/browser/ui/webui/read_later/read_later_page_handler.cc
index 96bebcb..6f111c49 100644
--- a/chrome/browser/ui/webui/read_later/read_later_page_handler.cc
+++ b/chrome/browser/ui/webui/read_later/read_later_page_handler.cc
@@ -82,7 +82,7 @@
   std::move(callback).Run(CreateReadLaterEntriesByStatusData());
 }
 
-void ReadLaterPageHandler::OpenSavedEntry(const GURL& url) {
+void ReadLaterPageHandler::OpenURL(const GURL& url, bool mark_as_read) {
   Browser* browser = chrome::FindLastActive();
   if (!browser)
     return;
@@ -97,7 +97,9 @@
   content::OpenURLParams params(url, content::Referrer(), open_location,
                                 ui::PAGE_TRANSITION_AUTO_BOOKMARK, false);
   browser->OpenURL(params);
-  reading_list_model_->SetReadStatus(url, true);
+
+  if (mark_as_read)
+    reading_list_model_->SetReadStatus(url, true);
 }
 
 void ReadLaterPageHandler::UpdateReadStatus(const GURL& url, bool read) {
diff --git a/chrome/browser/ui/webui/read_later/read_later_page_handler.h b/chrome/browser/ui/webui/read_later/read_later_page_handler.h
index 688feab..41dd573 100644
--- a/chrome/browser/ui/webui/read_later/read_later_page_handler.h
+++ b/chrome/browser/ui/webui/read_later/read_later_page_handler.h
@@ -43,7 +43,7 @@
 
   // read_later::mojom::PageHandler:
   void GetReadLaterEntries(GetReadLaterEntriesCallback callback) override;
-  void OpenSavedEntry(const GURL& url) override;
+  void OpenURL(const GURL& url, bool mark_as_read) override;
   void UpdateReadStatus(const GURL& url, bool read) override;
   void RemoveEntry(const GURL& url) override;
   void ShowUI() override;
diff --git a/chrome/browser/ui/webui/read_later/read_later_page_handler_unittest.cc b/chrome/browser/ui/webui/read_later/read_later_page_handler_unittest.cc
index ab98fe2..c26b8ac 100644
--- a/chrome/browser/ui/webui/read_later/read_later_page_handler_unittest.cc
+++ b/chrome/browser/ui/webui/read_later/read_later_page_handler_unittest.cc
@@ -173,18 +173,18 @@
       /* expected_read_data= */ {});
 }
 
-TEST_F(TestReadLaterPageHandlerTest, OpenSavedEntryOnNTP) {
+TEST_F(TestReadLaterPageHandlerTest, OpenURLOnNTP) {
   // Open and navigate to NTP.
   AddTabWithTitle(browser(), GURL(chrome::kChromeUINewTabURL), "NTP");
 
-  // Check that OpenSavedEntry from the NTP does not open a new tab.
+  // Check that OpenURL from the NTP does not open a new tab.
   EXPECT_EQ(browser()->tab_strip_model()->count(), 5);
-  handler()->OpenSavedEntry(GURL(kTabUrl3));
+  handler()->OpenURL(GURL(kTabUrl3), true);
   EXPECT_EQ(browser()->tab_strip_model()->count(), 5);
 
   // Expect ItemsChanged to be called 3 times.
   // Twice for the two AddEntry calls in SetUp().
-  // Once for the OpenSavedEntry call above.
+  // Once for the OpenURL call above.
   EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(3);
 
   // Get Read later entries.
@@ -195,15 +195,15 @@
       /* expected_read_data= */ {std::make_pair(GURL(kTabUrl3), kTabName3)});
 }
 
-TEST_F(TestReadLaterPageHandlerTest, OpenSavedEntryNotOnNTP) {
-  // Check that OpenSavedEntry opens a new tab when not on the NTP.
+TEST_F(TestReadLaterPageHandlerTest, OpenURLNotOnNTP) {
+  // Check that OpenURL opens a new tab when not on the NTP.
   EXPECT_EQ(browser()->tab_strip_model()->count(), 4);
-  handler()->OpenSavedEntry(GURL(kTabUrl3));
+  handler()->OpenURL(GURL(kTabUrl3), true);
   EXPECT_EQ(browser()->tab_strip_model()->count(), 5);
 
   // Expect ItemsChanged to be called 3 times.
   // Twice for the two AddEntry calls in SetUp().
-  // Once for the OpenSavedEntry call above.
+  // Once for the OpenURL call above.
   EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(3);
 
   // Get Read later entries.
@@ -219,7 +219,7 @@
 
   // Expect ItemsChanged to be called 3 times.
   // Twice for the two AddEntry calls in SetUp().
-  // Once for the OpenSavedEntry call above.
+  // Once for the OpenURL call above.
   EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(3);
 
   // Get Read later entries.
@@ -248,13 +248,13 @@
 
 TEST_F(TestReadLaterPageHandlerTest, UpdateAndRemoveEntry) {
   EXPECT_FALSE(model()->IsPerformingBatchUpdates());
-  handler()->OpenSavedEntry(GURL(kTabUrl3));
+  handler()->OpenURL(GURL(kTabUrl3), true);
   handler()->RemoveEntry(GURL(kTabUrl3));
   EXPECT_FALSE(model()->IsPerformingBatchUpdates());
 
   // Expect ItemsChanged to be called 4 times.
   // Twice for the two AddEntry calls in SetUp().
-  // Once for the OpenSavedEntry call above.
+  // Once for the OpenURL call above.
   // Once for the RemoveEntry call above.
   EXPECT_CALL(page_, ItemsChanged(testing::_)).Times(4);
 
@@ -269,7 +269,7 @@
 TEST_F(TestReadLaterPageHandlerTest, PostBatchUpdate) {
   auto token = model()->BeginBatchUpdates();
   EXPECT_TRUE(model()->IsPerformingBatchUpdates());
-  handler()->OpenSavedEntry(GURL(kTabUrl3));
+  handler()->OpenURL(GURL(kTabUrl3), true);
   handler()->RemoveEntry(GURL(kTabUrl3));
   token.reset();
   EXPECT_FALSE(model()->IsPerformingBatchUpdates());
@@ -296,7 +296,7 @@
       content::WebContents::Create(params);
   handler()->set_web_contents_for_testing(web_contents.get());
 
-  handler()->OpenSavedEntry(GURL(kTabUrl3));
+  handler()->OpenURL(GURL(kTabUrl3), true);
   handler()->RemoveEntry(GURL(kTabUrl3));
 
   // Expect ItemsChanged to be called twice from the two AddEntry calls in
diff --git a/chrome/browser/ui/webui/settings/about_handler_unittest.cc b/chrome/browser/ui/webui/settings/about_handler_unittest.cc
index 3d603e09..b51c6091 100644
--- a/chrome/browser/ui/webui/settings/about_handler_unittest.cc
+++ b/chrome/browser/ui/webui/settings/about_handler_unittest.cc
@@ -6,7 +6,7 @@
 #include "base/test/simple_test_clock.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_update_engine_client.h"
 #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler_unittest.cc b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler_unittest.cc
index 7707b1f31..15e1cc47 100644
--- a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler_unittest.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler_unittest.cc
@@ -17,7 +17,7 @@
 #include "chrome/browser/download/download_core_service_impl.h"
 #include "chrome/browser/ui/chrome_select_file_policy.h"
 #include "chrome/test/base/testing_profile.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
 #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/ui/webui/settings/chromeos/device_storage_handler_unittest.cc b/chrome/browser/ui/webui/settings/chromeos/device_storage_handler_unittest.cc
index dae4a77..5bf1843 100644
--- a/chrome/browser/ui/webui/settings/chromeos/device_storage_handler_unittest.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/device_storage_handler_unittest.cc
@@ -23,7 +23,7 @@
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile_manager.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "components/arc/arc_service_manager.h"
 #include "components/arc/test/fake_arc_session.h"
diff --git a/chrome/browser/ui/webui/settings/chromeos/internet_section.cc b/chrome/browser/ui/webui/settings/chromeos/internet_section.cc
index 5378d479..57d3177 100644
--- a/chrome/browser/ui/webui/settings/chromeos/internet_section.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/internet_section.cc
@@ -23,6 +23,7 @@
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/grit/chromium_strings.h"
 #include "chrome/grit/generated_resources.h"
+#include "chromeos/dbus/hermes/hermes_manager_client.h"
 #include "chromeos/strings/grit/chromeos_strings.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/web_ui_data_source.h"
@@ -252,11 +253,11 @@
 const std::vector<SearchConcept>& GetCellularSearchConcepts() {
   static const base::NoDestructor<std::vector<SearchConcept>> tags({
       {IDS_OS_SETTINGS_TAG_CELLULAR,
-       mojom::kCellularDetailsSubpagePath,
+       mojom::kCellularNetworksSubpagePath,
        mojom::SearchResultIcon::kCellular,
        mojom::SearchResultDefaultRank::kMedium,
        mojom::SearchResultType::kSubpage,
-       {.subpage = mojom::Subpage::kCellularDetails},
+       {.subpage = mojom::Subpage::kMobileDataNetworks},
        {IDS_OS_SETTINGS_TAG_CELLULAR_ALT1, IDS_OS_SETTINGS_TAG_CELLULAR_ALT2,
         IDS_OS_SETTINGS_TAG_CELLULAR_ALT3, SearchConcept::kAltTagEnd}},
       {IDS_OS_SETTINGS_TAG_CELLULAR_SIM_LOCK,
@@ -354,10 +355,9 @@
   return *tags;
 }
 
-// TODO(1093185): Merge GetCellularSetupAndDetailMenuSearchConcepts() with
-// GetCellularConnectedSearchConcepts() when flag is enabled.
-const std::vector<SearchConcept>&
-GetCellularSetupAndDetailMenuSearchConcepts() {
+// TODO(1204440): Add "install eSIM profile" search result and show
+// appropriately.
+const std::vector<SearchConcept>& GetCellularESimCapableSearchTerms() {
   static const base::NoDestructor<std::vector<SearchConcept>> tags({
       {IDS_OS_SETTINGS_TAG_ADD_CELLULAR,
        mojom::kMobileDataNetworksSubpagePath,
@@ -367,6 +367,12 @@
        {.setting = mojom::Setting::kCellularAddNetwork},
        {IDS_OS_SETTINGS_TAG_ADD_CELLULAR_ALT1,
         IDS_OS_SETTINGS_TAG_ADD_CELLULAR_ALT2, SearchConcept::kAltTagEnd}},
+  });
+  return *tags;
+}
+
+const std::vector<SearchConcept>& GetCellularPrimaryIsESimSearchConcepts() {
+  static const base::NoDestructor<std::vector<SearchConcept>> tags({
       {IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE,
        mojom::kCellularDetailsSubpagePath,
        mojom::SearchResultIcon::kCellular,
@@ -562,6 +568,19 @@
       url_to_modify.find('?') == std::string::npos ? "?" : "&", guid.c_str());
 }
 
+bool IsESimCapable() {
+  return HermesManagerClient::Get()->GetAvailableEuiccs().size() != 0;
+}
+
+base::Optional<std::string> GetCellularActiveSimIccid(
+    const network_config::mojom::DeviceStatePropertiesPtr& device) {
+  for (const auto& sim_info : *device->sim_infos) {
+    if (sim_info->is_primary)
+      return sim_info->iccid;
+  }
+  return base::nullopt;
+}
+
 }  // namespace
 
 InternetSection::InternetSection(Profile* profile,
@@ -996,7 +1015,7 @@
     return GetDetailsSubpageUrl(modified_url, *connected_wifi_guid_);
 
   if (IsPartOfDetailsSubpage(type, id, mojom::Subpage::kCellularDetails))
-    return GetDetailsSubpageUrl(modified_url, *cellular_guid_);
+    return GetDetailsSubpageUrl(modified_url, *active_cellular_guid_);
 
   if (IsPartOfDetailsSubpage(type, id, mojom::Subpage::kTetherDetails))
     return GetDetailsSubpageUrl(modified_url, *connected_tether_guid_);
@@ -1034,6 +1053,7 @@
   updater.RemoveSearchTags(GetWifiOffSearchConcepts());
   updater.RemoveSearchTags(GetCellularOnSearchConcepts());
   updater.RemoveSearchTags(GetCellularOffSearchConcepts());
+  updater.RemoveSearchTags(GetCellularESimCapableSearchTerms());
   updater.RemoveSearchTags(GetInstantTetheringSearchConcepts());
   updater.RemoveSearchTags(GetInstantTetheringOnSearchConcepts());
   updater.RemoveSearchTags(GetInstantTetheringOffSearchConcepts());
@@ -1042,6 +1062,8 @@
   // is present but no network is connected.
   does_ethernet_device_exist_ = false;
 
+  active_cellular_iccid_.reset();
+
   for (const auto& device : devices) {
     switch (device->type) {
       case NetworkType::kWiFi:
@@ -1053,13 +1075,18 @@
         break;
 
       case NetworkType::kCellular:
+        active_cellular_iccid_ = GetCellularActiveSimIccid(device);
+
         // Note: Cellular search concepts all point to the cellular details
         // page, which is only available if a cellular network exists. This
         // check is in OnNetworkList().
-        if (device->device_state == DeviceStateType::kEnabled)
+        if (device->device_state == DeviceStateType::kEnabled) {
           updater.AddSearchTags(GetCellularOnSearchConcepts());
-        else if (device->device_state == DeviceStateType::kDisabled)
+          if (features::IsCellularActivationUiEnabled() && IsESimCapable())
+            updater.AddSearchTags(GetCellularESimCapableSearchTerms());
+        } else if (device->device_state == DeviceStateType::kDisabled) {
           updater.AddSearchTags(GetCellularOffSearchConcepts());
+        }
         break;
 
       case NetworkType::kTether:
@@ -1104,12 +1131,12 @@
   updater.RemoveSearchTags(GetWifiHiddenSearchConcepts());
   updater.RemoveSearchTags(GetCellularSearchConcepts());
   updater.RemoveSearchTags(GetCellularConnectedSearchConcepts());
-  updater.RemoveSearchTags(GetCellularSetupAndDetailMenuSearchConcepts());
+  updater.RemoveSearchTags(GetCellularPrimaryIsESimSearchConcepts());
   updater.RemoveSearchTags(GetCellularMeteredSearchConcepts());
   updater.RemoveSearchTags(GetInstantTetheringConnectedSearchConcepts());
   updater.RemoveSearchTags(GetVpnConnectedSearchConcepts());
 
-  cellular_guid_.reset();
+  active_cellular_guid_.reset();
 
   connected_ethernet_guid_.reset();
   connected_wifi_guid_.reset();
@@ -1118,10 +1145,23 @@
 
   for (const auto& network : networks) {
     // Special case: Some cellular search functionality is available even if the
-    // network is not connected.
+    // primary cellular network is not connected.
     if (network->type == NetworkType::kCellular) {
-      cellular_guid_ = network->guid;
-      updater.AddSearchTags(GetCellularSearchConcepts());
+      bool is_primary_cellular_network =
+          active_cellular_iccid_.has_value() &&
+          network->type_state->get_cellular()->iccid == *active_cellular_iccid_;
+
+      if (!features::IsCellularActivationUiEnabled()) {
+        active_cellular_guid_ = network->guid;
+        updater.AddSearchTags(GetCellularSearchConcepts());
+      } else if (is_primary_cellular_network) {
+        active_cellular_guid_ = network->guid;
+        updater.AddSearchTags(GetCellularSearchConcepts());
+
+        // If the primary cellular network is ESim.
+        if (!network->type_state->get_cellular()->eid.empty())
+          updater.AddSearchTags(GetCellularPrimaryIsESimSearchConcepts());
+      }
     }
 
     if (!IsConnected(network->connection_state))
@@ -1143,13 +1183,9 @@
         break;
 
       case NetworkType::kCellular:
-        // Note: GUID is set above.
         updater.AddSearchTags(GetCellularConnectedSearchConcepts());
         if (base::FeatureList::IsEnabled(::features::kMeteredShowToggle))
           updater.AddSearchTags(GetCellularMeteredSearchConcepts());
-
-        if (features::IsCellularActivationUiEnabled())
-          updater.AddSearchTags(GetCellularSetupAndDetailMenuSearchConcepts());
         break;
 
       case NetworkType::kTether:
diff --git a/chrome/browser/ui/webui/settings/chromeos/internet_section.h b/chrome/browser/ui/webui/settings/chromeos/internet_section.h
index 0265c105..3e7b9e1 100644
--- a/chrome/browser/ui/webui/settings/chromeos/internet_section.h
+++ b/chrome/browser/ui/webui/settings/chromeos/internet_section.h
@@ -68,8 +68,12 @@
   void OnNetworkList(
       std::vector<network_config::mojom::NetworkStatePropertiesPtr> networks);
 
-  // Null if no cellular network exists.
-  base::Optional<std::string> cellular_guid_;
+  // Null if no active cellular network exists. The active cellular network
+  // corresponds to the currently active SIM slot, and may not be
+  // currently connected. A connected cellular network will always be the
+  // active cellular network.
+  base::Optional<std::string> active_cellular_iccid_;
+  base::Optional<std::string> active_cellular_guid_;
 
   // Note: If not connected, the below fields are null.
   base::Optional<std::string> connected_ethernet_guid_;
diff --git a/chrome/browser/ui/webui/settings/chromeos/search_section.cc b/chrome/browser/ui/webui/settings/chromeos/search_section.cc
index 4297fa6..ba576ca 100644
--- a/chrome/browser/ui/webui/settings/chromeos/search_section.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/search_section.cc
@@ -35,10 +35,15 @@
 namespace settings {
 namespace {
 
+bool ShouldShowQuickAnswersSettings() {
+  return ash::features::IsQuickAnswersStandaloneSettingsEnabled();
+}
+
 const std::vector<SearchConcept>& GetSearchPageSearchConcepts() {
   static const base::NoDestructor<std::vector<SearchConcept>> tags({
       {IDS_OS_SETTINGS_TAG_PREFERRED_SEARCH_ENGINE,
-       mojom::kSearchAndAssistantSectionPath,
+       ShouldShowQuickAnswersSettings() ? mojom::kSearchSubpagePath
+                                        : mojom::kSearchAndAssistantSectionPath,
        mojom::SearchResultIcon::kMagnifyingGlass,
        mojom::SearchResultDefaultRank::kMedium,
        mojom::SearchResultType::kSetting,
@@ -145,10 +150,6 @@
   return !assistant::features::IsVoiceMatchDisabled();
 }
 
-bool ShouldShowQuickAnswersSettings() {
-  return ash::features::IsQuickAnswersStandaloneSettingsEnabled();
-}
-
 void AddQuickAnswersStrings(content::WebUIDataSource* html_source) {
   static constexpr webui::LocalizedString kLocalizedStrings[] = {
       {"quickAnswersEnable", IDS_SETTINGS_QUICK_ANSWERS_ENABLE},
@@ -199,6 +200,21 @@
   html_source->AddBoolean("voiceMatchDisabled", !IsVoiceMatchAllowed());
 }
 
+const std::vector<mojom::Setting>& GetSearchSettings() {
+  if (ShouldShowQuickAnswersSettings()) {
+    static const base::NoDestructor<std::vector<mojom::Setting>> settings({
+        mojom::Setting::kQuickAnswersOnOff,
+        mojom::Setting::kPreferredSearchEngine,
+    });
+    return *settings;
+  } else {
+    static const base::NoDestructor<std::vector<mojom::Setting>> settings({
+        mojom::Setting::kQuickAnswersOnOff,
+    });
+    return *settings;
+  }
+}
+
 }  // namespace
 
 SearchSection::SearchSection(Profile* profile,
@@ -287,17 +303,15 @@
 }
 
 void SearchSection::RegisterHierarchy(HierarchyGenerator* generator) const {
-  generator->RegisterTopLevelSetting(mojom::Setting::kPreferredSearchEngine);
+  if (!ShouldShowQuickAnswersSettings())
+    generator->RegisterTopLevelSetting(mojom::Setting::kPreferredSearchEngine);
 
   // Search.
   generator->RegisterTopLevelSubpage(
       IDS_SETTINGS_SEARCH_SUBPAGE_TITLE, mojom::Subpage::kSearch,
       mojom::SearchResultIcon::kMagnifyingGlass,
       mojom::SearchResultDefaultRank::kMedium, mojom::kSearchSubpagePath);
-  static constexpr mojom::Setting kSearchSettings[] = {
-      mojom::Setting::kQuickAnswersOnOff,
-  };
-  RegisterNestedSettingBulk(mojom::Subpage::kSearch, kSearchSettings,
+  RegisterNestedSettingBulk(mojom::Subpage::kSearch, GetSearchSettings(),
                             generator);
 
   // Assistant.
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index f1a2c7d..1b8f2de 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-master-1620874643-c6911f0fdfdf1360922bb33f88d3193f0769a6f7.profdata
+chrome-win32-master-1620916330-7a3b232f9d2c1b14ceee527b3c5764a18f88f4d6.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index e06e3e32..ae24a15 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-master-1620874643-a39bae05663f2fbeba2be4080976677594870a4e.profdata
+chrome-win64-master-1620916330-4bc846cd76be8e976b4e4584e2cbac2319528d52.profdata
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
index 623f557..0ec4e1a 100644
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -138,9 +138,9 @@
         "$root_gen_dir/chrome/feedback_resources.pak",
         "$root_gen_dir/chrome/gaia_auth_host_resources.pak",
         "$root_gen_dir/chrome/history_resources.pak",
-        "$root_gen_dir/chrome/local_ntp_resources.pak",
         "$root_gen_dir/chrome/media_router_feedback_resources.pak",
         "$root_gen_dir/chrome/memories_resources.pak",
+        "$root_gen_dir/chrome/new_tab_page_instant_resources.pak",
         "$root_gen_dir/chrome/new_tab_page_resources.pak",
         "$root_gen_dir/chrome/new_tab_page_third_party_resources.pak",
         "$root_gen_dir/chrome/read_later_resources.pak",
@@ -154,7 +154,6 @@
       deps += [
         "//chrome/browser/resources:component_extension_resources",
         "//chrome/browser/resources:dev_ui_paks",
-        "//chrome/browser/resources:local_ntp_resources",
         "//chrome/browser/resources:webid_resources",
         "//chrome/browser/resources/bookmarks:resources",
         "//chrome/browser/resources/commander:resources",
@@ -166,6 +165,7 @@
         "//chrome/browser/resources/media_router:resources",
         "//chrome/browser/resources/memories:resources",
         "//chrome/browser/resources/new_tab_page:resources",
+        "//chrome/browser/resources/new_tab_page_instant:resources",
         "//chrome/browser/resources/new_tab_page_third_party:resources",
         "//chrome/browser/resources/read_later:resources",
         "//chrome/browser/resources/settings:resources",
diff --git a/chrome/services/printing/print_backend_service_impl.cc b/chrome/services/printing/print_backend_service_impl.cc
index 87242c0..3d0f1b9 100644
--- a/chrome/services/printing/print_backend_service_impl.cc
+++ b/chrome/services/printing/print_backend_service_impl.cc
@@ -38,19 +38,19 @@
   if (!print_backend_) {
     DLOG(ERROR)
         << "Print backend instance has not been initialized for locale.";
-    std::move(callback).Run(base::nullopt);
+    std::move(callback).Run(
+        mojom::PrinterListResult::NewResultCode(mojom::ResultCode::kFailed));
     return;
   }
 
   PrinterList printer_list;
-  if (print_backend_->EnumeratePrinters(&printer_list) !=
-      mojom::ResultCode::kSuccess) {
-    DLOG(ERROR) << "EnumeratePrinters failed, last error is "
-                << logging::GetLastSystemErrorCode();
-    std::move(callback).Run(base::nullopt);
+  mojom::ResultCode result = print_backend_->EnumeratePrinters(&printer_list);
+  if (result != mojom::ResultCode::kSuccess) {
+    std::move(callback).Run(mojom::PrinterListResult::NewResultCode(result));
     return;
   }
-  std::move(callback).Run(std::move(printer_list));
+  std::move(callback).Run(
+      mojom::PrinterListResult::NewPrinterList(std::move(printer_list)));
 }
 
 void PrintBackendServiceImpl::GetDefaultPrinterName(
@@ -71,7 +71,9 @@
   if (!print_backend_) {
     DLOG(ERROR)
         << "Print backend instance has not been initialized for locale.";
-    std::move(callback).Run(base::nullopt);
+    std::move(callback).Run(
+        mojom::PrinterSemanticCapsAndDefaultsResult::NewResultCode(
+            mojom::ResultCode::kFailed));
     return;
   }
 
@@ -80,12 +82,13 @@
       print_backend_->GetPrinterSemanticCapsAndDefaults(printer_name,
                                                         &printer_caps);
   if (result != mojom::ResultCode::kSuccess) {
-    DLOG(ERROR) << "GetPrinterSemanticCapsAndDefaults failed, last error is "
-                << logging::GetLastSystemErrorCode();
-    std::move(callback).Run(base::nullopt);
+    std::move(callback).Run(
+        mojom::PrinterSemanticCapsAndDefaultsResult::NewResultCode(result));
     return;
   }
-  std::move(callback).Run(std::move(printer_caps));
+  std::move(callback).Run(
+      mojom::PrinterSemanticCapsAndDefaultsResult::NewPrinterCaps(
+          std::move(printer_caps)));
 }
 
 void PrintBackendServiceImpl::FetchCapabilities(
@@ -94,7 +97,8 @@
   if (!print_backend_) {
     DLOG(ERROR)
         << "Print backend instance has not been initialized for locale.";
-    std::move(callback).Run(base::nullopt, base::nullopt, base::nullopt);
+    std::move(callback).Run(mojom::PrinterCapsAndInfoResult::NewResultCode(
+        mojom::ResultCode::kFailed));
     return;
   }
 
@@ -120,22 +124,23 @@
   mojom::ResultCode result =
       print_backend_->GetPrinterBasicInfo(printer_name, &printer_info);
   if (result != mojom::ResultCode::kSuccess) {
-    DLOG(ERROR) << "GetPrinterBasicInfo failed, last error is "
-                << logging::GetLastSystemErrorCode();
-    std::move(callback).Run(base::nullopt, base::nullopt, base::nullopt);
+    std::move(callback).Run(
+        mojom::PrinterCapsAndInfoResult::NewResultCode(result));
     return;
   }
   PrinterSemanticCapsAndDefaults caps;
   result =
       print_backend_->GetPrinterSemanticCapsAndDefaults(printer_name, &caps);
   if (result != mojom::ResultCode::kSuccess) {
-    DLOG(ERROR) << "GetPrinterSemanticCapsAndDefaults failed, last error is "
-                << logging::GetLastSystemErrorCode();
-    std::move(callback).Run(base::nullopt, base::nullopt, base::nullopt);
+    std::move(callback).Run(
+        mojom::PrinterCapsAndInfoResult::NewResultCode(result));
     return;
   }
-  std::move(callback).Run(std::move(printer_info),
-                          std::move(user_defined_papers), std::move(caps));
+  mojom::PrinterCapsAndInfoPtr caps_and_info = mojom::PrinterCapsAndInfo::New(
+      std::move(printer_info), std::move(user_defined_papers), std::move(caps));
+  std::move(callback).Run(
+      mojom::PrinterCapsAndInfoResult::NewPrinterCapsAndInfo(
+          std::move(caps_and_info)));
 }
 
 }  // namespace printing
diff --git a/chrome/services/printing/public/mojom/print_backend_service.mojom b/chrome/services/printing/public/mojom/print_backend_service.mojom
index 7e1d1d1..0be1ada 100644
--- a/chrome/services/printing/public/mojom/print_backend_service.mojom
+++ b/chrome/services/printing/public/mojom/print_backend_service.mojom
@@ -5,6 +5,37 @@
 module printing.mojom;
 
 import "printing/backend/mojom/print_backend.mojom";
+import "printing/mojom/print.mojom";
+
+// The list of installed printers, or the `ResultCode` if there was an error
+// when trying to retrieve this data.
+union PrinterListResult {
+  array<PrinterBasicInfo> printer_list;
+  ResultCode result_code;
+};
+
+// The capabilities and defaults of a printer, or the `ResultCode` if there was
+// an error when trying to retrieve this data.
+union PrinterSemanticCapsAndDefaultsResult {
+  PrinterSemanticCapsAndDefaults printer_caps;
+  ResultCode result_code;
+};
+
+// The set of basic info, paper details, and capabilities/defaults for a
+// printer.
+struct PrinterCapsAndInfo {
+  PrinterBasicInfo printer_info;
+  array<Paper> user_defined_papers;
+  PrinterSemanticCapsAndDefaults printer_caps;
+};
+
+// The set of basic info, paper details, and capabilities/defaults for a
+// printer, or the `ResultCode` if there was an error when trying to retrieve
+// this data.
+union PrinterCapsAndInfoResult {
+  PrinterCapsAndInfo printer_caps_and_info;
+  ResultCode result_code;
+};
 
 // The main interface to Chrome's Print Backend Service, which performs
 // printer queries and commands to operating system printer drivers in an
@@ -15,9 +46,8 @@
   Init(string locale);
 
   // Enumerates the list of installed local and network printers.
-  // No value provided for `printer_list` if there is a failure.
   EnumeratePrinters()
-    => (array<PrinterBasicInfo>? printer_list);
+    => (PrinterListResult printer_list);
 
   // Gets the default printer name from the data source.
   // No value for `printer_name` is provided if there is a failure.
@@ -25,16 +55,11 @@
     => (string? printer_name);
 
   // Gets the semantic capabilities and defaults for a specific printer.
-  // No value provided for `printer_caps` if there is a failure.
   GetPrinterSemanticCapsAndDefaults(string printer_name)
-    => (PrinterSemanticCapsAndDefaults? printer_caps);
+    => (PrinterSemanticCapsAndDefaultsResult printer_caps);
 
   // Gets the basic info, paper sizes, and semantic capabilities and defaults
   // for a specific printer.
-  // No value for `printer_info`, `user_defined_papers`, and `printer_caps` if
-  // there is a failure.
   FetchCapabilities(string printer_name)
-    => (PrinterBasicInfo? printer_info,
-        array<Paper>? user_defined_papers,
-        PrinterSemanticCapsAndDefaults? printer_caps);
+    => (PrinterCapsAndInfoResult printer_caps_and_info);
 };
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 49f1b3c..8967e90 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -5311,6 +5311,7 @@
       "../browser/ui/ash/keyboard_shortcut_viewer_metadata_unittest.cc",
       "../browser/ui/ash/media_client_impl_unittest.cc",
       "../browser/ui/ash/media_notification_provider_impl_unittest.cc",
+      "../browser/ui/ash/microphone_mute_notification_delegate_impl_unittest.cc",
       "../browser/ui/ash/multi_user/multi_profile_support_unittest.cc",
       "../browser/ui/ash/multi_user/multi_user_context_menu_chromeos_unittest.cc",
       "../browser/ui/ash/multi_user/multi_user_util_chromeos_unittest.cc",
diff --git a/chrome/test/base/test_browser_window_aura.cc b/chrome/test/base/test_browser_window_aura.cc
index 8ac8f6d..dd5344fc 100644
--- a/chrome/test/base/test_browser_window_aura.cc
+++ b/chrome/test/base/test_browser_window_aura.cc
@@ -20,7 +20,7 @@
     Browser::CreateParams* params) {
   if (window.get() == nullptr) {
     window = std::make_unique<aura::Window>(nullptr);
-    window->set_id(0);
+    window->SetId(0);
     window->SetType(aura::client::WINDOW_TYPE_NORMAL);
     window->Init(ui::LAYER_TEXTURED);
     window->Show();
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index c4febda..e0bfb16 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -75,6 +75,7 @@
       "load_time_data_browsertest.js",
       "management/a11y/management_a11y_test.js",
       "media_internals/media_internals_ui_browsertest.js",
+      "media_router/cast_feedback_ui_browsertest.js",
       "net_internals/net_internals_browsertest.js",
       "ntp4.js",
       "resources/webui_resources_browsertest.js",
@@ -518,6 +519,7 @@
     "download_shelf:closure_compile",
     "inline_login:closure_compile",
     "js/cr:closure_compile",
+    "media_router:closure_compile",
     "new_tab_page:closure_compile",
     "read_later:closure_compile",
     "read_later/side_panel:closure_compile",
diff --git a/chrome/test/data/webui/chromeos/diagnostics/connectivity_card_test.js b/chrome/test/data/webui/chromeos/diagnostics/connectivity_card_test.js
index 00e9664..9c12d1e 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/connectivity_card_test.js
+++ b/chrome/test/data/webui/chromeos/diagnostics/connectivity_card_test.js
@@ -58,8 +58,11 @@
   test('ConnectivityCardPopulated', () => {
     return initializeConnectivityCard('ethernetGuid', [fakeEthernetNetwork])
         .then(() => {
-          dx_utils.assertElementContainsText(
-              connectivityCardElement.$$('#activeGuid'), 'ethernetGuid');
+          const ethernetInfoElement = dx_utils.getEthernetInfoElement(
+              connectivityCardElement.$$('network-info'));
+          dx_utils.assertTextContains(
+              dx_utils.getDataPointValue(ethernetInfoElement, '#guid'),
+              fakeEthernetNetwork.guid);
         });
   });
 }
\ No newline at end of file
diff --git a/chrome/test/data/webui/chromeos/diagnostics/network_list_test.js b/chrome/test/data/webui/chromeos/diagnostics/network_list_test.js
index 7d7a10ca..179cd73 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/network_list_test.js
+++ b/chrome/test/data/webui/chromeos/diagnostics/network_list_test.js
@@ -97,9 +97,9 @@
     // of its initialization. Registering this observer causes it to
     // fire once.
     return initializeNetworkList(fakeNetworkGuidInfoList).then(() => {
-      dx_utils.assertElementContainsText(
-          getConnectivityCard().$$('#activeGuid'),
-          /**  @type {string} */ (fakeNetworkGuidInfoList[0].activeGuid));
+      assertEquals(
+          getConnectivityCard().activeGuid,
+          fakeNetworkGuidInfoList[0].activeGuid);
     });
   });
 
@@ -109,9 +109,9 @@
         .then(() => {
           // Triggering the NetworkListObserver provides
           // the second observation: fakeNetworkGuidInfoList[1].
-          dx_utils.assertElementContainsText(
-              getConnectivityCard().$$('#activeGuid'),
-              /** @type {string} */ (fakeNetworkGuidInfoList[1].activeGuid));
+          assertEquals(
+              getConnectivityCard().activeGuid,
+              fakeNetworkGuidInfoList[1].activeGuid);
         });
   });
 
@@ -160,9 +160,9 @@
           dx_utils.assertTextContains(
               cellularInfoElement.$$('#guid').value, fakeCellularNetwork.guid);
 
-          dx_utils.assertElementContainsText(
-              getConnectivityCard().$$('#activeGuid'),
-              fakeEthernetNetwork.guid);
+          assertEquals(
+              getConnectivityCard().activeGuid,
+              fakeNetworkGuidInfoList[0].activeGuid);
 
           return triggerNetworkListObserver();
         })
@@ -171,8 +171,9 @@
               networkCardElements[0].$$('network-info'));
           dx_utils.assertTextContains(
               cellularInfoElement.$$('#guid').value, fakeCellularNetwork.guid);
-          dx_utils.assertElementContainsText(
-              getConnectivityCard().$$('#activeGuid'), fakeWifiNetwork.guid);
+          assertEquals(
+              getConnectivityCard().activeGuid,
+              fakeNetworkGuidInfoList[1].activeGuid);
         });
   });
 }
\ No newline at end of file
diff --git a/chrome/test/data/webui/chromeos/scanning/scanning_app_test.js b/chrome/test/data/webui/chromeos/scanning/scanning_app_test.js
index 445aa93..5f1f6c96 100644
--- a/chrome/test/data/webui/chromeos/scanning/scanning_app_test.js
+++ b/chrome/test/data/webui/chromeos/scanning/scanning_app_test.js
@@ -7,7 +7,7 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
 import {setScanServiceForTesting} from 'chrome://scanning/mojo_interface_provider.js';
-import {ScannerArr, ScannerSetting, ScanSettings} from 'chrome://scanning/scanning_app_types.js';
+import {MAX_NUM_SAVED_SCANNERS, ScannerArr, ScannerSetting, ScanSettings} from 'chrome://scanning/scanning_app_types.js';
 import {tokenToString} from 'chrome://scanning/scanning_app_util.js';
 import {ScanningBrowserProxyImpl} from 'chrome://scanning/scanning_browser_proxy.js';
 
@@ -443,6 +443,8 @@
 
     // Replace |lastScanDate|, which is a current date timestamp, with a fixed
     // date so assertArrayEquals() can be used.
+    expectedScanSettings.scanners.forEach(
+        scanner => scanner.lastScanDate = LAST_SCAN_DATE);
     actualScanSettings.scanners.forEach(
         scanner => scanner.lastScanDate = LAST_SCAN_DATE);
     assertArrayEquals(
@@ -1391,4 +1393,103 @@
           compareSavedScanSettings(savedScanSettings, actualSavedScanSettings);
         });
   });
+
+  // Verify that the correct scanner gets evicted when there are too many
+  // scanners in saved scan settings.
+  test('evictScannersOverTheMaxLimit', () => {
+    if (!loadTimeData.getBoolean('scanAppStickySettingsEnabled')) {
+      return;
+    }
+
+    const scannerToEvict = {
+      name: secondScannerName,
+      lastScanDate: '1/1/2021',
+      sourceName: ADF_DUPLEX,
+      fileType: ash.scanning.mojom.FileType.kPng,
+      colorMode: ash.scanning.mojom.ColorMode.kBlackAndWhite,
+      pageSize: ash.scanning.mojom.PageSize.kMax,
+      resolutionDpi: 100,
+    };
+
+    // Create an identical scanner with `lastScanDate` set to infinity so it
+    // will always have a later `lastScanDate` than |scannerToEvict|.
+    const scannerToKeep = Object.assign({}, scannerToEvict);
+    scannerToKeep.lastScanDate = '9999-12-31T08:00:00.000Z';
+    assertTrue(
+        new Date(scannerToKeep.lastScanDate) >
+        new Date(scannerToEvict.lastScanDate));
+
+
+    const scannersToKeep =
+        /** @type {!Array<ScannerSetting>} */ (
+            new Array(MAX_NUM_SAVED_SCANNERS).fill(scannerToKeep));
+
+    // Put |scannerToEvict| in the front of |scannersToKeep| to test that it
+    // get correctly sorted to the back of the array when evicting scanners.
+    const savedScanSettings = {
+      lastUsedScannerName: secondScannerName,
+      scanToPath: MY_FILES_PATH,
+      scanners: [scannerToEvict].concat(scannersToKeep),
+    };
+    testBrowserProxy.setSavedSettings(JSON.stringify(savedScanSettings));
+
+    return initializeScanningApp(expectedScanners, capabilities)
+        .then(() => {
+          return getScannerCapabilities();
+        })
+        .then(() => {
+          scanningApp.$$('#scanButton').click();
+
+          const actualSavedScanSettings = /** @type {!ScanSettings} */
+              (JSON.parse(/** @type {string} */ (
+                  testBrowserProxy.getArgs('saveScanSettings')[0])));
+          assertEquals(
+              MAX_NUM_SAVED_SCANNERS, actualSavedScanSettings.scanners.length);
+          assertArrayEquals(scannersToKeep, actualSavedScanSettings.scanners);
+        });
+  });
+
+  // Verify that no scanners get evicted when the number of scanners in saved
+  // scan settings is equal to |MAX_NUM_SAVED_SCANNERS|.
+  test('doNotEvictScannersAtMax', () => {
+    if (!loadTimeData.getBoolean('scanAppStickySettingsEnabled')) {
+      return;
+    }
+
+    const scanners = /** @type {!Array<ScannerSetting>} */ (
+        new Array(MAX_NUM_SAVED_SCANNERS));
+    for (let i = 0; i < MAX_NUM_SAVED_SCANNERS; i++) {
+      scanners[i] = {
+        name: 'Scanner ' + (i + 1),
+        lastScanDate: new Date(new Date().getTime() + i),
+        sourceName: ADF_DUPLEX,
+        fileType: ash.scanning.mojom.FileType.kPng,
+        colorMode: ash.scanning.mojom.ColorMode.kBlackAndWhite,
+        pageSize: ash.scanning.mojom.PageSize.kMax,
+        resolutionDpi: 300,
+      };
+    }
+
+    const savedScanSettings = {
+      lastUsedScannerName: firstScannerName,
+      scanToPath: MY_FILES_PATH,
+      scanners: scanners,
+    };
+    testBrowserProxy.setSavedSettings(JSON.stringify(savedScanSettings));
+
+    return initializeScanningApp(expectedScanners, capabilities)
+        .then(() => {
+          return getScannerCapabilities();
+        })
+        .then(() => {
+          scanningApp.$$('#scanButton').click();
+
+          const actualSavedScanSettings = /** @type {!ScanSettings} */
+              (JSON.parse(/** @type {string} */ (
+                  testBrowserProxy.getArgs('saveScanSettings')[0])));
+          assertEquals(
+              MAX_NUM_SAVED_SCANNERS, actualSavedScanSettings.scanners.length);
+          compareSavedScanSettings(savedScanSettings, actualSavedScanSettings);
+        });
+  });
 }
diff --git a/chrome/test/data/webui/cr_components/chromeos/network/network_ip_config_test.js b/chrome/test/data/webui/cr_components/chromeos/network/network_ip_config_test.js
index ca5b00a..79bcfc8 100644
--- a/chrome/test/data/webui/cr_components/chromeos/network/network_ip_config_test.js
+++ b/chrome/test/data/webui/cr_components/chromeos/network/network_ip_config_test.js
@@ -7,6 +7,7 @@
 // #import 'chrome://resources/cr_components/chromeos/network/network_ip_config.m.js';
 
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+// #import {OncMojo} from 'chrome://resources/cr_components/chromeos/network/onc_mojo.m.js';
 // clang-format on
 
 suite('NetworkIpConfigTest', function() {
@@ -14,6 +15,9 @@
   let ipConfig;
 
   setup(function() {
+    loadTimeData.overrideValues({
+      updatedCellularActivationUi: true,
+    });
     ipConfig = document.createElement('network-ip-config');
     document.body.appendChild(ipConfig);
     Polymer.dom.flush();
@@ -21,8 +25,7 @@
 
   test('Enabled', function() {
     const mojom = chromeos.networkConfig.mojom;
-    assertTrue(!!ipConfig.$.autoConfigIpToggle);
-
+    assertTrue(!!ipConfig.$$('#autoConfigIpToggle'));
     // WiFi non-policy networks should enable autoConfigIpToggle.
     ipConfig.managedProperties = {
       ipAddressConfigType: {
@@ -32,31 +35,20 @@
       type: mojom.NetworkType.kWiFi,
     };
     Polymer.dom.flush();
-    assertFalse(ipConfig.$.autoConfigIpToggle.disabled);
-
-    // Cellular network should disable autoConfigIpToggle.
-    ipConfig.managedProperties = {
-      ipAddressConfigType: {
-        activeValue: 'Static',
-        policySource: mojom.PolicySource.kNone,
-      },
-      type: mojom.NetworkType.kCellular,
-    };
-    Polymer.dom.flush();
-    assertTrue(ipConfig.$.autoConfigIpToggle.disabled);
+    assertFalse(ipConfig.$$('#autoConfigIpToggle').disabled);
   });
 
   test('Auto-config toggle policy enforcement', function() {
     const mojom = chromeos.networkConfig.mojom;
 
-    assertTrue(!!ipConfig.$.autoConfigIpToggle);
+    assertTrue(!!ipConfig.$$('#autoConfigIpToggle'));
 
     // ipAddressConfigType is not set; auto-config is toggleable.
     ipConfig.managedProperties = {
       ipAddressConfigType: null,
     };
     Polymer.dom.flush();
-    assertFalse(ipConfig.$.autoConfigIpToggle.disabled);
+    assertFalse(ipConfig.$$('#autoConfigIpToggle').disabled);
 
     // ipAddressConfigType policy is not enforced (kNone).
     ipConfig.managedProperties = {
@@ -66,7 +58,7 @@
       },
     };
     Polymer.dom.flush();
-    assertFalse(ipConfig.$.autoConfigIpToggle.disabled);
+    assertFalse(ipConfig.$$('#autoConfigIpToggle').disabled);
 
     // ipAddressConfigType policy is enforced.
     ipConfig.managedProperties = {
@@ -76,7 +68,7 @@
       },
     };
     Polymer.dom.flush();
-    assertTrue(ipConfig.$.autoConfigIpToggle.disabled);
+    assertTrue(ipConfig.$$('#autoConfigIpToggle').disabled);
   });
 
   test('Disabled UI state', function() {
@@ -97,7 +89,7 @@
     };
     Polymer.dom.flush();
 
-    const autoConfigIpToggle = ipConfig.$.autoConfigIpToggle;
+    const autoConfigIpToggle = ipConfig.$$('#autoConfigIpToggle');
     const propertyList = ipConfig.$$('network-property-list-mojo');
 
     assertFalse(autoConfigIpToggle.disabled);
@@ -108,4 +100,23 @@
     assertTrue(autoConfigIpToggle.disabled);
     assertTrue(propertyList.disabled);
   });
+
+  test('Do not show toggle if network is cellular', function() {
+    const getAutoConfig = () => ipConfig.$$('#autoConfig');
+    const mojom = chromeos.networkConfig.mojom;
+
+    const properties = OncMojo.getDefaultManagedProperties(
+        mojom.NetworkType.kCellular, 'cellular');
+    ipConfig.managedProperties = properties;
+    Polymer.dom.flush();
+
+    assertFalse(!!getAutoConfig());
+
+    const wifi = OncMojo.getDefaultManagedProperties(
+        chromeos.networkConfig.mojom.NetworkType.kWiFi, 'someguid', '');
+    ipConfig.managedProperties = wifi;
+    Polymer.dom.flush();
+
+    assertTrue(!!getAutoConfig());
+  });
 });
diff --git a/chrome/test/data/webui/media_router/BUILD.gn b/chrome/test/data/webui/media_router/BUILD.gn
new file mode 100644
index 0000000..aae9c19
--- /dev/null
+++ b/chrome/test/data/webui/media_router/BUILD.gn
@@ -0,0 +1,25 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//third_party/closure_compiler/compile_js.gni")
+
+js_library("cast_feedback_ui_test") {
+  deps = [
+    "..:chai_assert",
+    "..:test_browser_proxy.m",
+    "//chrome/browser/resources/media_router:cast_feedback_ui",
+    "//ui/webui/resources/js:cr.m",
+  ]
+  externs_list = [ "$externs_path/mocha-2.5.js" ]
+}
+
+js_type_check("closure_compile") {
+  is_polymer3 = true
+  deps = [ ":cast_feedback_ui_test" ]
+  closure_flags = default_closure_args + [
+                    "browser_resolver_prefix_replacements=\"chrome://cast-feedback/=../../chrome/browser/resources/media_router/\"",
+                    "js_module_root=../../chrome/test/data/webui/",
+                    "js_module_root=./gen/chrome/test/data/webui/",
+                  ]
+}
diff --git a/chrome/test/data/webui/media_router/cast_feedback_ui_browsertest.js b/chrome/test/data/webui/media_router/cast_feedback_ui_browsertest.js
new file mode 100644
index 0000000..61dd471
--- /dev/null
+++ b/chrome/test/data/webui/media_router/cast_feedback_ui_browsertest.js
@@ -0,0 +1,24 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Code written into generated C++ code.
+GEN('#include "content/public/test/browser_test.h"');
+
+GEN_INCLUDE(['//chrome/test/data/webui/polymer_browser_test_base.js']);
+
+// eslint-disable-next-line no-var
+var CastFeedbackUITest = class extends PolymerTest {
+  get browsePreload() {
+    return 'chrome://cast-feedback/test_loader.html?' +
+        'module=media_router/cast_feedback_ui_test.js';
+  }
+};
+
+TEST_F('CastFeedbackUITest', 'Success', function() {
+  runMochaTest('Suite', 'Success');
+});
+
+TEST_F('CastFeedbackUITest', 'Failure', function() {
+  runMochaTest('Suite', 'Failure');
+});
diff --git a/chrome/test/data/webui/media_router/cast_feedback_ui_test.js b/chrome/test/data/webui/media_router/cast_feedback_ui_test.js
new file mode 100644
index 0000000..78fa5a8d
--- /dev/null
+++ b/chrome/test/data/webui/media_router/cast_feedback_ui_test.js
@@ -0,0 +1,103 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import {FeedbackEvent, FeedbackUiBrowserProxy, FeedbackUiBrowserProxyImpl} from 'chrome://cast-feedback/cast_feedback_ui.js';
+import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
+
+import {assertDeepEquals, assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
+import {TestBrowserProxy} from '../test_browser_proxy.m.js';
+
+/** @implements {FeedbackUiBrowserProxy} */
+class TestFeedbackUiBrowserProxy extends TestBrowserProxy {
+  constructor() {
+    super(['recordEvent', 'sendFeedback']);
+
+    /** @type {number} */
+    this.timesToFail = 0;
+
+    /** @const {!PromiseResolver} */
+    this.resolver = new PromiseResolver();
+  }
+
+  /** @override */
+  recordEvent(event) {
+    this.methodCalled('recordEvent', event);
+    if (event === FeedbackEvent.SUCCEEDED || event === FeedbackEvent.FAILED) {
+      this.resolver.resolve();
+    }
+  }
+
+  /** @override */
+  sendFeedback(info) {
+    this.methodCalled('sendFeedback', info);
+    return Promise.resolve(
+        this.getCallCount('sendFeedback') > this.timesToFail ?
+            chrome.feedbackPrivate.Status.SUCCESS :
+            chrome.feedbackPrivate.Status.DELAYED);
+  }
+}
+
+suite('Suite', function() {
+  let browserProxy;
+  let ui;
+  const TEST_COMMENT = 'test comment';
+
+  function submit() {
+    const textArea = ui.shadowRoot.querySelector('textarea');
+    textArea.value = TEST_COMMENT;
+    textArea.dispatchEvent(new CustomEvent('input'));
+
+    const submitButton = ui.shadowRoot.querySelector('.action-button');
+    submitButton.click();
+  }
+
+  setup(function() {
+    browserProxy = new TestFeedbackUiBrowserProxy();
+    FeedbackUiBrowserProxyImpl.instance_ = browserProxy;
+    ui = document.createElement('feedback-ui');
+    document.body.innerHtml = '';
+    document.body.appendChild(ui);
+  });
+
+  test('Success', async function() {
+    browserProxy.timesToFail = 1;
+    ui.resendDelayMs = 50;
+    ui.maxResendAttempts = 2;
+    submit();
+    await browserProxy.resolver.promise;
+    assertEquals(2, browserProxy.getCallCount('sendFeedback'));
+    assertDeepEquals(
+        [
+          FeedbackEvent.OPENED,
+          FeedbackEvent.SENDING,
+          FeedbackEvent.RESENDING,
+          FeedbackEvent.SUCCEEDED,
+        ],
+        browserProxy.getArgs('recordEvent'));
+    assertTrue(ui.feedbackSent);
+    assertTrue(
+        browserProxy.getArgs('sendFeedback')[0].description.indexOf(
+            TEST_COMMENT) !== -1);
+  });
+
+
+  test('Failure', async function() {
+    browserProxy.timesToFail = 3;
+    ui.resendDelayMs = 50;
+    ui.maxResendAttempts = 2;
+    submit();
+    await browserProxy.resolver.promise;
+    assertEquals(3, browserProxy.getCallCount('sendFeedback'));
+    assertDeepEquals(
+        [
+          FeedbackEvent.OPENED,
+          FeedbackEvent.SENDING,
+          FeedbackEvent.RESENDING,
+          FeedbackEvent.RESENDING,
+          FeedbackEvent.FAILED,
+        ],
+        browserProxy.getArgs('recordEvent'));
+    assertFalse(ui.feedbackSent);
+  });
+});
diff --git a/chrome/test/data/webui/new_tab_page/app_test.js b/chrome/test/data/webui/new_tab_page/app_test.js
index 8f51185..974d960 100644
--- a/chrome/test/data/webui/new_tab_page/app_test.js
+++ b/chrome/test/data/webui/new_tab_page/app_test.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {$$, BackgroundManager, BackgroundSelectionType, CustomizeDialogPage, ModuleRegistry, NewTabPageProxy, PromoBrowserCommandProxy, VoiceAction, WindowProxy} from 'chrome://new-tab-page/new_tab_page.js';
+import {$$, BackgroundManager, BackgroundSelectionType, CustomizeDialogPage, ModuleRegistry, NewTabPageProxy, NtpElement, PromoBrowserCommandProxy, VoiceAction, WindowProxy} from 'chrome://new-tab-page/new_tab_page.js';
 import {isMac} from 'chrome://resources/js/cr.m.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {PromiseResolver} from 'chrome://resources/js/promise_resolver.m.js';
@@ -458,6 +458,57 @@
     assertTrue(commandExecuted);
   });
 
+  suite('click recording', () => {
+    suiteSetup(() => {
+      loadTimeData.overrideValues({
+        modulesEnabled: true,
+      });
+    });
+
+    [['#content', NtpElement.kBackground],
+     ['ntp-logo', NtpElement.kLogo],
+     ['ntp-realbox', NtpElement.kRealbox],
+     ['ntp-most-visited', NtpElement.kMostVisited],
+     ['ntp-middle-slot-promo', NtpElement.kMiddleSlotPromo],
+     ['ntp-modules', NtpElement.kModule],
+    ].forEach(([selector, element]) => {
+      test(`clicking '${selector}' records click`, () => {
+        // Act.
+        $$(app, selector).click();
+
+        // Assert.
+        assertEquals(1, metrics.count('NewTabPage.Click'));
+        assertEquals(1, metrics.count('NewTabPage.Click', element));
+      });
+    });
+
+    test('clicking customize records click', () => {
+      // Act.
+      $$(app, '#customizeButton').click();
+      $$(app, '#customizeDialogIf').render();
+      $$(app, 'ntp-customize-dialog').click();
+
+      // Assert.
+      assertEquals(2, metrics.count('NewTabPage.Click'));
+      assertEquals(2, metrics.count('NewTabPage.Click', NtpElement.kCustomize));
+    });
+
+    test('clicking OGB records click', () => {
+      // Act.
+      window.dispatchEvent(new MessageEvent('message', {
+        data: {
+          frameType: 'one-google-bar',
+          messageType: 'click',
+        }
+      }));
+
+      // Assert.
+      assertEquals(1, metrics.count('NewTabPage.Click'));
+      assertEquals(
+          1, metrics.count('NewTabPage.Click', NtpElement.kOneGoogleBar));
+    });
+  });
+
   suite('modules', () => {
     suiteSetup(() => {
       loadTimeData.overrideValues({
diff --git a/chrome/test/data/webui/read_later/read_later_app_test.js b/chrome/test/data/webui/read_later/read_later_app_test.js
index 5d7442d..edfb99c 100644
--- a/chrome/test/data/webui/read_later/read_later_app_test.js
+++ b/chrome/test/data/webui/read_later/read_later_app_test.js
@@ -105,8 +105,9 @@
   test('click on item passes correct url', async () => {
     const expectedUrl = 'https://www.apple.com';
     clickItem(expectedUrl);
-    const url = await testProxy.whenCalled('openSavedEntry');
+    const [url, updateReadStatus] = await testProxy.whenCalled('openURL');
     assertEquals(url.url, expectedUrl);
+    assertTrue(updateReadStatus);
   });
 
   test('Click on item mark as read button triggers actions', async () => {
@@ -160,8 +161,9 @@
         (readLaterApp.shadowRoot.querySelector(`[data-url="${expectedUrl}"]`));
 
     keyDownOn(readLaterItem, 0, [], 'Enter');
-    const url = await testProxy.whenCalled('openSavedEntry');
+    const [url, updateReadStatus] = await testProxy.whenCalled('openURL');
     assertEquals(url.url, expectedUrl);
+    assertTrue(updateReadStatus);
   });
 
   test('Space key triggers action and passes correct url', async () => {
@@ -170,8 +172,9 @@
         (readLaterApp.shadowRoot.querySelector(`[data-url="${expectedUrl}"]`));
 
     keyDownOn(readLaterItem, 0, [], ' ');
-    const url = await testProxy.whenCalled('openSavedEntry');
+    const [url, updateReadStatus] = await testProxy.whenCalled('openURL');
     assertEquals(url.url, expectedUrl);
+    assertTrue(updateReadStatus);
   });
 
   test('Keyboard navigation abides by item list range boundaries', async () => {
diff --git a/chrome/test/data/webui/read_later/side_panel/BUILD.gn b/chrome/test/data/webui/read_later/side_panel/BUILD.gn
index f68d506..b9a5138 100644
--- a/chrome/test/data/webui/read_later/side_panel/BUILD.gn
+++ b/chrome/test/data/webui/read_later/side_panel/BUILD.gn
@@ -30,6 +30,7 @@
 
 js_library("bookmark_folder_test") {
   deps = [
+    "../:test_read_later_api_proxy",
     "../..:chai_assert",
     "//chrome/browser/resources/read_later/side_panel:bookmark_folder",
     "//ui/webui/resources/js:icon.m",
diff --git a/chrome/test/data/webui/read_later/side_panel/bookmark_folder_test.js b/chrome/test/data/webui/read_later/side_panel/bookmark_folder_test.js
index 8de6fe1..fe50b71 100644
--- a/chrome/test/data/webui/read_later/side_panel/bookmark_folder_test.js
+++ b/chrome/test/data/webui/read_later/side_panel/bookmark_folder_test.js
@@ -6,16 +6,21 @@
 // finish running its tests.
 import 'chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js';
 
+import {ReadLaterApiProxy, ReadLaterApiProxyImpl} from 'chrome://read-later.top-chrome/read_later_api_proxy.js';
 import {BookmarkFolderElement} from 'chrome://read-later.top-chrome/side_panel/bookmark_folder.js';
 import {getFaviconForPageURL} from 'chrome://resources/js/icon.m.js';
 
 import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 import {flushTasks} from '../../test_util.m.js';
+import {TestReadLaterApiProxy} from '../test_read_later_api_proxy.js';
 
 suite('SidePanelBookmarkFolderTest', () => {
   /** @type {!BookmarkFolderElement} */
   let bookmarkFolder;
 
+  /** @type {!TestReadLaterApiProxy} */
+  let readLaterApi;
+
   /** @type {!chrome.bookmarks.BookmarkTreeNode} */
   const folder = {
     id: '0',
@@ -49,6 +54,9 @@
   setup(async () => {
     document.body.innerHTML = '';
 
+    readLaterApi = new TestReadLaterApiProxy();
+    ReadLaterApiProxyImpl.instance_ = readLaterApi;
+
     bookmarkFolder = /** @type {!BookmarkFolderElement} */ (
         document.createElement('bookmark-folder'));
     bookmarkFolder.folder = folder;
@@ -100,4 +108,11 @@
     assertTrue(arrowIcon.hasAttribute('open'));
     assertFalse(childrenElement.hasAttribute('hidden'));
   });
+
+  test('OpensBookmark', async () => {
+    getChildElements()[1].click();
+    const [url, updateReadStatus] = await readLaterApi.whenCalled('openURL');
+    assertEquals(folder.children[1].url, url.url);
+    assertFalse(updateReadStatus);
+  });
 });
\ No newline at end of file
diff --git a/chrome/test/data/webui/read_later/test_read_later_api_proxy.js b/chrome/test/data/webui/read_later/test_read_later_api_proxy.js
index 76cd2fe..9f5b044b 100644
--- a/chrome/test/data/webui/read_later/test_read_later_api_proxy.js
+++ b/chrome/test/data/webui/read_later/test_read_later_api_proxy.js
@@ -12,7 +12,7 @@
   constructor() {
     super([
       'getReadLaterEntries',
-      'openSavedEntry',
+      'openURL',
       'updateReadStatus',
       'removeEntry',
       'showUI',
@@ -33,8 +33,8 @@
   }
 
   /** @override */
-  openSavedEntry(url) {
-    this.methodCalled('openSavedEntry', url);
+  openURL(url, mark_as_read) {
+    this.methodCalled('openURL', [url, mark_as_read]);
   }
 
   /** @override */
diff --git a/chrome/test/data/webui/settings/chromeos/internet_detail_menu_test.js b/chrome/test/data/webui/settings/chromeos/internet_detail_menu_test.js
index f8992c918..54c3831 100644
--- a/chrome/test/data/webui/settings/chromeos/internet_detail_menu_test.js
+++ b/chrome/test/data/webui/settings/chromeos/internet_detail_menu_test.js
@@ -12,18 +12,24 @@
 // #import {assertEquals, assertTrue} from '../../chai_assert.js';
 // #import {OncMojo} from 'chrome://resources/cr_components/chromeos/network/onc_mojo.m.js';
 // #import {eventToPromise, flushTasks} from 'chrome://test/test_util.m.js';
+// #import {setESimManagerRemoteForTesting} from 'chrome://resources/cr_components/chromeos/cellular_setup/mojo_interface_provider.m.js';
+// #import {FakeESimManagerRemote} from 'chrome://test/cr_components/chromeos/cellular_setup/fake_esim_manager_remote.m.js';
 // clang-format on
 
 suite('InternetDetailMenu', function() {
   let internetDetailMenu;
   let mojoApi_;
   let mojom;
+  let eSimManagerRemote;
 
   setup(function() {
     mojoApi_ = new FakeNetworkConfig();
     network_config.MojoInterfaceProviderImpl.getInstance().remote_ = mojoApi_;
     mojoApi_.resetForTest();
 
+    eSimManagerRemote = new cellular_setup.FakeESimManagerRemote();
+    cellular_setup.setESimManagerRemoteForTesting(eSimManagerRemote);
+
     mojom = chromeos.networkConfig.mojom;
     mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kCellular, true);
   });
@@ -212,4 +218,47 @@
     };
     assertFalse(tripleDot.disabled);
   });
+
+  test('Raname Dialog ', async function() {
+    const profileName = 'test profile name';
+    const iccid = '100000';
+    const eid = '1111111111';
+
+    addEsimCellularNetwork(iccid, eid);
+    init();
+    await flushAsync();
+    const tripleDot = internetDetailMenu.$$('#moreNetworkDetail');
+    assertTrue(!!tripleDot);
+    assertFalse(tripleDot.disabled);
+
+    // Change esim profile name.
+    const cellular =
+        getManagedProperties(mojom.NetworkType.kCellular, 'cellular');
+    cellular.typeProperties.cellular.iccid = iccid;
+    cellular.typeProperties.cellular.eid = eid;
+    cellular.name.activeValue = profileName;
+    mojoApi_.setManagedPropertiesForTest(cellular);
+    await flushAsync();
+
+    // Trigger change in esim manager listener
+    eSimManagerRemote.notifyProfileChangedForTest(null);
+    await flushAsync();
+
+    tripleDot.click();
+    await flushAsync();
+
+    const actionMenu =
+        internetDetailMenu.shadowRoot.querySelector('cr-action-menu');
+    assertTrue(!!actionMenu);
+    assertTrue(actionMenu.open);
+
+    const renameBtn = actionMenu.querySelector('#renameBtn');
+    assertTrue(!!renameBtn);
+
+    const renameProfilePromise = test_util.eventToPromise(
+        'show-esim-profile-rename-dialog', internetDetailMenu);
+    renameBtn.click();
+    const event = await renameProfilePromise;
+    assertEquals(profileName, event.detail.networkState.name);
+  });
 });
\ No newline at end of file
diff --git a/chrome/test/data/webui/settings/chromeos/os_search_page_test.js b/chrome/test/data/webui/settings/chromeos/os_search_page_test.js
index c60b696..994a412 100644
--- a/chrome/test/data/webui/settings/chromeos/os_search_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/os_search_page_test.js
@@ -17,6 +17,9 @@
   let page = null;
 
   setup(function() {
+    loadTimeData.overrideValues({
+      shouldShowQuickAnswersSettings: false,
+    });
     page = document.createElement('os-settings-search-page');
     document.body.appendChild(page);
     Polymer.dom.flush();
diff --git a/chrome/test/data/webui/settings/chromeos/search_subpage_test.js b/chrome/test/data/webui/settings/chromeos/search_subpage_test.js
index 2a9e16e..dccfc4f 100644
--- a/chrome/test/data/webui/settings/chromeos/search_subpage_test.js
+++ b/chrome/test/data/webui/settings/chromeos/search_subpage_test.js
@@ -32,6 +32,24 @@
     page.remove();
   });
 
+  test('Deep link to Preferred Search Engine', async () => {
+    loadTimeData.overrideValues({isDeepLinkingEnabled: true});
+    assertTrue(loadTimeData.getBoolean('isDeepLinkingEnabled'));
+
+    const params = new URLSearchParams;
+    params.append('settingId', '600');
+    settings.Router.getInstance().navigateTo(
+        settings.routes.SEARCH_SUBPAGE, params);
+
+    const deepLinkElement =
+        page.$$('settings-search-engine').$$('#searchSelectionDialogButton');
+    assertTrue(!!deepLinkElement);
+    await test_util.waitAfterNextRender(deepLinkElement);
+    assertEquals(
+        deepLinkElement, getDeepActiveElement(),
+        'Preferred Search Engine button should be focused for settingId=600.');
+  });
+
   test('Deep link to Quick Answers On/Off', async () => {
     loadTimeData.overrideValues({isDeepLinkingEnabled: true});
     assertTrue(loadTimeData.getBoolean('isDeepLinkingEnabled'));
diff --git a/chrome/updater/win/installer/BUILD.gn b/chrome/updater/win/installer/BUILD.gn
index 989eace..1622943 100644
--- a/chrome/updater/win/installer/BUILD.gn
+++ b/chrome/updater/win/installer/BUILD.gn
@@ -53,8 +53,7 @@
   archive_name = target_name + "_archive"
   staging_dir = "$target_gen_dir/$target_name"
 
-  # TODO(crbug.com/1112471): Get this to run cleanly under Python 3.
-  python2_action(archive_name) {
+  action(archive_name) {
     script = "create_installer_archive.py"
 
     release_file = "updater.release"
diff --git a/chrome/updater/win/installer/create_installer_archive.py b/chrome/updater/win/installer/create_installer_archive.py
index 01e020b..053ee1e9 100644
--- a/chrome/updater/win/installer/create_installer_archive.py
+++ b/chrome/updater/win/installer/create_installer_archive.py
@@ -11,7 +11,7 @@
 
 """
 
-import ConfigParser
+import configparser
 import glob
 import optparse
 import os
@@ -104,7 +104,7 @@
   """
   variables = {}
   variables['UpdaterDir'] = UPDATER_DIR
-  config = ConfigParser.SafeConfigParser(variables)
+  config = configparser.ConfigParser(variables)
   config.read(input_file)
   return config
 
@@ -113,14 +113,14 @@
   captures its output and only emits it on failure.
   """
   if verbose:
-    print 'Running', cmd
+    print('Running', cmd)
 
   try:
     # Run |cmd|, redirecting stderr to stdout in order for captured errors to be
     # inline with corresponding stdout.
     output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
     if verbose:
-      print output
+      print(output)
   except subprocess.CalledProcessError as e:
     raise Exception("Error while running cmd: %s\n"
                     "Exit code: %s\n"
@@ -345,5 +345,5 @@
 if '__main__' == __name__:
   options = _ParseOptions()
   if options.verbose:
-    print sys.argv
+    print(sys.argv)
   sys.exit(main(options))
diff --git a/chromecast/base/device_capabilities_impl.cc b/chromecast/base/device_capabilities_impl.cc
index 387dfe9..4aa23c7f 100644
--- a/chromecast/base/device_capabilities_impl.cc
+++ b/chromecast/base/device_capabilities_impl.cc
@@ -17,7 +17,6 @@
 #include "base/strings/string_util.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/values.h"
-#include "chromecast/base/serializers.h"
 
 namespace chromecast {
 
diff --git a/chromecast/browser/cast_media_blocker_unittest.cc b/chromecast/browser/cast_media_blocker_unittest.cc
index 8210dfa..67896179 100644
--- a/chromecast/browser/cast_media_blocker_unittest.cc
+++ b/chromecast/browser/cast_media_blocker_unittest.cc
@@ -60,6 +60,7 @@
   MOCK_METHOD0(ToggleMicrophone, void());
   MOCK_METHOD0(ToggleCamera, void());
   MOCK_METHOD0(HangUp, void());
+  MOCK_METHOD0(Raise, void());
 
  private:
   DISALLOW_COPY_AND_ASSIGN(MockMediaSession);
diff --git a/chromecast/browser/webview/web_content_controller.cc b/chromecast/browser/webview/web_content_controller.cc
index 27c4d12..34394fb 100644
--- a/chromecast/browser/webview/web_content_controller.cc
+++ b/chromecast/browser/webview/web_content_controller.cc
@@ -218,7 +218,7 @@
 
   content::WebContents* contents = GetWebContents();
   auto* contents_window = contents->GetNativeView();
-  contents_window->set_id(window_id);
+  contents_window->SetId(window_id);
   // The aura window is hidden to avoid being shown via the usual layer method,
   // instead it is shows via a SurfaceDrawQuad by exo.
   contents_window->Hide();
diff --git a/chromecast/graphics/cast_focus_client_aura.cc b/chromecast/graphics/cast_focus_client_aura.cc
index 5bbf791..e8dda22 100644
--- a/chromecast/graphics/cast_focus_client_aura.cc
+++ b/chromecast/graphics/cast_focus_client_aura.cc
@@ -8,9 +8,9 @@
 #include "base/logging.h"
 #include "ui/aura/window.h"
 
-#define LOG_WINDOW_INFO(top_level, window)                              \
-  "top-level: " << (top_level)->id() << ": '" << (top_level)->GetName() \
-                << "', window: " << (window)->id() << ": '"             \
+#define LOG_WINDOW_INFO(top_level, window)                                 \
+  "top-level: " << (top_level)->GetId() << ": '" << (top_level)->GetName() \
+                << "', window: " << (window)->GetId() << ": '"             \
                 << (window)->GetName() << "'"
 
 namespace chromecast {
@@ -200,7 +200,7 @@
     // Compare z-order of top-level windows using the window IDs.
     aura::Window* top_level = GetZOrderWindow(window);
     DCHECK(top_level);
-    if (!next || top_level->id() >= next_top_level->id()) {
+    if (!next || top_level->GetId() >= next_top_level->GetId()) {
       next = window;
       next_top_level = top_level;
     }
diff --git a/chromecast/graphics/cast_focus_client_aura_test.cc b/chromecast/graphics/cast_focus_client_aura_test.cc
index 2ba5d91..ffd8d78a9 100644
--- a/chromecast/graphics/cast_focus_client_aura_test.cc
+++ b/chromecast/graphics/cast_focus_client_aura_test.cc
@@ -120,7 +120,7 @@
   // Add the window with the lowest z-order.
   std::unique_ptr<TestWindow> low(new TestWindow);
   low->delegate()->set_can_focus(true);
-  low->window()->set_id(1);
+  low->window()->SetId(1);
   window_tree_host->window()->AddChild(low->window());
   focus_client.FocusWindow(low->window());
   EXPECT_EQ(low->window(), focus_client.GetFocusedWindow());
@@ -128,7 +128,7 @@
   // Add the window with the highest z-order, and confirm that it gets focus.
   std::unique_ptr<TestWindow> high(new TestWindow);
   high->delegate()->set_can_focus(true);
-  high->window()->set_id(3);
+  high->window()->SetId(3);
   window_tree_host->window()->AddChild(high->window());
   focus_client.FocusWindow(high->window());
   EXPECT_EQ(high->window(), focus_client.GetFocusedWindow());
@@ -137,7 +137,7 @@
   // the highest z-order window.
   std::unique_ptr<TestWindow> middle(new TestWindow);
   middle->delegate()->set_can_focus(true);
-  middle->window()->set_id(2);
+  middle->window()->SetId(2);
   window_tree_host->window()->AddChild(middle->window());
   focus_client.FocusWindow(middle->window());
   EXPECT_EQ(high->window(), focus_client.GetFocusedWindow());
@@ -173,7 +173,7 @@
 
   // Add the window with the highest z-order.
   std::unique_ptr<TestWindow> high_parent(new TestWindow);
-  high_parent->window()->set_id(3);
+  high_parent->window()->SetId(3);
   std::unique_ptr<TestWindow> high_child(new TestWindow);
   high_child->delegate()->set_can_focus(true);
   high_parent->window()->AddChild(high_child->window());
@@ -183,7 +183,7 @@
 
   // Add the window with the lowest z-order.
   std::unique_ptr<TestWindow> low_parent(new TestWindow);
-  low_parent->window()->set_id(1);
+  low_parent->window()->SetId(1);
   std::unique_ptr<TestWindow> low_child(new TestWindow);
   low_child->delegate()->set_can_focus(true);
   low_parent->window()->AddChild(low_child->window());
diff --git a/chromecast/graphics/cast_window_manager_aura.cc b/chromecast/graphics/cast_window_manager_aura.cc
index 834fe51..e14a50c 100644
--- a/chromecast/graphics/cast_window_manager_aura.cc
+++ b/chromecast/graphics/cast_window_manager_aura.cc
@@ -136,10 +136,10 @@
                    [changed_window](aura::Window* lhs, aura::Window* rhs) {
                      // Promote |changed_window| to the top of the stack of
                      // windows with the same ID.
-                     if (lhs->id() == rhs->id() && rhs == changed_window)
+                     if (lhs->GetId() == rhs->GetId() && rhs == changed_window)
                        return true;
 
-                     return lhs->id() < rhs->id();
+                     return lhs->GetId() < rhs->GetId();
                    });
 
   std::vector<CastWindowManager::WindowId> visible_window_order;
@@ -148,7 +148,7 @@
       // static_cast is safe since the window ID value is originally derived
       // from CastWindowManager::WindowId.
       visible_window_order.push_back(
-          static_cast<CastWindowManager::WindowId>(windows[i]->id()));
+          static_cast<CastWindowManager::WindowId>(windows[i]->GetId()));
     }
     if (i == 0) {
       parent_->StackChildAtBottom(windows[i]);
@@ -280,7 +280,7 @@
   // Use aura::Window ID to maintain z-order. When the window's visibility
   // changes, we stack sibling windows based on this ID. Windows with higher
   // IDs are stacked on top.
-  window->set_id(static_cast<int>(z_order));
+  window->SetId(static_cast<int>(z_order));
 }
 
 void CastWindowManagerAura::InjectEvent(ui::Event* event) {
@@ -315,7 +315,7 @@
 }
 
 void CastWindowManagerAura::AddWindow(gfx::NativeView child) {
-  LOG(INFO) << "Adding window: " << child->id() << ": " << child->GetName();
+  LOG(INFO) << "Adding window: " << child->GetId() << ": " << child->GetName();
   Setup();
 
   DCHECK(child);
diff --git a/chromecast/graphics/cast_window_manager_aura_test.cc b/chromecast/graphics/cast_window_manager_aura_test.cc
index 241f4c6..e33b5d27 100644
--- a/chromecast/graphics/cast_window_manager_aura_test.cc
+++ b/chromecast/graphics/cast_window_manager_aura_test.cc
@@ -40,7 +40,7 @@
  public:
   explicit TestWindow(int id) : window_(&delegate_) {
     window_.Init(ui::LAYER_NOT_DRAWN);
-    window_.set_id(id);
+    window_.SetId(id);
     window_.SetBounds(gfx::Rect(0, 0, 1280, 720));
   }
 
@@ -66,7 +66,7 @@
 
   // We have chosen WindowId::BOTTOM to match the initial window ID of an Aura
   // window so that z-ordering works correctly.
-  EXPECT_EQ(window.id(), CastWindowManager::WindowId::BOTTOM);
+  EXPECT_EQ(window.GetId(), CastWindowManager::WindowId::BOTTOM);
 }
 
 TEST_F(CastWindowManagerAuraTest, WindowInput) {
@@ -128,8 +128,8 @@
 
 void VerifyWindowOrder(aura::Window* root_window) {
   for (size_t i = 0; i < root_window->children().size() - 1; ++i)
-    EXPECT_LE(root_window->children()[i]->id(),
-              root_window->children()[i + 1]->id());
+    EXPECT_LE(root_window->children()[i]->GetId(),
+              root_window->children()[i + 1]->GetId());
 }
 
 TEST_F(CastWindowManagerAuraTest, CheckProperWindowOrdering) {
diff --git a/chromecast/graphics/rounded_window_corners_manager.cc b/chromecast/graphics/rounded_window_corners_manager.cc
index 4167f77..14c8563 100644
--- a/chromecast/graphics/rounded_window_corners_manager.cc
+++ b/chromecast/graphics/rounded_window_corners_manager.cc
@@ -31,13 +31,14 @@
       return found_window;
   }
 
-  return window->id() != CastWindowManager::CORNERS_OVERLAY ? window : nullptr;
+  return window->GetId() != CastWindowManager::CORNERS_OVERLAY ? window
+                                                               : nullptr;
 }
 
 bool HasNonAppParent(const aura::Window* window) {
   const aura::Window* parent = window->parent();
   while (parent && parent->IsVisible()) {
-    if (parent->id() != CastWindowManager::APP)
+    if (parent->GetId() != CastWindowManager::APP)
       return true;
     else
       parent = parent->parent();
@@ -112,7 +113,7 @@
     if (!topmost_visible_window)
       return;
 
-    int window_id = topmost_visible_window->id();
+    int window_id = topmost_visible_window->GetId();
     // The window may be a child to a visible non-app window that does not draw
     // its own corners, so this needs to be checked for.
     bool set_rounded_corners =
diff --git a/chromecast/graphics/rounded_window_corners_manager_unittest.cc b/chromecast/graphics/rounded_window_corners_manager_unittest.cc
index 0db3b8b9..1395fe7 100644
--- a/chromecast/graphics/rounded_window_corners_manager_unittest.cc
+++ b/chromecast/graphics/rounded_window_corners_manager_unittest.cc
@@ -19,7 +19,7 @@
 
 class MockCastWindowManager : public CastWindowManagerAura {
  public:
-  MockCastWindowManager(bool enable_input)
+  explicit MockCastWindowManager(bool enable_input)
       : CastWindowManagerAura(enable_input),
         root_window_(new aura::Window(nullptr)) {
     root_window_->Init(ui::LAYER_TEXTURED);
@@ -329,7 +329,7 @@
   std::unique_ptr<aura::Window> volume_window =
       std::make_unique<aura::Window>(nullptr);
   volume_window->Init(ui::LAYER_TEXTURED);
-  volume_window->set_id(CastWindowManager::VOLUME);
+  volume_window->SetId(CastWindowManager::VOLUME);
   root_window->AddChild(volume_window.get());
   EXPECT_CALL(*mock_cast_window_manager_, SetEnableRoundedCorners(true));
   volume_window->Show();
@@ -355,7 +355,7 @@
   std::unique_ptr<aura::Window> unmanaged_app =
       std::make_unique<aura::Window>(nullptr);
   unmanaged_app->Init(ui::LAYER_TEXTURED);
-  unmanaged_app->set_id(CastWindowManager::UNMANAGED_APP);
+  unmanaged_app->SetId(CastWindowManager::UNMANAGED_APP);
   window_host->AddChild(unmanaged_app.get());
 
   EXPECT_CALL(*mock_cast_window_manager_, SetEnableRoundedCorners(true));
diff --git a/chromecast/media/cma/backend/android/volume_control_android.cc b/chromecast/media/cma/backend/android/volume_control_android.cc
index b750f9d1..4a561de 100644
--- a/chromecast/media/cma/backend/android/volume_control_android.cc
+++ b/chromecast/media/cma/backend/android/volume_control_android.cc
@@ -22,7 +22,6 @@
 #include "base/no_destructor.h"
 #include "base/numerics/ranges.h"
 #include "chromecast/base/init_command_line_shlib.h"
-#include "chromecast/base/serializers.h"
 #include "chromecast/chromecast_buildflags.h"
 #include "chromecast/media/cma/backend/android/audio_track_jni_headers/VolumeControl_jni.h"
 #include "chromecast/media/cma/backend/android/audio_track_jni_headers/VolumeMap_jni.h"
diff --git a/chromecast/media/cma/backend/mixer/post_processing_pipeline_parser.cc b/chromecast/media/cma/backend/mixer/post_processing_pipeline_parser.cc
index 1ef3deb..8b41038 100644
--- a/chromecast/media/cma/backend/mixer/post_processing_pipeline_parser.cc
+++ b/chromecast/media/cma/backend/mixer/post_processing_pipeline_parser.cc
@@ -7,9 +7,8 @@
 #include <utility>
 
 #include "base/files/file_util.h"
+#include "base/json/json_file_value_serializer.h"
 #include "base/logging.h"
-#include "base/values.h"
-#include "chromecast/base/serializers.h"
 #include "chromecast/media/base/audio_device_ids.h"
 #include "media/audio/audio_device_description.h"
 
@@ -49,11 +48,10 @@
                                other.volume_limits) {}
 
 PostProcessingPipelineParser::PostProcessingPipelineParser(
-    std::unique_ptr<base::DictionaryValue> config_dict)
+    base::Value config_dict)
     : file_path_(""), config_dict_(std::move(config_dict)) {
-  CHECK(config_dict_) << "Invalid JSON";
-  if (!config_dict_->GetDictionary(kPostProcessorsKey,
-                                   &postprocessor_config_)) {
+  postprocessor_config_ = config_dict_.FindPath(kPostProcessorsKey);
+  if (!postprocessor_config_) {
     LOG(WARNING) << "No post-processor config found.";
   }
 }
@@ -66,12 +64,16 @@
     return;
   }
 
-  config_dict_ =
-      base::DictionaryValue::From(DeserializeJsonFromFile(file_path_));
-  CHECK(config_dict_) << "Invalid JSON in " << file_path_;
+  JSONFileValueDeserializer deserializer(file_path_);
+  int error_code = -1;
+  std::string error_msg;
+  auto config_dict_ptr = deserializer.Deserialize(&error_code, &error_msg);
+  CHECK(config_dict_ptr) << "Invalid JSON in " << file_path_ << " error "
+                         << error_code << ":" << error_msg;
+  config_dict_ = base::Value(std::move(*config_dict_ptr));
 
-  if (!config_dict_->GetDictionary(kPostProcessorsKey,
-                                   &postprocessor_config_)) {
+  postprocessor_config_ = config_dict_.FindPath(kPostProcessorsKey);
+  if (!postprocessor_config_) {
     LOG(WARNING) << "No post-processor config found.";
   }
 }
@@ -127,9 +129,9 @@
 
 StreamPipelineDescriptor PostProcessingPipelineParser::GetPipelineByKey(
     const std::string& key) {
-  const base::DictionaryValue* stream_dict;
-  if (!postprocessor_config_ ||
-      !postprocessor_config_->GetDictionary(key, &stream_dict)) {
+  const base::Value* stream_dict =
+      postprocessor_config_ ? postprocessor_config_->FindPath(key) : nullptr;
+  if (!postprocessor_config_ || !stream_dict) {
     LOG(WARNING) << "No post-processor description found for \"" << key
                  << "\" in " << file_path_ << ". Using passthrough.";
     return StreamPipelineDescriptor(nullptr, nullptr, base::nullopt, nullptr);
diff --git a/chromecast/media/cma/backend/mixer/post_processing_pipeline_parser.h b/chromecast/media/cma/backend/mixer/post_processing_pipeline_parser.h
index c440531..06bf80c 100644
--- a/chromecast/media/cma/backend/mixer/post_processing_pipeline_parser.h
+++ b/chromecast/media/cma/backend/mixer/post_processing_pipeline_parser.h
@@ -13,11 +13,7 @@
 #include "base/files/file_path.h"
 #include "base/macros.h"
 #include "base/optional.h"
-
-namespace base {
-class DictionaryValue;
-class Value;
-}  // namespace base
+#include "base/values.h"
 
 namespace chromecast {
 namespace media {
@@ -51,8 +47,7 @@
   explicit PostProcessingPipelineParser(const base::FilePath& path);
 
   // For testing only:
-  explicit PostProcessingPipelineParser(
-      std::unique_ptr<base::DictionaryValue> config_dict);
+  explicit PostProcessingPipelineParser(base::Value config_dict);
 
   ~PostProcessingPipelineParser();
 
@@ -70,8 +65,8 @@
   StreamPipelineDescriptor GetPipelineByKey(const std::string& key);
 
   const base::FilePath file_path_;
-  std::unique_ptr<base::DictionaryValue> config_dict_;
-  const base::DictionaryValue* postprocessor_config_ = nullptr;
+  base::Value config_dict_;
+  const base::Value* postprocessor_config_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(PostProcessingPipelineParser);
 };
diff --git a/chromecast/media/cma/backend/mixer/post_processors/governor.cc b/chromecast/media/cma/backend/mixer/post_processors/governor.cc
index d9b31707..22f43f7 100644
--- a/chromecast/media/cma/backend/mixer/post_processors/governor.cc
+++ b/chromecast/media/cma/backend/mixer/post_processors/governor.cc
@@ -8,10 +8,10 @@
 #include <memory>
 #include <string>
 
+#include "base/json/json_reader.h"
 #include "base/logging.h"
 #include "base/numerics/ranges.h"
 #include "base/values.h"
-#include "chromecast/base/serializers.h"
 #include "chromecast/media/base/slew_volume.h"
 #include "chromecast/media/cma/backend/mixer/post_processor_registry.h"
 
@@ -35,10 +35,14 @@
   status_.output_channels = input_channels;
   status_.rendering_delay_frames = 0;
   status_.ringing_time_frames = 0;
-  auto config_dict = base::DictionaryValue::From(DeserializeFromJson(config));
+  auto config_dict = base::JSONReader::Read(config);
   CHECK(config_dict) << "Governor config is not valid json: " << config;
-  CHECK(config_dict->GetDouble(kOnsetVolumeKey, &onset_volume_));
-  CHECK(config_dict->GetDouble(kClampMultiplierKey, &clamp_multiplier_));
+  auto onset_volume = config_dict->FindDoublePath(kOnsetVolumeKey);
+  CHECK(onset_volume);
+  onset_volume_ = onset_volume.value();
+  auto clamp_multiplier = config_dict->FindDoublePath(kClampMultiplierKey);
+  CHECK(clamp_multiplier);
+  clamp_multiplier_ = clamp_multiplier.value();
   CHECK_LE(onset_volume_, clamp_multiplier_);
   CHECK_LE(onset_volume_, kMaxOnSetVolume);
   slew_volume_.SetVolume(1.0);
diff --git a/chromecast/media/cma/backend/mixer/post_processors/saturated_gain.cc b/chromecast/media/cma/backend/mixer/post_processors/saturated_gain.cc
index c8f684c3..47f16c1 100644
--- a/chromecast/media/cma/backend/mixer/post_processors/saturated_gain.cc
+++ b/chromecast/media/cma/backend/mixer/post_processors/saturated_gain.cc
@@ -7,9 +7,9 @@
 #include <algorithm>
 #include <cmath>
 
+#include "base/json/json_reader.h"
 #include "base/logging.h"
 #include "base/values.h"
-#include "chromecast/base/serializers.h"
 #include "chromecast/media/base/slew_volume.h"
 #include "chromecast/media/cma/backend/mixer/post_processor_registry.h"
 
@@ -31,12 +31,12 @@
   status_.output_channels = channels;
   status_.ringing_time_frames = 0;
   status_.rendering_delay_frames = 0;
-  auto config_dict = base::DictionaryValue::From(DeserializeFromJson(config));
+  auto config_dict = base::JSONReader::Read(config);
   CHECK(config_dict) << "SaturatedGain config is not valid json: " << config;
-  double gain_db;
-  CHECK(config_dict->GetDouble(kGainKey, &gain_db)) << config;
-  gain_ = DbFsToScale(gain_db);
-  LOG(INFO) << "Created a SaturatedGain: gain = " << gain_db << "db";
+  auto gain_db = config_dict->FindDoublePath(kGainKey);
+  CHECK(gain_db) << config;
+  gain_ = DbFsToScale(*gain_db);
+  LOG(INFO) << "Created a SaturatedGain: gain = " << *gain_db << "db";
 }
 
 SaturatedGain::~SaturatedGain() = default;
diff --git a/chromecast/media/cma/backend/mixer/stream_mixer.cc b/chromecast/media/cma/backend/mixer/stream_mixer.cc
index a150358..79556f4 100644
--- a/chromecast/media/cma/backend/mixer/stream_mixer.cc
+++ b/chromecast/media/cma/backend/mixer/stream_mixer.cc
@@ -15,6 +15,7 @@
 #include "base/bind.h"
 #include "base/callback_helpers.h"
 #include "base/compiler_specific.h"
+#include "base/json/json_reader.h"
 #include "base/logging.h"
 #include "base/message_loop/message_pump_type.h"
 #include "base/numerics/ranges.h"
@@ -25,7 +26,6 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "build/build_config.h"
 #include "chromecast/base/chromecast_switches.h"
-#include "chromecast/base/serializers.h"
 #include "chromecast/base/thread_health_checker.h"
 #include "chromecast/media/audio/audio_io_thread.h"
 #include "chromecast/media/audio/audio_log.h"
@@ -366,8 +366,9 @@
   mixer_pipeline_.reset();
 
   if (!override_config.empty()) {
-    PostProcessingPipelineParser parser(
-        base::DictionaryValue::From(DeserializeFromJson(override_config)));
+    auto value = base::JSONReader::Read(override_config);
+    CHECK(value) << "Invalid JSON";
+    PostProcessingPipelineParser parser(std::move(*value));
     mixer_pipeline_ = MixerPipeline::CreateMixerPipeline(
         &parser, post_processing_pipeline_factory_.get(),
         expected_input_channels);
diff --git a/chromecast/media/cma/backend/volume_control.cc b/chromecast/media/cma/backend/volume_control.cc
index 789a0e3..16b8077 100644
--- a/chromecast/media/cma/backend/volume_control.cc
+++ b/chromecast/media/cma/backend/volume_control.cc
@@ -29,7 +29,6 @@
 #include "base/synchronization/waitable_event.h"
 #include "base/threading/thread.h"
 #include "base/values.h"
-#include "chromecast/base/serializers.h"
 #include "chromecast/media/audio/mixer_service/control_connection.h"
 #include "chromecast/media/cma/backend/audio_buildflags.h"
 #include "chromecast/media/cma/backend/saved_volumes.h"
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index 7f4ab48..e5514ad 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-13967.0.0
\ No newline at end of file
+13968.0.0
\ No newline at end of file
diff --git a/chromeos/components/diagnostics_ui/backend/routine_log.cc b/chromeos/components/diagnostics_ui/backend/routine_log.cc
index 7bfd9eeb..c7a9c6c 100644
--- a/chromeos/components/diagnostics_ui/backend/routine_log.cc
+++ b/chromeos/components/diagnostics_ui/backend/routine_log.cc
@@ -100,7 +100,7 @@
 }
 
 void RoutineLog::AppendToLog(const std::string& content) {
-  base::AppendToFile(routine_log_file_path_, content.data(), content.size());
+  base::AppendToFile(routine_log_file_path_, content);
 }
 
 void RoutineLog::CreateFile() {
diff --git a/chromeos/components/diagnostics_ui/resources/BUILD.gn b/chromeos/components/diagnostics_ui/resources/BUILD.gn
index 230819d5..d8697ff7 100644
--- a/chromeos/components/diagnostics_ui/resources/BUILD.gn
+++ b/chromeos/components/diagnostics_ui/resources/BUILD.gn
@@ -66,6 +66,7 @@
 
 js_library("connectivity_card") {
   deps = [
+    ":network_info",
     ":routine_section",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
diff --git a/chromeos/components/diagnostics_ui/resources/connectivity_card.html b/chromeos/components/diagnostics_ui/resources/connectivity_card.html
index c3f03f3..09407be 100644
--- a/chromeos/components/diagnostics_ui/resources/connectivity_card.html
+++ b/chromeos/components/diagnostics_ui/resources/connectivity_card.html
@@ -4,7 +4,7 @@
 <diagnostics-card>
     <!-- TODO(michaelcheco): Add localized strings. -->
   <div id="cardTitle" slot="title">Connectivity</div>
-  <div id="activeGuid" slot="body">[[network_.guid]]</div>
+  <network-info slot="body" guid="[[activeGuid]]"></network-info>
   <routine-section slot="routines" routines="[[routines_]]"
   is-test-running="{{isTestRunning}}"
   run-tests-button-text="Run Network test"
diff --git a/chromeos/components/diagnostics_ui/resources/connectivity_card.js b/chromeos/components/diagnostics_ui/resources/connectivity_card.js
index b69e05a..1db42b0 100644
--- a/chromeos/components/diagnostics_ui/resources/connectivity_card.js
+++ b/chromeos/components/diagnostics_ui/resources/connectivity_card.js
@@ -5,28 +5,22 @@
 import './diagnostics_card.js';
 import './diagnostics_fonts_css.js';
 import './diagnostics_shared_css.js';
+import './network_info.js';
 import './routine_section.js';
 
 import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
-import {Network, NetworkHealthProviderInterface, RoutineType} from './diagnostics_types.js';
-import {getNetworkHealthProvider} from './mojo_interface_provider.js';
+import {RoutineType} from './diagnostics_types.js';
 
 /**
  * @fileoverview
- * 'connectivity-card' displays runs network routines and displays
- *  network health data.
+ * 'connectivity-card' runs network routines and displays network health data.
  */
 Polymer({
   is: 'connectivity-card',
 
   _template: html`{__html_template__}`,
 
-  /**
-   * @private {?NetworkHealthProviderInterface}
-   */
-  networkHealthProvider_: null,
-
   properties: {
     /** @type {boolean} */
     isTestRunning: {
@@ -58,18 +52,6 @@
       type: String,
       value: '',
     },
-
-    /** @private {!Network} */
-    network_: {
-      type: Object,
-    },
-  },
-
-  observers: ['observeNetwork_(activeGuid)'],
-
-  /** @override */
-  created() {
-    this.networkHealthProvider_ = getNetworkHealthProvider();
   },
 
   /** @protected */
@@ -77,27 +59,4 @@
     // Connectivity routines will always last <= 1 minute.
     return 1;
   },
-
-  /** @private */
-  observeNetwork_() {
-    if (!this.activeGuid) {
-      return;
-    }
-    // Calling observeNetwork will trigger onNetworkStateChanged.
-    this.networkHealthProvider_.observeNetwork(this, this.activeGuid);
-  },
-
-  /**
-   * Implements NetworkStateObserver.onNetworkStateChanged
-   * @param {!Network} network
-   */
-  onNetworkStateChanged(network) {
-    this.network_ = network;
-  },
-
-  /** @override */
-  detached() {
-    // TODO(michaelcheco): Stop observing activeGuid when the real
-    // observeNetwork implementation is added.
-  },
 });
\ No newline at end of file
diff --git a/chromeos/components/print_management/resources/print_management_shared_css.html b/chromeos/components/print_management/resources/print_management_shared_css.html
index a7fcf51..e83ba23 100644
--- a/chromeos/components/print_management/resources/print_management_shared_css.html
+++ b/chromeos/components/print_management/resources/print_management_shared_css.html
@@ -47,6 +47,13 @@
       .status-column {
         width: 124px;
       }
+
+      #activeStatusContainer:hover {
+        background-color: rgba(var(--google-blue-600-rgb), 0.06);
+        border-radius: 16px;
+        margin-inline-start: 16px;
+        padding-left: 16px;
+      }
     }
 
     @media (min-width:768px) and (max-width: 959px) {
@@ -77,6 +84,13 @@
       .status-column {
         width: 182px;
       }
+
+      #activeStatusContainer:hover {
+        background-color: rgba(var(--google-blue-600-rgb), 0.06);
+        border-radius: 16px;
+        margin-inline-start: 16px;
+        padding-left: 16px;
+      }
     }
 
     @media (min-width:960px) and (max-width: 1279px) {
@@ -107,6 +121,13 @@
       .status-column {
         width: 182px;
       }
+
+      #activeStatusContainer:hover {
+        background-color: rgba(var(--google-blue-600-rgb), 0.06);
+        border-radius: 16px;
+        margin-inline-start: 16px;
+        padding-left: 16px;
+      }
     }
 
     @media (min-width:1280px) {
@@ -137,6 +158,13 @@
       .status-column {
         width: 182px;
       }
+
+      #activeStatusContainer:hover {
+        background-color: rgba(var(--google-blue-600-rgb), 0.06);
+        border-radius: 16px;
+        margin-inline-start: 16px;
+        padding-left: 16px;
+      }
     }
   </style>
 </template>
diff --git a/chromeos/dbus/BUILD.gn b/chromeos/dbus/BUILD.gn
index 42e9d1d..fbb9535 100644
--- a/chromeos/dbus/BUILD.gn
+++ b/chromeos/dbus/BUILD.gn
@@ -16,6 +16,7 @@
     ":common",
     "//chromeos/dbus/arc",
     "//chromeos/dbus/cicerone",
+    "//chromeos/dbus/concierge",
     "//chromeos/dbus/constants",
     "//chromeos/dbus/debug_daemon",
     "//chromeos/dbus/lorgnette_manager",
@@ -26,8 +27,6 @@
   deps = [
     ":anomaly_detector_proto",
     ":chunneld_proto",
-    ":cicerone_proto",
-    ":concierge_proto",
     ":metrics_event_proto",
     ":oobe_config_proto",
     ":plugin_vm_service_proto",
@@ -51,8 +50,6 @@
     "cec_service_client.h",
     "chunneld_client.cc",
     "chunneld_client.h",
-    "concierge_client.cc",
-    "concierge_client.h",
     "cros_disks_client.cc",
     "cros_disks_client.h",
     "dbus_client_implementation_type.h",
@@ -68,8 +65,6 @@
     "fake_cec_service_client.h",
     "fake_chunneld_client.cc",
     "fake_chunneld_client.h",
-    "fake_concierge_client.cc",
-    "fake_concierge_client.h",
     "fake_cros_disks_client.cc",
     "fake_cros_disks_client.h",
     "fake_easy_unlock_client.cc",
diff --git a/chromeos/dbus/audio/fake_cras_audio_client.cc b/chromeos/dbus/audio/fake_cras_audio_client.cc
index 56dcf8e..64b7c18 100644
--- a/chromeos/dbus/audio/fake_cras_audio_client.cc
+++ b/chromeos/dbus/audio/fake_cras_audio_client.cc
@@ -150,9 +150,8 @@
 }
 
 void FakeCrasAudioClient::GetNumberOfInputStreamsWithPermission(
-    DBusMethodCallback<base::flat_map<std::string, uint32_t>> callback) {
-  base::flat_map<std::string, uint32_t> res;
-  std::move(callback).Run(std::move(res));
+    DBusMethodCallback<ClientTypeToInputStreamCount> callback) {
+  std::move(callback).Run(active_input_streams_);
 }
 
 void FakeCrasAudioClient::GetDeprioritizeBtWbsMic(
@@ -330,6 +329,13 @@
   battery_level_ = level;
 }
 
+void FakeCrasAudioClient::SetActiveInputStreamsWithPermission(
+    const ClientTypeToInputStreamCount& input_streams) {
+  active_input_streams_ = input_streams;
+  for (auto& observer : observers_)
+    observer.NumberOfInputStreamsWithPermissionChanged(active_input_streams_);
+}
+
 AudioNodeList::iterator FakeCrasAudioClient::FindNode(uint64_t node_id) {
   return std::find_if(
       node_list_.begin(), node_list_.end(),
diff --git a/chromeos/dbus/audio/fake_cras_audio_client.h b/chromeos/dbus/audio/fake_cras_audio_client.h
index d94857b..d444a67 100644
--- a/chromeos/dbus/audio/fake_cras_audio_client.h
+++ b/chromeos/dbus/audio/fake_cras_audio_client.h
@@ -19,6 +19,8 @@
 class COMPONENT_EXPORT(DBUS_AUDIO) FakeCrasAudioClient
     : public CrasAudioClient {
  public:
+  using ClientTypeToInputStreamCount = base::flat_map<std::string, uint32_t>;
+
   FakeCrasAudioClient();
   ~FakeCrasAudioClient() override;
 
@@ -36,7 +38,7 @@
   void GetNumberOfActiveOutputStreams(
       DBusMethodCallback<int> callback) override;
   void GetNumberOfInputStreamsWithPermission(
-      DBusMethodCallback<base::flat_map<std::string, uint32_t>>) override;
+      DBusMethodCallback<ClientTypeToInputStreamCount>) override;
   void GetDeprioritizeBtWbsMic(DBusMethodCallback<bool> callback) override;
   void SetOutputNodeVolume(uint64_t node_id, int32_t volume) override;
   void SetOutputUserMute(bool mute_on) override;
@@ -92,6 +94,11 @@
   // Set a mock battery level for ResendBatteryLevel.
   void SetBluetoothBattteryLevelForTesting(uint32_t level);
 
+  // Sets a mock mapping from client type to number of active input streams per
+  // the client type.
+  void SetActiveInputStreamsWithPermission(
+      const ClientTypeToInputStreamCount& input_streams);
+
   const AudioNodeList& node_list() const { return node_list_; }
   const uint64_t& active_input_node_id() const { return active_input_node_id_; }
   const uint64_t& active_output_node_id() const {
@@ -113,6 +120,10 @@
   // SetOutputNodeVolume fake dbus call.
   bool notify_volume_change_with_delay_ = false;
   uint32_t battery_level_ = 0;
+  // Maps audio client type to the number of active input streams for clients
+  // with the type specified
+  ClientTypeToInputStreamCount active_input_streams_;
+
   base::ObserverList<Observer>::Unchecked observers_;
 
   DISALLOW_COPY_AND_ASSIGN(FakeCrasAudioClient);
diff --git a/chromeos/dbus/cicerone/OWNERS b/chromeos/dbus/cicerone/OWNERS
new file mode 100644
index 0000000..a33be2b
--- /dev/null
+++ b/chromeos/dbus/cicerone/OWNERS
@@ -0,0 +1 @@
+file://chrome/browser/ash/guest_os/OWNERS
diff --git a/chromeos/dbus/concierge/BUILD.gn b/chromeos/dbus/concierge/BUILD.gn
new file mode 100644
index 0000000..8a472433
--- /dev/null
+++ b/chromeos/dbus/concierge/BUILD.gn
@@ -0,0 +1,24 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+
+component("concierge") {
+  defines = [ "IS_CHROMEOS_DBUS_IMPL" ]
+  deps = [
+    "//base",
+    "//chromeos/dbus:cicerone_proto",
+    "//chromeos/dbus:common",
+    "//chromeos/dbus:concierge_proto",
+    "//chromeos/dbus/cicerone",
+    "//dbus",
+  ]
+
+  sources = [
+    "concierge_client.cc",
+    "concierge_client.h",
+    "fake_concierge_client.cc",
+    "fake_concierge_client.h",
+  ]
+}
diff --git a/chromeos/dbus/concierge/OWNERS b/chromeos/dbus/concierge/OWNERS
new file mode 100644
index 0000000..a33be2b
--- /dev/null
+++ b/chromeos/dbus/concierge/OWNERS
@@ -0,0 +1 @@
+file://chrome/browser/ash/guest_os/OWNERS
diff --git a/chromeos/dbus/concierge_client.cc b/chromeos/dbus/concierge/concierge_client.cc
similarity index 99%
rename from chromeos/dbus/concierge_client.cc
rename to chromeos/dbus/concierge/concierge_client.cc
index b57e87f..a30e7ed 100644
--- a/chromeos/dbus/concierge_client.cc
+++ b/chromeos/dbus/concierge/concierge_client.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 
 #include <string>
 #include <utility>
@@ -13,7 +13,7 @@
 #include "base/logging.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "chromeos/dbus/cicerone/fake_cicerone_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "dbus/bus.h"
 #include "dbus/message.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
diff --git a/chromeos/dbus/concierge_client.h b/chromeos/dbus/concierge/concierge_client.h
similarity index 98%
rename from chromeos/dbus/concierge_client.h
rename to chromeos/dbus/concierge/concierge_client.h
index 75745c2..fafb839 100644
--- a/chromeos/dbus/concierge_client.h
+++ b/chromeos/dbus/concierge/concierge_client.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 CHROMEOS_DBUS_CONCIERGE_CLIENT_H_
-#define CHROMEOS_DBUS_CONCIERGE_CLIENT_H_
+#ifndef CHROMEOS_DBUS_CONCIERGE_CONCIERGE_CLIENT_H_
+#define CHROMEOS_DBUS_CONCIERGE_CONCIERGE_CLIENT_H_
 
 #include <memory>
 
@@ -299,4 +299,4 @@
 
 }  // namespace chromeos
 
-#endif  // CHROMEOS_DBUS_CONCIERGE_CLIENT_H_
+#endif  // CHROMEOS_DBUS_CONCIERGE_CONCIERGE_CLIENT_H_
diff --git a/chromeos/dbus/fake_concierge_client.cc b/chromeos/dbus/concierge/fake_concierge_client.cc
similarity index 99%
rename from chromeos/dbus/fake_concierge_client.cc
rename to chromeos/dbus/concierge/fake_concierge_client.cc
index 1522397f..52f7b13 100644
--- a/chromeos/dbus/fake_concierge_client.cc
+++ b/chromeos/dbus/concierge/fake_concierge_client.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chromeos/dbus/fake_concierge_client.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 
 #include <utility>
 
diff --git a/chromeos/dbus/fake_concierge_client.h b/chromeos/dbus/concierge/fake_concierge_client.h
similarity index 98%
rename from chromeos/dbus/fake_concierge_client.h
rename to chromeos/dbus/concierge/fake_concierge_client.h
index aa9ee2ca..64aa446 100644
--- a/chromeos/dbus/fake_concierge_client.h
+++ b/chromeos/dbus/concierge/fake_concierge_client.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 CHROMEOS_DBUS_FAKE_CONCIERGE_CLIENT_H_
-#define CHROMEOS_DBUS_FAKE_CONCIERGE_CLIENT_H_
+#ifndef CHROMEOS_DBUS_CONCIERGE_FAKE_CONCIERGE_CLIENT_H_
+#define CHROMEOS_DBUS_CONCIERGE_FAKE_CONCIERGE_CLIENT_H_
 
 #include <vector>
 
@@ -12,7 +12,7 @@
 #include "base/optional.h"
 #include "base/time/time.h"
 #include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 
 namespace chromeos {
 
@@ -417,4 +417,4 @@
 
 }  // namespace chromeos
 
-#endif  // CHROMEOS_DBUS_FAKE_CONCIERGE_CLIENT_H_
+#endif  // CHROMEOS_DBUS_CONCIERGE_FAKE_CONCIERGE_CLIENT_H_
diff --git a/chromeos/dbus/dbus_thread_manager.cc b/chromeos/dbus/dbus_thread_manager.cc
index 0dd549fb5..9ad3233 100644
--- a/chromeos/dbus/dbus_thread_manager.cc
+++ b/chromeos/dbus/dbus_thread_manager.cc
@@ -20,8 +20,6 @@
 #include "chromeos/dbus/arc/arc_obb_mounter_client.h"
 #include "chromeos/dbus/cec_service_client.h"
 #include "chromeos/dbus/chunneld_client.h"
-#include "chromeos/dbus/cicerone/cicerone_client.h"
-#include "chromeos/dbus/concierge_client.h"
 #include "chromeos/dbus/constants/dbus_switches.h"
 #include "chromeos/dbus/cros_disks_client.h"
 #include "chromeos/dbus/dbus_client.h"
diff --git a/chromeos/dbus/seneschal/OWNERS b/chromeos/dbus/seneschal/OWNERS
new file mode 100644
index 0000000..a33be2b
--- /dev/null
+++ b/chromeos/dbus/seneschal/OWNERS
@@ -0,0 +1 @@
+file://chrome/browser/ash/guest_os/OWNERS
diff --git a/chromeos/lacros/BUILD.gn b/chromeos/lacros/BUILD.gn
index d4c65b1a..403ec46 100644
--- a/chromeos/lacros/BUILD.gn
+++ b/chromeos/lacros/BUILD.gn
@@ -61,7 +61,10 @@
     tast_tests = [
       # TODO(crbug.com/1202407): Enable this test again.
       #"lacros.AudioPlay",
-      "lacros.AppLauncherLaunch",
+
+      # TODO(crbug.com/1208845): Enable this test again.
+      #"lacros.AppLauncherLaunch",
+
       "lacros.Basic",
 
       # TODO(crbug.com/1205526): Enable this test again.
diff --git a/chromeos/profiles/orderfile.newest.txt b/chromeos/profiles/orderfile.newest.txt
index 51ffda85..c129e48 100644
--- a/chromeos/profiles/orderfile.newest.txt
+++ b/chromeos/profiles/orderfile.newest.txt
@@ -1 +1 @@
-chromeos-chrome-orderfile-field-92-4484.0-1620039320-benchmark-92.0.4502.0-r1.orderfile.xz
+chromeos-chrome-orderfile-field-92-4484.0-1620642696-benchmark-92.0.4503.0-r1.orderfile.xz
diff --git a/chromeos/services/assistant/media_host_unittest.cc b/chromeos/services/assistant/media_host_unittest.cc
index ee81d88..e45def7 100644
--- a/chromeos/services/assistant/media_host_unittest.cc
+++ b/chromeos/services/assistant/media_host_unittest.cc
@@ -99,6 +99,7 @@
   MOCK_METHOD(void, ToggleMicrophone, ());
   MOCK_METHOD(void, ToggleCamera, ());
   MOCK_METHOD(void, HangUp, ());
+  MOCK_METHOD(void, Raise, ());
   void AddObserver(
       mojo::PendingRemote<media_session::mojom::MediaControllerObserver> remote)
       override {
diff --git a/chromeos/services/assistant/media_session/assistant_media_session.h b/chromeos/services/assistant/media_session/assistant_media_session.h
index 5c6597eb..17f1a12f 100644
--- a/chromeos/services/assistant/media_session/assistant_media_session.h
+++ b/chromeos/services/assistant/media_session/assistant_media_session.h
@@ -57,6 +57,7 @@
   void ToggleMicrophone() override {}
   void ToggleCamera() override {}
   void HangUp() override {}
+  void Raise() override {}
 
   // Requests/abandons audio focus to the AudioFocusManager.
   void RequestAudioFocus(media_session::mojom::AudioFocusType audio_focus_type);
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb
index 90467cf..453a13c2 100644
--- a/chromeos/strings/chromeos_strings_az.xtb
+++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -225,6 +225,7 @@
 <translation id="5669267381087807207">Aktivləşir</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">Ailə</translation>
+<translation id="5752751666635965375">Öz oyununuzu yaradın</translation>
 <translation id="5760715441271661976">Portal Vəziyyəti</translation>
 <translation id="5797428682393400134">UĞURLU OLDU</translation>
 <translation id="5832805196449965646">Şəxs əlavə edin</translation>
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb
index 0a99c33..2a639fd 100644
--- a/chromeos/strings/chromeos_strings_be.xtb
+++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">Ідзе актывацыя</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">Сям'я</translation>
+<translation id="5752751666635965375">Стварыць уласную гульню</translation>
 <translation id="5760715441271661976">Стан партала</translation>
 <translation id="5797428682393400134">ПРОЙДЗЕНА</translation>
 <translation id="5832805196449965646">Дадаць карыстальніка</translation>
diff --git a/chromeos/strings/chromeos_strings_bn.xtb b/chromeos/strings/chromeos_strings_bn.xtb
index 64edf001..1f6d10b 100644
--- a/chromeos/strings/chromeos_strings_bn.xtb
+++ b/chromeos/strings/chromeos_strings_bn.xtb
@@ -225,6 +225,7 @@
 <translation id="5669267381087807207">সক্রিয় করা হচ্ছে</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">পরিবারিক</translation>
+<translation id="5752751666635965375">নিজের গেম তৈরি করুন</translation>
 <translation id="5760715441271661976">পোর্টালের স্থিতি</translation>
 <translation id="5797428682393400134">সফল হয়েছে</translation>
 <translation id="5832805196449965646">একজন ব্যক্তিকে যোগ করুন</translation>
diff --git a/chromeos/strings/chromeos_strings_cs.xtb b/chromeos/strings/chromeos_strings_cs.xtb
index 429078d..9e7f0af 100644
--- a/chromeos/strings/chromeos_strings_cs.xtb
+++ b/chromeos/strings/chromeos_strings_cs.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">Aktivování</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">Rodina</translation>
+<translation id="5752751666635965375">Vytvořte si vlastní hru</translation>
 <translation id="5760715441271661976">Stav portálu</translation>
 <translation id="5797428682393400134">ÚSPĚCH</translation>
 <translation id="5832805196449965646">Přidat uživatele</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb
index 814850d1..68c1dd4 100644
--- a/chromeos/strings/chromeos_strings_fi.xtb
+++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">Aktivoidaan</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">Perhe</translation>
+<translation id="5752751666635965375">Luo oma peli</translation>
 <translation id="5760715441271661976">Portaalitila</translation>
 <translation id="5797428682393400134">ONNISTUI</translation>
 <translation id="5832805196449965646">Lisää henkilö</translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb
index 8df900e7..791fbfe1 100644
--- a/chromeos/strings/chromeos_strings_ja.xtb
+++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">有効化中</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">ファミリー</translation>
+<translation id="5752751666635965375">独自のゲームを作成する</translation>
 <translation id="5760715441271661976">ポータル状態</translation>
 <translation id="5797428682393400134">成功</translation>
 <translation id="5832805196449965646">ユーザーを追加</translation>
diff --git a/chromeos/strings/chromeos_strings_kk.xtb b/chromeos/strings/chromeos_strings_kk.xtb
index 8aab5744..17a99fb 100644
--- a/chromeos/strings/chromeos_strings_kk.xtb
+++ b/chromeos/strings/chromeos_strings_kk.xtb
@@ -225,6 +225,7 @@
 <translation id="5669267381087807207">Белсендірілуде</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">Отбасы</translation>
+<translation id="5752751666635965375">Өз ойыныңызды жасау</translation>
 <translation id="5760715441271661976">Портал күйі</translation>
 <translation id="5797428682393400134">СӘТТІ АЯҚТАЛДЫ</translation>
 <translation id="5832805196449965646">Адам қосу</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb
index fe87927..7b230224 100644
--- a/chromeos/strings/chromeos_strings_km.xtb
+++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -225,6 +225,7 @@
 <translation id="5669267381087807207">កំពុងធ្វើសកម្មភាព</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">គ្រួសារ</translation>
+<translation id="5752751666635965375">បង្កើត​ហ្គេមរបស់អ្នក</translation>
 <translation id="5760715441271661976">ស្ថានភាពច្រក</translation>
 <translation id="5797428682393400134">ជោគជ័យ</translation>
 <translation id="5832805196449965646">បន្ថែមបុគ្គល</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index a6ded41a..6fc9138 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">활성화 중</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">가족</translation>
+<translation id="5752751666635965375">게임 직접 만들기</translation>
 <translation id="5760715441271661976">포털 상태</translation>
 <translation id="5797428682393400134">성공</translation>
 <translation id="5832805196449965646">사용자 추가</translation>
diff --git a/chromeos/strings/chromeos_strings_ky.xtb b/chromeos/strings/chromeos_strings_ky.xtb
index 3e5ea22..74250331 100644
--- a/chromeos/strings/chromeos_strings_ky.xtb
+++ b/chromeos/strings/chromeos_strings_ky.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">Жандырылууда</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">Үй-бүлөлүк</translation>
+<translation id="5752751666635965375">Өз оюңузду түзүп алыңыз</translation>
 <translation id="5760715441271661976">Порталдын абалы</translation>
 <translation id="5797428682393400134">ИЙГИЛИК</translation>
 <translation id="5832805196449965646">Адам кошуу</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb
index bb5633a..63159b1 100644
--- a/chromeos/strings/chromeos_strings_lo.xtb
+++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -300,6 +300,7 @@
 <translation id="7216409898977639127">ຜູ້ໃຫ້ບໍລິການມືຖື</translation>
 <translation id="7271040990581020067">ຕອນນີ້ມີຄົນໃຊ້ເຄື່ອງສະແກນຢູ່. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
+<translation id="7302860742311162920">ICCID</translation>
 <translation id="7343649194310845056">ອຸປະກອນເຄືອຂ່າຍ</translation>
 <translation id="7359657277149375382">ປະເພດໄຟລ໌</translation>
 <translation id="7375053625150546623">EAP</translation>
@@ -348,6 +349,7 @@
 <translation id="8372477600026034341">ໂຮສເພີ່ມເຕີມ</translation>
 <translation id="8395584934117017006"><ph name="DEVICE_TYPE" /> ຈັດການໂດຍວິສາຫະກິດ</translation>
 <translation id="8398927464629426868">ອັດຕາການສາກ ຫຼື ຄາຍປະຈຸຂອງອຸປະກອນໃນປັດຈຸບັນ</translation>
+<translation id="8422748173858722634">IMEI</translation>
 <translation id="8461329675984532579">ຊື່ຜູ້ໃຫ້ບໍລິການ Home</translation>
 <translation id="8475690821716466388">ເຄືອຂ່າຍ WiFi ມີການຮັກສາຄວາມປອດໄພດ້ວຍໂປຣໂຕຄໍ WEP PSK ທີ່ບໍ່ຮັດກຸມ</translation>
 <translation id="8477551185774834963">ເວລາໃນການຕອບສະໜອງ DNS ສູງກວ່າເກນທີ່ຍອມຮັບໄດ້ເລັກນ້ອຍ</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb
index 49377980..3f501a64b 100644
--- a/chromeos/strings/chromeos_strings_ml.xtb
+++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -225,6 +225,7 @@
 <translation id="5669267381087807207">സജീവമാക്കുന്നു</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">കുടുംബം</translation>
+<translation id="5752751666635965375">സ്വന്തം ഗെയിം സൃഷ്ടിക്കൂ</translation>
 <translation id="5760715441271661976">പോര്‍ട്ടല്‍ നില</translation>
 <translation id="5797428682393400134">വിജയകരം</translation>
 <translation id="5832805196449965646">വ്യക്തിയെ ചേർക്കുക</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb
index 69306d83..e39a8886 100644
--- a/chromeos/strings/chromeos_strings_mn.xtb
+++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -299,6 +299,7 @@
 <translation id="7216409898977639127">Үүрэн холбооны үйлчилгээ үзүүлэгч</translation>
 <translation id="7271040990581020067">Сканнерыг одоогоор ашиглаж байна. Дараа дахин оролдоно уу.</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
+<translation id="7302860742311162920">ICCID</translation>
 <translation id="7343649194310845056">Сүлжээний төхөөрөмжүүд</translation>
 <translation id="7359657277149375382">Файлын төрөл</translation>
 <translation id="7375053625150546623">EAP</translation>
@@ -347,6 +348,7 @@
 <translation id="8372477600026034341">Нэмэлт хост</translation>
 <translation id="8395584934117017006">Энэ <ph name="DEVICE_TYPE" />-г байгууллага удирддаг</translation>
 <translation id="8398927464629426868">Төхөөрөмжийн одоогийн цэнэглэгдэж эсвэл цэнэгээ алдаж байгаа хувь</translation>
+<translation id="8422748173858722634">IMEI</translation>
 <translation id="8461329675984532579">Нүүр хуудас бэлтгэх нэр</translation>
 <translation id="8475690821716466388">WiFi сүлжээ WEP PSK-н сул протоколоор хамгаалагдсан байна</translation>
 <translation id="8477551185774834963">DNS хоцролт зөвшөөрөгдөх хязгаараас бага зэрэг өндөр байна</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb
index f8b00c57..b06c66a0 100644
--- a/chromeos/strings/chromeos_strings_mr.xtb
+++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">सक्रिय करत आहे</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">कुटुंब</translation>
+<translation id="5752751666635965375">तुमच्या स्वतःचा गेम बनवा</translation>
 <translation id="5760715441271661976">पोर्टलची स्थिती</translation>
 <translation id="5797428682393400134">यशस्वी</translation>
 <translation id="5832805196449965646">व्यक्ती जोडा</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb
index d1188eb..b79243d7 100644
--- a/chromeos/strings/chromeos_strings_ne.xtb
+++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -62,7 +62,7 @@
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="225692081236532131">सक्रियताको वस्तुस्थिति</translation>
 <translation id="2326139988748364651"><ph name="RESOLUTION_VALUE" /> dpi</translation>
-<translation id="2338501278241028356">नजिकैका यन्त्रहरू पत्ता लगाउन ब्लुटुथ अन गर्नुहोस्</translation>
+<translation id="2338501278241028356">नजिकैका डिभाइसहरू पत्ता लगाउन ब्लुटुथ अन गर्नुहोस्</translation>
 <translation id="2364498172489649528">सुरक्षा जाँचमा पास भयो</translation>
 <translation id="2391082728065870591">फिडब्याक रिपोर्ट पठाउनुहोस्</translation>
 <translation id="2418150275289244458">सेटिङमा गई खोल्नुहोस्</translation>
@@ -225,6 +225,7 @@
 <translation id="5669267381087807207">सक्रिय गर्दै</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">परिवार</translation>
+<translation id="5752751666635965375">आफ्नै गेम बनाउनुहोस्</translation>
 <translation id="5760715441271661976">पोर्टलको स्थिति</translation>
 <translation id="5797428682393400134">सफल भयो</translation>
 <translation id="5832805196449965646">व्यक्ति थप्नुहोस्</translation>
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb
index c20e47d..2ff16cf7 100644
--- a/chromeos/strings/chromeos_strings_th.xtb
+++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">กำลังเปิดใช้</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">ครอบครัว</translation>
+<translation id="5752751666635965375">สร้างเกมของคุณเอง</translation>
 <translation id="5760715441271661976">สถานะพอร์ทัล</translation>
 <translation id="5797428682393400134">สำเร็จ</translation>
 <translation id="5832805196449965646">เพิ่มบุคคล</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb
index acc6378..7005a75 100644
--- a/chromeos/strings/chromeos_strings_uk.xtb
+++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">Активація</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">Сім’я</translation>
+<translation id="5752751666635965375">Створити власну гру</translation>
 <translation id="5760715441271661976">Стан порталу</translation>
 <translation id="5797428682393400134">ПРОЙДЕНО</translation>
 <translation id="5832805196449965646">Додати користувача</translation>
diff --git a/chromeos/strings/chromeos_strings_ur.xtb b/chromeos/strings/chromeos_strings_ur.xtb
index 239a6f5..8e8ac9e 100644
--- a/chromeos/strings/chromeos_strings_ur.xtb
+++ b/chromeos/strings/chromeos_strings_ur.xtb
@@ -225,6 +225,7 @@
 <translation id="5669267381087807207">فعال ہو رہا ہے</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">فیملی</translation>
+<translation id="5752751666635965375">اپنی ذاتی گیم بنائیں</translation>
 <translation id="5760715441271661976">پورٹل صورت حال</translation>
 <translation id="5797428682393400134">کامیاب</translation>
 <translation id="5832805196449965646">شخص کو شامل کریں</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb
index 02026735..d9d5f1b 100644
--- a/chromeos/strings/chromeos_strings_zh-TW.xtb
+++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -226,6 +226,7 @@
 <translation id="5669267381087807207">啟用中</translation>
 <translation id="5670702108860320605">BSSID</translation>
 <translation id="5691511426247308406">家用</translation>
+<translation id="5752751666635965375">自製遊戲</translation>
 <translation id="5760715441271661976">入口網站狀態</translation>
 <translation id="5797428682393400134">成功</translation>
 <translation id="5832805196449965646">新增使用者</translation>
diff --git a/components/arc/arc_util.cc b/components/arc/arc_util.cc
index 4738fd4..9732b04 100644
--- a/components/arc/arc_util.cc
+++ b/components/arc/arc_util.cc
@@ -17,7 +17,7 @@
 #include "base/process/launch.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
 #include "chromeos/dbus/session_manager/session_manager_client.h"
 #include "chromeos/dbus/upstart/upstart_client.h"
diff --git a/components/arc/ime/arc_ime_service.cc b/components/arc/ime/arc_ime_service.cc
index c095abd..1f8a9a36 100644
--- a/components/arc/ime/arc_ime_service.cc
+++ b/components/arc/ime/arc_ime_service.cc
@@ -549,7 +549,7 @@
   aura::Window* top_level_window = focused_arc_window_->GetToplevelWindow();
   // If the window is not a notification, the window move is handled by
   // Android.
-  if (top_level_window->type() != aura::client::WINDOW_TYPE_POPUP)
+  if (top_level_window->GetType() != aura::client::WINDOW_TYPE_POPUP)
     return;
   wm::EnsureWindowNotInRect(top_level_window, rect_in_screen);
 }
diff --git a/components/arc/ime/arc_ime_service_unittest.cc b/components/arc/ime/arc_ime_service_unittest.cc
index 6c0f660..39346d4 100644
--- a/components/arc/ime/arc_ime_service_unittest.cc
+++ b/components/arc/ime/arc_ime_service_unittest.cc
@@ -166,7 +166,7 @@
   bool IsInArcAppWindow(const aura::Window* window) const override {
     if (!window)
       return false;
-    return arc_window_id_.count(window->id());
+    return arc_window_id_.count(window->GetId());
   }
 
   void RegisterFocusObserver() override {}
diff --git a/components/arc/power/arc_power_bridge.h b/components/arc/power/arc_power_bridge.h
index a01f714..b274219 100644
--- a/components/arc/power/arc_power_bridge.h
+++ b/components/arc/power/arc_power_bridge.h
@@ -13,7 +13,7 @@
 #include "base/observer_list.h"
 #include "base/optional.h"
 #include "base/timer/timer.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/power/power_manager_client.h"
 #include "components/arc/mojom/power.mojom.h"
 #include "components/arc/session/connection_observer.h"
diff --git a/components/arc/session/arc_client_adapter_unittest.cc b/components/arc/session/arc_client_adapter_unittest.cc
index 3b4b69f..00efd6f 100644
--- a/components/arc/session/arc_client_adapter_unittest.cc
+++ b/components/arc/session/arc_client_adapter_unittest.cc
@@ -8,7 +8,7 @@
 
 #include "base/command_line.h"
 #include "base/scoped_observation.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
 #include "chromeos/dbus/upstart/fake_upstart_client.h"
diff --git a/components/arc/session/arc_vm_client_adapter.cc b/components/arc/session/arc_vm_client_adapter.cc
index 342f1bb..06409c3 100644
--- a/components/arc/session/arc_vm_client_adapter.cc
+++ b/components/arc/session/arc_vm_client_adapter.cc
@@ -46,7 +46,7 @@
 #include "base/timer/elapsed_timer.h"
 #include "chromeos/components/sensors/buildflags.h"
 #include "chromeos/cryptohome/cryptohome_parameters.h"
-#include "chromeos/dbus/concierge_client.h"
+#include "chromeos/dbus/concierge/concierge_client.h"
 #include "chromeos/dbus/dbus_method_call_status.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
diff --git a/components/arc/session/arc_vm_client_adapter_unittest.cc b/components/arc/session/arc_vm_client_adapter_unittest.cc
index fb5c38ec..19423a4 100644
--- a/components/arc/session/arc_vm_client_adapter_unittest.cc
+++ b/components/arc/session/arc_vm_client_adapter_unittest.cc
@@ -34,9 +34,9 @@
 #include "base/test/scoped_run_loop_timeout.h"
 #include "base/time/time.h"
 #include "chromeos/cryptohome/cryptohome_parameters.h"
+#include "chromeos/dbus/concierge/fake_concierge_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
-#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/session_manager/fake_session_manager_client.h"
 #include "chromeos/dbus/upstart/fake_upstart_client.h"
 #include "components/arc/arc_features.h"
diff --git a/components/download/internal/common/download_file_unittest.cc b/components/download/internal/common/download_file_unittest.cc
index 9e51afea..070ac4d 100644
--- a/components/download/internal/common/download_file_unittest.cc
+++ b/components/download/internal/common/download_file_unittest.cc
@@ -239,7 +239,8 @@
       int data_len = strlen(kTestData1);
       while (len > 0) {
         int bytes_to_write = len > data_len ? data_len : len;
-        base::AppendToFile(save_info->file_path, kTestData1, bytes_to_write);
+        base::AppendToFile(save_info->file_path,
+                           base::StringPiece(kTestData1, bytes_to_write));
         len -= bytes_to_write;
       }
     }
diff --git a/components/exo/client_controlled_shell_surface.cc b/components/exo/client_controlled_shell_surface.cc
index dab4714..e31326b 100644
--- a/components/exo/client_controlled_shell_surface.cc
+++ b/components/exo/client_controlled_shell_surface.cc
@@ -694,7 +694,7 @@
   if (server_reparent_window_ &&
       window_state->GetDisplay().id() != display_id) {
     ScopedSetBoundsLocally scoped_set_bounds(this);
-    int container_id = window_state->window()->parent()->id();
+    int container_id = window_state->window()->parent()->GetId();
     aura::Window* new_parent =
         ash::Shell::GetRootWindowControllerWithDisplayId(display_id)
             ->GetContainer(container_id);
diff --git a/components/exo/shell_surface_unittest.cc b/components/exo/shell_surface_unittest.cc
index db1e8f2..718ebe63 100644
--- a/components/exo/shell_surface_unittest.cc
+++ b/components/exo/shell_surface_unittest.cc
@@ -482,7 +482,7 @@
   // manager.
   EXPECT_TRUE(ash::WindowState::Get(child_window)->allow_set_bounds_direct());
   EXPECT_EQ(ash::kShellWindowId_ShelfBubbleContainer,
-            child_window->parent()->id());
+            child_window->parent()->GetId());
 
   // NONE/SHADOW frame type should work on override redirect.
   child_surface->SetFrame(SurfaceFrameType::SHADOW);
@@ -978,7 +978,7 @@
 
   // Verify that created shell surface is popup and has capture.
   EXPECT_EQ(aura::client::WINDOW_TYPE_POPUP,
-            popup_shell_surface->GetWidget()->GetNativeWindow()->type());
+            popup_shell_surface->GetWidget()->GetNativeWindow()->GetType());
   EXPECT_EQ(WMHelper::GetInstance()->GetCaptureClient()->GetCaptureWindow(),
             popup_shell_surface->GetWidget()->GetNativeWindow());
 
@@ -1002,7 +1002,7 @@
   // The capture should be on sub_popup_shell_surface.
   EXPECT_EQ(WMHelper::GetInstance()->GetCaptureClient()->GetCaptureWindow(),
             target);
-  EXPECT_EQ(aura::client::WINDOW_TYPE_POPUP, target->type());
+  EXPECT_EQ(aura::client::WINDOW_TYPE_POPUP, target->GetType());
 
   {
     // Mouse is on the top most popup.
@@ -1076,7 +1076,7 @@
 
   // Verify that created shell surface is popup and has capture.
   EXPECT_EQ(aura::client::WINDOW_TYPE_POPUP,
-            popup_shell_surface->GetWidget()->GetNativeWindow()->type());
+            popup_shell_surface->GetWidget()->GetNativeWindow()->GetType());
   EXPECT_EQ(WMHelper::GetInstance()->GetCaptureClient()->GetCaptureWindow(),
             popup_shell_surface->GetWidget()->GetNativeWindow());
 
diff --git a/components/exo/surface.cc b/components/exo/surface.cc
index baac617..e985cc9 100644
--- a/components/exo/surface.cc
+++ b/components/exo/surface.cc
@@ -122,7 +122,7 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   return ash::desks_util::IsDeskContainer(container);
 #else
-  return container->id() == ash::kShellWindowId_DefaultContainerDeprecated;
+  return container->GetId() == ash::kShellWindowId_DefaultContainerDeprecated;
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 }
 
@@ -167,7 +167,7 @@
   void OnWindowDestroyed(aura::Window* window) override { delete this; }
   void OnWindowTargetVisibilityChanged(bool visible) override {}
   void OnWindowOcclusionChanged(
-      aura::Window::OcclusionState occlusion_state) override {
+      aura::Window::OcclusionState GetOcclusionState) override {
     surface_->OnWindowOcclusionChanged();
   }
   bool HasHitTestMask() const override { return true; }
diff --git a/components/exo/surface_unittest.cc b/components/exo/surface_unittest.cc
index c6b7cde..dc34ffb 100644
--- a/components/exo/surface_unittest.cc
+++ b/components/exo/surface_unittest.cc
@@ -1307,7 +1307,7 @@
   sub_surface.reset();
   EXPECT_EQ(1, observer.num_occlusion_changes());
   EXPECT_EQ(aura::Window::OcclusionState::HIDDEN,
-            child_surface->window()->occlusion_state());
+            child_surface->window()->GetOcclusionState());
 }
 
 }  // namespace
diff --git a/components/exo/wayland/zaura_shell.cc b/components/exo/wayland/zaura_shell.cc
index 6311c51..5d5edec1 100644
--- a/components/exo/wayland/zaura_shell.cc
+++ b/components/exo/wayland/zaura_shell.cc
@@ -359,7 +359,7 @@
   if (!surface_ || !surface_->IsTrackingOcclusion())
     return;
   auto* window = surface_->window();
-  ComputeAndSendOcclusionFraction(window->occlusion_state(),
+  ComputeAndSendOcclusionFraction(window->GetOcclusionState(),
                                   window->occluded_region_in_root());
 }
 
diff --git a/components/media_message_center/media_notification_view_impl.cc b/components/media_message_center/media_notification_view_impl.cc
index 3a06d01d..74c48ed 100644
--- a/components/media_message_center/media_notification_view_impl.cc
+++ b/components/media_message_center/media_notification_view_impl.cc
@@ -104,6 +104,7 @@
     case MediaSessionAction::kToggleMicrophone:
     case MediaSessionAction::kToggleCamera:
     case MediaSessionAction::kHangUp:
+    case MediaSessionAction::kRaise:
       NOTREACHED();
       break;
   }
diff --git a/components/media_message_center/media_notification_view_modern_impl.cc b/components/media_message_center/media_notification_view_modern_impl.cc
index 8ac3f8e..7cdd4db 100644
--- a/components/media_message_center/media_notification_view_modern_impl.cc
+++ b/components/media_message_center/media_notification_view_modern_impl.cc
@@ -106,6 +106,7 @@
     case MediaSessionAction::kToggleMicrophone:
     case MediaSessionAction::kToggleCamera:
     case MediaSessionAction::kHangUp:
+    case MediaSessionAction::kRaise:
       NOTREACHED();
       break;
   }
@@ -148,6 +149,7 @@
     case MediaSessionAction::kToggleMicrophone:
     case MediaSessionAction::kToggleCamera:
     case MediaSessionAction::kHangUp:
+    case MediaSessionAction::kRaise:
       NOTREACHED();
       break;
   }
diff --git a/components/net_log/net_export_file_writer_unittest.cc b/components/net_log/net_export_file_writer_unittest.cc
index a3375a9..8ad01ea 100644
--- a/components/net_log/net_export_file_writer_unittest.cc
+++ b/components/net_log/net_export_file_writer_unittest.cc
@@ -604,8 +604,7 @@
 
   // Add some junk at the end of the file.
   std::string junk_data("Hello");
-  EXPECT_TRUE(base::AppendToFile(default_log_path(), junk_data.c_str(),
-                                 junk_data.size()));
+  EXPECT_TRUE(base::AppendToFile(default_log_path(), junk_data));
 
   int64_t junk_file_size;
   EXPECT_TRUE(base::GetFileSize(default_log_path(), &junk_file_size));
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
index f43c7d1..295da38 100644
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
@@ -299,7 +299,7 @@
 // When enabled, a setting is added to chrome://settings/searchEngines to
 // control whether <space> can be used to trigger keyword mode.
 const base::Feature kKeywordSpaceTriggeringSetting{
-    "OmniboxKeywordSpaceTriggeringSetting", base::FEATURE_DISABLED_BY_DEFAULT};
+    "OmniboxKeywordSpaceTriggeringSetting", enabled_by_default_desktop_only};
 
 // Experiment to introduce new security indicators for HTTPS.
 const base::Feature kUpdatedConnectionSecurityIndicators{
diff --git a/components/optimization_guide/content/browser/model_executor.h b/components/optimization_guide/content/browser/model_executor.h
index e5f8e67..5eb181af 100644
--- a/components/optimization_guide/content/browser/model_executor.h
+++ b/components/optimization_guide/content/browser/model_executor.h
@@ -87,11 +87,6 @@
   ModelExecutor() = default;
   virtual ~ModelExecutor() {
     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
-    base::UmaHistogramCounts100(
-        "OptimizationGuide.ModelExecutor.RunCount." +
-            GetStringNameForOptimizationTarget(optimization_target_),
-        run_count_);
   }
 
   // Should be called on the same sequence as the ctor, but once called |this|
@@ -154,7 +149,6 @@
       return;
     }
 
-    run_count_++;
     if (last_execution_time_) {
       // The max of this histogram is 3m since only the distribution and count
       // of smaller values is important.
@@ -253,10 +247,6 @@
 
   scoped_refptr<base::SequencedTaskRunner> reply_task_runner_;
 
-  // Incremented every time the model is run and logged in metrics on
-  // destruction.
-  size_t run_count_ GUARDED_BY_CONTEXT(sequence_checker_) = 0;
-
   // The time that the model was last executed. Logged in metrics for the second
   // and following runs.
   base::Optional<base::TimeTicks> last_execution_time_
diff --git a/components/optimization_guide/content/browser/model_executor_unittest.cc b/components/optimization_guide/content/browser/model_executor_unittest.cc
index 0607a3a..fb82d6d 100644
--- a/components/optimization_guide/content/browser/model_executor_unittest.cc
+++ b/components/optimization_guide/content/browser/model_executor_unittest.cc
@@ -230,13 +230,6 @@
           optimization_guide::GetStringNameForOptimizationTarget(
               proto::OptimizationTarget::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD),
       0);
-  // The run count histogram is only recorded on destruction.
-  ResetModelExecutor();
-  histogram_tester.ExpectUniqueSample(
-      "OptimizationGuide.ModelExecutor.RunCount." +
-          optimization_guide::GetStringNameForOptimizationTarget(
-              proto::OptimizationTarget::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD),
-      0, 1);
   histogram_tester.ExpectTotalCount(
       "OptimizationGuide.ModelExecutor.TaskSchedulingLatency." +
           optimization_guide::GetStringNameForOptimizationTarget(
@@ -297,13 +290,6 @@
           optimization_guide::GetStringNameForOptimizationTarget(
               proto::OptimizationTarget::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD),
       true, 1);
-  // The run count histogram is only recorded on destruction.
-  ResetModelExecutor();
-  histogram_tester.ExpectUniqueSample(
-      "OptimizationGuide.ModelExecutor.RunCount." +
-          optimization_guide::GetStringNameForOptimizationTarget(
-              proto::OptimizationTarget::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD),
-      1, 1);
 }
 
 TEST_F(ModelExecutorTest, ExecuteTwiceWithLoadedModel) {
@@ -373,14 +359,6 @@
           optimization_guide::GetStringNameForOptimizationTarget(
               proto::OptimizationTarget::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD),
       1);
-
-  // The run count histogram is only recorded on destruction.
-  ResetModelExecutor();
-  histogram_tester.ExpectUniqueSample(
-      "OptimizationGuide.ModelExecutor.RunCount." +
-          optimization_guide::GetStringNameForOptimizationTarget(
-              proto::OptimizationTarget::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD),
-      2, 1);
 }
 
 TEST_F(ModelExecutorTest, ParsedSupportedFeaturesForLoadedModelNoMetadata) {
diff --git a/components/optimization_guide/core/optimization_guide_enums.h b/components/optimization_guide/core/optimization_guide_enums.h
index fb65ebc..a48c6ca 100644
--- a/components/optimization_guide/core/optimization_guide_enums.h
+++ b/components/optimization_guide/core/optimization_guide_enums.h
@@ -129,30 +129,32 @@
 // Keep in sync with OptimizationGuidePredictionModelDownloadStatus
 // in enums.xml.
 enum class PredictionModelDownloadStatus {
-  kUnknown,
+  kUnknown = 0,
   // The downloaded file was successfully verified and processed.
-  kSuccess,
+  kSuccess = 1,
   // The downloaded file was not a valid CRX file.
-  kFailedCrxVerification,
+  kFailedCrxVerification = 2,
   // A temporary directory for unzipping the CRX file failed to be created.
-  kFailedUnzipDirectoryCreation,
+  kFailedUnzipDirectoryCreation = 3,
   // The CRX file failed to be unzipped.
-  kFailedCrxUnzip,
+  kFailedCrxUnzip = 4,
   // The model info failed to be read from disk.
-  kFailedModelInfoFileRead,
+  kFailedModelInfoFileRead = 5,
   // The model info failed to be parsed.
-  kFailedModelInfoParsing,
+  kFailedModelInfoParsing = 6,
   // The model file was not found in the CRX file.
-  kFailedModelFileNotFound,
+  kFailedModelFileNotFound = 7,
   // The model file failed to be moved to a more permanent directory.
-  kFailedModelFileOtherError,
+  kFailedModelFileOtherError = 8,
   // The model info was invalid.
-  kFailedModelInfoInvalid,
+  kFailedModelInfoInvalid = 9,
   // The CRX file was a valid CRX file but did not come from a valid publisher.
-  kFailedCrxInvalidPublisher,
+  kFailedCrxInvalidPublisher = 10,
+  // The model directory for storing model files does not exist.
+  kModelDirectoryDoesNotExist = 11,
 
   // Add new values above this line.
-  kMaxValue = kFailedCrxInvalidPublisher,
+  kMaxValue = kModelDirectoryDoesNotExist,
 };
 
 // The state of the model file needed for execution.
diff --git a/components/plugins/renderer/webview_plugin.cc b/components/plugins/renderer/webview_plugin.cc
index 41bc211..07324967 100644
--- a/components/plugins/renderer/webview_plugin.cc
+++ b/components/plugins/renderer/webview_plugin.cc
@@ -269,12 +269,20 @@
                       /*is_hidden=*/false,
                       /*is_inside_portal=*/false,
                       /*compositing_enabled=*/false,
+                      /*widgets_never_composited=*/false,
                       /*opener=*/nullptr, mojo::NullAssociatedReceiver(),
                       *agent_group_scheduler_,
                       /*session_storage_namespace_id=*/base::EmptyString());
   // ApplyWebPreferences before making a WebLocalFrame so that the frame sees a
   // consistent view of our preferences.
   blink::WebView::ApplyWebPreferences(preferences, web_view_);
+
+  // Turn off AcceptLoadDrops for this plugin webview.
+  blink::RendererPreferences renderer_preferences =
+      web_view_->GetRendererPreferences();
+  renderer_preferences.can_accept_load_drops = false;
+  web_view_->SetRendererPreferences(renderer_preferences);
+
   WebLocalFrame* web_frame = WebLocalFrame::CreateMainFrame(
       web_view_, this, nullptr, blink::LocalFrameToken(), nullptr);
   blink::WebFrameWidget* frame_widget = web_frame->InitializeFrameWidget(
@@ -298,10 +306,6 @@
   web_view_->Close();
 }
 
-bool WebViewPlugin::WebViewHelper::AcceptsLoadDrops() {
-  return false;
-}
-
 bool WebViewPlugin::WebViewHelper::CanUpdateLayout() {
   return true;
 }
diff --git a/components/plugins/renderer/webview_plugin.h b/components/plugins/renderer/webview_plugin.h
index 4196f49..c003bb1 100644
--- a/components/plugins/renderer/webview_plugin.h
+++ b/components/plugins/renderer/webview_plugin.h
@@ -168,7 +168,6 @@
     blink::WebNavigationControl* main_frame() { return frame_; }
 
     // WebViewClient methods:
-    bool AcceptsLoadDrops() override;
     bool CanUpdateLayout() override;
     void InvalidateContainer() override;
 
diff --git a/components/policy/core/browser/BUILD.gn b/components/policy/core/browser/BUILD.gn
index 58fd373e..0e8afdd 100644
--- a/components/policy/core/browser/BUILD.gn
+++ b/components/policy/core/browser/BUILD.gn
@@ -41,6 +41,10 @@
     "url_blocklist_policy_handler.h",
     "url_util.cc",
     "url_util.h",
+    "webui/machine_level_user_cloud_policy_status_provider.cc",
+    "webui/machine_level_user_cloud_policy_status_provider.h",
+    "webui/policy_status_provider.cc",
+    "webui/policy_status_provider.h",
   ]
 
   configs += [ "//components/policy:component_implementation" ]
diff --git a/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.cc b/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.cc
new file mode 100644
index 0000000..3e2b8074e6
--- /dev/null
+++ b/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.cc
@@ -0,0 +1,93 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.h"
+
+#include <string>
+
+#include "base/i18n/time_formatting.h"
+#include "base/values.h"
+#include "components/policy/core/common/cloud/cloud_policy_core.h"
+#include "components/policy/core/common/cloud/cloud_policy_refresh_scheduler.h"
+#include "components/policy/core/common/cloud/cloud_policy_util.h"
+#include "google_apis/gaia/gaia_auth_util.h"
+#include "ui/base/l10n/time_format.h"
+
+namespace policy {
+
+MachineLevelUserCloudPolicyStatusProvider::
+    MachineLevelUserCloudPolicyStatusProvider(
+        CloudPolicyCore* core,
+        MachineLevelUserCloudPolicyContext* context)
+    : core_(core), context_(context) {
+  if (core_->store())
+    core_->store()->AddObserver(this);
+}
+
+MachineLevelUserCloudPolicyStatusProvider::
+    ~MachineLevelUserCloudPolicyStatusProvider() {
+  if (core_->store())
+    core_->store()->RemoveObserver(this);
+}
+
+void MachineLevelUserCloudPolicyStatusProvider::GetStatus(
+    base::DictionaryValue* dict) {
+  CloudPolicyRefreshScheduler* refresh_scheduler = core_->refresh_scheduler();
+
+  dict->SetString(
+      "refreshInterval",
+      ui::TimeFormat::Simple(
+          ui::TimeFormat::FORMAT_DURATION, ui::TimeFormat::LENGTH_SHORT,
+          base::TimeDelta::FromMilliseconds(
+              refresh_scheduler
+                  ? refresh_scheduler->GetActualRefreshDelay()
+                  : CloudPolicyRefreshScheduler::kDefaultRefreshDelayMs)));
+  dict->SetBoolean(
+      "policiesPushAvailable",
+      refresh_scheduler ? refresh_scheduler->invalidations_available() : false);
+
+  if (!context_->enrollmentToken.empty())
+    dict->SetString("enrollmentToken", context_->enrollmentToken);
+
+  if (!context_->deviceId.empty())
+    dict->SetString("deviceId", context_->deviceId);
+
+  CloudPolicyStore* store = core_->store();
+  if (store) {
+    std::u16string status = GetPolicyStatusFromStore(store, core_->client());
+
+    dict->SetString("status", status);
+
+    const enterprise_management::PolicyData* policy = store->policy();
+    if (policy) {
+      dict->SetString("timeSinceLastRefresh",
+                      GetTimeSinceLastRefreshString(
+                          refresh_scheduler ? refresh_scheduler->last_refresh()
+                                            : base::Time()));
+      dict->SetString("domain", gaia::ExtractDomainName(policy->username()));
+    }
+  }
+  dict->SetString("machine", GetMachineName());
+
+  if (!context_->lastCloudReportSent.is_null()) {
+    dict->SetString("lastCloudReportSentTimestamp",
+                    base::TimeFormatShortDateAndTimeWithTimeZone(
+                        context_->lastCloudReportSent));
+    dict->SetString(
+        "timeSinceLastCloudReportSent",
+        GetTimeSinceLastRefreshString(context_->lastCloudReportSent));
+  }
+}
+
+void MachineLevelUserCloudPolicyStatusProvider::OnStoreLoaded(
+    CloudPolicyStore* store) {
+  NotifyStatusChange();
+}
+
+void MachineLevelUserCloudPolicyStatusProvider::OnStoreError(
+    CloudPolicyStore* store) {
+  NotifyStatusChange();
+}
+
+}  // namespace policy
diff --git a/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.h b/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.h
new file mode 100644
index 0000000..f113cb4f
--- /dev/null
+++ b/components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.h
@@ -0,0 +1,54 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_POLICY_CORE_BROWSER_WEBUI_MACHINE_LEVEL_USER_CLOUD_POLICY_STATUS_PROVIDER_H_
+#define COMPONENTS_POLICY_CORE_BROWSER_WEBUI_MACHINE_LEVEL_USER_CLOUD_POLICY_STATUS_PROVIDER_H_
+
+#include <string>
+
+#include "components/policy/core/browser/webui/policy_status_provider.h"
+#include "components/policy/core/common/cloud/cloud_policy_store.h"
+#include "components/policy/policy_export.h"
+
+namespace base {
+class DictionaryValue;
+}
+
+namespace policy {
+class CloudPolicyCore;
+
+struct POLICY_EXPORT MachineLevelUserCloudPolicyContext {
+  std::string enrollmentToken;
+  std::string deviceId;
+  base::Time lastCloudReportSent;
+};
+
+class POLICY_EXPORT MachineLevelUserCloudPolicyStatusProvider
+    : public PolicyStatusProvider,
+      public CloudPolicyStore::Observer {
+ public:
+  MachineLevelUserCloudPolicyStatusProvider(
+      CloudPolicyCore* core,
+      MachineLevelUserCloudPolicyContext* context);
+  MachineLevelUserCloudPolicyStatusProvider(
+      const MachineLevelUserCloudPolicyStatusProvider&) = delete;
+  MachineLevelUserCloudPolicyStatusProvider& operator=(
+      const MachineLevelUserCloudPolicyStatusProvider&) = delete;
+  ~MachineLevelUserCloudPolicyStatusProvider() override;
+
+  // PolicyStatusProvider implementation.
+  void GetStatus(base::DictionaryValue* dict) override;
+
+  // CloudPolicyStore::Observer implementation.
+  void OnStoreLoaded(CloudPolicyStore* store) override;
+  void OnStoreError(CloudPolicyStore* store) override;
+
+ private:
+  CloudPolicyCore* core_;
+  MachineLevelUserCloudPolicyContext* context_;
+};
+
+}  // namespace policy
+
+#endif  // COMPONENTS_POLICY_CORE_BROWSER_WEBUI_MACHINE_LEVEL_USER_CLOUD_POLICY_STATUS_PROVIDER_H_
diff --git a/components/policy/core/browser/webui/policy_status_provider.cc b/components/policy/core/browser/webui/policy_status_provider.cc
new file mode 100644
index 0000000..5ab9b7cd
--- /dev/null
+++ b/components/policy/core/browser/webui/policy_status_provider.cc
@@ -0,0 +1,141 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/policy/core/browser/webui/policy_status_provider.h"
+
+#include "base/time/time.h"
+#include "components/policy/core/browser/cloud/message_util.h"
+#include "components/policy/core/common/cloud/cloud_policy_client.h"
+#include "components/policy/core/common/cloud/cloud_policy_core.h"
+#include "components/policy/core/common/cloud/cloud_policy_refresh_scheduler.h"
+#include "components/policy/core/common/cloud/cloud_policy_store.h"
+#include "components/strings/grit/components_strings.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/l10n/time_format.h"
+
+namespace em = enterprise_management;
+
+namespace policy {
+
+namespace {
+
+// Formats the association state indicated by |data|. If |data| is NULL, the
+// state is considered to be UNMANAGED.
+std::u16string FormatAssociationState(const em::PolicyData* data) {
+  if (data) {
+    switch (data->state()) {
+      case em::PolicyData::ACTIVE:
+        return l10n_util::GetStringUTF16(IDS_POLICY_ASSOCIATION_STATE_ACTIVE);
+      case em::PolicyData::UNMANAGED:
+        return l10n_util::GetStringUTF16(
+            IDS_POLICY_ASSOCIATION_STATE_UNMANAGED);
+      case em::PolicyData::DEPROVISIONED:
+        return l10n_util::GetStringUTF16(
+            IDS_POLICY_ASSOCIATION_STATE_DEPROVISIONED);
+    }
+    NOTREACHED() << "Unknown state " << data->state();
+  }
+
+  // Default to UNMANAGED for the case of missing policy or bad state enum.
+  return l10n_util::GetStringUTF16(IDS_POLICY_ASSOCIATION_STATE_UNMANAGED);
+}
+
+}  // namespace
+
+PolicyStatusProvider::PolicyStatusProvider() = default;
+
+PolicyStatusProvider::~PolicyStatusProvider() = default;
+
+void PolicyStatusProvider::SetStatusChangeCallback(
+    const base::RepeatingClosure& callback) {
+  callback_ = callback;
+}
+
+// static
+void PolicyStatusProvider::GetStatus(base::DictionaryValue* dict) {
+  // This method is called when the client is not enrolled.
+  // Thus leaving the dict without any changes.
+}
+
+void PolicyStatusProvider::NotifyStatusChange() {
+  if (callback_)
+    callback_.Run();
+}
+
+void PolicyStatusProvider::GetStatusFromCore(const CloudPolicyCore* core,
+                                             base::DictionaryValue* dict) {
+  const CloudPolicyStore* store = core->store();
+  const CloudPolicyClient* client = core->client();
+  const CloudPolicyRefreshScheduler* refresh_scheduler =
+      core->refresh_scheduler();
+
+  const std::u16string status = GetPolicyStatusFromStore(store, client);
+
+  const em::PolicyData* policy = store->policy();
+  std::string client_id = policy ? policy->device_id() : std::string();
+  std::string username = policy ? policy->username() : std::string();
+
+  if (policy && policy->has_annotated_asset_id())
+    dict->SetString("assetId", policy->annotated_asset_id());
+  if (policy && policy->has_annotated_location())
+    dict->SetString("location", policy->annotated_location());
+  if (policy && policy->has_directory_api_id())
+    dict->SetString("directoryApiId", policy->directory_api_id());
+  if (policy && policy->has_gaia_id())
+    dict->SetString("gaiaId", policy->gaia_id());
+
+  base::TimeDelta refresh_interval = base::TimeDelta::FromMilliseconds(
+      refresh_scheduler ? refresh_scheduler->GetActualRefreshDelay()
+                        : CloudPolicyRefreshScheduler::kDefaultRefreshDelayMs);
+  base::Time last_refresh_time =
+      refresh_scheduler ? refresh_scheduler->last_refresh() : base::Time();
+
+  bool no_error = store->status() == CloudPolicyStore::STATUS_OK && client &&
+                  client->status() == DM_STATUS_SUCCESS;
+  dict->SetBoolean("error", !no_error);
+  dict->SetBoolean(
+      "policiesPushAvailable",
+      refresh_scheduler ? refresh_scheduler->invalidations_available() : false);
+  dict->SetString("status", status);
+  dict->SetString("clientId", client_id);
+  dict->SetString("username", username);
+  dict->SetString(
+      "refreshInterval",
+      ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_DURATION,
+                             ui::TimeFormat::LENGTH_SHORT, refresh_interval));
+  dict->SetString("timeSinceLastRefresh",
+                  GetTimeSinceLastRefreshString(last_refresh_time));
+}
+
+// CloudPolicyStore errors take precedence to show in the status message.
+// Other errors (such as transient policy fetching problems) get displayed
+// only if CloudPolicyStore is in STATUS_OK.
+// static
+std::u16string PolicyStatusProvider::GetPolicyStatusFromStore(
+    const CloudPolicyStore* store,
+    const CloudPolicyClient* client) {
+  if (store->status() == CloudPolicyStore::STATUS_OK) {
+    if (client && client->status() != DM_STATUS_SUCCESS)
+      return FormatDeviceManagementStatus(client->status());
+    else if (!store->is_managed())
+      return FormatAssociationState(store->policy());
+  }
+
+  return FormatStoreStatus(store->status(), store->validation_status());
+}
+
+// static
+std::u16string PolicyStatusProvider::GetTimeSinceLastRefreshString(
+    base::Time last_refresh_time) {
+  if (last_refresh_time.is_null())
+    return l10n_util::GetStringUTF16(IDS_POLICY_NEVER_FETCHED);
+  base::Time now = base::Time::NowFromSystemTime();
+  base::TimeDelta elapsed_time;
+  if (now > last_refresh_time)
+    elapsed_time = now - last_refresh_time;
+  return ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_ELAPSED,
+                                ui::TimeFormat::LENGTH_SHORT, elapsed_time);
+}
+
+}  // namespace policy
diff --git a/components/policy/core/browser/webui/policy_status_provider.h b/components/policy/core/browser/webui/policy_status_provider.h
new file mode 100644
index 0000000..4f07df9
--- /dev/null
+++ b/components/policy/core/browser/webui/policy_status_provider.h
@@ -0,0 +1,52 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_POLICY_CORE_BROWSER_WEBUI_POLICY_STATUS_PROVIDER_H_
+#define COMPONENTS_POLICY_CORE_BROWSER_WEBUI_POLICY_STATUS_PROVIDER_H_
+
+#include "base/callback_helpers.h"
+#include "components/policy/policy_export.h"
+
+namespace base {
+class DictionaryValue;
+}
+
+namespace policy {
+class CloudPolicyClient;
+class CloudPolicyCore;
+class CloudPolicyStore;
+
+// An interface for querying the status of a policy provider.  It surfaces
+// things like last fetch time or status of the backing store, but not the
+// actual policies themselves.
+class POLICY_EXPORT PolicyStatusProvider {
+ public:
+  PolicyStatusProvider();
+  PolicyStatusProvider(const PolicyStatusProvider&) = delete;
+  PolicyStatusProvider& operator=(const PolicyStatusProvider&) = delete;
+  virtual ~PolicyStatusProvider();
+
+  // Sets a callback to invoke upon status changes.
+  virtual void SetStatusChangeCallback(const base::RepeatingClosure& callback);
+
+  // Fills the passed dictionary with metadata about policies.
+  // The passed base::DictionaryValue should be empty.
+  virtual void GetStatus(base::DictionaryValue* dict);
+
+  static void GetStatusFromCore(const CloudPolicyCore* core,
+                                base::DictionaryValue* dict);
+
+ protected:
+  void NotifyStatusChange();
+  static std::u16string GetPolicyStatusFromStore(const CloudPolicyStore*,
+                                                 const CloudPolicyClient*);
+  static std::u16string GetTimeSinceLastRefreshString(base::Time);
+
+ private:
+  base::RepeatingClosure callback_;
+};
+
+}  // namespace policy
+
+#endif  // COMPONENTS_POLICY_CORE_BROWSER_WEBUI_POLICY_STATUS_PROVIDER_H_
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 63d0df1..261351f 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -424,17 +424,6 @@
       Siehe https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">Verwendung des monitorlosen Modus nicht erlauben</translation>
 <translation id="1588240398285670601">Browsereinstellungen</translation>
-<translation id="1590071725627230651">Diese Einstellung bietet mehrere Verfügbarkeitsoptionen für den <ph name="LACROS_NAME" />-Browser.
-
-      Wenn diese Richtlinie auf „<ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" />“ gesetzt oder nicht konfiguriert ist, kann der Nutzer <ph name="LACROS_NAME" /> aktivieren und als primären Browser festlegen. <ph name="LACROS_NAME" /> kann weiterhin mit der Richtlinie <ph name="LACROS_ALLOWED_POLICY_NAME" /> deaktiviert werden.
-
-      Wenn die Richtlinie auf „<ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />“ gesetzt ist, kann der Nutzer <ph name="LACROS_NAME" /> nicht verwenden. Die Richtlinie <ph name="LACROS_ALLOWED_POLICY_NAME" /> wird ignoriert.
-
-      Wenn die Richtlinie auf „<ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />“ gesetzt ist, ist <ph name="LACROS_NAME" /> zwar aktiviert, er ist jedoch nicht der primäre Browser. Die Richtlinie <ph name="LACROS_ALLOWED_POLICY_NAME" /> wird ignoriert.
-
-      Wenn die Richtlinie auf „<ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />“ gesetzt ist, ist <ph name="LACROS_NAME" /> aktiviert und als primärer Browser festgelegt. Die Richtlinie <ph name="LACROS_ALLOWED_POLICY_NAME" /> wird ignoriert.
-
-      Künftig können Sie <ph name="LACROS_NAME" /> unter <ph name="PRODUCT_OS_NAME" /> mit dem Wert „<ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />“ als einzigen verfügbaren Browser festlegen.</translation>
 <translation id="1599424828227887013">Website-Isolierung für angegebene Ursprünge auf Android-Geräten aktivieren</translation>
 <translation id="159946228300522107">Wenn für diese Richtlinie "True" festgelegt ist, maximiert Chrome beim ersten Start das erste angezeigte Fenster.
 
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index eb878a84..21229837 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -437,17 +437,6 @@
       Consulta https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">No permitir el uso del modo sin interfaz gráfica</translation>
 <translation id="1588240398285670601">Configuración del navegador</translation>
-<translation id="1590071725627230651">Esta configuración brinda diferentes opciones de disponibilidad para el navegador <ph name="LACROS_NAME" />.
-
-      Si estableces la política como <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> o no la estableces, el usuario podrá habilitar <ph name="LACROS_NAME" /> y seleccionarlo como navegador principal. <ph name="LACROS_NAME" /> puede inhabilitarse mediante la política <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Si estableces la política como <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />, el usuario no podrá usar <ph name="LACROS_NAME" />. Se ignorará la política <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Si estableces la política como <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />, se habilitará <ph name="LACROS_NAME" />, pero no será el navegador principal. Se ignorará la política <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Si estableces la política como <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />, se habilitará <ph name="LACROS_NAME" /> y será el navegador principal. Se ignorará la política <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Posteriormente, se podrá seleccionar <ph name="LACROS_NAME" /> como el único navegador disponible en <ph name="PRODUCT_OS_NAME" /> a través del valor <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />.</translation>
 <translation id="1599424828227887013">Habilitar el aislamiento de sitios para orígenes específicos en dispositivos Android</translation>
 <translation id="159946228300522107">Si estableces la política como verdadera, Chrome maximizará la primera ventana que se muestre en la primera ejecución.
 
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 0e26eb86..de851b4b2 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -437,17 +437,6 @@
       Consulta https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">No permite utilizar el modo sin interfaz gráfica</translation>
 <translation id="1588240398285670601">Configuración del navegador</translation>
-<translation id="1590071725627230651">Este ajuste proporciona varias opciones de disponibilidad del navegador <ph name="LACROS_NAME" />.
-
-      Si a esta política se le asigna el valor <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> o no se le asigna ninguno, el usuario podrá habilitar <ph name="LACROS_NAME" /> y convertirlo en el navegador principal. Se podrá seguir inhabilitando <ph name="LACROS_NAME" /> con la política <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Si se le asigna el valor <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />, el usuario no podrá usar <ph name="LACROS_NAME" />. Se ignorará la política <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Si se le asigna el valor <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />, se habilitará <ph name="LACROS_NAME" />, pero no será el navegador principal. Se ignorará la política <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Si se le asigna el valor <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />, se habilitará <ph name="LACROS_NAME" /> y será el navegador principal. Se ignorará la política <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      En el futuro, se podrá establecer que <ph name="LACROS_NAME" /> sea el único navegador disponible en <ph name="PRODUCT_OS_NAME" /> con el valor <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />.</translation>
 <translation id="1599424828227887013">Habilitar el aislamiento de sitios web específicos en dispositivos Android</translation>
 <translation id="159946228300522107">Si se asigna el valor "Verdadero" a esta política, Chrome maximizará la primera ventana que se muestre al ejecutarse por primera vez.
 
@@ -2536,7 +2525,7 @@
 <translation id="4331357743227845302">Esta política permite a los administradores configurar los servicios Bluetooth a los que puede conectarse <ph name="PRODUCT_OS_NAME" />.
 
 Si se define esta política, <ph name="PRODUCT_OS_NAME" /> solo permitirá que los usuarios se conecten a los servicios Bluetooth especificados. Si la lista está vacía, los usuarios podrán usar cualquier servicio. Los UUIDs reservados por Bluetooth SIG se pueden representar como <ph name="BLUETOOTH_RESERVED_UUID_WITH_0X" /> o como <ph name="BLUETOOTH_RESERVED_UUID_WITHOUT_0X" />. Los UUIDs personalizados se pueden representar como <ph name="BLUETOOTH_CUSTOM_UUID" />. Los UUIDs no distinguen entre mayúsculas y minúsculas. Si no se asigna ningún valor a esta política, los usuarios podrán conectarse a cualquier servicio Bluetooth.</translation>
-<translation id="4332177773549877617">Registrar eventos de descargas de aplicación para Android</translation>
+<translation id="4332177773549877617">Registrar eventos de descargas de la aplicación para Android</translation>
 <translation id="4341199399451274159">Si <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> está activada y se asigna un valor a <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" />, se especificarán las codificaciones de caracteres admitidas por el proveedor de búsquedas. Las codificaciones son nombres de páginas de códigos, como UTF‑8, GB2312 o ISO-8859‑1. Se intentarán utilizar siguiendo el orden especificado.
 
       Si no se asigna ningún valor a <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" />, se utilizará la codificación UTF‑8.</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 3246c94..e71210a 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -430,17 +430,6 @@
       Voir https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">Ne pas autoriser le mode sans interface graphique</translation>
 <translation id="1588240398285670601">Paramètres du navigateur</translation>
-<translation id="1590071725627230651">Ce paramètre offre plusieurs options de disponibilité pour le navigateur <ph name="LACROS_NAME" />.
-
-      Si cette règle est définie sur "<ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" />" ou qu'elle n'est pas configurée, l'utilisateur peut activer <ph name="LACROS_NAME" /> et en faire le navigateur principal. (<ph name="LACROS_NAME" /> peut quand même être non autorisé avec la règle "<ph name="LACROS_ALLOWED_POLICY_NAME" />".)
-
-      Si la règle est définie sur "<ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />", l'utilisateur ne peut pas se servir de <ph name="LACROS_NAME" />. (La règle "<ph name="LACROS_ALLOWED_POLICY_NAME" />" est ignorée.)
-
-      Si la règle est définie sur "<ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />", <ph name="LACROS_NAME" /> est activé, mais n'est pas le navigateur principal. (La règle "<ph name="LACROS_ALLOWED_POLICY_NAME" />" est ignorée.)
-
-      Si la règle est définie sur "<ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />", <ph name="LACROS_NAME" /> est activé et c'est le navigateur principal. (La règle "<ph name="LACROS_ALLOWED_POLICY_NAME" />" est ignorée.)
-
-      À l'avenir, la valeur "<ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />" permettra de faire de <ph name="LACROS_NAME" /> le seul navigateur disponible dans <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="1599424828227887013">Activer l'isolation des sites pour des origines définies sur les appareils Android</translation>
 <translation id="159946228300522107">Si cette règle est définie sur "True", Chrome agrandit la première fenêtre affichée à la première exécution.
 
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 07fc2873..79fd372 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -436,17 +436,6 @@
       Buka https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">Jangan izinkan penggunaan Mode Headless</translation>
 <translation id="1588240398285670601">Setelan Browser</translation>
-<translation id="1590071725627230651">Setelan ini memberikan beberapa opsi ketersediaan untuk browser <ph name="LACROS_NAME" />.
-
-      Jika kebijakan disetel ke <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> atau tidak disetel, pengguna dapat mengaktifkan <ph name="LACROS_NAME" /> dan menjadikannya sebagai browser utama. <ph name="LACROS_NAME" /> bisa tetap tidak diizinkan dengan kebijakan <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Jika kebijakan disetel ke <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />, pengguna tidak dapat menggunakan <ph name="LACROS_NAME" />. Kebijakan <ph name="LACROS_ALLOWED_POLICY_NAME" /> akan diabaikan.
-
-      Jika kebijakan disetel ke <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />, <ph name="LACROS_NAME" /> akan diaktifkan tetapi bukan sebagai browser utama. Kebijakan <ph name="LACROS_ALLOWED_POLICY_NAME" /> akan diabaikan.
-
-      Jika kebijakan disetel ke <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />, <ph name="LACROS_NAME" /> akan diaktifkan dan menjadi browser utama. Kebijakan <ph name="LACROS_ALLOWED_POLICY_NAME" /> akan diabaikan.
-
-      Di masa mendatang, <ph name="LACROS_NAME" /> mungkin bisa menjadi satu-satunya browser yang tersedia di <ph name="PRODUCT_OS_NAME" /> dengan nilai <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />.</translation>
 <translation id="1599424828227887013">Mengaktifkan Isolasi Situs untuk asal yang ditentukan di perangkat Android</translation>
 <translation id="159946228300522107">Jika kebijakan ditetapkan ke Benar (True), Chrome akan memaksimalkan jendela pertama yang ditampilkan saat pertama kali dijalankan.
 
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 37683def..5068370 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -437,17 +437,6 @@
       Visita la pagina https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">Non è consentito l'uso della modalità headless</translation>
 <translation id="1588240398285670601">Impostazioni del browser</translation>
-<translation id="1590071725627230651">Questa impostazione offre diverse opzioni relative alla disponibilità del browser <ph name="LACROS_NAME" />.
-
-      Se il criterio viene impostato su <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> o se non viene configurato, l'utente può attivare <ph name="LACROS_NAME" /> e impostarlo come browser principale. È comunque possibile non consentire <ph name="LACROS_NAME" /> con il criterio <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Se il criterio viene impostato su <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />, l'utente non potrà usare <ph name="LACROS_NAME" />. Il criterio <ph name="LACROS_ALLOWED_POLICY_NAME" /> viene ignorato.
-
-      Se il criterio viene impostato su <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />, <ph name="LACROS_NAME" /> viene attivato, ma non è il browser principale. Il criterio <ph name="LACROS_ALLOWED_POLICY_NAME" /> viene ignorato.
-
-      Se il criterio viene impostato su <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />, <ph name="LACROS_NAME" /> viene attivato ed è il browser principale. Il criterio <ph name="LACROS_ALLOWED_POLICY_NAME" /> viene ignorato.
-
-      In futuro sarà possibile impostare <ph name="LACROS_NAME" /> come unico browser disponibile in <ph name="PRODUCT_OS_NAME" /> impostando il valore <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />.</translation>
 <translation id="1599424828227887013">Attiva isolamento dei siti per origini specificate su dispositivi Android</translation>
 <translation id="159946228300522107">Se il criterio è impostato su True, Chrome ingrandisce la prima finestra mostrata alla prima esecuzione.
 
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index b3652b1..0df6882 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -380,6 +380,13 @@
 <translation id="1516486219683984217">システム通知の使用を許可しない</translation>
 <translation id="1522425503138261032">サイトに対してユーザーの物理的な現在地の追跡を許可する</translation>
 <translation id="1523774894176285446">設定したウェブサイトに対して起動する代替ブラウザ。</translation>
+<translation id="1524243669991877602">このポリシーを有効に設定した場合、<ph name="GOOGLE_WORKSPACE_PRODUCT_NAME" /> アカウントに関連付けられているポリシーをマシンレベルのポリシーに統合できます。
+
+      なお、統合できるのはセキュア ユーザーのポリシーのみです。セキュア ユーザーとは、<ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> を使用してブラウザを管理している企業に所属するユーザーです。他のすべてのユーザーレベルのポリシーは常に無視されます。
+
+      ポリシーを統合するには、<ph name="POLICY_POLICYLISTMULTIPLESOURCEMERGELIST" /> または <ph name="POLICY_POLICYDICTIONARYMULTIPLESOURCEMERGELIST" /> での設定も必要です。これら 2 つのポリシーのどちらも設定していない場合、このポリシーは無視されます。
+
+      このポリシーを未設定のままにするか無効に設定した場合、ユーザーレベルのクラウド ポリシーを他のソースのポリシーと統合することはできません。</translation>
 <translation id="152657506688053119">デフォルトの検索プロバイダが使用する代替 URL のリスト</translation>
 <translation id="1527298988676981599">ログイン画面で特定のベンダー ID と製品 ID の USB デバイスへのアクセスを自動的に許可するサイトの URL パターンリストを設定できます。リストの各項目では、「<ph name="DEVICES_FIELD_NAME" />」と「<ph name="URLS_FIELD_NAME" />」フィールドの両方を指定する必要があります。「<ph name="DEVICES_FIELD_NAME" />」フィールドの各項目には、「<ph name="VENDOR_ID_FIELD_NAME" />」と「<ph name="PRODUCT_ID_FIELD_NAME" />」フィールドを指定できます。「<ph name="VENDOR_ID_FIELD_NAME" />」フィールドを省略した場合、あらゆるデバイスに一致するポリシーが作成されます。「<ph name="PRODUCT_ID_FIELD_NAME" />」フィールドを省略した場合、指定したベンダー ID のあらゆるデバイスに一致するポリシーが作成されます。「<ph name="PRODUCT_ID_FIELD_NAME" />」フィールドを指定して「<ph name="VENDOR_ID_FIELD_NAME" />」フィールドは指定しなかった場合、ポリシーは無効になります。
 
@@ -420,17 +427,6 @@
       詳しくは、https://www.chromestatus.com/feature/4664843055398912 をご覧ください。</translation>
 <translation id="1587585749332985896">ヘッドレス モードの使用を許可しない</translation>
 <translation id="1588240398285670601">ブラウザの設定</translation>
-<translation id="1590071725627230651">この設定は、<ph name="LACROS_NAME" /> ブラウザの使用に関する複数のオプションを提供します。
-
-      このポリシーを <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> に設定するか、未設定のままにした場合、ユーザーは <ph name="LACROS_NAME" /> を有効にするとともにメインのブラウザとして設定できます。この場合も、<ph name="LACROS_NAME" /> は <ph name="LACROS_ALLOWED_POLICY_NAME" /> ポリシーで無効にできます。
-
-      このポリシーを <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" /> に設定した場合、ユーザーは <ph name="LACROS_NAME" /> を使用できません。<ph name="LACROS_ALLOWED_POLICY_NAME" /> ポリシーは無視されます。
-
-      このポリシーを <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" /> に設定した場合、<ph name="LACROS_NAME" /> は有効になりますが、メインのブラウザとしては設定されません。<ph name="LACROS_ALLOWED_POLICY_NAME" /> ポリシーは無視されます。
-
-      このポリシーを <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" /> に設定した場合、<ph name="LACROS_NAME" /> は有効になり、メインのブラウザとして設定されます。<ph name="LACROS_ALLOWED_POLICY_NAME" /> ポリシーは無視されます。
-
-      今後、<ph name="PRODUCT_OS_NAME" /> で <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" /> 値を使用して、<ph name="LACROS_NAME" /> を唯一の使用可能なブラウザとして設定できるようになる予定です。</translation>
 <translation id="1599424828227887013">Android デバイスで指定の発行元に対してサイト分離を有効にする</translation>
 <translation id="159946228300522107">このポリシーを True に設定した場合、Chrome では初回実行時に最初に表示されたウィンドウが最大化されます。このポリシーを False に設定した場合、または未設定のままにした場合、画面サイズによっては、Chrome で最初に表示されたウィンドウが最大化されます。</translation>
 <translation id="1600340610556453828">このポリシーを無効に設定した場合、<ph name="PRODUCT_OS_NAME" /> で Wi-Fi がオフになり、ユーザーはこの設定を変更できません。
@@ -1147,6 +1143,7 @@
           このポリシーを未設定のままにした場合、テキストカーソルによるハイライト表示が無効(初期設定)になりますが、ユーザーはいつでも有効にできます。</translation>
 <translation id="2509748672176727116">ネットワーク パケット キャプチャの実行をユーザーに許可する</translation>
 <translation id="2509919237512982967">M84 まで従来のフォーム コントロールを使用する</translation>
+<translation id="2512972020817284317">ユーザーレベルのクラウド ポリシーの統合を有効にする。</translation>
 <translation id="2515699738406900920">起動時のプロフィール選択画面の状態</translation>
 <translation id="2517466659416174529">バックグラウンド タブの凍結を許可する</translation>
 <translation id="2518231489509538392">音声の再生を許可する</translation>
@@ -2671,6 +2668,7 @@
 
       注: この設定は <ph name="REMOTE_ACCESS_HOST_CLIENT_DOMAIN_POLICY_NAME" /> より優先されます(指定されている場合)。</translation>
 <translation id="4661889655253181651">[コンテンツの設定] では、特定のタイプのコンテンツ(Cookie、画像、JavaScript など)を処理する方法を指定できます。</translation>
+<translation id="4663509616441994711">ユーザーレベルのクラウド ポリシーの統合を無効にする。</translation>
 <translation id="4665897631924472251">拡張機能の管理設定</translation>
 <translation id="4666930704271463612">サーバー プリンタについてのクエリを送信するプリント サーバーのサブセットを指定します。
 
@@ -5076,6 +5074,7 @@
 
           このポリシーを設定しない場合、ハイ コントラストは初期設定ではログイン画面で無効ですが、ユーザーはいつでも有効にできます。</translation>
 <translation id="7869986671709030417">背景のグラフィックのデフォルト印刷モード</translation>
+<translation id="7877924399554599110">ユーザーのクラウド ポリシーをマシンレベルのポリシーに統合できる</translation>
 <translation id="7881421274383404138">このポリシーでは、企業プリンタを設定します。フォーマットは <ph name="PRINTERS_POLICY_NAME" /> ディクショナリと一致させ、許可リストまたは拒否リストに登録するプリンタごとに「<ph name="ID_FIELD" />」または「<ph name="GUID_FIELD" />」フィールドを追加で指定する必要があります。ファイルのサイズは 5 MB 以下とし、JSON 形式にします。5 MB は、約 21,000 台のプリンタを指定してエンコードしたファイルに相当します。ダウンロードの整合性の確認には暗号化ハッシュが使用されます。このファイルはダウンロードされた後、キャッシュされ、URL またはハッシュに変更があった場合は再度ダウンロードされます。<ph name="PRODUCT_OS_NAME" /> ではプリンタ設定ファイルがダウンロードされ、<ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME" />、<ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" />、<ph name="PRINTERS_BULK_BLOCKLIST_POLICY_NAME" /> に沿ってプリンタが利用可能になります。
 
       このポリシーでは、ユーザーが各自のデバイスでプリンタを設定できるかどうかは制御されません。このポリシーは、個々のユーザーのプリンタ設定を補完することを目的としたものです。
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 0c7e325..b03c843 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -437,17 +437,6 @@
       https://www.chromestatus.com/feature/4664843055398912 페이지를 참고하세요.</translation>
 <translation id="1587585749332985896">헤드리스 모드 사용 허용 안 함</translation>
 <translation id="1588240398285670601">브라우저 설정</translation>
-<translation id="1590071725627230651">이 설정은 <ph name="LACROS_NAME" /> 브라우저의 사용 가능 여부 옵션을 다양하게 제공합니다.
-
-      정책을 <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> 값으로 설정하거나 설정하지 않으면 사용자가 <ph name="LACROS_NAME" />를 사용 설정하고 기본 브라우저로 지정할 수 있습니다. 여전히 <ph name="LACROS_ALLOWED_POLICY_NAME" /> 정책을 사용해 <ph name="LACROS_NAME" />를 사용 중지할 수도 있습니다.
-
-      정책을 <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />으로 설정하면 사용자가 <ph name="LACROS_NAME" />를 사용할 수 없습니다. <ph name="LACROS_ALLOWED_POLICY_NAME" /> 정책은 무시됩니다.
-
-      정책을 <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" /> 값으로 설정하면 <ph name="LACROS_NAME" />가 사용 설정되지만 기본 브라우저로 지정되지는 않습니다. <ph name="LACROS_ALLOWED_POLICY_NAME" /> 정책은 무시됩니다.
-
-      정책을 <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" /> 값으로 설정하면 <ph name="LACROS_NAME" />가 사용 설정되며 기본 브라우저로 지정됩니다. <ph name="LACROS_ALLOWED_POLICY_NAME" /> 정책은 무시됩니다.
-
-      나중에 <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" /> 값을 사용해 <ph name="LACROS_NAME" />를 <ph name="PRODUCT_OS_NAME" />에서 사용 가능한 유일한 브라우저로 지정할 수 있습니다.</translation>
 <translation id="1599424828227887013">Android 기기에서 지정된 출처의 사이트 격리 사용 설정</translation>
 <translation id="159946228300522107">정책을 True로 설정하면 Chrome에서 최초 실행 시 표시되는 첫 번째 창을 최대화합니다.
 
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index b968a93..956e594 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -437,17 +437,6 @@
       Zie https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">Gebruik van de stand zonder interface niet toestaan</translation>
 <translation id="1588240398285670601">Browserinstellingen</translation>
-<translation id="1590071725627230651">Deze instelling biedt verschillende beschikbaarheidsopties voor de <ph name="LACROS_NAME" />-browser.
-
-      Als je het beleid instelt op <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> of niet instelt, kan de gebruiker <ph name="LACROS_NAME" /> aanzetten en instellen als primaire browser. <ph name="LACROS_NAME" /> kan nog steeds niet toegestaan worden met het beleid <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Als je het beleid instelt op <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />, kan de gebruiker <ph name="LACROS_NAME" /> niet gebruiken. Het beleid <ph name="LACROS_ALLOWED_POLICY_NAME" /> wordt genegeerd.
-
-      Als je het beleid instelt op <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />, wordt <ph name="LACROS_NAME" /> aangezet maar niet ingesteld als primaire browser. Het beleid <ph name="LACROS_ALLOWED_POLICY_NAME" /> wordt genegeerd.
-
-      Als je het beleid instelt op <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />, wordt <ph name="LACROS_NAME" /> aangezet en ingesteld als primaire browser. Het beleid <ph name="LACROS_ALLOWED_POLICY_NAME" /> wordt genegeerd.
-
-      In de toekomst kun je van <ph name="LACROS_NAME" /> de enige beschikbare browser in <ph name="PRODUCT_OS_NAME" /> maken met de waarde <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />.</translation>
 <translation id="1599424828227887013">Site-isolatie aanzetten voor opgegeven oorsprongen op Android-apparaten</translation>
 <translation id="159946228300522107">Als je het beleid instelt op True, maximaliseert Chrome het eerste venster tijdens de eerste uitvoering.
 
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 7c619d3d..baf83d8 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -433,17 +433,6 @@
       Consulte https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">Não permitir o uso do modo headless</translation>
 <translation id="1588240398285670601">Configurações do navegador</translation>
-<translation id="1590071725627230651">Essa configuração apresenta várias opções de disponibilidade para o navegador <ph name="LACROS_NAME" />.
-
-      Se a política for configurada como <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> ou for deixada sem definição, o usuário poderá ativar o <ph name="LACROS_NAME" /> e usá-lo como o principal. O <ph name="LACROS_NAME" /> ainda pode ser proibido com o uso da política <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Se a política for configurada como <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />, o usuário não poderá usar o <ph name="LACROS_NAME" />. A política <ph name="LACROS_ALLOWED_POLICY_NAME" /> será ignorada.
-
-      Se a política for configurada como<ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />, o <ph name="LACROS_NAME" /> será ativado, mas não será o navegador principal. A política <ph name="LACROS_ALLOWED_POLICY_NAME" /> será ignorada.
-
-      Se a política for configurada como<ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />, o <ph name="LACROS_NAME" /> será ativado e definido como o navegador principal. A política <ph name="LACROS_ALLOWED_POLICY_NAME" /> será ignorada.
-
-      No futuro, será possível fazer com que o <ph name="LACROS_NAME" /> seja o único navegador disponível no <ph name="PRODUCT_OS_NAME" /> com o valor <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />.</translation>
 <translation id="1599424828227887013">Ativa o isolamento de sites para origens específicas em dispositivos Android</translation>
 <translation id="159946228300522107">Se a política for definida como verdadeira, o Chrome maximizará a primeira janela exibida durante a primeira execução.
 
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index da5d7c4a..b09a146 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -434,17 +434,6 @@
       Подробную информацию можно прочитать по ссылке https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">Запретить использование режима консольного браузера</translation>
 <translation id="1588240398285670601">Настройки браузера</translation>
-<translation id="1590071725627230651">Эта настройка предоставляет несколько вариантов доступности браузера <ph name="LACROS_NAME" />.
-
-      Если правило не настроено или задано значение <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" />, пользователь может включить браузер <ph name="LACROS_NAME" /> и сделать его основным. При необходимости браузер <ph name="LACROS_NAME" /> можно отключить с помощью правила <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Если для правила задано значение <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />, использовать браузер <ph name="LACROS_NAME" /> невозможно. Правило <ph name="LACROS_ALLOWED_POLICY_NAME" /> игнорируется.
-
-      Если для правила выбрано значение <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />, то браузер <ph name="LACROS_NAME" /> включен, но не является основным. Правило <ph name="LACROS_ALLOWED_POLICY_NAME" /> игнорируется.
-
-      Если для правила выбрано значение <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />, то браузер <ph name="LACROS_NAME" /> включен и является основным. Правило <ph name="LACROS_ALLOWED_POLICY_NAME" /> игнорируется.
-
-      В дальнейшем у пользователей появится возможность сделать браузер <ph name="LACROS_NAME" /> единственно доступным в <ph name="PRODUCT_OS_NAME" />, установив значение <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />.</translation>
 <translation id="1599424828227887013">Включить изоляцию для определенных сайтов на устройствах Android</translation>
 <translation id="159946228300522107">Если для правила задано значение True, Chrome будет всегда разворачивать первое окно при начальном запуске.
 
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index c9b2436..e61a7bf 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -390,6 +390,13 @@
 <translation id="1516486219683984217">ไม่อนุญาตให้ใช้การแจ้งเตือนของระบบ</translation>
 <translation id="1522425503138261032">อนุญาตให้ไซต์ติดตามตำแหน่งทางกายภาพของผู้ใช้</translation>
 <translation id="1523774894176285446">เบราว์เซอร์สำรองที่จะเปิดสำหรับเว็บไซต์ที่กำหนดค่า</translation>
+<translation id="1524243669991877602">การตั้งค่านโยบายเป็น "เปิดใช้" จะอนุญาตให้นโยบายที่เกี่ยวข้องกับบัญชี <ph name="GOOGLE_WORKSPACE_PRODUCT_NAME" /> รวมเข้ากับนโยบายระดับแมชชีน
+
+      โดยจะรวมได้เฉพาะนโยบายจากผู้ใช้ที่ปลอดภัย ผู้ใช้ที่ปลอดภัยจะเป็นพาร์ทเนอร์กับองค์กรที่จัดการเบราว์เซอร์ของตนโดยใช้<ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> ระบบจะไม่สนใจนโยบายในระดับผู้ใช้อื่นๆ ทั้งหมดเสมอ
+
+      นโยบายที่จะรวมต้องตั้งค่าใน <ph name="POLICY_POLICYLISTMULTIPLESOURCEMERGELIST" /> หรือ <ph name="POLICY_POLICYDICTIONARYMULTIPLESOURCEMERGELIST" /> ด้วย ระบบจะไม่สนใจนโยบายนี้หากไม่ได้กำหนดค่าทั้ง 2 นโยบายที่ระบุไว้ก่อนหน้านี้
+
+      การไม่ตั้งค่านโยบายหรือตั้งค่าเป็น "ปิดใช้" จะป้องกันไม่ให้มีการรวมนโยบายในระดับผู้ใช้บนระบบคลาวด์เข้ากับนโยบายจากแหล่งที่มาอื่นๆ</translation>
 <translation id="152657506688053119">รายการ URL สำรองของผู้ให้บริการค้นหาเริ่มต้น</translation>
 <translation id="1527298988676981599">การตั้งค่านโยบายนี้ทำให้คุณแสดงรายการรูปแบบ URL ที่ระบุเว็บไซต์ซึ่งได้รับสิทธิ์ให้เข้าถึงอุปกรณ์ USB โดยอัตโนมัติสำหรับผู้ให้บริการและรหัสผลิตภัณฑ์ที่กำหนดในหน้าจอการเข้าสู่ระบบ รูปแบบแต่ละรายการต้องระบุทั้งช่อง <ph name="DEVICES_FIELD_NAME" /> และ <ph name="URLS_FIELD_NAME" /> นโยบายจึงจะมีผล รูปแบบแต่ละรายการในช่อง <ph name="DEVICES_FIELD_NAME" /> อาจระบุช่อง <ph name="VENDOR_ID_FIELD_NAME" /> และ <ph name="PRODUCT_ID_FIELD_NAME" /> การไม่ระบุช่อง <ph name="VENDOR_ID_FIELD_NAME" /> จะสร้างนโยบายที่ตรงกับอุปกรณ์ทุกเครื่อง การไม่ระบุช่อง <ph name="PRODUCT_ID_FIELD_NAME" /> จะสร้างนโยบายที่ตรงกับอุปกรณ์ทุกเครื่องที่มีรหัสผู้ให้บริการที่กำหนด นโยบายที่ระบุช่อง <ph name="PRODUCT_ID_FIELD_NAME" /> แต่ไม่ระบุช่อง <ph name="VENDOR_ID_FIELD_NAME" /> จะไม่มีผล
 
@@ -430,17 +437,6 @@
       โปรดดู https://www.chromestatus.com/feature/4664843055398912</translation>
 <translation id="1587585749332985896">ไม่อนุญาตให้ใช้โหมดไม่มีส่วนหัว</translation>
 <translation id="1588240398285670601">การตั้งค่าเบราว์เซอร์</translation>
-<translation id="1590071725627230651">การตั้งค่านี้ให้ตัวเลือกด้านความพร้อมใช้งานของเบราว์เซอร์ <ph name="LACROS_NAME" /> หลายตัวเลือก
-
-      หากตั้งค่านโยบายเป็น <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> หรือไม่ได้ตั้งค่า ผู้ใช้จะเปิดใช้ <ph name="LACROS_NAME" /> และกำหนดให้เป็นเบราว์เซอร์หลักได้ คุณยังคงไม่อนุญาตให้ใช้ <ph name="LACROS_NAME" /> ได้ด้วยนโยบาย <ph name="LACROS_ALLOWED_POLICY_NAME" />
-
-      หากตั้งค่านโยบายเป็น <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" /> ผู้ใช้จะใช้ <ph name="LACROS_NAME" /> ไม่ได้ ระบบจะไม่พิจารณานโยบาย <ph name="LACROS_ALLOWED_POLICY_NAME" />
-
-      หากตั้งค่านโยบายเป็น <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" /> จะมีการเปิดใช้ <ph name="LACROS_NAME" /> แต่ไม่ให้เป็นเบราว์เซอร์หลัก ระบบจะไม่พิจารณานโยบาย <ph name="LACROS_ALLOWED_POLICY_NAME" />
-
-      หากตั้งค่านโยบายเป็น <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" /> จะมีการเปิดใช้ <ph name="LACROS_NAME" /> และให้เป็นเบราว์เซอร์หลัก ระบบจะไม่พิจารณานโยบาย <ph name="LACROS_ALLOWED_POLICY_NAME" />
-
-      ในอนาคตคุณจะกำหนดให้ <ph name="LACROS_NAME" /> เป็นเพียงเบราว์เซอร์เดียวที่มีให้ใช้ใน <ph name="PRODUCT_OS_NAME" /> ได้ด้วยค่า<ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" /></translation>
 <translation id="1599424828227887013">เปิดใช้การแยกเว็บไซต์สำหรับต้นทางที่เจาะจงในอุปกรณ์ Android</translation>
 <translation id="159946228300522107">การตั้งค่านโยบายเป็น "จริง" หมายความว่า Chrome จะขยายหน้าต่างแรกที่แสดงเมื่อเรียกใช้ครั้งแรก
 
@@ -1175,6 +1171,7 @@
           หากไม่มีการตั้งค่านโยบายนี้ ระบบจะปิดฟีเจอร์ไฮไลต์เคอร์เซอร์ข้อความในขั้นต้น แต่ผู้ใช้เปิดใช้ได้ทุกเมื่อ</translation>
 <translation id="2509748672176727116">ผู้ใช้จะทำการบันทึกแพ็กเก็ตเครือข่ายได้</translation>
 <translation id="2509919237512982967">ใช้ตัวควบคุมแบบฟอร์มเดิมจนถึงเวอร์ชัน M84</translation>
+<translation id="2512972020817284317">เปิดใช้การรวมนโยบายในระดับผู้ใช้บนระบบคลาวด์</translation>
 <translation id="2515699738406900920">ความพร้อมใช้งานของเครื่องมือเลือกโปรไฟล์เมื่อเริ่มต้นระบบ</translation>
 <translation id="2517466659416174529">อนุญาตการระงับแท็บที่ทำงานอยู่เบื้องหลัง</translation>
 <translation id="2518231489509538392">อนุญาตให้เล่นเสียง</translation>
@@ -2711,6 +2708,7 @@
 
       หมายเหตุ: การตั้งค่านี้จะลบล้าง <ph name="REMOTE_ACCESS_HOST_CLIENT_DOMAIN_POLICY_NAME" /> หากมี</translation>
 <translation id="4661889655253181651">การตั้งค่าเนื้อหาช่วยให้คุณระบุวิธีจัดการเนื้อหาบางประเภท (เช่น คุกกี้ รูปภาพ หรือ JavaScript) ได้</translation>
+<translation id="4663509616441994711">ปิดใช้การรวมนโยบายในระดับผู้ใช้บนระบบคลาวด์</translation>
 <translation id="4665897631924472251">การตั้งค่าการจัดการส่วนขยาย</translation>
 <translation id="4666930704271463612">ระบุเซิร์ฟเวอร์การพิมพ์ส่วนหนึ่งที่จะใช้สำหรับค้นหาเครื่องพิมพ์ในเซิร์ฟเวอร์
 
@@ -5196,6 +5194,7 @@
 
           หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะปิดใช้โหมดคอนทราสต์สูงในหน้าจอการเข้าสู่ระบบในขั้นต้น แต่ผู้ใช้จะเปิดใช้ได้ทุกเมื่อ</translation>
 <translation id="7869986671709030417">กำหนดค่าเริ่มต้นของโหมดการพิมพ์กราฟิกพื้นหลัง</translation>
+<translation id="7877924399554599110">เปิดใช้การรวมนโยบายในระดับผู้ใช้บนระบบคลาวด์เข้ากับนโยบายระดับแมชชีน</translation>
 <translation id="7881421274383404138">การตั้งค่านโยบายนี้เป็นการกำหนดค่าเครื่องพิมพ์องค์กร รูปแบบการตั้งค่าเหมือนกับพจนานุกรม <ph name="PRINTERS_POLICY_NAME" /> แต่มีช่อง <ph name="ID_FIELD" /> หรือ <ph name="GUID_FIELD" /> ที่จำเป็นต้องกรอกเพิ่มเข้ามาสำหรับเครื่องพิมพ์แต่ละเครื่องเพื่อใช้ระบุว่าอยู่ในรายการที่อนุญาตหรือไม่อนุญาต ไฟล์ต้องมีขนาดไม่เกิน 5 MB และอยู่ในรูปแบบ JSON ไฟล์ที่ระบุเครื่องพิมพ์ประมาณ 21,000 เครื่องเข้ารหัสเป็นไฟล์ขนาด 5 MB ได้ 1 ไฟล์ แฮชแบบเข้ารหัสช่วยยืนยันความสมบูรณ์ของการดาวน์โหลด ไฟล์จะมีการดาวน์โหลด แคช และดาวน์โหลดอีกครั้งเมื่อ URL หรือแฮชมีการเปลี่ยนแปลง <ph name="PRODUCT_OS_NAME" /> จะดาวน์โหลดไฟล์ดังกล่าวเพื่อการกำหนดค่าเครื่องพิมพ์และทำให้เครื่องพิมพ์พร้อมใช้งานพร้อมด้วย <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME" />, <ph name="PRINTERS_BULK_ALLOWLIST_POLICY_NAME" /> และ <ph name="PRINTERS_BULK_BLOCKLIST_POLICY_NAME" />
 
       นโยบายนี้ไม่มีผลต่อความสามารถของผู้ใช้ในการกำหนดค่าเครื่องพิมพ์ในอุปกรณ์แต่ละเครื่อง แต่เป็นเพียงนโยบายเพิ่มเติมสำหรับการกำหนดค่าเครื่องพิมพ์ของผู้ใช้แต่ละราย
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 6849038..63501c58 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -436,17 +436,6 @@
       https://www.chromestatus.com/feature/4664843055398912 adresine bakın.</translation>
 <translation id="1587585749332985896">Gözetimsiz Mod'un kullanımına izin verme</translation>
 <translation id="1588240398285670601">Tarayıcı Ayarları</translation>
-<translation id="1590071725627230651">Bu ayar, <ph name="LACROS_NAME" /> tarayıcısı için çeşitli kullanılabilirlik seçenekleri sunar.
-
-      Bu politika <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="LACROS_NAME" />, kullanıcılar tarafından etkinleştirilebilir ve birincil tarayıcı yapılabilir. <ph name="LACROS_ALLOWED_POLICY_NAME" /> politikası <ph name="LACROS_NAME" /> tarayıcısını engellemeye devam edebilir.
-
-      Politika <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" /> değerine ayarlanırsa kullanıcılar <ph name="LACROS_NAME" /> tarayıcısını kullanamaz. <ph name="LACROS_ALLOWED_POLICY_NAME" /> politikası yoksayılır.
-
-      Politika <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" /> değerine ayarlanırsa <ph name="LACROS_NAME" /> tarayıcısı etkinleştirilir ancak birincil tarayıcı olmaz. <ph name="LACROS_ALLOWED_POLICY_NAME" /> politikası yoksayılır.
-
-      Politika <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" /> değerine ayarlanırsa <ph name="LACROS_NAME" /> etkinleştirilir ve birincil tarayıcı olur. <ph name="LACROS_ALLOWED_POLICY_NAME" /> politikası yoksayılır.
-
-      İleride <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" /> değeri kullanılarak <ph name="LACROS_NAME" /> tarayıcısının <ph name="PRODUCT_OS_NAME" /> ile kullanılabilen tek tarayıcı olması sağlanabilecektir.</translation>
 <translation id="1599424828227887013">Android cihazlarda Site İzolasyonu'nu belirtilen kaynaklar için etkinleştirme</translation>
 <translation id="159946228300522107">Politikayı True (Doğru) değerine ayarlamak, Chrome'un ilk çalıştırmada birinci pencereyi büyüteceği anlamına gelir.
 
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 3f455487..bca009e 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -436,17 +436,6 @@
       Докладніше на сторінці https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">Заборонити використовувати режим headless</translation>
 <translation id="1588240398285670601">Налаштування веб-переглядача</translation>
-<translation id="1590071725627230651">Це налаштування пропонує кілька варіантів доступності для веб-переглядача <ph name="LACROS_NAME" />.
-
-      Якщо правило не налаштувати або вибрати для нього значення <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" />, користувач зможе ввімкнути <ph name="LACROS_NAME" /> і зробити його основним веб-переглядачем. <ph name="LACROS_NAME" /> усе ще можна буде заборонити за допомогою правила <ph name="LACROS_ALLOWED_POLICY_NAME" />.
-
-      Якщо для правила вибрати значення <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />, користувач не зможе працювати в <ph name="LACROS_NAME" />. Правило <ph name="LACROS_ALLOWED_POLICY_NAME" /> ігноруватиметься.
-
-      Якщо для правила вибрати значення <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />, <ph name="LACROS_NAME" /> буде ввімкнено, але він не стане основним веб-переглядачем. Правило <ph name="LACROS_ALLOWED_POLICY_NAME" /> ігноруватиметься.
-
-      Якщо для правила вибрати значення <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />, <ph name="LACROS_NAME" /> буде ввімкнено й вибрано основним веб-переглядачем. Правило <ph name="LACROS_ALLOWED_POLICY_NAME" /> ігноруватиметься.
-
-      У майбутньому буде можливість зробити <ph name="LACROS_NAME" /> єдиним доступним веб-переглядачем в <ph name="PRODUCT_OS_NAME" />, вибравши значення <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />.</translation>
 <translation id="1599424828227887013">Увімкнути Ізоляцію сайтів для вказаних джерел на пристроях Android</translation>
 <translation id="159946228300522107">Якщо для цього правила вибрано значення True, Chrome розгортає перше вікно, яке відкривається під час першого запуску.
 
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 22b38e79..6f06ed8 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -437,17 +437,6 @@
       Vui lòng xem tại https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="1587585749332985896">Không cho phép sử dụng Chế độ không có giao diện người dùng</translation>
 <translation id="1588240398285670601">Cài đặt của trình duyệt</translation>
-<translation id="1590071725627230651">Chế độ cài đặt này cung cấp một số tùy chọn về khả năng sử dụng đối với trình duyệt <ph name="LACROS_NAME" />.
-
-      Nếu bạn đặt thành <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> hoặc không đặt chính sách này, thì người dùng có thể bật <ph name="LACROS_NAME" /> và đặt trình duyệt này làm trình duyệt chính. Chính sách <ph name="LACROS_ALLOWED_POLICY_NAME" /> vẫn có thể không cho phép <ph name="LACROS_NAME" />.
-
-      Nếu bạn đặt chính sách này thành <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />, thì người dùng không thể sử dụng <ph name="LACROS_NAME" />. Chính sách <ph name="LACROS_ALLOWED_POLICY_NAME" /> bị bỏ qua.
-
-      Nếu bạn đặt chính sách này thành <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />, thì <ph name="LACROS_NAME" /> được bật nhưng không phải là trình duyệt chính. Chính sách <ph name="LACROS_ALLOWED_POLICY_NAME" /> bị bỏ qua.
-
-      Nếu bạn đặt chính sách này thành <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />, thì <ph name="LACROS_NAME" /> được bật và sẽ là trình duyệt chính. Chính sách <ph name="LACROS_ALLOWED_POLICY_NAME" /> bị bỏ qua.
-
-      Trong tương lai, bạn có thể dùng giá trị <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" /> để đặt <ph name="LACROS_NAME" /> làm trình duyệt duy nhất sử dụng được trên <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="1599424828227887013">Bật tính năng Cách ly trang web cho nguồn gốc đã chỉ định trên thiết bị Android</translation>
 <translation id="159946228300522107">Nếu bạn đặt chính sách này thành True, thì Chrome sẽ phóng to cửa sổ đầu tiên trong lần chạy đầu.
 
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 9de657b..6bb27961 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -427,17 +427,6 @@
       请参阅 https://www.chromestatus.com/feature/4664843055398912。</translation>
 <translation id="1587585749332985896">不允许使用无头模式</translation>
 <translation id="1588240398285670601">浏览器设置</translation>
-<translation id="1590071725627230651">此设置旨在为 <ph name="LACROS_NAME" /> 浏览器提供多个可用性选项。
-
-      如果此政策设为“<ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" />”或未设置此政策,则用户可以启用 <ph name="LACROS_NAME" /> 并将其设为主要浏览器。仍可使用 <ph name="LACROS_ALLOWED_POLICY_NAME" /> 政策禁用 <ph name="LACROS_NAME" />。
-
-      如果此政策设为“<ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />”,则用户无法使用 <ph name="LACROS_NAME" />。<ph name="LACROS_ALLOWED_POLICY_NAME" /> 政策会被忽略。
-
-      如果此政策设为“<ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />”,则会启用 <ph name="LACROS_NAME" />,但不会将其设为主要浏览器。<ph name="LACROS_ALLOWED_POLICY_NAME" /> 政策会被忽略。
-
-      如果此政策设为“<ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />”,则会启用 <ph name="LACROS_NAME" />,并将其设为主要浏览器。<ph name="LACROS_ALLOWED_POLICY_NAME" /> 政策会被忽略。
-
-      将来可以使用“<ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" />”值将 <ph name="LACROS_NAME" /> 设为 <ph name="PRODUCT_OS_NAME" />中唯一可用的浏览器。</translation>
 <translation id="1599424828227887013">在 Android 设备上为指定的来源启用网站隔离功能</translation>
 <translation id="159946228300522107">如果此政策设为 True,Chrome 会在首次运行时将所显示的第一个窗口最大化。
 
@@ -3323,6 +3312,19 @@
 
       如果此政策未设置,用户可以控制卡片公开范围。默认情况下,卡片会处于可见状态。
       </translation>
+<translation id="5455888515928026628">在用户通过锁定屏幕登录期间,<ph name="PRODUCT_OS_NAME" />可通过服务器(在线)或使用缓存的密码(离线)来验证用户的身份。
+
+      如果设为 -2,此政策会与登录屏幕离线登录时间限制(来自 <ph name="POLICY" />)的值相匹配。
+
+      如果未设置或值设为 -1,此政策不会强制在锁定屏幕上执行在线身份验证,而是会允许用户离线验证身份,除非有此政策之外的其他理由强制要求在线验证身份。
+
+      如果值设为 0,此政策将一律要求在线验证身份。
+
+      如果设为任何其他值,此政策即是指定了从上次在线验证身份到下次必须再次在锁定屏幕上通过在线验证身份进行登录的天数。
+
+      此政策仅会影响那些使用 SAML 验证身份的用户。
+
+      此政策的值应以天为单位。</translation>
 <translation id="5457065417344056871">在浏览器中启用访客模式</translation>
 <translation id="5457387982448145430">如果此政策已启用,当首次运行浏览器时,系统将会从先前的默认浏览器导入已保存的密码。如果此政策已停用或未设置,当首次运行浏览器时,系统不会导入任何已保存的密码。
 
@@ -5941,6 +5943,19 @@
 <translation id="8917070657147922192">允许用户管理已安装的 CA 证书。</translation>
 <translation id="8919100556245407184">如果 <ph name="PRODUCT_OS_NAME" />版本低于指定的 <ph name="CHROMEOS_VERSION_PROPERTY_NAME" />,系统会在自动更新到期日已过多少天后强制用户退出登录</translation>
 <translation id="8919369436496201075">允许设备接收 LTS 更新</translation>
+<translation id="8930064580550462145">在用户通过锁定屏幕登录期间,<ph name="PRODUCT_OS_NAME" />可通过服务器(在线)或使用缓存的密码(离线)来验证用户的身份。
+
+      如果设为 -2,此政策会与登录屏幕离线登录时间限制(来自 <ph name="POLICY" />)的值相匹配。
+
+      如果未设置或值设为 -1,此政策不会强制在锁定屏幕上执行在线身份验证,而是会允许用户离线验证身份,除非有此政策之外的其他理由强制要求在线验证身份。
+
+      如果值设为 0,此政策将一律要求在线验证身份。
+
+      如果设为任何其他值,此政策即是指定了从上次在线验证身份到下次必须再次在锁定屏幕上通过在线验证身份进行登录的天数。
+
+      此政策会影响那些使用 GAIA(不使用 SAML)验证身份的用户。
+
+      此政策的值应以天为单位。</translation>
 <translation id="8931555638815157255">如果此政策已启用或未设置,已注册的设备将会定期报告其操作系统和固件版本。
 
       如果此政策已停用,已注册的设备将不会报告版本信息。</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 6b7a69a..a82c566 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -435,17 +435,6 @@
       請參閱 https://www.chromestatus.com/feature/4664843055398912。</translation>
 <translation id="1587585749332985896">禁止使用無頭模式</translation>
 <translation id="1588240398285670601">瀏覽器設定</translation>
-<translation id="1590071725627230651">這項設定針對 <ph name="LACROS_NAME" /> 瀏覽器提供了多個可用性選項。
-
-      如果將這項政策設為 <ph name="LACROS_AVAILABILITY_USER_CHOICE_VALUE" /> 或未設定,使用者就能啟用 <ph name="LACROS_NAME" /> 並設為主要瀏覽器。<ph name="LACROS_NAME" /> 仍可能受到 <ph name="LACROS_ALLOWED_POLICY_NAME" /> 政策禁止使用。
-
-      如果將這項政策設為 <ph name="LACROS_AVAILABILITY_LACROS_DISALLOWED_VALUE" />,使用者就無法使用 <ph name="LACROS_NAME" />。系統會忽略 <ph name="LACROS_ALLOWED_POLICY_NAME" /> 政策。
-
-      如果將這項政策設為 <ph name="LACROS_AVAILABILITY_SIDE_BY_SIDE_VALUE" />,<ph name="LACROS_NAME" /> 就會啟用,但不是主要瀏覽器。系統會忽略 <ph name="LACROS_ALLOWED_POLICY_NAME" /> 政策。
-
-      如果將這項政策設為 <ph name="LACROS_AVAILABILITY_LACROS_PRIMARY_VALUE" />,<ph name="LACROS_NAME" /> 就會啟用並設為主要瀏覽器。系統會忽略 <ph name="LACROS_ALLOWED_POLICY_NAME" /> 政策。
-
-      日後也可以使用 <ph name="LACROS_AVAILABILITY_LACROS_ONLY_VALUE" /> 一值,將 <ph name="LACROS_NAME" /> 設為 <ph name="PRODUCT_OS_NAME" />中唯一可用的瀏覽器。</translation>
 <translation id="1599424828227887013">在 Android 裝置上為指定來源啟用網站隔離</translation>
 <translation id="159946228300522107">如果將這項政策設為 True,Chrome 首次執行時會將第一個顯示的視窗最大化。
 
diff --git a/components/policy/resources/webui/policy_base.js b/components/policy/resources/webui/policy_base.js
index b4861660..05d125a 100644
--- a/components/policy/resources/webui/policy_base.js
+++ b/components/policy/resources/webui/policy_base.js
@@ -152,7 +152,9 @@
       this.setLabelAndShow_('.machine-enrollment-device-id', status.deviceId);
       this.setLabelAndShow_(
           '.machine-enrollment-token', status.enrollmentToken);
-      this.setLabelAndShow_('.machine-enrollment-name', status.machine);
+      if (status.machine) {
+        this.setLabelAndShow_('.machine-enrollment-name', status.machine);
+      }
       this.setLabelAndShow_('.machine-enrollment-domain', status.domain);
     } else if (scope === 'updater') {
       this.querySelector('.legend').textContent =
diff --git a/components/power_scheduler/power_mode_voter.cc b/components/power_scheduler/power_mode_voter.cc
index 87ce6a1..62a6240 100644
--- a/components/power_scheduler/power_mode_voter.cc
+++ b/components/power_scheduler/power_mode_voter.cc
@@ -22,6 +22,8 @@
 constexpr base::TimeDelta PowerModeVoter::kSoftwareDrawTimeout;
 // static
 constexpr base::TimeDelta PowerModeVoter::kLoadingTimeout;
+// static
+constexpr base::TimeDelta PowerModeVoter::kStuckLoadingTimeout;
 
 PowerModeVoter::~PowerModeVoter() {
   delegate_->OnVoterDestroyed(this);
diff --git a/components/power_scheduler/power_mode_voter.h b/components/power_scheduler/power_mode_voter.h
index 8b3ccd60..51520f6 100644
--- a/components/power_scheduler/power_mode_voter.h
+++ b/components/power_scheduler/power_mode_voter.h
@@ -45,9 +45,12 @@
   static constexpr base::TimeDelta kSoftwareDrawTimeout =
       base::TimeDelta::FromMilliseconds(100);
 
+  // Give frames an extra second to draw & settle after load completion.
+  static constexpr base::TimeDelta kLoadingTimeout =
+      base::TimeDelta::FromSeconds(1);
   // Avoid getting stuck in loading stage forever. More than 99.9% of
   // navigations load (to largest contentful paint) in less than a minute.
-  static constexpr base::TimeDelta kLoadingTimeout =
+  static constexpr base::TimeDelta kStuckLoadingTimeout =
       base::TimeDelta::FromSeconds(60);
 
   ~PowerModeVoter();
diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc
index fb3cbc56..7b2b8e8 100644
--- a/components/printing/renderer/print_render_frame_helper.cc
+++ b/components/printing/renderer/print_render_frame_helper.cc
@@ -669,8 +669,9 @@
   blink::WebView* web_view = blink::WebView::Create(
       /*client=*/nullptr,
       /*is_hidden=*/false, /*is_inside_portal=*/false,
-      /*compositing_enabled=*/false, /*opener=*/nullptr,
-      mojo::NullAssociatedReceiver(), *source_frame.GetAgentGroupScheduler(),
+      /*compositing_enabled=*/false, /*widgets_never_composited=*/false,
+      /*opener=*/nullptr, mojo::NullAssociatedReceiver(),
+      *source_frame.GetAgentGroupScheduler(),
       /*session_storage_namespace_id=*/base::EmptyString());
   web_view->GetSettings()->SetJavaScriptEnabled(true);
 
@@ -947,6 +948,7 @@
       /*is_hidden=*/false,
       /*is_inside_portal=*/false,
       /*compositing_enabled=*/false,
+      /*widgets_never_composited=*/false,
       /*opener=*/nullptr, mojo::NullAssociatedReceiver(),
       agent_group_scheduler_,
       /*session_storage_namespace_id=*/base::EmptyString());
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index fd950f3..5d12823 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Een of meer van die DnsOverHttpsTemplates-bedienertemplaat se URI's is ongeldig en sal nie gebruik word nie.</translation>
 <translation id="3431636764301398940">Stoor hierdie kaart op hierdie toestel</translation>
 <translation id="3432601291244612633">Maak bladsy toe</translation>
+<translation id="3435738964857648380">Sekuriteit</translation>
 <translation id="3435896845095436175">Aktiveer</translation>
 <translation id="3438829137925142401">Gebruik wagwoorde wat in jou Google-rekening gestoor is</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 75e374a..295e352 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -654,6 +654,7 @@
 <translation id="3428151540071562330">አንድ ወይም ተጨማሪ የDnsOverHttpsTemplates አገልጋይ ቅንብር ደንብ ዩአርአዮች ልክ ያልሆኑ ናቸው፣ እና ስራ ላይ አይውሉም።</translation>
 <translation id="3431636764301398940">ይህን ካርድ ወደዚህ መሣሪያ አስቀምጥ</translation>
 <translation id="3432601291244612633">ገጽ ይዝጉ</translation>
+<translation id="3435738964857648380">የደህንነት ጥበቃ</translation>
 <translation id="3435896845095436175">አንቃ</translation>
 <translation id="3438829137925142401">በእርስዎ የGoogle መለያ ውስጥ የተቀመጡ የይለፍ ቃሎችን ይጠቀሙ</translation>
 <translation id="3443726618221119081">ጁሮ-ኩ-ካይ</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 8691523..bcfd241 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -658,6 +658,7 @@
 <translation id="3428151540071562330">‏إنّ معرّف واحد أو أكثر من معرّفات الموارد المنتظمة (URI) لنموذج خادم DnsOverHttpsTemplates غير صالح وبالتالي لن يتم استخدامه.</translation>
 <translation id="3431636764301398940">حفظ هذه البطاقة إلى هذا الجهاز</translation>
 <translation id="3432601291244612633">إغلاق الصفحة</translation>
+<translation id="3435738964857648380">أمن المعلومات</translation>
 <translation id="3435896845095436175">تفعيل الإضافات</translation>
 <translation id="3438829137925142401">‏استخدام كلمات المرور المحفوظة في حسابك على Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index 1e363497..4facbe13 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -656,6 +656,7 @@
 <translation id="3428151540071562330">এটা অথবা একাধিক DnsOverHttpsTemplates ছার্ভাৰ টেমপ্লেটৰ URIসমূহ মান্য নহয় আৰু সেয়া ব্যৱহাৰ কৰা নহ’ব।</translation>
 <translation id="3431636764301398940">এই ডিভাইচটোত এই কাৰ্ডখন ছেভ কৰক</translation>
 <translation id="3432601291244612633">পৃষ্ঠাখন বন্ধ কৰক</translation>
+<translation id="3435738964857648380">সুৰক্ষা</translation>
 <translation id="3435896845095436175">সক্ষম কৰক</translation>
 <translation id="3438829137925142401">আপোনাৰ Google একাউণ্টত ছেভ কৰা পাছৱৰ্ডসমূহ ব্যৱহাৰ কৰক</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -1170,6 +1171,7 @@
 <translation id="5314967030527622926">বুকলেট প্ৰস্তুত কৰোঁতা</translation>
 <translation id="5316812925700871227">ঘড়ীৰ কাঁটাৰ বিপৰীত দিশত ঘূৰাওক</translation>
 <translation id="5317780077021120954">ছেভ কৰক</translation>
+<translation id="5321288445143113935">আকাৰ বিস্তাৰিত কৰা হ'ল</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="NUM_MATCHES" />ৰ <ph name="MATCH_POSITION" /></translation>
 <translation id="5324080437450482387">সম্পর্কৰ তথ্য বাছনি কৰক</translation>
 <translation id="5327248766486351172">নাম</translation>
@@ -1394,6 +1396,7 @@
 <translation id="6218753634732582820">Chromiumৰ পৰা ঠিকনা আঁতৰাবনে?</translation>
 <translation id="622039917539443112">সমান্তৰালকৈ ফ'ল্ড কৰক</translation>
 <translation id="6221345481584921695">Googleৰ সুৰক্ষিত ব্ৰাউজিঙে শেহতীয়াকৈ <ph name="SITE" />ত <ph name="BEGIN_LINK" />মালৱেৰ চিনাক্ত কৰিছে<ph name="END_LINK" />। সাধাৰণতে সুৰক্ষিত ৱেবছাইটসমূহ কেতিয়াবা মালৱেৰৰ দ্বাৰা প্ৰভাৱিত হয়। ক্ষতিকাৰক সমল এটা জনাজাত মালৱেৰ বিতৰণকাৰী <ph name="SUBRESOURCE_HOST" />ৰ পৰা আহে।</translation>
+<translation id="6232619828520900263">বৰ্তমান আইডিটো মান্য নহয়</translation>
 <translation id="6234122620015464377">প্ৰতিখন নথিৰ পাছত ট্ৰিম কৰক</translation>
 <translation id="6240447795304464094">Google Pay ৰ ল’গ’</translation>
 <translation id="6241121617266208201">পৰামৰ্শসমূহ লুকুৱাওক</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index 0f39d02..4d0d722 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">Bu səhifə deyir:</translation>
 <translation id="153384715582417236">İndilik bu qədər</translation>
 <translation id="1536390784834419204">Səhifəni tərcümə edin</translation>
+<translation id="1539840569003678498">Şikayət göndərildi:</translation>
 <translation id="154408704832528245">Çatdırılma Ünvanı seçin</translation>
 <translation id="1549470594296187301">JavaScript bu funksiyanı istifadə etmək üçün aktiv olmalıdır.</translation>
 <translation id="155039086686388498">Texniki-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">Qısa kənar əvvəldə</translation>
 <translation id="168693727862418163">Bu siyasət dəyəri sxem əsasında doğrulanmadı və nəzərə alınmayacaq.</translation>
 <translation id="168841957122794586">Server sertifikatının kriptoqrafik açarı zəifdir.</translation>
+<translation id="1696290444144917273">Virtual kart detallarına baxın</translation>
 <translation id="1697532407822776718">Hər şey hazırdır!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{Bu server <ph name="DOMAIN" /> olduğunu sübut edə bilmədi; böyük ehtimal təhlükəsizlik sertifikatı sabahdan etibarən nəzərdə tutulub. Buna yanlış konfiqurasiya və ya hücumçu tərəfindən bağlantının ələ keçirilməsi səbəb ola bilər.}other{Bu server <ph name="DOMAIN" /> olduğunu sübut edə bilmədi; təhlükəsizlik sertifikatı gələcəkdə # gündən sonra nəzərdə tutulub. Buna yanlış konfiqurasiya və ya hücumçu tərəfindən bağlantının ələ keçirilməsi səbəb ola bilər.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">Poçt qutusu 3</translation>
 <translation id="1718029547804390981">Sənəd annotasiya üçün çox böyükdür</translation>
 <translation id="1721424275792716183">* Sahə tələb olunur</translation>
+<translation id="1727613060316725209">Sertifikat etibarlıdır</translation>
 <translation id="1727741090716970331">Düzgün Kart Nömrəsi Əlavə edin</translation>
 <translation id="1728677426644403582">Veb səhifənin mənbəyinə baxırsınız</translation>
 <translation id="173080396488393970">Bu kart növü dəstəklənmir</translation>
@@ -656,6 +659,7 @@
 <translation id="3428151540071562330">Bir və ya bir neçə DnsOverHttpsTemplates server şablonu URI'si yanlışdır və istifadə edilməyəcək.</translation>
 <translation id="3431636764301398940">Bu kartı bu cihaza yazın</translation>
 <translation id="3432601291244612633">Səhifəni bağlayın</translation>
+<translation id="3435738964857648380">Təhlükəsizlik</translation>
 <translation id="3435896845095436175">Aktivləşdirin</translation>
 <translation id="3438829137925142401">Google Hesabınızda saxlanılan parollardan istifadə edin</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -698,6 +702,7 @@
 <translation id="3586931643579894722">Detalları gizlədin</translation>
 <translation id="3587738293690942763">Orta</translation>
 <translation id="3590643883886679995">Anonim rejimdən çıxdıqdan sonra giriş datası bu cihazda saxlanılacaq.</translation>
+<translation id="359126217934908072">Ay/İl:</translation>
 <translation id="3592413004129370115">İtalyan (Zərf)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">Tətbiq admin tərəfindən bloklanıb</translation>
@@ -752,6 +757,7 @@
 <translation id="3781428340399460090">Parlaq Çəhrayı</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">Bluetooth cihazları</translation>
+<translation id="3787675388804467730">Virtual kart nömrəsi</translation>
 <translation id="3787705759683870569"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /> tarixində bitir</translation>
 <translation id="3789155188480882154">Ölçü 16</translation>
 <translation id="3789841737615482174">Quraşdırın</translation>
@@ -1417,6 +1423,7 @@
 <translation id="6289939620939689042">Səhifə Rəngi</translation>
 <translation id="6290238015253830360">Təklif edilən məqalələriniz burada görünür</translation>
 <translation id="6293309776179964942">JIS B5</translation>
+<translation id="6295618774959045776">CVC:</translation>
 <translation id="6302269476990306341">Google Assistent Chrome'da dayanmağa başlayır</translation>
 <translation id="6305205051461490394"><ph name="URL" /> əlçatmazdır.</translation>
 <translation id="6312113039770857350">Veb səhifə əlçatan deyil</translation>
@@ -1549,6 +1556,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome bu səhifənin daha rahat oxunması üçün onu sadələşdirib. Chrome güvənsiz bağlantı üzərindən ilkin səhifəni açdı.</translation>
 <translation id="6891596781022320156">Qayda səviyyəsi dəstəklənmir.</translation>
+<translation id="6895143722905299846">Virtual nömrə:</translation>
 <translation id="6895330447102777224">Kartınız təsdiqləndi</translation>
 <translation id="6897140037006041989">İstifadəçi Agent</translation>
 <translation id="6898699227549475383">Təşkilat (T)</translation>
@@ -1587,6 +1595,7 @@
 <translation id="7014741021609395734">Miqyas səviyyəsi</translation>
 <translation id="7016992613359344582">Bu ödənişlər birdəfəlik və ya təkrarlanan ola bilər. Onlar, eyni zamanda görünməyə bilər.</translation>
 <translation id="7029809446516969842">Parollar</translation>
+<translation id="7030436163253143341">Sertifikat etibarlı deyil</translation>
 <translation id="7031646650991750659">Quraşdırdığınız Google Play tətbiqləri</translation>
 <translation id="7050187094878475250"><ph name="DOMAIN" /> domeninə girmək istədiniz, lakin server etibarlıq müddəti güvənmək üçün həddən uzun olan sertifikat təqdim edib.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{Hazırda bu kartı yadda saxlamaq mümkün deyil}other{Hazırda bu kartları yadda saxlamaq mümkün deyil}}</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index d62338d3..e6cc0153 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">Інфармацыя ад старонкі</translation>
 <translation id="153384715582417236">Пакуль што ўсё!</translation>
 <translation id="1536390784834419204">Перакласці старонку</translation>
+<translation id="1539840569003678498">Справаздача адпраўлена:</translation>
 <translation id="154408704832528245">Выбраць адрас дастаўкі</translation>
 <translation id="1549470594296187301">Каб карыстацца гэтай функцыяй, трэба ўключыць JavaScript.</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">Спачатку кароткі край</translation>
 <translation id="168693727862418163">Не ўдалося пацвердзіць адпаведнасць значэння палітыкі схеме, таму яно будзе ігнаравацца.</translation>
 <translation id="168841957122794586">У сертыфіката сервера слабы крыптаграфічны ключ.</translation>
+<translation id="1696290444144917273">Паглядзець рэквізіты віртуальнай карткі</translation>
 <translation id="1697532407822776718">Усё гатова!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{Серверу не ўдалося даказаць, што гэта дамен <ph name="DOMAIN" />. Здаецца, яго сертыфікат бяспекі пачынае дзейнічаць з заўтрашняга дня. Прычынай могуць быць няправільныя налады або зламыснік, які спрабуе перахапіць падключэнне.}one{Серверу не ўдалося даказаць, што гэта дамен <ph name="DOMAIN" />. Здаецца, яго сертыфікат бяспекі пачынае дзейнічаць праз # дзень. Прычынай могуць быць няправільныя налады або зламыснік, які спрабуе перахапіць падключэнне.}few{Серверу не ўдалося даказаць, што гэта дамен <ph name="DOMAIN" />. Здаецца, яго сертыфікат бяспекі пачынае дзейнічаць праз # дні. Прычынай могуць быць няправільныя налады або зламыснік, які спрабуе перахапіць падключэнне.}many{Серверу не ўдалося даказаць, што гэта дамен <ph name="DOMAIN" />. Здаецца, яго сертыфікат бяспекі пачынае дзейнічаць праз # дзён. Прычынай могуць быць няправільныя налады або зламыснік, які спрабуе перахапіць падключэнне.}other{Серверу не ўдалося даказаць, што гэта дамен <ph name="DOMAIN" />. Здаецца, яго сертыфікат бяспекі пачынае дзейнічаць праз # дня. Прычынай могуць быць няправільныя налады або зламыснік, які спрабуе перахапіць падключэнне.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">Паштовая скрынка 3</translation>
 <translation id="1718029547804390981">Занадта вялікі дакумент для анатацый</translation>
 <translation id="1721424275792716183">* Абавязковае поле</translation>
+<translation id="1727613060316725209">Сертыфікат з’яўляецца сапраўдным</translation>
 <translation id="1727741090716970331">Дадайце нумар дзеючай карткі</translation>
 <translation id="1728677426644403582">Вы праглядаеце крыніцу вэб-старонкі</translation>
 <translation id="173080396488393970">Карткі гэтага тыпу не падтрымліваюцца</translation>
@@ -658,6 +661,7 @@
 <translation id="3428151540071562330">Адзін або некалькі URI шаблонаў сервераў з палітыкі DnsOverHttpsTemplates няправільныя і выкарыстоўвацца не будуць.</translation>
 <translation id="3431636764301398940">Захаваць гэту картку на гэту прыладу</translation>
 <translation id="3432601291244612633">Закрыць старонку</translation>
+<translation id="3435738964857648380">Бяспека</translation>
 <translation id="3435896845095436175">Уключыць</translation>
 <translation id="3438829137925142401">Выкарыстаць паролі, захаваныя ва Уліковым запісе Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -700,6 +704,7 @@
 <translation id="3586931643579894722">Схаваць падрабязнасці</translation>
 <translation id="3587738293690942763">Сярэдні</translation>
 <translation id="3590643883886679995">Пасля выхаду з рэжыму інкогніта даныя для ўваходу будуць захоўвацца на гэтай прыладзе.</translation>
+<translation id="359126217934908072">Месяц/год:</translation>
 <translation id="3592413004129370115">Italian (канверт)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">Праграма заблакіравана адміністратарам</translation>
@@ -755,6 +760,7 @@
 <translation id="3781428340399460090">Ярка-ружовы</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">Прылады Bluetooth</translation>
+<translation id="3787675388804467730">Нумар віртуальнай карткі</translation>
 <translation id="3787705759683870569">Тэрмін дзеяння: <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">Памер 16</translation>
 <translation id="3789841737615482174">Усталяваць</translation>
@@ -1421,6 +1427,7 @@
 <translation id="6289939620939689042">Колер старонкі</translation>
 <translation id="6290238015253830360">Рэкамендаваныя вам артыкулы з'явяцца тут</translation>
 <translation id="6293309776179964942">JIS B5</translation>
+<translation id="6295618774959045776">CVC:</translation>
 <translation id="6302269476990306341">Памочнік Google у Chrome спыняецца</translation>
 <translation id="6305205051461490394">Сайт <ph name="URL" /> недаступны.</translation>
 <translation id="6312113039770857350">Вэб-старонка недаступная</translation>
@@ -1553,6 +1560,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome спрасціў гэту старонку для больш зручнага чытання. Ён атрымаў зыходную старонку па небяспечным падключэнні.</translation>
 <translation id="6891596781022320156">Узровень палітыкі не падтрымліваецца.</translation>
+<translation id="6895143722905299846">Віртуальны нумар:</translation>
 <translation id="6895330447102777224">Картка пацверджана</translation>
 <translation id="6897140037006041989">Агент карыстальніка</translation>
 <translation id="6898699227549475383">Арганізацыя (А)</translation>
@@ -1591,6 +1599,7 @@
 <translation id="7014741021609395734">Маштаб</translation>
 <translation id="7016992613359344582">Плацяжы могуць быць аднаразовыя або рэгулярныя, і іх можа быць цяжка заўважыць.</translation>
 <translation id="7029809446516969842">Паролі</translation>
+<translation id="7030436163253143341">Сертыфікат несапраўдны</translation>
 <translation id="7031646650991750659">Якія праграмы Google Play вы ўсталявалі.</translation>
 <translation id="7050187094878475250">Вы спрабавалі трапіць звярнуцца да дамена <ph name="DOMAIN" />, але сервер выдаў сертыфікат, чый тэрмін дзеяння занадта доўгі, каб быць надзейным.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{Гэта картка не можа быць зараз захавана}one{Гэтыя карткі не могуць быць зараз захаваны}few{Гэтыя карткі не могуць быць зараз захаваны}many{Гэтыя карткі не могуць быць зараз захаваны}other{Гэтыя карткі не могуць быць зараз захаваны}}</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index acd63e9..78f20ee 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -657,6 +657,7 @@
 <translation id="3428151540071562330">Един или повече от URI адресите на шаблон за сървър в DnsOverHttpsTemplates са невалидни и няма да се използват.</translation>
 <translation id="3431636764301398940">Запазване на картата на това устройство</translation>
 <translation id="3432601291244612633">Затваряне на страницата</translation>
+<translation id="3435738964857648380">Сигурност</translation>
 <translation id="3435896845095436175">Активиране</translation>
 <translation id="3438829137925142401">Използване на паролите, запазени в профила ви в Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index 62ad026..1b87bef 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">এই পৃষ্ঠায় এটি দেখানো হচ্ছে</translation>
 <translation id="153384715582417236">এখন এই পর্যন্তই</translation>
 <translation id="1536390784834419204">পৃষ্ঠাটি অনুবাদ করুন</translation>
+<translation id="1539840569003678498">রিপোর্ট পাঠানো হয়েছে:</translation>
 <translation id="154408704832528245">ডেলিভারি ঠিকানা বেছে নিন</translation>
 <translation id="1549470594296187301">এই বৈশিষ্ট্যটি ব্যবহার করার জন্য জাভাস্ক্রিপ্ট চালু করা প্রয়োজন।</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">আগে ছোট প্রান্ত</translation>
 <translation id="168693727862418163">এই নীতির মান সেটির স্কিমার সাথে যাচাই করা যায়নি, তাই সেটি উপেক্ষা করা হবে।</translation>
 <translation id="168841957122794586">সার্ভার সার্টিফিকেটে একটি দুর্বল ক্রিপ্টোগ্রাফিক কী আছে৷</translation>
+<translation id="1696290444144917273">ভার্চুয়াল কার্ডের বিবরণ দেখুন</translation>
 <translation id="1697532407822776718">আপনার সমস্ত সেট আছে!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{এই সার্ভার যে <ph name="DOMAIN" /> তা এটি প্রমাণ করতে পারেনি; এর নিরাপত্তা সার্টিফিকেটটি আগামীকালের বলে মনে হচ্ছে। কোনও ভুল কনফিগারেশনের কারণে অথবা আপনার সংযোগে বাধাপ্রদানকারী কোনও আক্রমণকারীর কারণে এমনটি হতে পারে।}one{এই সার্ভার যে <ph name="DOMAIN" /> তা এটি প্রমাণ করতে পারেনি; এর নিরাপত্তা সার্টিফিকেটটি আগামী # দিন পরের বলে মনে হচ্ছে। কোনও ভুল কনফিগারেশনের কারণে অথবা আপনার সংযোগে বাধাপ্রদানকারী কোনও আক্রমণকারীর কারণে এমনটি হতে পারে।}other{এই সার্ভার যে <ph name="DOMAIN" /> তা এটি প্রমাণ করতে পারেনি; এর নিরাপত্তা সার্টিফিকেটটি আগামী # দিন পরের বলে মনে হচ্ছে। কোনও ভুল কনফিগারেশনের কারণে অথবা আপনার সংযোগে বাধাপ্রদানকারী কোনও আক্রমণকারীর কারণে এমনটি হতে পারে।}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">মেলবক্স ৩</translation>
 <translation id="1718029547804390981">ব্যাখ্যার জন্য ডকুমেন্টের সাইজ বেশি বড়</translation>
 <translation id="1721424275792716183">* এই ফিল্ডে কিছু লেখা প্রয়োজন</translation>
+<translation id="1727613060316725209">সার্টিফিকেটটি সঠিক</translation>
 <translation id="1727741090716970331">সঠিক কার্ড নম্বর যোগ করুন</translation>
 <translation id="1728677426644403582">আপনি একটি ওয়েব পৃষ্ঠার উৎস কোড দেখছেন</translation>
 <translation id="173080396488393970">এখানে এই ধরনের কার্ড কাজ করে না</translation>
@@ -659,6 +662,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates সার্ভারের এক বা একাধিক টেমপ্লেট ইউআরআই সঠিক নয় এবং ব্যবহার করা যাবে না।</translation>
 <translation id="3431636764301398940">এই ডিভাইসে এই কার্ডটি সেভ করুন</translation>
 <translation id="3432601291244612633">পৃষ্ঠা বন্ধ করুন</translation>
+<translation id="3435738964857648380">নিরাপত্তা</translation>
 <translation id="3435896845095436175">সক্ষম করুন</translation>
 <translation id="3438829137925142401">আপনার Google অ্যাকাউন্টে সেভ করা পাসওয়ার্ড ব্যবহার করুন</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -702,6 +706,7 @@
 <translation id="3586931643579894722">বিশদ বিবরণ লুকান</translation>
 <translation id="3587738293690942763">মাঝারি</translation>
 <translation id="3590643883886679995">ছদ্মবেশী মোড ছেড়ে বেরিয়ে আসলে এই ডিভাইসে সাইন-ইন ডেটা সেভ করা হবে।</translation>
+<translation id="359126217934908072">মাস/বছর:</translation>
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">অ্যাপ্লিকেশনটিকে আপনার অ্যাডমিনিস্ট্রেটর  ব্লক করেছে</translation>
@@ -757,6 +762,7 @@
 <translation id="3781428340399460090">হট গোলাপী</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">ব্লুটুথ ডিভাইস</translation>
+<translation id="3787675388804467730">ভার্চুয়াল কার্ডের সংখ্যা</translation>
 <translation id="3787705759683870569"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /> এ মেয়াদ শেষ হবে</translation>
 <translation id="3789155188480882154">সাইজ ১৬</translation>
 <translation id="3789841737615482174">ইনস্টল করুন</translation>
@@ -1555,6 +1561,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">পৃষ্ঠাটি যাতে সহজপাঠ্য হয়, তার জন্য Chrome এটিকে সহজ করে তুলেছে। একটি অসুরক্ষিত কানেকশন ব্যবহার করে Chrome আবার মূল পৃষ্ঠায় ফিরে এসেছে।</translation>
 <translation id="6891596781022320156">নীতি স্তর সমর্থিত নয়।</translation>
+<translation id="6895143722905299846">ভার্চুয়াল সংখ্যা:</translation>
 <translation id="6895330447102777224">আপনার কার্ডটি নিশ্চিত করা হয়েছে</translation>
 <translation id="6897140037006041989">ব্যবহারকারী এজেন্ট</translation>
 <translation id="6898699227549475383">সংস্থা (O)</translation>
@@ -1593,6 +1600,7 @@
 <translation id="7014741021609395734">জুম লেভেল</translation>
 <translation id="7016992613359344582">এই চার্জটি একবার করা হতে পারে অথবা বারবার করা হতে পারে এবং স্পষ্টভাবে তথ্য নাও থাকতে পারে।</translation>
 <translation id="7029809446516969842">পাসওয়ার্ড</translation>
+<translation id="7030436163253143341">সার্টিফিকেটটি সঠিক নয়</translation>
 <translation id="7031646650991750659">কোন কোন Google Play অ্যাপ আপনি ইনস্টল করেছেন</translation>
 <translation id="7050187094878475250">আমি <ph name="DOMAIN" />-এ সংযোগ করার চেষ্টা করেছেন, কিন্তু সার্ভার একটি সার্টিফিকেট উপস্থাপন করেছে যার বৈধতার সময়সীমা এত বেশী যে বিশ্বাসযোগ্য নয়।</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{এই মুহূর্তে কার্ডটি সেভ করা যাবে না}one{এই মুহূর্তে কার্ডগুলি সেভ করা যাবে না}other{এই মুহূর্তে কার্ডগুলি সেভ করা যাবে না}}</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index 82934780..1cf57d17 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Jedan ili više URI-ja šablona servera DnsOverHttpsTemplates su nevažeći i neće se koristiti.</translation>
 <translation id="3431636764301398940">Sačuvaj ovu karticu na ovaj uređaj</translation>
 <translation id="3432601291244612633">Zatvori stranicu</translation>
+<translation id="3435738964857648380">Sigurnost</translation>
 <translation id="3435896845095436175">Omogući</translation>
 <translation id="3438829137925142401">Koristite lozinke sačuvane na Google računu</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index 6e0c5ef..177e771 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -655,6 +655,7 @@
 <translation id="3428151540071562330">Un o més dels URI de plantilla de servidor corresponents a DnsOverHttpsTemplates no són vàlids i no s'utilitzaran.</translation>
 <translation id="3431636764301398940">Desa aquesta targeta al dispositiu</translation>
 <translation id="3432601291244612633">Tanca la pàgina</translation>
+<translation id="3435738964857648380">Seguretat</translation>
 <translation id="3435896845095436175">Activa</translation>
 <translation id="3438829137925142401">Utilitza les contrasenyes desades al teu Compte de Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index da5e780..67f1b9da7 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">Tato stránka říká</translation>
 <translation id="153384715582417236">To je prozatím vše</translation>
 <translation id="1536390784834419204">Přeložit stránku</translation>
+<translation id="1539840569003678498">Hlášení bylo odesláno:</translation>
 <translation id="154408704832528245">Vybrat adresu doručení</translation>
 <translation id="1549470594296187301">Chcete-li tuto funkci použít, musí být aktivován JavaScript.</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">Krátkou hranou napřed</translation>
 <translation id="168693727862418163">Hodnotu zásady se nepodařilo ověřit proti schématu a bude ignorována.</translation>
 <translation id="168841957122794586">Certifikát serveru obsahuje slabý kryptografický klíč.</translation>
+<translation id="1696290444144917273">Zobrazit podrobnosti o virtuální kartě</translation>
 <translation id="1697532407822776718">Vše je nastaveno!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{Server nedokázal prokázat, že patří doméně <ph name="DOMAIN" />. Uvedené datum vystavení jeho bezpečnostního certifikátu je zítra. Může to být způsobeno nesprávnou konfigurací nebo tím, že vaše připojení zachytává útočník.}few{Server nedokázal prokázat, že patří doméně <ph name="DOMAIN" />. Uvedené datum vystavení jeho bezpečnostního certifikátu je až za # dny. Může to být způsobeno nesprávnou konfigurací nebo tím, že vaše připojení zachytává útočník.}many{Server nedokázal prokázat, že patří doméně <ph name="DOMAIN" />. Uvedené datum vystavení jeho bezpečnostního certifikátu je až za # dne. Může to být způsobeno nesprávnou konfigurací nebo tím, že vaše připojení zachytává útočník.}other{Server nedokázal prokázat, že patří doméně <ph name="DOMAIN" />. Uvedené datum vystavení jeho bezpečnostního certifikátu je až za # dní. Může to být způsobeno nesprávnou konfigurací nebo tím, že vaše připojení zachytává útočník.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">Schránka 3</translation>
 <translation id="1718029547804390981">Dokument je na přidání označení a poznámek příliš velký</translation>
 <translation id="1721424275792716183">* Pole je povinné</translation>
+<translation id="1727613060316725209">Certifikát je platný</translation>
 <translation id="1727741090716970331">Přidání platného čísla karty</translation>
 <translation id="1728677426644403582">Prohlížíte si zdrojový kód webové stránky</translation>
 <translation id="173080396488393970">Tento typ karty není podporován</translation>
@@ -649,6 +652,7 @@
 <translation id="3428151540071562330">Některé identifikátory URI šablon serverů DnsOverHttpsTemplates jsou neplatné a nebudou použity.</translation>
 <translation id="3431636764301398940">Uložit tuto kartu do zařízení</translation>
 <translation id="3432601291244612633">Zavřít stránku</translation>
+<translation id="3435738964857648380">Zabezpečení</translation>
 <translation id="3435896845095436175">Aktivovat</translation>
 <translation id="3438829137925142401">Použít hesla uložená v účtu Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -692,6 +696,7 @@
 <translation id="3586931643579894722">Skrýt podrobnosti</translation>
 <translation id="3587738293690942763">Střední</translation>
 <translation id="3590643883886679995">Přihlašovací údaje zůstanou v tomto zařízení uložené i po ukončení anonymního režimu.</translation>
+<translation id="359126217934908072">Měsíc/rok:</translation>
 <translation id="3592413004129370115">Italian (obálka)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">Aplikace je blokována administrátorem</translation>
@@ -746,6 +751,7 @@
 <translation id="3781428340399460090">Jasně růžová</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">Zařízení Bluetooth</translation>
+<translation id="3787675388804467730">Číslo virtuální karty</translation>
 <translation id="3787705759683870569">Platnost do: <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">Velikost 16</translation>
 <translation id="3789841737615482174">Instalovat</translation>
@@ -1538,6 +1544,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome tuto stránku zjednodušil, aby se snadněji četla. Původní stránku Chrome načetl přes nezabezpečené připojení.</translation>
 <translation id="6891596781022320156">Úroveň zásady není podporována.</translation>
+<translation id="6895143722905299846">Virtuální číslo:</translation>
 <translation id="6895330447102777224">Vaše karta je ověřena</translation>
 <translation id="6897140037006041989">User agent</translation>
 <translation id="6898699227549475383">Organizace (O)</translation>
@@ -1576,6 +1583,7 @@
 <translation id="7014741021609395734">Úroveň přiblížení</translation>
 <translation id="7016992613359344582">Může se jednat o jednorázové nebo opakované poplatky, které nemusejí být jasně patrné.</translation>
 <translation id="7029809446516969842">Hesla</translation>
+<translation id="7030436163253143341">Certifikát není platný</translation>
 <translation id="7031646650991750659">Které aplikace Google Play máte nainstalované</translation>
 <translation id="7050187094878475250">Pokusili jste se připojit k doméně <ph name="DOMAIN" />, ale server předložil certifikát, který má příliš dlouhé období platnosti a je proto nedůvěryhodný.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{Tuto kartu v tuto chvíli nelze uložit}few{Tyto karty v tuto chvíli nelze uložit}many{Tyto karty v tuto chvíli nelze uložit}other{Tyto karty v tuto chvíli nelze uložit}}</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index a4a0d7e..99c22f1c 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">En eller flere af serverskabelon-URI'erne for DnsOverHttpsTemplates er ugyldige og anvendes ikke.</translation>
 <translation id="3431636764301398940">Gem dette kort på denne enhed</translation>
 <translation id="3432601291244612633">Luk side</translation>
+<translation id="3435738964857648380">Sikkerhed</translation>
 <translation id="3435896845095436175">Aktivér</translation>
 <translation id="3438829137925142401">Brug de adgangskoder, der er gemt på din Google-konto</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 932d7a4..c9e6dad 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -652,6 +652,7 @@
 <translation id="3428151540071562330">Einer oder mehrere der "DnsOverHttpsTemplates"-Servervorlagen-URIs sind ungültig und werden nicht verwendet.</translation>
 <translation id="3431636764301398940">Diese Karte für dieses Gerät speichern</translation>
 <translation id="3432601291244612633">Seite schließen</translation>
+<translation id="3435738964857648380">Sicherheit</translation>
 <translation id="3435896845095436175">Aktivieren</translation>
 <translation id="3438829137925142401">Im Google-Konto gespeicherte Passwörter verwenden</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index 3a902ddf..2a8d25a 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -662,6 +662,7 @@
 <translation id="3428151540071562330">Ένα ή περισσότερα από τα URI προτύπου διακομιστή DnsOverHttpsTemplates δεν είναι έγκυρα και δεν θα χρησιμοποιηθούν.</translation>
 <translation id="3431636764301398940">Αποθήκευση αυτής της κάρτας στη συγκεκριμένη συσκευή</translation>
 <translation id="3432601291244612633">Κλείσιμο σελίδας</translation>
+<translation id="3435738964857648380">Ασφάλεια</translation>
 <translation id="3435896845095436175">Ενεργοποίηση</translation>
 <translation id="3438829137925142401">Χρησιμοποιήστε τους κωδικούς πρόσβασης που έχουν αποθηκευτεί στον Λογαριασμό σας Google.</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index 525aeb55..78cc8153 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -660,6 +660,7 @@
 <translation id="3428151540071562330">One or more of the DnsOverHttpsTemplates server template URIs is invalid and will not be used.</translation>
 <translation id="3431636764301398940">Save this card to this device</translation>
 <translation id="3432601291244612633">Close page</translation>
+<translation id="3435738964857648380">Security</translation>
 <translation id="3435896845095436175">Enable</translation>
 <translation id="3438829137925142401">Use passwords saved in your Google Account</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index e53035f..9aeaa43 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -656,6 +656,7 @@
 <translation id="3428151540071562330">Una o más URI de plantillas del servidor de la política DnsOverHttpsTemplates no son válidas, por lo que no se usarán.</translation>
 <translation id="3431636764301398940">Guardar esta tarjeta para este dispositivo</translation>
 <translation id="3432601291244612633">Cerrar página</translation>
+<translation id="3435738964857648380">Seguridad</translation>
 <translation id="3435896845095436175">Habilitar</translation>
 <translation id="3438829137925142401">Usar las contraseñas guardadas en tu Cuenta de Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index 05c7b11..67db974 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Una o varias URI de plantilla del servidor DnsOverHttpsTemplates no son válidas y no se utilizarán.</translation>
 <translation id="3431636764301398940">Guardar esta tarjeta en el dispositivo</translation>
 <translation id="3432601291244612633">Cerrar página</translation>
+<translation id="3435738964857648380">Seguridad</translation>
 <translation id="3435896845095436175">Habilitar</translation>
 <translation id="3438829137925142401">Usar las contraseñas guardadas en tu cuenta de Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -1180,7 +1181,7 @@
 <translation id="5314967030527622926">Creación de cuadernillo</translation>
 <translation id="5316812925700871227">Girar hacia la izquierda</translation>
 <translation id="5317780077021120954">Guardar</translation>
-<translation id="5321288445143113935">Maximizado</translation>
+<translation id="5321288445143113935">Maximizada</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="MATCH_POSITION" /> de <ph name="NUM_MATCHES" /></translation>
 <translation id="5324080437450482387">Seleccionar información de contacto</translation>
 <translation id="5327248766486351172">Nombre</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index 82a6b20..bd7b7cf 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -660,6 +660,7 @@
 <translation id="3428151540071562330">Vähemalt üks reegli DnsOverHttpsTemplates serveri malli URI on kehtetu ja seda ei kasutata.</translation>
 <translation id="3431636764301398940">Salvesta kaart sellesse seadmesse</translation>
 <translation id="3432601291244612633">Sule leht</translation>
+<translation id="3435738964857648380">Turvalisus</translation>
 <translation id="3435896845095436175">Luba</translation>
 <translation id="3438829137925142401">Kasutage oma Google'i kontole salvestatud paroole</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb
index cf7cf85..96e7592 100644
--- a/components/strings/components_strings_eu.xtb
+++ b/components/strings/components_strings_eu.xtb
@@ -652,6 +652,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates aukeraren zerbitzariko txantiloien URI batek edo gehiagok ez dute balio, eta ez dira erabiliko.</translation>
 <translation id="3431636764301398940">Gorde txartela gailu honetan</translation>
 <translation id="3432601291244612633">Itxi orria</translation>
+<translation id="3435738964857648380">Segurtasuna</translation>
 <translation id="3435896845095436175">Gaitu</translation>
 <translation id="3438829137925142401">Erabili Google-ko kontuan gordetako pasahitzak</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 88a1046..c2f1432 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -659,6 +659,7 @@
 <translation id="3428151540071562330">‏یک یا چند سرور نشانی وب الگوی سرور DnsOverHttpsTemplates نامعتبر است و استفاده نخواهد شد.</translation>
 <translation id="3431636764301398940">این کارت را در این دستگاه ذخیره کنید</translation>
 <translation id="3432601291244612633">بستن صفحه</translation>
+<translation id="3435738964857648380">امنیت</translation>
 <translation id="3435896845095436175">فعال کردن</translation>
 <translation id="3438829137925142401">‏استفاده از گذرواژه‌های ذخیره‌شده در «حساب Google»</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index a03fdd8..5baf319 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">Viesti tältä sivulta</translation>
 <translation id="153384715582417236">Siinä kaikki toistaiseksi</translation>
 <translation id="1536390784834419204">Käännä sivu</translation>
+<translation id="1539840569003678498">Ilmoitus lähetetty:</translation>
 <translation id="154408704832528245">Valitse jakeluosoite</translation>
 <translation id="1549470594296187301">Tämän ominaisuuden käyttö edellyttää JavaScriptiä.</translation>
 <translation id="155039086686388498">Insinööri-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">Lyhyt reuna ensin</translation>
 <translation id="168693727862418163">Tämän käytännön arvon ei onnistunut vahvistamaan kaavaa ja se ohitetaan.</translation>
 <translation id="168841957122794586">Palvelinvarmenne sisältää heikon salausavaimen.</translation>
+<translation id="1696290444144917273">Näytä virtuaalisen kortin tiedot</translation>
 <translation id="1697532407822776718">Kaikki on valmista.</translation>
 <translation id="1703835215927279855">Kirje</translation>
 <translation id="1706954506755087368">{1,plural, =1{Palvelin ei voinut todistaa olevansa <ph name="DOMAIN" />; sen suojausvarmenne on päivätty huomiselle. Tämä voi johtua määritysvirheestä tai verkkoyhteytesi siepanneesta hyökkääjästä.}other{Palvelin ei voinut todistaa olevansa <ph name="DOMAIN" />; sen suojausvarmenne on päivätty # päivää tulevaisuuteen. Tämä voi johtua määritysvirheestä tai verkkoyhteytesi siepanneesta hyökkääjästä.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">Postilaatikko 3</translation>
 <translation id="1718029547804390981">Tiedosto on liian suuri merkintöihin</translation>
 <translation id="1721424275792716183">* Kenttä on pakollinen.</translation>
+<translation id="1727613060316725209">Varmenne on voimassa</translation>
 <translation id="1727741090716970331">Lisää kelvollinen kortin numero</translation>
 <translation id="1728677426644403582">Tämä on verkkosivun lähdekoodi.</translation>
 <translation id="173080396488393970">Tätä korttityyppiä ei tueta.</translation>
@@ -659,6 +662,7 @@
 <translation id="3428151540071562330">Yksi tai useampi DnsOverHttpsTemplates-palvelinmallien URI-tunnuksista on virheellinen, eikä niitä käytetä.</translation>
 <translation id="3431636764301398940">Tallenna kortti tälle laitteelle</translation>
 <translation id="3432601291244612633">Sulje sivu</translation>
+<translation id="3435738964857648380">Suojaus</translation>
 <translation id="3435896845095436175">Ota käyttöön</translation>
 <translation id="3438829137925142401">Käytä Google-tilillesi tallennettuja salasanoja</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -702,6 +706,7 @@
 <translation id="3586931643579894722">Piilota lisätiedot</translation>
 <translation id="3587738293690942763">Keskitaso</translation>
 <translation id="3590643883886679995">Kirjautumisdata pysyy tällä laitteella incognito-tilan sulkemisen jälkeen.</translation>
+<translation id="359126217934908072">Kuukausi/vuosi:</translation>
 <translation id="3592413004129370115">Italialainen (kirjekuori)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">Järjestelmänvalvoja esti sovelluksen</translation>
@@ -757,6 +762,7 @@
 <translation id="3781428340399460090">Pinkki</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">Bluetooth-laitteet</translation>
+<translation id="3787675388804467730">Virtuaalinen korttinumero</translation>
 <translation id="3787705759683870569">Vanhenee <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">Koko 16</translation>
 <translation id="3789841737615482174">Asenna</translation>
@@ -1556,6 +1562,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome teki sivusta yksinkertaisemman, jotta sen lukeminen olisi helpompaa. Chrome nouti alkuperäisen sivun suojaamattoman yhteyden kautta.</translation>
 <translation id="6891596781022320156">Käytännön tasoa ei tueta.</translation>
+<translation id="6895143722905299846">Virtuaalinen numero:</translation>
 <translation id="6895330447102777224">Korttisi vahvistettiin.</translation>
 <translation id="6897140037006041989">User agent</translation>
 <translation id="6898699227549475383">Organisaatio (O)</translation>
@@ -1594,6 +1601,7 @@
 <translation id="7014741021609395734">Zoomauksen taso</translation>
 <translation id="7016992613359344582">Veloitukset voivat olla kertaluontoisia tai toistuvia, eikä niitä välttämättä esitetä selkeästi.</translation>
 <translation id="7029809446516969842">Salasanat</translation>
+<translation id="7030436163253143341">Varmenne ei ole voimassa</translation>
 <translation id="7031646650991750659">Asentamasi Google Play ‑sovellukset</translation>
 <translation id="7050187094878475250">Yritit muodostaa yhteyden verkkotunnukseen <ph name="DOMAIN" />, mutta palvelin esitti varmenteen, joka on voimassa liian kauan ollakseen luotettava.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{Tätä korttia ei voi tallentaa juuri nyt}other{Näitä kortteja ei voi tallentaa juuri nyt}}</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 954df33bd..ce7e2e6 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Invalid at hindi gagamitin ang isa o higit pa sa mga URI ng template ng server ng DnsOverHttpsTemplates.</translation>
 <translation id="3431636764301398940">I-save ang card na ito sa device na ito</translation>
 <translation id="3432601291244612633">Isara ang page</translation>
+<translation id="3435738964857648380">Seguridad</translation>
 <translation id="3435896845095436175">I-enable</translation>
 <translation id="3438829137925142401">Gamitin ang mga naka-save na password sa iyong Google Account</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index b32b8d6..d02066e 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -655,6 +655,7 @@
 <translation id="3428151540071562330">Une ou plusieurs des URL de modèle de serveur DnsOverHttpsTemplates sont incorrectes et ne seront pas utilisées.</translation>
 <translation id="3431636764301398940">Enregistrer cette carte sur cet appareil</translation>
 <translation id="3432601291244612633">Fermer la page</translation>
+<translation id="3435738964857648380">Sécurité</translation>
 <translation id="3435896845095436175">Activer</translation>
 <translation id="3438829137925142401">Utiliser les mots de passe enregistrés dans votre compte Google</translation>
 <translation id="3443726618221119081">Jurro Ku Kai</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index 0063c521..b8f286e 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -656,6 +656,7 @@
 <translation id="3428151540071562330">Au moins un URI de modèle de serveur DnsOverHttpsTemplates n'est pas valide et ne sera pas utilisé.</translation>
 <translation id="3431636764301398940">Enregistrer cette carte sur cet appareil</translation>
 <translation id="3432601291244612633">Fermer la page</translation>
+<translation id="3435738964857648380">Sécurité</translation>
 <translation id="3435896845095436175">Activer</translation>
 <translation id="3438829137925142401">Utiliser les mots de passe enregistrés dans votre compte Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index 9dd7557..4ed4f04 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -658,6 +658,7 @@
 <translation id="3428151540071562330">Un ou varios URI do modelo do servidor DnsOverHttpsTemplates non son válidos e non se utilizarán.</translation>
 <translation id="3431636764301398940">Gardar esta tarxeta neste dispositivo</translation>
 <translation id="3432601291244612633">Pechar páxina</translation>
+<translation id="3435738964857648380">Seguranza</translation>
 <translation id="3435896845095436175">Activar</translation>
 <translation id="3438829137925142401">Utilizar contrasinais gardados na túa Conta de Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index 2dcf3d0..6cf485f 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -657,6 +657,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates સર્વરના નમૂનાની એક કે તેથી વધુ URI અમાન્ય છે અને તેનો ઉપયોગ કરવામાં આવશે નહીં.</translation>
 <translation id="3431636764301398940">આ ડિવાઇસ પર આ કાર્ડ સાચવો</translation>
 <translation id="3432601291244612633">પેજ બંધ કરો</translation>
+<translation id="3435738964857648380">સુરક્ષા</translation>
 <translation id="3435896845095436175">ચાલુ કરો</translation>
 <translation id="3438829137925142401">તમારા Google એકાઉન્ટમાં સાચવેલા પાસવર્ડનો ઉપયોગ કરો</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index 96cb08b..e72de7e 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -659,6 +659,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates सर्वर टेम्प्लेट का एक या इससे ज़्यादा यूआरएल अमान्य है और इसका इस्तेमाल नहीं किया जाएगा.</translation>
 <translation id="3431636764301398940">इस कार्ड को इस डिवाइस में सेव करें</translation>
 <translation id="3432601291244612633">पेज बंद करें</translation>
+<translation id="3435738964857648380">सुरक्षा</translation>
 <translation id="3435896845095436175">चालू करें</translation>
 <translation id="3438829137925142401">अपने Google खाते में सेव किए गए पासवर्ड इस्तेमाल करें</translation>
 <translation id="3443726618221119081">जूरो-कु-काई</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index 26f01cd..ec6bd9a 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Jedan ili više URI-ja predloška poslužitelja DnsOverHttpsTemplates nije točan i neće se koristiti.</translation>
 <translation id="3431636764301398940">Spremi tu karticu na ovaj uređaj</translation>
 <translation id="3432601291244612633">Zatvori stranicu</translation>
+<translation id="3435738964857648380">Sigurnost</translation>
 <translation id="3435896845095436175">Omogući</translation>
 <translation id="3438829137925142401">Upotrebljavajte zaporke spremljene na Google računu</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index f1d8d50..2f784d35 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -657,6 +657,7 @@
 <translation id="3428151540071562330">A DnsOverHttpsTemplates szerversablon-URI-k közül legalább egy érvénytelen, és nem használható.</translation>
 <translation id="3431636764301398940">Kártya mentése az eszközre</translation>
 <translation id="3432601291244612633">Oldal bezárása</translation>
+<translation id="3435738964857648380">Biztonság</translation>
 <translation id="3435896845095436175">Engedélyezés</translation>
 <translation id="3438829137925142401">A Google-fiókba mentett jelszavak használata</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index 6426389..d2dad250a 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates կանոնի սերվերի ձևանմուշների URI-ներից առնվազն մեկն անվավեր է և չի կարող օգտագործվել:</translation>
 <translation id="3431636764301398940">Պահել քարտն այս սարքում</translation>
 <translation id="3432601291244612633">Փակել էջը</translation>
+<translation id="3435738964857648380">Անվտանգություն</translation>
 <translation id="3435896845095436175">Միացնել</translation>
 <translation id="3438829137925142401">Օգտագործեք Google հաշվում պահված գաղտնաբառերը</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index 9630bca..f84e6470 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -657,6 +657,7 @@
 <translation id="3428151540071562330">Satu atau beberapa URI template server DnsOverHttpsTemplates tidak valid dan tidak akan digunakan.</translation>
 <translation id="3431636764301398940">Simpan kartu ini ke perangkat ini</translation>
 <translation id="3432601291244612633">Tutup halaman</translation>
+<translation id="3435738964857648380">Keamanan</translation>
 <translation id="3435896845095436175">Aktifkan</translation>
 <translation id="3438829137925142401">Gunakan sandi yang disimpan di Akun Google Anda</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index e8c889b..756ee89 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -662,6 +662,7 @@
 <translation id="3428151540071562330">Eitt eða fleiri af URI sniðmátum netþjóns DnsOverHttpsTemplates eru ógild og verða ekki notuð.</translation>
 <translation id="3431636764301398940">Vista kortið á þessu tæki</translation>
 <translation id="3432601291244612633">Loka síðu</translation>
+<translation id="3435738964857648380">Öryggi</translation>
 <translation id="3435896845095436175">Kveikja</translation>
 <translation id="3438829137925142401">Nota aðgangsorð sem eru vistuð á Google reikningnum þínum</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index a636dab..492d3e4c 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -658,6 +658,7 @@
 <translation id="3428151540071562330">Uno o più URI del modello server DnsOverHttpsTemplates non sono validi e non verranno utilizzati.</translation>
 <translation id="3431636764301398940">Salva la carta per questo dispositivo</translation>
 <translation id="3432601291244612633">Chiudi pagina</translation>
+<translation id="3435738964857648380">Sicurezza</translation>
 <translation id="3435896845095436175">Abilita</translation>
 <translation id="3438829137925142401">Usa le password salvate nel tuo Account Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 479ba91..9e2030d8 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">‏אחד או יותר ממזהי ה-URI של תבנית השרת DnsOverHttpsTemplates אינם חוקיים ולא ייעשה בהם שימוש.</translation>
 <translation id="3431636764301398940">שמירת כרטיס זה במכשיר הנוכחי</translation>
 <translation id="3432601291244612633">סגירת הדף</translation>
+<translation id="3435738964857648380">אבטחה</translation>
 <translation id="3435896845095436175">הפעלה</translation>
 <translation id="3438829137925142401">‏שימוש בסיסמאות השמורות בחשבון Google שלך</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 5869a83..cf22f16 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">このページの内容</translation>
 <translation id="153384715582417236">現在、コンテンツはありません</translation>
 <translation id="1536390784834419204">ページを翻訳</translation>
+<translation id="1539840569003678498">レポートの送信日時:</translation>
 <translation id="154408704832528245">配達先住所を選択</translation>
 <translation id="1549470594296187301">この機能を使用するには JavaScript を有効にする必要があります。</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">短辺から</translation>
 <translation id="168693727862418163">このポリシーの値は、スキーマの検証でエラーとなったため無視されます。</translation>
 <translation id="168841957122794586">サーバー証明書に脆弱な暗号鍵が含まれています。</translation>
+<translation id="1696290444144917273">仮想カードの詳細を表示します</translation>
 <translation id="1697532407822776718">設定が完了しました。</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{このサーバーが <ph name="DOMAIN" /> であることを確認できませんでした。セキュリティ証明書はおそらく明日以降に利用できるようになります。原因として、設定が不適切であるか、悪意のあるユーザーが接続を妨害していることが考えられます。}other{このサーバーが <ph name="DOMAIN" /> であることを確認できませんでした。セキュリティ証明書はおそらく # 日後から利用できるようになります。原因として、設定が不適切であるか、悪意のあるユーザーが接続を妨害していることが考えられます。}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">用紙受け 3</translation>
 <translation id="1718029547804390981">ドキュメントのサイズが大きすぎるため注釈を追加できません</translation>
 <translation id="1721424275792716183">* 必須欄です</translation>
+<translation id="1727613060316725209">証明書は有効です</translation>
 <translation id="1727741090716970331">有効なカード番号の追加</translation>
 <translation id="1728677426644403582">ウェブページのソースを表示しています</translation>
 <translation id="173080396488393970">この種類のカードはご利用いただけません</translation>
@@ -652,6 +655,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates サーバー テンプレートの一部の URI が無効なため、使用されません。</translation>
 <translation id="3431636764301398940">このカード情報をこのデバイスに保存する</translation>
 <translation id="3432601291244612633">ページを閉じる</translation>
+<translation id="3435738964857648380">セキュリティ</translation>
 <translation id="3435896845095436175">有効にする</translation>
 <translation id="3438829137925142401">Google アカウントに保存したパスワードを使用する</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -695,6 +699,7 @@
 <translation id="3586931643579894722">詳細を非表示</translation>
 <translation id="3587738293690942763">中</translation>
 <translation id="3590643883886679995">ログインデータはシークレット モードの終了後にこのデバイスに保存されます。</translation>
+<translation id="359126217934908072">月 / 年:</translation>
 <translation id="3592413004129370115">Italian(封筒)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />、<ph name="DOMAIN" />、<ph name="TIME" /></translation>
 <translation id="3603507503523709">アプリケーションは管理者によってブロックされています</translation>
@@ -750,6 +755,7 @@
 <translation id="3781428340399460090">ホットピンク</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">Bluetoothデバイス</translation>
+<translation id="3787675388804467730">仮想カード番号</translation>
 <translation id="3787705759683870569">有効期限: <ph name="EXPIRATION_MONTH" /> / <ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">サイズ 16</translation>
 <translation id="3789841737615482174">インストール</translation>
@@ -1544,6 +1550,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">ページを見やすくするため、Chrome によって簡易表示されています。Chrome による元のページの取得は、保護されていない接続を介して行われました。</translation>
 <translation id="6891596781022320156">ポリシーレベルがサポートされていません。</translation>
+<translation id="6895143722905299846">仮想番号:</translation>
 <translation id="6895330447102777224">カードを確認しました</translation>
 <translation id="6897140037006041989">ユーザー エージェント</translation>
 <translation id="6898699227549475383">組織(O)</translation>
@@ -1582,6 +1589,7 @@
 <translation id="7014741021609395734">ズームレベル</translation>
 <translation id="7016992613359344582">料金の請求は 1 回限りの場合も繰り返し行われる場合もあり、課金されたかどうかわからないこともあります。</translation>
 <translation id="7029809446516969842">パスワード</translation>
+<translation id="7030436163253143341">証明書が無効です</translation>
 <translation id="7031646650991750659">インストールした Google Play アプリ</translation>
 <translation id="7050187094878475250"><ph name="DOMAIN" /> にアクセスしようとしましたが、サーバーに提示された証明書の有効期限が長すぎて信頼性を確認できませんでした。</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{現在、このカードは保存できません}other{現在、これらのカードは保存できません}}</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index d50e1c7..463b84f 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -655,6 +655,7 @@
 <translation id="3428151540071562330">„DnsOverHttpsTemplates“-ში სერვერების შაბლონების რამდენიმე URI არასწორია და არ იქნება გამოყენებული.</translation>
 <translation id="3431636764301398940">ბარათის ამ მოწყობილობაზე შენახვა</translation>
 <translation id="3432601291244612633">გვერდის დახურვა</translation>
+<translation id="3435738964857648380">უსაფრთხოება</translation>
 <translation id="3435896845095436175">ჩართვა</translation>
 <translation id="3438829137925142401">თქვენს Google ანგარიშში შენახული პაროლების გამოყენება</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
index 4248145..af9fbf1 100644
--- a/components/strings/components_strings_kk.xtb
+++ b/components/strings/components_strings_kk.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">Бұл беттегі сұрау</translation>
 <translation id="153384715582417236">Әзірге бары осы</translation>
 <translation id="1536390784834419204">Бетті аудару</translation>
+<translation id="1539840569003678498">Есеп жіберілді:</translation>
 <translation id="154408704832528245">Жеткізу мекенжайын таңдау</translation>
 <translation id="1549470594296187301">Бұл мүмкіндікті пайдалану үшін JavaScript қосылуы керек.</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">Алдымен қысқа беті</translation>
 <translation id="168693727862418163">Бұл саясат мәні осы схемаға қатысты тексерілмеді және ол еленбейді.</translation>
 <translation id="168841957122794586">Сервер сертификаты сенімсіз криптографиялық кілтті қамтиды.</translation>
+<translation id="1696290444144917273">Виртуалды карта мәліметтерін көру</translation>
 <translation id="1697532407822776718">Барлығын орнаттыңыз!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{Бұл сервер өзінің <ph name="DOMAIN" /> екендігін дәлелдей алмады; оның қауіпсіздік сертификаты ертеңнен басталатын сияқты. Бұл дұрыс конфигурацияланбағаннан немесе зиянды бағдарламаның байланысқа кедергі келтіруінен болуы мүмкін.}other{Бұл сервер өзінің <ph name="DOMAIN" /> екендігін дәлелдей алмады; оның қауіпсіздік сертификаты # күн өткеннен кейін басталатын сияқты. Бұл дұрыс конфигурацияланбағаннан немесе зиянды бағдарламаның байланысқа кедергі келтіруінен болуы мүмкін.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">3-ші пошта жәшігі</translation>
 <translation id="1718029547804390981">Аннотация қосуға құжат өлшемі өте үлкен.</translation>
 <translation id="1721424275792716183">* Өріс толтырылуы қажет</translation>
+<translation id="1727613060316725209">Сертификат жарамды</translation>
 <translation id="1727741090716970331">Дұрыс карта нөмірін енгізу</translation>
 <translation id="1728677426644403582">Веббет дереккөзін көрудесіз</translation>
 <translation id="173080396488393970">Картаның бұл түріне қолдау көрсетілмейді</translation>
@@ -657,6 +660,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates серверінің бір немесе бірнеше URI үлгісі жарамсыз және пайдаланылмайды.</translation>
 <translation id="3431636764301398940">Карта мәліметтерін осы құрылғыда сақтау</translation>
 <translation id="3432601291244612633">Бетті жабу</translation>
+<translation id="3435738964857648380">Қауіпсіздік</translation>
 <translation id="3435896845095436175">Қосу</translation>
 <translation id="3438829137925142401">Google есептік жазбасында сақталған құпия сөздерді пайдалану</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -700,6 +704,7 @@
 <translation id="3586931643579894722">Мәліметтерді жасыру</translation>
 <translation id="3587738293690942763">Ортасы</translation>
 <translation id="3590643883886679995">Сіз инкогнито режимінен шыққаннан кейін де, есептік жазбаға кіру деректері осы құрылғыда сақталады.</translation>
+<translation id="359126217934908072">Айы/жылы:</translation>
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">Қолданбаны әкімші бөгеген</translation>
@@ -755,6 +760,7 @@
 <translation id="3781428340399460090">Қою алқызыл</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">Bluetooth құрылғылары</translation>
+<translation id="3787675388804467730">Виртуалды карта нөмірі</translation>
 <translation id="3787705759683870569">Жарамдылық мерзімі: <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">Өлшемі: 16</translation>
 <translation id="3789841737615482174">Орнату</translation>
@@ -1421,6 +1427,7 @@
 <translation id="6289939620939689042">Бет түсі</translation>
 <translation id="6290238015253830360">Сізге ұсынылған мақалалар осы жерге шығады.</translation>
 <translation id="6293309776179964942">JIS B5</translation>
+<translation id="6295618774959045776">CVC:</translation>
 <translation id="6302269476990306341">Chrome браузеріндегі Google Assistant тоқтатылуда</translation>
 <translation id="6305205051461490394"><ph name="URL" /> мекенжайына кіру мүмкін емес.</translation>
 <translation id="6312113039770857350">Веб-бет қол жетімді емес</translation>
@@ -1553,6 +1560,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome бұл режимде беттің оқылуын жеңілдетті. Chrome браузерінде бастапқы бет қорғалмаған байланыс арқылы алынды.</translation>
 <translation id="6891596781022320156">Саясат деңгейіне қолдау көрсетілмеген.</translation>
+<translation id="6895143722905299846">Виртуалды нөмір:</translation>
 <translation id="6895330447102777224">Картаңыз расталды</translation>
 <translation id="6897140037006041989">Пайдаланушы агенті</translation>
 <translation id="6898699227549475383">Ұйым (O)</translation>
@@ -1591,6 +1599,7 @@
 <translation id="7014741021609395734">Масштабтау деңгейі</translation>
 <translation id="7016992613359344582">Бұл ақылар сізге білдіртпей бір рет не қайта-қайта алынуы мүмкін.</translation>
 <translation id="7029809446516969842">Құпия сөздер</translation>
+<translation id="7030436163253143341">Сертификат жарамсыз</translation>
 <translation id="7031646650991750659">Google Play-дің қай қолданбаларын орнатқаныңызды.</translation>
 <translation id="7050187094878475250"><ph name="DOMAIN" /> доменіне қол жеткізуге әрекет еттіңіз, бірақ сервер сенімді болуы үшін жарамдылық мерзімі тым ұзақ болған сертификатты ұсынды.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{Бұл карта қазір сақталмайды}other{Бұл карталар қазір сақталмайды}}</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index 1cbf1c1f..d04632d 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -175,6 +175,7 @@
 <translation id="1532118530259321453">ទំព័រនេះ​និយាយ​ថា</translation>
 <translation id="153384715582417236">មានតែប៉ុណ្ណឹងទេ</translation>
 <translation id="1536390784834419204">បកប្រែ​ទំព័រ</translation>
+<translation id="1539840569003678498">បានផ្ញើ​របាយការណ៍៖</translation>
 <translation id="154408704832528245">ជ្រើសរើស​អាសយដ្ឋាន​ចែកចាយ</translation>
 <translation id="1549470594296187301">ត្រូវបើកដំណើរការ JavaScript ដើម្បីប្រើលក្ខណៈពិសេសនេះ។</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -217,6 +218,7 @@
 <translation id="1682696192498422849">គែមខ្លី​មុនគេ</translation>
 <translation id="168693727862418163">តម្លៃគោលការណ៍នេះមិនត្រូវនឹងគំនូស​តាងរបស់វាទេ ហើយនឹងមិនត្រូវបានអើពើទេ។</translation>
 <translation id="168841957122794586">វិញ្ញាបនប័ត្រម៉ាស៊ីនមេផ្ទុកសោគ្រីបខ្សោយ។</translation>
+<translation id="1696290444144917273">មើលព័ត៌មានលម្អិត​អំពីកាតនិម្មិត</translation>
 <translation id="1697532407822776718">អ្នកត្រូវបានកំណត់រួចអស់ហើយ!</translation>
 <translation id="1703835215927279855">សំបុត្រ</translation>
 <translation id="1706954506755087368">{1,plural, =1{ម៉ាស៊ីនមេនេះមិនអាចបង្ហាញថាវាជា <ph name="DOMAIN" /> ទេ។ វិញ្ញាបនបត្រសុវត្ថិភាពរបស់វាត្រូវបានសន្មតថាមានសុពលភាពចាប់ពីថ្ងៃស្អែកទៅ។ វាអាចបណ្តាលមកពីការកំណត់រចនាសម្ព័ន្ធខុស ឬអ្នកវាយប្រហារកំពុងរារាំងការតភ្ជាប់របស់អ្នក។}other{ម៉ាស៊ីនមេនេះមិនអាចបង្ហាញថាវាជា <ph name="DOMAIN" /> ទេ។ វិញ្ញាបនបត្រសុវត្ថិភាពរបស់វាត្រូវបានសន្មតថាមានសុពលភាពក្នុងរយៈពេល # ថ្ងៃបន្ទាប់។ វាអាចបណ្តាលមកពីការកំណត់រចនាសម្ព័ន្ធខុស ឬអ្នកវាយប្រហារកំពុងរារាំងការតភ្ជាប់របស់អ្នក។}}</translation>
@@ -228,6 +230,7 @@
 <translation id="1717494416764505390">ប្រអប់​សំបុត្រទី 3</translation>
 <translation id="1718029547804390981">ឯកសារធំពេក មិន​អាចធ្វើចំណារបានទេ</translation>
 <translation id="1721424275792716183">* តម្រូវឲ្យបំពេញ</translation>
+<translation id="1727613060316725209">វិញ្ញាបនបត្រ​មានសុពលភាព</translation>
 <translation id="1727741090716970331">បញ្ចូល​លេខបណ្ណដែល​​ត្រឹមត្រូវ</translation>
 <translation id="1728677426644403582">អ្នក​កំពុងមើល​ប្រភព​របស់គេហទំព័រ</translation>
 <translation id="173080396488393970">មិនស្គាល់បណ្ណប្រភេទនេះទេ</translation>
@@ -661,6 +664,7 @@
 <translation id="3428151540071562330">URI ទម្រង់គំរូ​ម៉ាស៊ីនមេ DnsOverHttpsTemplates មួយ ឬច្រើន​គឺ​មិន​ត្រឹមត្រូវ​ទេ ហើយនឹង​មិន​ត្រូវបាន​ប្រើប្រាស់​ឡើយ​។</translation>
 <translation id="3431636764301398940">រក្សាទុកកាតនេះទៅក្នុងឧបករណ៍នេះ</translation>
 <translation id="3432601291244612633">បិទទំព័រ</translation>
+<translation id="3435738964857648380">សុវត្ថិភាព</translation>
 <translation id="3435896845095436175">បើកដំណើរការ</translation>
 <translation id="3438829137925142401">ប្រើពាក្យសម្ងាត់ដែលរក្សាទុកនៅក្នុងគណនី​ Google របស់អ្នក</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -704,6 +708,7 @@
 <translation id="3586931643579894722">លាក់ព័ត៌មានលំអិត</translation>
 <translation id="3587738293690942763">កណ្តាល</translation>
 <translation id="3590643883886679995">ទិន្នន័យ​សម្រាប់​ចូលគណនី​នឹងត្រូវបាន​រក្សាទុកនៅលើ​ឧបករណ៍នេះ បន្ទាប់ពីអ្នក​ចាកចេញពី​មុខងារឯកជន។</translation>
+<translation id="359126217934908072">ខែ/ឆ្នាំ៖</translation>
 <translation id="3592413004129370115">Italian (ស្រោម​សំបុត្រ)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">កម្មវិធី​ដែលទប់ស្កាត់​ដោយ​អ្នកគ្រប់គ្រង​របស់អ្នក</translation>
@@ -759,6 +764,7 @@
 <translation id="3781428340399460090">ផ្កាឈូកចាស់</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">ឧបករណ៍​ប៊្លូធូស</translation>
+<translation id="3787675388804467730">លេខកាតនិម្មិត</translation>
 <translation id="3787705759683870569">ផុតកំណត់ <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">ទំហំ 16</translation>
 <translation id="3789841737615482174">តំឡើង</translation>
@@ -1426,6 +1432,7 @@
 <translation id="6289939620939689042">ពណ៌​ទំព័រ</translation>
 <translation id="6290238015253830360">អត្ថបទដែលបានផ្តល់យោបល់របស់អ្នកបង្ហាញនៅទីនេះ</translation>
 <translation id="6293309776179964942">JIS B5</translation>
+<translation id="6295618774959045776">CVC៖</translation>
 <translation id="6302269476990306341">ការបញ្ឈប់ Google ជំនួយការនៅក្នុង Chrome</translation>
 <translation id="6305205051461490394"><ph name="URL" /> មិនអាចភ្ជាប់បានទេ</translation>
 <translation id="6312113039770857350">គេហទំព័រមិនអាចប្រើបានទេ</translation>
@@ -1558,6 +1565,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome បានសម្រួលទំព័រនេះ ដើម្បី​ឱ្យងាយស្រួលអានជាងមុន។ Chrome បានទាញយក​ទំព័រដើម​តាមរយៈការតភ្ជាប់ដែលគ្មានសុវត្ថិភាព។</translation>
 <translation id="6891596781022320156">កម្រិតគោលការណ៍មិនត្រូវបានគាំទ្រទេ។</translation>
+<translation id="6895143722905299846">លេខកាតនិម្មិត៖</translation>
 <translation id="6895330447102777224">កាតរបស់អ្នកបានបញ្ជាក់រួចហើយ</translation>
 <translation id="6897140037006041989">ភ្នាក់ងារអ្នកប្រើ</translation>
 <translation id="6898699227549475383">អង្គភាព (O)</translation>
@@ -1596,6 +1604,7 @@
 <translation id="7014741021609395734">កម្រិត​ពង្រីកបង្រួម</translation>
 <translation id="7016992613359344582">ការគិតប្រាក់ទាំងនេះអាចធ្វើឡើងម្ដង ឬច្រើន​ដង ហើយអាចនឹងមិនមាន​ការបញ្ជាក់ច្បាស់លាស់នោះទេ។</translation>
 <translation id="7029809446516969842">ពាក្យសម្ងាត់</translation>
+<translation id="7030436163253143341">វិញ្ញាបនបត្រ​មិនមានសុពលភាពទេ</translation>
 <translation id="7031646650991750659">ថាតើកម្មវិធី Google Play ណាខ្លះដែលអ្នកបានដំឡើង</translation>
 <translation id="7050187094878475250">អ្នកបានព្យាយាមចូលទៅ <ph name="DOMAIN" />, ប៉ុន្តែវិញ្ញាបនបត្រនៃម៉ាស៊ីនមេនេះមានសុពលភាពយូរពេកដែលមិនគួរឲ្យទុកចិត្ត។</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{មិនអាចរក្សាទុកបណ្ណនេះបានទេនៅពេលនេះ}other{មិនអាចរក្សាទុកបណ្ណទាំងនេះបានទេនៅពេលនេះ}}</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 6b17c39..8b70668f 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -655,6 +655,7 @@
 <translation id="3428151540071562330">ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ DnsOverHttpsTemplates ಸರ್ವರ್ ಟೆಂಪ್ಲೇಟ್ URI ಗಳು ಅಮಾನ್ಯವಾಗಿವೆ ಮತ್ತು ಅವುಗಳನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="3431636764301398940">ಈ ಸಾಧನಕ್ಕೆ ಈ ಕಾರ್ಡ್ ಉಳಿಸಿ</translation>
 <translation id="3432601291244612633">ಪುಟವನ್ನು ಮುಚ್ಚಿರಿ</translation>
+<translation id="3435738964857648380">ಭದ್ರತೆ</translation>
 <translation id="3435896845095436175">ಸಕ್ರಿಯಗೊಳಿಸು</translation>
 <translation id="3438829137925142401">ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲಾಗಿರುವ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಬಳಸಿ</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index e5027d8..07fdb82f 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">이 페이지 내용:</translation>
 <translation id="153384715582417236">새 콘텐츠 없음</translation>
 <translation id="1536390784834419204">페이지 번역</translation>
+<translation id="1539840569003678498">보고 날짜:</translation>
 <translation id="154408704832528245">배달 주소 선택</translation>
 <translation id="1549470594296187301">이 기능을 이용하려면 자바스크립트를 사용하도록 설정해야 합니다.</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">짧은 쪽 먼저</translation>
 <translation id="168693727862418163">이 정책 값은 스키마에 대해 유효성이 확인되지 않았으므로 무시됩니다.</translation>
 <translation id="168841957122794586">서버 인증서에 안전성이 낮은 암호화 키가 포함되어 있습니다.</translation>
+<translation id="1696290444144917273">가상 카드 세부정보 보기</translation>
 <translation id="1697532407822776718">설정 완료</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{서버의 보안 인증서가 내일 발효될 예정이며 이에 따라 <ph name="DOMAIN" />임을 입증할 수 없습니다. 서버를 잘못 설정했거나 불법 사용자가 연결을 가로채고 있기 때문일 수 있습니다.}other{서버의 보안 인증서가 #일 후 발효될 예정이며 이에 따라 <ph name="DOMAIN" />임을 입증할 수 없습니다. 서버를 잘못 설정했거나 불법 사용자가 연결을 가로채고 있기 때문일 수 있습니다.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">메일박스 3</translation>
 <translation id="1718029547804390981">문서가 너무 커서 주석을 달 수 없습니다.</translation>
 <translation id="1721424275792716183">* 필수 입력란</translation>
+<translation id="1727613060316725209">인증서가 유효함</translation>
 <translation id="1727741090716970331">유효한 카드 번호 추가</translation>
 <translation id="1728677426644403582">웹페이지 소스를 보는 중</translation>
 <translation id="173080396488393970">이 유형의 카드는 지원되지 않습니다.</translation>
@@ -652,6 +655,7 @@
 <translation id="3428151540071562330">하나 이상의 DnsOverHttpsTemplates 서버 템플릿 URI가 유효하지 않아 앞으로 사용되지 않습니다.</translation>
 <translation id="3431636764301398940">기기에 카드 저장</translation>
 <translation id="3432601291244612633">페이지 닫기</translation>
+<translation id="3435738964857648380">보안</translation>
 <translation id="3435896845095436175">사용</translation>
 <translation id="3438829137925142401">Google 계정에 저장된 비밀번호 사용</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -695,6 +699,7 @@
 <translation id="3586931643579894722">세부정보 숨기기</translation>
 <translation id="3587738293690942763">보통</translation>
 <translation id="3590643883886679995">시크릿 모드를 종료한 후 로그인 데이터가 기기에 저장됩니다.</translation>
+<translation id="359126217934908072">월/연도:</translation>
 <translation id="3592413004129370115">Italian(봉투)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">관리자가 차단한 애플리케이션</translation>
@@ -750,6 +755,7 @@
 <translation id="3781428340399460090">진한 분홍색</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">블루투스 장치</translation>
+<translation id="3787675388804467730">가상 카드 번호</translation>
 <translation id="3787705759683870569">만료: <ph name="EXPIRATION_YEAR" />년 <ph name="EXPIRATION_MONTH" />월</translation>
 <translation id="3789155188480882154">크기 16</translation>
 <translation id="3789841737615482174">설치</translation>
@@ -1544,6 +1550,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome에서 페이지를 읽기 쉽도록 간소화했습니다. Chrome에서 안전하지 않은 연결을 통해 원본 페이지를 가져왔습니다.</translation>
 <translation id="6891596781022320156">정책 수준이 지원되지 않습니다.</translation>
+<translation id="6895143722905299846">가상 번호:</translation>
 <translation id="6895330447102777224">카드가 확인되었습니다.</translation>
 <translation id="6897140037006041989">사용자 에이전트</translation>
 <translation id="6898699227549475383">조직(O)</translation>
@@ -1582,6 +1589,7 @@
 <translation id="7014741021609395734">확대/축소 수준</translation>
 <translation id="7016992613359344582">이러한 금액 청구는 일회성이거나 반복적일 수 있으며 불분명한 방식으로 이루어질 수도 있습니다.</translation>
 <translation id="7029809446516969842">비밀번호</translation>
+<translation id="7030436163253143341">인증서가 올바르지 않음</translation>
 <translation id="7031646650991750659">내가 설치한 Google Play 앱</translation>
 <translation id="7050187094878475250"><ph name="DOMAIN" />에 접속하려고 했지만 서버가 제시한 인증서의 유효 기간이 너무 길어서 신뢰할 수 없습니다.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{지금은 이 카드를 저장할 수 없습니다.}other{지금은 이 카드를 저장할 수 없습니다.}}</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index 20e69cd2..9eb11a7 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">Бул баракча мындай дейт:</translation>
 <translation id="153384715582417236">Азырынча ушул эле</translation>
 <translation id="1536390784834419204">Баракты которуу</translation>
+<translation id="1539840569003678498">Кабар жөнөтүлдү:</translation>
 <translation id="154408704832528245">Жеткирүү дарегин тандоо</translation>
 <translation id="1549470594296187301">Бул функцияны пайдалануу үчүн JavaScript иштетилиши керек.</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">Биринчи туурасы боюнча</translation>
 <translation id="168693727862418163">Бул саясаттын мааниси схемасына дал келбей калды, андыктан этибарга алынбайт.</translation>
 <translation id="168841957122794586">Сервердин тастыктамасында чабал криптографиялык ачкыч камтылган.</translation>
+<translation id="1696290444144917273">Виртуалдык картанын чоо-жайын көрүү</translation>
 <translation id="1697532407822776718">Баары даяр!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{Бул сервер <ph name="DOMAIN" /> экенин далилдей алган жок. Анын коопсуздук тастыктамасы эртең күчүнө кирет. Мындай көйгөй сервердин туура эмес конфигурацияланышы менен шартталышы мүмкүн же кимдир-бирөө ортодон дайын-даректериңизди кармап калганга аракет кылып жатат.}other{Бул сервер <ph name="DOMAIN" /> экенин далилдей алган жок. Анын коопсуздук тастыктамасы # күндөн кийин күчүнө кирет. Мындай көйгөй сервердин туура эмес конфигурацияланышы менен шартталышы мүмкүн же кимдир-бирөө ортодон дайын-даректериңизди кармап калганга аракет кылып жатат.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">3-электрондук каттар кутусу</translation>
 <translation id="1718029547804390981">Документ өтө чоң, андыктан Аннотация режиминде түзөтүүгө болбойт.</translation>
 <translation id="1721424275792716183">* Бул талаа милдеттүү түрдө толтурулушу керек</translation>
+<translation id="1727613060316725209">Тастыктама жарамдуу</translation>
 <translation id="1727741090716970331">Жарактуу карточканын номерин кошуу</translation>
 <translation id="1728677426644403582">Сиз Интернет барагынын кодун көрүп жатасыз</translation>
 <translation id="173080396488393970">Мындай карточка колдоого алынбайт</translation>
@@ -658,6 +661,7 @@
 <translation id="3428151540071562330">Бир же бир нече DnsOverHttpsTemplates серверлериндеги URI даректеринин үлгүлөрү жараксыз жана колдонулбайт.</translation>
 <translation id="3431636764301398940">Бул карточка ушул түзмөктө сакталсын</translation>
 <translation id="3432601291244612633">Баракты жабуу</translation>
+<translation id="3435738964857648380">Коопсуздук</translation>
 <translation id="3435896845095436175">Иштетүү</translation>
 <translation id="3438829137925142401">Google аккаунтуңузда сакталган сырсөздөрдү колдонуңуз</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -700,6 +704,7 @@
 <translation id="3586931643579894722">Чоо-жайын жашыруу</translation>
 <translation id="3587738293690942763">Орто</translation>
 <translation id="3590643883886679995">Жашыруун режимден чыккандан кийин, аккаунтка кирүү дайындары бул түзмөктө сакталат.</translation>
+<translation id="359126217934908072">Ай/Жыл:</translation>
 <translation id="3592413004129370115">Italian (Конверт)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">Колдонмо администраторуңуз тарабынан бөгөттөлдү</translation>
@@ -755,6 +760,7 @@
 <translation id="3781428340399460090">Ачык кызгылтым</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">Bluetooth түзмөктөрү</translation>
+<translation id="3787675388804467730">Виртуалдык картанын номери</translation>
 <translation id="3787705759683870569"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /> мөөнөтү аяктайт</translation>
 <translation id="3789155188480882154">Өлчөмү: 16</translation>
 <translation id="3789841737615482174">Орнотуу</translation>
@@ -1421,6 +1427,7 @@
 <translation id="6289939620939689042">Барактын түсү</translation>
 <translation id="6290238015253830360">Сунушталган макалалар ушул жерде көрүнөт</translation>
 <translation id="6293309776179964942">JIS B5 (182mm x 257mm)</translation>
+<translation id="6295618774959045776">CVC:</translation>
 <translation id="6302269476990306341">Chrome'догу Google Жардамчы токтотулууда</translation>
 <translation id="6305205051461490394"><ph name="URL" /> сайты жеткиликсиз.</translation>
 <translation id="6312113039770857350">Веб-баракча жеткиликтүү эмес</translation>
@@ -1553,6 +1560,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome бул баракты окууну жеңилдетүү үчүн жөнөкөйлөттү Chrome кооптуу туташуу аркылуу түпнуска баракты алды.</translation>
 <translation id="6891596781022320156">Саясат деңгээли колдоого алынбайт.</translation>
+<translation id="6895143722905299846">Виртуалдык номер:</translation>
 <translation id="6895330447102777224">Карточкаңыз текшерилди</translation>
 <translation id="6897140037006041989">Колдонуучунун агенти</translation>
 <translation id="6898699227549475383">Уюм (У)</translation>
@@ -1591,6 +1599,7 @@
 <translation id="7014741021609395734">Чоңойтуп/кичирейтүү деңгээли</translation>
 <translation id="7016992613359344582">Алар бир жолу төлөнүүчү же кайталануучу төлөмдөр болушу мүмкүн, бирок алар ачык көрүнбөйт.</translation>
 <translation id="7029809446516969842">Сырсөздөр</translation>
+<translation id="7030436163253143341">Тастыктама жарамдуу эмес</translation>
 <translation id="7031646650991750659">Кайсы Google Play колдонмолорун орнотуп алдыңыз</translation>
 <translation id="7050187094878475250"><ph name="DOMAIN" /> доменине кирүүгө аракет кылдыңыз, бирок сервер ишенимдүү болушу үчүн жарактуу мөөнөтү өтө узун уруксаттама берди.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{Бул картаны азыр сактап коюуга болбойт}other{Бул карталарды азыр сактап коюуга болбойт}}</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index e66470c5..ef676f0c 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -508,6 +508,7 @@
 <translation id="2850739647070081192">Invite (ຊອງຈົດໝາຍ)</translation>
 <translation id="2856444702002559011">ຜູ້ໂຈມຕີອາດຈະກຳລັງພະຍາຍາມລັກເອົາຂໍ້ມູນຂອງທ່ານຈາກ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> (ຕົວຢ່າງ: ລະຫັດຜ່ານ, ຂໍ້ຄວາມ ຫຼື ບັດເຄຣດິດ). <ph name="BEGIN_LEARN_MORE_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="2859806420264540918">ເວັບໄຊນີ້ສະແດງໂຄສະນາທີ່ລົບກວນ ຫຼື ຫຼອກລວງ.</translation>
+<translation id="287596039013813457">ເປັນມິດ</translation>
 <translation id="2876489322757410363">ກຳລັງອອກຈາກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນເພື່ອຈ່າຍຜ່ານແອັບພລິເຄຊັນພາຍນອກ ສືບຕໍ່ບໍ?</translation>
 <translation id="2878197950673342043">ພັບແບບໂປສເຕີ</translation>
 <translation id="2878424575911748999">A1</translation>
@@ -605,6 +606,7 @@
 <translation id="3229041911291329567">ຂໍ້ມູນເວີຊັນກ່ຽວກັບອຸປະກອນ ແລະ ໂປຣແກຣມທ່ອງເວັບຂອງທ່ານ</translation>
 <translation id="323107829343500871">ປ້ອນ CVC ສຳລັບ <ph name="CREDIT_CARD" /></translation>
 <translation id="3234666976984236645">ກວດ​ຫາ​ເນື້ອ​ໃນ​ສຳ​ຄັນ​ຢູ່​ເທິງ​ເວັບ​ໄຊ​ທ໌​ນີ້​ທຸກ​ຄັ້ງ</translation>
+<translation id="3249845759089040423">ກຣູຟີ</translation>
 <translation id="3252266817569339921">ພາສາຝຣັ່ງ</translation>
 <translation id="3266793032086590337">ຄ່າ (ຂັດແຍ່ງ)</translation>
 <translation id="3268451620468152448">ເປີດ​ແຖບ</translation>
@@ -661,6 +663,7 @@
 <translation id="3428151540071562330">ໜຶ່ງ ຫຼື ຫຼາຍ URI ຂອງແມ່ແບບເຊີບເວີ DnsOverHttpsTemplates ບໍ່ຖືກຕ້ອງ ແລະ ຈະບໍ່ຖືກນຳໃຊ້.</translation>
 <translation id="3431636764301398940">ບັນທຶກບັດນີ້ໃສ່ອຸປະກອນນີ້</translation>
 <translation id="3432601291244612633">ປິດໜ້າ</translation>
+<translation id="3435738964857648380">ຄວາມ​ປອດ​ໄພ</translation>
 <translation id="3435896845095436175">ເປີດໃຊ້ງານ</translation>
 <translation id="3438829137925142401">ໃຊ້ລະຫັດຜ່ານທີ່ບັນທຶກໄວ້ໃນບັນຊີ Google ຂອງທ່ານ</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -981,6 +984,7 @@
 <translation id="4594403342090139922">ປ່ຽນ​ກັບ​ຄືນຄໍາສັ່ງລຶບ</translation>
 <translation id="4597348597567598915">ຂະໜາດ 8</translation>
 <translation id="4600854749408232102">C6/C5 (ຊອງຈົດໝາຍ)</translation>
+<translation id="4606870351894164739">ມີຜົນກະທົບ</translation>
 <translation id="4628948037717959914">ຮູບຖ່າຍ</translation>
 <translation id="4631649115723685955">ເຊື່ອມໂຍງເງິນຄືນແລ້ວ</translation>
 <translation id="4636930964841734540">ຂໍ້​ມູນ</translation>
@@ -1044,6 +1048,8 @@
 <translation id="4813512666221746211">ເຄືອຂ່າຍຜິດພາດ</translation>
 <translation id="4816492930507672669">ຈັດພໍດີກັບຫນ້າ</translation>
 <translation id="4819347708020428563">ແກ້ໄຂຄຳອະທິບາຍຄວາມເຫັນໃນມຸມມອງເລີ່ມຕົ້ນບໍ?</translation>
+<translation id="4825507807291741242">ຊົງພະລັງ</translation>
+<translation id="4838327282952368871">ຊວນຝັນ</translation>
 <translation id="484462545196658690">ອັດຕະໂນມັດ</translation>
 <translation id="4850886885716139402">ເບິ່ງ</translation>
 <translation id="485316830061041779">ພາສາເຢຍລະມັນ</translation>
@@ -1202,6 +1208,7 @@
 <translation id="5398772614898833570">ບລັອກໂຄສະນາໄວ້ແລ້ວ</translation>
 <translation id="5400836586163650660">ສີເທົາ</translation>
 <translation id="540969355065856584">ເຊີບເວີນີ້ບໍ່ສາມາດພິສູດໄດ້ວ່າ ມັນແມ່ນ <ph name="DOMAIN" />; ໃບຢັ້ງຢືນຄວາມປອດໄພຂອງມັນໃຊ້​ບໍ່​ໄດ້​ໃນ​ເວ​ລາ​ນີ້. ອັນນີ້ອາດຈະເຮັດໃຫ້ເກີດມີການປັບຕັ້ງຄ່າຜິດ ຫຼືຜູ້ໂຈມຕີອາດຈະດັກເອົາການເຊື່ອມຕໍ່ຂອງທ່ານ.</translation>
+<translation id="541143247543991491">ຄລາວ (ທົ່ວລະບົບ)</translation>
 <translation id="541416427766103491">ສະແຕັກເກີ້ 4</translation>
 <translation id="5421136146218899937">ລຶບຂໍ້ມູນການທ່ອງເນັດ...</translation>
 <translation id="5426179911063097041"><ph name="SITE" /> ຕ້ອງການສົ່ງການແຈ້ງເຕືອນໃຫ້ທ່ານ</translation>
@@ -1709,6 +1716,7 @@
       &lt;li&gt;ເຂົ້າເບິ່ງ &lt;a href="https://support.google.com/chrome/answer/6098869"&gt;ສູນຊ່ວຍເຫຼືອ Chrome&lt;/a&gt; ເພື່ອຮຽນຮູ້ວິທີລຶບຊອບແວອອກຈາກຄອມພິວເຕີຂອງທ່ານຢ່າງຖາວອນ
       &lt;/ol&gt;</translation>
 <translation id="741007362987735528">Wide-Format</translation>
+<translation id="7410471291937727359">ໜ້າຮັກ</translation>
 <translation id="7416351320495623771">ຈັດການລະຫັດຜ່ານ...</translation>
 <translation id="7419106976560586862">ຊ່ອງທາງໂປຣໄຟລ໌</translation>
 <translation id="7437289804838430631">ເພີ່ມຂໍ້ມູນຕິດຕໍ່</translation>
@@ -2132,6 +2140,7 @@
 <translation id="9020542370529661692">ໜ້ານີ້ຖືກໂອນໄປຫາ <ph name="TARGET_LANGUAGE" /></translation>
 <translation id="9020742383383852663">A8</translation>
 <translation id="9025348182339809926">(ໃຊ້ບໍ່ໄດ້)</translation>
+<translation id="9030265603405983977">ຂາວດຳ</translation>
 <translation id="9035022520814077154">ຄວາມປອດໄພຂັດຂ້ອງ</translation>
 <translation id="9038649477754266430">ໃຊ້ການບໍລິການຄາດເດົາເພື່ອໂຫຼດໜ້າຕ່າງໆໃຫ້ໄດ້ໄວຂຶ້ນ</translation>
 <translation id="9039213469156557790">ນອກ​ຈາກນັ້ນ, ໜ້ານີ້ມີຂໍ້ມູນອື່ນທີ່ບໍ່ປອດໄພນໍາ. ຜູ້ອື່ນສາມາດເບິ່ງຂໍ້ມູນນີ້ໄດ້ໃນຂະນະທີ່ສົ່ງໄປ ແລະຜູ້ໂຈມຕີສາມາດດັດແປງໄດ້ ເພື່ອປ່ຽນພຶດຕິກໍາຂອງໜ້າ.</translation>
@@ -2155,6 +2164,7 @@
 <translation id="91108059142052966">ນະໂຍບາຍຂອງຜູ້ເບິ່ງແຍງລະບົບປິດການນຳໃຊ້ການແບ່ງປັນໜ້າຈໍກັບ <ph name="APPLICATION_TITLE" /> ເມື່ອມີເນື້ອຫາສະແດງຢູ່</translation>
 <translation id="9114524666733003316">ກຳລັງຢືນຢັນບັດ...</translation>
 <translation id="9114581008513152754">ໂປຣແກຣມທ່ອງເວັບນີ້ບໍ່ໄດ້ຖືກຈັດການໂດຍບໍລິສັດ ຫຼື ອົງການຈັດຕັ້ງອື່ນ. ການເຄື່ອນໄຫວໃນອຸປະກອນນີ້ອາດຈະຖືກຈັດການຢູ່ນອກ Chrome ໄດ້. <ph name="BEGIN_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK" /></translation>
+<translation id="9117930699067497412">ສົດໃໝ່</translation>
 <translation id="9119042192571987207">ອັບໂຫລດແລ້ວ</translation>
 <translation id="9128016270925453879">ໂຫຼດນະໂຍບາຍແລ້ວ</translation>
 <translation id="9128870381267983090">ເຊື່ອມ​ຕໍ່ກັບ​ເຄືອ​ຂ່າຍ</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 215a0d60..992893c 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -662,6 +662,7 @@
 <translation id="3428151540071562330">Vienas arba keli „DnsOverHttpsTemplates“ serverio šablono URI yra netinkami ir nebus naudojami.</translation>
 <translation id="3431636764301398940">Išsaugoti šią kortelę šiame įrenginyje</translation>
 <translation id="3432601291244612633">Uždaryti puslapį</translation>
+<translation id="3435738964857648380">Sauga</translation>
 <translation id="3435896845095436175">Įgalinti</translation>
 <translation id="3438829137925142401">Naudoti „Google“ paskyroje išsaugotus slaptažodžius</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index b8e339c..028dd9a 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -659,6 +659,7 @@
 <translation id="3428151540071562330">Viens vai vairāki DnsOverHttpsTemplates servera veidņu identifikatori URI nav derīgi un netiks izmantoti.</translation>
 <translation id="3431636764301398940">Saglabāt šo karti šajā ierīcē</translation>
 <translation id="3432601291244612633">Aizvērt lapu</translation>
+<translation id="3435738964857648380">Drošība</translation>
 <translation id="3435896845095436175">Iespējot</translation>
 <translation id="3438829137925142401">Jūsu Google kontā glabāto paroļu izmantošana</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index d418e9e..88095ca 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Една или повеќе од шаблонските URI на серверот DnsOverHttpsTemplates се неважечки и нема да се користат.</translation>
 <translation id="3431636764301398940">Зачувај ја картичкава на уредов</translation>
 <translation id="3432601291244612633">Затвори ја страницата</translation>
+<translation id="3435738964857648380">Безбедност</translation>
 <translation id="3435896845095436175">Овозможи</translation>
 <translation id="3438829137925142401">Користете лозинки зачувани во вашата сметка на Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index d211e3f..e2b6952 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">ഈ പേജ് പറയുന്നത്:</translation>
 <translation id="153384715582417236">ഇപ്പോൾ ഇത്രമാത്രം ലഭ്യം</translation>
 <translation id="1536390784834419204">പേജ് വിവർത്തനം ചെയ്യുക</translation>
+<translation id="1539840569003678498">റിപ്പോർട്ട് അയച്ചു:</translation>
 <translation id="154408704832528245">ഡെലിവറി നൽകേണ്ട വിലാസം തിരഞ്ഞെടുക്കുക</translation>
 <translation id="1549470594296187301">ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ JavaScript പ്രവർത്തനക്ഷമമാക്കിയിരിക്കണം.</translation>
 <translation id="155039086686388498">എഞ്ചിനീയറിംഗ്-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">നീളം കുറഞ്ഞ അരിക് ആദ്യം</translation>
 <translation id="168693727862418163">ഈ നയ മൂല്യം അതിന്റെ സ്‌കീമയുമായി സാധൂകരിക്കാൻ കഴിയാത്തതിനാൽ അത് അവഗണിക്കപ്പെടും.</translation>
 <translation id="168841957122794586">സെർവർ സർട്ടിഫിക്കറ്റിൽ ഒരു ദുർബലമായ ഗൂഢഭാഷ കീ ഉൾപ്പെടുന്നു.</translation>
+<translation id="1696290444144917273">വെർച്വൽ കാർഡ് വിശദാംശങ്ങൾ കാണുക</translation>
 <translation id="1697532407822776718">എല്ലാം സജ്ജമായിക്കഴിഞ്ഞു!</translation>
 <translation id="1703835215927279855">ലെറ്റർ</translation>
 <translation id="1706954506755087368">{1,plural, =1{ഈ സെർവറിന് ഇത് <ph name="DOMAIN" /> ആണെന്ന് തെളിയിക്കാനായില്ല; അതിന്റെ സുരക്ഷാ സർട്ടിഫിക്കറ്റ് ഇന്നലെ മുതൽ സാധുവല്ല. തെറ്റായ കോൺഫിഗറേഷൻ കാരണമോ ഒരു ആക്രമണകാരി നിങ്ങളുടെ കണക്ഷനെ തടസ്സപ്പെടുത്തുന്നത് കൊണ്ടോ ആയിരിക്കാം ഇത് സംഭവിച്ചത്.}other{ഈ സെർവറിന് ഇത് <ph name="DOMAIN" /> ആണെന്ന് തെളിയിക്കാനായില്ല; അതിന്റെ സുരക്ഷാ സർട്ടിഫിക്കറ്റ് # ദിവസം മുതൽ സാധുവായിരിക്കില്ല. തെറ്റായ കോൺഫിഗറേഷൻ കാരണമോ ഒരു ആക്രമണകാരി നിങ്ങളുടെ കണക്ഷനെ തടസ്സപ്പെടുത്തുന്നത് കൊണ്ടോ ആയിരിക്കാം ഇത് സംഭവിച്ചത്.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">മെയിൽബോക്സ് 3</translation>
 <translation id="1718029547804390981">അനോട്ടേറ്റ് ചെയ്യാനാവുന്നതിലും വളരെ വലുതാണ് ഈ ഡോക്യുമെൻ്റ്</translation>
 <translation id="1721424275792716183">* ഫീൽഡ് ആവശ്യമാണ്</translation>
+<translation id="1727613060316725209">സാധുതയുള്ള സർട്ടിഫിക്കറ്റാണ്</translation>
 <translation id="1727741090716970331">സാധുവായ കാർഡ് നമ്പർ ചേർക്കുക</translation>
 <translation id="1728677426644403582">നിങ്ങൾ ഒരു വെബ് പേജിന്റെ ഉറവിടമാണ് കാണുന്നത്</translation>
 <translation id="173080396488393970">ഇത്തരത്തിലുള്ള കാർഡ് അനുയോജ്യമല്ല</translation>
@@ -654,6 +657,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates സെർവർ ടെംപ്ലേറ്റ് URI-കളിൽ ഒന്നോ അതിലധികമോ അസാധുവാണ്, അവ ഉപയോഗിക്കില്ല.</translation>
 <translation id="3431636764301398940">ഈ ഉപകരണത്തിലേക്ക് ഈ കാർഡ് സംരക്ഷിക്കുക</translation>
 <translation id="3432601291244612633">പേജ് അടയ്ക്കുക</translation>
+<translation id="3435738964857648380">സുരക്ഷ</translation>
 <translation id="3435896845095436175">തയ്യാറാക്കുക</translation>
 <translation id="3438829137925142401">നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിച്ചിട്ടുള്ള പാസ്‌വേഡുകൾ ഉപയോഗിക്കുക</translation>
 <translation id="3443726618221119081">ജുറോ-കു-കായ്</translation>
@@ -697,6 +701,7 @@
 <translation id="3586931643579894722">വിശദാംശങ്ങൾ മറയ്‌ക്കുക‍‌</translation>
 <translation id="3587738293690942763">മദ്ധ്യം</translation>
 <translation id="3590643883886679995">നിങ്ങൾ അദൃശ്യ മോഡിൽ നിന്ന് പുറത്തുകടന്ന ശേഷം സൈൻ ഇൻ ഡാറ്റ ഈ ഉപകരണത്തിൽ സംഭരിക്കും.</translation>
+<translation id="359126217934908072">മാസം/വർഷം:</translation>
 <translation id="3592413004129370115">ഇറ്റാലിയൻ (എൻവലപ്പ്)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">ആപ്പ് നിങ്ങളുടെ അഡ്‌മിൻ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു</translation>
@@ -752,6 +757,7 @@
 <translation id="3781428340399460090">ഹോട്ട് പിങ്ക്</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">Bluetooth ഉപകരണങ്ങൾ</translation>
+<translation id="3787675388804467730">വെർച്വൽ കാർഡ് നമ്പർ</translation>
 <translation id="3787705759683870569"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" />-ൽ അവസാനിക്കുന്നു</translation>
 <translation id="3789155188480882154">വലുപ്പം 16</translation>
 <translation id="3789841737615482174">ഇന്‍സ്റ്റാൾ ചെയ്യുക</translation>
@@ -1549,6 +1555,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">വായന എളുപ്പമാക്കുന്നതിന് Chrome ഈ പേജ് ലളിതമാക്കി. സുരക്ഷിതമല്ലാത്ത കണക്ഷനിലൂടെ Chrome ഒറിജിനൽ പേജ് വീണ്ടെടുത്തു.</translation>
 <translation id="6891596781022320156">നയ നില പിന്തുണയ്ക്കുന്നില്ല.</translation>
+<translation id="6895143722905299846">വെർച്വൽ നമ്പർ:</translation>
 <translation id="6895330447102777224">നിങ്ങളുടെ കാർഡ് സ്ഥിരീകരിച്ചു</translation>
 <translation id="6897140037006041989">ഉപയോക്തൃ ഏജന്‍റ്</translation>
 <translation id="6898699227549475383">ഓര്‍‌ഗനൈസേഷന്‍‌ (O)</translation>
@@ -1587,6 +1594,7 @@
 <translation id="7014741021609395734">സൂം നില</translation>
 <translation id="7016992613359344582">ഈ നിരക്കുകൾ ഒറ്റത്തവണ അടയ്ക്കുന്നതോ അല്ലെങ്കിൽ ആവർത്തിക്കുന്നവയോ ആവാം, ഒപ്പം വ്യക്തമല്ലായിരിക്കാം.</translation>
 <translation id="7029809446516969842">പാസ്‌വേഡുകള്‍</translation>
+<translation id="7030436163253143341">സർട്ടിഫിക്കറ്റ് അസാധുവാണ്</translation>
 <translation id="7031646650991750659">ഏതൊക്കെ Google Play ആപ്പുകൾ നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്‍തിട്ടുണ്ട് എന്നത്</translation>
 <translation id="7050187094878475250">നിങ്ങൾ <ph name="DOMAIN" /> എന്നതിലെത്താൻ ശ്രമിച്ചു, എന്നാൽ തീരെ വിശ്വാസയോഗ്യമല്ലാത്ത ഒരു കാലാവധിയുള്ള സർട്ടിഫിക്കറ്റാണ് സെർവർ കാണിക്കുന്നത്.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{ഈ കാർഡ് ഇപ്പോൾ സംരക്ഷിക്കാനാവില്ല}other{ഈ കാർഡുകൾ ഇപ്പോൾ സംരക്ഷിക്കാനാവില്ല}}</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index 36e6bbb..b63e7b8 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -508,6 +508,7 @@
 <translation id="2850739647070081192">Урилга (Дугтуй)</translation>
 <translation id="2856444702002559011">Халдагчид <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />-с таны нууц үг, мессеж, кредит карт зэрэг мэдээллийг хулгайлахаар оролдож байж болзошгүй. <ph name="BEGIN_LEARN_MORE_LINK" />Дэлгэрэнгүй үзэх<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="2859806420264540918">Энэ сайт төвөгтэй эсвэл хуурамч зар харуулдаг.</translation>
+<translation id="287596039013813457">Нөхөрсөг</translation>
 <translation id="2876489322757410363">Гадны аппликэйшнээр төлбөр төлөхийн тулд Нууцлалтай горимоос гарч байна. Үргэлжлүүлэх үү?</translation>
 <translation id="2878197950673342043">Постерын нугалаа</translation>
 <translation id="2878424575911748999">A1</translation>
@@ -606,6 +607,7 @@
 <translation id="3229041911291329567">Таны төхөөрөмж болон хөтчийн хувилбарын талаарх мэдээлэл</translation>
 <translation id="323107829343500871"><ph name="CREDIT_CARD" />-н карт баталгаажуулалтын кодыг оруулна уу</translation>
 <translation id="3234666976984236645">Чухал агуулга бүхий мэдээллийг үргэлж илрүүлэх</translation>
+<translation id="3249845759089040423">Дэгжин</translation>
 <translation id="3252266817569339921">Франц</translation>
 <translation id="3266793032086590337">Утга (зөрчил)</translation>
 <translation id="3268451620468152448">Цонхнуудыг нээх</translation>
@@ -662,6 +664,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates серверийн загварын нэг буюу түүнээс олон URI нь буруу байгаа бөгөөд тэднийг ашиглахгүй.</translation>
 <translation id="3431636764301398940">Энэ картыг энэ төхөөрөмжид хадгалах</translation>
 <translation id="3432601291244612633">Хуудсыг хаах</translation>
+<translation id="3435738964857648380">Нууцлал</translation>
 <translation id="3435896845095436175">Идэвхжүүл</translation>
 <translation id="3438829137925142401">Google Бүртгэлдээ хадгалсан нууц үгсээ ашиглах</translation>
 <translation id="3443726618221119081">Жууро-Ку-Кай</translation>
@@ -982,6 +985,7 @@
 <translation id="4594403342090139922">Устгах үйлдлийг буцаах</translation>
 <translation id="4597348597567598915">Хэмжээ 8</translation>
 <translation id="4600854749408232102">C6/C5 (Дугтуй)</translation>
+<translation id="4606870351894164739">Нөлөөтэй</translation>
 <translation id="4628948037717959914">Зураг</translation>
 <translation id="4631649115723685955">Бэлэн мөнгө олгох маягтыг холбосон</translation>
 <translation id="4636930964841734540">Мэдээлэл</translation>
@@ -1045,6 +1049,8 @@
 <translation id="4813512666221746211">Сүлжээний алдаа</translation>
 <translation id="4816492930507672669">Хуудсанд тааруулах</translation>
 <translation id="4819347708020428563">Тэмдэглэгээг өгөгдмөлөөр харахаар засах уу?</translation>
+<translation id="4825507807291741242">Хүчирхэг</translation>
+<translation id="4838327282952368871">Зүүд шиг</translation>
 <translation id="484462545196658690">Автомат</translation>
 <translation id="4850886885716139402">Харах</translation>
 <translation id="485316830061041779">Герман</translation>
@@ -1203,6 +1209,7 @@
 <translation id="5398772614898833570">Зарыг блоклосон</translation>
 <translation id="5400836586163650660">Саарал</translation>
 <translation id="540969355065856584">Энэ сервер нь <ph name="DOMAIN" /> гэдгээ баталж чадсангүй. Учир нь серверийн аюулгүй байдлын гэрчилгээ нь одоогоор хүчин төгөлдөр бус байна. Энэ алдаа нь тохиргоо буруу хийгдсэнээс, эсвэл халдагч таны холболтонд саад учруулж байгаагаас шалтгаалж болзошгүй.</translation>
+<translation id="541143247543991491">Үүл (систем даяар)</translation>
 <translation id="541416427766103491">Гарах цаасыг зэрэгцүүлэх тавцан 4</translation>
 <translation id="5421136146218899937">Хайлт хийсэн тухай мэдээллийг арилгах...</translation>
 <translation id="5426179911063097041"><ph name="SITE" /> танд мэдэгдэл илгээх хүсэлтэй байна</translation>
@@ -1709,6 +1716,7 @@
       &lt;li&gt;Тус программ хангамжийг компьютерээсээ хэрхэн бүрмөсөн устгах талаар мэдэж авахын тулд &lt;a href="https://support.google.com/chrome/answer/6098869"&gt;Chrome-н тусламжийн төвд&lt;/a&gt;-д зочилно уу
       &lt;/ol&gt;</translation>
 <translation id="741007362987735528">Өргөн-Формат</translation>
+<translation id="7410471291937727359">Хайр татам</translation>
 <translation id="7416351320495623771">Нууц үгийг удирдах...</translation>
 <translation id="7419106976560586862">Профайлын зам</translation>
 <translation id="7437289804838430631">Харилцагчийн мэдээлэл нэмэх</translation>
@@ -2132,6 +2140,7 @@
 <translation id="9020542370529661692">Энэ хуудсыг <ph name="TARGET_LANGUAGE" /> руу хөрвүүлсэн байна.</translation>
 <translation id="9020742383383852663">A8</translation>
 <translation id="9025348182339809926">(Хүчингүй)</translation>
+<translation id="9030265603405983977">Дан өнгөтэй</translation>
 <translation id="9035022520814077154">Аюулгүй байдлын алдаа</translation>
 <translation id="9038649477754266430">Хуудсуудыг илүү хурдан ачааллахын тулд таамаглалын үйлчилгээг ашиглана уу</translation>
 <translation id="9039213469156557790">Цаашилбал, энэ хуудас нь аюултай бусад үүсвэр агуулж байна. Ийм төрлийн үүсвэрийг дамжуулж байх явцад бусад хүмүүс харах, мөн халдагчийн хуудасны функцийг өөрчлөх хэрэгсэл болж болзошгүй.</translation>
@@ -2155,6 +2164,7 @@
 <translation id="91108059142052966">Администраторын бодлого нь нууцлалтай контент харагдах үед <ph name="APPLICATION_TITLE" />-тай дэлгэц хуваалцахыг идэвхгүй болгоно</translation>
 <translation id="9114524666733003316">Картыг баталгаажуулж байна...</translation>
 <translation id="9114581008513152754">Энэ хөтчийг компани эсвэл бусад байгууллагаас удирддаггүй. Энэ төхөөрөмж дээрх үйл ажиллагааг Chrome-с гадуур удирддаг байж болзошгүй. <ph name="BEGIN_LINK" />Нэмэлт мэдээлэл авах<ph name="END_LINK" /></translation>
+<translation id="9117930699067497412">Шинэхэн</translation>
 <translation id="9119042192571987207">Байршуулсан</translation>
 <translation id="9128016270925453879">Бодлогуудыг ачаалсан</translation>
 <translation id="9128870381267983090">Сүлжээнд холбогдох</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 377ff80c..24e43ff 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">या पेजचे म्हणणे हे आहे की</translation>
 <translation id="153384715582417236">सध्या इतकेच</translation>
 <translation id="1536390784834419204">पेजचे भाषांतर करायचे आहे</translation>
+<translation id="1539840569003678498">अहवाल पाठवला:</translation>
 <translation id="154408704832528245">वितरणाचा पत्ता निवडा</translation>
 <translation id="1549470594296187301">हे वैशिष्‍ट्य वापरण्‍यासाठी JavaScript सक्षम करणे आवश्‍यक आहे.</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">शॉर्ट एज प्रथम</translation>
 <translation id="168693727862418163">हे धोरण मूल्य त्याच्या स्कीमासोबत प्रमाणित करता आले नाही आणि त्याच्याकडे दुर्लक्ष केले जाईल.</translation>
 <translation id="168841957122794586">सर्व्हर सर्टिफिकेटमध्ये एक कमकुवत क्रिप्टोग्राफिक की आहे.</translation>
+<translation id="1696290444144917273">व्हर्च्युअल कार्डचे तपशील पहा</translation>
 <translation id="1697532407822776718">तुम्ही पूर्णपणे तयार आहात!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा सर्टिफिकेट उद्यापासून मानले जाईल. हे कदाचित एका चुकीच्या कॉंफिगरेशनमुळे किंवा हल्लेखोराने तुमचे कनेक्शन इंटरसेप्ट केल्यामुळे झाले असू शकते.}other{हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा सर्टिफिकेट पुढील # दिवसांपासून मानले जाईल. हे कदाचित एका चुकीच्या कॉंफिगरेशनमुळे किंवा हल्लेखोराने तुमचे कनेक्शन इंटरसेप्ट केल्यामुळे झाले असू शकते.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">मेलबॉक्स ३</translation>
 <translation id="1718029547804390981">भाष्य करण्यासाठी दस्तऐवज खूपच मोठे आहे</translation>
 <translation id="1721424275792716183">* फील्ड आवश्यक आहे</translation>
+<translation id="1727613060316725209">सर्टिफिकेट योग्य आहे</translation>
 <translation id="1727741090716970331">वैध कार्ड नंबर जोडा</translation>
 <translation id="1728677426644403582">तुम्ही वेब पेजचा स्रोत पाहत आहात</translation>
 <translation id="173080396488393970">या प्रकारच्या कार्डला सहाय्य नाही</translation>
@@ -658,6 +661,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates चे एकाहून अधिक सर्व्हर टेम्पलेट URI चुकीचे आहेत आणि ते वापरले जाणार नाहीत.</translation>
 <translation id="3431636764301398940">या डिव्हाइसवर हे कार्ड सेव्ह करा</translation>
 <translation id="3432601291244612633">पेज बंद करा</translation>
+<translation id="3435738964857648380">सुरक्षितता</translation>
 <translation id="3435896845095436175">सुरू करा</translation>
 <translation id="3438829137925142401">तुमच्या Google खाते मध्ये सेव्ह केलेले पासवर्ड वापरा</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -700,6 +704,7 @@
 <translation id="3586931643579894722">तपशील लपवा</translation>
 <translation id="3587738293690942763">मध्य</translation>
 <translation id="3590643883886679995">तुम्ही गुप्त मोडमधून बाहेर पडल्यानंतर साइन-इन डेटा या डिव्हाइसवर सेव्ह केला जाईल.</translation>
+<translation id="359126217934908072">महिना/वर्ष:</translation>
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">तुमच्या अ‍ॅडमिनिस्ट्रेटरने अ‍ॅप्लिकेशन ब्लॉक केले आहे</translation>
@@ -755,6 +760,7 @@
 <translation id="3781428340399460090">गडद गुलाबी</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">ब्लूटूथ डिव्हाइस</translation>
+<translation id="3787675388804467730">व्हर्च्युअल कार्ड नंबर</translation>
 <translation id="3787705759683870569">समाप्त होते: <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">आकार १६</translation>
 <translation id="3789841737615482174">स्थापना करा</translation>
@@ -1555,6 +1561,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">हे पेज वाचणे सोपे करण्यासाठी Chrome ने ते सुलभ केले आहे. Chrome ने मूळ पेज असुरक्षित कनेक्शनवरून पुन्हा मिळवले आहे.</translation>
 <translation id="6891596781022320156">धोरण स्तर समर्थित नाही.</translation>
+<translation id="6895143722905299846">व्हर्च्युअल नंबर:</translation>
 <translation id="6895330447102777224">आपल्या कार्डची पुष्टी केली</translation>
 <translation id="6897140037006041989">वापरकर्ता एजंट</translation>
 <translation id="6898699227549475383">संस्थात्मक (O)</translation>
@@ -1593,6 +1600,7 @@
 <translation id="7014741021609395734">झूम करण्याची पातळी</translation>
 <translation id="7016992613359344582">हे शुल्क एकाच वेळी द्यायचे किंवा आवर्ती असू शकतात आणि स्पष्ट नसू शकतात.</translation>
 <translation id="7029809446516969842">पासवर्ड</translation>
+<translation id="7030436163253143341">सर्टिफिकेट चुकीचे आहे</translation>
 <translation id="7031646650991750659">तुम्ही कोणती Google Play ॲप्स इंस्टॉल केली आहेत</translation>
 <translation id="7050187094878475250">तुम्ही <ph name="DOMAIN" /> वर पोहोचण्याचा प्रयत्न केला, परंतु सर्व्हरने एक सर्टिफिकेट सादर केले आहे ज्याचा वैधता कालावधी हा विश्वासार्हतेसाठी खूप मोठा आहे.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{हे कार्ड आत्ता सेव्ह केले जाऊ शकत नाही}other{ही कार्डे आत्ता सेव्ह केली जाऊ शकत नाहीत}}</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index eab7b3d..5f2580e 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Satu atau beberapa URI templat pelayan DnsOverHttpsTemplates URI tidak sah dan tidak akan digunakan.</translation>
 <translation id="3431636764301398940">Simpan kad ini pada peranti ini</translation>
 <translation id="3432601291244612633">Tutup halaman</translation>
+<translation id="3435738964857648380">Keselamatan</translation>
 <translation id="3435896845095436175">Dayakan</translation>
 <translation id="3438829137925142401">Gunakan kata laluan yang disimpan dalam Akaun Google anda</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index 98384df4..baa1e45d 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -662,6 +662,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates ဆာဗာ နမူနာပုံစံ URI များအနက် တစ်ခုနှင့်အထက် မှားနေသဖြင့် အသုံးပြုမည်မဟုတ်ပါ။</translation>
 <translation id="3431636764301398940">ဤကဒ်ကို ဤစက်ပစ္စည်းတွင် သိမ်းရန်</translation>
 <translation id="3432601291244612633">စာမျက်နှာကို ပိတ်ရန်</translation>
+<translation id="3435738964857648380">လုံခြုံရေး</translation>
 <translation id="3435896845095436175">ဖွင့်ပေးရန်</translation>
 <translation id="3438829137925142401">သင်၏ Google Account တွင် သိမ်းထားသော စကားဝှက်များကို သုံးရန်</translation>
 <translation id="3443726618221119081">ဂျူရို ကုကိုင်</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb
index e058345..9d3f2a6 100644
--- a/components/strings/components_strings_ne.xtb
+++ b/components/strings/components_strings_ne.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">यो पृष्ठले यसो भन्छ</translation>
 <translation id="153384715582417236">अहिलेलाई यति मात्र!</translation>
 <translation id="1536390784834419204">यो पृष्ठ अनुवाद गर्नुहोस्</translation>
+<translation id="1539840569003678498">रिपोर्ट पठाइएको मिति र समय:</translation>
 <translation id="154408704832528245">डेलिभरी गर्ने ठेगाना छनौट गर्नुहोस्</translation>
 <translation id="1549470594296187301">यो सुविधा प्रयोग गर्न JavaScript सक्रिय गर्नुपर्छ।</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">पहिले छोटो किनारा</translation>
 <translation id="168693727862418163">यो नीतिको मान यसको स्किमासँग मिलेन। त्यसकारण यसलाई बेवास्ता गरिने छ।</translation>
 <translation id="168841957122794586">सर्भर प्रमाणपत्रले कमजोर क्रिप्टोग्राफिक कुञ्जी समावेश गर्छ।</translation>
+<translation id="1696290444144917273">भर्चुअल कार्डका विवरण हेर्नुहोस्</translation>
 <translation id="1697532407822776718">तपाईंहरू सबैले सेट हुनभयो!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{ यो सर्भरले यो <ph name="DOMAIN" /> हो भनेर प्रमाणित गर्न सकेन; यसको सुरक्षा प्रमाणपत्रलाई भोलिबाट मानिन्छ। गलत कन्फिगुरेसन वा कुनै आक्रमणकारीले तपाईँको जडानमा अवरोध गरिरहेको कारणले यसो भएको हुन सक्छ।}other{ यो सर्भरले यो <ph name="DOMAIN" /> हो भनेर प्रमाणित गर्न सकेन; यसको सुरक्षा प्रमाणपत्रलाई # दिनबाट शुरू हुन्छ भनेर मानिन्छ। गलत कन्फिगुरेसन वा कुनै आक्रमणकारीले तपाईँको जडानमा अवरोध गरिरहेको कारणले यसो भएको हुन सक्छ।}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">मेलबक्स ३</translation>
 <translation id="1718029547804390981">कागजात एनोटेसन गर्नै नमिल्ने गरी ठुलो छ</translation>
 <translation id="1721424275792716183">* क्षेत्र आवश्यक छ</translation>
+<translation id="1727613060316725209">प्रमाणपत्र वैध छ</translation>
 <translation id="1727741090716970331">कार्डको मान्य नम्बर थप्नुहोस्</translation>
 <translation id="1728677426644403582">तपाईं एउटा वेब पृष्ठको स्रोत हेर्दै हुनुहुन्छ</translation>
 <translation id="173080396488393970">यस प्रकारको कार्डलाई समर्थन छैन</translation>
@@ -655,6 +658,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates सर्भरका टेम्प्लेटका एक वा सोभन्दा बढी URI हरू अमान्य भएकाले तिनको प्रयोग गरिने छैन।</translation>
 <translation id="3431636764301398940">यस कार्डलाई यस यन्त्रमा सेभ गर्नुहोस्</translation>
 <translation id="3432601291244612633">पृष्ठ बन्द गर्नुहोस्</translation>
+<translation id="3435738964857648380">सुरक्षा</translation>
 <translation id="3435896845095436175">सक्षम बनाउनुहोस्</translation>
 <translation id="3438829137925142401">आफ्नो Google खातामा सुरक्षित गरिएका पासवर्डहरू प्रयोग गर्नुहोस्</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -698,6 +702,7 @@
 <translation id="3586931643579894722">विवरणहरू लुकाउनुहोस्</translation>
 <translation id="3587738293690942763">मध्य भाग</translation>
 <translation id="3590643883886679995">तपाईं इन्कोग्निटो मोडबाट बाहिरिएपछि साइन इन गर्न चाहिने डेटा यो डिभाइसमा भण्डारण गरिने छ।</translation>
+<translation id="359126217934908072">महिना/साल:</translation>
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">तपाईंका प्रशासकले रोक लगाउनुभएको एप</translation>
@@ -753,6 +758,7 @@
 <translation id="3781428340399460090">गाढा गुलाबी</translation>
 <translation id="3783418713923659662">मास्टरकार्ड</translation>
 <translation id="3784372983762739446">ब्लुटुथ उपकरणहरू</translation>
+<translation id="3787675388804467730">भर्चुअल कार्ड नम्बर</translation>
 <translation id="3787705759683870569"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /> मा म्याद सकिन्छ</translation>
 <translation id="3789155188480882154">आकार १६</translation>
 <translation id="3789841737615482174">स्थापना गर्नुहोस्</translation>
@@ -1418,6 +1424,7 @@
 <translation id="6289939620939689042">पृष्ठको रङ</translation>
 <translation id="6290238015253830360">तपाईंका सुझाव गरिएका लेखहरू यहाँ देखिन्छन्</translation>
 <translation id="6293309776179964942">JIS B5</translation>
+<translation id="6295618774959045776">CVC:</translation>
 <translation id="6302269476990306341">Chrome को Google सहायक रोकिँदै छ</translation>
 <translation id="6305205051461490394"><ph name="URL" /> पहुँच गर्न सकिँदैन।</translation>
 <translation id="6312113039770857350">वेबपृष्ठ उपलब्ध छैन</translation>
@@ -1550,6 +1557,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome ले यो पृष्ठ पढ्न अझ सजिलो बनाउन यसलाई सरलीकृत गर्‍यो। Chrome ले एउटा असुरक्षित इन्टरनेटमार्फत मूल पृष्ठ पुनः प्राप्त गर्‍यो।</translation>
 <translation id="6891596781022320156">नीति तह समर्थित छैन।</translation>
+<translation id="6895143722905299846">भर्चुअल कार्ड नम्बर:</translation>
 <translation id="6895330447102777224">तपाईंको कार्डको पुष्टि भयो</translation>
 <translation id="6897140037006041989">प्रयोगकर्ता एजेन्ट</translation>
 <translation id="6898699227549475383">संगठन (सं)</translation>
@@ -1588,6 +1596,7 @@
 <translation id="7014741021609395734">जुमको स्तर</translation>
 <translation id="7016992613359344582">यी शुल्कहरू एक पटक तिरे पुग्ने वा बारम्बार तिर्नु पर्ने हुन सक्छन् र यस सम्बन्धमा स्पष्टता नहुन पनि सक्छ।</translation>
 <translation id="7029809446516969842">पासवर्डहरू</translation>
+<translation id="7030436163253143341">प्रमाणपत्र वैध छैन</translation>
 <translation id="7031646650991750659">तपाईंले स्थापना गर्नुभएका Google Play एपहरू</translation>
 <translation id="7050187094878475250">तपाईं <ph name="DOMAIN" /> मा पुग्न प्रयास गर्नुभयो, तर सर्भरले एउटा प्रमाणपत्र प्रस्तुत गर्दछ जसको वैधानिकता अवधि भरोसा योग्य हुन निकै लामो छ।</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{यो कार्ड अहिले सुरक्षित गर्न सकिँदैन}other{यी कार्डहरू अहिले सुरक्षित गर्न सकिँदैन}}</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 64b856e..2cea3f2 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -651,6 +651,7 @@
 <translation id="3428151540071562330">Een of meer van de servertemplate-URI's voor DnsOverHttpsTemplates zijn ongeldig en worden niet gebruikt.</translation>
 <translation id="3431636764301398940">Deze creditcard opslaan op dit apparaat</translation>
 <translation id="3432601291244612633">Pagina sluiten</translation>
+<translation id="3435738964857648380">Beveiliging</translation>
 <translation id="3435896845095436175">Aanzetten</translation>
 <translation id="3438829137925142401">Wachtwoorden gebruiken die zijn opgeslagen in je Google-account</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index c72983c..5f33654 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Én eller flere av URI-ene for DnsOverHttpsTemplates-tjenermaler er ugyldige og blir ikke brukt.</translation>
 <translation id="3431636764301398940">Lagre dette kortet på denne enheten</translation>
 <translation id="3432601291244612633">Lukk siden</translation>
+<translation id="3435738964857648380">Sikkerhet</translation>
 <translation id="3435896845095436175">Slå på</translation>
 <translation id="3438829137925142401">Bruk passord som er lagret i Google-kontoen din</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index 5f613cf..23b216e 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -650,6 +650,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates ସର୍ଭର୍ ଟେମ୍ପଲେଟ୍‍ର ଏକ କିମ୍ବା ଏକାଧିକ URI ଅବୈଧ ଅଟେ ଏବଂ ଏହା ବ୍ୟବହାର କରାଯିବ ନାହିଁ।</translation>
 <translation id="3431636764301398940">ଏହି ଡିଭାଇସ୍‌ରେ କାର୍ଡଟିକୁ ସେଭ୍ କରନ୍ତୁ</translation>
 <translation id="3432601291244612633">ପୃଷ୍ଠାକୁ ବନ୍ଦ କରନ୍ତୁ</translation>
+<translation id="3435738964857648380">ସୁରକ୍ଷା</translation>
 <translation id="3435896845095436175">ସକ୍ଷମ କରନ୍ତୁ</translation>
 <translation id="3438829137925142401">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସେଭ୍ କରାଯାଇଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକ ବ୍ୟବହାର କରନ୍ତୁ</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -1161,6 +1162,7 @@
 <translation id="5314967030527622926">ବୁକ୍‌ଲେଟ୍ ମାର୍କର୍</translation>
 <translation id="5316812925700871227">ଡାହାଣରୁ ବାମକୁ ଘୂରାନ୍ତୁ</translation>
 <translation id="5317780077021120954">ସଞ୍ଚୟ</translation>
+<translation id="5321288445143113935">ବଡ଼ କରାଯାଇଛି</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="NUM_MATCHES" /> ମଧ୍ୟରେ <ph name="MATCH_POSITION" /></translation>
 <translation id="5324080437450482387">ଯୋଗାଯୋଗ ସୂଚନା ଚୟନ କରନ୍ତୁ</translation>
 <translation id="5327248766486351172">ନାମ</translation>
@@ -1386,6 +1388,7 @@
 <translation id="6218753634732582820">Chromiumରୁ ଠିକଣା କାଢ଼ି ଦେବେ?</translation>
 <translation id="622039917539443112">ସମାନ୍ତରାଳ ଫୋଲ୍ଡ</translation>
 <translation id="6221345481584921695">Google ସେଫ୍ ବ୍ରାଉଜିଂ, ସମ୍ପ୍ରତି <ph name="SITE" />ରେ <ph name="BEGIN_LINK" />ମାଲ୍‌ୱେର୍ ଚିହ୍ନଟ କରିଛି<ph name="END_LINK" />। ପ୍ରାୟତଃ ସୁରକ୍ଷିତ ରହୁଥିବା ୱେବ୍‌ସାଇଟ୍‌ଗୁଡ଼ିକ ବେଳେବେଳେ ମାଲ୍‌ୱେର୍ ଦ୍ୱାରା ସଂକ୍ରମିତ ହୋଇଥାନ୍ତି। ଏହି ଦ୍ୱେଷଯୁକ୍ତ ବିଷୟବସ୍ତୁ <ph name="SUBRESOURCE_HOST" />ରୁ ଆସିଥାଏ, ଯାହା ଏକ ଜଣାଶୁଣା ମାଲ୍‌ୱେର୍ ବିତରକ ଅଟେ।</translation>
+<translation id="6232619828520900263">ID ବର୍ତ୍ତମାନ ଅବୈଧ ଅଟେ</translation>
 <translation id="6234122620015464377">ପ୍ରତ୍ୟେକ ଡକ୍ୟୁମେଣ୍ଟ ପରେ ଟ୍ରିମ୍ କରନ୍ତୁ</translation>
 <translation id="6240447795304464094">Google Pay ଲୋଗୋ</translation>
 <translation id="6241121617266208201">ପ୍ରସ୍ତାବଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index 8435ca5..f86f5a9 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -651,6 +651,7 @@
 <translation id="3428151540071562330">ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ DnsOverHttpsTemplates ਸਰਵਰ ਟੈਮਪਲੇਟ URI ਅਵੈਧ ਹਨ ਅਤੇ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾਵੇਗੀ।</translation>
 <translation id="3431636764301398940">ਇਸ ਕਾਰਡ ਨੂੰ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕਰੋ</translation>
 <translation id="3432601291244612633">ਪੰਨਾ ਬੰਦ ਕਰੋ</translation>
+<translation id="3435738964857648380">ਸੁਰੱਖਿਆ</translation>
 <translation id="3435896845095436175">ਚਾਲੂ ਕਰੋ</translation>
 <translation id="3438829137925142401">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡ ਵਰਤੋ</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index 5d89acf..fd634e1 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -657,6 +657,7 @@
 <translation id="3428151540071562330">Co najmniej jeden identyfikator URI szablonu serwera DnsOverHttpsTemplates jest nieprawidłowy i nie zostanie użyty.</translation>
 <translation id="3431636764301398940">Zapisz tę kartę na tym urządzeniu</translation>
 <translation id="3432601291244612633">Zamknij stronę</translation>
+<translation id="3435738964857648380">Bezpieczeństwo</translation>
 <translation id="3435896845095436175">Włącz</translation>
 <translation id="3438829137925142401">Użyj haseł zapisanych na koncie Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index e96155a..8089f81 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -655,6 +655,7 @@
 <translation id="3428151540071562330">Um ou mais dos URIs de modelo de servidor da DnsOverHttpsTemplates é inválido e não será usado.</translation>
 <translation id="3431636764301398940">Salvar este cartão neste dispositivo</translation>
 <translation id="3432601291244612633">Fechar página</translation>
+<translation id="3435738964857648380">Segurança</translation>
 <translation id="3435896845095436175">Ativar</translation>
 <translation id="3438829137925142401">Usar senhas salvas na sua Conta do Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index d4f94d3..287c2ad 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Um ou mais URIs de modelos do servidor DnsOverHttpsTemplates são inválidos e não serão utilizados.</translation>
 <translation id="3431636764301398940">Guardar este cartão neste dispositivo</translation>
 <translation id="3432601291244612633">Fechar página</translation>
+<translation id="3435738964857648380">Segurança</translation>
 <translation id="3435896845095436175">Ativar</translation>
 <translation id="3438829137925142401">Utilizar palavras-passe guardadas na sua Conta Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 654e8732..528f0661 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -659,6 +659,7 @@
 <translation id="3428151540071562330">Una sau mai multe dintre adresele URI pentru șabloanele de server DnsOverHttpsTemplates este nevalidă și nu va fi folosită.</translation>
 <translation id="3431636764301398940">Salvează cardul pe acest dispozitiv</translation>
 <translation id="3432601291244612633">Închide pagina</translation>
+<translation id="3435738964857648380">Securitate</translation>
 <translation id="3435896845095436175">Activează</translation>
 <translation id="3438829137925142401">Folosește parolele salvate în Contul tău Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index 24076f72..e016557 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -654,6 +654,7 @@
 <translation id="3428151540071562330">Один или несколько серверных шаблонов URI DnsOverHttpsTemplates недействительны и не будут использоваться.</translation>
 <translation id="3431636764301398940">Сохранить карту на этом устройстве</translation>
 <translation id="3432601291244612633">Закрыть страницу</translation>
+<translation id="3435738964857648380">Безопасность</translation>
 <translation id="3435896845095436175">Включить</translation>
 <translation id="3438829137925142401">Использовать пароли, сохраненные в аккаунте Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index 8f33d37..7282a69 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -659,6 +659,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates සේවාදායක අච්චු URI-වලින් එකක් හෝ වැඩි ගණනක් අවලංගු බැවින් භාවිත නොකෙරේ.</translation>
 <translation id="3431636764301398940">මෙම උපාංගයට මෙම කාඩ්පත සුරකින්න</translation>
 <translation id="3432601291244612633">පිටුව වසන්න</translation>
+<translation id="3435738964857648380">ආරක්ෂක</translation>
 <translation id="3435896845095436175">සක්‍රිය කරන්න</translation>
 <translation id="3438829137925142401">ඔබේ Google ගිණුම තුළ සුරැකි මුරපද භාවිත කරන්න</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 77b8310..3426877f9 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -652,6 +652,7 @@
 <translation id="3428151540071562330">Minimálne jeden identifikátor URI šablón servera DnsOverHttpsTemplates je neplatný a nebude použitý.</translation>
 <translation id="3431636764301398940">Uložiť túto kartu na zariadení</translation>
 <translation id="3432601291244612633">Zavrieť stránku</translation>
+<translation id="3435738964857648380">Bezpečnosť</translation>
 <translation id="3435896845095436175">Aktivovať</translation>
 <translation id="3438829137925142401">Použiť heslá uložené vo vašom účte Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 72b2037..096df80dd 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Eden ali več URI-jev strežniških predlog pravilnika DnsOverHttpsTemplates je neveljaven in ne bo uporabljen.</translation>
 <translation id="3431636764301398940">Shrani to kartico v tej napravi</translation>
 <translation id="3432601291244612633">Zapri stran</translation>
+<translation id="3435738964857648380">Varnost</translation>
 <translation id="3435896845095436175">Omogoči</translation>
 <translation id="3438829137925142401">Uporabite gesla, shranjena v računu Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb
index bc63d8e2..e3f85e3 100644
--- a/components/strings/components_strings_sq.xtb
+++ b/components/strings/components_strings_sq.xtb
@@ -655,6 +655,7 @@
 <translation id="3428151540071562330">Një ose disa nga URI-të e shablloneve të serverit DnsOverHttpsTemplates janë të pavlefshme dhe nuk do të përdoren.</translation>
 <translation id="3431636764301398940">Ruaje këtë kartë në këtë pajisje</translation>
 <translation id="3432601291244612633">Mbyll faqen</translation>
+<translation id="3435738964857648380">Siguria</translation>
 <translation id="3435896845095436175">Aktivizo</translation>
 <translation id="3438829137925142401">Përdor fjalëkalimet e ruajtura në "Llogarinë tënde të Google"</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index b661ce9..1eb0794 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Jedan ili više URI-ja šablona DnsOverHttpsTemplates servera su nevažeći i neće se koristiti.</translation>
 <translation id="3431636764301398940">Sačuvaj ovu karticu na ovom uređaju</translation>
 <translation id="3432601291244612633">Zatvori stranicu</translation>
+<translation id="3435738964857648380">Bezbednost</translation>
 <translation id="3435896845095436175">Omogući</translation>
 <translation id="3438829137925142401">Koristite lozinke sačuvane na Google nalogu</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index ad31d3c8..0629e3d 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Један или више URI-ја шаблона DnsOverHttpsTemplates сервера су неважећи и неће се користити.</translation>
 <translation id="3431636764301398940">Сачувај ову картицу на овом уређају</translation>
 <translation id="3432601291244612633">Затвори страницу</translation>
+<translation id="3435738964857648380">Безбедност</translation>
 <translation id="3435896845095436175">Омогући</translation>
 <translation id="3438829137925142401">Користите лозинке сачуване на Google налогу</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index cff021e6..7d302393 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Minst en av URI:erna i servermallen för DnsOverHttpsTemplates är ogiltig och kommer inte att användas.</translation>
 <translation id="3431636764301398940">Spara kortet på enheten</translation>
 <translation id="3432601291244612633">Stäng sidan</translation>
+<translation id="3435738964857648380">Säkerhet</translation>
 <translation id="3435896845095436175">Aktivera</translation>
 <translation id="3438829137925142401">Använd lösenord som har sparats i Google-kontot</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index 406ee32..9897050 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -660,6 +660,7 @@
 <translation id="3428151540071562330">URI moja au zaidi ya violezo vya seva ya DnsOverHttpsTemplates si sahihi na haitatumika.</translation>
 <translation id="3431636764301398940">Hifadhi kadi hii kwenye kifaa hiki</translation>
 <translation id="3432601291244612633">Funga ukurasa</translation>
+<translation id="3435738964857648380">Usalama</translation>
 <translation id="3435896845095436175">Washa</translation>
 <translation id="3438829137925142401">Tumia manenosiri uliyohifadhi kwenye Akaunti yako ya Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 0e22501..f7de118 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -653,6 +653,7 @@
 <translation id="3428151540071562330">ஒன்று அல்லது அதற்கு மேற்பட்ட DnsOverHttpsTemplates சேவையக டெம்ப்ளேட் URIகள் தவறாக உள்ளன. அவை பயன்படுத்தப்படாது.</translation>
 <translation id="3431636764301398940">இந்தச் சாதனத்தில் கார்டைச் சேமி</translation>
 <translation id="3432601291244612633">பக்கத்தை மூடுக</translation>
+<translation id="3435738964857648380">பாதுகாப்பு</translation>
 <translation id="3435896845095436175">இயக்கு</translation>
 <translation id="3438829137925142401">உங்கள் Google கணக்கில் சேமித்த கடவுச்சொற்களைப் பயன்படுத்தவும்</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -1169,6 +1170,7 @@
 <translation id="5314967030527622926">புக்லெட் மேக்கர்</translation>
 <translation id="5316812925700871227">கடிகார எதிர்த்திசையில் சுழற்று</translation>
 <translation id="5317780077021120954">சேமி</translation>
+<translation id="5321288445143113935">பெரிதாக்கப்பட்டது</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="NUM_MATCHES" /> இல் <ph name="MATCH_POSITION" /></translation>
 <translation id="5324080437450482387">தொடர்புத் தகவலைத் தேர்வு செய்</translation>
 <translation id="5327248766486351172">பெயர்</translation>
@@ -1394,6 +1396,7 @@
 <translation id="6218753634732582820">Chromium இலிருந்து முகவரியை அகற்றவா?</translation>
 <translation id="622039917539443112">பேரலல் ஃபோல்டு</translation>
 <translation id="6221345481584921695">Google பாதுகாப்பு உலாவலானது, சமீபத்தில் <ph name="SITE" /> இல் <ph name="BEGIN_LINK" />மால்வேர் உள்ளதைக் கண்டுபிடித்தது<ph name="END_LINK" />. இயல்பாகவே பாதுகாப்பாக இருக்கும் இணையதளங்களும் சில சமயங்களில் மால்வேரினால் பாதிக்கப்பட்டிருக்கும். தீங்குவிளைவிக்கும் உள்ளடக்கமானது மால்வேரைப் பகிர்பவர் என அழைக்கப்படும் <ph name="SUBRESOURCE_HOST" /> இலிருந்து வருகிறது.</translation>
+<translation id="6232619828520900263">ஐடி தற்போது தவறாக உள்ளது</translation>
 <translation id="6234122620015464377">டிரிம் ஆஃப்டர் ஈச் டாக்குமெண்ட்</translation>
 <translation id="6240447795304464094">Google Pay லோகோ</translation>
 <translation id="6241121617266208201">பரிந்துரைகளை மறை</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index 957b7b1..7bb9008 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -658,6 +658,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates సర్వర్ టెంప్లేట్‌ URIలు చెల్లవు, ఉపయోగించబడవు.</translation>
 <translation id="3431636764301398940">ఈ కార్డ్‌ను ఈ పరికరానికి సేవ్ చేయి</translation>
 <translation id="3432601291244612633">పేజీని మూసివేయండి</translation>
+<translation id="3435738964857648380">భద్రత</translation>
 <translation id="3435896845095436175">ప్రారంభించండి</translation>
 <translation id="3438829137925142401">మీ Google ఖాతాలో సేవ్ చేయబడిన పాస్‌వర్డ్‌‌లను ఉపయోగించండి</translation>
 <translation id="3443726618221119081">జుర్రో-కు-కాయ్</translation>
@@ -1175,6 +1176,7 @@
 <translation id="5314967030527622926">బుక్‌లెట్ తయారీ దారు</translation>
 <translation id="5316812925700871227">అపసవ్య దిశలో తిప్పు</translation>
 <translation id="5317780077021120954">సేవ్ చేయి</translation>
+<translation id="5321288445143113935">గరిష్ఠీకరించబడింది</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="NUM_MATCHES" />లో <ph name="MATCH_POSITION" /></translation>
 <translation id="5324080437450482387">సంప్రదింపు సమాచారాన్ని ఎంచుకోండి</translation>
 <translation id="5327248766486351172">పేరు</translation>
@@ -1401,6 +1403,7 @@
 <translation id="6218753634732582820">Chromium నుండి చిరునామాను తీసివేయాలా?</translation>
 <translation id="622039917539443112">పారలల్ ఫోల్డ్</translation>
 <translation id="6221345481584921695">Google సురక్షిత బ్రౌజింగ్ ఇటీవల <ph name="SITE" />లో <ph name="BEGIN_LINK" />మాల్వేర్‌ను గుర్తించింది<ph name="END_LINK" />. సాధారణంగా సురక్షితమైన వెబ్‌సైట్‌‌లకు కూడా కొన్నిసార్లు మాల్వేర్ సోకుతుంది. ఈ హానికరమైన కంటెంట్, మాల్వేర్ పంపిణీదారుగా ప్రసిద్ధిగాంచిన <ph name="SUBRESOURCE_HOST" /> నుండి సంక్రమిస్తుంది.</translation>
+<translation id="6232619828520900263">ప్రస్తుతం ID చెల్లదు</translation>
 <translation id="6234122620015464377">ప్రతి పత్రం తర్వాత కత్తిరించండి</translation>
 <translation id="6240447795304464094">Google Pay లోగో</translation>
 <translation id="6241121617266208201">సూచనలను దాచు</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 694ba50d..9619288 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">หน้านี้บอกว่า</translation>
 <translation id="153384715582417236">เสร็จเรียบร้อย</translation>
 <translation id="1536390784834419204">แปลหน้าเว็บ</translation>
+<translation id="1539840569003678498">ส่งรายงานแล้ว:</translation>
 <translation id="154408704832528245">เลือกที่อยู่สำหรับนำส่งสินค้า</translation>
 <translation id="1549470594296187301">ต้องเปิดใช้ JavaScript เพื่อใช้ฟีเจอร์นี้</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">ด้านขอบสั้นก่อน</translation>
 <translation id="168693727862418163">ตรวจสอบค่านโยบายนี้กับสคีมาไม่ได้ ระบบจะเพิกเฉยต่อค่านี้</translation>
 <translation id="168841957122794586">ใบรับรองของเซิร์ฟเวอร์มีคีย์การเข้ารหัสที่ไม่รัดกุม</translation>
+<translation id="1696290444144917273">ดูรายละเอียดบัตรเสมือน</translation>
 <translation id="1697532407822776718">คุณพร้อมแล้ว!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{เซิร์ฟเวอร์นี้พิสูจน์ไม่ได้ว่าเป็น <ph name="DOMAIN" /> เพราะใบรับรองความปลอดภัยควรจะเริ่มใช้งานได้ตั้งแต่วันพรุ่งนี้ โดยอาจเกิดจากการกำหนดค่าผิดหรือผู้บุกรุกที่ขัดขวางการเชื่อมต่อของคุณ}other{เซิร์ฟเวอร์นี้พิสูจน์ไม่ได้ว่าเป็น <ph name="DOMAIN" /> เพราะใบรับรองความปลอดภัยควรจะเริ่มใช้งานได้ในอีก # วันข้างหน้า โดยอาจเกิดจากการกำหนดค่าผิดหรือผู้บุกรุกที่ขัดขวางการเชื่อมต่อของคุณ}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">กล่องจดหมาย 3</translation>
 <translation id="1718029547804390981">เอกสารมีขนาดใหญ่เกินกว่าจะใส่หมายเหตุได้</translation>
 <translation id="1721424275792716183">* ช่องที่ต้องกรอก</translation>
+<translation id="1727613060316725209">ใบรับรองถูกต้อง</translation>
 <translation id="1727741090716970331">เพิ่มหมายเลขบัตรที่ถูกต้อง</translation>
 <translation id="1728677426644403582">คุณกำลังดูซอร์สโค้ดของหน้าเว็บ</translation>
 <translation id="173080396488393970">ไม่รองรับบัตรประเภทนี้</translation>
@@ -652,6 +655,7 @@
 <translation id="3428151540071562330">URI ของเซิร์ฟเวอร์เทมเพลต DnsOverHttpsTemplates อย่างน้อย 1 รายการไม่ถูกต้องและจะไม่มีการนำไปใช้</translation>
 <translation id="3431636764301398940">บันทึกบัตรนี้ลงในอุปกรณ์นี้</translation>
 <translation id="3432601291244612633">ปิดหน้า</translation>
+<translation id="3435738964857648380">ความปลอดภัย</translation>
 <translation id="3435896845095436175">เปิดการใช้งาน</translation>
 <translation id="3438829137925142401">ใช้รหัสผ่านที่บันทึกไว้ในบัญชี Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -694,6 +698,7 @@
 <translation id="3586931643579894722">ซ่อนรายละเอียด</translation>
 <translation id="3587738293690942763">ตรงกลาง</translation>
 <translation id="3590643883886679995">ข้อมูลการลงชื่อเข้าใช้จะจัดเก็บอยู่ในอุปกรณ์นี้หลังจากออกจากโหมดไม่ระบุตัวตน</translation>
+<translation id="359126217934908072">เดือน/ปี:</translation>
 <translation id="3592413004129370115">Italian (ซองจดหมาย)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">ผู้ดูแลระบบบล็อกแอปพลิเคชันไว้</translation>
@@ -749,6 +754,7 @@
 <translation id="3781428340399460090">ชมพูเจิดจ้า</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">อุปกรณ์บลูทูธ</translation>
+<translation id="3787675388804467730">หมายเลขบัตรเสมือน</translation>
 <translation id="3787705759683870569">หมดอายุ <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">ขนาด 16</translation>
 <translation id="3789841737615482174">ติดตั้ง</translation>
@@ -1543,6 +1549,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome ทำให้หน้านี้อ่านง่ายขึ้น Chrome ดึงข้อมูลหน้าต้นฉบับผ่านการเชื่อมต่อที่ไม่ปลอดภัย</translation>
 <translation id="6891596781022320156">ระดับนโยบายไม่ได้รับการสนับสนุน</translation>
+<translation id="6895143722905299846">หมายเลขเสมือน:</translation>
 <translation id="6895330447102777224">บัตรของคุณได้รับการยืนยันแล้ว</translation>
 <translation id="6897140037006041989">User agent</translation>
 <translation id="6898699227549475383">องค์กร (O)</translation>
@@ -1581,6 +1588,7 @@
 <translation id="7014741021609395734">ระดับการซูม</translation>
 <translation id="7016992613359344582">การเรียกเก็บเงินเหล่านี้อาจเกิดขึ้นครั้งเดียวหรือเป็นเกิดขึ้นซ้ำๆ และอาจไม่แสดงอย่างชัดแจ้ง</translation>
 <translation id="7029809446516969842">รหัสผ่าน</translation>
+<translation id="7030436163253143341">ใบรับรองไม่ถูกต้อง</translation>
 <translation id="7031646650991750659">แอปจาก Google Play ที่คุณติดตั้ง</translation>
 <translation id="7050187094878475250">คุณพยายามเข้าถึง <ph name="DOMAIN" /> แต่เซิร์ฟเวอร์ได้แสดงใบรับรองที่มีระยะเวลาที่สามารถใช้ได้นานเกินกว่าที่จะเชื่อถือได้</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{บันทึกบัตรนี้ไม่ได้ในตอนนี้}other{บันทึกบัตรเหล่านี้ไม่ได้ในตอนนี้}}</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 0a8cedd..4076232 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -656,6 +656,7 @@
 <translation id="3428151540071562330">DnsOverHttpsTemplates sunucu şablonu URI'larından biri veya daha fazlası geçersiz olduğundan kullanılmayacak.</translation>
 <translation id="3431636764301398940">Bu kartı bu cihaza kaydet</translation>
 <translation id="3432601291244612633">Sayfayı kapat</translation>
+<translation id="3435738964857648380">Güvenlik</translation>
 <translation id="3435896845095436175">Etkinleştir</translation>
 <translation id="3438829137925142401">Google Hesabınızdaki kayıtlı şifreleri kullanın</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index ac20c77..d4474ce6 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">Повідомлення з цієї сторінки</translation>
 <translation id="153384715582417236">Більше нічого немає</translation>
 <translation id="1536390784834419204">Перекласти сторінку</translation>
+<translation id="1539840569003678498">Звіт надіслано:</translation>
 <translation id="154408704832528245">Вибрати адресу доставки</translation>
 <translation id="1549470594296187301">Щоб користуватися цією функцією, потрібно ввімкнути JavaScript.</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">Спочатку по ширині</translation>
 <translation id="168693727862418163">Не вдалося перевірити значення цього правила в схемі, тому воно ігноруватиметься.</translation>
 <translation id="168841957122794586">Сертифікат сервера містить слабкий криптографічний ключ.</translation>
+<translation id="1696290444144917273">Переглянути дані віртуальної картки</translation>
 <translation id="1697532407822776718">Готово!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{Не вдалося підтвердити, що це сервер <ph name="DOMAIN" />. Його сертифікат безпеки почне діяти завтра. Можливо, сервер налаштовано неправильно або хтось намагається перехопити ваші дані.}one{Не вдалося підтвердити, що це сервер <ph name="DOMAIN" />. Його сертифікат безпеки почне діяти через # день. Можливо, сервер налаштовано неправильно або хтось намагається перехопити ваші дані.}few{Не вдалося підтвердити, що це сервер <ph name="DOMAIN" />. Його сертифікат безпеки почне діяти через # дні. Можливо, сервер налаштовано неправильно або хтось намагається перехопити ваші дані.}many{Не вдалося підтвердити, що це сервер <ph name="DOMAIN" />. Його сертифікат безпеки почне діяти через # днів. Можливо, сервер налаштовано неправильно або хтось намагається перехопити ваші дані.}other{Не вдалося підтвердити, що це сервер <ph name="DOMAIN" />. Його сертифікат безпеки почне діяти через # дня. Можливо, сервер налаштовано неправильно або хтось намагається перехопити ваші дані.}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">Поштова скринька 3</translation>
 <translation id="1718029547804390981">Документ завеликий для створення приміток</translation>
 <translation id="1721424275792716183">* Обов’язкове поле</translation>
+<translation id="1727613060316725209">Сертифікат дійсний</translation>
 <translation id="1727741090716970331">Додайте дійсний номер картки</translation>
 <translation id="1728677426644403582">Ви переглядаєте джерело веб-сторінки</translation>
 <translation id="173080396488393970">Цей тип картки не підтримується</translation>
@@ -656,6 +659,7 @@
 <translation id="3428151540071562330">Щонайменше один ідентифікатор URI шаблону сервера DnsOverHttpsTemplates недійсний і не використовуватиметься.</translation>
 <translation id="3431636764301398940">Зберегти цю картку на пристрої</translation>
 <translation id="3432601291244612633">Закрити сторінку</translation>
+<translation id="3435738964857648380">Безпека</translation>
 <translation id="3435896845095436175">Увімкнути</translation>
 <translation id="3438829137925142401">Використовувати паролі, збережені в обліковому записі Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -699,6 +703,7 @@
 <translation id="3586931643579894722">Сховати докладні дані</translation>
 <translation id="3587738293690942763">Середній</translation>
 <translation id="3590643883886679995">Коли ви вимкнете режим анонімного перегляду, дані для входу зберігатимуться на цьому пристрої.</translation>
+<translation id="359126217934908072">Місяць/рік:</translation>
 <translation id="3592413004129370115">Italian (конверт)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">Додаток заблоковано адміністратором</translation>
@@ -754,6 +759,7 @@
 <translation id="3781428340399460090">Яскраво-рожевий</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">Пристрої Bluetooth</translation>
+<translation id="3787675388804467730">Номер віртуальної картки</translation>
 <translation id="3787705759683870569">Діє до <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">Розмір 16</translation>
 <translation id="3789841737615482174">Установити</translation>
@@ -1553,6 +1559,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Веб-переглядач Chrome зробив цю сторінку простішою для читання. Оригінальна сторінка була завантажена через незахищене з'єднання.</translation>
 <translation id="6891596781022320156">Правило не підтримується.</translation>
+<translation id="6895143722905299846">Номер картки:</translation>
 <translation id="6895330447102777224">Дані картки підтверджено</translation>
 <translation id="6897140037006041989">Агент користувача</translation>
 <translation id="6898699227549475383">Організація (О)</translation>
@@ -1591,6 +1598,7 @@
 <translation id="7014741021609395734">Рівень масштабування</translation>
 <translation id="7016992613359344582">Такі стягнення можуть бути одноразовими чи регулярними й неочевидними.</translation>
 <translation id="7029809446516969842">Паролі</translation>
+<translation id="7030436163253143341">Сертифікат недійсний</translation>
 <translation id="7031646650991750659">встановлені додатки Google Play.</translation>
 <translation id="7050187094878475250">Ви намагалися зв’язатися з доменом <ph name="DOMAIN" />, але сервер надав сертифікат із задовгим терміном дії.</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{Зараз не вдається зберегти цю картку}one{Зараз не вдається зберегти ці картки}few{Зараз не вдається зберегти ці картки}many{Зараз не вдається зберегти ці картки}other{Зараз не вдається зберегти ці картки}}</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index 645d11c..e871057 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">اس صفحے کے مطابق</translation>
 <translation id="153384715582417236">ابھی کیلئے بس اتنا ہی</translation>
 <translation id="1536390784834419204">صفحہ کا ترجمہ کریں</translation>
+<translation id="1539840569003678498">رپورٹ بھیج دی گئی:</translation>
 <translation id="154408704832528245">ڈیلیوری کا پتہ منتخب کریں</translation>
 <translation id="1549470594296187301">‏اس خصوصیت کا استعمال کرنے کیلئے JavaScript کا فعال ہونا لازمی ہے۔</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -217,6 +218,7 @@
 <translation id="1682696192498422849">چھوٹا کنارہ پہلے</translation>
 <translation id="168693727862418163">اس پالیسی کی قدر اس کے سکیما کو توثیق کرنے میں ناکام ہو گئی اور اسے نظر انداز کر دیا جائے گا۔</translation>
 <translation id="168841957122794586">سرور سرٹیفکیٹ میں ایک ہفتے کی کرپٹوگرافک کلید شامل ہے۔</translation>
+<translation id="1696290444144917273">ورچوئل کارڈ کی تفصیلات دیکھیں</translation>
 <translation id="1697532407822776718">آپ بالکل ٹھیک ہیں!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{یہ سرور ثابت نہیں کر سکا کہ یہ <ph name="DOMAIN" /> ہے؛ اس کے سیکیورٹی سرٹیفکیٹ کی میعاد ممکنہ طور پر کل سے ہے۔ یہ غلط کنفیگریشن یا آپ کے کنکشن کو قطع کرنے والے کسی حملہ آور کی وجہ سے ہو سکتا ہے۔}other{یہ سرور ثابت نہیں کر سکا کہ یہ <ph name="DOMAIN" /> ہے؛ اس کے سیکیورٹی سرٹیفکیٹ کی میعاد ممکنہ طور پر مستقبل میں  # دن بعد سے ہے۔ یہ غلط کنفیگریشن یا آپ کے کنکشن کو قطع کرنے والے کسی حملہ آور کی وجہ سے ہو سکتا ہے۔}}</translation>
@@ -228,6 +230,7 @@
 <translation id="1717494416764505390">میل باکس 3</translation>
 <translation id="1718029547804390981">دستاویز اتنی بڑی ہے کہ اس کی تشریح نہیں کی جا سکتی</translation>
 <translation id="1721424275792716183">* فیلڈ لازمی ہے</translation>
+<translation id="1727613060316725209">سرٹیفیکیٹ درست ہے</translation>
 <translation id="1727741090716970331">درست کارڈ نمبر شامل کریں</translation>
 <translation id="1728677426644403582">آپ ویب صفحہ کا ماخذ دیکھ رہے ہیں</translation>
 <translation id="173080396488393970">اس قسم کا کارڈ تعاون یافتہ نہیں ہے</translation>
@@ -661,6 +664,7 @@
 <translation id="3428151540071562330">‏ایک یا ایک سے زیادہ DnsOverHttpsTemplates سرور تمثیل URIs غلط ہیں اور استعمال نہیں کیے جائیں گے۔</translation>
 <translation id="3431636764301398940">اس کارڈ کو اس آلہ میں محفوظ کریں</translation>
 <translation id="3432601291244612633">صفحہ بند کریں</translation>
+<translation id="3435738964857648380">سیکیورٹی</translation>
 <translation id="3435896845095436175">فعال کریں</translation>
 <translation id="3438829137925142401">‏اپنے Google اکاؤنٹ میں محفوظ کردہ پاس ورڈ کا استعمال کریں</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -704,6 +708,7 @@
 <translation id="3586931643579894722">تفصیلات چھپائیں</translation>
 <translation id="3587738293690942763">وسطی</translation>
 <translation id="3590643883886679995">آپ کے پوشیدگی وضع سے باہر نکلنے کے بعد، سائن ان ڈیٹا اس آلے پر اسٹور کیا جائے گا۔</translation>
+<translation id="359126217934908072">ماہ/سال:</translation>
 <translation id="3592413004129370115">Italian ‎(Envelope‎)‎</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />، <ph name="DOMAIN" />، <ph name="TIME" /></translation>
 <translation id="3603507503523709">ایپلیکیشن کو آپ کے منتظم کے ذریعے مسدود کیا گیا</translation>
@@ -759,6 +764,7 @@
 <translation id="3781428340399460090">گہرا گلابی</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">بلوٹوتھ آلات</translation>
+<translation id="3787675388804467730">ورچوئل کارڈ نمبر</translation>
 <translation id="3787705759683870569"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /> کو میعاد ختم ہو رہی ہے</translation>
 <translation id="3789155188480882154">سائز 16</translation>
 <translation id="3789841737615482174">انسٹال کریں</translation>
@@ -1426,6 +1432,7 @@
 <translation id="6289939620939689042">صفحے کا رنگ</translation>
 <translation id="6290238015253830360">آپ کے تجویز کردہ مضامین یہاں ظاہر ہوتے ہیں</translation>
 <translation id="6293309776179964942">JIS B5</translation>
+<translation id="6295618774959045776">CVC:</translation>
 <translation id="6302269476990306341">‏Chrome میں Google اسسٹنٹ موقوف کی جا ر ہی ہے</translation>
 <translation id="6305205051461490394"><ph name="URL" /> ناقابل رسائی ہے۔</translation>
 <translation id="6312113039770857350">ویب صفحہ دستیاب نہیں ہے</translation>
@@ -1558,6 +1565,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">‏پڑھنے کو زیادہ آسان بنانے کے ليے Chrome نے اس صفحے کو آسان بنایا۔ Chrome نے غیر محفوظ کنکشن پر اصل صفحہ کو بازیاب کیا۔</translation>
 <translation id="6891596781022320156">پالیسی کی سطح تعاون یافتہ نہیں ہے۔</translation>
+<translation id="6895143722905299846">ورچوئل نمبر:</translation>
 <translation id="6895330447102777224">آپ کے کارڈ کی توثیق ہو گئی ہے</translation>
 <translation id="6897140037006041989">صارف کا ایجنٹ</translation>
 <translation id="6898699227549475383">‏تنظیم (O)</translation>
@@ -1596,6 +1604,7 @@
 <translation id="7014741021609395734">زوم کی سطح</translation>
 <translation id="7016992613359344582">یہ چارجز ایک بار یا بار بار عائد ہوسکتے ہیں اور ہو سکتا ہے کہ واضح نہ ہوں۔</translation>
 <translation id="7029809446516969842">پاس ورڈز</translation>
+<translation id="7030436163253143341">سرٹیفیکیٹ درست نہیں ہے</translation>
 <translation id="7031646650991750659">‏آپ نے کن Google Play ایپس کو انسٹال کیا ہے</translation>
 <translation id="7050187094878475250">آپ نے <ph name="DOMAIN" /> تک پہنچنے کی کوشش کی، لیکن سرور نے ایک سرٹیفکیٹ پیش کیا جس کے جواز کا عرصہ اتنا طویل ہے کہ اس پر بھروسہ نہیں کیا جا سکتا۔</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{اس کارڈ کو ابھی محفوظ نہیں کیا جا سکتا}other{ان کارڈز کو ابھی محفوظ نہیں کیا جا سکتا}}</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index 195a5df..5082ac5b 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -658,6 +658,7 @@
 <translation id="3428151540071562330">Bir yoki bir nechta DnsOverHttpsTemplates server andozasi URI manzillari yaroqsiz va ishlatilmaydi.</translation>
 <translation id="3431636764301398940">Kartani bu qurilmaga saqlash</translation>
 <translation id="3432601291244612633">Sahifani yopish</translation>
+<translation id="3435738964857648380">Xavfsizlik</translation>
 <translation id="3435896845095436175">Yoqish</translation>
 <translation id="3438829137925142401">Google hisobingizda saqlangan parollarni ishlatish</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 6d1aa331..4ac6ba6 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -661,6 +661,7 @@
 <translation id="3428151540071562330">Một hoặc nhiều URI mẫu máy chủ DnsOverHttpsTemplates là không hợp lệ và sẽ không được dùng.</translation>
 <translation id="3431636764301398940">Lưu thẻ này vào thiết bị này</translation>
 <translation id="3432601291244612633">Đóng trang</translation>
+<translation id="3435738964857648380">Bảo mật</translation>
 <translation id="3435896845095436175">Bật</translation>
 <translation id="3438829137925142401">Dùng mật khẩu đã lưu trong Tài khoản Google của bạn</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index 4ddf62f8..17232d42 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -650,6 +650,7 @@
 <translation id="3428151540071562330">一个或多个 DnsOverHttpsTemplates 服务器模板 URI 无效,因此不会被使用。</translation>
 <translation id="3431636764301398940">将此卡的信息保存到该设备</translation>
 <translation id="3432601291244612633">关闭页面</translation>
+<translation id="3435738964857648380">安全</translation>
 <translation id="3435896845095436175">启用</translation>
 <translation id="3438829137925142401">使用您 Google 帐号中保存的密码</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -1160,6 +1161,7 @@
 <translation id="5314967030527622926">手册制作工具</translation>
 <translation id="5316812925700871227">逆时针旋转</translation>
 <translation id="5317780077021120954">保存</translation>
+<translation id="5321288445143113935">最大化</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />,第 <ph name="MATCH_POSITION" /> 个(共 <ph name="NUM_MATCHES" /> 个)</translation>
 <translation id="5324080437450482387">选择联系信息</translation>
 <translation id="5327248766486351172">名称</translation>
@@ -1385,6 +1387,7 @@
 <translation id="6218753634732582820">要从 Chromium 中移除地址吗?</translation>
 <translation id="622039917539443112">平行折</translation>
 <translation id="6221345481584921695">Google安全浏览功能最近在<ph name="SITE" />上<ph name="BEGIN_LINK" />检测到了恶意软件<ph name="END_LINK" />。平常非常安全的网站有时也会感染恶意软件。检测到的恶意内容来自于<ph name="SUBRESOURCE_HOST" />,这是个已知的恶意软件散布方。</translation>
+<translation id="6232619828520900263">ID 目前无效</translation>
 <translation id="6234122620015464377">完成每份文档后裁切</translation>
 <translation id="6240447795304464094">Google Pay 徽标</translation>
 <translation id="6241121617266208201">隐藏建议</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index 9bef3fc..ee59c11 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -655,6 +655,7 @@
 <translation id="3428151540071562330">一或多個 DnsOverHttpsTemplates 伺服器範本 URI 無效,因此系統不會採用這些伺服器範本 URI。</translation>
 <translation id="3431636764301398940">將這張信用卡儲存至此裝置</translation>
 <translation id="3432601291244612633">關閉頁面</translation>
+<translation id="3435738964857648380">安全性</translation>
 <translation id="3435896845095436175">啟用</translation>
 <translation id="3438829137925142401">使用儲存在 Google 帳戶中的密碼</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index b0917f8d..6a4fb87 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -174,6 +174,7 @@
 <translation id="1532118530259321453">這個網頁顯示</translation>
 <translation id="153384715582417236">暫無內容</translation>
 <translation id="1536390784834419204">翻譯網頁</translation>
+<translation id="1539840569003678498">回報時間:</translation>
 <translation id="154408704832528245">選擇快遞地址</translation>
 <translation id="1549470594296187301">您必須啟用 JavaScript 才能使用這項功能。</translation>
 <translation id="155039086686388498">Engineering-D</translation>
@@ -216,6 +217,7 @@
 <translation id="1682696192498422849">先從短邊開始</translation>
 <translation id="168693727862418163">這項政策的值未通過其結構定義的驗證,因此會遭到忽略。</translation>
 <translation id="168841957122794586">伺服器憑證含有防護力薄弱的加密編譯金鑰。</translation>
+<translation id="1696290444144917273">查看虛擬卡片資料</translation>
 <translation id="1697532407822776718">大功告成!</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706954506755087368">{1,plural, =1{這個伺服器無法證明所在網域是 <ph name="DOMAIN" />;伺服器的安全性憑證預定明天才生效。這可能是因為設定錯誤,或是有攻擊者攔截您的連線。}other{這個伺服器無法證明所在網域是 <ph name="DOMAIN" />;伺服器的安全性憑證預定 # 天後才生效。這可能是因為設定錯誤,或是有攻擊者攔截您的連線。}}</translation>
@@ -227,6 +229,7 @@
 <translation id="1717494416764505390">出紙槽 3</translation>
 <translation id="1718029547804390981">文件過大,無法加註</translation>
 <translation id="1721424275792716183">* 這是必填欄位</translation>
+<translation id="1727613060316725209">憑證有效</translation>
 <translation id="1727741090716970331">新增有效的信用卡號碼</translation>
 <translation id="1728677426644403582">目前顯示的是網頁原始碼</translation>
 <translation id="173080396488393970">不支援這種信用卡類型</translation>
@@ -652,6 +655,7 @@
 <translation id="3428151540071562330">一或多個 DnsOverHttpsTemplates 伺服器範本 URI 無效,因此系統不會採用這些伺服器範本 URI。</translation>
 <translation id="3431636764301398940">將這張信用卡儲存到這個裝置</translation>
 <translation id="3432601291244612633">關閉頁面</translation>
+<translation id="3435738964857648380">安全性</translation>
 <translation id="3435896845095436175">啟用</translation>
 <translation id="3438829137925142401">使用儲存在 Google 帳戶中的密碼</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
@@ -695,6 +699,7 @@
 <translation id="3586931643579894722">隱藏詳細資訊</translation>
 <translation id="3587738293690942763">中間</translation>
 <translation id="3590643883886679995">系統會在無痕模式結束後將登入資料儲存在這部裝置上。</translation>
+<translation id="359126217934908072">月/年:</translation>
 <translation id="3592413004129370115">Italian (信封)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />,<ph name="DOMAIN" />,<ph name="TIME" /></translation>
 <translation id="3603507503523709">已遭系統管理員封鎖的應用程式</translation>
@@ -750,6 +755,7 @@
 <translation id="3781428340399460090">亮粉色</translation>
 <translation id="3783418713923659662">Mastercard</translation>
 <translation id="3784372983762739446">藍牙裝置</translation>
+<translation id="3787675388804467730">虛擬卡號</translation>
 <translation id="3787705759683870569">到期日:<ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
 <translation id="3789155188480882154">粗細:16</translation>
 <translation id="3789841737615482174">安裝</translation>
@@ -1544,6 +1550,7 @@
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
 <translation id="6888584790432772780">Chrome 已簡化這個頁面,讓內容更易於閱讀。Chrome 透過不安全的連線擷取原始頁面。</translation>
 <translation id="6891596781022320156">系統不支援這項政策的層級。</translation>
+<translation id="6895143722905299846">虛擬卡號:</translation>
 <translation id="6895330447102777224">您的信用卡已通過驗證</translation>
 <translation id="6897140037006041989">使用者代理程式</translation>
 <translation id="6898699227549475383">組織 (O)</translation>
@@ -1582,6 +1589,7 @@
 <translation id="7014741021609395734">縮放比例</translation>
 <translation id="7016992613359344582">這些費用可能只收取一次,也可能屬於週期性費用,而且你不一定會注意到自己需要付費。</translation>
 <translation id="7029809446516969842">密碼</translation>
+<translation id="7030436163253143341">憑證無效</translation>
 <translation id="7031646650991750659">你安裝的 Google Play 應用程式</translation>
 <translation id="7050187094878475250">您嘗試連線至 <ph name="DOMAIN" />,但伺服器提供的憑證有效期限太長,因此難以信任。</translation>
 <translation id="705310974202322020">{NUM_CARDS,plural, =1{目前無法儲存這張卡片}other{目前無法儲存這些卡片}}</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index 50774e2..792fd8c7 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -659,6 +659,7 @@
 <translation id="3428151540071562330">Eyodwa noma ngaphezulu yama-URL wethempulethi leseva le-DnsOverHttpsTemplates alivumelekile futhi ngeke lisetshenziswe.</translation>
 <translation id="3431636764301398940">Londoloza leli khadi kule divayisi</translation>
 <translation id="3432601291244612633">Vala ikhasi</translation>
+<translation id="3435738964857648380">Ukuvikela</translation>
 <translation id="3435896845095436175">Nika amandla</translation>
 <translation id="3438829137925142401">Sebenzisa amaphasiwedi alondolozwe ku-Akhawunti yakho ye-Google</translation>
 <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
diff --git a/components/subresource_filter/content/browser/ruleset_service_unittest.cc b/components/subresource_filter/content/browser/ruleset_service_unittest.cc
index c9e73d4..156bd93 100644
--- a/components/subresource_filter/content/browser/ruleset_service_unittest.cc
+++ b/components/subresource_filter/content/browser/ruleset_service_unittest.cc
@@ -876,9 +876,7 @@
   mock_publisher()->RunBestEffortUntilIdle();
 
   const std::string kGarbage(10000, '\xff');
-  ASSERT_TRUE(base::AppendToFile(test_ruleset_1().unindexed.path,
-                                 kGarbage.data(),
-                                 static_cast<int>(kGarbage.size())));
+  ASSERT_TRUE(base::AppendToFile(test_ruleset_1().unindexed.path, kGarbage));
   WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
                                                kTestContentVersion1);
 
diff --git a/components/ui_devtools/views/window_element.cc b/components/ui_devtools/views/window_element.cc
index ea32eb4..feb07e9 100644
--- a/components/ui_devtools/views/window_element.cc
+++ b/components/ui_devtools/views/window_element.cc
@@ -32,7 +32,7 @@
 WindowElement::WindowElement(aura::Window* window,
                              UIElementDelegate* ui_element_delegate,
                              UIElement* parent)
-    : UIElement(UIElementType::WINDOW, ui_element_delegate, parent),
+    : UIElementWithMetaData(UIElementType::WINDOW, ui_element_delegate, parent),
       window_(window) {
   if (window)
     window_->AddObserver(this);
@@ -73,44 +73,10 @@
   delegate()->OnUIElementBoundsChanged(this);
 }
 
-std::vector<UIElement::ClassProperties>
-WindowElement::GetCustomPropertiesForMatchedStyle() const {
-  std::vector<UIElement::ClassProperties> ret;
-  std::vector<UIElement::UIProperty> cur_properties;
-
-  ui::Layer* layer = window_->layer();
-  if (layer) {
-    AppendLayerPropertiesMatchedStyle(layer, &cur_properties);
-    ret.emplace_back("Layer", cur_properties);
-    cur_properties.clear();
-  }
-
-  gfx::Rect bounds;
-  GetBounds(&bounds);
-  cur_properties.emplace_back("x", base::NumberToString(bounds.x()));
-  cur_properties.emplace_back("y", base::NumberToString(bounds.y()));
-  cur_properties.emplace_back("width", base::NumberToString(bounds.width()));
-  cur_properties.emplace_back("height", base::NumberToString(bounds.height()));
-
-  std::string state_str =
-      aura::Window::OcclusionStateToString(window_->occlusion_state());
-  // change OcclusionState::UNKNOWN to UNKNOWN
-  state_str = state_str.substr(state_str.find("::") + 2);
-  cur_properties.emplace_back("occlusion-state", state_str);
-  cur_properties.emplace_back("is-visible",
-                              window_->IsVisible() ? "true" : "false");
-  cur_properties.emplace_back("surface",
-                              window_->GetSurfaceId().is_valid()
-                                  ? window_->GetSurfaceId().ToString()
-                                  : "none");
-  cur_properties.emplace_back("capture",
-                              window_->HasCapture() ? "true" : "false");
-  cur_properties.emplace_back(
-      "is-activatable", wm::CanActivateWindow(window_) ? "true" : "false");
-
-  ret.emplace_back("Window", cur_properties);
-  return ret;
-}
+// TODO (kylixrd@): Still need to add support for the following property.
+//
+//  cur_properties.emplace_back(
+//      "is-activatable", wm::CanActivateWindow(window_) ? "true" : "false");
 
 void WindowElement::GetBounds(gfx::Rect* bounds) const {
   *bounds = window_->bounds();
@@ -190,4 +156,16 @@
   return true;
 }
 
+ui::metadata::ClassMetaData* WindowElement::GetClassMetaData() const {
+  return window_->GetClassMetaData();
+}
+
+void* WindowElement::GetClassInstance() const {
+  return window_;
+}
+
+ui::Layer* WindowElement::GetLayer() const {
+  return window_->layer();
+}
+
 }  // namespace ui_devtools
diff --git a/components/ui_devtools/views/window_element.h b/components/ui_devtools/views/window_element.h
index 6d60699..9a5674e 100644
--- a/components/ui_devtools/views/window_element.h
+++ b/components/ui_devtools/views/window_element.h
@@ -6,7 +6,7 @@
 #define COMPONENTS_UI_DEVTOOLS_VIEWS_WINDOW_ELEMENT_H_
 
 #include "base/macros.h"
-#include "components/ui_devtools/ui_element.h"
+#include "components/ui_devtools/views/ui_element_with_metadata.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_observer.h"
 #include "ui/gfx/geometry/rect.h"
@@ -14,11 +14,14 @@
 
 namespace ui_devtools {
 
-class WindowElement : public aura::WindowObserver, public UIElement {
+class WindowElement : public aura::WindowObserver,
+                      public UIElementWithMetaData {
  public:
   WindowElement(aura::Window* window,
                 UIElementDelegate* ui_element_delegate,
                 UIElement* parent);
+  WindowElement(const WindowElement&) = delete;
+  WindowElement& operator=(const WindowElement&) = delete;
   ~WindowElement() override;
   aura::Window* window() const { return window_; }
 
@@ -34,8 +37,6 @@
                              ui::PropertyChangeReason reason) override;
 
   // UIElement:
-  std::vector<UIElement::ClassProperties> GetCustomPropertiesForMatchedStyle()
-      const override;
   void GetBounds(gfx::Rect* bounds) const override;
   void SetBounds(const gfx::Rect& bounds) override;
   void GetVisible(bool* visible) const override;
@@ -48,10 +49,13 @@
   static aura::Window* From(const UIElement* element);
   void InitSources() override;
 
+ protected:
+  ui::metadata::ClassMetaData* GetClassMetaData() const override;
+  void* GetClassInstance() const override;
+  ui::Layer* GetLayer() const override;
+
  private:
   aura::Window* window_;
-
-  DISALLOW_COPY_AND_ASSIGN(WindowElement);
 };
 
 }  // namespace ui_devtools
diff --git a/components/vector_icons/vector_icons.gni b/components/vector_icons/vector_icons.gni
index ec13569..a0641b28 100644
--- a/components/vector_icons/vector_icons.gni
+++ b/components/vector_icons/vector_icons.gni
@@ -28,6 +28,8 @@
       defined(invoker.icon_directory),
       "Need icon_directory in $target_name where the icons and templates live.")
 
+  public_deps = [ "//base" ]
+
   action(target_name) {
     visibility = [ ":*" ]
 
diff --git a/components/viz/service/display/overlay_processor_mac.cc b/components/viz/service/display/overlay_processor_mac.cc
index a7e69d9..777b93c 100644
--- a/components/viz/service/display/overlay_processor_mac.cc
+++ b/components/viz/service/display/overlay_processor_mac.cc
@@ -99,10 +99,12 @@
     *damage_rect = gfx::Rect();
   }
 
-  ca_layer_overlay_processor_->PutForcedOverlayContentIntoOverlays(
-      resource_provider, render_pass.get(),
-      gfx::RectF(render_pass->output_rect), &render_pass->quad_list,
-      render_pass_filters, render_pass_backdrop_filters, candidates);
+  // TODO(crbug.com/1204555): uncomment the following call once underlay
+  // mechanism is properly implemented on MacOS.
+  // ca_layer_overlay_processor_->PutForcedOverlayContentIntoOverlays(
+  //    resource_provider, render_pass.get(),
+  //    gfx::RectF(render_pass->output_rect), &render_pass->quad_list,
+  //    render_pass_filters, render_pass_backdrop_filters, candidates);
 }
 
 void OverlayProcessorMac::AdjustOutputSurfaceOverlay(
diff --git a/content/browser/back_forward_cache_browsertest.cc b/content/browser/back_forward_cache_browsertest.cc
index 8ccfbf7f..cc0bef10 100644
--- a/content/browser/back_forward_cache_browsertest.cc
+++ b/content/browser/back_forward_cache_browsertest.cc
@@ -10469,6 +10469,36 @@
   ExpectRestored(FROM_HERE);
 }
 
+IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTest,
+                       SubframeNavigationDoesNotRecordMetrics) {
+  ASSERT_TRUE(embedded_test_server()->Start());
+  GURL url_a(embedded_test_server()->GetURL(
+      "a.com", "/cross_site_iframe_factory.html?a(b)"));
+  GURL url_c(embedded_test_server()->GetURL("c.com", "/title1.html"));
+
+  // 1) Navigate to A(B).
+  EXPECT_TRUE(NavigateToURL(shell(), url_a));
+  RenderFrameHostImpl* rfh_a = current_frame_host();
+
+  // 2) Navigate from B to C.
+  EXPECT_TRUE(NavigateFrameToURL(rfh_a->child_at(0), url_c));
+  EXPECT_EQ(url_c,
+            rfh_a->child_at(0)->current_frame_host()->GetLastCommittedURL());
+  EXPECT_FALSE(rfh_a->IsInBackForwardCache());
+
+  // 4) Go back from C to B.
+  web_contents()->GetController().GoBack();
+  EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
+  EXPECT_TRUE(
+      rfh_a->child_at(0)->current_frame_host()->GetLastCommittedURL().DomainIs(
+          "b.com"));
+  EXPECT_FALSE(rfh_a->IsInBackForwardCache());
+
+  // The reason why the frame is not cached in a subframe navigation is not
+  // recorded.
+  ExpectOutcomeDidNotChange(FROM_HERE);
+}
+
 class BackForwardCacheBrowserTestWithFileSystemAPISupported
     : public BackForwardCacheBrowserTest {
  protected:
diff --git a/content/browser/background_sync/background_sync_manager.cc b/content/browser/background_sync/background_sync_manager.cc
index efec6ee..d3d08893 100644
--- a/content/browser/background_sync/background_sync_manager.cc
+++ b/content/browser/background_sync/background_sync_manager.cc
@@ -1344,18 +1344,17 @@
     return;
   }
 
-  auto repeating_callback =
-      base::AdaptCallbackForRepeating(std::move(callback));
+  auto split_callback = base::SplitOnceCallback(std::move(callback));
 
   int request_id = active_version->StartRequestWithCustomTimeout(
-      ServiceWorkerMetrics::EventType::SYNC, repeating_callback,
+      ServiceWorkerMetrics::EventType::SYNC, std::move(split_callback.first),
       parameters_->max_sync_event_duration,
       ServiceWorkerVersion::CONTINUE_ON_TIMEOUT);
 
   active_version->endpoint()->DispatchSyncEvent(
       tag, last_chance, parameters_->max_sync_event_duration,
       base::BindOnce(&OnSyncEventFinished, active_version, request_id,
-                     std::move(repeating_callback)));
+                     std::move(split_callback.second)));
 
   if (devtools_context_->IsRecording(
           DevToolsBackgroundService::kBackgroundSync)) {
@@ -1387,18 +1386,17 @@
     return;
   }
 
-  auto repeating_callback =
-      base::AdaptCallbackForRepeating(std::move(callback));
+  auto split_callback = base::SplitOnceCallback(std::move(callback));
 
   int request_id = active_version->StartRequestWithCustomTimeout(
-      ServiceWorkerMetrics::EventType::PERIODIC_SYNC, repeating_callback,
-      parameters_->max_sync_event_duration,
+      ServiceWorkerMetrics::EventType::PERIODIC_SYNC,
+      std::move(split_callback.first), parameters_->max_sync_event_duration,
       ServiceWorkerVersion::CONTINUE_ON_TIMEOUT);
 
   active_version->endpoint()->DispatchPeriodicSyncEvent(
       tag, parameters_->max_sync_event_duration,
       base::BindOnce(&OnSyncEventFinished, active_version, request_id,
-                     std::move(repeating_callback)));
+                     std::move(split_callback.second)));
 
   if (devtools_context_->IsRecording(
           DevToolsBackgroundService::kPeriodicBackgroundSync)) {
diff --git a/content/browser/background_sync/background_sync_service_impl_test_harness.cc b/content/browser/background_sync/background_sync_service_impl_test_harness.cc
index 0115a11..f4ca3f6 100644
--- a/content/browser/background_sync/background_sync_service_impl_test_harness.cc
+++ b/content/browser/background_sync/background_sync_service_impl_test_harness.cc
@@ -94,9 +94,9 @@
   // Don't let the tests be confused by the real-world device connectivity
   background_sync_test_util::SetIgnoreNetworkChanges(true);
 
-  mojo::SetDefaultProcessErrorHandler(base::AdaptCallbackForRepeating(
-      base::BindOnce(&BackgroundSyncServiceImplTestHarness::CollectMojoError,
-                     base::Unretained(this))));
+  mojo::SetDefaultProcessErrorHandler(base::BindRepeating(
+      &BackgroundSyncServiceImplTestHarness::CollectMojoError,
+      base::Unretained(this)));
 
   CreateTestHelper();
   CreateStoragePartition();
diff --git a/content/browser/bluetooth/bluetooth_blocklist.cc b/content/browser/bluetooth/bluetooth_blocklist.cc
index 2a4eb0d..df73f68 100644
--- a/content/browser/bluetooth/bluetooth_blocklist.cc
+++ b/content/browser/bluetooth/bluetooth_blocklist.cc
@@ -46,10 +46,10 @@
   base::StringPairs kv_pairs;
   bool parsed_values = false;
   bool invalid_values = false;
-  SplitStringIntoKeyValuePairs(blocklist_string,
-                               ':',  // Key-value delimiter
-                               ',',  // Key-value pair delimiter
-                               &kv_pairs);
+  base::SplitStringIntoKeyValuePairs(blocklist_string,
+                                     ':',  // Key-value delimiter
+                                     ',',  // Key-value pair delimiter
+                                     &kv_pairs);
   for (const auto& pair : kv_pairs) {
     BluetoothUUID uuid(pair.first);
     if (uuid.IsValid() && pair.second.size() == 1u) {
diff --git a/content/browser/bluetooth/web_bluetooth_service_impl.cc b/content/browser/bluetooth/web_bluetooth_service_impl.cc
index baf2d41..e5227d6d 100644
--- a/content/browser/bluetooth/web_bluetooth_service_impl.cc
+++ b/content/browser/bluetooth/web_bluetooth_service_impl.cc
@@ -907,17 +907,18 @@
   mojo::AssociatedRemote<blink::mojom::WebBluetoothServerClient>
       web_bluetooth_server_client(std::move(client));
 
-  // TODO(crbug.com/730593): Remove AdaptCallbackForRepeating() by updating
+  // TODO(crbug.com/730593): Remove SplitOnceCallback() by updating
   // the callee interface. The |callback| will only be called once, but it is
   // passed to both the success and error callbacks.
-  auto copyable_callback = base::AdaptCallbackForRepeating(std::move(callback));
+  auto split_callback = base::SplitOnceCallback(std::move(callback));
   query_result.device->CreateGattConnection(
       base::BindOnce(&WebBluetoothServiceImpl::OnCreateGATTConnectionSuccess,
                      weak_ptr_factory_.GetWeakPtr(), device_id, start_time,
-                     std::move(web_bluetooth_server_client), copyable_callback),
+                     std::move(web_bluetooth_server_client),
+                     std::move(split_callback.first)),
       base::BindOnce(&WebBluetoothServiceImpl::OnCreateGATTConnectionFailed,
                      weak_ptr_factory_.GetWeakPtr(), start_time,
-                     copyable_callback));
+                     std::move(split_callback.second)));
 }
 
 void WebBluetoothServiceImpl::RemoteServerDisconnect(
@@ -1189,15 +1190,16 @@
     return;
   }
 
-  // TODO(crbug.com/730593): Remove AdaptCallbackForRepeating() by updating
+  // TODO(crbug.com/730593): Remove SplitOnceCallback() by updating
   // the callee interface.
-  auto copyable_callback = base::AdaptCallbackForRepeating(std::move(callback));
+  auto split_callback = base::SplitOnceCallback(std::move(callback));
   base::OnceClosure write_callback = base::BindOnce(
       &WebBluetoothServiceImpl::OnCharacteristicWriteValueSuccess,
-      weak_ptr_factory_.GetWeakPtr(), copyable_callback);
+      weak_ptr_factory_.GetWeakPtr(), std::move(split_callback.first));
   BluetoothGattCharacteristic::ErrorCallback write_error_callback =
       base::BindOnce(&WebBluetoothServiceImpl::OnCharacteristicWriteValueFailed,
-                     weak_ptr_factory_.GetWeakPtr(), copyable_callback);
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(split_callback.second));
   using WebBluetoothWriteType = blink::mojom::WebBluetoothWriteType;
   using WriteType = BluetoothRemoteGattCharacteristic::WriteType;
   switch (write_type) {
@@ -1260,15 +1262,17 @@
   mojo::AssociatedRemote<blink::mojom::WebBluetoothCharacteristicClient>
       characteristic_client(std::move(client));
 
-  // TODO(crbug.com/730593): Remove AdaptCallbackForRepeating() by updating
+  // TODO(crbug.com/730593): Remove SplitOnceCallback() by updating
   // the callee interface.
-  auto copyable_callback = base::AdaptCallbackForRepeating(std::move(callback));
+  auto split_callback = base::SplitOnceCallback(std::move(callback));
   query_result.characteristic->StartNotifySession(
       base::BindOnce(&WebBluetoothServiceImpl::OnStartNotifySessionSuccess,
                      weak_ptr_factory_.GetWeakPtr(),
-                     std::move(characteristic_client), copyable_callback),
+                     std::move(characteristic_client),
+                     std::move(split_callback.first)),
       base::BindOnce(&WebBluetoothServiceImpl::OnStartNotifySessionFailed,
-                     weak_ptr_factory_.GetWeakPtr(), copyable_callback));
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(split_callback.second)));
 }
 
 void WebBluetoothServiceImpl::RemoteCharacteristicStopNotifications(
@@ -1360,15 +1364,17 @@
     return;
   }
 
-  // TODO(crbug.com/730593): Remove AdaptCallbackForRepeating() by updating
+  // TODO(crbug.com/730593): Remove SplitOnceCallback() by updating
   // the callee interface.
-  auto copyable_callback = base::AdaptCallbackForRepeating(std::move(callback));
+  auto split_callback = base::SplitOnceCallback(std::move(callback));
   query_result.descriptor->WriteRemoteDescriptor(
       value,
       base::BindOnce(&WebBluetoothServiceImpl::OnDescriptorWriteValueSuccess,
-                     weak_ptr_factory_.GetWeakPtr(), copyable_callback),
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(split_callback.first)),
       base::BindOnce(&WebBluetoothServiceImpl::OnDescriptorWriteValueFailed,
-                     weak_ptr_factory_.GetWeakPtr(), copyable_callback));
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(split_callback.second)));
 }
 
 void WebBluetoothServiceImpl::RequestScanningStart(
diff --git a/content/browser/devtools/devtools_stream_blob.cc b/content/browser/devtools/devtools_stream_blob.cc
index 27f0eec8..a91e29b 100644
--- a/content/browser/devtools/devtools_stream_blob.cc
+++ b/content/browser/devtools/devtools_stream_blob.cc
@@ -201,7 +201,8 @@
     status = blob_reader_->remaining_bytes() ? StatusSuccess : StatusEOF;
     if (is_binary_) {
       base64_encoded = true;
-      Base64Encode(base::StringPiece(io_buf_->data(), bytes_read), data.get());
+      base::Base64Encode(base::StringPiece(io_buf_->data(), bytes_read),
+                         data.get());
     } else {
       // TODO(caseq): truncate at UTF8 boundary.
       *data = std::string(io_buf_->data(), bytes_read);
diff --git a/content/browser/file_system/file_system_url_loader_factory.cc b/content/browser/file_system/file_system_url_loader_factory.cc
index 62f80d48..a81aa82 100644
--- a/content/browser/file_system/file_system_url_loader_factory.cc
+++ b/content/browser/file_system/file_system_url_loader_factory.cc
@@ -433,8 +433,8 @@
         url_,
         FileSystemOperation::GET_METADATA_FIELD_IS_DIRECTORY |
             FileSystemOperation::GET_METADATA_FIELD_SIZE,
-        base::AdaptCallbackForRepeating(base::BindOnce(
-            &FileSystemFileURLLoader::DidGetMetadata, base::AsWeakPtr(this))));
+        base::BindOnce(&FileSystemFileURLLoader::DidGetMetadata,
+                       base::AsWeakPtr(this)));
   }
 
   void DidGetMetadata(base::File::Error error_code,
diff --git a/content/browser/media/active_media_session_controller.cc b/content/browser/media/active_media_session_controller.cc
index 2f00fa5..2818177 100644
--- a/content/browser/media/active_media_session_controller.cc
+++ b/content/browser/media/active_media_session_controller.cc
@@ -197,6 +197,7 @@
     case MediaSessionAction::kToggleMicrophone:
     case MediaSessionAction::kToggleCamera:
     case MediaSessionAction::kHangUp:
+    case MediaSessionAction::kRaise:
       NOTREACHED();
       return;
   }
@@ -248,6 +249,7 @@
     case MediaSessionAction::kToggleMicrophone:
     case MediaSessionAction::kToggleCamera:
     case MediaSessionAction::kHangUp:
+    case MediaSessionAction::kRaise:
       return base::nullopt;
   }
 }
diff --git a/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc b/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
index 48a4e186..7a4a3ca5f 100644
--- a/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
+++ b/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
@@ -313,7 +313,7 @@
   AllocateAndStartAndWaitForFirstFrame();
 
   ASSERT_EQ(aura::Window::OcclusionState::VISIBLE,
-            shell()->web_contents()->GetNativeView()->occlusion_state());
+            shell()->web_contents()->GetNativeView()->GetOcclusionState());
   // Create a window on top of the window being captured with same size so that
   // it is occluded.
   auto window = std::make_unique<aura::Window>(nullptr);
@@ -322,7 +322,7 @@
   window->SetBounds(shell()->window()->bounds());
   window->Show();
   EXPECT_EQ(aura::Window::OcclusionState::VISIBLE,
-            shell()->web_contents()->GetNativeView()->occlusion_state());
+            shell()->web_contents()->GetNativeView()->GetOcclusionState());
 
   window.reset();
   StopAndDeAllocate();
diff --git a/content/browser/media/session/media_session_impl.cc b/content/browser/media/session/media_session_impl.cc
index 11992175..96021a0 100644
--- a/content/browser/media/session/media_session_impl.cc
+++ b/content/browser/media/session/media_session_impl.cc
@@ -28,6 +28,7 @@
 #include "content/public/browser/media_session.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_contents_delegate.h"
 #include "content/public/common/content_client.h"
 #include "media/audio/audio_device_description.h"
 #include "media/base/media_content_type.h"
@@ -146,6 +147,8 @@
       return MediaSessionUserAction::kToggleCamera;
     case media_session::mojom::MediaSessionAction::kHangUp:
       return MediaSessionUserAction::kHangUp;
+    case media_session::mojom::MediaSessionAction::kRaise:
+      return MediaSessionUserAction::kRaise;
   }
   NOTREACHED();
   return MediaSessionUserAction::kPlay;
@@ -1155,6 +1158,14 @@
   DidReceiveAction(media_session::mojom::MediaSessionAction::kHangUp);
 }
 
+void MediaSessionImpl::Raise() {
+  content::WebContentsDelegate* delegate = web_contents()->GetDelegate();
+  if (!delegate)
+    return;
+
+  delegate->ActivateContents(web_contents());
+}
+
 void MediaSessionImpl::GetMediaImageBitmap(
     const media_session::MediaImage& image,
     int minimum_size_px,
diff --git a/content/browser/media/session/media_session_impl.h b/content/browser/media/session/media_session_impl.h
index d21ddee..b44ea5a 100644
--- a/content/browser/media/session/media_session_impl.h
+++ b/content/browser/media/session/media_session_impl.h
@@ -276,6 +276,9 @@
   // Hang up a WebRTC session.
   void HangUp() override;
 
+  // Brings the associated tab into focus.
+  void Raise() override;
+
   // Downloads the bitmap version of a MediaImage at least |minimum_size_px|
   // and closest to |desired_size_px|. If the download failed, was too small or
   // the image did not come from the media session then returns a null image.
diff --git a/content/browser/media/session/media_session_impl_unittest.cc b/content/browser/media/session/media_session_impl_unittest.cc
index 55cc7c91..69fc323 100644
--- a/content/browser/media/session/media_session_impl_unittest.cc
+++ b/content/browser/media/session/media_session_impl_unittest.cc
@@ -15,6 +15,7 @@
 #include "content/browser/media/session/mock_media_session_service_impl.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/media_session_service.h"
+#include "content/public/browser/web_contents_delegate.h"
 #include "content/public/test/test_browser_context.h"
 #include "content/public/test/test_renderer_host.h"
 #include "content/test/test_web_contents.h"
@@ -76,6 +77,13 @@
   DISALLOW_COPY_AND_ASSIGN(MockAudioFocusDelegate);
 };
 
+// A mock WebContentsDelegate which listens to |ActivateContents()| calls.
+class MockWebContentsDelegate : public content::WebContentsDelegate {
+ public:
+  // content::WebContentsDelegate:
+  MOCK_METHOD(void, ActivateContents, (content::WebContents*), (override));
+};
+
 }  // anonymous namespace
 
 class MediaSessionImplTest : public RenderViewHostTestHarness {
@@ -722,4 +730,19 @@
   EXPECT_FALSE(info->audio_sink_id.has_value());
 }
 
+TEST_F(MediaSessionImplTest, RaiseActivatesWebContents) {
+  MockWebContentsDelegate delegate;
+  web_contents()->SetDelegate(&delegate);
+
+  // When the WebContents has a delegate, |Raise()| should activate the
+  // WebContents.
+  EXPECT_CALL(delegate, ActivateContents(web_contents()));
+  GetMediaSession()->Raise();
+  testing::Mock::VerifyAndClearExpectations(&delegate);
+
+  // When the WebContents does not have a delegate, |Raise()| should not crash.
+  web_contents()->SetDelegate(nullptr);
+  GetMediaSession()->Raise();
+}
+
 }  // namespace content
diff --git a/content/browser/media/session/media_session_uma_helper.h b/content/browser/media/session/media_session_uma_helper.h
index 3f0cb9ad..fada329 100644
--- a/content/browser/media/session/media_session_uma_helper.h
+++ b/content/browser/media/session/media_session_uma_helper.h
@@ -49,7 +49,8 @@
     kToggleMicrophone = 16,
     kToggleCamera = 17,
     kHangUp = 18,
-    kMaxValue = kHangUp,
+    kRaise = 19,
+    kMaxValue = kRaise,
   };
 
   MediaSessionUmaHelper();
diff --git a/content/browser/network_service_restart_browsertest.cc b/content/browser/network_service_restart_browsertest.cc
index 824ca9e5..3c101d1 100644
--- a/content/browser/network_service_restart_browsertest.cc
+++ b/content/browser/network_service_restart_browsertest.cc
@@ -1121,9 +1121,9 @@
 // IPC from the renderer process is handled.  See also
 // https://crbug.com/1056949#c75.
 //
-// TODO(lukasza): https://crbug.com/1129592: Flaky on Android.  No flakiness
-// observed whatsoever on Windows, Linux or CrOS.
-#if defined(OS_ANDROID)
+// TODO(lukasza): https://crbug.com/1129592: Flaky on Android and Mac.  No
+// flakiness observed whatsoever on Windows, Linux or CrOS.
+#if defined(OS_ANDROID) || defined(OS_MAC)
 #define MAYBE_BetweenCommitNavigationAndDidCommit \
   DISABLED_BetweenCommitNavigationAndDidCommit
 #else
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index bef783530..1208c4d 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -600,7 +600,7 @@
     aura::WindowTreeHost* host = window_->GetHost();
       aura::Window* parent = window_->parent();
       aura::Window::OcclusionState parent_occl_state =
-          parent ? parent->occlusion_state()
+          parent ? parent->GetOcclusionState()
                  : aura::Window::OcclusionState::UNKNOWN;
       aura::Window::OcclusionState native_win_occlusion_state =
           host ? host->GetNativeWindowOcclusionState()
diff --git a/content/browser/renderer_host/render_widget_host_view_mac_browsertest.mm b/content/browser/renderer_host/render_widget_host_view_mac_browsertest.mm
index 80d167fcc..41b115c 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac_browsertest.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac_browsertest.mm
@@ -19,6 +19,7 @@
 #include "content/public/test/content_browser_test_utils.h"
 #include "content/shell/browser/shell.h"
 #include "third_party/blink/public/platform/web_text_input_type.h"
+#include "ui/events/test/cocoa_test_event_utils.h"
 
 @interface TextInputFlagChangeWaiter : NSObject
 @end
@@ -88,6 +89,24 @@
   DISALLOW_COPY_AND_ASSIGN(TextCallbackWaiter);
 };
 
+class TextSelectionWaiter : public TextInputManager::Observer {
+ public:
+  TextSelectionWaiter(RenderWidgetHostViewMac* rwhv) {
+    rwhv->GetTextInputManager()->AddObserver(this);
+  }
+
+  void OnTextSelectionChanged(TextInputManager* text_input_manager,
+                              RenderWidgetHostViewBase* updated_view) override {
+    text_input_manager->RemoveObserver(this);
+    run_loop_.Quit();
+  }
+
+  void Wait() { run_loop_.Run(); }
+
+ private:
+  base::RunLoop run_loop_;
+};
+
 }  // namespace
 
 class RenderWidgetHostViewMacTest : public ContentBrowserTest {};
@@ -166,4 +185,41 @@
               blink::kWebTextInputFlagAutocorrectOff);
 }
 
+IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewMacTest,
+                       InputTextPreventedSyncsCursorLocation) {
+  class InputMethodObserver {};
+
+  GURL url("data:text/html,<!doctype html><textarea id=ta></textarea>");
+  EXPECT_TRUE(NavigateToURL(shell(), url));
+
+  RenderWidgetHostView* rwhv =
+      shell()->web_contents()->GetMainFrame()->GetView();
+  RenderWidgetHostViewMac* rwhv_mac =
+      static_cast<RenderWidgetHostViewMac*>(rwhv);
+  RenderWidgetHostViewCocoa* rwhv_cocoa = rwhv_mac->GetInProcessNSView();
+
+  EXPECT_TRUE(ExecJs(
+      shell(),
+      "ta.addEventListener('keypress', (evt) => {evt.preventDefault();}); "
+      "ta.focus();"));
+
+  // Before typing anything, we're at position 0.
+  EXPECT_EQ(0lu, [rwhv_cocoa selectedRange].location);
+
+  TextSelectionWaiter waiter(rwhv_mac);
+  NSEvent* key_a =
+      cocoa_test_event_utils::KeyEventWithKeyCode('a', 'a', NSKeyDown, 0);
+  [rwhv_cocoa keyEvent:key_a];
+
+  // After typing 'a', the browser process assumes that the text was entered and
+  // we are at position 1.
+  EXPECT_EQ(1lu, [rwhv_cocoa selectedRange].location);
+
+  // Wait for the renderer to sync the selection to the browser.
+  waiter.Wait();
+
+  // The synced selection updates the selected position back to 0.
+  EXPECT_EQ(0lu, [rwhv_cocoa selectedRange].location);
+}
+
 }  // namespace content
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
index 1f858d0..b30c367c 100644
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -2102,13 +2102,13 @@
 
   // The logic below (via CheckQuotaManagedDataDeletionStatus) only
   // invokes the callback when all processing is complete.
-  base::RepeatingClosure done_callback = base::AdaptCallbackForRepeating(
+  base::OnceClosure done_callback =
       perform_storage_cleanup
           ? base::BindOnce(&PerformQuotaManagerStorageCleanup,
                            base::WrapRefCounted(quota_manager),
                            quota_storage_type, quota_client_types,
                            std::move(callback))
-          : std::move(callback));
+          : std::move(callback);
 
   size_t* deletion_task_count = new size_t(0u);
   (*deletion_task_count)++;
@@ -2122,15 +2122,19 @@
       continue;
     }
 
+    auto split_callback = base::SplitOnceCallback(std::move(done_callback));
+    done_callback = std::move(split_callback.first);
+
     (*deletion_task_count)++;
     quota_manager->DeleteOriginData(
         origin, quota_storage_type, quota_client_types,
         base::BindOnce(&OnQuotaManagedOriginDeleted, origin, quota_storage_type,
-                       deletion_task_count, done_callback));
+                       deletion_task_count, std::move(split_callback.second)));
   }
   (*deletion_task_count)--;
 
-  CheckQuotaManagedDataDeletionStatus(deletion_task_count, done_callback);
+  CheckQuotaManagedDataDeletionStatus(deletion_task_count,
+                                      std::move(done_callback));
 }
 
 base::OnceClosure
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc
index 3ef2c45..ae7539c 100644
--- a/content/browser/web_contents/web_contents_view_aura.cc
+++ b/content/browser/web_contents/web_contents_view_aura.cc
@@ -901,13 +901,13 @@
 }
 
 Visibility WebContentsViewAura::GetVisibility() const {
-  if (window_->occlusion_state() == aura::Window::OcclusionState::VISIBLE)
+  if (window_->GetOcclusionState() == aura::Window::OcclusionState::VISIBLE)
     return Visibility::VISIBLE;
 
-  if (window_->occlusion_state() == aura::Window::OcclusionState::OCCLUDED)
+  if (window_->GetOcclusionState() == aura::Window::OcclusionState::OCCLUDED)
     return Visibility::OCCLUDED;
 
-  DCHECK_EQ(window_->occlusion_state(), aura::Window::OcclusionState::HIDDEN);
+  DCHECK_EQ(window_->GetOcclusionState(), aura::Window::OcclusionState::HIDDEN);
   return Visibility::HIDDEN;
 }
 
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
index 6e902de6..ae8679b5 100644
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -348,8 +348,6 @@
            features::kAllowContentInitiatedDataUrlNavigations},
           {"AndroidDownloadableFontsMatching",
            features::kAndroidDownloadableFontsMatching},
-          {"AudioWorkletRealtimeThread",
-           blink::features::kAudioWorkletRealtimeThread},
           {"BlockCredentialedSubresources",
            features::kBlockCredentialedSubresources},
           {"COLRV1Fonts", blink::features::kCOLRV1Fonts},
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
index bdff6db..1b5ddd0 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -271,7 +271,9 @@
 // Disables WebGL rendering into a scanout buffer for overlay support.
 const char kDisableWebGLImageChromium[]     = "disable-webgl-image-chromium";
 
-// Don't enforce the same-origin policy. (Used by people testing their sites.)
+// Don't enforce the same-origin policy; meant for website testing only.
+// This switch has no effect unless --user-data-dir (as defined by the content
+// embedder) is also present.
 const char kDisableWebSecurity[]            = "disable-web-security";
 
 // Disable the video decoder from drawing directly to a texture.
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index b1853de..4741b58 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -1440,7 +1440,7 @@
       viz::FrameSinkId(RenderThread::Get()->GetClientId(),
                        params->widget_params->routing_id),
       is_for_nested_main_frame,
-      /*hidden=*/true, render_view->widgets_never_composited());
+      /*hidden=*/true);
   web_frame_widget->InitializeCompositing(
       agent_scheduling_group.agent_group_scheduler(),
       params->widget_params->visual_properties.screen_infos,
@@ -1629,7 +1629,7 @@
         viz::FrameSinkId(RenderThread::Get()->GetClientId(),
                          widget_params->routing_id),
         /*is_for_nested_main_frame=*/false,
-        /*hidden=*/true, render_view->widgets_never_composited());
+        /*hidden=*/true);
     web_frame_widget->InitializeCompositing(
         agent_scheduling_group.agent_group_scheduler(),
         widget_params->visual_properties.screen_infos,
@@ -1671,7 +1671,7 @@
         viz::FrameSinkId(RenderThread::Get()->GetClientId(),
                          widget_params->routing_id),
         /*is_for_nested_main_frame=*/false,
-        /*hidden=*/true, render_view->widgets_never_composited());
+        /*hidden=*/true);
     web_frame_widget->InitializeCompositing(
         agent_scheduling_group.agent_group_scheduler(),
         widget_params->visual_properties.screen_infos,
@@ -1968,7 +1968,11 @@
     PepperPluginInstanceImpl* instance) {
   if (instance != focused_pepper_plugin_)
     return;
-  SyncSelectionIfRequired();
+
+  // We have no reason to believe the locally cached last synced selection is
+  // invalid so we do not need to force the update if it matches our last synced
+  // value.
+  SyncSelectionIfRequired(blink::SyncCondition::kNotForced);
 }
 
 #endif  // BUILDFLAG(ENABLE_PLUGINS)
@@ -3879,7 +3883,8 @@
   navigation_client_impl_.reset();
 }
 
-void RenderFrameImpl::DidChangeSelection(bool is_empty_selection) {
+void RenderFrameImpl::DidChangeSelection(bool is_empty_selection,
+                                         blink::SyncCondition force_sync) {
   if (!GetLocalRootWebFrameWidget()->HandlingInputEvent() &&
       !GetLocalRootWebFrameWidget()->HandlingSelectRange())
     return;
@@ -3893,7 +3898,7 @@
   // to notify the selection was changed.  Focus change should be notified
   // before selection change.
   GetLocalRootWebFrameWidget()->UpdateTextInputState();
-  SyncSelectionIfRequired();
+  SyncSelectionIfRequired(force_sync);
 }
 
 void RenderFrameImpl::OnMainFrameIntersectionChanged(
@@ -5209,7 +5214,7 @@
     GetFrameHost()->UpdateEncoding(encoding_name);
 }
 
-void RenderFrameImpl::SyncSelectionIfRequired() {
+void RenderFrameImpl::SyncSelectionIfRequired(blink::SyncCondition force_sync) {
   std::u16string text;
   size_t offset;
   gfx::Range range;
@@ -5257,7 +5262,8 @@
   // Sometimes we get repeated didChangeSelection calls from webkit when
   // the selection hasn't actually changed. We don't want to report these
   // because it will cause us to continually claim the X clipboard.
-  if (selection_text_offset_ != offset || selection_range_ != range ||
+  if (force_sync == blink::SyncCondition::kForced ||
+      selection_text_offset_ != offset || selection_range_ != range ||
       selection_text_ != text) {
     selection_text_ = text;
     selection_text_offset_ = offset;
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 45dce82..8623e91 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -546,7 +546,8 @@
   void DidUpdateCurrentHistoryItem() override;
   base::UnguessableToken GetDevToolsFrameToken() override;
   void AbortClientNavigation() override;
-  void DidChangeSelection(bool is_empty_selection) override;
+  void DidChangeSelection(bool is_empty_selection,
+                          blink::SyncCondition force_sync) override;
   void FocusedElementChanged(const blink::WebElement& element) override;
   void OnMainFrameIntersectionChanged(const gfx::Rect& intersect_rect) override;
   void WillSendRequest(blink::WebURLRequest& request,
@@ -599,11 +600,12 @@
   void OnStopLoading() override;
   void DraggableRegionsChanged() override;
   blink::BrowserInterfaceBrokerProxy* GetBrowserInterfaceBroker() override;
+
   // Dispatches the current state of selection on the webpage to the browser if
-  // it has changed.
-  // TODO(varunjain): delete this method once we figure out how to keep
-  // selection handles in sync with the webpage.
-  void SyncSelectionIfRequired() override;
+  // it has changed or if the forced flag is passed. The forced flag is used
+  // when the browser selection may be out of sync with the renderer due to
+  // incorrect prediction.
+  void SyncSelectionIfRequired(blink::SyncCondition force_sync) override;
   void CreateAudioInputStream(
       blink::CrossVariantMojoRemote<
           blink::mojom::RendererAudioInputStreamFactoryClientInterfaceBase>
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 800184b3..1f10156 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -110,7 +110,6 @@
     : routing_id_(params.view_id),
       renderer_wide_named_frame_lookup_(
           params.renderer_wide_named_frame_lookup),
-      widgets_never_composited_(params.never_composited),
       agent_scheduling_group_(agent_scheduling_group) {
   // Please put all logic in RenderViewImpl::Initialize().
 }
@@ -129,7 +128,7 @@
   webview_ = WebView::Create(
       this, params->hidden,
       params->type == mojom::ViewWidgetType::kPortal ? true : false,
-      /*compositing_enabled=*/true,
+      /*compositing_enabled=*/true, params->never_composited,
       opener_frame ? opener_frame->View() : nullptr,
       std::move(params->blink_page_broadcast),
       agent_scheduling_group_.agent_group_scheduler(),
@@ -452,10 +451,6 @@
                               this, &RenderViewImpl::SendFrameStateUpdates);
 }
 
-bool RenderViewImpl::AcceptsLoadDrops() {
-  return GetRendererPreferences().can_accept_load_drops;
-}
-
 void RenderViewImpl::RegisterRendererPreferenceWatcher(
     mojo::PendingRemote<blink::mojom::RendererPreferenceWatcher> watcher) {
   GetWebView()->RegisterRendererPreferenceWatcher(std::move(watcher));
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h
index 60e6bce..fc9408102 100644
--- a/content/renderer/render_view_impl.h
+++ b/content/renderer/render_view_impl.h
@@ -104,16 +104,6 @@
   // Returns the RenderViewImpl for the given routing ID.
   static RenderViewImpl* FromRoutingID(int routing_id);
 
-  // When true, a hint to all RenderWidgets that they will never be
-  // user-visible and thus never need to produce pixels for display. This is
-  // separate from page visibility, as background pages can be marked visible in
-  // blink even though they are not user-visible. Page visibility controls blink
-  // behaviour for javascript, timers, and such to inform blink it is in the
-  // foreground or background. Whereas this bit refers to user-visibility and
-  // whether the tab needs to produce pixels to put on the screen at some point
-  // or not.
-  bool widgets_never_composited() const { return widgets_never_composited_; }
-
   void set_send_content_state_immediately(bool value) {
     send_content_state_immediately_ = value;
   }
@@ -149,7 +139,6 @@
       bool& consumed_user_gesture,
       const base::Optional<blink::WebImpression>& impression) override;
   void PrintPage(blink::WebLocalFrame* frame) override;
-  bool AcceptsLoadDrops() override;
   bool CanUpdateLayout() override;
   void OnPageFrozenChanged(bool frozen) override;
   void DidUpdateRendererPreferences() override;
@@ -217,16 +206,6 @@
   // beyond the usual opener-relationship-based BrowsingInstance boundaries).
   const bool renderer_wide_named_frame_lookup_;
 
-  // A value provided by the browser to state that all RenderWidgets in this
-  // RenderView's frame tree will never be user-visible and thus never need to
-  // produce pixels for display. This is separate from Page visibility, as
-  // non-user-visible pages can still be marked visible for blink. Page
-  // visibility controls blink behaviour for javascript, timers, and such to
-  // inform blink it is in the foreground or background. Whereas this bit refers
-  // to user-visibility and whether the tab needs to produce pixels to put on
-  // the screen at some point or not.
-  const bool widgets_never_composited_;
-
   // Settings ------------------------------------------------------------------
 
   // Whether content state (such as form state, scroll position and page
diff --git a/content/test/data/gpu/vc/webgpu_video.js b/content/test/data/gpu/vc/webgpu_video.js
index 89053647..a408f0c 100644
--- a/content/test/data/gpu/vc/webgpu_video.js
+++ b/content/test/data/gpu/vc/webgpu_video.js
@@ -205,46 +205,38 @@
   });
 
   const pipeline = device.createRenderPipeline({
-    vertexStage: {
+    vertex: {
       module: device.createShaderModule({
         code: wgslShaders.vertex,
       }),
       entryPoint: 'main',
+      buffers: [{
+        arrayStride: 16,
+        attributes: [{
+          // position
+          shaderLocation: 0,
+          offset: 0,
+          format: 'float32x2',
+        },{
+          // uv
+          shaderLocation: 1,
+          offset: 8,
+          format: 'float32x2',
+        }],
+      }],
     },
-    fragmentStage: {
+    fragment: {
       module: device.createShaderModule({
         code: wgslShaders.fragment,
       }),
       entryPoint: 'main',
-    },
-    primitiveTopology: 'triangle-list',
-    vertexState: {
-      vertexBuffers: [
-        {
-          arrayStride: 16,
-          attributes: [
-            {
-              // position
-              shaderLocation: 0,
-              offset: 0,
-              format: 'float32x2',
-            },
-            {
-              // uv
-              shaderLocation: 1,
-              offset: 8,
-              format: 'float32x2',
-            },
-          ],
-        },
-      ],
-    },
-
-    colorStates: [
-      {
+      targets: [{
         format: swapChainFormat,
-      },
-    ],
+      }]
+    },
+    primitive: {
+      topology: 'triangle-list',
+    },
   });
 
   const renderPassDescriptor = {
@@ -252,6 +244,7 @@
       {
         attachment: undefined, // Assigned later
         loadValue: { r: 1.0, g: 1.0, b: 1.0, a: 1.0 },
+        storeOp: 'store',
       },
     ],
   };
@@ -296,39 +289,33 @@
     createVertexBufferForIcons(device, videos, videoRows, videoColumns);
 
   const pipelineForIcons = device.createRenderPipeline({
-    vertexStage: {
+    vertex: {
       module: device.createShaderModule({
         code: wgslShaders.vertex_icons,
       }),
       entryPoint: 'main',
+      buffers: [{
+        arrayStride: 8,
+        attributes: [{
+          // position
+          shaderLocation: 0,
+          offset: 0,
+          format: 'float32x2',
+        }],
+      }],
     },
-    fragmentStage: {
+    fragment: {
       module: device.createShaderModule({
         code: wgslShaders.fragment_output_red,
       }),
       entryPoint: 'main',
-    },
-    primitiveTopology: 'triangle-list',
-    vertexState: {
-      vertexBuffers: [
-        {
-          arrayStride: 8,
-          attributes: [
-            {
-              // position
-              shaderLocation: 0,
-              offset: 0,
-              format: 'float32x2',
-            },
-          ],
-        },
-      ],
-    },
-    colorStates: [
-      {
+      targets: [{
         format: swapChainFormat,
-      },
-    ],
+      }]
+    },
+    primitive: {
+      topology: 'triangle-list',
+    }
   });
 
   // videos #0-#3 : 30 fps.
diff --git a/content/test/data/gpu/webgpu-import-video.html b/content/test/data/gpu/webgpu-import-video.html
index d521cb9b..3134e5a4 100644
--- a/content/test/data/gpu/webgpu-import-video.html
+++ b/content/test/data/gpu/webgpu-import-video.html
@@ -28,7 +28,7 @@
         });
 
         const pipeline = device.createRenderPipeline({
-          vertexStage: {
+          vertex: {
             module: device.createShaderModule({
               code: `
 struct VertexOutput {
@@ -64,7 +64,7 @@
             }),
             entryPoint: 'main',
           },
-          fragmentStage: {
+          fragment: {
             module: device.createShaderModule({
               code: `
 [[binding(0), group(0)]] var mySampler: sampler;
@@ -85,13 +85,13 @@
 `,
             }),
             entryPoint: 'main',
-          },
-          primitiveTopology: 'triangle-list',
-          colorStates: [
-            {
+            targets: [{
               format: swapChainFormat,
-            },
-          ],
+            }],
+          },
+          primitive: {
+            topology: 'triangle-list',
+          },
         });
 
         const linearSampler = device.createSampler({
@@ -104,6 +104,7 @@
             {
               attachment: undefined, // Assigned later
               loadValue: { r: 0.0, g: 0.0, b: 0.0, a: 1.0 },
+              storeOp: 'store',
             },
           ],
         };
diff --git a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
index dcc7a09..9867dc7 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webcodecs_expectations.txt
@@ -68,6 +68,7 @@
 crbug.com/1204831 [ chromeos-board-kevin ] WebCodecs_Encode_hw_decoder_avc1.42001E_require [ Failure ]
 crbug.com/1204831 [ chromeos-board-kevin ] WebCodecs_Encode_capture_vp8_require [ Failure ]
 crbug.com/1204831 [ chromeos-board-kevin ] WebCodecs_Encode_capture_avc1.42001E_require [ Failure ]
+crbug.com/1208827 [ chromeos-board-amd64-generic ] WebCodecs_Encode_capture_avc1.42001E_require [ RetryOnFailure ]
 
 crbug.com/1207682 [ android ] WebCodecs_* [ RetryOnFailure ]
 
diff --git a/content/web_test/renderer/web_frame_test_proxy.cc b/content/web_test/renderer/web_frame_test_proxy.cc
index b1851a5..ff3041b8 100644
--- a/content/web_test/renderer/web_frame_test_proxy.cc
+++ b/content/web_test/renderer/web_frame_test_proxy.cc
@@ -389,13 +389,14 @@
   test_runner()->RemoveLoadingFrame(GetWebFrame());
 }
 
-void WebFrameTestProxy::DidChangeSelection(bool is_selection_empty) {
+void WebFrameTestProxy::DidChangeSelection(bool is_selection_empty,
+                                           blink::SyncCondition force_sync) {
   if (test_runner()->ShouldDumpEditingCallbacks()) {
     test_runner()->PrintMessage(
         "EDITING DELEGATE: "
         "webViewDidChangeSelection:WebViewDidChangeSelectionNotification\n");
   }
-  RenderFrameImpl::DidChangeSelection(is_selection_empty);
+  RenderFrameImpl::DidChangeSelection(is_selection_empty, force_sync);
 }
 
 void WebFrameTestProxy::DidChangeContents() {
diff --git a/content/web_test/renderer/web_frame_test_proxy.h b/content/web_test/renderer/web_frame_test_proxy.h
index f6da964..d366b6a 100644
--- a/content/web_test/renderer/web_frame_test_proxy.h
+++ b/content/web_test/renderer/web_frame_test_proxy.h
@@ -64,7 +64,8 @@
                               const blink::WebString& stack_trace) override;
   void DidStartLoading() override;
   void DidStopLoading() override;
-  void DidChangeSelection(bool is_selection_empty) override;
+  void DidChangeSelection(bool is_selection_empty,
+                          blink::SyncCondition force_sync) override;
   void DidChangeContents() override;
   blink::WebEffectiveConnectionType GetEffectiveConnectionType() override;
   void UpdateContextMenuDataForTesting(
diff --git a/dbus/end_to_end_sync_unittest.cc b/dbus/end_to_end_sync_unittest.cc
index 3ece057..6035968d 100644
--- a/dbus/end_to_end_sync_unittest.cc
+++ b/dbus/end_to_end_sync_unittest.cc
@@ -5,6 +5,8 @@
 #include <memory>
 
 #include "base/memory/ref_counted.h"
+#include "base/run_loop.h"
+#include "base/test/task_environment.h"
 #include "dbus/bus.h"
 #include "dbus/message.h"
 #include "dbus/object_path.h"
@@ -47,6 +49,8 @@
   }
 
  protected:
+  base::test::SingleThreadTaskEnvironment task_environment_{
+      base::test::SingleThreadTaskEnvironment::MainThreadType::IO};
   std::unique_ptr<TestService> test_service_;
   scoped_refptr<Bus> client_bus_;
   ObjectProxy* object_proxy_;
@@ -123,4 +127,25 @@
   ASSERT_FALSE(response.get());
 }
 
+TEST_F(EndToEndSyncTest, ConnectToSignalAndBlock) {
+  constexpr char kMessage[] = "hello";
+  base::RunLoop run_loop;
+  std::string test_signal_string;
+  EXPECT_TRUE(object_proxy_->ConnectToSignalAndBlock(
+      "org.chromium.TestInterface", "Test",
+      base::BindRepeating(
+          [](base::OnceClosure quit_closure, std::string* return_string,
+             Signal* signal) {
+            MessageReader reader(signal);
+            ASSERT_TRUE(reader.PopString(return_string));
+            std::move(quit_closure).Run();
+          },
+          run_loop.QuitClosure(), &test_signal_string)));
+  test_service_->SendTestSignal(kMessage);
+  run_loop.Run();
+  EXPECT_EQ(test_signal_string, kMessage);
+  // Ensure resources on the DBus thread are cleaned up.
+  task_environment_.RunUntilIdle();
+}
+
 }  // namespace dbus
diff --git a/dbus/object_proxy.cc b/dbus/object_proxy.cc
index 0f940f9..cb83ae8 100644
--- a/dbus/object_proxy.cc
+++ b/dbus/object_proxy.cc
@@ -251,20 +251,40 @@
   if (bus_->HasDBusThread()) {
     base::PostTaskAndReplyWithResult(
         bus_->GetDBusTaskRunner(), FROM_HERE,
-        base::BindOnce(&ObjectProxy::ConnectToSignalInternal, this,
+        base::BindOnce(&ObjectProxy::ConnectToSignalAndBlock, this,
                        interface_name, signal_name, signal_callback),
         base::BindOnce(std::move(on_connected_callback), interface_name,
                        signal_name));
   } else {
     // If the bus doesn't have a dedicated dbus thread we need to call
-    // ConnectToSignalInternal directly otherwise we might miss a signal
+    // ConnectToSignalAndBlock directly otherwise we might miss a signal
     // that is currently queued if we do a PostTask.
     const bool success =
-        ConnectToSignalInternal(interface_name, signal_name, signal_callback);
+        ConnectToSignalAndBlock(interface_name, signal_name, signal_callback);
     std::move(on_connected_callback).Run(interface_name, signal_name, success);
   }
 }
 
+bool ObjectProxy::ConnectToSignalAndBlock(const std::string& interface_name,
+                                          const std::string& signal_name,
+                                          SignalCallback signal_callback) {
+  bus_->AssertOnDBusThread();
+
+  if (!ConnectToNameOwnerChangedSignal())
+    return false;
+
+  const std::string absolute_signal_name =
+      GetAbsoluteMemberName(interface_name, signal_name);
+
+  // Add a match rule so the signal goes through HandleMessage().
+  const std::string match_rule = base::StringPrintf(
+      "type='signal', sender='%s', interface='%s', path='%s'",
+      service_name_.c_str(), interface_name.c_str(),
+      object_path_.value().c_str());
+  return AddMatchRuleWithCallback(match_rule, absolute_signal_name,
+                                  signal_callback);
+}
+
 void ObjectProxy::SetNameOwnerChangedCallback(
     NameOwnerChangedCallback callback) {
   bus_->AssertOnOriginThread();
@@ -465,26 +485,6 @@
       << object_path_.value();
 }
 
-bool ObjectProxy::ConnectToSignalInternal(const std::string& interface_name,
-                                          const std::string& signal_name,
-                                          SignalCallback signal_callback) {
-  bus_->AssertOnDBusThread();
-
-  if (!ConnectToNameOwnerChangedSignal())
-    return false;
-
-  const std::string absolute_signal_name =
-      GetAbsoluteMemberName(interface_name, signal_name);
-
-  // Add a match rule so the signal goes through HandleMessage().
-  const std::string match_rule = base::StringPrintf(
-      "type='signal', sender='%s', interface='%s', path='%s'",
-      service_name_.c_str(), interface_name.c_str(),
-      object_path_.value().c_str());
-  return AddMatchRuleWithCallback(match_rule, absolute_signal_name,
-                                  signal_callback);
-}
-
 void ObjectProxy::WaitForServiceToBeAvailableInternal() {
   bus_->AssertOnDBusThread();
 
@@ -704,7 +704,7 @@
   // Errors should be suppressed here, as the service may not be yet running
   // when connecting to signals of the service, which is just fine.
   // The ObjectProxy will be notified when the service is launched via
-  // NameOwnerChanged signal. See also comments in ConnectToSignalInternal().
+  // NameOwnerChanged signal. See also comments in ConnectToSignalAndBlock().
   service_name_owner_ =
       bus_->GetServiceOwnerAndBlock(service_name_, Bus::SUPPRESS_ERRORS);
 }
diff --git a/dbus/object_proxy.h b/dbus/object_proxy.h
index b2b509b..b5af4e3d 100644
--- a/dbus/object_proxy.h
+++ b/dbus/object_proxy.h
@@ -188,6 +188,14 @@
                                SignalCallback signal_callback,
                                OnConnectedCallback on_connected_callback);
 
+  // Blocking version of ConnectToSignal.  Returns true on success.  Must be
+  // called from the DBus thread.
+  //
+  // BLOCKING CALL.
+  virtual bool ConnectToSignalAndBlock(const std::string& interface_name,
+                                       const std::string& signal_name,
+                                       SignalCallback signal_callback);
+
   // Sets a callback for "NameOwnerChanged" signal. The callback is called on
   // the origin thread when D-Bus system sends "NameOwnerChanged" for the name
   // represented by |service_name_|.
@@ -268,11 +276,6 @@
   // Tries to connect to NameOwnerChanged signal, ignores any error.
   void TryConnectToNameOwnerChangedSignal();
 
-  // Helper function for ConnectToSignal().
-  bool ConnectToSignalInternal(const std::string& interface_name,
-                               const std::string& signal_name,
-                               SignalCallback signal_callback);
-
   // Helper function for WaitForServiceToBeAvailable().
   void WaitForServiceToBeAvailableInternal();
 
diff --git a/docs/android_dynamic_feature_modules.md b/docs/android_dynamic_feature_modules.md
index 3d41f855..81182a5 100644
--- a/docs/android_dynamic_feature_modules.md
+++ b/docs/android_dynamic_feature_modules.md
@@ -33,6 +33,14 @@
 unzip -l foo.apks
 ```
 
+*** note
+Adding new features vis feature splits is highly encouraged when it makes sense
+to do so:
+ * Has a non-trivial amount of Dex (>50kb)
+ * Not needed on startup
+ * Has a small integration surface (calls into it must be done with reflection).
+***
+
 The remainder of this doc focuses on DFMs.
 
 [android_build_instructions.md#multiple-chrome-targets]: android_build_instructions.md#multiple-chrome-targets
diff --git a/docs/flag_expiry.md b/docs/flag_expiry.md
index 49bf419..8e41b71 100644
--- a/docs/flag_expiry.md
+++ b/docs/flag_expiry.md
@@ -53,8 +53,10 @@
 ## Removing A Flag
 If a flag is no longer used (for instance, it was used to control a feature
 that has since launched), the flag should be removed. Delete the entry in
-[`//chrome/browser/about_flags.cc`](../chrome/browser/about_flags.cc) (and any
-corresponding entries for the flag description), and remove any references in
+[`//chrome/browser/about_flags.cc`](../chrome/browser/about_flags.cc) or
+[`//ios/chrome/browser/flags/about_flags.mm`](../ios/chrome/browser/flags/about_flags.mm)
+for iOS (and any corresponding entries for the flag description), and remove any
+references in
 [`//chrome/browser/flag-metadata.json`](../chrome/browser/flag-metadata.json).
 
 ## Removed Flags
@@ -76,7 +78,7 @@
 * [`//chrome/browser/flag-metadata.json`](../chrome/browser/flag-metadata.json)
 * [`//chrome/browser/flag-never-expire-list.json`](../chrome/browser/flag-never-expire-list.json)
 * [`//chrome/browser/expired_flags_list.h`](../chrome/browser/expired_flags_list.h)
-* [`//ios/chrome/browser/about_flags.mm`](../ios/chrome/browser/about_flags.mm)
+* [`//ios/chrome/browser/flags/about_flags.mm`](../ios/chrome/browser/flags/about_flags.mm)
 * [`//tools/flags/generate_expired_list.py`](../tools/flags/generate_expired_list.py)
 * [`//tools/flags/generate_unexpire_flags.py`](../tools/flags/generate_unexpire_flags.py)
 
diff --git a/docs/flag_ownership.md b/docs/flag_ownership.md
index 280c8984..1b12ee37 100644
--- a/docs/flag_ownership.md
+++ b/docs/flag_ownership.md
@@ -22,7 +22,7 @@
 - **If it is not in use:** delete the entry from the [`//chrome/browser/flag-metadata.json`](../chrome/browser/flag-metadata.json)
   file, and delete it from `kFeatureEntries` in
   [`//chrome/browser/about_flags.cc`](../chrome/browser/about_flags.cc) or
-  [`//ios/chrome/browser/about_flags.mm`](../ios/chrome/browser/about_flags.mm)
+  [`//ios/chrome/browser/flags/about_flags.mm`](../ios/chrome/browser/flags/about_flags.mm)
   for iOS. Remember to file a cleanup bug to remove code paths that become dead.
 
 ## Wait, What Are You Doing?
@@ -91,6 +91,6 @@
 * [`//chrome/browser/flag-metadata.json`](../chrome/browser/flag-metadata.json)
 * [`//chrome/browser/flag-never-expire-list.json`](../chrome/browser/flag-never-expire-list.json)
 * [`//chrome/browser/expired_flags_list.h`](../chrome/browser/expired_flags_list.h)
-* [`//ios/chrome/browser/about_flags.mm`](../ios/chrome/browser/about_flags.mm)
+* [`//ios/chrome/browser/flags/about_flags.mm`](../ios/chrome/browser/flags/about_flags.mm)
 * [`//tools/flags/generate_expired_list.py`](../tools/flags/generate_expired_list.py)
 * [`//tools/flags/generate_unexpire_flags.py`](../tools/flags/generate_unexpire_flags.py)
diff --git a/docs/speed/binary_size/binary_size_explainer.md b/docs/speed/binary_size/binary_size_explainer.md
index 947c561..1689830 100644
--- a/docs/speed/binary_size/binary_size_explainer.md
+++ b/docs/speed/binary_size/binary_size_explainer.md
@@ -22,10 +22,16 @@
     * Googlers, see also [go/chromeapksizes], and [go/chromemilestonesizes].
   * For other platforms: look for "sizes".
 * As of 2019, Chrome for Android (arm32) grows by about 100kb per week.
+* To get a feeling for how large individual features are, open a
+  [milestone size breakdown] and group by "Component" (Googlers only).
+  * For non-googlers, run `//tools/binary_size/supersize archive` on a release
+    build to create a `.size` file, and upload it to [the viewer].
 
 [go/chromeapksizes]: http://go/chromeapksizes
 [go/chromemilestonesizes]: http://go/chromemilestonesizes
- 
+[milestone size breakdown]: https://goto.google.com/chrome-supersize
+[the viewer]: https://chrome-supersize.firebaseapp.com/viewer.html
+
 ## Why care about binary size?
 
 * Takes disk space away from users.
@@ -67,7 +73,7 @@
 [binary-size@]: https://groups.google.com/a/chromium.org/g/binary-size/
 [size_trybot]: /docs/speed/binary_size/android_binary_size_trybot.md
 
-## Where Size Lives Matters
+## How Chrome is Packaged
 
 ### WebView vs Chrome
 
@@ -79,7 +85,6 @@
 
 [android\_build\_instructions.md]: /docs/android_build_instructions.md#Multiple-Chrome-Targets
 
-
 ### APK Splits
 
 Chrome ships as an [Android App Bundle], and consists of several APK splits.
@@ -92,14 +97,12 @@
 * Keeping its dex size minimal is crucial, since it has both RAM and start-up
   overhead _per-renderer_.
 
-
 #### In the "chrome" feature split
 
 * Loaded on start-up by the browser process.
 * Important to keep dex size small in order to have Chrome start-up quickly,
   and to minimize our baseline memory requirement.
 
-
 #### In another feature split
 
 * Since they are loaded on-demand, binary size matters proportionally to the
diff --git a/docs/speed/binary_size/optimization_advice.md b/docs/speed/binary_size/optimization_advice.md
index 8613d23..700869e 100644
--- a/docs/speed/binary_size/optimization_advice.md
+++ b/docs/speed/binary_size/optimization_advice.md
@@ -1,7 +1,6 @@
-# Optimizing Chrome's Image Size
+# Optimizing Chrome's Binary Size
 
-The Chrome image size is important on all platforms as it affects download
-and update times.
+Read first: [binary_size_explainer.md](binary_size_explainer.md)
 
  >
  > This document primarily focuses on Android and Chrome OS where image size
@@ -113,25 +112,6 @@
 
 ## Android Focused Advice
 
-Googlers: See also [go/abp-performance/apk-size].
-
-[go/abp-performance/apk-size]: https://goto.google.com/abp-performance/apk-size
-
-### How To Tell if It's Worth Spending Time on Binary Size?
-
- * Binary size is a shared resource, and thus its growth is largely due to the
-   tragedy of the commons.
- * It typically takes about a week of engineering time to reduce Android's
-   binary size by 50kb.
- * As of 2019, Chrome for Android (arm32) grows by about 100kb per week.
- * To get a feeling for how large existing features are, refer to the
-   [milestone size breakdowns] and group by "Component" (Googlers only).
-   * For non-googlers, run `//tools/binary_size/supersize archive` on a release
-     build to create a `.size` file, and upload it to [the viewer]
-
-[milestone size breakdowns]: https://goto.google.com/chrome-supersize
-[the viewer]: https://chrome-supersize.firebaseapp.com/viewer.html
-
 ### Optimizing Translations (Strings)
 
  * Use [Android System strings](https://developer.android.com/reference/android/R.string.html) where appropriate
@@ -232,6 +212,12 @@
          a single `base::StringPiece`.
 
 #### Optimizing Java Code
+ * If you're adding a new feature, see if it makes sense for it to be packaged
+   into its own [feature split]. E.g.:
+   * Has a non-trivial amount of Dex (>50kb)
+   * Not needed on startup
+   * Has a small integration surface (calls into it must be done with
+     reflection).
  * Prefer fewer large JNI calls over many small JNI calls.
  * Minimize the use of class initializers (`<clinit>()`).
    * If R8 cannot determine that they are "trivial", they will prevent
@@ -252,15 +238,14 @@
  * Ensure unused code is optimized away by R8.
    * See [here][proguard-build-doc] for more info on how Chrome uses ProGuard.
    * Add `@CheckDiscard` to methods or classes that you expect R8 to inline.
-   * Add `@RemovableInRelease` to force a method to be a no-op when DCHECKs
-     are disabled.
+   * Guard code with `BuildConfig.ENABLE_ASSERTS` to strip it in release builds.
    * Use [//third_party/r8/playground][r8-playground] to figure out how various
      coding patterns are optimized by R8.
    * Build with `enable_proguard_obfuscation = false` and use
      `//third_party/android_sdk/public/build-tools/*/dexdump` to see how code was
      optimized directly in apk / bundle targets.
-     
 
+[feature split]: /docs/android_dynamic_feature_modules.md
 [proguard-build-doc]: /build/android/docs/java_optimization.md
 [size-trybot]: /tools/binary_size/README.md#Binary-Size-Trybot-android_binary_size
 [diagnose_bloat]: /tools/binary_size/README.md#diagnose_bloat_py
diff --git a/extensions/browser/content_hash_fetcher_unittest.cc b/extensions/browser/content_hash_fetcher_unittest.cc
index 19c8f5e..043ce757 100644
--- a/extensions/browser/content_hash_fetcher_unittest.cc
+++ b/extensions/browser/content_hash_fetcher_unittest.cc
@@ -233,8 +233,7 @@
   // Tamper with a file in the extension.
   base::FilePath script_path = extension_root().AppendASCII("script.js");
   std::string addition = "//hello world";
-  ASSERT_TRUE(
-      base::AppendToFile(script_path, addition.c_str(), addition.size()));
+  ASSERT_TRUE(base::AppendToFile(script_path, addition));
 
   RegisterInterception(fetch_url(), GetResourcePath("verified_contents.json"));
 
diff --git a/extensions/renderer/scoped_web_frame.cc b/extensions/renderer/scoped_web_frame.cc
index 215c0d4a..c486a7c 100644
--- a/extensions/renderer/scoped_web_frame.cc
+++ b/extensions/renderer/scoped_web_frame.cc
@@ -23,6 +23,7 @@
           /*is_hidden=*/false,
           /*is_inside_portal=*/false,
           /*compositing_enabled=*/false,
+          /*widgets_never_composited=*/false,
           /*opener=*/nullptr,
           mojo::NullAssociatedReceiver(),
           *agent_group_scheduler_,
diff --git a/fuchsia/engine/browser/frame_layout_manager.cc b/fuchsia/engine/browser/frame_layout_manager.cc
index 6f2c66f..86de1f5 100644
--- a/fuchsia/engine/browser/frame_layout_manager.cc
+++ b/fuchsia/engine/browser/frame_layout_manager.cc
@@ -45,7 +45,7 @@
 }
 
 void FrameLayoutManager::OnWindowAddedToLayout(aura::Window* child) {
-  if (child->type() == aura::client::WINDOW_TYPE_CONTROL) {
+  if (child->GetType() == aura::client::WINDOW_TYPE_CONTROL) {
     DCHECK(!main_child_);
     main_child_ = child;
     SetChildBoundsDirect(main_child_,
@@ -61,7 +61,7 @@
 }
 
 void FrameLayoutManager::OnWillRemoveWindowFromLayout(aura::Window* child) {
-  if (child->type() == aura::client::WINDOW_TYPE_CONTROL) {
+  if (child->GetType() == aura::client::WINDOW_TYPE_CONTROL) {
     DCHECK_EQ(child, main_child_);
     main_child_ = nullptr;
   }
diff --git a/fuchsia/engine/browser/media_player_impl.cc b/fuchsia/engine/browser/media_player_impl.cc
index ec90a4c..36c964e 100644
--- a/fuchsia/engine/browser/media_player_impl.cc
+++ b/fuchsia/engine/browser/media_player_impl.cc
@@ -53,6 +53,8 @@
       return {};  // PlayerControl does not support toggling camera.
     case MediaSessionAction::kHangUp:
       return {};  // PlayerControl does not support hanging up.
+    case MediaSessionAction::kRaise:
+      return {};  // PlayerControl does not support raising.
   }
 }
 
diff --git a/fuchsia/engine/browser/media_player_impl_unittest.cc b/fuchsia/engine/browser/media_player_impl_unittest.cc
index 65b0c6c..5911c36 100644
--- a/fuchsia/engine/browser/media_player_impl_unittest.cc
+++ b/fuchsia/engine/browser/media_player_impl_unittest.cc
@@ -40,6 +40,7 @@
   MOCK_METHOD0(ToggleMicrophone, void());
   MOCK_METHOD0(ToggleCamera, void());
   MOCK_METHOD0(HangUp, void());
+  MOCK_METHOD0(Raise, void());
 
   // content::MediaSession APIs faked to implement testing behaviour.
   MOCK_METHOD1(DidReceiveAction,
diff --git a/gpu/command_buffer/service/abstract_texture_impl.cc b/gpu/command_buffer/service/abstract_texture_impl.cc
index 0ff7318..3d786d0 100644
--- a/gpu/command_buffer/service/abstract_texture_impl.cc
+++ b/gpu/command_buffer/service/abstract_texture_impl.cc
@@ -94,7 +94,15 @@
   have_context_ = false;
 }
 
-AbstractTextureImplPassthrough::AbstractTextureImplPassthrough(GLenum target) {
+AbstractTextureImplPassthrough::AbstractTextureImplPassthrough(
+    GLenum target,
+    GLenum internal_format,
+    GLsizei width,
+    GLsizei height,
+    GLsizei depth,
+    GLint border,
+    GLenum format,
+    GLenum type) {
   // Create a gles2 Texture.
   GLuint service_id = 0;
   api_ = gl::g_current_gl_context;
@@ -111,7 +119,8 @@
 
   glBindTexture(target, prev_texture);
 
-  texture_ = new TexturePassthrough(service_id, target);
+  texture_ = new TexturePassthrough(service_id, target, internal_format, width,
+                                    height, depth, border, format, type);
 }
 
 AbstractTextureImplPassthrough::~AbstractTextureImplPassthrough() {
diff --git a/gpu/command_buffer/service/abstract_texture_impl.h b/gpu/command_buffer/service/abstract_texture_impl.h
index 8d1ff5be..17fa34c 100644
--- a/gpu/command_buffer/service/abstract_texture_impl.h
+++ b/gpu/command_buffer/service/abstract_texture_impl.h
@@ -53,7 +53,14 @@
 // current context.
 class GPU_GLES2_EXPORT AbstractTextureImplPassthrough : public AbstractTexture {
  public:
-  explicit AbstractTextureImplPassthrough(GLenum target);
+  AbstractTextureImplPassthrough(GLenum target,
+                                 GLenum internal_format,
+                                 GLsizei width,
+                                 GLsizei height,
+                                 GLsizei depth,
+                                 GLint border,
+                                 GLenum format,
+                                 GLenum type);
   ~AbstractTextureImplPassthrough() override;
 
   // AbstractTexture implementation.
diff --git a/gpu/command_buffer/service/external_vk_image_factory_unittest.cc b/gpu/command_buffer/service/external_vk_image_factory_unittest.cc
index a26df7b..6b757d6 100644
--- a/gpu/command_buffer/service/external_vk_image_factory_unittest.cc
+++ b/gpu/command_buffer/service/external_vk_image_factory_unittest.cc
@@ -166,7 +166,7 @@
     ASSERT_TRUE(dawn_representation);
 
     auto dawn_scoped_access = dawn_representation->BeginScopedAccess(
-        WGPUTextureUsage_OutputAttachment,
+        WGPUTextureUsage_RenderAttachment,
         SharedImageRepresentation::AllowUnclearedAccess::kYes);
     ASSERT_TRUE(dawn_scoped_access);
 
@@ -188,7 +188,7 @@
     pass.EndPass();
     wgpu::CommandBuffer commands = encoder.Finish();
 
-    wgpu::Queue queue = dawn_device_.GetDefaultQueue();
+    wgpu::Queue queue = dawn_device_.GetQueue();
     queue.Submit(1, &commands);
   }
 
@@ -361,7 +361,7 @@
     }
 
     wgpu::CommandBuffer commands = encoder.Finish();
-    wgpu::Queue queue = dawn_device_.GetDefaultQueue();
+    wgpu::Queue queue = dawn_device_.GetQueue();
     queue.Submit(1, &commands);
 
     // Map the buffer to read back data
diff --git a/gpu/command_buffer/service/gpu_state_tracer.cc b/gpu/command_buffer/service/gpu_state_tracer.cc
index 566fe289..023a315 100644
--- a/gpu/command_buffer/service/gpu_state_tracer.cc
+++ b/gpu/command_buffer/service/gpu_state_tracer.cc
@@ -93,7 +93,7 @@
     base::StringPiece base64_input(reinterpret_cast<const char*>(&png_data[0]),
                                    png_data.size());
     std::string base64_output;
-    Base64Encode(base64_input, &base64_output);
+    base::Base64Encode(base64_input, &base64_output);
 
     *out += "\"screenshot\":\"" + base64_output + "\"";
   }
diff --git a/gpu/command_buffer/service/service_utils.cc b/gpu/command_buffer/service/service_utils.cc
index c8ec4f5..209f0a40 100644
--- a/gpu/command_buffer/service/service_utils.cc
+++ b/gpu/command_buffer/service/service_utils.cc
@@ -160,8 +160,17 @@
   gpu_preferences.enable_webgpu =
       command_line->HasSwitch(switches::kEnableUnsafeWebGPU) ||
       command_line->HasSwitch(switches::kEnableUnsafeWebGPUService);
-  gpu_preferences.enable_dawn_backend_validation =
-      command_line->HasSwitch(switches::kEnableDawnBackendValidation);
+  if (command_line->HasSwitch(switches::kEnableDawnBackendValidation)) {
+    auto value = command_line->GetSwitchValueASCII(
+        switches::kEnableDawnBackendValidation);
+    if (value.empty() || value == "full") {
+      gpu_preferences.enable_dawn_backend_validation =
+          DawnBackendValidationLevel::kFull;
+    } else if (value == "partial") {
+      gpu_preferences.enable_dawn_backend_validation =
+          DawnBackendValidationLevel::kPartial;
+    }
+  }
   if (command_line->HasSwitch(switches::kEnableDawnFeatures)) {
     gpu_preferences.enabled_dawn_features_list = base::SplitString(
         command_line->GetSwitchValueASCII(switches::kEnableDawnFeatures), ",",
diff --git a/gpu/command_buffer/service/shared_image_backing_factory_iosurface_unittest.cc b/gpu/command_buffer/service/shared_image_backing_factory_iosurface_unittest.cc
index 0a529f8..ee1bcbf2 100644
--- a/gpu/command_buffer/service/shared_image_backing_factory_iosurface_unittest.cc
+++ b/gpu/command_buffer/service/shared_image_backing_factory_iosurface_unittest.cc
@@ -413,7 +413,7 @@
   // Clear the shared image to green using Dawn.
   {
     auto scoped_access = dawn_representation->BeginScopedAccess(
-        WGPUTextureUsage_OutputAttachment,
+        WGPUTextureUsage_RenderAttachment,
         SharedImageRepresentation::AllowUnclearedAccess::kYes);
     ASSERT_TRUE(scoped_access);
     wgpu::Texture texture(scoped_access->texture());
@@ -536,7 +536,7 @@
     ASSERT_TRUE(dawn_representation);
 
     auto dawn_scoped_access = dawn_representation->BeginScopedAccess(
-        WGPUTextureUsage_OutputAttachment,
+        WGPUTextureUsage_RenderAttachment,
         SharedImageRepresentation::AllowUnclearedAccess::kYes);
     ASSERT_TRUE(dawn_scoped_access);
 
@@ -618,7 +618,7 @@
     ASSERT_TRUE(dawn_representation);
 
     auto dawn_scoped_access = dawn_representation->BeginScopedAccess(
-        WGPUTextureUsage_OutputAttachment,
+        WGPUTextureUsage_RenderAttachment,
         SharedImageRepresentation::AllowUnclearedAccess::kYes);
     ASSERT_TRUE(dawn_scoped_access);
 
diff --git a/gpu/command_buffer/service/shared_image_video.cc b/gpu/command_buffer/service/shared_image_video.cc
index 6c12b26..f9b18b6 100644
--- a/gpu/command_buffer/service/shared_image_video.cc
+++ b/gpu/command_buffer/service/shared_image_video.cc
@@ -419,7 +419,8 @@
   std::unique_ptr<gles2::AbstractTexture> texture;
   if (passthrough) {
     texture = std::make_unique<gles2::AbstractTextureImplPassthrough>(
-        GL_TEXTURE_EXTERNAL_OES);
+        GL_TEXTURE_EXTERNAL_OES, GL_RGBA, size().width(), size().height(), 1, 0,
+        GL_RGBA, GL_UNSIGNED_BYTE);
   } else {
     texture = std::make_unique<gles2::AbstractTextureImpl>(
         GL_TEXTURE_EXTERNAL_OES, GL_RGBA, size().width(), size().height(), 1, 0,
diff --git a/gpu/command_buffer/service/texture_owner.cc b/gpu/command_buffer/service/texture_owner.cc
index 686528b..8115c88 100644
--- a/gpu/command_buffer/service/texture_owner.cc
+++ b/gpu/command_buffer/service/texture_owner.cc
@@ -92,7 +92,12 @@
   gles2::FeatureInfo* feature_info = context_state->feature_info();
   if (feature_info && feature_info->is_passthrough_cmd_decoder()) {
     return std::make_unique<gles2::AbstractTextureImplPassthrough>(
-        GL_TEXTURE_EXTERNAL_OES);
+        GL_TEXTURE_EXTERNAL_OES, GL_RGBA,
+        0,  // width
+        0,  // height
+        1,  // depth
+        0,  // border
+        GL_RGBA, GL_UNSIGNED_BYTE);
   }
 
   return std::make_unique<gles2::AbstractTextureImpl>(
diff --git a/gpu/command_buffer/service/webgpu_decoder_impl.cc b/gpu/command_buffer/service/webgpu_decoder_impl.cc
index 3f82532..0615b074 100644
--- a/gpu/command_buffer/service/webgpu_decoder_impl.cc
+++ b/gpu/command_buffer/service/webgpu_decoder_impl.cc
@@ -489,8 +489,18 @@
       dawn_instance_(new dawn_native::Instance()),
       wire_serializer_(new WireServerCommandSerializer(client)) {
   dawn_instance_->SetPlatform(dawn_platform_.get());
-  dawn_instance_->EnableBackendValidation(
-      gpu_preferences.enable_dawn_backend_validation);
+  switch (gpu_preferences.enable_dawn_backend_validation) {
+    case DawnBackendValidationLevel::kDisabled:
+      break;
+    case DawnBackendValidationLevel::kPartial:
+      dawn_instance_->SetBackendValidationLevel(
+          dawn_native::BackendValidationLevel::Partial);
+      break;
+    case DawnBackendValidationLevel::kFull:
+      dawn_instance_->SetBackendValidationLevel(
+          dawn_native::BackendValidationLevel::Full);
+      break;
+  }
 
   force_enabled_toggles_ = gpu_preferences.enabled_dawn_features_list;
   force_disabled_toggles_ = gpu_preferences.disabled_dawn_features_list;
diff --git a/gpu/config/gpu_preferences.h b/gpu/config/gpu_preferences.h
index a1a81ba..a5fa582 100644
--- a/gpu/config/gpu_preferences.h
+++ b/gpu/config/gpu_preferences.h
@@ -46,6 +46,12 @@
   kLast = kDawn,
 };
 
+enum class DawnBackendValidationLevel : uint32_t {
+  kDisabled = 0,
+  kPartial = 1,
+  kFull = 2,
+};
+
 // NOTE: if you modify this structure then you must also modify the
 // following two files to keep them in sync:
 //   src/gpu/ipc/common/gpu_preferences.mojom
@@ -247,7 +253,8 @@
   bool enable_webgpu = false;
 
   // Enable validation layers in Dawn backends.
-  bool enable_dawn_backend_validation = false;
+  DawnBackendValidationLevel enable_dawn_backend_validation =
+      DawnBackendValidationLevel::kDisabled;
 
   // The Dawn features(toggles) enabled on the creation of Dawn devices.
   std::vector<std::string> enabled_dawn_features_list;
diff --git a/gpu/config/gpu_preferences_unittest.cc b/gpu/config/gpu_preferences_unittest.cc
index 2c1e6d3..07c0ae6 100644
--- a/gpu/config/gpu_preferences_unittest.cc
+++ b/gpu/config/gpu_preferences_unittest.cc
@@ -181,7 +181,9 @@
     GPU_PREFERENCES_FIELD(vulkan_sync_cpu_memory_limit, 1);
     GPU_PREFERENCES_FIELD(enable_gpu_benchmarking_extension, true)
     GPU_PREFERENCES_FIELD(enable_webgpu, true)
-    GPU_PREFERENCES_FIELD(enable_dawn_backend_validation, true)
+    GPU_PREFERENCES_FIELD_ENUM(enable_dawn_backend_validation,
+                               DawnBackendValidationLevel::kPartial,
+                               mojom::DawnBackendValidationLevel::kPartial)
     GPU_PREFERENCES_FIELD(enable_gpu_blocked_time_metric, true)
     GPU_PREFERENCES_FIELD(enable_perf_data_collection, true)
 #if defined(USE_OZONE)
@@ -277,7 +279,7 @@
   PRINT_INT(vulkan_sync_cpu_memory_limit);
   PRINT_BOOL(enable_gpu_benchmarking_extension);
   PRINT_BOOL(enable_webgpu);
-  PRINT_BOOL(enable_dawn_backend_validation);
+  PRINT_INT(enable_dawn_backend_validation);
   PRINT_BOOL(enable_gpu_blocked_time_metric);
   PRINT_BOOL(enable_perf_data_collection);
 #if defined(USE_OZONE)
diff --git a/gpu/ipc/common/gpu_preferences.mojom b/gpu/ipc/common/gpu_preferences.mojom
index 82784a5..b24af43 100644
--- a/gpu/ipc/common/gpu_preferences.mojom
+++ b/gpu/ipc/common/gpu_preferences.mojom
@@ -28,6 +28,13 @@
   kLast = kDawn,
 };
 
+// Corresponds to gpu::DawnBackendValidationLevel
+enum DawnBackendValidationLevel {
+  kDisabled = 0,
+  kPartial = 1,
+  kFull = 2,
+};
+
 // gpu::GpuPreferences
 struct GpuPreferences {
   bool disable_accelerated_video_decode;
@@ -85,7 +92,7 @@
   bool enable_metal;
   bool enable_gpu_benchmarking_extension;
   bool enable_webgpu;
-  bool enable_dawn_backend_validation;
+  DawnBackendValidationLevel enable_dawn_backend_validation;
   array<string> enabled_dawn_features_list;
   array<string> disabled_dawn_features_list;
   bool enable_gpu_blocked_time_metric;
diff --git a/gpu/ipc/common/gpu_preferences_mojom_traits.h b/gpu/ipc/common/gpu_preferences_mojom_traits.h
index a5c72f4..e7b79cf 100644
--- a/gpu/ipc/common/gpu_preferences_mojom_traits.h
+++ b/gpu/ipc/common/gpu_preferences_mojom_traits.h
@@ -96,6 +96,39 @@
 };
 
 template <>
+struct GPU_EXPORT EnumTraits<gpu::mojom::DawnBackendValidationLevel,
+                             gpu::DawnBackendValidationLevel> {
+  static gpu::mojom::DawnBackendValidationLevel ToMojom(
+      gpu::DawnBackendValidationLevel input) {
+    switch (input) {
+      case gpu::DawnBackendValidationLevel::kDisabled:
+        return gpu::mojom::DawnBackendValidationLevel::kDisabled;
+      case gpu::DawnBackendValidationLevel::kPartial:
+        return gpu::mojom::DawnBackendValidationLevel::kPartial;
+      case gpu::DawnBackendValidationLevel::kFull:
+        return gpu::mojom::DawnBackendValidationLevel::kFull;
+    }
+    NOTREACHED();
+    return gpu::mojom::DawnBackendValidationLevel::kDisabled;
+  }
+  static bool FromMojom(gpu::mojom::DawnBackendValidationLevel input,
+                        gpu::DawnBackendValidationLevel* out) {
+    switch (input) {
+      case gpu::mojom::DawnBackendValidationLevel::kDisabled:
+        *out = gpu::DawnBackendValidationLevel::kDisabled;
+        return true;
+      case gpu::mojom::DawnBackendValidationLevel::kPartial:
+        *out = gpu::DawnBackendValidationLevel::kPartial;
+        return true;
+      case gpu::mojom::DawnBackendValidationLevel::kFull:
+        *out = gpu::DawnBackendValidationLevel::kFull;
+        return true;
+    }
+    return false;
+  }
+};
+
+template <>
 struct GPU_EXPORT
     StructTraits<gpu::mojom::GpuPreferencesDataView, gpu::GpuPreferences> {
   static bool Read(gpu::mojom::GpuPreferencesDataView prefs,
@@ -176,8 +209,9 @@
     out->enable_gpu_benchmarking_extension =
         prefs.enable_gpu_benchmarking_extension();
     out->enable_webgpu = prefs.enable_webgpu();
-    out->enable_dawn_backend_validation =
-        prefs.enable_dawn_backend_validation();
+    if (!prefs.ReadEnableDawnBackendValidation(
+            &out->enable_dawn_backend_validation))
+      return false;
     if (!prefs.ReadEnabledDawnFeaturesList(&out->enabled_dawn_features_list))
       return false;
     if (!prefs.ReadDisabledDawnFeaturesList(&out->disabled_dawn_features_list))
@@ -366,7 +400,8 @@
   static bool enable_webgpu(const gpu::GpuPreferences& prefs) {
     return prefs.enable_webgpu;
   }
-  static bool enable_dawn_backend_validation(const gpu::GpuPreferences& prefs) {
+  static gpu::DawnBackendValidationLevel enable_dawn_backend_validation(
+      const gpu::GpuPreferences& prefs) {
     return prefs.enable_dawn_backend_validation;
   }
   static const std::vector<std::string>& enabled_dawn_features_list(
diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc
index 5c7092b..95f72b3 100644
--- a/gpu/ipc/service/stream_texture_android.cc
+++ b/gpu/ipc/service/stream_texture_android.cc
@@ -343,7 +343,8 @@
   if (use_passthrough) {
     legacy_mailbox_texture =
         std::make_unique<gles2::AbstractTextureImplPassthrough>(
-            GL_TEXTURE_EXTERNAL_OES);
+            GL_TEXTURE_EXTERNAL_OES, GL_RGBA, coded_size.width(),
+            coded_size.height(), 1, 0, GL_RGBA, GL_UNSIGNED_BYTE);
   } else {
     legacy_mailbox_texture = std::make_unique<gles2::AbstractTextureImpl>(
         GL_TEXTURE_EXTERNAL_OES, GL_RGBA, coded_size.width(),
diff --git a/infra/config/generated/commit-queue.cfg b/infra/config/generated/commit-queue.cfg
index d8c81a6..aa5477f 100644
--- a/infra/config/generated/commit-queue.cfg
+++ b/infra/config/generated/commit-queue.cfg
@@ -1814,6 +1814,7 @@
       ref_regexp_exclude: "refs/branch-heads/4240"
       ref_regexp_exclude: "refs/branch-heads/4324"
       ref_regexp_exclude: "refs/branch-heads/4430"
+      ref_regexp_exclude: "refs/branch-heads/4430_101"
       ref_regexp_exclude: "refs/branch-heads/4472"
     }
   }
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg
index 5257ad6..6fb3167 100644
--- a/infra/config/generated/cr-buildbucket.cfg
+++ b/infra/config/generated/cr-buildbucket.cfg
@@ -648,7 +648,7 @@
       dimensions: "builderless:1"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       dimensions: "ssd:0"
       exe {
@@ -2202,7 +2202,7 @@
       dimensions: "builderless:1"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       dimensions: "ssd:0"
       exe {
@@ -33355,7 +33355,7 @@
       dimensions: "builder:Chromium Android ARM 32-bit Goma RBE Staging"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -33381,7 +33381,7 @@
       dimensions: "builder:Chromium Android ARM 32-bit Goma RBE ToT"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -33407,7 +33407,7 @@
       dimensions: "builder:Chromium Android ARM 32-bit Goma RBE ToT (ATS)"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -33433,7 +33433,7 @@
       dimensions: "builder:Chromium Linux Goma RBE Staging"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -33459,7 +33459,7 @@
       dimensions: "builder:Chromium Linux Goma RBE Staging (clobber)"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -33485,7 +33485,7 @@
       dimensions: "builder:Chromium Linux Goma RBE Staging (dbg)"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -33511,7 +33511,7 @@
       dimensions: "builder:Chromium Linux Goma RBE Staging (dbg) (clobber)"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -33537,7 +33537,7 @@
       dimensions: "builder:Chromium Linux Goma RBE ToT"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -33563,7 +33563,7 @@
       dimensions: "builder:Chromium Linux Goma RBE ToT (ATS)"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -34439,7 +34439,7 @@
       dimensions: "builder:chromeos-amd64-generic-rel-goma-rbe-staging"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -34465,7 +34465,7 @@
       dimensions: "builder:chromeos-amd64-generic-rel-goma-rbe-tot"
       dimensions: "cores:8"
       dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
+      dimensions: "os:Ubuntu-16.04|Ubuntu-18.04"
       dimensions: "pool:luci.chromium.ci"
       exe {
         cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
@@ -45890,7 +45890,7 @@
         cipd_version: "refs/heads/master"
         cmd: "recipes"
       }
-      properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\",\"use_luci_auth\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"$recipe_engine/isolated\":{\"server\":\"https://isolateserver.appspot.com\"},\"$recipe_engine/resultdb/test_presentation\":{\"column_keys\":[],\"grouping_keys\":[\"status\",\"v.test_suite\"]},\"builder_group\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}"
+      properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\",\"use_luci_auth\":true},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"$recipe_engine/isolated\":{\"server\":\"https://isolateserver.appspot.com\"},\"$recipe_engine/resultdb/test_presentation\":{\"column_keys\":[],\"grouping_keys\":[\"status\",\"v.test_suite\"]},\"bot_update_experiments\":{\"no_sync\":true},\"builder_group\":\"tryserver.chromium.linux\",\"recipe\":\"chromium_trybot\"}"
       execution_timeout_secs: 14400
       expiration_secs: 7200
       grace_period {
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg
index 525843c9..d6a36e64 100644
--- a/infra/config/generated/luci-milo.cfg
+++ b/infra/config/generated/luci-milo.cfg
@@ -763,6 +763,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -1508,6 +1512,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -1829,6 +1837,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -2395,6 +2407,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -2925,6 +2941,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -3271,6 +3291,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -3742,6 +3766,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -4116,6 +4144,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -4617,6 +4649,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -5028,6 +5064,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -5468,6 +5508,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -6199,6 +6243,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -6582,6 +6630,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -6929,6 +6981,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -7276,6 +7332,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -7927,6 +7987,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -8348,6 +8412,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -8704,6 +8772,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -9095,6 +9167,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -9401,6 +9477,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -9712,6 +9792,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -10003,6 +10087,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -10350,6 +10438,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -10761,6 +10853,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -11097,6 +11193,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -11473,6 +11573,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -11819,6 +11923,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -12179,6 +12287,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
@@ -12483,6 +12595,10 @@
         url: "/p/chromium-m90/g/main/console"
       }
       links {
+        text: "m90-lts"
+        url: "/p/chromium-m90-lts/g/main/console"
+      }
+      links {
         text: "m91"
         url: "/p/chromium-m91/g/main/console"
       }
diff --git a/infra/config/generated/luci-notify.cfg b/infra/config/generated/luci-notify.cfg
index fa06cf3f..b8cfb2d8 100644
--- a/infra/config/generated/luci-notify.cfg
+++ b/infra/config/generated/luci-notify.cfg
@@ -2278,7 +2278,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2291,7 +2291,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2304,7 +2304,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2316,7 +2316,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2328,7 +2328,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2341,7 +2341,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2354,7 +2354,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2366,7 +2366,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2379,7 +2379,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2392,7 +2392,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2405,7 +2405,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
@@ -2850,7 +2850,7 @@
   notifications {
     on_change: true
     email {
-      recipients: "cronet-bots-observer@google.com"
+      recipients: "cronet-sheriff@grotations.appspotmail.com"
     }
   }
   builders {
diff --git a/infra/config/generated/realms.cfg b/infra/config/generated/realms.cfg
index bec47d7..bc0dd39 100644
--- a/infra/config/generated/realms.cfg
+++ b/infra/config/generated/realms.cfg
@@ -148,6 +148,7 @@
     principals: "project:chromium-m86"
     principals: "project:chromium-m88"
     principals: "project:chromium-m90"
+    principals: "project:chromium-m90-lts"
     principals: "project:chromium-m91"
     principals: "user:chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
     principals: "user:findit-for-me@appspot.gserviceaccount.com"
@@ -198,6 +199,7 @@
     principals: "project:chromium-m86"
     principals: "project:chromium-m88"
     principals: "project:chromium-m90"
+    principals: "project:chromium-m90-lts"
     principals: "project:chromium-m91"
     principals: "user:infra-try-recipes-tester@chops-service-accounts.iam.gserviceaccount.com"
   }
diff --git a/infra/config/generators/scheduler-noop-jobs.star b/infra/config/generators/scheduler-noop-jobs.star
index c8cbe5b..e7d2ba2 100644
--- a/infra/config/generators/scheduler-noop-jobs.star
+++ b/infra/config/generators/scheduler-noop-jobs.star
@@ -14,32 +14,33 @@
 
 # Don't make a habit of this - it isn't public API
 load("@stdlib//internal/luci/proto.star", "scheduler_pb")
+load("//lib/branches.star", "branches")
 load("//project.star", "settings")
 
-_NON_BRANCHED_TESTERS = (
+_NON_BRANCHED_TESTERS = {
     # This tester is triggered by 'Mac Builder', but it is an FYI builder and
     # not mirrored by any branched try builders, so we do not need to run it on
     # the branches
-    "mac-osxbeta-rel",
+    "mac-osxbeta-rel": branches.STANDARD_MILESTONE,
 
     # This tester is also triggered by 'Mac Builder', but we don't have enough
     # capacity on Mac 11 to run this on the branches yet.
     # TODO(crbug.com/1206401): Restore this when we do have capacity.
-    "Mac11 Tests",
+    "Mac11 Tests": branches.STANDARD_MILESTONE,
 
     # This tester is triggered by 'mac-arm64-rel', but it is an FYI builder and
     # not mirrored by any branched try builders and we have limited test
     # capacity, so we do not need to run it on the branches
-    "mac-arm64-rel-tests",
+    "mac-arm64-rel-tests": branches.STANDARD_MILESTONE,
 
     # These Android testers are triggered by 'Android arm Builder (dbg)', but we
     # don't have sufficient capacity of devices with older Android versions, so
     # we do not run them on the branches
-    "Android WebView L (dbg)",
-    "Lollipop Phone Tester",
-    "Lollipop Tablet Tester",
-    "Marshmallow Tablet Tester",
-)
+    "Android WebView L (dbg)": branches.STANDARD_MILESTONE,
+    "Lollipop Phone Tester": branches.STANDARD_MILESTONE,
+    "Lollipop Tablet Tester": branches.STANDARD_MILESTONE,
+    "Marshmallow Tablet Tester": branches.STANDARD_MILESTONE,
+}
 
 _TESTER_NOOP_JOBS = [scheduler_pb.Job(
     id = builder,
@@ -50,7 +51,7 @@
         granted_to = "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
     )],
     noop = scheduler_pb.NoopTask(),
-) for builder in _NON_BRANCHED_TESTERS]
+) for builder, selector in _NON_BRANCHED_TESTERS.items() if branches.matches(selector)]
 
 def _add_noop_jobs(ctx):
     if settings.is_main:
diff --git a/infra/config/milestones.json b/infra/config/milestones.json
index cd39001..290d4da 100644
--- a/infra/config/milestones.json
+++ b/infra/config/milestones.json
@@ -14,6 +14,11 @@
         "project": "chromium-m90",
         "ref": "refs/branch-heads/4430"
     },
+    "90-lts": {
+        "name": "m90-lts",
+        "project": "chromium-m90-lts",
+        "ref": "refs/branch-heads/4430_101"
+    },
     "91": {
         "name": "m91",
         "project": "chromium-m91",
diff --git a/infra/config/notifiers.star b/infra/config/notifiers.star
index d59b3172..4afe7f7 100644
--- a/infra/config/notifiers.star
+++ b/infra/config/notifiers.star
@@ -50,7 +50,7 @@
     name = "cronet",
     on_status_change = True,
     notify_emails = [
-        "cronet-bots-observer@google.com",
+        "cronet-sheriff@grotations.appspotmail.com",
     ],
 )
 
diff --git a/infra/config/subprojects/chromium/ci.star b/infra/config/subprojects/chromium/ci.star
index 7ad458ef..13823a0 100644
--- a/infra/config/subprojects/chromium/ci.star
+++ b/infra/config/subprojects/chromium/ci.star
@@ -1003,7 +1003,7 @@
     reclient_instance = "rbe-chromium-trusted",
     configure_kitchen = True,
     kitchen_emulate_gce = True,
-    os = os.LINUX_DEFAULT,
+    os = os.LINUX_BIONIC_SWITCH_TO_DEFAULT,
     schedule = "triggered",  # triggered manually via Scheduler UI
 )
 
@@ -1020,7 +1020,7 @@
     reclient_jobs = 150,
     configure_kitchen = True,
     kitchen_emulate_gce = True,
-    os = os.LINUX_DEFAULT,
+    os = os.LINUX_BIONIC_SWITCH_TO_DEFAULT,
     schedule = "triggered",  # triggered manually via Scheduler UI
 )
 
diff --git a/infra/config/subprojects/chromium/try.star b/infra/config/subprojects/chromium/try.star
index b7069163..4763e2b 100644
--- a/infra/config/subprojects/chromium/try.star
+++ b/infra/config/subprojects/chromium/try.star
@@ -1140,8 +1140,11 @@
 
 try_.chromium_linux_builder(
     name = "linux-1mbu-compile-fyi-rel",
-    # TODO(crbug.com/1199853): Configure 1mbu mode through an input property
-    # for this builder.
+    properties = {
+        "bot_update_experiments": {
+            "no_sync": True,
+        },
+    },
 )
 
 try_.chromium_linux_builder(
diff --git a/infra/config/subprojects/goma/goma.star b/infra/config/subprojects/goma/goma.star
index b9337824..ab5967f 100644
--- a/infra/config/subprojects/goma/goma.star
+++ b/infra/config/subprojects/goma/goma.star
@@ -225,7 +225,7 @@
         *,
         name,
         builderless = False,
-        os = os.LINUX_DEFAULT,
+        os = os.LINUX_XENIAL_OR_BIONIC_SWITCH_TO_DEFAULT,
         **kwargs):
     return builder(
         name = name,
diff --git a/ios/build/bots/scripts/iossim_util.py b/ios/build/bots/scripts/iossim_util.py
index c670287..637953c 100644
--- a/ios/build/bots/scripts/iossim_util.py
+++ b/ios/build/bots/scripts/iossim_util.py
@@ -127,8 +127,7 @@
   runtime = get_simulator_runtime_by_version(simulators, version)
   try:
     udid = subprocess.check_output(
-        ['xcrun', 'simctl', 'create', name, device_type, runtime],
-        stderr=subprocess.STDOUT).rstrip()
+        ['xcrun', 'simctl', 'create', name, device_type, runtime]).rstrip()
     LOGGER.info('Created simulator in first attempt with UDID: %s', udid)
     # Sometimes above command fails to create a simulator. Verify it and retry
     # once if first attempt failed.
@@ -136,8 +135,7 @@
       # Try to delete once to avoid duplicate in case of race condition.
       delete_simulator_by_udid(udid)
       udid = subprocess.check_output(
-          ['xcrun', 'simctl', 'create', name, device_type, runtime],
-          stderr=subprocess.STDOUT).rstrip()
+          ['xcrun', 'simctl', 'create', name, device_type, runtime]).rstrip()
       LOGGER.info('Created simulator in second attempt with UDID: %s', udid)
     return udid
   except subprocess.CalledProcessError as e:
diff --git a/ios/build/bots/scripts/standard_json_util.py b/ios/build/bots/scripts/standard_json_util.py
index 9f8e772..4a16571 100644
--- a/ios/build/bots/scripts/standard_json_util.py
+++ b/ios/build/bots/scripts/standard_json_util.py
@@ -101,8 +101,8 @@
     for test in tests:
       self.mark_failed(test)
 
-  def mark_skipped(self, test):
-    """Sets test(s) as expected SKIP.
+  def mark_disabled(self, test):
+    """Sets test(s) as expected SKIP with disabled test label.
 
     Params:
       test (str): a test in format "{TestCase}/{testMethod}"
@@ -115,9 +115,9 @@
 
     self.tests[test] = self._init_test('SKIP', 'SKIP')
 
-  def mark_all_skipped(self, tests):
+  def mark_all_disabled(self, tests):
     for test in tests:
-      self.mark_skipped(test)
+      self.mark_disabled(test)
 
   def mark_timeout(self, test):
     """Sets test as TIMEOUT, which is used to indicate a test abort/timeout
diff --git a/ios/build/bots/scripts/standard_json_util_tests.py b/ios/build/bots/scripts/standard_json_util_tests.py
index a077898..8b61d3c 100644
--- a/ios/build/bots/scripts/standard_json_util_tests.py
+++ b/ios/build/bots/scripts/standard_json_util_tests.py
@@ -84,11 +84,11 @@
     self.assertTrue(output.tests['e']['is_flaky'])
     self.assertIsNot(output.tests['e'].get('is_unexpected'), True)
 
-  def test_skip(self):
+  def test_disabled(self):
     """Test setting expected skip."""
     test = 'f'
     output = sju.StdJson()
-    output.mark_skipped(test)
+    output.mark_disabled(test)
     self.assertEqual(output.tests['f']['actual'], 'SKIP')
     self.assertFalse(output.tests['f'].get('is_unexpected', False))
 
@@ -129,7 +129,7 @@
     output.mark_failed('failed_test', 'logs')
     result_sink.post.assert_called_with(
         'failed_test', 'FAIL', False, test_log='logs')
-    output.mark_skipped('skipped_test')
+    output.mark_disabled('skipped_test')
     result_sink.post.assert_called_with(
         'skipped_test', 'SKIP', True, tags=[('disabled_test', 'true')])
     output.mark_timeout('timeout_test')
diff --git a/ios/build/bots/scripts/test_runner.py b/ios/build/bots/scripts/test_runner.py
index f9708bac..2dbbd34 100644
--- a/ios/build/bots/scripts/test_runner.py
+++ b/ios/build/bots/scripts/test_runner.py
@@ -667,7 +667,7 @@
             # Save the result of the latest run for each test.
             retry_results[test] = retry_result
 
-      output.mark_all_skipped(disabled)
+      output.mark_all_disabled(disabled)
       output.finalize()
 
       # Build test_results.json.
diff --git a/ios/build/bots/scripts/xcodebuild_runner.py b/ios/build/bots/scripts/xcodebuild_runner.py
index 59af62e1..3d9fee5 100644
--- a/ios/build/bots/scripts/xcodebuild_runner.py
+++ b/ios/build/bots/scripts/xcodebuild_runner.py
@@ -472,7 +472,7 @@
         for test in attempt_results['passed']:
           output.mark_passed(test)
 
-    output.mark_all_skipped(self.logs['disabled tests'])
+    output.mark_all_disabled(self.logs['disabled tests'])
     output.finalize()
 
     self.test_results['tests'] = output.tests
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
index 9768ba62..3f3180f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
@@ -21,6 +21,7 @@
 <translation id="2168108852149185974">ບາງສ່ວນເສີມເຮັດໃຫ້ Chromium ຂັດຂ້ອງ. ກະລຸນາຖອນການຕິດຕັ້ງ:</translation>
 <translation id="2178608107313874732">Chromium ບໍ່ສາມາດໃຊ້ກ້ອງຖ່າຍຮູບຂອງທ່ານໄດ້ໃນຂະນະນີ້</translation>
 <translation id="2195025571279539885">ທ່ານຕ້ອງການໃຫ້ Chromium ສະເໜີແປໜ້າ <ph name="LANGUAGE_NAME" /> ຈາກເວັບໄຊນີ້ໃນຄັ້ງຕໍ່ໄປບໍ?</translation>
+<translation id="2567507405773541360">ເຮັດສິ່ງຕ່າງໆໃຫ້ແລ້ວຫຼາຍຂຶ້ນດ້ວຍ Chromium ທີ່ງ່າຍ, ດີ ແລະ ໄວກວ່າທີ່ເຄີຍ</translation>
 <translation id="2590893390871230428">ຊິ້ງຂໍ້ມູນ Chromium ຂອງທ່ານ</translation>
 <translation id="2650312721222849884">ເພື່ອເຫັນແຖບຂອງທ່ານຈາກທຸກບ່ອນທີ່ທ່ານໃຊ້ Chromium, ກະລຸນາເປີດການຊິ້ງຂໍ້ມູນ</translation>
 <translation id="2684230048001240293">ຕັ້ງ Chromium ເປັນຄ່າເລີ່ມຕົ້ນເພື່ອຊິ້ງຂໍ້ມູນແຖບ, ລະຫັດຜ່ານ ແລະ ຂໍ້ມູນການຈ່າຍເງິນຂອງທ່ານຢູ່ອຸປະກອນທັງໝົດຂອງທ່ານ</translation>
@@ -42,6 +43,7 @@
 <translation id="4681781466797808448">ເປີດເຄື່ອງສະແກນ Chromium</translation>
 <translation id="4736424910885271643">ບັນຊີຂອງທ່ານຖືກຈັດການໂດຍ <ph name="HOSTED_DOMAIN" />, ດັ່ງນັ້ນຂໍ້ມູນ Chromium ຂອງທ່ານຈະຖືກລຶບລ້າງຈາກອຸປະກອນນີ້</translation>
 <translation id="4787850887676698916">ແຖບທີ່ທ່ານເຄີຍເປີດໃນ Chromium ຢູ່ໃນອຸປະກອນອື່ນຂອງທ່ານຈະປາກົດຢູ່ບ່ອນນີ້.</translation>
+<translation id="4806326830773390517">ຊ່ວຍປັບປຸງ Chromium ໂດຍການສົ່ງສະຖິຕິການນຳໃຊ້ ແລະ ລາຍງານການຂັດຂ້ອງໄປໃຫ້ Google</translation>
 <translation id="4828317641996116749">Chromium ບໍ່ສາມາດກວດລະຫັດຜ່ານທັງໝົດໄດ້. ລອງໃໝ່ໃນພາຍຫລັງ.</translation>
 <translation id="4852878756222711218">ເພື່ອໃຊ້ປະໂຫຍດສູງສຸດຈາກ Chromium, ໃຫ້ເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານ</translation>
 <translation id="4985291216379576555">ອອບລາຍຢູ່, Chromium ບໍ່ສາມາດກວດຫາການອັບເດດໄດ້</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb
index 66cd346f..ed34d129 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb
@@ -21,6 +21,7 @@
 <translation id="2168108852149185974">Зарим нэмэлт онцлог нь Chromium-г эвдрэхэд хүргэдэг. Тиймээс тэдгээрийг устгана уу:</translation>
 <translation id="2178608107313874732">Chromium одоогоор таны камерыг ашиглах боломжгүй байна</translation>
 <translation id="2195025571279539885">Та дараагийн удаад Chromium-г энэ сайтаас <ph name="LANGUAGE_NAME" /> хуудсыг хөрвүүлэхийг зөвшөөрөх үү?</translation>
+<translation id="2567507405773541360">Энгийн, аюулгүй бөгөөд урьд өмнөхөөс илүү хурдан Chromium-р илүү ихийг хийгээрэй</translation>
 <translation id="2590893390871230428">Chromium-н өгөгдлөө синк хийх</translation>
 <translation id="2650312721222849884">Та Chromium-г хаанаас ч ашигласан бай табуудаа харахын тулд синк хийхийг асаана уу</translation>
 <translation id="2684230048001240293">Та өөрийн бүх төхөөрөмж дээрх табууд, нууц үгнүүд болон төлбөрийн мэдээллээ синк хийхийн тулд Chromium-г өгөгдмөлөөр тохируулна уу</translation>
@@ -42,6 +43,7 @@
 <translation id="4681781466797808448">Chromium сканнерыг асаах</translation>
 <translation id="4736424910885271643">Таны бүртгэлийг <ph name="HOSTED_DOMAIN" />-с удирддаг тул таны Chromium-н өгөгдлийг энэ төхөөрөмжөөс арилгана</translation>
 <translation id="4787850887676698916">Таны бусад төхөөрөмжийн Chromium-д нээсэн таб энд харагдана.</translation>
+<translation id="4806326830773390517">Статистик хэрэглээ болон гэмтлийн тайланг Google-д илгээж, Chromium-г сайжруулахад туслаарай</translation>
 <translation id="4828317641996116749">Chromium бүх нууц үгийг шалгаж чадсангүй. Дараа дахин оролдоно уу.</translation>
 <translation id="4852878756222711218">Chromium-г бүрэн ашиглахын тулд Google Бүртгэлээрээ нэвтрээрэй</translation>
 <translation id="4985291216379576555">Офлайн байна, Chromium-н шинэчлэлтийг шалгах боломжгүй байна</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb
index 99745f8..9e0d09ff 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lo.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="lo">
+<translation id="1096883626080133124">ເຮັດສິ່ງຕ່າງໆໃຫ້ແລ້ວຫຼາຍຂຶ້ນດ້ວຍ Google Chrome ທີ່ງ່າຍ, ດີ ແລະ ໄວກວ່າທີ່ເຄີຍ</translation>
 <translation id="1282031177488366470">ຊ່ວຍປັບປຸງຄຸນສົມບັດ ແລະ ປະສິດທິພາບຂອງ Chrome</translation>
 <translation id="1314663809820920746">ທ່ານຍັງສາມາດເຫັນບຸກມາກ, ປະຫວັດ, ລະຫັດຜ່ານ ແລະ ການຕັ້ງຄ່າອື່ນທັງໝົດຂອງທ່ານໄດ້ໃນອຸປະກອນນີ້. ຖ້າທ່ານເຮັດການປ່ຽນແປງ, ພວກມັນຈະບໍ່ຊິ້ງຂໍ້ມູນກັບບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="1479202195792305274">Chrome ສາມາດກວດເບິ່ງລະຫັດຜ່ານຂອງທ່ານ ເມື່ອທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານໄດ້.</translation>
@@ -8,6 +9,7 @@
 <translation id="1504372625950710826">Chrome ບໍ່ສາມາດກວດການອັບເດດໄດ້. ລອງກວດເບິ່ງການເຊື່ອມຕໍ່ອິນເຕີເນັດຂອງທ່ານ.</translation>
 <translation id="1682483655351012182">ຊິ້ງຂໍ້ມູນ Chrome ຂອງທ່ານ</translation>
 <translation id="1759842336958782510">Chrome</translation>
+<translation id="1812249337131447686">ຊ່ວຍປັບປຸງ Chrome ໂດຍການສົ່ງສະຖິຕິການນຳໃຊ້ ແລະ ລາຍງານການຂັດຂ້ອງໄປໃຫ້ Google</translation>
 <translation id="1917964099031477364">ບັນຊີນີ້ ແລະ ຂໍ້ມູນທີ່ບໍ່ໄດ້ບັນທຶກໄວ້ຕ່າງໆຈະຖືກລຶບອອກຈາກ Chrome ແລະ ແອັບອື່ນຂອງ Google ໃນອຸປະກອນນີ້.</translation>
 <translation id="2009224836393115614">Chrome ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ລອງກວດເບິ່ງການເຊື່ອມຕໍ່ອິນເຕີເນັດຂອງທ່ານ.</translation>
 <translation id="2147651015520127414">Chrome ກວດ​ສອບ​ວ່າ <ph name="ISSUER" /> ​ໄດ້​ອອກ​ໃບ​ຢັ້ງຢືນ​ຂອງ​ເວັບ​ໄຊ​ນີ້.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb
index 45f374c..efded1d 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb
@@ -1,6 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="mn">
+<translation id="1096883626080133124">Энгийн, аюулгүй бөгөөд урьд өмнөхөөсөө илүү хурдан Google Chrome-р илүү ихийг хийгээрэй</translation>
 <translation id="1282031177488366470">Chrome-н онцлог болон гүйцэтгэлийг сайжруулахад туслах</translation>
 <translation id="1314663809820920746">Та энэ төхөөрөмж дээр бүх хавчуурга, түүх, нууц үг болон бусад тохиргоогоо харах боломжтой хэвээр байна. Хэрэв та өөрчлөлт хийвэл тэдгээрийг таны Google Бүртгэлд синк хийхгүй.</translation>
 <translation id="1479202195792305274">Таныг Google Бүртгэлээрээ нэвтрэх үед Chrome таны нууц үгнүүдийг шалгах боломжтой.</translation>
@@ -8,6 +9,7 @@
 <translation id="1504372625950710826">Chrome-н шинэчлэлтийг шалгаж чадсангүй. Интернэт холболтоо шалгаж үзнэ үү.</translation>
 <translation id="1682483655351012182">Chrome-н өгөгдлөө синк хийх</translation>
 <translation id="1759842336958782510">Хромэ</translation>
+<translation id="1812249337131447686">Статистик хэрэглээ болон гэмтлийн тайланг Google-д илгээж, Chrome-г сайжруулахад туслаарай</translation>
 <translation id="1917964099031477364">Энэ бүртгэл болон хадгалаагүй аливаа өгөгдлийг Chrome болон энэ төхөөрөмж дээрх Google-н бусад аппаас хасна.</translation>
 <translation id="2009224836393115614">Chrome таны нууц үгнүүдийг шалгаж чадсангүй. Интернэт холболтоо шалгаж үзнэ үү.</translation>
 <translation id="2147651015520127414">Энэхүү вебсайтын сертификатыг <ph name="ISSUER" /> олгосон болохыг Chrome баталж байна.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index 0a1ec6a1..4dad9c0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Versteekte wagwoord</translation>
 <translation id="2876369937070532032">Stuur URL'e van sommige bladsye wat jy besoek aan Google wanneer jou sekuriteit bedreig word</translation>
 <translation id="288655811176831528">Maak oortjie toe</translation>
+<translation id="2893180576842394309">Google kan jou geskiedenis gebruik om Search en ander Google-dienste te personaliseer</translation>
 <translation id="2898963176829412617">Nuwe vouer …</translation>
 <translation id="2916171785467530738">Outovoltooi soektogte en URL'e</translation>
 <translation id="291754862089661335">Plaas QR- of strepieskode in hierdie raam</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Praat antwoorde terug</translation>
 <translation id="7207383424303353046">Nuut: Maak werwe outomaties in Chrome oop deur dit jou verstekblaaierprogram te maak. <ph name="BEGIN_LINK" />Maak instellings oop<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Ongeldige kaartbynaam</translation>
+<translation id="722454870747268814">Nuwe incognito-oortjie</translation>
 <translation id="7265758999917665941">Nooit vir hierdie werf nie</translation>
 <translation id="7272437679830969316">Kan nie jou identiteit verifieer nie. Wagwoord is nie gekopieer nie.</translation>
 <translation id="7291368939935408496">Maak tans wagwoorde gereed …</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index c8360a19..469f022 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">የተደበቀ፣ የይለፍ ቃል</translation>
 <translation id="2876369937070532032">የእርስዎ ደኅንነት አደጋ ላይ ሲወድቅ እርስዎ የሚጎበኙዋቸውን አንዳንድ ገጾች ዩአርኤሎች ወደ Google ይልካል።</translation>
 <translation id="288655811176831528">ትር ዝጋ</translation>
+<translation id="2893180576842394309">Google ፍለጋን እና ሌሎች የGoogle አገልግሎቶችን ግላዊነት ለማላበስ ሲል ታሪክዎን ሊጠቀም ይችላል።</translation>
 <translation id="2898963176829412617">አዲስ አቃፊ…</translation>
 <translation id="2916171785467530738">ፍለጋዎችን እና ዩአርኤልዎችን በራስ-አጠናቅቅ</translation>
 <translation id="291754862089661335">የQR ኮድ ወይም የአሞሌ ኮድ በዚህ ክፈፍ ውስጥ ያምጡት</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">መልሶችን ተመልሰህ ተናገር</translation>
 <translation id="7207383424303353046">አዲስ፦ Chrome የእርስዎን ነባሪ የአሳሽ መተግበሪያ በማድረግ ጣቢያዎችን በራስ-ሰር በChrome ውስጥ ይክፈቱ። <ph name="BEGIN_LINK" />ቅንብሮችን ይክፈቱ<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">ልክ ያልሆነ ቅጽል ስም</translation>
+<translation id="722454870747268814">አዲስ ማንነት የማያሳውቅ ትር</translation>
 <translation id="7265758999917665941">ለዚህ ጣቢያ በጭራሽ</translation>
 <translation id="7272437679830969316">የእርስዎን ማንነት ማረጋገጥ አልተቻለም። የይለፍ ቃል አልተቀዳም።</translation>
 <translation id="7291368939935408496">የይለፍ ቃላትን በማዘጋጀት ላይ...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index 7e520d4..17a4a2cd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">مخفية، كلمة المرور</translation>
 <translation id="2876369937070532032">‏يتم إرسال عناوين URL لبعض الصفحات التي تزورها إلى Google، عندما يكون أمانك في خطر</translation>
 <translation id="288655811176831528">إغلاق علامة التبويب</translation>
+<translation id="2893180576842394309">‏قد تستخدم Google سجلّك لتخصيص البحث وخدمات Google الأخرى.</translation>
 <translation id="2898963176829412617">مجلد جديد...</translation>
 <translation id="2916171785467530738">‏الإكمال التلقائي لعناوين URL وعمليات البحث</translation>
 <translation id="291754862089661335">ضَع رمز الاستجابة السريعة أو الرمز الشريطي في هذا الإطار</translation>
@@ -627,6 +628,7 @@
 <translation id="7203585745079012652">النطق بالإجابات</translation>
 <translation id="7207383424303353046">‏جديد: يمكنك فتح المواقع الإلكترونية في Chrome تلقائيًا من خلال جعله تطبيق المتصفِّح التلقائي. <ph name="BEGIN_LINK" />فتح الإعدادات<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">لقب البطاقة غير صالح</translation>
+<translation id="722454870747268814">علامة تبويب جديدة للتصفح المتخفي</translation>
 <translation id="7265758999917665941">عدم حفظ كلمة المرور لهذا الموقع الإلكتروني</translation>
 <translation id="7272437679830969316">تعذَّر التحقق من هويتك. لم يتم نسخ كلمة المرور.</translation>
 <translation id="7291368939935408496">جارٍ تحضير كلمات المرور…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index 8b671a5..83c98ae 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -33,6 +33,7 @@
 <translation id="122699739164161391">সকলো টেব বন্ধ কৰক</translation>
 <translation id="1229222343402087523">Chromeত ${searchPhrase}ৰ সন্ধান কৰক</translation>
 <translation id="1231733316453485619">ছিংক অন কৰিবনে?</translation>
+<translation id="1242044645101871359">আকৌ ছাইন ইন কৰক</translation>
 <translation id="1254117744268754948">ফ’ল্ডাৰ বাছনি কৰক</translation>
 <translation id="1265739287306757398">কেনেকৈ কৰিব জানক</translation>
 <translation id="1272079795634619415">বন্ধ কৰক</translation>
@@ -97,6 +98,7 @@
 <translation id="1820259098641718022">পঢ়িবলগীয়া তালিকাত যোগ কৰা হ'ল</translation>
 <translation id="1870148520156231997">পাছৱর্ড দেখুৱাওক</translation>
 <translation id="1872096359983322073">টৰ্চ</translation>
+<translation id="1894205589103145703">ছাইন ইন কৰি থাকোঁতে কিবা ভুল হ’ল।</translation>
 <translation id="1911619930368729126">Google Driveলৈ আপল’ড কৰক</translation>
 <translation id="1923342640370224680">যোৱা ১ঘণ্টাৰ</translation>
 <translation id="1941314575388338491">প্ৰতিলিপি কৰিবলৈ দুবাৰ টিপক।</translation>
@@ -110,6 +112,7 @@
 <translation id="2073572773299281212"><ph name="DAYS" />দিনৰ পূৰ্বে সক্ৰিয় আছিল</translation>
 <translation id="2074131957428911366">আপুনি কি ছিংক কৰিব লাগে সেয়া <ph name="BEGIN_LINK" />ছেটিংসমূহ<ph name="END_LINK" />-লৈ গৈ যেতিয়াই মন যায় তেতিয়াই সলনি কৰিব পাৰে।</translation>
 <translation id="2079545284768500474">আনডু কৰক</translation>
+<translation id="2086623437239112659">আপুনি ষ্ট'ৰ কৰি থোৱা ছাইন ইন কৰাৰ তথ্যখিনিৰ ম্যাদ উকলিব পাৰে।</translation>
 <translation id="209018056901015185">ডেস্কটপ ছাইটৰ বাবে অনুৰোধ কৰক</translation>
 <translation id="2103075008456228677">history.google.com খোলক</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" />টা বস্তু স্থানান্তৰ কৰা হ’ল</translation>
@@ -185,6 +188,7 @@
 <translation id="2871695793448672541">লুকুৱাই ৰখা, পাছৱৰ্ড</translation>
 <translation id="2876369937070532032">আপোনাৰ সুৰক্ষা বিপদাপন্ন হ'লে আপুনি চোৱা কিছুমান পৃষ্ঠাৰ URLসমূহ Googleলৈ পঠিয়ায়</translation>
 <translation id="288655811176831528">টেব বন্ধ কৰক</translation>
+<translation id="2893180576842394309">Googleএ Search আৰু অন্য Google সেৱাসমূহ ব্যক্তিগতকৰণ কৰিবলৈ আপোনাৰ ইতিহাস ব্যৱহাৰ কৰিব পাৰে</translation>
 <translation id="2898963176829412617">নতুন ফ’ল্ডাৰ…</translation>
 <translation id="2916171785467530738">স্বয়ংক্রিয়ভাৱে সম্পূৰ্ণ হোৱা সন্ধান আৰু URL</translation>
 <translation id="291754862089661335">কিউআৰ কড বা বাৰক’ডটো এই ফ্ৰেমলৈ আনক</translation>
@@ -399,6 +403,7 @@
 <translation id="5132942445612118989">আপোনাৰ পাছৱর্ড, ইতিহাস আৰু অধিক সকলো ডিভাইচতে ছিংক কৰক</translation>
 <translation id="5140288047769711648">Chromeএ আপোনাৰ বাবে এই পাছৱৰ্ডটো মনত ৰাখিব। আপুনি ইয়াক মনত ৰাখিব নালাগে।</translation>
 <translation id="5150492518600715772">আপোনাৰ ডিভাইচলৈ পঠিয়াওক</translation>
+<translation id="5168414296986405587">iPadOSৰ বাবে প্ৰস্তুত কৰা</translation>
 <translation id="5181140330217080051">ডাউনল’ড হৈ আছে</translation>
 <translation id="5186185447130319458">ব্যক্তিগত</translation>
 <translation id="5188482106078495165">আপোনাৰ কুকিসমূহৰ ছেটিং সকলো টেবত প্ৰযোজ্য হয়। এটা খোল খাই থকা টেবত এটা নতুন ছেটিং প্ৰয়োগ কৰিবলৈ টেবটো পুনৰ ল’ড কৰক।</translation>
@@ -428,6 +433,7 @@
 <translation id="5508435575041083207">ছাইন আউট কৰক আৰু এই ডিভাইচটোৰ পৰা ডেটা মচক</translation>
 <translation id="5513681519188741830"><ph name="TIME" /> ঘণ্টা আগতে</translation>
 <translation id="5525269841082836315">পাছফ্ৰেজ সৃষ্টি কৰক</translation>
+<translation id="5532698011560297095">ছাইন ইন কৰিব নোৱাৰি</translation>
 <translation id="5548760955356983418">Handoff সুবিধাটোৱে এই ডিভাইচটোত এটা ৱেবছাইট ব্ৰাউজ কৰা আৰম্ভ কৰি সেইটো ছাইটৰ বাকীখিনি আপোনাৰ Macত ব্ৰাউজ কৰাৰ সুবিধা আগবঢ়ায়। বৰ্তমান খোল খাই থকা ৱেবছাইটসমূহ আপোনাৰ Macৰ Dockত দেখা পোৱা যাব।
 
 ছেটিংসমূহ-ৰ সাধাৰণ শাখাটোত Handoff সক্ষম কৰা থাকিব লাগিব আৰু আপোনাৰ ডিভাইচকেইটাত একেটা iCloud একাউণ্ট ব্যৱহাৰ হৈ থাকিব লাগিব।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index 5c50f3e..c81adef 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Gizli, Parol</translation>
 <translation id="2876369937070532032">Təhlükəsizliyiniz risk altında olduqda Google'a daxil olduğunuz bəzi səhifələrin linklərini göndərin</translation>
 <translation id="288655811176831528">Tabı bağlayın</translation>
+<translation id="2893180576842394309">Axtarış və digər Google xidmətlərini fərdiləşdirmək üçün Google tarixçədən istifadə edə bilər</translation>
 <translation id="2898963176829412617">Yeni Qovluq...</translation>
 <translation id="2916171785467530738">Axtarış və Linkləri avtomatik tamamlayın</translation>
 <translation id="291754862089661335">QR kodu və ya barkodu bu çərçivəyə yerləşdirin</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">Parollar</translation>
 <translation id="7053983685419859001">Bloklayın</translation>
 <translation id="7062545763355031412">Qəbul edin və hesablar arasında keçid edin</translation>
+<translation id="708844789167408367">Çıxış edin və sinxronizasiyanı deaktiv edin...</translation>
 <translation id="7099761977003084116">Ən Son İstifadə Olunan Tablar</translation>
 <translation id="7102005569666697658">Endirilir… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">Gizlədin</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">Geri Cavab</translation>
 <translation id="7207383424303353046">Yeni: Defolt Brauzer tətbiqiniz etməklə, saytları Chrome'da avtomatik açın. <ph name="BEGIN_LINK" />Ayarları açın<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Yanlış Kart Ləqəbi</translation>
+<translation id="722454870747268814">Yeni Gizli Panel</translation>
 <translation id="7265758999917665941">Bu sayt üçün heç vaxt yadda saxlamayın</translation>
 <translation id="7272437679830969316">Kimliyinizi doğrulamaq mümkün deyil. Parol kopyalanmayıb.</translation>
 <translation id="7291368939935408496">Parollar Hazırlanır...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index 89a4e05..0d2ec3a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Схаваны, пароль</translation>
 <translation id="2876369937070532032">Адпраўляе URL-адрасы некаторых наведаных вамі старонак у Google, калі ваша бяспека пад пагрозай</translation>
 <translation id="288655811176831528">Закрыць укладку</translation>
+<translation id="2893180576842394309">Google можа выкарыстоўваць вашу гісторыю, каб персаналізаваць пошук і іншыя сэрвісы Google</translation>
 <translation id="2898963176829412617">Новая папка…</translation>
 <translation id="2916171785467530738">Аўтазапаўненне ў полі пошуку і URL-адраса</translation>
 <translation id="291754862089661335">Змясціце QR-код або штрыхкод у гэтай рамцы</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">Паролі</translation>
 <translation id="7053983685419859001">Заблакіраваць</translation>
 <translation id="7062545763355031412">Прыняць і пераключыцца на іншы ўліковы запіс</translation>
+<translation id="708844789167408367">Выйсці і выключыць сінхранізацыю...</translation>
 <translation id="7099761977003084116">Нядаўнія ўкладкі</translation>
 <translation id="7102005569666697658">Ідзе спампоўванне… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">Схаваць</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index b5b157722..2e240cfd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Скрита парола</translation>
 <translation id="2876369937070532032">Когато сигурността ви е застрашена, изпраща до Google URL адресите на някои от страниците, които посещавате.</translation>
 <translation id="288655811176831528">Затваряне на раздела</translation>
+<translation id="2893180576842394309">Възможно е да използваме историята ви, за да персонализираме търсенето и други услуги на Google</translation>
 <translation id="2898963176829412617">Нова папка…</translation>
 <translation id="2916171785467530738">Автоматично довършване на заявки за търсене и URL адреси</translation>
 <translation id="291754862089661335">Поставете кода за бърза реакция или баркода в тази рамка</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Изговаряне на отговорите</translation>
 <translation id="7207383424303353046">Ново: Отваряйте сайтовете автоматично в Chrome, като го направите стандартното си приложение за браузър. <ph name="BEGIN_LINK" />Отворете настройките<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Псевдонимът на картата е невалиден</translation>
+<translation id="722454870747268814">Нов раздел в режим „инкогнито“</translation>
 <translation id="7265758999917665941">Никога за този сайт</translation>
 <translation id="7272437679830969316">Паролата не бе копирана поради неуспешно удостоверяване.</translation>
 <translation id="7291368939935408496">Паролите се подготвят...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index 172466b..98f1c0a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">লুকানো, পাসওয়ার্ড</translation>
 <translation id="2876369937070532032">নিরাপত্তা সংক্রান্ত কোনও ঝুঁকি থাকলে, আপনার দেখা কিছু পৃষ্ঠার ইউআরএল Google-কে পাঠায়</translation>
 <translation id="288655811176831528">ট্যাব বন্ধ করুন</translation>
+<translation id="2893180576842394309">সার্চ এবং অন্যান্য Google পরিষেবাকে আপনার মতো করে সাজিয়ে নিতে Google আপনার ইতিহাস ব্যবহার করতে পারে</translation>
 <translation id="2898963176829412617">নতুন ফোল্ডার...</translation>
 <translation id="2916171785467530738">সার্চ এবং ইউআরএলগুলি নিজে থেকে সম্পূর্ণ হতে দিন</translation>
 <translation id="291754862089661335">এই ফ্রেমের মধ্যে QR কোড বা বারকোড স্থাপন করুন</translation>
@@ -614,6 +615,7 @@
 <translation id="7029809446516969842">পাসওয়ার্ড</translation>
 <translation id="7053983685419859001">ব্লক করুন</translation>
 <translation id="7062545763355031412">স্বীকার করে অ্যাকাউন্টগুলি সুইচ করুন</translation>
+<translation id="708844789167408367">সাইন-আউট করে সিঙ্ক বন্ধ করুন...</translation>
 <translation id="7099761977003084116">সাম্প্রতিক ট্যাব</translation>
 <translation id="7102005569666697658"><ph name="FILE_SIZE" /> ডাউনলোড করা হচ্ছে…</translation>
 <translation id="7108338896283013870">লুকান</translation>
@@ -628,6 +630,7 @@
 <translation id="7203585745079012652">আবার উত্তরগুলি বলে</translation>
 <translation id="7207383424303353046">নতুন: Chrome-কে আপনার ডিফল্ট ব্রাউজার অ্যাপ হিসেবে সেট করে এতে অটোমেটিক সাইট খুলুন। <ph name="BEGIN_LINK" />সেটিংস খুলুন<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">কার্ডের বিশেষ নামটি সঠিক নয়</translation>
+<translation id="722454870747268814">নতুন ছদ্মবেশী ট্যাব</translation>
 <translation id="7265758999917665941">এই সাইটের জন্য কখনই নয়</translation>
 <translation id="7272437679830969316">আপনার পরিচয় যাচাই করা যাবে না। পাসওয়ার্ড কপি করা হয়নি।</translation>
 <translation id="7291368939935408496">পাসওয়ার্ড তৈরি করা হচ্ছে...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index 2024ff5..81df15a9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Sakriveno, zaporka</translation>
 <translation id="2876369937070532032">Googleu šalje URL-ove nekih stranica koje posjećujete kada je ugrožena vaša sigurnost</translation>
 <translation id="288655811176831528">Zatvori karticu</translation>
+<translation id="2893180576842394309">Google može koristiti vašu historiju za personalizaciju Pretraživanja i drugih Googleovih usluga</translation>
 <translation id="2898963176829412617">Novi folder…</translation>
 <translation id="2916171785467530738">Samodovršavanje pretraživanja i URL-ova</translation>
 <translation id="291754862089661335">Postavite QR kôd ili barkod u ovaj okvir</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Izgovori odgovore</translation>
 <translation id="7207383424303353046">Novo: Postavite Chrome kao zadanu aplikaciju preglednika i automatski u njemu otvarajte web lokacije. <ph name="BEGIN_LINK" />Otvori Postavke<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Nevažeći nadimak kartice</translation>
+<translation id="722454870747268814">Nova anonimna kartica</translation>
 <translation id="7265758999917665941">Nikada za ovu web lokaciju</translation>
 <translation id="7272437679830969316">Nije moguće potvrditi vaš identitet. Lozinka nije kopirana.</translation>
 <translation id="7291368939935408496">Pripremanje lozinki...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index 2473e92..27b32ae 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Contrasenya amagada</translation>
 <translation id="2876369937070532032">Envia a Google els URL d'algunes de les pàgines que visites quan la teva seguretat està en risc</translation>
 <translation id="288655811176831528">Tanca la pestanya</translation>
+<translation id="2893180576842394309">És possible que Google utilitzi el teu historial per personalitzar la Cerca i altres serveis de Google</translation>
 <translation id="2898963176829412617">Carpeta nova…</translation>
 <translation id="2916171785467530738">Completa automàticament les cerques i els URL</translation>
 <translation id="291754862089661335">Situa el codi QR o el codi de barres dins d'aquest marc</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Pronuncia les respostes</translation>
 <translation id="7207383424303353046">Novetat: obre llocs web a Chrome automàticament establint-lo com a aplicació de navegador predeterminada. <ph name="BEGIN_LINK" />Obre Configuració<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">L'àlies de la targeta no és vàlid</translation>
+<translation id="722454870747268814">Pestanya d'incògnit nova</translation>
 <translation id="7265758999917665941">Mai per a aquest lloc web</translation>
 <translation id="7272437679830969316">No es pot verificar la teva identitat. La contrasenya no s'ha copiat.</translation>
 <translation id="7291368939935408496">S'estan preparant les contrasenyes...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index a0022b78..f410748 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Skryté, heslo</translation>
 <translation id="2876369937070532032">Když je ohrožena vaše bezpečnost, odesílá adresy URL některých navštívených stránek do Googlu</translation>
 <translation id="288655811176831528">Zavřít kartu</translation>
+<translation id="2893180576842394309">Google vaši historii může používat k personalizaci Vyhledávání a dalších služeb Google</translation>
 <translation id="2898963176829412617">Nová složka…</translation>
 <translation id="2916171785467530738">Automaticky doplňovat vyhledávací dotazy a adresy URL</translation>
 <translation id="291754862089661335">Do tohoto rámce umístěte QR kód nebo čárový kód.</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">Hesla</translation>
 <translation id="7053983685419859001">Blokovat</translation>
 <translation id="7062545763355031412">Přijmout a přepnout účet</translation>
+<translation id="708844789167408367">Odhlásit se a vypnout synchronizaci…</translation>
 <translation id="7099761977003084116">Nedávno použité karty</translation>
 <translation id="7102005569666697658">Stahování… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">Skrýt</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">Vyslovovat odpovědi</translation>
 <translation id="7207383424303353046">Novinka: Nastavte si Chrome jako výchozí prohlížeč a otevírejte weby automaticky v Chromu. <ph name="BEGIN_LINK" />Otevřít nastavení<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Neplatná přezdívka karty</translation>
+<translation id="722454870747268814">Nová anonymní karta</translation>
 <translation id="7265758999917665941">Pro tento web nikdy</translation>
 <translation id="7272437679830969316">Vaši totožnost nelze ověřit. Heslo nebylo zkopírováno.</translation>
 <translation id="7291368939935408496">Příprava hesel…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index e1bfdcf8..a869cf3c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Skjult, adgangskode</translation>
 <translation id="2876369937070532032">Sender webadresser på nogle sider, som du besøger, til Google, når din sikkerhed er truet</translation>
 <translation id="288655811176831528">Luk fane</translation>
+<translation id="2893180576842394309">Google kan bruge din historik til at tilpasse Søgning og andre Google-tjenester</translation>
 <translation id="2898963176829412617">Ny mappe...</translation>
 <translation id="2916171785467530738">Autofuldfør søgninger og webadresser</translation>
 <translation id="291754862089661335">Placer QR-kode eller stregkode i denne ramme</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Giv talte svar</translation>
 <translation id="7207383424303353046">Nyt! Åbn automatisk websites i Chrome ved at gøre den til din standardbrowser. <ph name="BEGIN_LINK" />Åbn indstillinger<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Kortets kaldenavn er ugyldigt</translation>
+<translation id="722454870747268814">Ny inkognitofane</translation>
 <translation id="7265758999917665941">Aldrig for dette website</translation>
 <translation id="7272437679830969316">Din identitet kunne ikke bekræftes. Adgangskoden blev ikke kopieret.</translation>
 <translation id="7291368939935408496">Forbereder 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 6398c4265..9a5f32e9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Ausgeblendetes Passwort</translation>
 <translation id="2876369937070532032">URLs einiger von mir besuchter Seiten an Google senden, wenn meine Sicherheit gefährdet ist</translation>
 <translation id="288655811176831528">Tab schließen</translation>
+<translation id="2893180576842394309">Anhand Ihres Verlaufs kann Google die Google Suche und andere Google-Dienste personalisieren</translation>
 <translation id="2898963176829412617">Neuer Ordner…</translation>
 <translation id="2916171785467530738">Suchanfragen und URLs automatisch vervollständigen</translation>
 <translation id="291754862089661335">Positionieren Sie den QR-Code oder Barcode in diesem Bereich</translation>
@@ -627,6 +628,7 @@
 <translation id="7203585745079012652">Gesprochene Antworten</translation>
 <translation id="7207383424303353046">Neu: Websites werden automatisch in Chrome geöffnet, wenn Sie es als Standard-Browser-App festlegen. <ph name="BEGIN_LINK" />Zu den Einstellungen<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Ungültiger Kartenalias</translation>
+<translation id="722454870747268814">Neuer Inkognito-Tab</translation>
 <translation id="7265758999917665941">Für diese Website niemals</translation>
 <translation id="7272437679830969316">Ihre Identität konnte nicht bestätigt werden. Das Passwort wurde nicht kopiert.</translation>
 <translation id="7291368939935408496">Passwörter werden zum Exportieren vorbereitet…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index 30b6bb2..62452d1b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Κρυφός κωδικός</translation>
 <translation id="2876369937070532032">Στέλνει URL από ορισμένες σελίδες που επισκέπτεστε στο Google, όταν η ασφάλειά σας βρίσκεται σε κίνδυνο</translation>
 <translation id="288655811176831528">Κλείσιμο καρτέλας</translation>
+<translation id="2893180576842394309">Η Google μπορεί να χρησιμοποιήσει το ιστορικό σας για την εξατομίκευση της Αναζήτησης και άλλων υπηρεσιών Google</translation>
 <translation id="2898963176829412617">Νέος φάκελος…</translation>
 <translation id="2916171785467530738">Αυτόματη συμπλήρωση αναζητήσεων και URL</translation>
 <translation id="291754862089661335">Τοποθετήστε τον κώδικα QR ή τον γραμμωτό κώδικα σε αυτό το πλαίσιο</translation>
@@ -629,6 +630,7 @@
 <translation id="7203585745079012652">Εκφώνηση απαντήσεων</translation>
 <translation id="7207383424303353046">Νέο: Ανοίξτε ιστοτόπους αυτόματα στο Chrome, ορίζοντάς το ως προεπιλεγμένη εφαρμογή προγράμματος περιήγησης. <ph name="BEGIN_LINK" />Άνοιγμα Ρυθμίσεων<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Μη έγκυρο ψευδώνυμο κάρτας</translation>
+<translation id="722454870747268814">Νέα καρτέλα ανώνυμης περιήγησης</translation>
 <translation id="7265758999917665941">Ποτέ για αυτόν τον ιστότοπο</translation>
 <translation id="7272437679830969316">Δεν είναι δυνατή η επαλήθευση της ταυτότητας σας. Ο κωδικός πρόσβασης δεν αντιγράφηκε.</translation>
 <translation id="7291368939935408496">Προετοιμασία κωδικών πρόσβασης…</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 8ed5285..9df1fd2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Hidden Password</translation>
 <translation id="2876369937070532032">Sends URLs of some pages that you visit to Google, when your security is at risk</translation>
 <translation id="288655811176831528">Close Tab</translation>
+<translation id="2893180576842394309">Google may use your history to personalise Search and other Google services</translation>
 <translation id="2898963176829412617">New Folder…</translation>
 <translation id="2916171785467530738">Autocomplete searches and URLs</translation>
 <translation id="291754862089661335">Position QR code or bar code in this frame</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Speak Answers Back</translation>
 <translation id="7207383424303353046">New: Open sites in Chrome automatically by making it your default browser app. <ph name="BEGIN_LINK" />Open settings<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Invalid card nickname</translation>
+<translation id="722454870747268814">New Incognito Tab</translation>
 <translation id="7265758999917665941">Never for this site</translation>
 <translation id="7272437679830969316">Can't verify your identity. Password not copied.</translation>
 <translation id="7291368939935408496">Preparing Passwords…</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 9dc771e..fb2531d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Contraseña oculta</translation>
 <translation id="2876369937070532032">Enviar a Google las URL de algunas páginas que visitas, cuando tu seguridad esté en riesgo</translation>
 <translation id="288655811176831528">Cerrar pestaña</translation>
+<translation id="2893180576842394309">Es posible que Google use tu historial para personalizar la Búsqueda, los anuncios y otros servicios de Google</translation>
 <translation id="2898963176829412617">Nueva carpeta…</translation>
 <translation id="2916171785467530738">Autocompletar búsquedas y URL</translation>
 <translation id="291754862089661335">Coloca el código QR o de barras en este recuadro</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Decir las respuestas</translation>
 <translation id="7207383424303353046">Nueva función: Para que los sitios se abran de forma automática en Chrome, elígelo como App de navegador predeterminada. <ph name="BEGIN_LINK" />Abrir Configuración<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">El sobrenombre de la tarjeta no es válido</translation>
+<translation id="722454870747268814">Nueva pestaña de incógnito</translation>
 <translation id="7265758999917665941">Nunca para este sitio</translation>
 <translation id="7272437679830969316">No se puede verificar tu identidad. La contraseña no se copió.</translation>
 <translation id="7291368939935408496">Preparando las 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 055eaf3..93bfc34 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -98,7 +98,7 @@
 <translation id="1820259098641718022">Añadida a Lista de lectura</translation>
 <translation id="1870148520156231997">Mostrar contraseña</translation>
 <translation id="1872096359983322073">Linterna</translation>
-<translation id="1894205589103145703">Ha ocurrido un error durante el inicio de sesión.</translation>
+<translation id="1894205589103145703">No se ha podido iniciar la sesión.</translation>
 <translation id="1911619930368729126">Subir a Google Drive</translation>
 <translation id="1923342640370224680">Última hora</translation>
 <translation id="1941314575388338491">Toca dos veces para copiar.</translation>
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Contraseña oculta</translation>
 <translation id="2876369937070532032">Envía a Google las URL de algunas de las páginas que visitas cuando tu seguridad corre peligro</translation>
 <translation id="288655811176831528">Cerrar pestaña</translation>
+<translation id="2893180576842394309">Es posible que Google utilice tu historial para personalizar la Búsqueda y otros servicios de Google</translation>
 <translation id="2898963176829412617">Nueva carpeta…</translation>
 <translation id="2916171785467530738">Autocompletar búsquedas y URLs</translation>
 <translation id="291754862089661335">Coloca el código QR o de barras en este marco</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Decir las respuestas</translation>
 <translation id="7207383424303353046">Novedad: Abre sitios en Chrome automáticamente configurándolo como tu aplicación de navegador predeterminada. <ph name="BEGIN_LINK" />Abrir Configuración<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Nombre de la tarjeta no válido</translation>
+<translation id="722454870747268814">Nueva pestaña de incógnito</translation>
 <translation id="7265758999917665941">Jamás para este sitio web</translation>
 <translation id="7272437679830969316">No se puede verificar tu identidad. No se ha copiado la contraseña.</translation>
 <translation id="7291368939935408496">Preparando 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 870f0f6..b92c5ab 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Peidetud, parool</translation>
 <translation id="2876369937070532032">Saadab mõnede teie külastatud lehtede URL-id Google'ile, kui teie turvalisus ohtu satub</translation>
 <translation id="288655811176831528">Sule vaheleht</translation>
+<translation id="2893180576842394309">Google võib kasutada teie ajalugu otsingu ja muude Google'i teenuste isikupärastamiseks</translation>
 <translation id="2898963176829412617">Uus kaust ...</translation>
 <translation id="2916171785467530738">Otsingute ja URL-ide automaatne täitmine</translation>
 <translation id="291754862089661335">Paigutage QR-kood või ribakood sellesse kaadrisse</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Vastuste esitamine</translation>
 <translation id="7207383424303353046">Uus: avage saidid automaatselt Chrome'is, määrates selle vaikebrauseriks. <ph name="BEGIN_LINK" />Ava seaded<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Kaardi sobimatu hüüdnimi</translation>
+<translation id="722454870747268814">Uus inkognito vaheleht</translation>
 <translation id="7265758999917665941">Selle saidi puhul mitte kunagi</translation>
 <translation id="7272437679830969316">Teie isikut ei õnnestu tuvastada. Parooli ei kopeeritud.</translation>
 <translation id="7291368939935408496">Paroolide ettevalmistamine …</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
index d5711eae..025cdbd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Ezkutatutako pasahitza</translation>
 <translation id="2876369937070532032">Segurtasuna arriskuan dagoenean, ireki dituzun URLetako batzuk bidaltzen dizkio Google-ri</translation>
 <translation id="288655811176831528">Itxi fitxa</translation>
+<translation id="2893180576842394309">Baliteke Google-k historia erabiltzea Bilaketa eta Google-ren beste zerbitzu batzuk pertsonalizatzeko</translation>
 <translation id="2898963176829412617">Karpeta berria…</translation>
 <translation id="2916171785467530738">Bete automatikoki bilaketak eta URLak</translation>
 <translation id="291754862089661335">Ezarri QR kodea edo barra-kodea marko honetan</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Erantzun ahots bidez</translation>
 <translation id="7207383424303353046">Berria: ezarri Chrome arakatzaile lehenetsi gisa eta ireki webguneak bertan automatikoki. <ph name="BEGIN_LINK" />Ireki ezarpenak<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Txartelaren goitizenak ez du balio</translation>
+<translation id="722454870747268814">Ezkutuko moduko fitxa berria</translation>
 <translation id="7265758999917665941">Inoiz ez webgune honetan</translation>
 <translation id="7272437679830969316">Ezin da egiaztatu identitatea. Ez da kopiatu pasahitza.</translation>
 <translation id="7291368939935408496">Pasahitzak prestatzen…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index 647f5afe..6d2136a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">گذرواژه پنهان</translation>
 <translation id="2876369937070532032">‏اگر امنیتتان درخطر باشد، نشانی وب برخی از صفحه‌هایی را که بازدید می‌کنید به Google می‌فرستد</translation>
 <translation id="288655811176831528">بستن برگه</translation>
+<translation id="2893180576842394309">‏Google ممکن است از سابقه مرور شما برای شخصی کردن جستجو و سایر سرویس‌های Google استفاده کند</translation>
 <translation id="2898963176829412617">پوشه جدید…</translation>
 <translation id="2916171785467530738">تکمیل خودکار جستجوها و نشانی‌های وب</translation>
 <translation id="291754862089661335">رمزینه پاسخ‌سریع یا بارکد را در این قاب قرار دهید</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">پاسخ گفتاری</translation>
 <translation id="7207383424303353046">‏جدید: Chrome را به‌عنوان برنامه مرورگر پیش‌فرض تنظیم کنید تا سایت‌ها به‌طور خودکار در آن باز شوند. <ph name="BEGIN_LINK" />باز کردن تنظیمات<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">نام مستعار کارت نامعتبر است</translation>
+<translation id="722454870747268814">برگه ناشناس جدید</translation>
 <translation id="7265758999917665941">هرگز برای این سایت</translation>
 <translation id="7272437679830969316">نمی‌توانیم هویتتان را به تأیید برسانیم. گذرواژه کپی نشد.</translation>
 <translation id="7291368939935408496">درحال آماده‌سازی گذرواژه‌ها…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index 2110ad4..3565533 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Piilotettu salasana</translation>
 <translation id="2876369937070532032">Lähettää joidenkin avattujen sivujen URL-osoitteet Googlelle, kun turvallisuutesi on vaarassa</translation>
 <translation id="288655811176831528">Sulje välilehti</translation>
+<translation id="2893180576842394309">Google voi muokata Hakua ja muita Googlen palveluita historiasi perusteella</translation>
 <translation id="2898963176829412617">Uusi kansio…</translation>
 <translation id="2916171785467530738">Hakujen ja URL-osoitteiden automaattinen täydennys</translation>
 <translation id="291754862089661335">Aseta QR- tai viivakoodi tämän kehyksen sisälle.</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">Salasanat</translation>
 <translation id="7053983685419859001">Estä</translation>
 <translation id="7062545763355031412">Hyväksy ja vaihda tiliä</translation>
+<translation id="708844789167408367">Kirjaudu ulos ja poista synkronointi käytöstä…</translation>
 <translation id="7099761977003084116">Viimeaikaiset välilehdet</translation>
 <translation id="7102005569666697658">Ladataan… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">Piilota</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">Puhu vastaukset</translation>
 <translation id="7207383424303353046">Uutta: Avaa sivustot Chromessa automaattisesti tekemällä siitä oletusselainsovelluksesi. <ph name="BEGIN_LINK" />Avaa Asetukset<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Virheellinen kortin lyhytnimi</translation>
+<translation id="722454870747268814">Uusi incognito-välilehti</translation>
 <translation id="7265758999917665941">Ei koskaan tälle sivustolle</translation>
 <translation id="7272437679830969316">Henkilöllisyytesi vahvistaminen ei onnistunut. Salasanaa ei kopioitu.</translation>
 <translation id="7291368939935408496">Valmistellaan salasanoja…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index 0428907..bfc8cf2d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Nakatago, Password</translation>
 <translation id="2876369937070532032">Ipadala ang mga URL ng ilang page na binibisita mo sa Google kapag nanganganib ang iyong seguridad</translation>
 <translation id="288655811176831528">Isara ang Tab</translation>
+<translation id="2893180576842394309">Maaaring gamitin ng Google ang iyong history para i-personalize ang Search at iba pang serbisyo ng Google</translation>
 <translation id="2898963176829412617">Bagong Folder…</translation>
 <translation id="2916171785467530738">Awtomatikong kumpletuhin ang Mga Paghahanap at URL</translation>
 <translation id="291754862089661335">Itapat ang QR code o barcode sa loob ng frame na ito.</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Bigkasin ang Mga Sagot</translation>
 <translation id="7207383424303353046">Bago: Awtomatikong buksan ang mga site sa Chrome sa pamamagitan ng paggawa ritong Default na Browser App mo. <ph name="BEGIN_LINK" />Buksan ang Mga Setting<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Invalid ang Nickname ng Card</translation>
+<translation id="722454870747268814">Bagong Tab na Incognito</translation>
 <translation id="7265758999917665941">Hindi Kailanman Para sa Site na Ito</translation>
 <translation id="7272437679830969316">Hindi ma-verify ang iyong pagkakakilanlan. Hindi nakopya ang password.</translation>
 <translation id="7291368939935408496">Inihahanda ang 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 c566412..38fbe8a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Masqué, mot de passe</translation>
 <translation id="2876369937070532032">Envoie des URL de certaines pages que vous visitez à Google, lorsque votre sécurité pourrait être compromise</translation>
 <translation id="288655811176831528">Fermer l'onglet</translation>
+<translation id="2893180576842394309">Google peut utiliser votre historique pour personnaliser la recherche et d'autres services Google</translation>
 <translation id="2898963176829412617">Nouveau dossier...</translation>
 <translation id="2916171785467530738">Saisie semi-automatique des recherches et des URL</translation>
 <translation id="291754862089661335">Placer le code QR ou le code à barres dans ce cadre</translation>
@@ -627,6 +628,7 @@
 <translation id="7203585745079012652">Réponses vocales</translation>
 <translation id="7207383424303353046">Nouveau : Ouvrez automatiquement les sites dans Chrome en le définissant comme application de navigation par défaut.<ph name="BEGIN_LINK" />Accéder aux paramètres<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Pseudo de carte incorrect</translation>
+<translation id="722454870747268814">Nouvel onglet de navigation privée</translation>
 <translation id="7265758999917665941">Jamais pour ce site</translation>
 <translation id="7272437679830969316">Impossible de vérifier votre identité. Le mot de passe n'a pas été copié.</translation>
 <translation id="7291368939935408496">Préparation des mots de passe en cours…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index 4312a7e..bb787db 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -112,7 +112,7 @@
 <translation id="2073572773299281212">Actif il y a <ph name="DAYS" /> jours</translation>
 <translation id="2074131957428911366">Vous avez toujours la possibilité de sélectionner les éléments à synchroniser dans les <ph name="BEGIN_LINK" />paramètres<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">Annuler</translation>
-<translation id="2086623437239112659">Les infos de connexion que vous avez enregistrées sont peut-être obsolètes.</translation>
+<translation id="2086623437239112659">Les infos de connexion enregistrées sont peut-être obsolètes.</translation>
 <translation id="209018056901015185">Voir version ordinateur</translation>
 <translation id="2103075008456228677">Ouvrir history.google.com</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> éléments déplacés.</translation>
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Masqué, Mot de passe</translation>
 <translation id="2876369937070532032">Envoyer à Google les URL des pages que vous consultez présentant un risque pour votre sécurité</translation>
 <translation id="288655811176831528">Fermer l'onglet</translation>
+<translation id="2893180576842394309">Google peut utiliser votre historique pour personnaliser la recherche et d'autres services Google</translation>
 <translation id="2898963176829412617">Nouveau dossier…</translation>
 <translation id="2916171785467530738">Saisir semi-automatiquement les recherches et les URL</translation>
 <translation id="291754862089661335">Positionnez le code QR ou le code-barres dans ce cadre</translation>
@@ -627,6 +628,8 @@
 <translation id="7203585745079012652">Énoncer les réponses</translation>
 <translation id="7207383424303353046">Nouveau : Ouvrez automatiquement les sites dans Chrome en le définissant comme appli de navigation par défaut. <ph name="BEGIN_LINK" />Accéder aux paramètres<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Pseudo incorrect associé à la carte</translation>
+<translation id="722454870747268814">Nouvel onglet de navigation privée 
+</translation>
 <translation id="7265758999917665941">Jamais pour ce site</translation>
 <translation id="7272437679830969316">Impossible de confirmer votre identité. Mot de passe non copié.</translation>
 <translation id="7291368939935408496">Préparation des mots de passe…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index ee6d586e..0ad2cb2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Contrasinal oculto</translation>
 <translation id="2876369937070532032">Enviar a Google os URL das páxinas que visitas cando a túa seguranza corra perigo</translation>
 <translation id="288655811176831528">Pechar pestana</translation>
+<translation id="2893180576842394309">Google pode utilizar o teu historial para personalizar a Busca e outros servizos de Google</translation>
 <translation id="2898963176829412617">Cartafol novo...</translation>
 <translation id="2916171785467530738">Completar buscas e URL automaticamente</translation>
 <translation id="291754862089661335">Coloca o código QR ou o código de barras neste marco</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Dicir as respostas</translation>
 <translation id="7207383424303353046">Novidade: Abre sitios en Chrome automaticamente configurándoo como o teu navegador predeterminado. <ph name="BEGIN_LINK" />Abrir Configuración<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">O alcume da tarxeta non é válido</translation>
+<translation id="722454870747268814">Nova pestana do modo de incógnito</translation>
 <translation id="7265758999917665941">Nunca neste sitio</translation>
 <translation id="7272437679830969316">Non se pode verificar a túa identidade, polo que non se copiou o contrasinal.</translation>
 <translation id="7291368939935408496">Preparando 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 4cb685d..836e09e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">છુપાયેલ, પાસવર્ડ</translation>
 <translation id="2876369937070532032">તમારી સુરક્ષા જોખમમાં હોય ત્યારે, તમે મુલાકાત લેતા હો તે કેટલાક પેજના URLs Googleને મોકલે છે</translation>
 <translation id="288655811176831528">ટૅબ બંધ કરો</translation>
+<translation id="2893180576842394309">Google, શોધ અને અન્ય Google સેવાઓને વ્યક્તિગત કરવા માટે તમારા ઇતિહાસનો ઉપયોગ કરી શકે છે</translation>
 <translation id="2898963176829412617">નવું ફોલ્ડર…</translation>
 <translation id="2916171785467530738">શોધ અને URLsને ઑટોમૅટિક રીતે પૂર્ણ કરો</translation>
 <translation id="291754862089661335">QR કોડ અથવા બારકોડને આ ફ્રેમમાં મૂકો</translation>
@@ -627,6 +628,7 @@
 <translation id="7203585745079012652">જવાબો પાછા બોલો</translation>
 <translation id="7207383424303353046">નવું: Chromeને તમારી ડિફૉલ્ટ બ્રાઉઝર ઍપ બનાવીને સાઇટને તેમાં ઑટોમૅટિક રીતે ખોલો. <ph name="BEGIN_LINK" />સેટિંગ ખોલો<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">કાર્ડનું અમાન્ય ઉપનામ</translation>
+<translation id="722454870747268814">નવું છૂપું ટૅબ</translation>
 <translation id="7265758999917665941">આ સાઇટ માટે ક્યારેય નહીં</translation>
 <translation id="7272437679830969316">તમારી ઓળખની ચકાસણી કરી શકાતી નથી. પાસવર્ડ કૉપિ કરેલો નથી.</translation>
 <translation id="7291368939935408496">પાસવર્ડ તૈયાર કરી રહ્યાં છીએ…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index 66167c6..f11cebe 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">छिपा हुआ पासवर्ड</translation>
 <translation id="2876369937070532032">आपकी सुरक्षा को खतरा होने पर उन पेज के यूआरएल भेजे जाते हैं जिन पर आप Google के ज़रिए जाते हैं.</translation>
 <translation id="288655811176831528">टैब बंद करें</translation>
+<translation id="2893180576842394309">खोज और दूसरी Google सेवाओं को मनमुताबिक बनाने के लिए, Google आपके इतिहास का इस्तेमाल कर सकता है</translation>
 <translation id="2898963176829412617">नया फ़ोल्डर…</translation>
 <translation id="2916171785467530738">खोजों और यूआरएल को अपने आप पूरा करें</translation>
 <translation id="291754862089661335">QR कोड या बारकोड को इस फ़्रेम में लाएं</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">उत्तर फिर से बोलें</translation>
 <translation id="7207383424303353046">नई सुविधा: Chrome को अपने डिफ़ॉल्ट ब्राउज़र ऐप्लिकेशन के रूप में सेट करके, साइटों को अपने-आप खोलें. <ph name="BEGIN_LINK" />सेटिंग खोलें<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">कार्ड का प्रचलित नाम अमान्य है</translation>
+<translation id="722454870747268814">नया गुप्त टैब</translation>
 <translation id="7265758999917665941">इस साइट के लिए कभी नहीं</translation>
 <translation id="7272437679830969316">आपकी पहचान की पुष्टि नहीं हो पा रही है. पासवर्ड कॉपी नहीं हुआ.</translation>
 <translation id="7291368939935408496">पासवर्ड तैयार हो रहे हैं...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index 4ad70b6..aafb143 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Sakriveno, zaporka</translation>
 <translation id="2876369937070532032">Googleu šalje URL-ove nekih stranica koje posjećujete kada je ugrožena vaša sigurnost</translation>
 <translation id="288655811176831528">Zatvori karticu</translation>
+<translation id="2893180576842394309">Google može upotrebljavati vašu povijest za prilagodbu Pretraživanja i drugih Googleovih usluga</translation>
 <translation id="2898963176829412617">Nova mapa…</translation>
 <translation id="2916171785467530738">Samodovršavanje pretraživanja i URL-ova</translation>
 <translation id="291754862089661335">Postavite QR ili crtični kôd u ovaj okvir</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Izgovaranje odgovora</translation>
 <translation id="7207383424303353046">Novo: automatski otvorite web-lokacije u Chromeu tako što ćete ga postaviti kao zadanu aplikaciju preglednika. <ph name="BEGIN_LINK" />Otvorite Postavke<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Nadimak kartice nije važeći</translation>
+<translation id="722454870747268814">Nova anonimna kartica</translation>
 <translation id="7265758999917665941">Nikad za ovu web lokaciju</translation>
 <translation id="7272437679830969316">Potvrda identiteta nije moguća. Zaporka nije kopirana.</translation>
 <translation id="7291368939935408496">Priprema zaporki...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index e7f203fb..2cfc9f1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Jelszó (rejtett)</translation>
 <translation id="2876369937070532032">Elküldi egyes felkeresett oldalak URL-jét a Google-nak, ha veszélyben van az Ön biztonsága</translation>
 <translation id="288655811176831528">Lap bezárása</translation>
+<translation id="2893180576842394309">A Google felhasználhatja az Ön előzményeit a Kereső és más Google-szolgáltatások személyre szabására</translation>
 <translation id="2898963176829412617">Új mappa...</translation>
 <translation id="2916171785467530738">Keresések és URL-címek automatikus kiegészítése</translation>
 <translation id="291754862089661335">Igazítsa a QR-kódot vagy vonalkódot ehhez a kerethez</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Mondja ki a válaszokat</translation>
 <translation id="7207383424303353046">Újdonság: Ha alapértelmezett böngészőként állítja be a Chrome-ot, automatikusan nyithat meg benne webhelyeket. <ph name="BEGIN_LINK" />Beállítások megnyitása<ph name="END_LINK" />.</translation>
 <translation id="721597782417389033">Érvénytelen egyedi kártyanév</translation>
+<translation id="722454870747268814">Új inkognitó lap</translation>
 <translation id="7265758999917665941">Ezen a webhelyen soha</translation>
 <translation id="7272437679830969316">Nem sikerült ellenőrizni a személyazonosságát. A jelszó nem lett másolva.</translation>
 <translation id="7291368939935408496">Jelszavak előkészítése…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
index 5e200fa3..179eee19 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Թաքցված գաղտնաբառ</translation>
 <translation id="2876369937070532032">Ձեր այցելած որոշ էջերի URL-ներն ուղարկվում են Google-ին, երբ ձեր հաշիվը կամ սարքը վտանգված է</translation>
 <translation id="288655811176831528">Փակել ներդիրը</translation>
+<translation id="2893180576842394309">Google-ը կարող է ձեր այցելությունների պատմությունն օգտագործել` Որոնումն ու Google-ի մյուս ծառայություններն անհատականացնելու համար:</translation>
 <translation id="2898963176829412617">Նոր պանակ…</translation>
 <translation id="2916171785467530738">Որոնման հարցումների և URL-ների ինքնալրացում</translation>
 <translation id="291754862089661335">Դիրքավորեք QR-կոդը կամ գծակոդը այս շրջանակի մեջ</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Կարդալ պատասխանները</translation>
 <translation id="7207383424303353046">Նորո՛ւյթ․ Կայքերն ավտոմատ կերպով Chrome-ում բացելու համար դարձրեք այն ձեր կանխադրված դիտարկիչը։ <ph name="BEGIN_LINK" />Բացել կարգավորումները<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Քարտի կեղծանունն անվավեր է</translation>
+<translation id="722454870747268814">Նոր ինկոգնիտո ներդիր</translation>
 <translation id="7265758999917665941">Երբեք չպահել այս կայքի համար</translation>
 <translation id="7272437679830969316">Չհաջողվեց հաստատել ձեր ինքնությունը: Գաղտնաբառը չի պատճենվել:</translation>
 <translation id="7291368939935408496">Արտահանման նախապատրաստում…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index 86e72e40..59c3d4a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Sandi Tersembunyi</translation>
 <translation id="2876369937070532032">Mengirimkan URL beberapa halaman yang Anda kunjungi ke Google, jika keamanan Anda berisiko</translation>
 <translation id="288655811176831528">Tutup Tab</translation>
+<translation id="2893180576842394309">Google dapat menggunakan histori Anda untuk mempersonalisasi Penelusuran dan layanan Google lainnya</translation>
 <translation id="2898963176829412617">Folder Baru…</translation>
 <translation id="2916171785467530738">Lengkapi Otomatis Penelusuran dan URL</translation>
 <translation id="291754862089661335">Letakkan kode QR atau kode batang dalam bingkai ini</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Ucapkan Jawabannya</translation>
 <translation id="7207383424303353046">Baru: Buka situs di Chrome secara otomatis dengan menjadikan Chrome sebagai Aplikasi Browser Default Anda. <ph name="BEGIN_LINK" />Buka Setelan<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Nama Panggilan Kartu Tidak Valid</translation>
+<translation id="722454870747268814">Tab Samaran Baru</translation>
 <translation id="7265758999917665941">Jangan Pernah Untuk Situs Ini</translation>
 <translation id="7272437679830969316">Tidak dapat memverifikasi identitas. Sandi tidak disalin.</translation>
 <translation id="7291368939935408496">Mempersiapkan Sandi…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb
index 27f4f6e..622d516b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Falið, aðgangsorð</translation>
 <translation id="2876369937070532032">Sendir vefslóð sumra síðna sem þú skoðar til Google, þegar öryggi þitt er í hættu</translation>
 <translation id="288655811176831528">Loka flipa</translation>
+<translation id="2893180576842394309">Google notar hugsanlega ferilinn þinn til að sérsníða leitina og aðra þjónustu Google</translation>
 <translation id="2898963176829412617">Ný mappa…</translation>
 <translation id="2916171785467530738">Fylla sjálfvirkt út leitir og vefslóðir</translation>
 <translation id="291754862089661335">Staðsettu QR-kóða eða strikamerkið innan rammans</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Lesa upp svör</translation>
 <translation id="7207383424303353046">Nýtt: Opnaðu vefsvæði sjálfkrafa í Chrome með því að gera það að sjálfgefnu vafraforriti. <ph name="BEGIN_LINK" />Opna stillingar<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Ógilt gælunafn korts</translation>
+<translation id="722454870747268814">Nýr huliðsflipi</translation>
 <translation id="7265758999917665941">Aldrei fyrir þetta vefsvæði</translation>
 <translation id="7272437679830969316">Ekki tókst að staðfesta hver þú ert. Aðgangsorð var ekki afritað.</translation>
 <translation id="7291368939935408496">Undirbýr aðgangsorð...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index ff76714..fc9649d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Nascosta, password</translation>
 <translation id="2876369937070532032">Invia a Google gli URL di alcune pagine che visiti quando la tua sicurezza è a rischio</translation>
 <translation id="288655811176831528">Chiudi scheda</translation>
+<translation id="2893180576842394309">Google può utilizzare la tua cronologia per personalizzare la Ricerca e altri servizi Google</translation>
 <translation id="2898963176829412617">Nuova cartella…</translation>
 <translation id="2916171785467530738">Completamento automatico di ricerche e URL</translation>
 <translation id="291754862089661335">Posiziona il codice a barre o QR all'interno di quest'area</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Pronuncia le risposte</translation>
 <translation id="7207383424303353046">Novità: apri automaticamente siti in Chrome impostandolo come App browser predefinita. <ph name="BEGIN_LINK" />Apri le Impostazioni<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Nickname carta non valido</translation>
+<translation id="722454870747268814">Nuova scheda in incognito</translation>
 <translation id="7265758999917665941">Mai per questo sito</translation>
 <translation id="7272437679830969316">Impossibile verificare la tua identità. Password non copiata.</translation>
 <translation id="7291368939935408496">Preparazione delle 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 e0233b04..f9bec0c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -112,7 +112,7 @@
 <translation id="2073572773299281212">פעילות אחרונה: לפני <ph name="DAYS" /> ימים</translation>
 <translation id="2074131957428911366">אפשר לבחור מה לסנכרן בכל שלב דרך <ph name="BEGIN_LINK" />ההגדרות<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">ביטול הפעולה</translation>
-<translation id="2086623437239112659">ייתכן שהפרטים השמורים לכניסה לחשבון לא עדכניים.</translation>
+<translation id="2086623437239112659">יכול להיות שהפרטים שנשמרו לכניסה לחשבון לא עדכניים.</translation>
 <translation id="209018056901015185">טעינת גרסת האתר למחשב</translation>
 <translation id="2103075008456228677">‏פתיחת history.google.com</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> פריטים הועברו</translation>
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">נסתר, סיסמה</translation>
 <translation id="2876369937070532032">‏שולחת ל-Google כתובות URL של חלק מהדפים שאליהם נכנסת, אם מתגלה סיכון אבטחה</translation>
 <translation id="288655811176831528">סגירת הכרטיסייה</translation>
+<translation id="2893180576842394309">‏Google עשויה להשתמש בהיסטוריית הגלישה שלך לצורך התאמה אישית של החיפוש ושירותי Google אחרים</translation>
 <translation id="2898963176829412617">תיקייה חדשה…</translation>
 <translation id="2916171785467530738">השלמה אוטומטית של חיפושים וכתובות אתרים</translation>
 <translation id="291754862089661335">‏יש למקם את קוד ה-QR או הברקוד במסגרת זו</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">משוב לתשובות על-ידי דיבור</translation>
 <translation id="7207383424303353046">‏חדש: אם Chrome יוגדר כאפליקציית הדפדפן בברירת מחדל, אתרים ייפתחו בו באופן אוטומטי. <ph name="BEGIN_LINK" />לפתיחת ההגדרות<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">כינוי הכרטיס לא חוקי</translation>
+<translation id="722454870747268814">כרטיסייה חדשה לגלישה בסתר</translation>
 <translation id="7265758999917665941">אף פעם עבור אתר זה</translation>
 <translation id="7272437679830969316">לא ניתן לאמת את הזהות שלך. הסיסמה לא הועתקה.</translation>
 <translation id="7291368939935408496">הכנת הסיסמאות מתבצעת...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 165e6a2..388b960 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">非表示のパスワード</translation>
 <translation id="2876369937070532032">セキュリティ上のリスクがある場合に、アクセスした一部のページの URL が Google に送信されます</translation>
 <translation id="288655811176831528">タブを閉じる</translation>
+<translation id="2893180576842394309">検索やその他の Google サービスをカスタマイズするために、Google で履歴が使用されることがあります</translation>
 <translation id="2898963176829412617">新しいフォルダ...</translation>
 <translation id="2916171785467530738">検索語句や URL をオートコンプリートする</translation>
 <translation id="291754862089661335">QR コードまたはバーコードをこの枠に合わせてください</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">パスワード</translation>
 <translation id="7053983685419859001">ブロック</translation>
 <translation id="7062545763355031412">同意してアカウントを切り替える</translation>
+<translation id="708844789167408367">ログアウトして同期をオフにする...</translation>
 <translation id="7099761977003084116">最近使ったタブ</translation>
 <translation id="7102005569666697658">ダウンロードしています… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">非表示</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">回答を音声で聞く</translation>
 <translation id="7207383424303353046">新機能: Chrome でサイトを自動的に開くよう、デフォルトのブラウザアプリに設定できます。<ph name="BEGIN_LINK" />設定を開く<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">無効なカード ニックネーム</translation>
+<translation id="722454870747268814">新しいシークレット タブ</translation>
 <translation id="7265758999917665941">このサイトでは保存しない</translation>
 <translation id="7272437679830969316">ユーザー認証に失敗しました。パスワードはコピーされませんでした。</translation>
 <translation id="7291368939935408496">パスワードの準備中...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index 0b1036ab..1adb4a98 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">დამალული, პაროლი</translation>
 <translation id="2876369937070532032">Google-ს უგზავნის თქვენ მიერ მონახულებული ზოგიერთი გვერდის URL-ებს, როცა უსაფრთხოება რისკის ქვეშ არის</translation>
 <translation id="288655811176831528">ჩანართის დახურვა</translation>
+<translation id="2893180576842394309">Google-მა შეიძლება გამოიყენოს თქვენი ისტორია Search-ისა და Google-ის სხვა სერვისების თქვენზე მოსარგებად</translation>
 <translation id="2898963176829412617">ახალი საქაღალდე…</translation>
 <translation id="2916171785467530738">ძიებებისა და URL-ების ავტომატური დასრულება</translation>
 <translation id="291754862089661335">მოათავსეთ QR-კოდი ან შტრიხკოდი ამ ჩარჩოში</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">აბრუნებს ხმოვან პასუხებს</translation>
 <translation id="7207383424303353046">სიახლე: ავტომატურად გახსენით საიტები Chrome-ში — აქციეთ ის ბრაუზერის ნაგულისხმევ აპად. <ph name="BEGIN_LINK" />პარამეტრების გახსნა<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">ბარათის მეტსახელი არასწორია</translation>
+<translation id="722454870747268814">ახალი ინკოგნიტო ჩანართი</translation>
 <translation id="7265758999917665941">არასდროს ამ საიტისთვის</translation>
 <translation id="7272437679830969316">თქვენი ვინაობა ვერ დადასტურდა. პაროლი არ დაკოპირდა.</translation>
 <translation id="7291368939935408496">მიმდინარეობს პაროლების მომზადება...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index 259d0fd..f15ace1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Жасырын құпия сөз</translation>
 <translation id="2876369937070532032">Қауіп төніп тұрғанда, сіз кірген кейбір беттердің URL сілтемелерін Google-ға жібереді.</translation>
 <translation id="288655811176831528">Қойындыны жабу</translation>
+<translation id="2893180576842394309">Search және басқа да Google қызметтерін жеке қажеттеліктерге бейімдеу үшін Google интернеттегі әрекеттеріңізді пайдалануы мүмкін.</translation>
 <translation id="2898963176829412617">Жаңа қалта…</translation>
 <translation id="2916171785467530738">Іздеулер мен URL мекенжайларын автотолтыру</translation>
 <translation id="291754862089661335">QR кодын не штрих-кодты осы кадрға қойыңыз</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">Құпия сөздер</translation>
 <translation id="7053983685419859001">Бөгеу</translation>
 <translation id="7062545763355031412">Есептік жазбаларды қабылдау және ауыстыру</translation>
+<translation id="708844789167408367">Шығып, синхрондауды өшіру…</translation>
 <translation id="7099761977003084116">Соңғы қойындылар</translation>
 <translation id="7102005569666697658">Жүктеп алынуда…<ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">Жасыру</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">Жауаптарды дыбыстау</translation>
 <translation id="7207383424303353046">Жаңалық: Chrome қолданбасын әдепкі браузер етіп қойсаңыз, сайттар автоматты түрде сол браузерде ашылады. <ph name="BEGIN_LINK" />Параметрлерді ашу<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Картаның лақап аты жарамсыз</translation>
+<translation id="722454870747268814">Жаңа инкогнито қойындысы</translation>
 <translation id="7265758999917665941">Бұл сайт үшін ешқашан</translation>
 <translation id="7272437679830969316">Жеке басыңыз расталмады. Құпия сөз көшірілмеді.</translation>
 <translation id="7291368939935408496">Құпия сөздер дайындалуда...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index 584281d1..94c191f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">ពាក្យសម្ងាត់ដែលបានលាក់</translation>
 <translation id="2876369937070532032">ផ្ញើ​ URL​ របស់​ទំព័រ​មួយចំនួន​ដែលអ្នក​ចូលមើល​ទៅ Google នៅពេលអ្នកជួបហានិភ័យ​ផ្នែកសុវត្ថិភាព</translation>
 <translation id="288655811176831528">បិទផ្ទាំង</translation>
+<translation id="2893180576842394309">Google អាចនឹងប្រើ​ប្រវត្តិរបស់អ្នក ដើម្បី​ធ្វើ​ឱ្យ​ការស្វែងរក និងសេវាកម្ម​ Google ផ្សេងទៀតស្របនឹងអ្នក</translation>
 <translation id="2898963176829412617">ថតឯកសារថ្មី…</translation>
 <translation id="2916171785467530738">បំពេញ​ការស្វែងរក និង URL ដោយស្វ័យប្រវត្តិ</translation>
 <translation id="291754862089661335">ដាក់លេខកូដ QR ឬបារកូដទៅក្នុងស៊ុមនេះ</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">ពាក្យសម្ងាត់</translation>
 <translation id="7053983685419859001">ទប់ស្កាត់</translation>
 <translation id="7062545763355031412">ទទួលយក និងប្តូរគណនី</translation>
+<translation id="708844789167408367">ចាកចេញ និងបិទ​ការធ្វើសមកាលកម្ម...</translation>
 <translation id="7099761977003084116">ផ្ទាំង​ថ្មីៗ</translation>
 <translation id="7102005569666697658">កំពុង​ទាញយក… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">លាក់</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">ឆ្លើយតបទៅវិញ</translation>
 <translation id="7207383424303353046">ថ្មី៖ បើកគេហទំព័រ​នៅក្នុង Chrome ដោយស្វ័យប្រវត្តិ​ដោយធ្វើឱ្យ Chrome ក្លាយជា​កម្មវិធីរុករកតាម​អ៊ីនធឺណិតលំនាំដើម​របស់អ្នក។ <ph name="BEGIN_LINK" />បើក​ការកំណត់<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">ឈ្មោះហៅក្រៅរបស់​កាតមិនត្រឹមត្រូវ</translation>
+<translation id="722454870747268814">ផ្ទាំងអនាមិកថ្មី</translation>
 <translation id="7265758999917665941">មិន​ចងចាំ​សម្រាប់​គេហទំព័រ​នេះទេ</translation>
 <translation id="7272437679830969316">មិនអាច​ផ្ទៀងផ្ទាត់​អត្តសញ្ញាណ​របស់អ្នក​បានទេ។ ពាក្យសម្ងាត់​មិន​បានចម្លង។</translation>
 <translation id="7291368939935408496">កំពុង​រៀបចំ​ពាក្យ​សម្ងាត់...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index fb547ec..213fb8e5a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">ಪಾಸ್‌ವರ್ಡ್ ಮರೆಮಾಡಲಾಗಿದೆ</translation>
 <translation id="2876369937070532032">ನಿಮ್ಮ ಭದ್ರತೆಯು ಅಪಾಯದಲ್ಲಿದ್ದಾಗ, ನೀವು ಭೇಟಿ ನೀಡುವ ಕೆಲವು ಪುಟಗಳ URL ಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
 <translation id="288655811176831528">ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಿ</translation>
+<translation id="2893180576842394309">ಹುಡುಕಾಟ ಮತ್ತು ಇತರ Google ಸೇವೆಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು ನಿಮ್ಮ ಇತಿಹಾಸವನ್ನು Google ಬಳಸಬಹುದು.</translation>
 <translation id="2898963176829412617">ಹೊಸ ಫೋಲ್ಡರ್‌…</translation>
 <translation id="2916171785467530738">ಸ್ವಯಂಪೂರ್ಣ ಹುಡುಕಾಟಗಳು ಮತ್ತು URLಗಳು</translation>
 <translation id="291754862089661335">ಈ ಫ್ರೇಮ್‌ನಲ್ಲಿ QR ಕೋಡ್ ಅಥವಾ ಬಾರ್‌ಕೋಡ್ ಅನ್ನು ಇರಿಸಿ</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">ಉತ್ತರಗಳನ್ನು ಮತ್ತೆ ಮಾತನಾಡಿ</translation>
 <translation id="7207383424303353046">ಹೊಸತು: Chrome ಅನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆ್ಯಪ್ ಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ ಅದರಲ್ಲಿ ಸೈಟ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆರೆಯಿರಿ. <ph name="BEGIN_LINK" />ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">ಕಾರ್ಡ್ ಅಡ್ಡಹೆಸರು ಅಮಾನ್ಯವಾಗಿದೆ</translation>
+<translation id="722454870747268814">ಹೊಸ ಅದೃಶ್ಯ ಟ್ಯಾಬ್</translation>
 <translation id="7265758999917665941">ಈ ಸೈಟ್‌ಗೆ ಎಂದಿಗೂ ಬೇಡ</translation>
 <translation id="7272437679830969316">ನಿಮ್ಮ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ನಕಲಿಸಲಾಗಿಲ್ಲ.</translation>
 <translation id="7291368939935408496">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index 89e6697..a049a54f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">숨겨진 비밀번호</translation>
 <translation id="2876369937070532032">보안상의 위험이 있을 때 일부 방문 페이지의 URL을 Google로 전송합니다.</translation>
 <translation id="288655811176831528">탭 닫기</translation>
+<translation id="2893180576842394309">Google에서 내 방문 기록을 사용하여 Google 검색 및 다른 Google 서비스를 맞춤설정할 수 있습니다.</translation>
 <translation id="2898963176829412617">새 폴더 만들기…</translation>
 <translation id="2916171785467530738">검색어 및 URL 자동 완성</translation>
 <translation id="291754862089661335">프레임 안에 QR 코드나 바코드를 위치시키세요.</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">비밀번호</translation>
 <translation id="7053983685419859001">차단</translation>
 <translation id="7062545763355031412">동의 및 계정 전환</translation>
+<translation id="708844789167408367">로그아웃하고 동기화 사용 중지...</translation>
 <translation id="7099761977003084116">최근 탭</translation>
 <translation id="7102005569666697658">다운로드 중… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">숨기기</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">음성 응답</translation>
 <translation id="7207383424303353046">새로운 기능: 사이트가 자동으로 Chrome에서 열리도록 Chrome을 기본 브라우저 앱으로 설정하세요. <ph name="BEGIN_LINK" />설정 열기<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">잘못된 카드 닉네임</translation>
+<translation id="722454870747268814">새 시크릿 탭</translation>
 <translation id="7265758999917665941">이 사이트 제외</translation>
 <translation id="7272437679830969316">신원을 인증할 수 없습니다. 비밀번호가 복사되지 않았습니다.</translation>
 <translation id="7291368939935408496">비밀번호 준비 중...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index 565f9a2..6d81fdc7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Жашыруун, Сырсөз</translation>
 <translation id="2876369937070532032">Коопсуздугуңузга коркунуч жаралганда, баш баккан барактарыңыздын URL'дерин Google'га жөнөтөт</translation>
 <translation id="288655811176831528">Өтмөктү жабуу</translation>
+<translation id="2893180576842394309">Издөө жана башка Google кызматтарын жекечелештирүү үчүн, Google таржымалыңызды колдонушу мүмкүн</translation>
 <translation id="2898963176829412617">Жаңы куржун…</translation>
 <translation id="2916171785467530738">Издөө сурамдарын жана URL'дерди автоматтык түрдө толтуруу</translation>
 <translation id="291754862089661335">QR кодун же штрих кодду бул алкакка жайгаштырыңыз</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">Сырсөздөр</translation>
 <translation id="7053983685419859001">Бөгөттөө</translation>
 <translation id="7062545763355031412">Кабыл алып, каттоо эсептерин которуу</translation>
+<translation id="708844789167408367">Аккаунттан чыгып, шайкештирүүнү өчүрүү...</translation>
 <translation id="7099761977003084116">Акыркы өтмөктөр</translation>
 <translation id="7102005569666697658">Жүктөлүп алынууда… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">Жашыруу</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">Жоопторду айтуу</translation>
 <translation id="7207383424303353046">Жаңы: Chrome'ду демейки серепчиңиз кылып алып, андагы сайттарды автоматтык түрдө ачыңыз. <ph name="BEGIN_LINK" />Жөндөөлөрдү ачуу<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Картанын ылакап аты туура эмес</translation>
+<translation id="722454870747268814">Жаңы жашыруун өтмөк</translation>
 <translation id="7265758999917665941">Бул сайт үчүн эч качан</translation>
 <translation id="7272437679830969316">Аныктыгыңыз тастыкталган жок. Сырсөз көчүрүлгөн жок.</translation>
 <translation id="7291368939935408496">Сырсөздөр даярдалууда…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index adc8a30..6702f12 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -109,6 +109,7 @@
 <translation id="1974060860693918893">ຂັ້ນສູງ</translation>
 <translation id="1989112275319619282">ເປີດ​ເບິ່ງ</translation>
 <translation id="2015722694326466240">ເພື່ອເບິ່ງລະຫັດຜ່ານ, ກ່ອນອື່ນທາງຕ້ອງຕັ້ງລະຫັດຜ່ານໃນອຸປະກອນຂອງທ່ານ.</translation>
+<translation id="2022352537516230970">ສ້າງມາສຳລັບ iPhone ຂອງທ່ານ</translation>
 <translation id="2073572773299281212">ນຳໃຊ້ເມື່ອ <ph name="DAYS" /> ກ່ອນ</translation>
 <translation id="2074131957428911366">ທ່ານສາມາດເລືອກສິ່ງທີ່ຈະຊິ້ງຂໍ້ມູນໄດ້ໃນ <ph name="BEGIN_LINK" />ການຕັ້ງຄ່າ<ph name="END_LINK" />.</translation>
 <translation id="2079545284768500474">ບໍ່ເຮັດ</translation>
@@ -188,6 +189,7 @@
 <translation id="2871695793448672541">ເຊື່ອງ​ແລ້ວ, ລະ​ຫັດ​ຜ່ານ</translation>
 <translation id="2876369937070532032">ສົ່ງ URL ຂອງບາງໜ້າເວັບທີ່ທ່ານເຂົ້າເບິ່ງໃຫ້ Google, ເມື່ອຄວາມປອດໄພຂອງທ່ານມີຄວາມສ່ຽງ</translation>
 <translation id="288655811176831528">ປິດແຖບ</translation>
+<translation id="2893180576842394309">Google ອາດຈະໃຊ້ປະຫວັດຂອງທ່ານເພື່ອປັບແຕ່ງຊອກຫາ ແລະ ການບໍລິການອື່ນຂອງ Google</translation>
 <translation id="2898963176829412617">ໂຟ​ລ​ເດີ​ໃໝ່...</translation>
 <translation id="2916171785467530738">ຕື່ມການຊອກຫາ ແລະ URL ໂດຍອັດຕະໂນມັດ​</translation>
 <translation id="291754862089661335">ປັບຕຳແໜ່ງລະຫັດ QR ຫຼື ບາໂຄດໃນເຟຣມນີ້</translation>
@@ -313,6 +315,7 @@
 <translation id="4172051516777682613">ສະ​ແດງ​ຢູ່ສະ​ເຫມີ​</translation>
 <translation id="418156467088430727">ເບິ່ງເວີຊັນອອບລາຍຢູ່ໃນແຖບໃໝ່</translation>
 <translation id="4181841719683918333">ພາສາ</translation>
+<translation id="4184011057600693970">ສ້າງມາສຳລັບ iPad ຂອງທ່ານ</translation>
 <translation id="424315890655130736">ປ້ອນວະລີຜ່ານ</translation>
 <translation id="4263576668337963058">ສະແດງຄຳສັ່ງໃນໜ້າທີ່ໃຊ້ໄດ້</translation>
 <translation id="4267380167363222949">ແຖບຕໍ່ໄປ</translation>
@@ -491,6 +494,7 @@
 <translation id="605721222689873409">ປ​ປ</translation>
 <translation id="6059830886158432458">ຄວບຄຸມເລື່ອງລາວ ແລະ ການເຄື່ອນໄຫວຢູ່ບ່ອນນີ້</translation>
 <translation id="6066301408025741299">ແຕະ​ເພື່ອ​ຍົກ​ເລີກ.</translation>
+<translation id="60829778314739003">ຍອມຮັບ ແລະ ສືບຕໍ່</translation>
 <translation id="6108923351542677676">ກຳລັງດຳເນີນການຕັ້ງຄ່າ...</translation>
 <translation id="6119050551270742952">ໜ້າເວັບປັດຈຸບັນຢູ່ໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="6122191549521593678">ອອນ​ລາຍ</translation>
@@ -586,6 +590,7 @@
 <translation id="6801927553864092214">ເພື່ອທ່ອງເວັບແບບສ່ວນຕົວ, ກະລຸນາເປີດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="6807889908376551050">ສະ​ແດງ​ທັງ​ຫມົດ...</translation>
 <translation id="681368974849482173">ສ້າງ​ລາຍ​ການ​ຂຶ້ນ​ແລ້ວ</translation>
+<translation id="6830804042318138535">ອ່ານເພີ່ມເຕີມ</translation>
 <translation id="6831043979455480757">ແປພາສາ</translation>
 <translation id="6851516051005285358">ຮ້ອງຂໍເວັບໄຊເດັສທັອບ</translation>
 <translation id="6858855187367714033">ສະແກນແລ້ວ</translation>
@@ -628,11 +633,13 @@
 <translation id="7203585745079012652">ເວົ້າ​ຄຳ​ຕອບ​ກັບ​ຄືນ</translation>
 <translation id="7207383424303353046">ໃໝ່: ເປີດເວັບໄຊໃນ Chrome ໂດຍອັດຕະໂນມັດໂດຍການເຮັດໃຫ້ມັນເປັນແອັບໂປຣແກຣມທ່ອງເວັບເລີ່ມຕົ້ນຂອງທ່ານ. <ph name="BEGIN_LINK" />ເປີດການຕັ້ງຄ່າ<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">ຊື່ຫຼິ້ນບັດບໍ່ຖືກຕ້ອງ</translation>
+<translation id="722454870747268814">ແຖບທີ່ບໍ່ເຜີຍຕົວຕົນໃໝ່</translation>
 <translation id="7265758999917665941">ບໍ່ເລີຍສໍາລັບເວັບໄຊນີ້</translation>
 <translation id="7272437679830969316">ບໍ່ສາມາດພິສູດຢືນຢັນຕົວຕົນຂອງທ່ານໄດ້. ບໍ່ໄດ້ສຳເນົາລະຫັດຜ່ານ.</translation>
 <translation id="7291368939935408496">ກຳລັງກະກຽມລະຫັດຜ່ານ...</translation>
 <translation id="7293171162284876153">ເພື່ອເລີ່ມການຊິ້ງຂໍ້ມູນ, ກະລຸນາເປີດ "ຊິ້ງຂໍ້ມູນ Chrome ຂອງທ່ານ".</translation>
 <translation id="7313347584264171202">ທ່ານຈະເຫັນແຖບທີ່ບໍ່ເປີດເຜີຍຕົວຕົນຂອງທ່ານຢູ່ບ່ອນນີ້</translation>
+<translation id="7319242366286515846">ໂດຍການດຳເນີນການຕໍ່, ແມ່ນຖືວ່າທ່ານຍອມຮັບ <ph name="BEGIN_LINK" />ຂໍ້ກຳນົດບໍລິການ<ph name="END_LINK" /></translation>
 <translation id="7336264872878993241"><ph name="PERCENT" /> ເປີ​ເຊັນ​ຖືກ​ດາວ​ໂຫຼດ​ແລ້ວ</translation>
 <translation id="7340958967809483333">ຕົວເລືອກສຳລັບ Discover</translation>
 <translation id="7346909386216857016">ຕົກລົງ, ເຂົ້າໃຈແລ້ວ</translation>
@@ -779,6 +786,7 @@
 <translation id="8820817407110198400">ບຸກມາກ</translation>
 <translation id="8840513115188359703">ທ່ານຈະບໍ່ຖືກນຳອອກຈາກລະບົບບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="8870413625673593573">ປິດ​ບໍ່​ດົນ​ມາ​ນີ້</translation>
+<translation id="8876882697946675716">ຊິ້ງຂໍ້ມູນອຸປະກອນຂອງທ່ານສະເໝີ</translation>
 <translation id="8881801611828450202">ຊອກຫາຮູບນີ້ໃນ <ph name="SEARCH_ENGINE" /></translation>
 <translation id="8909135823018751308">ແຊຣ໌...</translation>
 <translation id="8917490105272468696">ແມ່ນ, ຂ້ອຍເຂົ້າຮ່ວມ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 695ef4f..acd2cf3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Paslėptas slaptažodis</translation>
 <translation id="2876369937070532032">Siunčia „Google“ kai kurių puslapių, kuriuose lankotės, URL, kai kyla pavojus jūsų saugai</translation>
 <translation id="288655811176831528">Uždaryti skirtuką</translation>
+<translation id="2893180576842394309">„Google“ gali naudoti jūsų istoriją, kad suasmenintų Paiešką ir kitas „Google“ paslaugas</translation>
 <translation id="2898963176829412617">Naujas aplankas...</translation>
 <translation id="2916171785467530738">Automatiškai užbaigti paieškas ir URL</translation>
 <translation id="291754862089661335">QR arba brūkšninis kodas turėtų būti rodomas šiame rėmelyje</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Sakyti atsakymus</translation>
 <translation id="7207383424303353046">Naujiena: automatiškai atidarykite svetaines naršyklėje „Chrome“, nustatę ją kaip numatytąją naršyklės programą. <ph name="BEGIN_LINK" />Atidarykite skiltį „Nustatymai“<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Netinkamas kortelės slapyvardis</translation>
+<translation id="722454870747268814">Naujas inkognito skirtukas</translation>
 <translation id="7265758999917665941">Niekada šioje svetainėje</translation>
 <translation id="7272437679830969316">Nepavyko patvirtinti tapatybės. Slaptažodis nenukopijuotas.</translation>
 <translation id="7291368939935408496">Ruošiami slaptažodžiai…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index 7c9179a..754a90b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Slēpta, parole</translation>
 <translation id="2876369937070532032">Nosūta Google serveriem dažu apmeklēto lapu vietrāžus URL, ja jūsu drošība ir apdraudēta</translation>
 <translation id="288655811176831528">Aizvērt cilni</translation>
+<translation id="2893180576842394309">Google var izmantot jūsu vēsturi, lai personalizētu Meklēšanu un citus Google pakalpojumus.</translation>
 <translation id="2898963176829412617">Jauna mape...</translation>
 <translation id="2916171785467530738">Automātiski pabeigt meklēšanas vaicājumus un vietrāžus URL</translation>
 <translation id="291754862089661335">Novietojiet QR kodu vai svītrkodu šajā ietvarā.</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Izrunāt atbildes skaļi</translation>
 <translation id="7207383424303353046">Jaunums: automātiski atveriet vietnes pārlūkā Chrome, iestatot to kā savu noklusējuma pārlūka lietotni. <ph name="BEGIN_LINK" />Atvērt iestatījumus<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Nederīgs kredītkartes apzīmējums</translation>
+<translation id="722454870747268814">Jauna inkognito cilne</translation>
 <translation id="7265758999917665941">Nekad šai vietnei</translation>
 <translation id="7272437679830969316">Nevar apstiprināt jūsu identitāti. Parole nav nokopēta.</translation>
 <translation id="7291368939935408496">Notiek paroļu sagatavošana...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index d5885a8..6959f40 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Скриена лозинка</translation>
 <translation id="2876369937070532032">Испраќа URL-адреси од некои страници што ги посетувате до Google, во случаите кога ви е загрозена безбедноста</translation>
 <translation id="288655811176831528">Затвори ја картичката</translation>
+<translation id="2893180576842394309">Google може да ја користи вашата историја за да го персонализира „Пребарувањето“ и другите услуги на Google</translation>
 <translation id="2898963176829412617">Нова папка…</translation>
 <translation id="2916171785467530738">Автоматски довршувај ги пребарувањата и URL-адресите</translation>
 <translation id="291754862089661335">Поставете го QR/линискиот код во оваа рамка.</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Изговарај ги одговорите</translation>
 <translation id="7207383424303353046">Ново: автоматски отворајте сајтови во Chrome така што ќе го направите ваша стандардна апликација за прелистувач. <ph name="BEGIN_LINK" />Отворете „Поставки“<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Неважечки прекар на картичка</translation>
+<translation id="722454870747268814">Нова инкогнито картичка</translation>
 <translation id="7265758999917665941">Никогаш за овој сајт</translation>
 <translation id="7272437679830969316">Не може да се потврди вашиот идентитет. Лозинката не е копирана.</translation>
 <translation id="7291368939935408496">Се подготвуваат лозинките…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index d426b067..60b868f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">മറച്ചിരിക്കുന്ന പാസ്‌വേഡ്</translation>
 <translation id="2876369937070532032">നിങ്ങളുടെ സുരക്ഷ അപകടത്തിലാകുമ്പോൾ നിങ്ങൾ സന്ദർശിക്കുന്ന ചില പേജുകളുടെ URL-കൾ Google-ലേക്ക് അയയ്ക്കുന്നു</translation>
 <translation id="288655811176831528">ടാബ് അവസാനിപ്പിക്കുക</translation>
+<translation id="2893180576842394309">തിരയലും മറ്റ് Google സേവനങ്ങളും വ്യക്തിപരമാക്കാൻ Google നിങ്ങളുടെ ചരിത്രം ഉപയോഗിച്ചേക്കാം</translation>
 <translation id="2898963176829412617">പുതിയ ഫോൾഡർ…</translation>
 <translation id="2916171785467530738">സ്വമേധയായുള്ള തിരയലുകളും URL-കളും</translation>
 <translation id="291754862089661335">ഈ ഫ്രെയിമിൽ QR കോഡോ ബാർ‌കോഡോ സ്ഥാപിക്കുക</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">പാസ്‌വേഡുകള്‍</translation>
 <translation id="7053983685419859001">തടയുക</translation>
 <translation id="7062545763355031412">അംഗീകരിച്ചശേഷം, അക്കൗണ്ടുകൾ മാറുക</translation>
+<translation id="708844789167408367">സൈൻ ഔട്ട് ചെയ്‌ത് സമന്വയം ഓഫാക്കുക...</translation>
 <translation id="7099761977003084116">സമീപകാല ടാബുകൾ</translation>
 <translation id="7102005569666697658">ഡൗൺലോഡ് ചെയ്യുന്നു… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">മറയ്ക്കുക</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">മറുപടിയായി ഉത്തരങ്ങൾ പറയുക</translation>
 <translation id="7207383424303353046">പുതിയത്: Chrome നിങ്ങളുടെ ഡിഫോൾഡ് ബ്രൗസർ ആപ്പ് ആയി സജ്ജീകരിച്ച് അതിൽ സൈറ്റുകൾ സ്വയമേവ തുറക്കൂ. <ph name="BEGIN_LINK" />ക്രമീകരണം തുറക്കുക<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">കാർഡിന്റെ വിളിപ്പേര് അസാധുവാണ്</translation>
+<translation id="722454870747268814">പുതിയ ആൾമാറാട്ട ടാബ്</translation>
 <translation id="7265758999917665941">ഈ സൈറ്റിൻ്റെ പാസ്‌വേഡ് ഓർക്കേണ്ടതില്ല</translation>
 <translation id="7272437679830969316">നിങ്ങളുടെ ഐഡന്റിറ്റി പരിശോധിച്ചുറപ്പിക്കാനാകില്ല. പാസ്‍വേഡ് പകർത്തിയില്ല.</translation>
 <translation id="7291368939935408496">പാസ്‍വേഡുകൾ തയ്യാറാക്കുന്നു...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index 60a1870..5384a35c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -109,6 +109,7 @@
 <translation id="1974060860693918893">Боловсронгуй</translation>
 <translation id="1989112275319619282">Хөтлөх</translation>
 <translation id="2015722694326466240">Нууц үгийг харахын тулд та эхлээд төхөөрөмждөө нууц код тохируулах шаардлагатай.</translation>
+<translation id="2022352537516230970">Таны iPhone-д зориулан бүтээсэн</translation>
 <translation id="2073572773299281212"><ph name="DAYS" /> өдрийн өмнөөс идэвхтэй</translation>
 <translation id="2074131957428911366">Та синк хийх зүйлээ хүссэн үедээ <ph name="BEGIN_LINK" />тохиргооноос<ph name="END_LINK" /> сонгож болно.</translation>
 <translation id="2079545284768500474">Буцаах</translation>
@@ -188,6 +189,7 @@
 <translation id="2871695793448672541">Нуусан, Нууц үг</translation>
 <translation id="2876369937070532032">Таны аюулгүй байдал эрсдэлд орох үед таны зочилдог зарим хуудсын URL-г Google-д илгээдэг</translation>
 <translation id="288655811176831528">Табыг хаах</translation>
+<translation id="2893180576842394309">Google таны түүхийг Хайлт болон Google-н бусад үйлчилгээг хувийн болгох зорилгоор ашиглаж болзошгүй</translation>
 <translation id="2898963176829412617">Шинэ хавтас...</translation>
 <translation id="2916171785467530738">Хайлт болон URL-г автоматаар гүйцээх</translation>
 <translation id="291754862089661335">Энэ хүрээнд QR код, эсвэл баркод байршуулах</translation>
@@ -313,6 +315,7 @@
 <translation id="4172051516777682613">Байнга харуулж байна уу</translation>
 <translation id="418156467088430727">Офлайн хувилбарыг шинэ табад харах</translation>
 <translation id="4181841719683918333">Хэл</translation>
+<translation id="4184011057600693970">Таны iPad-д зориулан бүтээсэн</translation>
 <translation id="424315890655130736">Нэвтрэх үгийг оруулах</translation>
 <translation id="4263576668337963058">Хуудасны боломжтой үйлдлүүдийг харуулах</translation>
 <translation id="4267380167363222949">Дараагийн таб</translation>
@@ -490,6 +493,7 @@
 <translation id="605721222689873409">YY</translation>
 <translation id="6059830886158432458">Мэдээ, нийтлэл болон үйл ажиллагаагаа энд хянана уу</translation>
 <translation id="6066301408025741299">Устгахаар дарна уу</translation>
+<translation id="60829778314739003">Зөвшөөрөөд, үргэлжлүүлэх</translation>
 <translation id="6108923351542677676">Тохиргоо хийгдэж байна...</translation>
 <translation id="6119050551270742952">Одоогийн веб хуудас нууцлалтай байна</translation>
 <translation id="6122191549521593678">Онлайн</translation>
@@ -585,6 +589,7 @@
 <translation id="6801927553864092214">Нууцлалтайгаар үзэхийн тулд Нууцлалтай табыг нээнэ үү</translation>
 <translation id="6807889908376551050">Бүгдийг үзүүл...</translation>
 <translation id="681368974849482173">Үүссэн зүйл</translation>
+<translation id="6830804042318138535">Цааш унших</translation>
 <translation id="6831043979455480757">Хөрвүүлэх</translation>
 <translation id="6851516051005285358">Дэлгэцийн сайтын хүсэлт тавих</translation>
 <translation id="6858855187367714033">Скан хийсэн</translation>
@@ -627,11 +632,13 @@
 <translation id="7203585745079012652">Хариултыг буцааж хэлэх</translation>
 <translation id="7207383424303353046">Шинэ: Chrome-г өгөгдмөл хөтчийн аппаа болгоод, сайтуудыг үүн дээр автоматаар нээгээрэй. <ph name="BEGIN_LINK" />Тохиргоог нээх<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Картын буруу хоч</translation>
+<translation id="722454870747268814">Нууцлалын шинэ таб</translation>
 <translation id="7265758999917665941">Энэ сайтад хэзээ ч хадгалахгүй</translation>
 <translation id="7272437679830969316">Таныг баталгаажуулж чадсангүй. Нууц үгийг хуулаагүй байна.</translation>
 <translation id="7291368939935408496">Нууц үгийг бэлтгэж байна...</translation>
 <translation id="7293171162284876153">Синк хийж эхлэхийн тулд "Chrome-н өгөгдлөө синк хийх" гэснийг асаана уу.</translation>
 <translation id="7313347584264171202">Та нууцлалтай табуудаа эндээс олох болно</translation>
+<translation id="7319242366286515846">Үргэлжлүүлснээр та <ph name="BEGIN_LINK" />Үйлчилгээний нөхцөлийг<ph name="END_LINK" /> зөвшөөрнө</translation>
 <translation id="7336264872878993241"><ph name="PERCENT" /> хувь татагдсан байна</translation>
 <translation id="7340958967809483333">Discover-н сонголт</translation>
 <translation id="7346909386216857016">OK, ойлголоо</translation>
@@ -778,6 +785,7 @@
 <translation id="8820817407110198400">Хавчуургууд</translation>
 <translation id="8840513115188359703">Таныг Google Бүртгэлээс гаргахгүй.</translation>
 <translation id="8870413625673593573">Саяхан хаагдсан</translation>
+<translation id="8876882697946675716">Төхөөрөмжүүдээ синк хийсэн хэвээр байгаарай</translation>
 <translation id="8881801611828450202">Энэ зургийг <ph name="SEARCH_ENGINE" />-с хайх</translation>
 <translation id="8909135823018751308">Мэдээллийг хуваалцах ...</translation>
 <translation id="8917490105272468696">Тийм, би зөвшөөрч байна</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 0538ce2d..214463e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">लपलेला, पासवर्ड</translation>
 <translation id="2876369937070532032">तुमची सुरक्षा धोक्यात असते तेव्हा, तुम्ही भेट दिलेल्या काही पेजचे URL Google ला पाठवते</translation>
 <translation id="288655811176831528">टॅब बंद करा</translation>
+<translation id="2893180576842394309">शोध आणि इतर Google सेवा पर्सनलाइझ करण्यासाठी Google कदाचित तुमच्या इतिहासाचा वापर करू शकते.</translation>
 <translation id="2898963176829412617">नवीन फोल्डर...</translation>
 <translation id="2916171785467530738">ऑटोकंप्लीट शोध आणि URL</translation>
 <translation id="291754862089661335">QR कोड किंवा बारकोडची या फ्रेममध्‍ये स्थिती निर्धारित करा</translation>
@@ -615,6 +616,7 @@
 <translation id="7029809446516969842">पासवर्ड</translation>
 <translation id="7053983685419859001">अवरोधित करा</translation>
 <translation id="7062545763355031412">स्वीकार करा आणि खाती स्विच करा</translation>
+<translation id="708844789167408367">साइन आउट करा आणि सिंक बंद करा...</translation>
 <translation id="7099761977003084116">अलीकडील टॅब</translation>
 <translation id="7102005569666697658">डाउनलोड होत आहे… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">लपवा</translation>
@@ -629,6 +631,7 @@
 <translation id="7203585745079012652">उत्तरे वाचून सांगा</translation>
 <translation id="7207383424303353046">नवीन: Chrome ला तुमचे डीफॉल्ट ब्राउझर अ‍ॅप सेट करून त्यामध्ये आपोआप साइट उघडा. <ph name="BEGIN_LINK" />सेटिंग्ज उघडा<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">कार्डाचे चुकीचे टोपणनाव</translation>
+<translation id="722454870747268814">नवीन गुप्त टॅब</translation>
 <translation id="7265758999917665941">या साइटसाठी कधीही नाही</translation>
 <translation id="7272437679830969316">तुमच्या ओळखीची पडताळणी करता आली नाही. पासवर्ड कॉपी केला नाही.</translation>
 <translation id="7291368939935408496">पासवर्ड तयार करत आहे…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index 8113967..3291a7e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Disembunyikan, Kata Laluan</translation>
 <translation id="2876369937070532032">Menghantar URL sesetengah halaman yang anda lawati kepada Google, apabila keselamatan anda terancam</translation>
 <translation id="288655811176831528">Tutup Tab</translation>
+<translation id="2893180576842394309">Google boleh menggunakan sejarah anda untuk memperibadikan Carian dan perkhidmatan Google yang lain</translation>
 <translation id="2898963176829412617">Folder Baharu…</translation>
 <translation id="2916171785467530738">Autolengkap Carian dan URL</translation>
 <translation id="291754862089661335">Letakkan kod QR atau kod bar dalam bingkai ini</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Sebut Kembali Jawapan</translation>
 <translation id="7207383424303353046">Baharu: Buka tapak dalam Chrome secara automatik dengan menjadikan Chrome Apl Penyemak Imbas Lalai anda. <ph name="BEGIN_LINK" />Buka Tetapan<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Nama Panggilan Kad Tidak Sah</translation>
+<translation id="722454870747268814">Tab Inkognito Baharu</translation>
 <translation id="7265758999917665941">Jangan Sekali-kali untuk Tapak Ini</translation>
 <translation id="7272437679830969316">Tidak dapat mengesahkan identiti anda. Kata laluan tidak disalin.</translation>
 <translation id="7291368939935408496">Menyediakan Kata Laluan…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index bfa14b9..e50783bd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">ဝှက်ထားသော၊ စကားဝှက်</translation>
 <translation id="2876369937070532032">သင်၏လုံခြုံရေး အန္တရာယ်ရှိသောအခါ သင်ဝင်ကြည့်ထားသည့် စာမျက်နှာအချို့၏ URL ကို Google သို့ပို့သည်။</translation>
 <translation id="288655811176831528">တဘ် ပိတ်ရန်</translation>
+<translation id="2893180576842394309">Search နှင့် အခြား Google ဝန်ဆောင်မှုများအား ပုဂ္ဂိုလ်ရေးသီးသန့်ပြုလုပ်ရန် Google က သင့်မှတ်တမ်းကို သုံးနိုင်သည်</translation>
 <translation id="2898963176829412617">ဖိုင်တွဲ အသစ်...</translation>
 <translation id="2916171785467530738">ရှာဖွေမှုများနှင့် URL များကို အလိုအလျောက်ဖြည့်ခြင်း</translation>
 <translation id="291754862089661335">QR ကုဒ် သိုမဟုတ် ဘားကုဒ်ကို ဤဘောင်အတွင်းဝင်အောင် ထားပါ</translation>
@@ -627,6 +628,7 @@
 <translation id="7203585745079012652">အဖြေများကို ပြန်လည်ပြောကြားမည်</translation>
 <translation id="7207383424303353046">အသစ်- Chrome ကို 'မူရင်း ဘရောင်ဇာအက်ပ်' ပြုလုပ်ခြင်းဖြင့် ဝဘ်ဆိုက်များကို ၎င်းတွင် အလိုအလျောက်ဖွင့်နိုင်သည်။ <ph name="BEGIN_LINK" />ဆက်တင်များ ဖွင့်ရန်<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">မမှန်ကန်သော ကတ်နာမည်ပြောင်</translation>
+<translation id="722454870747268814">ရုပ်ဖျက်တဘ်အသစ်</translation>
 <translation id="7265758999917665941">ဤဝဘ်ဆိုက်အတွက် လုံးဝမလုပ်ရန်</translation>
 <translation id="7272437679830969316">သင်မည်သူမည်ဝါဖြစ်ကြောင်း အတည်ပြု၍ မရနိုင်ပါ။ စကားဝှက်ကို မိတ္ထူကူးမထားပါ။</translation>
 <translation id="7291368939935408496">စကားဝှက်များကို အသင့်ပြင်နေသည်...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index 076c2a9..e954506 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">लुकेको, पासवर्ड</translation>
 <translation id="2876369937070532032">यसले तपाईंको सुरक्षा जोखिममा हुँदा तपाईंले भ्रमण गर्ने केही पृष्ठका URL हरू Google मा पठाउँछ</translation>
 <translation id="288655811176831528">ट्याब बन्द गर्नुहोस्</translation>
+<translation id="2893180576842394309">Google ले खोज र Google का अन्य सेवाहरूलाई वैयक्तीकृत गर्न तपाईंको इतिहाससम्बन्धी जानकारी प्रयोग गर्न सक्छ</translation>
 <translation id="2898963176829412617">नयाँ फोल्डर…</translation>
 <translation id="2916171785467530738">खोज तथा URL हरू स्वतः पूर्ण गर्नुहोस्</translation>
 <translation id="291754862089661335">QR कोड वा बारकोडलाई यस फ्रेमभित्र पार्नुहोस्</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">पासवर्डहरू</translation>
 <translation id="7053983685419859001">रोक्नुहोस्</translation>
 <translation id="7062545763355031412">स्वीकार गरी खाताहरू स्विच गर्नुहोस्</translation>
+<translation id="708844789167408367">साइन आउट गर्नुहोस् र सिंक गर्ने सुविधा अफ गर्नुहोस्...</translation>
 <translation id="7099761977003084116">हालका ट्याबहरू</translation>
 <translation id="7102005569666697658">डाउनलोड गर्दै… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">लुकाउनुहोस्</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">जवाफहरू पुन: भन्नुहोस्</translation>
 <translation id="7207383424303353046">नयाँ: Chrome लाई आफ्नो डिफल्ट ब्राउजर एप बनाएर साइटहरू स्वतः Chrome मा खोल्नुहोस्। <ph name="BEGIN_LINK" />सेटिङ खोल्नुहोस्<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">कार्डको उपनाम अवैध छ</translation>
+<translation id="722454870747268814">नयाँ इन्कोग्निटो ट्याब</translation>
 <translation id="7265758999917665941">यो साइटका हकमा कहिल्यै पनि नसम्झनुहोस्</translation>
 <translation id="7272437679830969316">तपाईंको पहिचान पुष्टि गर्न सकिएन। पासवर्डको प्रतिलिपि गरिएको छैन।</translation>
 <translation id="7291368939935408496">पासवर्डहरू निर्यात गर्ने तयारी गरिँदै…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index ad59965..37b0911 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Verborgen, wachtwoord</translation>
 <translation id="2876369937070532032">Verzendt URL's van bepaalde pagina's die je bezoekt naar Google wanneer je beveiliging risico loopt</translation>
 <translation id="288655811176831528">Tabblad sluiten</translation>
+<translation id="2893180576842394309">Google kan je geschiedenis gebruiken om Google Zoeken en andere Google-services te personaliseren</translation>
 <translation id="2898963176829412617">Nieuwe map…</translation>
 <translation id="2916171785467530738">Zoekopdrachten en URL's automatisch aanvullen</translation>
 <translation id="291754862089661335">Positioneer de QR-/streepjescode binnen dit kader</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Antwoorden uitspreken</translation>
 <translation id="7207383424303353046">Nieuw: Open sites automatisch in Chrome door het als je standaard browser-app in te stellen. <ph name="BEGIN_LINK" />Instellingen openen<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Ongeldige bijnaam kaart</translation>
+<translation id="722454870747268814">Nieuw incognitotabblad</translation>
 <translation id="7265758999917665941">Nooit voor deze site</translation>
 <translation id="7272437679830969316">Kan je identiteit niet verifiëren. Wachtwoord niet gekopieerd.</translation>
 <translation id="7291368939935408496">Wachtwoorden voorbereiden...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index 94b1028..6aa6f07d9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Skjult passord</translation>
 <translation id="2876369937070532032">Sender Google nettadressene til noen av sidene du besøker, når sikkerheten din står i fare</translation>
 <translation id="288655811176831528">Lukk fane</translation>
+<translation id="2893180576842394309">Google kan bruke loggen din for å gi Søk og andre Google-tjenester et personlig preg</translation>
 <translation id="2898963176829412617">Ny mappe</translation>
 <translation id="2916171785467530738">Autofullfør søk og nettadresser</translation>
 <translation id="291754862089661335">Plassér QR-/strekkoden i denne rammen.</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Svar med tale</translation>
 <translation id="7207383424303353046">Nyhet: Åpne nettsteder i Chrome automatisk ved å angi den som standard nettleserapp. <ph name="BEGIN_LINK" />Åpne Innstillinger<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Ugyldig kallenavn på kortet</translation>
+<translation id="722454870747268814">Ny inkognitofane</translation>
 <translation id="7265758999917665941">Aldri for dette nettstedet</translation>
 <translation id="7272437679830969316">Kan ikke bekrefte identiteten din. Passordet er ikke kopiert.</translation>
 <translation id="7291368939935408496">Klargjør passordene …</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb
index b11f456..0d12b22 100644
--- a/ios/chrome/app/strings/resources/ios_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -33,6 +33,7 @@
 <translation id="122699739164161391">ସମସ୍ତ ଟାବ୍ ବନ୍ଦ କରନ୍ତୁ</translation>
 <translation id="1229222343402087523">Chromeରେ ${searchPhrase} ସନ୍ଧାନ କରନ୍ତୁ</translation>
 <translation id="1231733316453485619">ସିଙ୍କ୍ ଚାଲୁ କରିବେ?</translation>
+<translation id="1242044645101871359">ପୁଣି ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation>
 <translation id="1254117744268754948">ଫୋଲ୍ଡର୍‌ ବାଛନ୍ତୁ</translation>
 <translation id="1265739287306757398">କିପରି ହେବ ତାହା ଜାଣନ୍ତୁ</translation>
 <translation id="1272079795634619415">ବନ୍ଦ କରନ୍ତୁ</translation>
@@ -97,6 +98,7 @@
 <translation id="1820259098641718022">ଏହାକୁ ପଠିତ ତାଲିକାରେ ଯୋଗ କରାଯାଇଛି</translation>
 <translation id="1870148520156231997">ପାସ୍‌ୱାର୍ଡ ପ୍ରକାଶ କରନ୍ତୁ</translation>
 <translation id="1872096359983322073">ଟର୍ଚ୍ଚ</translation>
+<translation id="1894205589103145703">ସାଇନ୍-ଇନ୍ କରିବା ସମୟରେ କିଛି ତ୍ରୁଟି ହୋଇଛି।</translation>
 <translation id="1911619930368729126">Google ଡ୍ରାଇଭ୍‌ରେ ଅପ୍‌ଲୋଡ୍ କରନ୍ତୁ</translation>
 <translation id="1923342640370224680">ଶେଷ ଘଣ୍ଟାକର</translation>
 <translation id="1941314575388338491">କପି କରିବାକୁ ଦୁଇଥର ଟାପ୍‌ କରନ୍ତୁ।</translation>
@@ -110,6 +112,7 @@
 <translation id="2073572773299281212"><ph name="DAYS" /> ଦିନ ପୂର୍ବେ ସକ୍ରିୟ ଥିଲା</translation>
 <translation id="2074131957428911366"><ph name="BEGIN_LINK" />ସେଟିଂସ୍<ph name="END_LINK" />ରେ କ’ଣ ସିଙ୍କ୍ କରିବାକୁ ହେବ ତାହା ଆପଣ ସର୍ବଦା ବାଛି ପାରିବେ।</translation>
 <translation id="2079545284768500474">ପୂର୍ବବତ୍</translation>
+<translation id="2086623437239112659">ଆପଣ ଷ୍ଟୋର୍ କରିଥିବା ସାଇନ୍-ଇନ୍ ସୂଚନା ପୁରୁଣା ହୋଇଥାଇପାରେ।</translation>
 <translation id="209018056901015185">ଡେସ୍କଟପ୍ ସାଇଟ୍ ପାଇଁ ଅନୁରୋଧ କରନ୍ତୁ</translation>
 <translation id="2103075008456228677">history.google.com ଖୋଲନ୍ତୁ</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" />ଟିି ଆଇଟମ୍ ସ୍ଥାନାନ୍ତରିତ ହୋଇଗଲା</translation>
@@ -185,6 +188,7 @@
 <translation id="2871695793448672541">ଲୁକ୍କାୟିତ, ପାସ୍‍ୱର୍ଡ</translation>
 <translation id="2876369937070532032">ଆପଣଙ୍କର ସୁରକ୍ଷା ବିପଦରେ ଥିବା ବେଳେ, Googleକୁ ଆପଣ ଯାଇଥିବା କିଛି ପୃଷ୍ଠାର URL ପଠାଏ</translation>
 <translation id="288655811176831528">ଟାବ୍‌ ବନ୍ଦ କରନ୍ତୁ</translation>
+<translation id="2893180576842394309">Google ହୁଏତ ଆପଣ କରୁଥିବା ସନ୍ଧାନ ଏବଂ ଅନ୍ୟାନ୍ୟ Google ସେବାକୁ ବ୍ୟକ୍ତିଗତକରଣ କରିବା ପାଇଁ ଆପଣଙ୍କର ଇତିବୃତ୍ତିକୁ ବ୍ୟବହାର କରିପାରେ</translation>
 <translation id="2898963176829412617">ନୂତନ ଫୋଲ୍ଡର…</translation>
 <translation id="2916171785467530738">ସର୍ଚ୍ଚ ଓ URLଗୁଡ଼ିକୁ ସ୍ୱଚାଳିତ ଭାବେ ସମ୍ପୂର୍ଣ୍ଣ ହେବାକୁ ଦିଅନ୍ତୁ</translation>
 <translation id="291754862089661335">QR କୋଡ୍‌ କିମ୍ବା ବାର୍‌କୋଡ୍‌କୁ ଏହି ଫ୍ରେମ୍‌ରେ ଆଣନ୍ତୁ</translation>
@@ -397,6 +401,7 @@
 <translation id="5132942445612118989">ସମସ୍ତ ଡିଭାଇସ୍‌ଗୁଡ଼ିକରେ ଆପଣଙ୍କର ପାସ୍‌ୱାର୍ଡ, ଇତିବୃତ୍ତି ଏବଂ ଆହୁରି ଅନେକ କିଛି ସିଙ୍କ୍‌ କରନ୍ତୁ</translation>
 <translation id="5140288047769711648">ଆପଣଙ୍କ ପାଇଁ ଏହି ପାସ୍‌ୱାର୍ଡକୁ Chrome ମନେରଖିବ। ଆପଣଙ୍କୁ ଏହା ମନେରଖିବା ପାଇଁ ଆବଶ୍ୟକ ପଡ଼ିବ ନାହିଁ।</translation>
 <translation id="5150492518600715772">ଆପଣଙ୍କର ଡିଭାଇସ୍‍କୁ ପଠାନ୍ତୁ</translation>
+<translation id="5168414296986405587">iPadOS ପାଇଁ ତିଆରି କରାଯାଇଛି</translation>
 <translation id="5181140330217080051">ଡାଉନ୍‍‍ଲୋଡ୍ ହେଉଛି</translation>
 <translation id="5186185447130319458">ଗୋପନୀୟ</translation>
 <translation id="5188482106078495165">ଆପଣଙ୍କ କୁକୀ ସେଟିଂ ସମସ୍ତ ଟାବରେ ଲାଗୁ ହୋଇଥାଏ। ଏକ ଖୋଲା ଟାବରେ ଏକ ନୂଆ ସେଟିଂ ଲାଗୁ କରିବାକୁ, ଟାବକୁ ପୁଣି ଲୋଡ୍ କରନ୍ତୁ।</translation>
@@ -426,6 +431,7 @@
 <translation id="5508435575041083207">ଏହି ଡିଭାଇସରୁ ସାଇନ୍ ଆଉଟ୍ କରି ଡାଟା ଖାଲି କରନ୍ତୁ</translation>
 <translation id="5513681519188741830"><ph name="TIME" /> ଘଣ୍ଟା ପୂର୍ବେ</translation>
 <translation id="5525269841082836315">ପାସ୍‍‍ଫ୍ରେଜ୍ ତିଆରି କରନ୍ତୁ</translation>
+<translation id="5532698011560297095">ସାଇନ୍ ଇନ୍ କରାଯାଇପାରିବ ନାହିଁ</translation>
 <translation id="5548760955356983418">Handoff, ଆପଣଙ୍କୁ ଏହି ଡିଭାଇସ୍‍‍ରେ ଗୋଟିଏ ୱେବ୍‍ସାଇଟ୍‍ ବ୍ରାଉଜ୍ କରିବା ଆରମ୍ଭ କରିବାକୁ ଦେଇଥାଏ ଏବଂ ତା’ପରେ ଏହାକୁ ଆପଣ ସହଜରେ ଆପଣଙ୍କର Macରେ ଜାରି ରଖିପାରିବେ। ବର୍ତ୍ତମାନ ଖୋଲାଯାଇଥିବା ୱେବ୍‍ସାଇଟ୍, ଆପଣଙ୍କ Macର Dockରେ ଦୃଶ୍ୟମାନ ହେବ।
 
 Handoff, ନିଶ୍ଚିତ ରୂପେ ସେଟିଂସ୍‍ର ସାଧାରଣ ବିଭାଗରେ ମଧ୍ୟ ସକ୍ଷମ ହୋଇଥିବା ଆବଶ୍ୟକ ଏବଂ ଆପଣଙ୍କ ଡିଭାଇସ୍‍ଗୁଡ଼ିକ ନିଶ୍ଚିତ ରୂପେ ସମାନ iCloud ଆକାଉଣ୍ଟକୁ ବ୍ୟବହାର କରିବା ଉଚିତ।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index 10fe91a..4b886c1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">ਗੁਪਤ, ਪਾਸਵਰਡ</translation>
 <translation id="2876369937070532032">ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਜੋਖਮ ਵਿੱਚ ਹੋਣ 'ਤੇ, ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੇ ਕੁਝ ਪੰਨਿਆਂ ਦੇ URL Google ਨੂੰ ਭੇਜੇ ਜਾਂਦੇ ਹਨ</translation>
 <translation id="288655811176831528">ਟੈਬ ਬੰਦ ਕਰੋ</translation>
+<translation id="2893180576842394309">Google ਖੋਜ ਅਤੇ ਹੋਰਾਂ Google ਸੇਵਾਵਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ ਤੁਹਾਡੇ ਇਤਿਹਾਸ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ</translation>
 <translation id="2898963176829412617">ਨਵਾਂ ਫੋਲਡਰ...</translation>
 <translation id="2916171785467530738">ਸਵੈ-ਮੁਕੰਮਲ ਖੋਜਾਂ ਅਤੇ URLs</translation>
 <translation id="291754862089661335">QR ਕੋਡ ਜਾਂ ਬਾਰ ਕੋਡ ਨੂੰ ਇਸ ਫ੍ਰੇਮ ਵਿੱਚ ਰੱਖੋ</translation>
@@ -625,6 +626,7 @@
 <translation id="7203585745079012652">ਜਵਾਬ ਦੁਬਾਰਾ ਬੋਲੋ</translation>
 <translation id="7207383424303353046">ਨਵਾਂ: Chrome ਨੂੰ ਆਪਣੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਬ੍ਰਾਊਜ਼ਰ ਐਪ ਬਣਾ ਕੇ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਇਸ ਵਿੱਚ ਸਾਈਟਾਂ ਖੋਲ੍ਹੋ। <ph name="BEGIN_LINK" />ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">ਕਾਰਡ ਦਾ ਉਪਨਾਮ ਅਵੈਧ ਹੈ</translation>
+<translation id="722454870747268814">ਨਵੀਂ ਇਨਕੋਗਨਿਟੋ ਟੈਬ</translation>
 <translation id="7265758999917665941">ਇਸ ਸਾਈਟ ਲਈ ਕਦੇ ਵੀ ਨਹੀਂ</translation>
 <translation id="7272437679830969316">ਤੁਹਾਡੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਪਾਸਵਰਡ ਕਾਪੀ ਨਹੀਂ ਕੀਤਾ ਗਿਆ।</translation>
 <translation id="7291368939935408496">ਪਾਸਵਰਡ ਤਿਆਰ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index 067d3d8e..35963e7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Ukryte, hasło</translation>
 <translation id="2876369937070532032">Gdy Twoje bezpieczeństwo jest zagrożone, wysyła do Google adresy URL odwiedzanych stron</translation>
 <translation id="288655811176831528">Zamknij kartę</translation>
+<translation id="2893180576842394309">Google może korzystać z Twojej historii, by personalizować wyniki wyszukiwania i działanie innych usług.</translation>
 <translation id="2898963176829412617">Nowy folder…</translation>
 <translation id="2916171785467530738">Autouzupełniaj wyszukiwania i adresy URL</translation>
 <translation id="291754862089661335">Umieść kod QR lub kod kreskowy w tej ramce</translation>
@@ -626,6 +627,7 @@
 <translation id="7203585745079012652">Odczytuj odpowiedzi</translation>
 <translation id="7207383424303353046">Nowość: ustaw Chrome jako przeglądarkę domyślną, by strony otwierały się w niej automatycznie. <ph name="BEGIN_LINK" />Otwórz ustawienia<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Nieprawidłowa nazwa karty</translation>
+<translation id="722454870747268814">Nowa karta incognito</translation>
 <translation id="7265758999917665941">Nigdy dla tej witryny</translation>
 <translation id="7272437679830969316">Nie można zweryfikować Twojej tożsamości. Hasło nie zostało skopiowane.</translation>
 <translation id="7291368939935408496">Przygotowuję hasła…</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 10ca9ba..93e2a36 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Senha oculta</translation>
 <translation id="2876369937070532032">Quando há risco de segurança, envia para o Google os URLs de algumas páginas que você visita</translation>
 <translation id="288655811176831528">Fechar guia</translation>
+<translation id="2893180576842394309">O histórico será usado para personalizar a Pesquisa, anúncios e outros serviços Google.</translation>
 <translation id="2898963176829412617">Nova pasta...</translation>
 <translation id="2916171785467530738">Preencher automaticamente pesquisas e URLs</translation>
 <translation id="291754862089661335">Posicione o código QR ou o código de barras neste quadro</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Falar as respostas</translation>
 <translation id="7207383424303353046">Novidade: defina o Chrome como seu navegador padrão para abrir sites automaticamente nele. <ph name="BEGIN_LINK" />Abrir Configurações<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Apelido do cartão inválido</translation>
+<translation id="722454870747268814">Nova guia anônima</translation>
 <translation id="7265758999917665941">Nunca para este site</translation>
 <translation id="7272437679830969316">Não é possível verificar sua identidade. Senha não copiada.</translation>
 <translation id="7291368939935408496">Preparando senhas…</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 f0acd4a..ddf1c55 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Palavra-passe oculta</translation>
 <translation id="2876369937070532032">Quando a sua segurança está em risco, envia para a Google URLs de algumas páginas que visita.</translation>
 <translation id="288655811176831528">Fechar separador</translation>
+<translation id="2893180576842394309">A Google pode utilizar o seu histórico para personalizar a Pesquisa e outros serviços Google.</translation>
 <translation id="2898963176829412617">Nova pasta…</translation>
 <translation id="2916171785467530738">Pesquisas de preenchimento automático e URLs</translation>
 <translation id="291754862089661335">Posicione o código QR ou o código de barras nesta moldura</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Ouvir Respostas</translation>
 <translation id="7207383424303353046">Novidade: abra automaticamente os sites no Chrome ao torná-lo a sua app de navegador predefinida. <ph name="BEGIN_LINK" />Abra as Definições<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Alcunha do cartão inválido</translation>
+<translation id="722454870747268814">Novo separador de navegação anónima</translation>
 <translation id="7265758999917665941">Nunca para este site</translation>
 <translation id="7272437679830969316">Não é possível validar a sua identidade. Palavra-passe não copiada.</translation>
 <translation id="7291368939935408496">A preparar palavras-passe…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index 88cf62e3..a943d85 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Parolă ascunsă</translation>
 <translation id="2876369937070532032">Trimite la Google adrese URL ale unor pagini pe care le accesezi, când securitatea este în pericol</translation>
 <translation id="288655811176831528">Închide fila</translation>
+<translation id="2893180576842394309">Google poate folosi istoricul pentru a personaliza Căutarea și alte servicii Google</translation>
 <translation id="2898963176829412617">Dosar nou…</translation>
 <translation id="2916171785467530738">Completează automat căutările și adresele URL</translation>
 <translation id="291754862089661335">Poziționează codul QR sau codul de bare în acest cadru</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Primești răspunsuri vocale</translation>
 <translation id="7207383424303353046">Nou: deschide automat site-uri în Chrome setând-o ca aplicație browser prestabilită. <ph name="BEGIN_LINK" />Deschide Setările<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Pseudonimul cardului nu este valid</translation>
+<translation id="722454870747268814">Filă incognito nouă</translation>
 <translation id="7265758999917665941">Niciodată pentru acest site</translation>
 <translation id="7272437679830969316">Nu ți se poate confirma identitatea. Parola nu a fost copiată.</translation>
 <translation id="7291368939935408496">Se pregătesc 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 db3f112..c295f12 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Скрытый пароль</translation>
 <translation id="2876369937070532032">При угрозе безопасности отправлять в Google URL некоторых страниц, которые вы открываете</translation>
 <translation id="288655811176831528">Закрыть вкладку</translation>
+<translation id="2893180576842394309">Google может использовать вашу историю, чтобы персонализировать Поиск и другие сервисы.</translation>
 <translation id="2898963176829412617">Новая папка</translation>
 <translation id="2916171785467530738">Включить автозаполнение для поисковых запросов и URL</translation>
 <translation id="291754862089661335">Поместите QR-код или штрихкод в эту рамку</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Озвучивать результаты поиска</translation>
 <translation id="7207383424303353046">Новинка! Чтобы автоматически открывать сайты в Chrome, сделайте его браузером по умолчанию. <ph name="BEGIN_LINK" />Перейти в настройки<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Недопустимое название карты</translation>
+<translation id="722454870747268814">Новая вкладка инкогнито</translation>
 <translation id="7265758999917665941">Никогда для этого сайта</translation>
 <translation id="7272437679830969316">Не удалось пройти проверку. Пароль не скопирован.</translation>
 <translation id="7291368939935408496">Подготовка паролей…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb
index 6a08c8d..5bc974d7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">සැඟවුණු, මුරපදය</translation>
 <translation id="2876369937070532032">ඔබේ ආරක්‍ෂාව අවදානමේ තිබෙන විට, Google වෙත ඔබ පැමිණෙන සමහර පිටුවල URL යවන්න</translation>
 <translation id="288655811176831528">පටිත්ත වසන්න</translation>
+<translation id="2893180576842394309">සෙවීම සහ අනෙකුත් Google සේවා පුද්ගලායන කිරීමට Google ඔබේ ඉතිහාසය භාවිත කළ හැක</translation>
 <translation id="2898963176829412617">නව ෆෝල්ඩරය...</translation>
 <translation id="2916171785467530738">සෙවීම් සහ URL ලිපින ස්වයංව සම්පූර්ණ කරන්න</translation>
 <translation id="291754862089661335">මෙම රාමුව තුළ QR කේතය හෝ තීරු කේතය ස්ථානගත කරන්න</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">පිළිතුරු ආපසු දෙන්න</translation>
 <translation id="7207383424303353046">නව: ඔබගේ පෙරනිමි බ්‍රව්සර යෙදුම බවට Chrome පත් කිරීමෙන් එහි අඩවි ස්වයංක්‍රියව විවෘත කරන්න. <ph name="BEGIN_LINK" />සැකසීම් විවෘත කරන්න<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">වලංගු නොවන කාඩ්පත් අපනාමය</translation>
+<translation id="722454870747268814">නව අප්‍රසිද්ධ පටිත්ත</translation>
 <translation id="7265758999917665941">කිසි විටෙක මෙම වෙබ් අඩවිය සඳහා නැත</translation>
 <translation id="7272437679830969316">ඔබගේ අනන්‍යතාව තහවුරු කළ නොහැකිය. මුරපදය පිටපත් නොකරන ලදී.</translation>
 <translation id="7291368939935408496">මුරපද සූදානම් කරමින්...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index 2c3aae86..c1268c2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Skryté, heslo</translation>
 <translation id="2876369937070532032">Pri ohrození zabezpečenia odosiela Googlu webové adresy niektorých navštívených stránok</translation>
 <translation id="288655811176831528">Zavrieť kartu</translation>
+<translation id="2893180576842394309">Google môže pomocou vašej histórie prispôsobiť Vyhľadávanie a ďalšie služby Googlu</translation>
 <translation id="2898963176829412617">Nový priečinok…</translation>
 <translation id="2916171785467530738">Automatické dopĺňanie vyhľadávaní a webových adries</translation>
 <translation id="291754862089661335">Umiestnite QR kód alebo čiarový kód do tohto rámčeka</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Vysloviť odpovede</translation>
 <translation id="7207383424303353046">Novinka: Nastavte si Chrome ako predvolenú aplikáciu prehliadača a otvárajte v ňom weby automaticky. <ph name="BEGIN_LINK" />Otvoriť nastavenia<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Neplatná prezývka karty</translation>
+<translation id="722454870747268814">Nová karta inkognito</translation>
 <translation id="7265758999917665941">Nikdy pre tento web</translation>
 <translation id="7272437679830969316">Vašu totožnosť nie je možné overiť. Heslo sa neskopírovalo.</translation>
 <translation id="7291368939935408496">Pripravujú sa 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 e1fde0b..4c651c1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Skrito, geslo</translation>
 <translation id="2876369937070532032">Googlu pošlje URL-je nekaterih strani, ki jih obiščete, kadar je ogrožena vaša varnost</translation>
 <translation id="288655811176831528">Zapri zavihek</translation>
+<translation id="2893180576842394309">Google lahko vašo zgodovino uporabi za prilagajanje Iskanja Google in drugih Googlovih storitev</translation>
 <translation id="2898963176829412617">Nova mapa …</translation>
 <translation id="2916171785467530738">Samodejno dokončanje iskanj in URL-jev</translation>
 <translation id="291754862089661335">Kodo QR ali črtno kodo postavite v ta okvir</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Izgovorjava odgovorov</translation>
 <translation id="7207383424303353046">Novo: Samodejno odpiranje spletnih mest v Chromu tako, da ga nastavite kot privzeti brskalnik. <ph name="BEGIN_LINK" />Odpiranje nastavitev<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Neveljaven vzdevek za kartico</translation>
+<translation id="722454870747268814">New Incognito Tab</translation>
 <translation id="7265758999917665941">Nikoli za to spletno mesto</translation>
 <translation id="7272437679830969316">Identitete ni mogoče preveriti. Geslo ni kopirano.</translation>
 <translation id="7291368939935408496">Pripravljanje gesel ...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
index e5d3abb..47a2880 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Fjalëkalimi i fshehur</translation>
 <translation id="2876369937070532032">Dërgon URL-të e disa faqeve që viziton te Google, kur siguria jote është në rrezik</translation>
 <translation id="288655811176831528">Mbylle skedën</translation>
+<translation id="2893180576842394309">Google mund ta përdorë historikun tënd për të personalizuar "Kërko me Google" dhe shërbime të tjera të Google</translation>
 <translation id="2898963176829412617">Dosje e re...</translation>
 <translation id="2916171785467530738">Plotësimi automatik i kërkimeve dhe i URL-ve</translation>
 <translation id="291754862089661335">Pozicionoje kodin QR ose barkodin në këtë kornizë</translation>
@@ -627,6 +628,7 @@
 <translation id="7203585745079012652">Thuaji përgjigjet mbrapsht</translation>
 <translation id="7207383424303353046">E re: Hap automatikisht sajtet në Chrome duke e bërë atë aplikacionin e parazgjedhur të shfletuesit. <ph name="BEGIN_LINK" />Hap "Cilësimet"<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Pseudonim i pavlefshëm karte</translation>
+<translation id="722454870747268814">Skedë e re "e fshehtë"</translation>
 <translation id="7265758999917665941">Asnjëherë për këtë faqe</translation>
 <translation id="7272437679830969316">Nuk mund të verifikohet identiteti yt. Fjalëkalimi nuk u kopjua.</translation>
 <translation id="7291368939935408496">Po përgatit fjalëkalimet...</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 3a15901..cf4583db 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Sakrivena lozinka</translation>
 <translation id="2876369937070532032">Šalje URL-ove nekih stranica koje posećujete Google-u kada je bezbednost ugrožena</translation>
 <translation id="288655811176831528">Zatvori karticu</translation>
+<translation id="2893180576842394309">Google može da koristi istoriju za personalizaciju Pretrage i drugih Google usluga</translation>
 <translation id="2898963176829412617">Novi direktorijum...</translation>
 <translation id="2916171785467530738">Automatski dovršavaj pretrage i URL-ove</translation>
 <translation id="291754862089661335">Postavite QR ili bar-kod u ovaj okvir</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Izgovaraj odgovore</translation>
 <translation id="7207383424303353046">Novo: Otvarajte sajtove u Chrome-u automatski tako što ćete ga podesiti kao podrazumevanu aplikaciju za pregledač. <ph name="BEGIN_LINK" />Otvorite Podešavanja<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Nevažeći nadimak kartice</translation>
+<translation id="722454870747268814">Nova kartica bez arhiviranja</translation>
 <translation id="7265758999917665941">Nikada za ovaj sajt</translation>
 <translation id="7272437679830969316">Verifikacija identiteta nije uspela. Lozinka nije kopirana.</translation>
 <translation id="7291368939935408496">Pripremaju se 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 296f804..15249c8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Сакривена лозинка</translation>
 <translation id="2876369937070532032">Шаље URL-ове неких страница које посећујете Google-у када је безбедност угрожена</translation>
 <translation id="288655811176831528">Затвори картицу</translation>
+<translation id="2893180576842394309">Google може да користи историју за персонализацију Претраге и других Google услуга</translation>
 <translation id="2898963176829412617">Нови директоријум...</translation>
 <translation id="2916171785467530738">Аутоматски довршавај претраге и URL-ове</translation>
 <translation id="291754862089661335">Поставите QR или бар-код у овај оквир</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Изговарај одговоре</translation>
 <translation id="7207383424303353046">Ново: Отварајте сајтове у Chrome-у аутоматски тако што ћете га подесити као подразумевану апликацију за прегледач. <ph name="BEGIN_LINK" />Отворите Подешавања<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Неважећи надимак картице</translation>
+<translation id="722454870747268814">Нова картица без архивирањa</translation>
 <translation id="7265758999917665941">Никада за овај сајт</translation>
 <translation id="7272437679830969316">Верификација идентитета није успела. Лозинка није копирана.</translation>
 <translation id="7291368939935408496">Припремају се лозинке...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 602cf7f..f24c087 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Dolt, lösenord</translation>
 <translation id="2876369937070532032">Webbadresser till vissa sidor som du besöker skickas till Google när din säkerhet är utsatt för risk.</translation>
 <translation id="288655811176831528">Stäng fliken</translation>
+<translation id="2893180576842394309">Google kan anpassa Sök och andra Google-tjänster utifrån historiken</translation>
 <translation id="2898963176829412617">Ny mapp ...</translation>
 <translation id="2916171785467530738">Autoslutför sökningar och webbadresser</translation>
 <translation id="291754862089661335">Passa in QR-koden eller streckkoden i den här rutan</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Läs upp svaren</translation>
 <translation id="7207383424303353046">Nyhet! Öppna automatiskt webbplatser i Chrome genom att ställa in Chrome som standardwebbläsarapp. <ph name="BEGIN_LINK" />Öppna inställningarna<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Ogiltigt kortnamn</translation>
+<translation id="722454870747268814">Ny inkognitoflik</translation>
 <translation id="7265758999917665941">Aldrig på den här webbplatsen</translation>
 <translation id="7272437679830969316">Det gick inte att verifiera din identitet. Lösenordet har inte kopierats.</translation>
 <translation id="7291368939935408496">Lösenorden förbereds …</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 4d7c7f5..8f6629b8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Nenosiri Lililofichika</translation>
 <translation id="2876369937070532032">Hutuma kwa Google URL za baadhi ya kurasa ambazo umetembelea wakati usalama wako uko hatarini</translation>
 <translation id="288655811176831528">Funga Kichupo</translation>
+<translation id="2893180576842394309">Google inaweza kutumia historia yako ili kuweka mapendeleo kwenye huduma ya Tafuta na Google na huduma nyingine za Google.</translation>
 <translation id="2898963176829412617">Folda Mpya…</translation>
 <translation id="2916171785467530738">Jaza kiotomatiki URL na hoja za Utafutaji</translation>
 <translation id="291754862089661335">Weka msimbo wa QR au msimbo upau katika fremu hii</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Tamka Majibu</translation>
 <translation id="7207383424303353046">Mpya: Fungua tovuti kiotomatiki katika Chrome kwa kuiweka iwe Programu Chaguomsingi ya Kuvinjari. <ph name="BEGIN_LINK" />Fungua Mipangilio<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Jina la Kuwakilisha Kadi si Sahihi</translation>
+<translation id="722454870747268814">Kichupo Fiche Kipya</translation>
 <translation id="7265758999917665941">Isikumbuke Kamwe Katika Tovuti Hii</translation>
 <translation id="7272437679830969316">Utambulisho wako haujathibitishwa. Nenosiri halijanakiliwa.</translation>
 <translation id="7291368939935408496">Inatayarisha Manenosiri...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 46e0888f..fe2c983 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -33,6 +33,7 @@
 <translation id="122699739164161391">எல்லாத் தாவல்களையும் மூடு</translation>
 <translation id="1229222343402087523">Chromeமில் ${searchPhrase} ஐத் தேடு</translation>
 <translation id="1231733316453485619">ஒத்திசைவை இயக்கவா?</translation>
+<translation id="1242044645101871359">மீண்டும் உள்நுழைக</translation>
 <translation id="1254117744268754948">கோப்புறையைத் தேர்வுசெய்யவும்</translation>
 <translation id="1265739287306757398">எப்படி என அறிக</translation>
 <translation id="1272079795634619415">நிறுத்து</translation>
@@ -97,6 +98,7 @@
 <translation id="1820259098641718022">வாசிப்புப் பட்டியலில் சேர்க்கப்பட்டது</translation>
 <translation id="1870148520156231997">கடவுச்சொல்லைக் காட்டும்</translation>
 <translation id="1872096359983322073">டார்ச்</translation>
+<translation id="1894205589103145703">உள்நுழையும்போது ஏதோ தவறாகிவிட்டது.</translation>
 <translation id="1911619930368729126">Google இயக்ககத்தில் பதிவேற்றுக</translation>
 <translation id="1923342640370224680">கடந்த மணிநேரம்</translation>
 <translation id="1941314575388338491">நகலெடுக்க, இருமுறை தட்டவும்.</translation>
@@ -110,6 +112,7 @@
 <translation id="2073572773299281212"><ph name="DAYS" /> நாட்களுக்கு முன் பயன்படுத்தியுள்ளார்</translation>
 <translation id="2074131957428911366">எவற்றை ஒத்திசைக்க வேண்டும் என்பதை <ph name="BEGIN_LINK" />அமைப்புகளில்<ph name="END_LINK" /> எப்போது வேண்டுமானாலும் தேர்வுசெய்யலாம்.</translation>
 <translation id="2079545284768500474">செயல்தவிர்</translation>
+<translation id="2086623437239112659">சேமிக்கப்பட்ட உங்களின் உள்நுழைவுத் தகவல் காலாவதி ஆகியிருக்கக்கூடும்.</translation>
 <translation id="209018056901015185">டெஸ்க்டாப் தளத்தைக் கோரு</translation>
 <translation id="2103075008456228677">history.google.comஐத் திற</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> உருப்படிகள் நகர்த்தப்பட்டன</translation>
@@ -185,6 +188,7 @@
 <translation id="2871695793448672541">மறைக்கப்பட்டுள்ளது, கடவுச்சொல்</translation>
 <translation id="2876369937070532032">ஆபத்தான தளங்களைப் பார்ப்பதால் உங்கள் பாதுகாப்பிற்கு ஆபத்து ஏற்படும்போது நீங்கள் பார்வையிடும் சில பக்கங்களின் URLகளை Googleளுக்கு அனுப்பும்</translation>
 <translation id="288655811176831528">தாவலை மூடு</translation>
+<translation id="2893180576842394309">‘தேடல்’ மற்றும் பிற Google சேவைகளைத் தனிப்பயனாக்க, உங்கள் வரலாற்றை Google பயன்படுத்தக்கூடும்</translation>
 <translation id="2898963176829412617">புதிய கோப்புறை…</translation>
 <translation id="2916171785467530738">தேடல்கள் மற்றும் URLகளைத் தன்னிரப்புதல்</translation>
 <translation id="291754862089661335">இந்த ஃபிரேமில் QR அல்லது பார் குறியீடு தெரியும்படி வைக்கவும்</translation>
@@ -399,6 +403,7 @@
 <translation id="5132942445612118989">எல்லாச் சாதனங்களிலும் உங்கள் கடவுச்சொற்கள், வரலாறு மற்றும் பலவற்றை ஒத்திசைக்கலாம்</translation>
 <translation id="5140288047769711648">உங்களுக்காக Chrome இந்தக் கடவுச்சொல்லை நினைவில் வைத்திருக்கும். நீங்கள் நினைவில் வைக்கவேண்டிய அவசியமில்லை.</translation>
 <translation id="5150492518600715772">வேறு சாதனத்திற்கு அனுப்பு</translation>
+<translation id="5168414296986405587">iPadOSஸுக்காக உருவாக்கப்பட்டது</translation>
 <translation id="5181140330217080051">பதிவிறக்குகிறது</translation>
 <translation id="5186185447130319458">தனிப்பட்டது</translation>
 <translation id="5188482106078495165">குக்கீகளுக்கான உங்கள் அமைப்பு அனைத்துத் தாவல்களுக்கும் பொருந்தும். திறந்திருக்கும் தாவலை புதிய அமைப்புக்கு உட்படுத்த, அதை ரெஃப்ரெஷ் செய்யவும்.</translation>
@@ -623,6 +628,7 @@
 <translation id="7203585745079012652">பதில்களை மீண்டும் படி</translation>
 <translation id="7207383424303353046">புதிது: Chromeமை உங்கள் இயல்பு உலாவி ஆப்ஸாக அமைப்பதன் மூலம் தளங்கள் தானாகவே அதில் திறக்கப்படும். <ph name="BEGIN_LINK" />அமைப்புகளைத் திற<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">கார்டின் புனைப்பெயர் தவறானது</translation>
+<translation id="722454870747268814">புதிய மறைநிலைத் தாவல்</translation>
 <translation id="7265758999917665941">இந்தத் தளத்திற்கு எப்போதும் வேண்டாம்</translation>
 <translation id="7272437679830969316">அடையாளத்தைச் சரிபார்க்க முடியவில்லை. கடவுச்சொல் நகலெடுக்கப்படவில்லை.</translation>
 <translation id="7291368939935408496">கடவுச்சொற்கள் தயாராகின்றன...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index e12957f..b59e95c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -33,6 +33,7 @@
 <translation id="122699739164161391">అన్ని ట్యాబ్‌లను మూసివేయి</translation>
 <translation id="1229222343402087523">Chromeలో ${searchPhrase}ను సెర్చ్ చేయండి</translation>
 <translation id="1231733316453485619">సమకాలీకరణను ఆన్ చేయాలా?</translation>
+<translation id="1242044645101871359">మళ్ళీ సైన్ ఇన్ చేయండి</translation>
 <translation id="1254117744268754948">ఫోల్డర్‌ను ఎంచుకోండి</translation>
 <translation id="1265739287306757398">ఎలాగో తెలుసుకోండి</translation>
 <translation id="1272079795634619415">ఆపు</translation>
@@ -97,6 +98,7 @@
 <translation id="1820259098641718022">పఠన జాబితాకు జోడించబడింది</translation>
 <translation id="1870148520156231997">పాస్‌వర్డ్‌ను చూపండి</translation>
 <translation id="1872096359983322073">టార్చ్</translation>
+<translation id="1894205589103145703">సైన్ ఇన్ చేసే సమయంలో ఏదో తప్పు జరిగింది.</translation>
 <translation id="1911619930368729126">Google డిస్క్‌కి అప్‌. చే.</translation>
 <translation id="1923342640370224680">గత గంట</translation>
 <translation id="1941314575388338491">కాపీ చేయడానికి రెండుసార్లు నొక్కండి.</translation>
@@ -110,6 +112,7 @@
 <translation id="2073572773299281212"><ph name="DAYS" /> రోజుల క్రితం యాక్టివ్‌గా ఉంది</translation>
 <translation id="2074131957428911366">మీరు ఎప్పుడైనా <ph name="BEGIN_LINK" />సెట్టింగ్‌ల<ph name="END_LINK" /> ద్వారా వేటిని సింక్ చేయాలో ఎంచుకోవచ్చు.</translation>
 <translation id="2079545284768500474">చర్య రద్దు</translation>
+<translation id="2086623437239112659">మీ స్టోర్ చేయబడిన సైన్ ఇన్ సమాచారం గడువు ముగిసి ఉండవచ్చు.</translation>
 <translation id="209018056901015185">డెస్క్‌టాప్ సైట్‌ను అభ్యర్థించు</translation>
 <translation id="2103075008456228677">history.google.com తెరువు</translation>
 <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> అంశాలు తరలించబడ్డాయి</translation>
@@ -185,6 +188,7 @@
 <translation id="2871695793448672541">దాచబడింది, పాస్‌వర్డ్</translation>
 <translation id="2876369937070532032">మీ భద్రతకు ప్రమాదం పొంచి ఉన్నప్పుడు, మీరు సందర్శించే కొన్ని పేజీల URLలను Googleకు పంపుతుంది</translation>
 <translation id="288655811176831528">ట్యాబ్‌ని మూసివేయి</translation>
+<translation id="2893180576842394309">శోధన, ఇతర Google సేవలను వ్యక్తిగతీకరించడానికి Google మీ చరిత్రను ఉపయోగించే అవకాశం ఉంటుంది</translation>
 <translation id="2898963176829412617">కొత్త ఫోల్డర్…</translation>
 <translation id="2916171785467530738">ఆటో-ఫిల్ సెర్చ్‌లు, URLలు</translation>
 <translation id="291754862089661335">QR కోడ్ లేదా బార్‌కోడ్‌ను ఈ ఫ్రేమ్‌లో ఉంచండి</translation>
@@ -399,6 +403,7 @@
 <translation id="5132942445612118989">అన్ని పరికరాల్లో మీ పాస్‌వర్డ్‌లు, చరిత్ర, మరిన్నింటిని సింక్ చేయండి</translation>
 <translation id="5140288047769711648">Chrome మీకు సంబంధించి ఈ పాస్‌వర్డ్‌ను గుర్తుంచుకుంటుంది. మీరు గుర్తుంచుకోనవసరం లేదు.</translation>
 <translation id="5150492518600715772">మీ పరికరానికి పంపండి</translation>
+<translation id="5168414296986405587">iPadOS కోసం బిల్డ్ చేయబడింది</translation>
 <translation id="5181140330217080051">డౌన్‌లోడ్ చేస్తోంది</translation>
 <translation id="5186185447130319458">ప్రైవేట్</translation>
 <translation id="5188482106078495165">మీ కుక్కీల సెట్టింగ్ అన్ని ట్యాబ్‌లకు వర్తిస్తుంది. తెరిచి ఉన్న ట్యాబ్‌కు కొత్త సెట్టింగ్ వర్తించాలంటే, ట్యాబ్‌ను రీలోడ్ చేయండి.</translation>
@@ -623,6 +628,7 @@
 <translation id="7203585745079012652">సమాధానాలను చదివి వినిపించు</translation>
 <translation id="7207383424303353046">కొత్తది: Chromeను మీ ఆటోమేటిక్ బ్రౌజర్ యాప్‌గా చేయడం ద్వారా, దానిలో సైట్‌లను ఆటోమేటిక్‌గా తెరవండి. <ph name="BEGIN_LINK" />సెట్టింగ్‌లను తెరవండి<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">కార్డ్ మారుపేరు చెల్లదు</translation>
+<translation id="722454870747268814">కొత్త అజ్ఞాత ట్యాబ్</translation>
 <translation id="7265758999917665941">ఈ సైట్ కోసం ఎప్పటికీ వద్దు</translation>
 <translation id="7272437679830969316">మీ గుర్తింపును ధృవీకరించడం సాధ్యపడలేదు. పాస్‌వర్డ్ కాపీ చేయబడలేదు.</translation>
 <translation id="7291368939935408496">పాస్‌వర్డ్‌లను సిద్ధం చేస్తోంది...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index c8659cc..935e92d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">รหัสผ่านแบบซ่อน</translation>
 <translation id="2876369937070532032">ส่ง URL ของหน้าบางส่วนที่คุณเข้าชมไปให้ Google เมื่อการรักษาความปลอดภัยมีความเสี่ยง</translation>
 <translation id="288655811176831528">ปิดแท็บ</translation>
+<translation id="2893180576842394309">Google อาจใช้ประวัติการเข้าชมเพื่อปรับเปลี่ยน Search และบริการอื่นๆ ของ Google ให้เข้ากับคุณ</translation>
 <translation id="2898963176829412617">โฟลเดอร์ใหม่…</translation>
 <translation id="2916171785467530738">เติมข้อความค้นหาและ URL อัตโนมัติ</translation>
 <translation id="291754862089661335">จัดตำแหน่งโค้ด QR หรือบาร์โค้ดให้อยู่ในกรอบนี้</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">รหัสผ่าน</translation>
 <translation id="7053983685419859001">บล็อก</translation>
 <translation id="7062545763355031412">ยอมรับและเปลี่ยนบัญชี</translation>
+<translation id="708844789167408367">ออกจากระบบและปิดการซิงค์...</translation>
 <translation id="7099761977003084116">แท็บล่าสุด</translation>
 <translation id="7102005569666697658">กำลังดาวน์โหลด… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">ซ่อน</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">พูดคำตอบกลับ</translation>
 <translation id="7207383424303353046">ใหม่: เปิดเว็บไซต์ใน Chrome โดยอัตโนมัติด้วยการตั้งเป็นแอปเบราว์เซอร์เริ่มต้น <ph name="BEGIN_LINK" />เปิดการตั้งค่า<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">ชื่อเล่นของบัตรไม่ถูกต้อง</translation>
+<translation id="722454870747268814">แท็บที่ไม่ระบุตัวตนใหม่</translation>
 <translation id="7265758999917665941">ไม่จดจำสำหรับเว็บไซต์นี้</translation>
 <translation id="7272437679830969316">ยืนยันตัวตนของคุณไม่ได้ คัดลอกรหัสผ่านไม่สำเร็จ</translation>
 <translation id="7291368939935408496">กำลังเตรียมรหัสผ่าน...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index a9d5f72..0ee8940a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Gizli, Şifre</translation>
 <translation id="2876369937070532032">Güvenliğiniz risk altında olduğunda ziyaret ettiğiniz bazı sayfaların URL'lerini Google'a gönderir</translation>
 <translation id="288655811176831528">Sekmeyi Kapat</translation>
+<translation id="2893180576842394309">Google; Arama ve diğer Google hizmetlerini kişiselleştirmek için geçmişinizi kullanabilir</translation>
 <translation id="2898963176829412617">Yeni Klasör…</translation>
 <translation id="2916171785467530738">Aramaları ve URL'leri Otomatik Tamamlama</translation>
 <translation id="291754862089661335">QR kodunu veya barkodu bu çerçeveye yerleştirin</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Yanıtı Sesli Söyle</translation>
 <translation id="7207383424303353046">Yeni: Varsayılan Tarayıcı Uygulamanız yaparak siteleri Chrome'da otomatik bir şekilde açın. <ph name="BEGIN_LINK" />Ayarları Aç<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Kart İçin Geçersiz Takma Ad</translation>
+<translation id="722454870747268814">Yeni Gizli Sekme</translation>
 <translation id="7265758999917665941">Bu Site İçin Hiçbir Zaman</translation>
 <translation id="7272437679830969316">Kimliğiniz doğrulanamıyor. Şifre kopyalanmadı.</translation>
 <translation id="7291368939935408496">Şifreler Hazırlanıyor...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index 5ebc0c4f..aaaece9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Прихований пароль</translation>
 <translation id="2876369937070532032">Надсилає в Google URL-адреси деяких відвіданих сторінок, коли ваша безпека під загрозою</translation>
 <translation id="288655811176831528">Закрити вкладку</translation>
+<translation id="2893180576842394309">Google може використовувати вашу історію, щоб персоналізувати Пошук та інші сервіси Google</translation>
 <translation id="2898963176829412617">Нова папка…</translation>
 <translation id="2916171785467530738">Автозавершення пошукових запитів і URL-адрес</translation>
 <translation id="291754862089661335">Розмістіть QR-код або штрих-код у цій рамці</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">Паролі</translation>
 <translation id="7053983685419859001">Блокувати</translation>
 <translation id="7062545763355031412">Прийняти та перейти в інший обліковий запис</translation>
+<translation id="708844789167408367">Вийти й вимкнути синхронізацію…</translation>
 <translation id="7099761977003084116">Останні вкладки</translation>
 <translation id="7102005569666697658">Завантаження файлу… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">Сховати</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">Озвучувати відповіді</translation>
 <translation id="7207383424303353046">Новинка: щоб автоматично відкривати сайти в додатку Chrome, установіть його своїм веб-переглядачем за умовчанням. <ph name="BEGIN_LINK" />Відкрити налаштування<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Недійсний псевдонім картки</translation>
+<translation id="722454870747268814">Нова анонімна вкладка</translation>
 <translation id="7265758999917665941">Ніколи для цього сайту</translation>
 <translation id="7272437679830969316">Не вдалося підтвердити особу. Пароль не скопійовано.</translation>
 <translation id="7291368939935408496">Готуються паролі…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
index c8e8d4871..ce92caf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">مخفی، پاس ورڈ</translation>
 <translation id="2876369937070532032">‏آپ کو سیکیورٹی کا خطرہ لاحق ہونے پر، Google کو آپ کے ملاحظہ کئے جانے والے چند صفحات کے URLs بھیجتا ہے</translation>
 <translation id="288655811176831528">ٹیب بند کریں</translation>
+<translation id="2893180576842394309">‏تلاش اور Google کی دیگر سروسز کو ذاتی نوعیت کا بنانے کے لیے Google آپ کی سرگزشت کا استعمال کر سکتا ہے</translation>
 <translation id="2898963176829412617">نیا فولڈر…</translation>
 <translation id="2916171785467530738">‏تلاشوں اور URLs کی خودکار تکمیل کریں</translation>
 <translation id="291754862089661335">‏QR کوڈ کو اس فریم میں رکھیں</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">پاس ورڈز</translation>
 <translation id="7053983685419859001">مسدود کریں</translation>
 <translation id="7062545763355031412">قبول کریں اور اکاؤنٹس سوئچ کریں</translation>
+<translation id="708844789167408367">سائن آؤٹ کریں اور مطابقت پذیری آف کریں...</translation>
 <translation id="7099761977003084116">حالیہ ٹیبز</translation>
 <translation id="7102005569666697658">ڈاؤن لوڈ ہو رہی ہے… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">چھپائیں</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">جوابات دوبارہ بولیں</translation>
 <translation id="7207383424303353046">‏نیا: Chrome کو اپنی ڈیفالٹ براؤزر ایپ بنا کر سائٹس کو اس میں خودکار طور پر کھولیں۔ <ph name="BEGIN_LINK" />ترتیبات کھولیں<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">کارڈ کا غلط عرفی نام</translation>
+<translation id="722454870747268814">نیا پوشیدگی ٹیب</translation>
 <translation id="7265758999917665941">اس سائٹ کیلئے کبھی نہیں</translation>
 <translation id="7272437679830969316">آپ کی شناخت کی توثیق نہیں کی جا سکتی۔ پاس ورڈ کاپی نہیں ہوا۔</translation>
 <translation id="7291368939935408496">پاسورڈز تیار کیے جا رہے ہيں...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index e777cf1..f2d0ca3d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Yashirin parol</translation>
 <translation id="2876369937070532032">Xavfli vaziyatlarda siz tashrif buyurgan ayrim URL manzillarni Google serverlariga yuboradi</translation>
 <translation id="288655811176831528">Varaqni yopish</translation>
+<translation id="2893180576842394309">Qidiruv va boshqa xizmatlarni sizga moslashtirish uchun Google tarix maʼlumotlaringizdan foydalanishi mumkin</translation>
 <translation id="2898963176829412617">Yangi jild...</translation>
 <translation id="2916171785467530738">Qidiruv va URL manzillarning avtomatik kiritilishi</translation>
 <translation id="291754862089661335">Bu kadrga QR yoki shtrix kodni joylang</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Qidiruv natijalari o‘qilsin</translation>
 <translation id="7207383424303353046">Yangi: Saytlar Chrome brauzerida avtomatik ochilishi uchun uni birlamchi brauzer etib tayinlash kifoya. <ph name="BEGIN_LINK" />Sozlamalarni ochish<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Karta nomi yaroqsiz</translation>
+<translation id="722454870747268814">Yangi inkognito sahifa</translation>
 <translation id="7265758999917665941">Bu saytda hech qachon</translation>
 <translation id="7272437679830969316">Shaxsingiz tasdiqlanmadi. Paroldan nusxa olinmadi.</translation>
 <translation id="7291368939935408496">Parollar tayyorlanmoqda...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index 1595fcf..65553691 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Mật khẩu ẩn</translation>
 <translation id="2876369937070532032">Gửi URL của một số trang mà bạn truy cập cho Google khi bạn gặp rủi ro về bảo mật</translation>
 <translation id="288655811176831528">Đóng thẻ</translation>
+<translation id="2893180576842394309">Google có thể sử dụng lịch sử của bạn để điều chỉnh tính năng Tìm kiếm và các dịch vụ khác của Google cho phù hợp với bạn</translation>
 <translation id="2898963176829412617">Thư mục mới…</translation>
 <translation id="2916171785467530738">Tự động hoàn thành cụm từ tìm kiếm và URL</translation>
 <translation id="291754862089661335">Đặt mã QR hoặc mã vạch vào khung này</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Trả lời bằng giọng nói</translation>
 <translation id="7207383424303353046">Mới: Tự động mở các trang web trên Chrome bằng cách đặt Chrome làm Ứng dụng trình duyệt mặc định. <ph name="BEGIN_LINK" />Mở phần Cài đặt<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Biệt hiệu của thẻ không hợp lệ</translation>
+<translation id="722454870747268814">Thẻ ẩn danh mới</translation>
 <translation id="7265758999917665941">Không bao giờ đối với trang web này</translation>
 <translation id="7272437679830969316">Không thể xác minh danh tính của bạn. Chưa sao chép mật khẩu.</translation>
 <translation id="7291368939935408496">Đang chuẩn bị mật khẩu...</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 0801116..b70da50 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -33,6 +33,7 @@
 <translation id="122699739164161391">关闭所有标签页</translation>
 <translation id="1229222343402087523">在 Chrome 中搜索 ${searchPhrase}</translation>
 <translation id="1231733316453485619">开启同步功能?</translation>
+<translation id="1242044645101871359">重新登录</translation>
 <translation id="1254117744268754948">选择文件夹</translation>
 <translation id="1265739287306757398">了解如何操作</translation>
 <translation id="1272079795634619415">停止</translation>
@@ -97,6 +98,7 @@
 <translation id="1820259098641718022">已添加到阅读清单</translation>
 <translation id="1870148520156231997">显示密码</translation>
 <translation id="1872096359983322073">闪光灯</translation>
+<translation id="1894205589103145703">登录期间出了点问题。</translation>
 <translation id="1911619930368729126">上传到Google云端硬盘</translation>
 <translation id="1923342640370224680">过去 1 小时</translation>
 <translation id="1941314575388338491">点按两次即可复制。</translation>
@@ -110,6 +112,7 @@
 <translation id="2073572773299281212"><ph name="DAYS" /> 天前曾有活动</translation>
 <translation id="2074131957428911366">您始终可在<ph name="BEGIN_LINK" />设置<ph name="END_LINK" />中选择要同步的内容。</translation>
 <translation id="2079545284768500474">撤消</translation>
+<translation id="2086623437239112659">您存储的登录信息可能已过期。</translation>
 <translation id="209018056901015185">请求切换到桌面版网站</translation>
 <translation id="2103075008456228677">打开 history.google.com</translation>
 <translation id="2116625576999540962">移动了<ph name="NUMBER_OF_SELECTED_BOOKMARKS" />项</translation>
@@ -185,6 +188,7 @@
 <translation id="2871695793448672541">目前为隐藏状态的密码</translation>
 <translation id="2876369937070532032">当您面临安全风险时,将您所访问的部分网页的网址发送给 Google</translation>
 <translation id="288655811176831528">关闭标签页</translation>
+<translation id="2893180576842394309">Google 可能会利用您的历史记录为您提供个性化的 Google 搜索和其他 Google 服务</translation>
 <translation id="2898963176829412617">新建文件夹…</translation>
 <translation id="2916171785467530738">自动补全搜索字词和网址</translation>
 <translation id="291754862089661335">将 QR 码或条形码放到此框内</translation>
@@ -399,6 +403,7 @@
 <translation id="5132942445612118989">将您的密码、历史记录等信息同步到所有设备上</translation>
 <translation id="5140288047769711648">Chrome 将为您记住此密码,因此,您不必记住它。</translation>
 <translation id="5150492518600715772">发送到您的设备</translation>
+<translation id="5168414296986405587">专为 iPadOS 打造</translation>
 <translation id="5181140330217080051">正在下载</translation>
 <translation id="5186185447130319458">不公开</translation>
 <translation id="5188482106078495165">您的 Cookie 设置适用于所有标签页。若要对某个已打开的标签页应用新设置,请重新加载该标签页。</translation>
@@ -623,6 +628,7 @@
 <translation id="7203585745079012652">说出答案</translation>
 <translation id="7207383424303353046">新功能:将 Chrome 设为默认浏览器应用,即可自动在 Chrome 中打开网站。<ph name="BEGIN_LINK" />打开“设置”<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">卡的昵称无效</translation>
+<translation id="722454870747268814">打开新的无痕模式标签页</translation>
 <translation id="7265758999917665941">此网站一律不保存密码</translation>
 <translation id="7272437679830969316">无法验证您的身份。未复制密码。</translation>
 <translation id="7291368939935408496">正在准备密码…</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 14c9560..7ff4548 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">目前為隱藏狀態的密碼</translation>
 <translation id="2876369937070532032">當網站面臨安全風險時,Chrome 會將您瀏覽的部分網頁網址傳送給 Google</translation>
 <translation id="288655811176831528">關閉分頁</translation>
+<translation id="2893180576842394309">Google 可能會使用您的記錄,為您提供個人化的搜尋服務和其他 Google 服務</translation>
 <translation id="2898963176829412617">新資料夾…</translation>
 <translation id="2916171785467530738">自動完成搜尋和網址</translation>
 <translation id="291754862089661335">將二維條碼或條碼放置此頁框中</translation>
@@ -626,6 +627,7 @@
 <translation id="7203585745079012652">語音答覆</translation>
 <translation id="7207383424303353046">新功能:將 Chrome 設為預設瀏覽器應用程式,即可自動以 Chrome 開啟網站。<ph name="BEGIN_LINK" />開啟設定<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">無效的信用卡暱稱</translation>
+<translation id="722454870747268814">新增無痕式分頁</translation>
 <translation id="7265758999917665941">一律不儲存此網站的密碼</translation>
 <translation id="7272437679830969316">無法驗證您的身分。未複製密碼。</translation>
 <translation id="7291368939935408496">正在準備密碼…</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 2149175..edd02b1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">目前為隱藏狀態的密碼</translation>
 <translation id="2876369937070532032">當網站具有安全性風險時,Chrome 會將你造訪的部分網頁網址傳送給 Google</translation>
 <translation id="288655811176831528">關閉分頁</translation>
+<translation id="2893180576842394309">Google 可能會使用你的歷史記錄,為你提供個人化的搜尋服務和其他各項 Google 服務</translation>
 <translation id="2898963176829412617">新資料夾…</translation>
 <translation id="2916171785467530738">自動完成搜尋字詞與網址</translation>
 <translation id="291754862089661335">將這個方框對準 QR 圖碼或條碼</translation>
@@ -613,6 +614,7 @@
 <translation id="7029809446516969842">密碼</translation>
 <translation id="7053983685419859001">封鎖</translation>
 <translation id="7062545763355031412">接受並切換帳戶</translation>
+<translation id="708844789167408367">登出並關閉同步功能…</translation>
 <translation id="7099761977003084116">最近開啟的分頁</translation>
 <translation id="7102005569666697658">下載中… <ph name="FILE_SIZE" /></translation>
 <translation id="7108338896283013870">隱藏</translation>
@@ -627,6 +629,7 @@
 <translation id="7203585745079012652">語音答覆</translation>
 <translation id="7207383424303353046">新功能:將 Chrome 設為預設的瀏覽器應用程式,即可自動在 Chrome 中開啟網站。<ph name="BEGIN_LINK" />開啟設定<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">卡片暱稱無效</translation>
+<translation id="722454870747268814">新無痕式分頁</translation>
 <translation id="7265758999917665941">一律不儲存這個網站的密碼</translation>
 <translation id="7272437679830969316">無法驗證你的身分,因此未複製密碼。</translation>
 <translation id="7291368939935408496">正在準備匯出密碼...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
index 21b888a6f..da91012 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -188,6 +188,7 @@
 <translation id="2871695793448672541">Kufihliwe, iphasiwedi</translation>
 <translation id="2876369937070532032">Sithumela ama-URL wamanye amakhasi owavakashelayo ku-Google, uma ukuphepha kwakho kusebucayini</translation>
 <translation id="288655811176831528">Vala ithebhu</translation>
+<translation id="2893180576842394309">I-Google ingasebenzisa umlando wakho ukuze yenze kube ngokwakho usesho namanye amasevisi e-Google</translation>
 <translation id="2898963176829412617">Ifolda entsha…</translation>
 <translation id="2916171785467530738">Qedela ngokuzenzakalela usesho nama-URL</translation>
 <translation id="291754862089661335">Misa ikhodi ye-QR noma amabhakhodi kulo zimele</translation>
@@ -628,6 +629,7 @@
 <translation id="7203585745079012652">Khulumela emuva izimpendulo</translation>
 <translation id="7207383424303353046">Okusha: Vula amasayithi ku-Chrome ngokuzenzekelayo ngokwenza kube Uhlelo Lwakho Lokusebenza Lwesiphequluli Oluzenzakalelayo. <ph name="BEGIN_LINK" />Vula Amasethingi<ph name="END_LINK" /></translation>
 <translation id="721597782417389033">Isiteketiso Sekhadi Esingavumelekile</translation>
+<translation id="722454870747268814">Ithebhu entsha ye-incognito</translation>
 <translation id="7265758999917665941">Ungalokothi kuleli sayithi</translation>
 <translation id="7272437679830969316">Ayikwazi ukuqinisekisa ubunikazi bakho. Iphasiwedi ayikopishiwe.</translation>
 <translation id="7291368939935408496">Ilungiselela amaphasiwedi...</translation>
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.h b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.h
index cb628ba..de15485 100644
--- a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.h
+++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.h
@@ -22,10 +22,12 @@
   ~SaveAddressProfileInfobarBannerInteractionHandler() override;
 
   // InfobarBannerInteractionHandler:
-  void MainButtonTapped(InfoBarIOS* infobar) override;
   void BannerVisibilityChanged(InfoBarIOS* infobar, bool visible) override;
   void ShowModalButtonTapped(InfoBarIOS* infobar,
                              web::WebState* web_state) override;
+  // The delegate's InfoBarDismissed() would be called in
+  // BannerVisibilityChanged().
+  void BannerDismissedByUser(InfoBarIOS* infobar) override {}
 
  private:
   // Returns the SaveAddressProfile delegate from |infobar|.
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.mm b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.mm
index 60a1432..087d724 100644
--- a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.mm
+++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.mm
@@ -29,11 +29,6 @@
 SaveAddressProfileInfobarBannerInteractionHandler::
     ~SaveAddressProfileInfobarBannerInteractionHandler() = default;
 
-void SaveAddressProfileInfobarBannerInteractionHandler::MainButtonTapped(
-    InfoBarIOS* infobar) {
-  infobar->set_accepted(GetInfobarDelegate(infobar)->Accept());
-}
-
 void SaveAddressProfileInfobarBannerInteractionHandler::BannerVisibilityChanged(
     InfoBarIOS* infobar,
     bool visible) {
@@ -47,15 +42,7 @@
   // Inform delegate that the modal is shown.
   GetInfobarDelegate(infobar)->set_modal_is_shown_to_true();
 
-  InsertParams params(infobar);
-  params.infobar = infobar;
-  params.overlay_type = InfobarOverlayType::kModal;
-  params.insertion_index = OverlayRequestQueue::FromWebState(
-                               web_state, OverlayModality::kInfobarModal)
-                               ->size();
-  params.source = InfobarOverlayInsertionSource::kBanner;
-  InfobarOverlayRequestInserter::FromWebState(web_state)->InsertOverlayRequest(
-      params);
+  InfobarBannerInteractionHandler::ShowModalButtonTapped(infobar, web_state);
 }
 
 #pragma mark - Private
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler_unittest.mm b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler_unittest.mm
index dc0de4c..f90a862 100644
--- a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler_unittest.mm
+++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler_unittest.mm
@@ -43,12 +43,6 @@
   std::unique_ptr<InfoBarIOS> infobar_;
 };
 
-// Tests MainButtonTapped() calls Accept() on the mock delegate.
-TEST_F(SaveAddressProfileInfobarBannerInteractionHandlerTest, MainButton) {
-  EXPECT_CALL(mock_delegate(), Accept()).WillOnce(testing::Return(true));
-  handler_.MainButtonTapped(infobar_.get());
-}
-
 // Tests that BannerVisibilityChanged() InfobarDismissed() on the mock delegate.
 TEST_F(SaveAddressProfileInfobarBannerInteractionHandlerTest, Presentation) {
   EXPECT_CALL(mock_delegate(), InfoBarDismissed());
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator.mm
index e8e307da..43047e1 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator.mm
@@ -43,6 +43,13 @@
   return SaveAddressProfileBannerRequestConfig::RequestSupport();
 }
 
+#pragma mark - InfobarOverlayRequestMediator
+
+- (void)bannerInfobarButtonWasPressed:(UIButton*)sender {
+  // Present the modal if the save/update button is pressed.
+  [self presentInfobarModalFromBanner];
+}
+
 @end
 
 @implementation SaveAddressProfileInfobarBannerOverlayMediator (ConsumerSupport)
@@ -60,8 +67,6 @@
   [self.consumer setRestrictSubtitleTextToSingleLine:YES];
   [self.consumer
       setIconImage:[UIImage imageNamed:self.config->icon_image_name()]];
-
-  [self.consumer setPresentsModal:YES];
 }
 
 @end
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator_unittest.mm b/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator_unittest.mm
index ba8319f..a663b9ff3 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator_unittest.mm
@@ -15,6 +15,7 @@
 #include "ios/chrome/browser/infobars/infobar_ios.h"
 #include "ios/chrome/browser/overlays/public/infobar_banner/infobar_banner_overlay_responses.h"
 #import "ios/chrome/browser/overlays/public/infobar_banner/save_address_profile_infobar_banner_overlay_request_config.h"
+#import "ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h"
 #import "ios/chrome/browser/ui/infobars/banners/test/fake_infobar_banner_consumer.h"
 #import "testing/gtest_mac.h"
 #include "testing/platform_test.h"
@@ -27,7 +28,17 @@
     SaveAddressProfileBannerRequestConfig;
 
 // Test fixture for SaveAddressProfileInfobarBannerOverlayMediator.
-using SaveAddressProfileInfobarBannerOverlayMediatorTest = PlatformTest;
+class SaveAddressProfileInfobarBannerOverlayMediatorTest : public PlatformTest {
+ public:
+  SaveAddressProfileInfobarBannerOverlayMediatorTest()
+      : callback_installer_(
+            &callback_receiver_,
+            {InfobarBannerShowModalResponse::ResponseSupport()}) {}
+
+ protected:
+  MockOverlayRequestCallbackReceiver callback_receiver_;
+  FakeOverlayRequestCallbackInstaller callback_installer_;
+};
 
 // Tests that a SaveAddressProfileInfobarBannerOverlayMediator correctly sets up
 // its consumer.
@@ -68,3 +79,35 @@
               consumer.subtitleText);
   EXPECT_NSEQ([UIImage imageNamed:@"ic_place"], consumer.iconImage);
 }
+
+// Tests that the modal is shown when infobar button is pressed.
+TEST_F(SaveAddressProfileInfobarBannerOverlayMediatorTest,
+       PresentModalWhenInfobarButtonIsPressed) {
+  autofill::AutofillProfile profile(base::GenerateGUID(),
+                                    "https://www.example.com/");
+  std::unique_ptr<autofill::AutofillSaveUpdateAddressProfileDelegateIOS>
+      passed_delegate = std::make_unique<
+          autofill::AutofillSaveUpdateAddressProfileDelegateIOS>(
+          profile, /*original_profile=*/nullptr, /*locale=*/"en-US",
+          base::BindOnce(
+              ^(autofill::AutofillClient::SaveAddressProfileOfferUserDecision
+                    user_decision,
+                autofill::AutofillProfile profile){
+              }));
+  InfoBarIOS infobar(InfobarType::kInfobarTypeSaveAutofillAddressProfile,
+                     std::move(passed_delegate));
+
+  std::unique_ptr<OverlayRequest> request =
+      OverlayRequest::CreateWithConfig<SaveAddressProfileBannerRequestConfig>(
+          &infobar);
+  callback_installer_.InstallCallbacks(request.get());
+  SaveAddressProfileInfobarBannerOverlayMediator* mediator =
+      [[SaveAddressProfileInfobarBannerOverlayMediator alloc]
+          initWithRequest:request.get()];
+
+  EXPECT_CALL(
+      callback_receiver_,
+      DispatchCallback(request.get(),
+                       InfobarBannerShowModalResponse::ResponseSupport()));
+  [mediator bannerInfobarButtonWasPressed:nil];
+}
diff --git a/ios/chrome/browser/ui/webui/policy/BUILD.gn b/ios/chrome/browser/ui/webui/policy/BUILD.gn
index cde2d419..d68f5580 100644
--- a/ios/chrome/browser/ui/webui/policy/BUILD.gn
+++ b/ios/chrome/browser/ui/webui/policy/BUILD.gn
@@ -14,11 +14,14 @@
 
   deps = [
     "//base",
+    "//components/enterprise",
     "//components/policy:generated",
     "//components/policy/core/browser",
     "//components/policy/core/common",
+    "//components/prefs",
     "//components/resources",
     "//components/strings",
+    "//ios/chrome/browser",
     "//ios/chrome/browser:chrome_url_constants",
     "//ios/chrome/browser/browser_state",
     "//ios/chrome/browser/policy",
diff --git a/ios/chrome/browser/ui/webui/policy/policy_ui_handler.h b/ios/chrome/browser/ui/webui/policy/policy_ui_handler.h
index 2488b0e..e754c44 100644
--- a/ios/chrome/browser/ui/webui/policy/policy_ui_handler.h
+++ b/ios/chrome/browser/ui/webui/policy/policy_ui_handler.h
@@ -5,8 +5,11 @@
 #ifndef IOS_CHROME_BROWSER_UI_WEBUI_POLICY_POLICY_UI_HANDLER_H_
 #define IOS_CHROME_BROWSER_UI_WEBUI_POLICY_POLICY_UI_HANDLER_H_
 
+#include <memory>
+
 #include "base/memory/weak_ptr.h"
 #include "base/values.h"
+#include "components/policy/core/browser/webui/policy_status_provider.h"
 #include "components/policy/core/common/policy_service.h"
 #include "components/policy/core/common/schema_registry.h"
 #include "ios/web/public/webui/web_ui_ios.h"
@@ -61,12 +64,17 @@
   // metadata are sent.
   void SendPolicies();
 
+  void SendStatus();
+
   // The callback invoked by PolicyService::RefreshPolicies().
   void OnRefreshPoliciesDone();
 
   // Returns the PolicyService associated with this WebUI's BrowserState.
   policy::PolicyService* GetPolicyService() const;
 
+  // Provider that supply status dictionary for machine policy,
+  std::unique_ptr<policy::PolicyStatusProvider> machine_status_provider_;
+
   // Vends WeakPtrs for this object.
   base::WeakPtrFactory<PolicyUIHandler> weak_factory_{this};
 };
diff --git a/ios/chrome/browser/ui/webui/policy/policy_ui_handler.mm b/ios/chrome/browser/ui/webui/policy/policy_ui_handler.mm
index 7009891..768125735 100644
--- a/ios/chrome/browser/ui/webui/policy/policy_ui_handler.mm
+++ b/ios/chrome/browser/ui/webui/policy/policy_ui_handler.mm
@@ -11,14 +11,22 @@
 #include "base/callback.h"
 #include "base/callback_helpers.h"
 #include "base/values.h"
+#include "components/enterprise/browser/controller/browser_dm_token_storage.h"
+#include "components/enterprise/browser/controller/chrome_browser_cloud_management_controller.h"
+#include "components/enterprise/browser/reporting/common_pref_names.h"
 #include "components/policy/core/browser/policy_conversions.h"
+#include "components/policy/core/browser/webui/machine_level_user_cloud_policy_status_provider.h"
+#include "components/policy/core/common/cloud/machine_level_user_cloud_policy_manager.h"
 #include "components/policy/core/common/policy_map.h"
 #include "components/policy/core/common/policy_types.h"
 #include "components/policy/core/common/schema.h"
 #include "components/policy/core/common/schema_map.h"
 #include "components/policy/policy_constants.h"
+#include "components/prefs/pref_service.h"
 #include "components/strings/grit/components_strings.h"
+#include "ios/chrome/browser/application_context.h"
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
+#include "ios/chrome/browser/policy/browser_policy_connector_ios.h"
 #include "ios/chrome/browser/policy/browser_state_policy_connector.h"
 #include "ios/chrome/browser/policy/policy_conversions_client_ios.h"
 #include "ui/base/webui/web_ui_util.h"
@@ -27,7 +35,7 @@
 #error "This file requires ARC support."
 #endif
 
-PolicyUIHandler::PolicyUIHandler() {}
+PolicyUIHandler::PolicyUIHandler() = default;
 
 PolicyUIHandler::~PolicyUIHandler() {
   GetPolicyService()->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this);
@@ -76,6 +84,38 @@
 }
 
 void PolicyUIHandler::RegisterMessages() {
+  policy::MachineLevelUserCloudPolicyManager* manager =
+      GetApplicationContext()
+          ->GetBrowserPolicyConnector()
+          ->machine_level_user_cloud_policy_manager();
+
+  if (manager) {
+    policy::BrowserDMTokenStorage* dmTokenStorage =
+        policy::BrowserDMTokenStorage::Get();
+
+    base::Time lastCloudReportSent;
+    PrefService* prefService = GetApplicationContext()->GetLocalState();
+
+    if (prefService->HasPrefPath(
+            enterprise_reporting::kLastUploadSucceededTimestamp)) {
+      lastCloudReportSent = prefService->GetTime(
+          enterprise_reporting::kLastUploadSucceededTimestamp);
+    }
+
+    machine_status_provider_ =
+        std::make_unique<policy::MachineLevelUserCloudPolicyStatusProvider>(
+            manager->core(),
+            new policy::MachineLevelUserCloudPolicyContext(
+                {dmTokenStorage->RetrieveEnrollmentToken(),
+                 dmTokenStorage->RetrieveClientId(), lastCloudReportSent}));
+  }
+
+  if (!machine_status_provider_)
+    machine_status_provider_ = std::make_unique<policy::PolicyStatusProvider>();
+
+  machine_status_provider_->SetStatusChangeCallback(base::BindRepeating(
+      &PolicyUIHandler::SendStatus, base::Unretained(this)));
+
   GetPolicyService()->AddObserver(policy::POLICY_DOMAIN_CHROME, this);
 
   ChromeBrowserState* browser_state =
@@ -156,8 +196,28 @@
   web_ui()->FireWebUIListener("policies-updated", args);
 }
 
+void PolicyUIHandler::SendStatus() {
+  std::unique_ptr<base::DictionaryValue> machine_status(
+      new base::DictionaryValue);
+  machine_status_provider_->GetStatus(machine_status.get());
+
+  // Given that it's usual for users to bring their own devices and the fact
+  // that device names could expose personal information. We do not show
+  // this field in Device Policy Box
+  if (machine_status->HasKey("machine"))
+    machine_status->RemoveKey("machine");
+
+  base::DictionaryValue status;
+  if (!machine_status->empty())
+    status.Set("machine", std::move(machine_status));
+
+  std::vector<const base::Value*> args = {&status};
+  web_ui()->FireWebUIListener("status-updated", args);
+}
+
 void PolicyUIHandler::OnRefreshPoliciesDone() {
   SendPolicies();
+  SendStatus();
 }
 
 policy::PolicyService* PolicyUIHandler::GetPolicyService() const {
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
index 432aa33d..a074e1e4 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-f33d91e8473cbf055da3dd9a178895d33a3a033b
\ No newline at end of file
+76a6ba7b57f509b7309d3553bada1633e264a2ed
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
index aa4c0e8..3ce1945 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-b791d0068f854de3eda759a67bf1ee86a1688a48
\ No newline at end of file
+2ae2b9c0ee41b63e06512198de9cfcfecec47abb
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
index e47e3213..7e824b6 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-8deec53bcb3ae9ac2cf54ac45d86fb53635c4cdc
\ No newline at end of file
+2d3d3afac9c36ab1ea74a2dabedefe2517e6a3e0
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
index e55a287..9200aaa 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-ac12dccc9e724d40e2bb4c41088d10c163c51c3d
\ No newline at end of file
+a83650b6933c83698ba86f90e36fda9fa2a2cff8
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
index 425c17d..71350573 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-3c004ae54734efefbdf4d0c9890bf89d3621ca7e
\ No newline at end of file
+3c7364964e2f9bab5db61c2248c9f0848cc6fc86
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
index 30fdeaa..fce7344 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-086bfa8176751e79947200e97ea46b83e9e972a8
\ No newline at end of file
+57d95e64264164118cdff2163be78b74314a06c6
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
index e452a7b..9d183ae4 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-b41a0f0d9a6119a6fbc49eb8d670bffec239efb4
\ No newline at end of file
+312ed50cc60ecf41f82898cc71875ba4bd3e7395
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
index f3bb0644f..e3c0b5d 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-c3a3f4aa15b366b94f5cddcbaf4eaba8482aba60
\ No newline at end of file
+e089abe45d9c1144abb1791c60b8dffc6693f23d
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
index c10e5a8..d4290af 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-e133818540822d7b08110f967f7b5c7a9b4dba6e
\ No newline at end of file
+6d0705a10622db88f952f45bc9332323a1d4de9c
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
index f1b0004..5870138 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-c5cb59e68f708945d700473d3d524dfc3e883980
\ No newline at end of file
+6e4f519a7122867567609a445efc3b68c8990d87
\ No newline at end of file
diff --git a/media/blink/webmediaplayer_impl_unittest.cc b/media/blink/webmediaplayer_impl_unittest.cc
index cab3ca13..4dc4a84 100644
--- a/media/blink/webmediaplayer_impl_unittest.cc
+++ b/media/blink/webmediaplayer_impl_unittest.cc
@@ -320,6 +320,7 @@
             /*is_hidden=*/false,
             /*is_inside_portal=*/false,
             /*compositing_enabled=*/false,
+            /*widgets_never_composited=*/false,
             /*opener=*/nullptr,
             mojo::NullAssociatedReceiver(),
             *agent_group_scheduler,
diff --git a/media/capture/BUILD.gn b/media/capture/BUILD.gn
index bd8a26a1..cc13409 100644
--- a/media/capture/BUILD.gn
+++ b/media/capture/BUILD.gn
@@ -256,10 +256,7 @@
     configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
   }
 
-  # This includes the case of ChromeOS
-  # TODO: As we move to separately version Chrome from ChromeOS, we may need to split
-  # these sources into linux, chromeos, and common.
-  if (is_linux || is_chromeos) {
+  if (is_linux || is_chromeos_lacros) {
     sources += [
       "video/linux/scoped_v4l2_device_fd.cc",
       "video/linux/scoped_v4l2_device_fd.h",
@@ -327,10 +324,6 @@
       "video/chromeos/video_capture_jpeg_decoder.h",
       "video/chromeos/video_capture_jpeg_decoder_impl.cc",
       "video/chromeos/video_capture_jpeg_decoder_impl.h",
-      "video/linux/camera_config_chromeos.cc",
-      "video/linux/camera_config_chromeos.h",
-      "video/linux/video_capture_device_chromeos.cc",
-      "video/linux/video_capture_device_chromeos.h",
     ]
     public_deps += [ "//media/capture/video/chromeos/public" ]
     deps += [
@@ -391,7 +384,7 @@
     "//ui/gfx:test_support",
   ]
 
-  if (is_linux || is_chromeos) {
+  if (is_linux || is_chromeos_lacros) {
     sources += [
       "video/linux/fake_device_provider.cc",
       "video/linux/fake_device_provider.h",
@@ -453,17 +446,13 @@
     "//ui/gfx:test_support",
   ]
 
-  if (is_linux || is_chromeos) {
+  if (is_linux || is_chromeos_lacros) {
     sources += [
       "video/linux/v4l2_capture_delegate_unittest.cc",
       "video/linux/video_capture_device_factory_linux_unittest.cc",
     ]
   }
 
-  if (is_chromeos_ash) {
-    sources += [ "video/linux/camera_config_chromeos_unittest.cc" ]
-  }
-
   if (is_android) {
     deps += [
       "//media/capture/video/android",
diff --git a/media/capture/video/create_video_capture_device_factory.cc b/media/capture/video/create_video_capture_device_factory.cc
index 435ede8..f234d68 100644
--- a/media/capture/video/create_video_capture_device_factory.cc
+++ b/media/capture/video/create_video_capture_device_factory.cc
@@ -16,7 +16,6 @@
 #elif BUILDFLAG(IS_CHROMEOS_ASH)
 #include "media/capture/video/chromeos/public/cros_features.h"
 #include "media/capture/video/chromeos/video_capture_device_factory_chromeos.h"
-#include "media/capture/video/linux/video_capture_device_factory_linux.h"
 #elif defined(OS_WIN)
 #include "media/capture/video/win/video_capture_device_factory_win.h"
 #elif defined(OS_MAC)
@@ -56,34 +55,13 @@
   }
 }
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-std::unique_ptr<VideoCaptureDeviceFactory>
-CreateChromeOSVideoCaptureDeviceFactory(
-    scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
-  // On Chrome OS we have to support two use cases:
-  //
-  // 1. For devices that have the camera HAL v3 service running on Chrome OS,
-  //    we use the HAL v3 capture device which VideoCaptureDeviceFactoryChromeOS
-  //    provides.
-  // 2. Existing devices that use UVC cameras need to use the V4L2 capture
-  //    device which VideoCaptureDeviceFacotoryLinux provides; there are also
-  //    some special devices that may never be able to implement a camera HAL
-  //    v3.
-  if (ShouldUseCrosCameraService()) {
-    return std::make_unique<VideoCaptureDeviceFactoryChromeOS>(ui_task_runner);
-  } else {
-    return std::make_unique<VideoCaptureDeviceFactoryLinux>(ui_task_runner);
-  }
-}
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
-
 std::unique_ptr<VideoCaptureDeviceFactory>
 CreatePlatformSpecificVideoCaptureDeviceFactory(
     scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
 #if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
   return std::make_unique<VideoCaptureDeviceFactoryLinux>(ui_task_runner);
 #elif BUILDFLAG(IS_CHROMEOS_ASH)
-  return CreateChromeOSVideoCaptureDeviceFactory(ui_task_runner);
+  return std::make_unique<VideoCaptureDeviceFactoryChromeOS>(ui_task_runner);
 #elif defined(OS_WIN)
   return std::make_unique<VideoCaptureDeviceFactoryWin>();
 #elif defined(OS_MAC)
diff --git a/media/capture/video/linux/camera_config_chromeos.cc b/media/capture/video/linux/camera_config_chromeos.cc
deleted file mode 100644
index fbfda27..0000000
--- a/media/capture/video/linux/camera_config_chromeos.cc
+++ /dev/null
@@ -1,221 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "media/capture/video/linux/camera_config_chromeos.h"
-
-#include "base/files/file_util.h"
-#include "base/logging.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece.h"
-#include "base/strings/string_split.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-
-namespace media {
-
-namespace {
-
-// The value for each field in the enum matches the value in
-// /etc/camera/camera_characteristics.conf.
-enum LensFacing { FRONT = 0, BACK = 1 };
-
-bool ParseCameraId(const base::StringPiece& sub_key, int* camera_id) {
-  const base::StringPiece camera_id_prefix = "camera";
-  if (!base::StartsWith(sub_key, camera_id_prefix))
-    return false;
-  return base::StringToInt(sub_key.substr(camera_id_prefix.size()), camera_id);
-}
-}
-
-// /etc/camera/camera_characteristics.conf contains camera information which
-// driver cannot provide.
-static const char kCameraCharacteristicsConfigFile[] =
-    "/etc/camera/camera_characteristics.conf";
-static const char kLensFacing[] = "lens_facing";
-static const char kSensorOrientation[] = "sensor_orientation";
-static const char kUsbVidPid[] = "usb_vid_pid";
-static const char kUsbPath[] = "usb_path";
-static const int kOrientationDefault = 0;
-static const int kCameraIdNotFound = -1;
-
-CameraConfigChromeOS::CameraConfigChromeOS() {
-  InitializeDeviceInfo(std::string(kCameraCharacteristicsConfigFile));
-}
-
-CameraConfigChromeOS::CameraConfigChromeOS(
-    const std::string& config_file_path) {
-  InitializeDeviceInfo(config_file_path);
-}
-
-CameraConfigChromeOS::~CameraConfigChromeOS() = default;
-
-VideoFacingMode CameraConfigChromeOS::GetCameraFacing(
-    const std::string& device_id,
-    const std::string& model_id) const {
-  int camera_id = GetCameraId(device_id, model_id);
-  const auto& camera_id_to_facing_const = camera_id_to_facing_;
-  const auto facing_found = camera_id_to_facing_const.find(camera_id);
-  if (facing_found == camera_id_to_facing_const.end()) {
-    DLOG(ERROR) << "Can't find lens_facing of camera ID " << camera_id
-                << " in config file";
-    return kLensFacingDefault;
-  }
-  return facing_found->second;
-}
-
-int CameraConfigChromeOS::GetOrientation(const std::string& device_id,
-                                         const std::string& model_id) const {
-  int camera_id = GetCameraId(device_id, model_id);
-  const auto& camera_id_to_orientation = camera_id_to_orientation_;
-  const auto orientation_found = camera_id_to_orientation.find(camera_id);
-  if (orientation_found == camera_id_to_orientation.end()) {
-    DLOG(ERROR) << "Can't find sensor_orientation of camera ID " << camera_id
-                << " in config file";
-    return kOrientationDefault;
-  }
-  return orientation_found->second;
-}
-
-int CameraConfigChromeOS::GetCameraId(const std::string& device_id,
-                                      const std::string& model_id) const {
-  std::string usb_id = GetUsbId(device_id);
-  const auto& usb_id_to_camera_id = usb_id_to_camera_id_;
-  const auto& model_id_to_camera_id = model_id_to_camera_id_;
-
-  const auto usb_id_found = usb_id_to_camera_id.find(usb_id);
-  if (usb_id_found != usb_id_to_camera_id.end())
-    return usb_id_found->second;
-
-  // Can't find Usb ID. Fall back to use |model_id|.
-  const auto model_id_found = model_id_to_camera_id.find(model_id);
-  if (model_id_found != model_id_to_camera_id.end())
-    return model_id_found->second;
-
-  DLOG(ERROR) << "Can't find model ID in config file: " << model_id;
-  return kCameraIdNotFound;
-}
-
-std::string CameraConfigChromeOS::GetUsbId(const std::string& device_id) const {
-  // |device_id| is of the form "/dev/video2".  We want to retrieve "video2"
-  // into |file_name|.
-  const std::string device_dir = "/dev/";
-  if (!base::StartsWith(device_id, device_dir)) {
-    DLOG(ERROR) << "device_id is invalid: " << device_id;
-    return std::string();
-  }
-  const std::string file_name = device_id.substr(device_dir.length());
-
-  // Usb ID can be obtained by "readlink /sys/class/video4linux/video2/device".
-  const std::string symlink =
-      base::StringPrintf("/sys/class/video4linux/%s/device", file_name.c_str());
-  base::FilePath symlinkTarget;
-  if (!base::ReadSymbolicLink(base::FilePath(symlink), &symlinkTarget)) {
-    DPLOG(ERROR) << "Failed to readlink: " << symlink;
-    return std::string();
-  }
-
-  // |symlinkTarget| is of the format "../../../A-B:C.D". Remove the path
-  // prefix.
-  base::StringPiece usb_part = symlinkTarget.BaseName().value();
-
-  // |usb_part| is of the format "A-B:C.D" or "A-B.C:D". We want everything
-  // before ":".
-  std::vector<base::StringPiece> usb_id_pieces = base::SplitStringPiece(
-      usb_part, ":", base::WhitespaceHandling::TRIM_WHITESPACE,
-      base::SplitResult::SPLIT_WANT_ALL);
-
-  if (usb_id_pieces.empty()) {
-    DLOG(ERROR) << "Error after split: " << usb_part;
-    return std::string();
-  }
-  return std::string(usb_id_pieces[0]);
-}
-
-void CameraConfigChromeOS::InitializeDeviceInfo(
-    const std::string& config_file_path) {
-  const base::FilePath path(config_file_path);
-  std::string content;
-  if (!base::ReadFileToString(path, &content)) {
-    DPLOG(ERROR) << "ReadFileToString fails";
-    return;
-  }
-  const std::vector<base::StringPiece> lines = base::SplitStringPiece(
-      content, "\n", base::WhitespaceHandling::TRIM_WHITESPACE,
-      base::SplitResult::SPLIT_WANT_NONEMPTY);
-
-  for (const base::StringPiece& line : lines) {
-    // Ignore the comments that starts with "#".
-    if (base::StartsWith(line, "#"))
-      continue;
-    const std::vector<base::StringPiece> key_value = base::SplitStringPiece(
-        line, "=", base::WhitespaceHandling::TRIM_WHITESPACE,
-        base::SplitResult::SPLIT_WANT_ALL);
-    if (key_value.size() != 2) {
-      DLOG(ERROR) << "Invalid line in config file: " << line;
-      continue;
-    }
-    const auto& key = key_value[0];
-    const auto& value = key_value[1];
-    const std::vector<base::StringPiece> sub_keys = base::SplitStringPiece(
-        key, ".", base::WhitespaceHandling::TRIM_WHITESPACE,
-        base::SplitResult::SPLIT_WANT_ALL);
-
-    if (sub_keys.size() < 1) {
-      DLOG(ERROR) << "No valid sub key exists. Line format is invalid: "
-                  << line;
-      continue;
-    }
-    int camera_id = 0;
-    if (!ParseCameraId(sub_keys[0], &camera_id)) {
-      DLOG(ERROR) << "Invalid sub key for camera id: " << sub_keys[0];
-      continue;
-    }
-
-    if (sub_keys.size() == 2 && sub_keys[1] == kLensFacing) {
-      int lens_facing = -1;
-      if (!base::StringToInt(value, &lens_facing)) {
-        DLOG(ERROR) << "Invalid value for lens_facing: " << value;
-        continue;
-      }
-      switch (lens_facing) {
-        case LensFacing::FRONT:
-          camera_id_to_facing_[camera_id] =
-              VideoFacingMode::MEDIA_VIDEO_FACING_USER;
-          break;
-        case LensFacing::BACK:
-          camera_id_to_facing_[camera_id] =
-              VideoFacingMode::MEDIA_VIDEO_FACING_ENVIRONMENT;
-          break;
-        default:
-          DLOG(ERROR) << "Invalid value for lens_facing: " << lens_facing;
-          continue;
-      }
-    } else if (sub_keys.size() == 2 && sub_keys[1] == kSensorOrientation) {
-      int orientation = 0;
-      if (!base::StringToInt(value, &orientation)) {
-        DLOG(ERROR) << "Invalid value for sensor_orientation: " << value;
-        continue;
-      }
-      camera_id_to_orientation_[camera_id] = orientation;
-    } else if (sub_keys.size() == 3 && sub_keys[2] == kUsbVidPid) {
-      if (value.empty()) {
-        DLOG(ERROR) << "model_id is empty";
-        continue;
-      }
-      std::string model_id(value);
-      std::transform(model_id.begin(), model_id.end(), model_id.begin(),
-                     ::tolower);
-      model_id_to_camera_id_[model_id] = camera_id;
-    } else if (sub_keys.size() == 3 && sub_keys[2] == kUsbPath) {
-      if (value.empty()) {
-        DLOG(ERROR) << "usb_path is empty";
-        continue;
-      }
-      usb_id_to_camera_id_[std::string(value)] = camera_id;
-    }
-    // Ignore unknown or unutilized attributes.
-  }
-}
-
-}  // namespace media
diff --git a/media/capture/video/linux/camera_config_chromeos.h b/media/capture/video/linux/camera_config_chromeos.h
deleted file mode 100644
index 3191eb0..0000000
--- a/media/capture/video/linux/camera_config_chromeos.h
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef MEDIA_CAPTURE_VIDEO_LINUX_CAMERA_CONFIG_CHROMEOS_H_
-#define MEDIA_CAPTURE_VIDEO_LINUX_CAMERA_CONFIG_CHROMEOS_H_
-
-#include <stddef.h>
-
-#include <string>
-#include <unordered_map>
-
-#include "base/strings/string_piece.h"
-#include "media/base/video_facing.h"
-#include "media/capture/capture_export.h"
-
-namespace media {
-
-// CameraConfigChromeOS reads the file /etc/camera/camera_characteristics.conf
-// and populates |camera_id_to_facing_|, |usb_id_to_camera_id_| and
-// |model_id_to_camera_id_|.
-//
-// Each line in the config file can be:
-// 1. Empty line
-// 2. Line starts with '#': comments
-// 3. Line follows the format:
-// camera[camera_id].[root_level_attribute]=[value] OR
-// camera[camera_id].module[module_id].[module_level_attribute]=[value]
-//
-// There are several assumptions of the config file:
-//  1. One camera ID has exactly one lens_facing attribute, at root level.
-//  2. usb_path is specified at module level. usb_path may not present at all,
-//  but if it presents, the same usb_path does not appear accross different
-//  camera IDs.
-//  3. usb_vid_pid is specified at module level. If usb_path does not present,
-//  each module needs to have one unique usb_vid_pid.
-//
-// Example of the config file:
-//  camera0.lens_facing=0
-//  camera0.sensor_orientation=0
-//  camera0.module0.usb_vid_pid=0123:4567
-//  camera0.module0.horizontal_view_angle=68.4
-//  camera0.module0.lens_info_available_focal_lengths=1.64
-//  camera0.module0.lens_info_minimum_focus_distance=0.22
-//  camera0.module0.lens_info_optimal_focus_distance=0.5
-//  camera0.module0.vertical_view_angle=41.6
-//  camera0.module1.usb_vid_pid=89ab:cdef
-//  camera0.module1.lens_info_available_focal_lengths=1.69,2
-//  camera1.lens_facing=1
-//  camera1.sensor_orientation=180
-class CAPTURE_EXPORT CameraConfigChromeOS {
- public:
-  CameraConfigChromeOS();
-  CAPTURE_EXPORT CameraConfigChromeOS(const std::string& config_file_path);
-  CAPTURE_EXPORT ~CameraConfigChromeOS();
-
-  // Get camera facing by specifying USB vid and pid and device path. |model_id|
-  // should be formatted as "vid:pid". |device_id| is something like
-  // "/dev/video2". It first tries to match usb path, obtained from |device_id|.
-  // If fails, |model_id| is then used.
-  CAPTURE_EXPORT VideoFacingMode
-  GetCameraFacing(const std::string& device_id,
-                  const std::string& model_id) const;
-  int GetOrientation(const std::string& device_id,
-                     const std::string& model_id) const;
-
-  static const VideoFacingMode kLensFacingDefault =
-      VideoFacingMode::MEDIA_VIDEO_FACING_NONE;
-
- private:
-  std::string GetUsbId(const std::string& device_id) const;
-  int GetCameraId(const std::string& device_id,
-                  const std::string& model_id) const;
-  // Read file content and populate |camera_id_to_facing_|,
-  // |usb_id_to_camera_id_| and |model_id_to_camera_id_|.
-  void InitializeDeviceInfo(const std::string& config_file_path);
-
-  std::unordered_map<int, VideoFacingMode> camera_id_to_facing_;
-  std::unordered_map<int, int> camera_id_to_orientation_;
-  std::unordered_map<std::string, int> usb_id_to_camera_id_;
-  std::unordered_map<std::string, int> model_id_to_camera_id_;
-};
-
-}  // namespace media
-
-#endif  // MEDIA_CAPTURE_VIDEO_LINUX_CAMERA_CONFIG_CHROMEOS_H_
diff --git a/media/capture/video/linux/camera_config_chromeos_unittest.cc b/media/capture/video/linux/camera_config_chromeos_unittest.cc
deleted file mode 100644
index 9fa1d01..0000000
--- a/media/capture/video/linux/camera_config_chromeos_unittest.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <string>
-
-#include "base/files/file.h"
-#include "base/files/file_util.h"
-#include "media/capture/video/linux/camera_config_chromeos.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace media {
-
-namespace {
-
-const char kConfigFileContent[] =
-    "camera0.lens_facing=1\ncamera0.sensor_orientation=90\ncamera0.module0.usb_"
-    "vid_pid=04f2:b53a\n";
-}
-
-TEST(CameraConfigChromeOSTest, ParseSuccessfully) {
-  base::FilePath conf_path;
-  ASSERT_TRUE(base::CreateTemporaryFile(&conf_path));
-  base::WriteFile(conf_path, kConfigFileContent, sizeof(kConfigFileContent));
-
-  CameraConfigChromeOS camera_config(conf_path.value());
-  EXPECT_EQ(VideoFacingMode::MEDIA_VIDEO_FACING_ENVIRONMENT,
-            camera_config.GetCameraFacing(std::string("/dev/video2"),
-                                          std::string("04f2:b53a")));
-  EXPECT_EQ(90, camera_config.GetOrientation(std::string("/dev/video2"),
-                                             std::string("04f2:b53a")));
-}
-
-TEST(CameraConfigChromeOSTest, ConfigFileNotExist) {
-  CameraConfigChromeOS camera_config(std::string("file_not_exist"));
-  EXPECT_EQ(VideoFacingMode::MEDIA_VIDEO_FACING_NONE,
-            camera_config.GetCameraFacing(std::string("/dev/video2"),
-                                          std::string("04f2:b53a")));
-  EXPECT_EQ(0, camera_config.GetOrientation(std::string("/dev/video2"),
-                                            std::string("04f2:b53a")));
-}
-
-}  // namespace media
diff --git a/media/capture/video/linux/fake_device_provider.cc b/media/capture/video/linux/fake_device_provider.cc
index a8c7972..581c260 100644
--- a/media/capture/video/linux/fake_device_provider.cc
+++ b/media/capture/video/linux/fake_device_provider.cc
@@ -52,15 +52,4 @@
   return iter->display_name();
 }
 
-VideoFacingMode FakeDeviceProvider::GetCameraFacing(
-    const std::string& device_id,
-    const std::string& model_id) {
-  return MEDIA_VIDEO_FACING_NONE;
-}
-
-int FakeDeviceProvider::GetOrientation(const std::string& device_id,
-                                       const std::string& model_id) {
-  return 0;
-}
-
 }  // namespace media
diff --git a/media/capture/video/linux/fake_device_provider.h b/media/capture/video/linux/fake_device_provider.h
index 15b95f5..a98648e 100644
--- a/media/capture/video/linux/fake_device_provider.h
+++ b/media/capture/video/linux/fake_device_provider.h
@@ -25,10 +25,6 @@
   void GetDeviceIds(std::vector<std::string>* target_container) override;
   std::string GetDeviceModelId(const std::string& device_id) override;
   std::string GetDeviceDisplayName(const std::string& device_id) override;
-  VideoFacingMode GetCameraFacing(const std::string& device_id,
-                                  const std::string& model_id) override;
-  int GetOrientation(const std::string& device_id,
-                     const std::string& model_id) override;
 
  private:
   std::vector<VideoCaptureDeviceDescriptor> descriptors_;
diff --git a/media/capture/video/linux/v4l2_capture_delegate_unittest.cc b/media/capture/video/linux/v4l2_capture_delegate_unittest.cc
index 061e9c9..710f5ad 100644
--- a/media/capture/video/linux/v4l2_capture_delegate_unittest.cc
+++ b/media/capture/video/linux/v4l2_capture_delegate_unittest.cc
@@ -194,7 +194,7 @@
 }  // anonymous namespace
 
 // Fails on Linux, see crbug/732355
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
+#if defined(OS_LINUX)
 #define MAYBE_CreateAndDestroyAndVerifyControls \
   DISABLED_CreateAndDestroyAndVerifyControls
 #else
diff --git a/media/capture/video/linux/video_capture_device_chromeos.cc b/media/capture/video/linux/video_capture_device_chromeos.cc
deleted file mode 100644
index 8fd1829..0000000
--- a/media/capture/video/linux/video_capture_device_chromeos.cc
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "media/capture/video/linux/video_capture_device_chromeos.h"
-
-#include <stdint.h>
-
-#include "base/bind.h"
-#include "base/macros.h"
-#include "base/memory/ref_counted.h"
-#include "base/single_thread_task_runner.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "ui/display/display.h"
-#include "ui/display/display_observer.h"
-#include "ui/display/screen.h"
-
-namespace media {
-
-VideoCaptureDeviceChromeOS::VideoCaptureDeviceChromeOS(
-    const ChromeOSDeviceCameraConfig& camera_config,
-    scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
-    scoped_refptr<V4L2CaptureDevice> v4l2,
-    const VideoCaptureDeviceDescriptor& device_descriptor)
-    : VideoCaptureDeviceLinux(std::move(v4l2), device_descriptor),
-      camera_config_(camera_config),
-      screen_observer_delegate_(
-          ScreenObserverDelegate::Create(this, ui_task_runner)) {}
-
-VideoCaptureDeviceChromeOS::~VideoCaptureDeviceChromeOS() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  screen_observer_delegate_->RemoveObserver();
-}
-
-void VideoCaptureDeviceChromeOS::SetRotation(int rotation) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  if (!camera_config_.rotates_with_device) {
-    rotation = 0;
-  } else if (camera_config_.lens_facing ==
-             VideoFacingMode::MEDIA_VIDEO_FACING_ENVIRONMENT) {
-    // Original frame when |rotation| = 0
-    // -----------------------
-    // |          *          |
-    // |         * *         |
-    // |        *   *        |
-    // |       *******       |
-    // |      *       *      |
-    // |     *         *     |
-    // -----------------------
-    //
-    // |rotation| = 90, this is what back camera sees
-    // -----------------------
-    // |    ********         |
-    // |       *   ****      |
-    // |       *      ***    |
-    // |       *      ***    |
-    // |       *   ****      |
-    // |    ********         |
-    // -----------------------
-    //
-    // |rotation| = 90, this is what front camera sees
-    // -----------------------
-    // |         ********    |
-    // |      ****   *       |
-    // |    ***      *       |
-    // |    ***      *       |
-    // |      ****   *       |
-    // |         ********    |
-    // -----------------------
-    //
-    // Therefore, for back camera, we need to rotate (360 - |rotation|).
-    rotation = (360 - rotation) % 360;
-  }
-  // Take into account camera orientation w.r.t. the display. External cameras
-  // would have camera_orientation_ as 0.
-  rotation = (rotation + camera_config_.camera_orientation) % 360;
-  VideoCaptureDeviceLinux::SetRotation(rotation);
-}
-
-void VideoCaptureDeviceChromeOS::SetDisplayRotation(
-    const display::Display& display) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  if (display.IsInternal())
-    SetRotation(display.rotation() * 90);
-}
-
-}  // namespace media
diff --git a/media/capture/video/linux/video_capture_device_chromeos.h b/media/capture/video/linux/video_capture_device_chromeos.h
deleted file mode 100644
index 1347166..0000000
--- a/media/capture/video/linux/video_capture_device_chromeos.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef MEDIA_CAPTURE_VIDEO_LINUX_VIDEO_CAPTURE_DEVICE_CHROMEOS_H_
-#define MEDIA_CAPTURE_VIDEO_LINUX_VIDEO_CAPTURE_DEVICE_CHROMEOS_H_
-
-#include "base/macros.h"
-#include "base/single_thread_task_runner.h"
-#include "media/capture/video/chromeos/display_rotation_observer.h"
-#include "media/capture/video/linux/video_capture_device_linux.h"
-
-namespace display {
-class Display;
-}  // namespace display
-
-namespace media {
-
-struct ChromeOSDeviceCameraConfig {
-  ChromeOSDeviceCameraConfig(VideoFacingMode lens_facing,
-                             int camera_orientation)
-      : lens_facing(lens_facing),
-        camera_orientation(camera_orientation),
-        // External cameras have lens_facing as MEDIA_VIDEO_FACING_NONE.
-        // We don't want to rotate the frame even if the device rotates.
-        rotates_with_device(lens_facing !=
-                            VideoFacingMode::MEDIA_VIDEO_FACING_NONE) {}
-
-  const VideoFacingMode lens_facing;
-  const int camera_orientation;
-  // Whether the incoming frames should rotate when the device rotates.
-  const bool rotates_with_device;
-};
-
-// This class is functionally the same as VideoCaptureDeviceLinux, with the
-// exception that it is aware of the orientation of the internal Display.  When
-// the internal Display is rotated, the frames captured are rotated to match.
-class VideoCaptureDeviceChromeOS : public VideoCaptureDeviceLinux,
-                                   public DisplayRotationObserver {
- public:
-  VideoCaptureDeviceChromeOS(
-      const ChromeOSDeviceCameraConfig& camera_config,
-      scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
-      scoped_refptr<V4L2CaptureDevice> v4l2,
-      const VideoCaptureDeviceDescriptor& device_descriptor);
-  ~VideoCaptureDeviceChromeOS() override;
-
- protected:
-  void SetRotation(int rotation) override;
-
- private:
-  // DisplayRotationObserver implementation.
-  void SetDisplayRotation(const display::Display& display) override;
-
-  const ChromeOSDeviceCameraConfig camera_config_;
-  scoped_refptr<ScreenObserverDelegate> screen_observer_delegate_;
-
-  SEQUENCE_CHECKER(sequence_checker_);
-
-  DISALLOW_IMPLICIT_CONSTRUCTORS(VideoCaptureDeviceChromeOS);
-};
-
-}  // namespace media
-
-#endif  // MEDIA_CAPTURE_VIDEO_LINUX_VIDEO_CAPTURE_DEVICE_CHROMEOS_H_
diff --git a/media/capture/video/linux/video_capture_device_factory_linux.cc b/media/capture/video/linux/video_capture_device_factory_linux.cc
index 677d733..26d3d11c 100644
--- a/media/capture/video/linux/video_capture_device_factory_linux.cc
+++ b/media/capture/video/linux/video_capture_device_factory_linux.cc
@@ -18,7 +18,6 @@
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "build/build_config.h"
-#include "build/chromeos_buildflags.h"
 #include "media/capture/video/linux/scoped_v4l2_device_fd.h"
 #include "media/capture/video/linux/video_capture_device_linux.h"
 
@@ -28,11 +27,6 @@
 #include <linux/videodev2.h>
 #endif
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-#include "media/capture/video/linux/camera_config_chromeos.h"
-#include "media/capture/video/linux/video_capture_device_chromeos.h"
-#endif
-
 namespace media {
 
 namespace {
@@ -53,13 +47,6 @@
 const char kInterfacePathTemplate[] =
     "/sys/class/video4linux/%s/device/interface";
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-static CameraConfigChromeOS* GetCameraConfig() {
-  static CameraConfigChromeOS* config = new CameraConfigChromeOS();
-  return config;
-}
-#endif
-
 bool ReadIdFile(const std::string& path, std::string* id) {
   char id_buf[kVidPidSize];
   FILE* file = fopen(path.c_str(), "rb");
@@ -122,26 +109,6 @@
     }
     return display_name;
   }
-
-  VideoFacingMode GetCameraFacing(const std::string& device_id,
-                                  const std::string& model_id) override {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-    return GetCameraConfig()->GetCameraFacing(device_id, model_id);
-#else
-    NOTREACHED();
-    return MEDIA_VIDEO_FACING_NONE;
-#endif
-  }
-
-  int GetOrientation(const std::string& device_id,
-                     const std::string& model_id) override {
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-    return GetCameraConfig()->GetOrientation(device_id, model_id);
-#else
-    NOTREACHED();
-    return 0;
-#endif
-  }
 };
 
 }  // namespace
@@ -166,18 +133,8 @@
 VideoCaptureDeviceFactoryLinux::CreateDevice(
     const VideoCaptureDeviceDescriptor& device_descriptor) {
   DCHECK(thread_checker_.CalledOnValidThread());
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-  ChromeOSDeviceCameraConfig camera_config(
-      device_provider_->GetCameraFacing(device_descriptor.device_id,
-                                        device_descriptor.model_id),
-      device_provider_->GetOrientation(device_descriptor.device_id,
-                                       device_descriptor.model_id));
-  auto self = std::make_unique<VideoCaptureDeviceChromeOS>(
-      camera_config, ui_task_runner_, v4l2_.get(), device_descriptor);
-#else
   auto self =
       std::make_unique<VideoCaptureDeviceLinux>(v4l2_.get(), device_descriptor);
-#endif
 
   // Test opening the device driver. This is to make sure it is available.
   // We will reopen it again in our worker thread when someone
@@ -230,12 +187,7 @@
       if (display_name.empty())
         display_name = reinterpret_cast<char*>(cap.card);
 
-      VideoFacingMode facing_mode =
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-          device_provider_->GetCameraFacing(unique_id, model_id);
-#else
-          VideoFacingMode::MEDIA_VIDEO_FACING_NONE;
-#endif
+      VideoFacingMode facing_mode = VideoFacingMode::MEDIA_VIDEO_FACING_NONE;
 
       VideoCaptureFormats supported_formats;
       GetSupportedFormatsForV4L2BufferType(fd.get(), &supported_formats);
diff --git a/media/capture/video/linux/video_capture_device_factory_linux.h b/media/capture/video/linux/video_capture_device_factory_linux.h
index 9895d212..63ffeef 100644
--- a/media/capture/video/linux/video_capture_device_factory_linux.h
+++ b/media/capture/video/linux/video_capture_device_factory_linux.h
@@ -31,20 +31,6 @@
     virtual void GetDeviceIds(std::vector<std::string>* target_container) = 0;
     virtual std::string GetDeviceModelId(const std::string& device_id) = 0;
     virtual std::string GetDeviceDisplayName(const std::string& device_id) = 0;
-    virtual VideoFacingMode GetCameraFacing(const std::string& device_id,
-                                            const std::string& model_id) = 0;
-    // Get the orientation of the camera. The value is the angle that the camera
-    // image needs to be rotated clockwise so it shows correctly on the display
-    // in its natural orientation. It should be 0, 90, 180, or 270.
-    //
-    // For example, suppose a device has a naturally tall screen. The
-    // back-facing camera sensor is mounted in landscape. You are looking at the
-    // screen. If the top side of the camera sensor is aligned with the right
-    // edge of the screen in natural orientation, the value should be 90. If the
-    // top side of a front-facing camera sensor is aligned with the right of the
-    // screen, the value should be 270.
-    virtual int GetOrientation(const std::string& device_id,
-                               const std::string& model_id) = 0;
   };
 
   explicit VideoCaptureDeviceFactoryLinux(
diff --git a/media/capture/video/video_capture_device_unittest.cc b/media/capture/video/video_capture_device_unittest.cc
index f675272..80bdcbb 100644
--- a/media/capture/video/video_capture_device_unittest.cc
+++ b/media/capture/video/video_capture_device_unittest.cc
@@ -475,12 +475,15 @@
 
 // Cause hangs on Windows Debug. http://crbug.com/417824
 #if (defined(OS_WIN) && !defined(NDEBUG))
-#define MAYBE_OpenInvalidDevice DISABLED_OpenInvalidDevice
+#define MAYBE_UsingRealWebcam_OpenInvalidDevice \
+  DISABLED_UsingRealWebcam_OpenInvalidDevice
 #else
-#define MAYBE_OpenInvalidDevice OpenInvalidDevice
+#define MAYBE_UsingRealWebcam_OpenInvalidDevice \
+  UsingRealWebcam_OpenInvalidDevice
 #endif
 // Tries to allocate an invalid device and verifies it doesn't work.
-WRAPPED_TEST_P(VideoCaptureDeviceTest, MAYBE_OpenInvalidDevice) {
+WRAPPED_TEST_P(VideoCaptureDeviceTest,
+               MAYBE_UsingRealWebcam_OpenInvalidDevice) {
   RunTestCase(
       base::BindOnce(&VideoCaptureDeviceTest::RunOpenInvalidDeviceTestCase,
                      base::Unretained(this)));
@@ -702,8 +705,10 @@
   device->StopAndDeAllocate();
 }
 
-#define MAYBE_NoCameraSupportsPixelFormatMax NoCameraSupportsPixelFormatMax
-WRAPPED_TEST_P(VideoCaptureDeviceTest, MAYBE_NoCameraSupportsPixelFormatMax) {
+#define MAYBE_UsingRealWebcam_NoCameraSupportsPixelFormatMax \
+  UsingRealWebcam_NoCameraSupportsPixelFormatMax
+WRAPPED_TEST_P(VideoCaptureDeviceTest,
+               MAYBE_UsingRealWebcam_NoCameraSupportsPixelFormatMax) {
   RunTestCase(base::BindOnce(
       &VideoCaptureDeviceTest::RunNoCameraSupportsPixelFormatMaxTestCase,
       base::Unretained(this)));
diff --git a/media/cast/test/simulator.cc b/media/cast/test/simulator.cc
index fe3e426..1ed6393 100644
--- a/media/cast/test/simulator.cc
+++ b/media/cast/test/simulator.cc
@@ -45,6 +45,7 @@
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/containers/queue.h"
+#include "base/containers/span.h"
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/files/memory_mapped_file.h"
@@ -227,19 +228,19 @@
       &header, "FRAME W%d H%d\n",
       frame->coded_size().width(),
       frame->coded_size().height());
-  AppendToFile(path, header.data(), header.size());
+  AppendToFile(path, header);
   AppendToFile(path,
-      reinterpret_cast<char*>(frame->data(media::VideoFrame::kYPlane)),
-      frame->stride(media::VideoFrame::kYPlane) *
-          frame->rows(media::VideoFrame::kYPlane));
+               base::make_span(frame->data(media::VideoFrame::kYPlane),
+                               frame->stride(media::VideoFrame::kYPlane) *
+                                   frame->rows(media::VideoFrame::kYPlane)));
   AppendToFile(path,
-      reinterpret_cast<char*>(frame->data(media::VideoFrame::kUPlane)),
-      frame->stride(media::VideoFrame::kUPlane) *
-          frame->rows(media::VideoFrame::kUPlane));
+               base::make_span(frame->data(media::VideoFrame::kUPlane),
+                               frame->stride(media::VideoFrame::kUPlane) *
+                                   frame->rows(media::VideoFrame::kUPlane)));
   AppendToFile(path,
-      reinterpret_cast<char*>(frame->data(media::VideoFrame::kVPlane)),
-      frame->stride(media::VideoFrame::kVPlane) *
-          frame->rows(media::VideoFrame::kVPlane));
+               base::make_span(frame->data(media::VideoFrame::kVPlane),
+                               frame->stride(media::VideoFrame::kVPlane) *
+                                   frame->rows(media::VideoFrame::kVPlane)));
 }
 
 // A container to save output of GotVideoFrame() for computation based
@@ -451,7 +452,7 @@
 
     // Write YUV4MPEG2 header.
     const std::string header("YUV4MPEG2 W1280 H720 F30000:1001 Ip A1:1 C420\n");
-    AppendToFile(yuv_output_path, header.data(), header.size());
+    AppendToFile(yuv_output_path, header);
   }
 
   // Start sending.
diff --git a/media/gpu/test/image_processor/image_processor_client.cc b/media/gpu/test/image_processor/image_processor_client.cc
index 19a34b53..9f3f802 100644
--- a/media/gpu/test/image_processor/image_processor_client.cc
+++ b/media/gpu/test/image_processor/image_processor_client.cc
@@ -161,11 +161,11 @@
     ASSERT_TRUE_OR_RETURN_NULLPTR(
         input_storage_type == VideoFrame::STORAGE_DMABUFS ||
         input_storage_type == VideoFrame::STORAGE_GPU_MEMORY_BUFFER);
-    // NV12 and YV12 are the only formats that can be allocated with
+    // NV12 is the only format that can be allocated with
     // gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE. So
-    // gfx::BufferUsage::GPU_READ_CPU_READ_WRITE is specified for RGB formats.
+    // gfx::BufferUsage::GPU_READ_CPU_READ_WRITE is specified for other formats.
     gfx::BufferUsage dst_buffer_usage =
-        IsYuvPlanar(input_image.PixelFormat())
+        (PIXEL_FORMAT_NV12 == input_image.PixelFormat())
             ? gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE
             : gfx::BufferUsage::GPU_READ_CPU_READ_WRITE;
     return CloneVideoFrame(gpu_memory_buffer_factory_.get(),
diff --git a/net/base/data_url.cc b/net/base/data_url.cc
index d5314a9..82e1dbc4 100644
--- a/net/base/data_url.cc
+++ b/net/base/data_url.cc
@@ -110,7 +110,7 @@
     // of the data, and should be stripped. Otherwise, the escaped whitespace
     // could be part of the payload, so don't strip it.
     if (base64_encoded) {
-      std::string unescaped_body = UnescapeBinaryURLComponent(raw_body);
+      std::string unescaped_body = base::UnescapeBinaryURLComponent(raw_body);
 
       // Strip spaces, which aren't allowed in Base64 encoding.
       base::EraseIf(unescaped_body, base::IsAsciiWhitespace<char>);
@@ -138,7 +138,7 @@
         raw_body = temp;
       }
 
-      *data = UnescapeBinaryURLComponent(raw_body);
+      *data = base::UnescapeBinaryURLComponent(raw_body);
     }
   }
 
diff --git a/net/log/net_log_values.cc b/net/log/net_log_values.cc
index cc8bb8c..a0651c4 100644
--- a/net/log/net_log_values.cc
+++ b/net/log/net_log_values.cc
@@ -58,8 +58,8 @@
 
 base::Value NetLogBinaryValue(const void* bytes, size_t length) {
   std::string b64;
-  Base64Encode(base::StringPiece(reinterpret_cast<const char*>(bytes), length),
-               &b64);
+  base::Base64Encode(
+      base::StringPiece(reinterpret_cast<const char*>(bytes), length), &b64);
   return base::Value(std::move(b64));
 }
 
diff --git a/net/quic/quic_session_key.cc b/net/quic/quic_session_key.cc
index 892032a3..8b95951 100644
--- a/net/quic/quic_session_key.cc
+++ b/net/quic/quic_session_key.cc
@@ -76,8 +76,4 @@
          secure_dns_policy_ == other.secure_dns_policy_;
 }
 
-size_t QuicSessionKey::EstimateMemoryUsage() const {
-  return server_id_.EstimateMemoryUsage();
-}
-
 }  // namespace net
diff --git a/net/quic/quic_session_key.h b/net/quic/quic_session_key.h
index 90a99c2..c1138f1 100644
--- a/net/quic/quic_session_key.h
+++ b/net/quic/quic_session_key.h
@@ -68,8 +68,6 @@
 
   SecureDnsPolicy secure_dns_policy() const { return secure_dns_policy_; }
 
-  size_t EstimateMemoryUsage() const;
-
  private:
   quic::QuicServerId server_id_;
   SocketTag socket_tag_;
diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
index 12fab73..e212a29 100644
--- a/net/quic/quic_stream_factory.cc
+++ b/net/quic/quic_stream_factory.cc
@@ -76,12 +76,6 @@
 
 namespace net {
 
-// Returns the estimate of dynamically allocated memory of an IPEndPoint in
-// bytes. Used in tracking IPAliasMap.
-size_t EstimateMemoryUsage(const IPEndPoint& end_point) {
-  return 0;
-}
-
 namespace {
 
 enum CreateSessionFailure {
@@ -352,9 +346,6 @@
 
   void PopulateNetErrorDetails(NetErrorDetails* details) const;
 
-  // Returns the estimate of dynamically allocated memory in bytes.
-  size_t EstimateMemoryUsage() const;
-
   void AddRequest(QuicStreamRequest* request) {
     stream_requests_.insert(request);
     if (!host_resolution_finished_) {
@@ -687,10 +678,6 @@
   details->quic_connection_error = session_->error();
 }
 
-size_t QuicStreamFactory::Job::EstimateMemoryUsage() const {
-  return base::trace_event::EstimateMemoryUsage(key_);
-}
-
 int QuicStreamFactory::Job::DoResolveHost() {
   dns_resolution_start_time_ = base::TimeTicks::Now();
 
@@ -1097,11 +1084,6 @@
          session_key_ == other.session_key_;
 }
 
-size_t QuicStreamFactory::QuicSessionAliasKey::EstimateMemoryUsage() const {
-  return base::trace_event::EstimateMemoryUsage(destination_) +
-         base::trace_event::EstimateMemoryUsage(session_key_.server_id());
-}
-
 QuicStreamFactory::QuicStreamFactory(
     NetLog* net_log,
     HostResolver* host_resolver,
@@ -1669,17 +1651,6 @@
     return;
   base::trace_event::MemoryAllocatorDump* factory_dump =
       pmd->CreateAllocatorDump(parent_absolute_name + "/quic_stream_factory");
-  size_t memory_estimate =
-      base::trace_event::EstimateMemoryUsage(all_sessions_) +
-      base::trace_event::EstimateMemoryUsage(active_sessions_) +
-      base::trace_event::EstimateMemoryUsage(session_aliases_) +
-      base::trace_event::EstimateMemoryUsage(ip_aliases_) +
-      base::trace_event::EstimateMemoryUsage(session_peer_ip_) +
-      base::trace_event::EstimateMemoryUsage(gone_away_aliases_) +
-      base::trace_event::EstimateMemoryUsage(active_jobs_);
-  factory_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize,
-                          base::trace_event::MemoryAllocatorDump::kUnitsBytes,
-                          memory_estimate);
   factory_dump->AddScalar("all_sessions",
                           base::trace_event::MemoryAllocatorDump::kUnitsObjects,
                           all_sessions_.size());
diff --git a/net/quic/quic_stream_factory.h b/net/quic/quic_stream_factory.h
index 0bcceda7..d825a1f1 100644
--- a/net/quic/quic_stream_factory.h
+++ b/net/quic/quic_stream_factory.h
@@ -229,7 +229,6 @@
     const QuicSessionKey& session_key() const { return session_key_; }
 
     // Returns the estimate of dynamically allocated memory in bytes.
-    size_t EstimateMemoryUsage() const;
 
    private:
     HostPortPair destination_;
diff --git a/net/spdy/buffered_spdy_framer.cc b/net/spdy/buffered_spdy_framer.cc
index 2962dfa..3d612c6 100644
--- a/net/spdy/buffered_spdy_framer.cc
+++ b/net/spdy/buffered_spdy_framer.cc
@@ -327,18 +327,6 @@
   return spdy_framer_.header_encoder_table_size();
 }
 
-size_t BufferedSpdyFramer::EstimateMemoryUsage() const {
-  return base::trace_event::EstimateMemoryUsage(spdy_framer_) +
-         base::trace_event::EstimateMemoryUsage(deframer_) +
-         base::trace_event::EstimateMemoryUsage(coalescer_) +
-         base::trace_event::EstimateMemoryUsage(control_frame_fields_) +
-         base::trace_event::EstimateMemoryUsage(goaway_fields_);
-}
-
 BufferedSpdyFramer::ControlFrameFields::ControlFrameFields() = default;
 
-size_t BufferedSpdyFramer::GoAwayFields::EstimateMemoryUsage() const {
-  return base::trace_event::EstimateMemoryUsage(debug_data);
-}
-
 }  // namespace net
diff --git a/net/spdy/buffered_spdy_framer.h b/net/spdy/buffered_spdy_framer.h
index 10de291..d1ef516 100644
--- a/net/spdy/buffered_spdy_framer.h
+++ b/net/spdy/buffered_spdy_framer.h
@@ -239,9 +239,6 @@
   // Returns the maximum size of the header encoder compression table.
   uint32_t header_encoder_table_size() const;
 
-  // Returns the estimate of dynamically allocated memory in bytes.
-  size_t EstimateMemoryUsage() const;
-
  private:
   spdy::SpdyFramer spdy_framer_;
   http2::Http2DecoderAdapter deframer_;
@@ -274,9 +271,6 @@
     spdy::SpdyStreamId last_accepted_stream_id;
     spdy::SpdyErrorCode error_code;
     std::string debug_data;
-
-    // Returns the estimate of dynamically allocated memory in bytes.
-    size_t EstimateMemoryUsage() const;
   };
   std::unique_ptr<GoAwayFields> goaway_fields_;
 
diff --git a/net/spdy/header_coalescer.cc b/net/spdy/header_coalescer.cc
index 69d5c01..cc5b91f0 100644
--- a/net/spdy/header_coalescer.cc
+++ b/net/spdy/header_coalescer.cc
@@ -62,10 +62,6 @@
   return std::move(headers_);
 }
 
-size_t HeaderCoalescer::EstimateMemoryUsage() const {
-  return base::trace_event::EstimateMemoryUsage(headers_);
-}
-
 bool HeaderCoalescer::AddHeader(base::StringPiece key,
                                 base::StringPiece value) {
   if (key.empty()) {
diff --git a/net/spdy/header_coalescer.h b/net/spdy/header_coalescer.h
index 5369d34..dee65e0 100644
--- a/net/spdy/header_coalescer.h
+++ b/net/spdy/header_coalescer.h
@@ -29,9 +29,6 @@
   spdy::Http2HeaderBlock release_headers();
   bool error_seen() const { return error_seen_; }
 
-  // Returns the estimate of dynamically allocated memory in bytes.
-  size_t EstimateMemoryUsage() const;
-
  private:
   // Helper to add a header. Return true on success.
   bool AddHeader(base::StringPiece key, base::StringPiece value);
diff --git a/net/spdy/spdy_buffer.cc b/net/spdy/spdy_buffer.cc
index dbec2fa..7573db1 100644
--- a/net/spdy/spdy_buffer.cc
+++ b/net/spdy/spdy_buffer.cc
@@ -97,11 +97,6 @@
   return base::MakeRefCounted<SharedFrameIOBuffer>(shared_frame_, offset_);
 }
 
-size_t SpdyBuffer::EstimateMemoryUsage() const {
-  // TODO(xunjieli): Estimate |consume_callbacks_|. https://crbug.com/669108.
-  return base::trace_event::EstimateMemoryUsage(shared_frame_->data);
-}
-
 void SpdyBuffer::ConsumeHelper(size_t consume_size,
                                ConsumeSource consume_source) {
   DCHECK_GE(consume_size, 1u);
diff --git a/net/spdy/spdy_buffer.h b/net/spdy/spdy_buffer.h
index a8910ea..93d8c5c8 100644
--- a/net/spdy/spdy_buffer.h
+++ b/net/spdy/spdy_buffer.h
@@ -86,9 +86,6 @@
   // http://crbug.com/249725 .)
   scoped_refptr<IOBuffer> GetIOBufferForRemainingData();
 
-  // Returns the estimate of dynamically allocated memory in bytes.
-  size_t EstimateMemoryUsage() const;
-
  private:
   void ConsumeHelper(size_t consume_size, ConsumeSource consume_source);
 
diff --git a/net/spdy/spdy_buffer_producer.cc b/net/spdy/spdy_buffer_producer.cc
index b5fd442f..b328e603 100644
--- a/net/spdy/spdy_buffer_producer.cc
+++ b/net/spdy/spdy_buffer_producer.cc
@@ -27,8 +27,4 @@
   return std::move(buffer_);
 }
 
-size_t SimpleBufferProducer::EstimateMemoryUsage() const {
-  return base::trace_event::EstimateMemoryUsage(buffer_);
-}
-
 }  // namespace net
diff --git a/net/spdy/spdy_buffer_producer.h b/net/spdy/spdy_buffer_producer.h
index 5b18c187..8d09f7b 100644
--- a/net/spdy/spdy_buffer_producer.h
+++ b/net/spdy/spdy_buffer_producer.h
@@ -27,9 +27,6 @@
 
   virtual ~SpdyBufferProducer();
 
-  // Returns the estimate of dynamically allocated memory in bytes.
-  virtual size_t EstimateMemoryUsage() const = 0;
-
  private:
   DISALLOW_COPY_AND_ASSIGN(SpdyBufferProducer);
 };
@@ -43,8 +40,6 @@
 
   std::unique_ptr<SpdyBuffer> ProduceBuffer() override;
 
-  size_t EstimateMemoryUsage() const override;
-
  private:
   std::unique_ptr<SpdyBuffer> buffer_;
 
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
index 91964ee7..f549d11 100644
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -150,7 +150,7 @@
     return kVaryIsEmpty;
   if (value == kStar)
     return kVaryIsStar;
-  std::string lowercase_value = ToLowerASCII(value);
+  std::string lowercase_value = base::ToLowerASCII(value);
   if (lowercase_value == kAcceptEncoding)
     return kVaryIsAcceptEncoding;
   // Both comma and newline delimiters occur in the wild.
@@ -189,11 +189,6 @@
     return std::make_unique<SpdyBuffer>(std::move(serialized_frame));
   }
 
-  size_t EstimateMemoryUsage() const override {
-    return base::trace_event::EstimateMemoryUsage(
-        greased_http2_frame_->payload);
-  }
-
  private:
   base::WeakPtr<SpdyStream> stream_;
   const SpdySessionPool::GreasedHttp2Frame* const greased_http2_frame_;
@@ -1798,9 +1793,6 @@
          base::trace_event::EstimateMemoryUsage(pooled_aliases_) +
          base::trace_event::EstimateMemoryUsage(active_streams_) +
          base::trace_event::EstimateMemoryUsage(created_streams_) +
-         base::trace_event::EstimateMemoryUsage(write_queue_) +
-         base::trace_event::EstimateMemoryUsage(in_flight_write_) +
-         base::trace_event::EstimateMemoryUsage(buffered_spdy_framer_) +
          base::trace_event::EstimateMemoryUsage(initial_settings_) +
          base::trace_event::EstimateMemoryUsage(stream_send_unstall_queue_) +
          base::trace_event::EstimateMemoryUsage(priority_dependency_state_);
diff --git a/net/spdy/spdy_session_pool.cc b/net/spdy/spdy_session_pool.cc
index 53a1201..6db3e9e1 100644
--- a/net/spdy/spdy_session_pool.cc
+++ b/net/spdy/spdy_session_pool.cc
@@ -578,9 +578,6 @@
     if (is_session_active)
       num_active_sessions++;
   }
-  total_size +=
-      base::trace_event::EstimateMemoryUsage(spdy::ObtainHpackStaticTable()) +
-      base::trace_event::EstimateMemoryUsage(push_promise_index_);
   base::trace_event::MemoryAllocatorDump* dump =
       pmd->CreateAllocatorDump(base::StringPrintf(
           "%s/spdy_session_pool", parent_dump_absolute_name.c_str()));
diff --git a/net/spdy/spdy_stream.cc b/net/spdy/spdy_stream.cc
index baafa31..12c03e51 100644
--- a/net/spdy/spdy_stream.cc
+++ b/net/spdy/spdy_stream.cc
@@ -85,7 +85,6 @@
     DCHECK_GT(stream_->stream_id(), 0u);
     return std::make_unique<SpdyBuffer>(stream_->ProduceHeadersFrame());
   }
-  size_t EstimateMemoryUsage() const override { return 0; }
 
  private:
   const base::WeakPtr<SpdyStream> stream_;
@@ -837,15 +836,6 @@
   return result;
 }
 
-size_t SpdyStream::EstimateMemoryUsage() const {
-  // TODO(xunjieli): https://crbug.com/669108. Estimate |pending_send_data_|
-  // once scoped_refptr support is in.
-  return base::trace_event::EstimateMemoryUsage(url_) +
-         base::trace_event::EstimateMemoryUsage(request_headers_) +
-         base::trace_event::EstimateMemoryUsage(pending_recv_data_) +
-         base::trace_event::EstimateMemoryUsage(response_headers_);
-}
-
 void SpdyStream::QueueNextDataFrame() {
   // Until the request has been completely sent, we cannot be sure
   // that our stream_id is correct.
diff --git a/net/spdy/spdy_write_queue.cc b/net/spdy/spdy_write_queue.cc
index 622fcd4..3dba92ff 100644
--- a/net/spdy/spdy_write_queue.cc
+++ b/net/spdy/spdy_write_queue.cc
@@ -44,10 +44,6 @@
 SpdyWriteQueue::PendingWrite& SpdyWriteQueue::PendingWrite::operator=(
     PendingWrite&& other) = default;
 
-size_t SpdyWriteQueue::PendingWrite::EstimateMemoryUsage() const {
-  return base::trace_event::EstimateMemoryUsage(frame_producer);
-}
-
 SpdyWriteQueue::SpdyWriteQueue() : removing_writes_(false) {}
 
 SpdyWriteQueue::~SpdyWriteQueue() {
@@ -224,8 +220,4 @@
   num_queued_capped_frames_ = 0;
 }
 
-size_t SpdyWriteQueue::EstimateMemoryUsage() const {
-  return base::trace_event::EstimateMemoryUsage(queue_);
-}
-
 }  // namespace net
diff --git a/net/spdy/spdy_write_queue.h b/net/spdy/spdy_write_queue.h
index 5556961..a39ab4a 100644
--- a/net/spdy/spdy_write_queue.h
+++ b/net/spdy/spdy_write_queue.h
@@ -74,9 +74,6 @@
   // Removes all pending writes.
   void Clear();
 
-  // Returns the estimate of dynamically allocated memory in bytes.
-  size_t EstimateMemoryUsage() const;
-
   // Returns the number of currently queued capped frames including all
   // priorities.
   int num_queued_capped_frames() const { return num_queued_capped_frames_; }
@@ -100,8 +97,6 @@
     PendingWrite(PendingWrite&& other);
     PendingWrite& operator=(PendingWrite&& other);
 
-    size_t EstimateMemoryUsage() const;
-
    private:
     DISALLOW_COPY_AND_ASSIGN(PendingWrite);
   };
diff --git a/net/spdy/spdy_write_queue_unittest.cc b/net/spdy/spdy_write_queue_unittest.cc
index c8f2296..3cc5623 100644
--- a/net/spdy/spdy_write_queue_unittest.cc
+++ b/net/spdy/spdy_write_queue_unittest.cc
@@ -62,11 +62,6 @@
     return std::move(buffer_);
   }
 
-  size_t EstimateMemoryUsage() const override {
-    NOTREACHED();
-    return 0;
-  }
-
   static void ConsumeCallback(SpdyWriteQueue* queue,
                               size_t size,
                               SpdyBuffer::ConsumeSource source) {
diff --git a/remoting/host/linux/certificate_watcher_unittest.cc b/remoting/host/linux/certificate_watcher_unittest.cc
index ede88ec..4e5f1e9 100644
--- a/remoting/host/linux/certificate_watcher_unittest.cc
+++ b/remoting/host/linux/certificate_watcher_unittest.cc
@@ -85,8 +85,7 @@
     base::FilePath path = temp_dir_.GetPath().AppendASCII(filename);
 
     if (base::PathExists(path)) {
-      EXPECT_TRUE(base::AppendToFile(path, testWriteString.c_str(),
-                                     testWriteString.length()));
+      EXPECT_TRUE(base::AppendToFile(path, testWriteString));
     } else {
       EXPECT_EQ(static_cast<int>(testWriteString.length()),
                 base::WriteFile(path, testWriteString.c_str(),
diff --git a/services/device/hid/hid_connection_unittest.cc b/services/device/hid/hid_connection_unittest.cc
index b2f14189..4012214 100644
--- a/services/device/hid/hid_connection_unittest.cc
+++ b/services/device/hid/hid_connection_unittest.cc
@@ -14,7 +14,7 @@
 #include "base/callback.h"
 #include "base/memory/ref_counted_memory.h"
 #include "base/run_loop.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/task_environment.h"
 #include "base/test/test_io_thread.h"
@@ -39,7 +39,7 @@
 class DeviceCatcher : HidService::Observer {
  public:
   DeviceCatcher(HidService* hid_service, const std::u16string& serial_number)
-      : serial_number_(base::UTF16ToUTF8(serial_number)), observer_(this) {
+      : serial_number_(base::UTF16ToUTF8(serial_number)) {
     hid_service->GetDevices(
         base::BindOnce(&DeviceCatcher::OnEnumerationComplete,
                        base::Unretained(this), hid_service));
@@ -47,7 +47,7 @@
 
   const std::string& WaitForDevice() {
     run_loop_.Run();
-    observer_.RemoveAll();
+    observation_.Reset();
     return device_guid_;
   }
 
@@ -61,7 +61,7 @@
         break;
       }
     }
-    observer_.Add(hid_service);
+    observation_.Observe(hid_service);
   }
 
   void OnDeviceAdded(mojom::HidDeviceInfoPtr device_info) override {
@@ -72,7 +72,7 @@
   }
 
   std::string serial_number_;
-  ScopedObserver<HidService, HidService::Observer> observer_;
+  base::ScopedObservation<HidService, HidService::Observer> observation_{this};
   base::RunLoop run_loop_;
   std::string device_guid_;
 };
diff --git a/services/device/hid/hid_manager_impl.cc b/services/device/hid/hid_manager_impl.cc
index 604f373..0ea50a9c 100644
--- a/services/device/hid/hid_manager_impl.cc
+++ b/services/device/hid/hid_manager_impl.cc
@@ -20,14 +20,14 @@
 base::LazyInstance<std::unique_ptr<HidService>>::Leaky g_hid_service =
     LAZY_INSTANCE_INITIALIZER;
 
-HidManagerImpl::HidManagerImpl() : hid_service_observer_(this) {
+HidManagerImpl::HidManagerImpl() {
   if (g_hid_service.Get())
     hid_service_ = std::move(g_hid_service.Get());
   else
     hid_service_ = HidService::Create();
 
   DCHECK(hid_service_);
-  hid_service_observer_.Add(hid_service_.get());
+  hid_service_observation_.Observe(hid_service_.get());
 }
 
 HidManagerImpl::~HidManagerImpl() {}
diff --git a/services/device/hid/hid_manager_impl.h b/services/device/hid/hid_manager_impl.h
index 7d0c1da..0e6d8c9 100644
--- a/services/device/hid/hid_manager_impl.h
+++ b/services/device/hid/hid_manager_impl.h
@@ -8,7 +8,7 @@
 #include "base/callback.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "mojo/public/cpp/bindings/pending_associated_remote.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/receiver_set.h"
@@ -71,7 +71,8 @@
   std::unique_ptr<HidService> hid_service_;
   mojo::ReceiverSet<mojom::HidManager> receivers_;
   mojo::AssociatedRemoteSet<mojom::HidManagerClient> clients_;
-  ScopedObserver<HidService, HidService::Observer> hid_service_observer_;
+  base::ScopedObservation<HidService, HidService::Observer>
+      hid_service_observation_{this};
 
   base::WeakPtrFactory<HidManagerImpl> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(HidManagerImpl);
diff --git a/services/device/hid/hid_service_win.cc b/services/device/hid/hid_service_win.cc
index be2a765..6d9cd05 100644
--- a/services/device/hid/hid_service_win.cc
+++ b/services/device/hid/hid_service_win.cc
@@ -467,12 +467,11 @@
 HidServiceWin::HidServiceWin()
     : task_runner_(base::SequencedTaskRunnerHandle::Get()),
       blocking_task_runner_(
-          base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)),
-      device_observer_(this) {
+          base::ThreadPool::CreateSequencedTaskRunner(kBlockingTaskTraits)) {
   DeviceMonitorWin* device_monitor =
       DeviceMonitorWin::GetForDeviceInterface(GUID_DEVINTERFACE_HID);
   if (device_monitor)
-    device_observer_.Add(device_monitor);
+    device_observation_.Observe(device_monitor);
 
   blocking_task_runner_->PostTask(
       FROM_HERE, base::BindOnce(&HidServiceWin::EnumerateBlocking,
diff --git a/services/device/hid/hid_service_win.h b/services/device/hid/hid_service_win.h
index 618b892..0073e94 100644
--- a/services/device/hid/hid_service_win.h
+++ b/services/device/hid/hid_service_win.h
@@ -24,7 +24,7 @@
 #include <vector>
 
 #include "base/memory/weak_ptr.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "base/win/scoped_handle.h"
 #include "device/base/device_monitor_win.h"
 #include "services/device/hid/hid_service.h"
@@ -156,7 +156,8 @@
 
   const scoped_refptr<base::SequencedTaskRunner> task_runner_;
   const scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
-  ScopedObserver<DeviceMonitorWin, DeviceMonitorWin::Observer> device_observer_;
+  base::ScopedObservation<DeviceMonitorWin, DeviceMonitorWin::Observer>
+      device_observation_{this};
   base::WeakPtrFactory<HidServiceWin> weak_factory_{this};
 };
 
diff --git a/services/device/hid/input_service_linux.cc b/services/device/hid/input_service_linux.cc
index 508c081..7f51435 100644
--- a/services/device/hid/input_service_linux.cc
+++ b/services/device/hid/input_service_linux.cc
@@ -9,7 +9,7 @@
 #include "base/bind.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/threading/scoped_blocking_call.h"
@@ -95,14 +95,15 @@
   InputServiceLinuxImpl();
   ~InputServiceLinuxImpl() override;
 
-  ScopedObserver<DeviceMonitorLinux, DeviceMonitorLinux::Observer> observer_;
+  base::ScopedObservation<DeviceMonitorLinux, DeviceMonitorLinux::Observer>
+      observation_{this};
 
   DISALLOW_COPY_AND_ASSIGN(InputServiceLinuxImpl);
 };
 
-InputServiceLinuxImpl::InputServiceLinuxImpl() : observer_(this) {
+InputServiceLinuxImpl::InputServiceLinuxImpl() {
   DeviceMonitorLinux* monitor = DeviceMonitorLinux::GetInstance();
-  observer_.Add(monitor);
+  observation_.Observe(monitor);
   monitor->Enumerate(base::BindRepeating(&InputServiceLinuxImpl::OnDeviceAdded,
                                          base::Unretained(this)));
 }
diff --git a/services/device/public/cpp/test/fake_usb_device.cc b/services/device/public/cpp/test/fake_usb_device.cc
index c1c222a..fe95849 100644
--- a/services/device/public/cpp/test/fake_usb_device.cc
+++ b/services/device/public/cpp/test/fake_usb_device.cc
@@ -33,7 +33,7 @@
 
 FakeUsbDevice::~FakeUsbDevice() {
   CloseHandle();
-  observer_.RemoveAll();
+  observation_.Reset();
 }
 
 FakeUsbDevice::FakeUsbDevice(
@@ -43,10 +43,9 @@
     : device_(device),
       blocked_interface_classes_(blocked_interface_classes.begin(),
                                  blocked_interface_classes.end()),
-      observer_(this),
       client_(std::move(client)) {
   DCHECK(device_);
-  observer_.Add(device_.get());
+  observation_.Observe(device_.get());
 
   if (client_) {
     client_.set_disconnect_handler(base::BindOnce(
diff --git a/services/device/public/cpp/test/fake_usb_device.h b/services/device/public/cpp/test/fake_usb_device.h
index 1759f6d..a990c50 100644
--- a/services/device/public/cpp/test/fake_usb_device.h
+++ b/services/device/public/cpp/test/fake_usb_device.h
@@ -14,7 +14,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/remote.h"
@@ -97,7 +97,8 @@
   const scoped_refptr<FakeUsbDeviceInfo> device_;
   const base::flat_set<uint8_t> blocked_interface_classes_;
 
-  ScopedObserver<FakeUsbDeviceInfo, FakeUsbDeviceInfo::Observer> observer_;
+  base::ScopedObservation<FakeUsbDeviceInfo, FakeUsbDeviceInfo::Observer>
+      observation_{this};
 
   bool is_opened_ = false;
 
diff --git a/services/device/serial/serial_device_enumerator_win.cc b/services/device/serial/serial_device_enumerator_win.cc
index 25fc1db..017247f 100644
--- a/services/device/serial/serial_device_enumerator_win.cc
+++ b/services/device/serial/serial_device_enumerator_win.cc
@@ -22,6 +22,7 @@
 #include "base/metrics/histogram_functions.h"
 #include "base/numerics/ranges.h"
 #include "base/scoped_generic.h"
+#include "base/scoped_observation.h"
 #include "base/sequence_checker.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_piece.h"
@@ -154,7 +155,7 @@
     // GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR for enumeration because it
     // doesn't seem to make a difference and ports which aren't enumerable by
     // device interface don't generate WM_DEVICECHANGE events.
-    device_observer_.Add(
+    device_observation_.Observe(
         DeviceMonitorWin::GetForDeviceInterface(GUID_DEVINTERFACE_COMPORT));
   }
 
@@ -182,8 +183,8 @@
   base::WeakPtr<SerialDeviceEnumeratorWin> enumerator_;
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
 
-  ScopedObserver<DeviceMonitorWin, DeviceMonitorWin::Observer> device_observer_{
-      this};
+  base::ScopedObservation<DeviceMonitorWin, DeviceMonitorWin::Observer>
+      device_observation_{this};
 };
 
 SerialDeviceEnumeratorWin::SerialDeviceEnumeratorWin(
diff --git a/services/device/serial/serial_port_manager_impl.cc b/services/device/serial/serial_port_manager_impl.cc
index 06df5ae..6db9f51 100644
--- a/services/device/serial/serial_port_manager_impl.cc
+++ b/services/device/serial/serial_port_manager_impl.cc
@@ -48,7 +48,7 @@
     std::unique_ptr<SerialDeviceEnumerator> fake_enumerator) {
   DCHECK(fake_enumerator);
   enumerator_ = std::move(fake_enumerator);
-  observed_enumerator_.Add(enumerator_.get());
+  observed_enumerator_.AddObservation(enumerator_.get());
 }
 
 void SerialPortManagerImpl::SetBluetoothSerialEnumeratorForTesting(
@@ -56,7 +56,7 @@
         fake_bluetooth_enumerator) {
   DCHECK(fake_bluetooth_enumerator);
   bluetooth_enumerator_ = std::move(fake_bluetooth_enumerator);
-  observed_enumerator_.Add(bluetooth_enumerator_.get());
+  observed_enumerator_.AddObservation(bluetooth_enumerator_.get());
 }
 
 void SerialPortManagerImpl::SetClient(
@@ -67,7 +67,7 @@
 void SerialPortManagerImpl::GetDevices(GetDevicesCallback callback) {
   if (!enumerator_) {
     enumerator_ = SerialDeviceEnumerator::Create(ui_task_runner_);
-    observed_enumerator_.Add(enumerator_.get());
+    observed_enumerator_.AddObservation(enumerator_.get());
   }
   auto devices = enumerator_->GetDevices();
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
@@ -75,7 +75,7 @@
     if (!bluetooth_enumerator_) {
       bluetooth_enumerator_ =
           std::make_unique<BluetoothSerialDeviceEnumerator>();
-      observed_enumerator_.Add(bluetooth_enumerator_.get());
+      observed_enumerator_.AddObservation(bluetooth_enumerator_.get());
     }
     auto bluetooth_devices = bluetooth_enumerator_->GetDevices();
     devices.insert(devices.end(),
@@ -95,7 +95,7 @@
     OpenPortCallback callback) {
   if (!enumerator_) {
     enumerator_ = SerialDeviceEnumerator::Create(ui_task_runner_);
-    observed_enumerator_.Add(enumerator_.get());
+    observed_enumerator_.AddObservation(enumerator_.get());
   }
   base::Optional<base::FilePath> path =
       enumerator_->GetPathFromToken(token, use_alternate_path);
@@ -114,7 +114,7 @@
     if (!bluetooth_enumerator_) {
       bluetooth_enumerator_ =
           std::make_unique<BluetoothSerialDeviceEnumerator>();
-      observed_enumerator_.Add(bluetooth_enumerator_.get());
+      observed_enumerator_.AddObservation(bluetooth_enumerator_.get());
     }
     base::Optional<std::string> address =
         bluetooth_enumerator_->GetAddressFromToken(token);
diff --git a/services/device/serial/serial_port_manager_impl.h b/services/device/serial/serial_port_manager_impl.h
index 9b92c30..84eb998 100644
--- a/services/device/serial/serial_port_manager_impl.h
+++ b/services/device/serial/serial_port_manager_impl.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_multi_source_observation.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/receiver_set.h"
@@ -61,7 +61,8 @@
 
   std::unique_ptr<SerialDeviceEnumerator> enumerator_;
   std::unique_ptr<BluetoothSerialDeviceEnumerator> bluetooth_enumerator_;
-  ScopedObserver<SerialDeviceEnumerator, SerialDeviceEnumerator::Observer>
+  base::ScopedMultiSourceObservation<SerialDeviceEnumerator,
+                                     SerialDeviceEnumerator::Observer>
       observed_enumerator_{this};
 
   scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
diff --git a/services/device/test/usb_test_gadget_impl.cc b/services/device/test/usb_test_gadget_impl.cc
index 43a726a..8ee4fb5 100644
--- a/services/device/test/usb_test_gadget_impl.cc
+++ b/services/device/test/usb_test_gadget_impl.cc
@@ -21,7 +21,7 @@
 #include "base/path_service.h"
 #include "base/process/process_handle.h"
 #include "base/run_loop.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "base/single_thread_task_runner.h"
 #include "base/stl_util.h"
 #include "base/strings/stringprintf.h"
@@ -199,7 +199,7 @@
   // TODO(crbug.com/1010491): Remove `io_task_runner` parameter.
   UsbGadgetFactory(UsbService* usb_service,
                    scoped_refptr<base::SingleThreadTaskRunner> io_task_runner)
-      : usb_service_(usb_service), observer_(this) {
+      : usb_service_(usb_service) {
     // Gadget tests shouldn't be enabled without available |usb_service|.
     DCHECK(usb_service_);
 
@@ -208,7 +208,7 @@
     session_id_ =
         base::StringPrintf("%" CrPRIdPid "-%d", process_id, next_session_id++);
 
-    observer_.Add(usb_service_);
+    observation_.Observe(usb_service_);
   }
 
   ~UsbGadgetFactory() override = default;
@@ -409,7 +409,7 @@
   bool claimed_ = false;
   std::string version_;
   base::RunLoop run_loop_;
-  ScopedObserver<UsbService, UsbService::Observer> observer_;
+  base::ScopedObservation<UsbService, UsbService::Observer> observation_{this};
   base::WeakPtrFactory<UsbGadgetFactory> weak_factory_{this};
 };
 
@@ -420,9 +420,8 @@
                     int product_id)
       : usb_service_(usb_service),
         serial_number_(serial_number),
-        product_id_(product_id),
-        observer_(this) {
-    observer_.Add(usb_service_);
+        product_id_(product_id) {
+    observation_.Observe(usb_service_);
   }
   ~DeviceAddListener() override = default;
 
@@ -475,7 +474,7 @@
   const int product_id_;
   base::RunLoop run_loop_;
   scoped_refptr<UsbDevice> device_;
-  ScopedObserver<UsbService, UsbService::Observer> observer_;
+  base::ScopedObservation<UsbService, UsbService::Observer> observation_{this};
   base::WeakPtrFactory<DeviceAddListener> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DeviceAddListener);
@@ -484,8 +483,8 @@
 class DeviceRemoveListener : public UsbService::Observer {
  public:
   DeviceRemoveListener(UsbService* usb_service, scoped_refptr<UsbDevice> device)
-      : usb_service_(usb_service), device_(device), observer_(this) {
-    observer_.Add(usb_service_);
+      : usb_service_(usb_service), device_(device) {
+    observation_.Observe(usb_service_);
   }
   ~DeviceRemoveListener() override = default;
 
@@ -519,7 +518,7 @@
   UsbService* usb_service_;
   base::RunLoop run_loop_;
   scoped_refptr<UsbDevice> device_;
-  ScopedObserver<UsbService, UsbService::Observer> observer_;
+  base::ScopedObservation<UsbService, UsbService::Observer> observation_{this};
   base::WeakPtrFactory<DeviceRemoveListener> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DeviceRemoveListener);
diff --git a/services/device/usb/mojo/device_impl.cc b/services/device/usb/mojo/device_impl.cc
index 976abef5..dbf5321f 100644
--- a/services/device/usb/mojo/device_impl.cc
+++ b/services/device/usb/mojo/device_impl.cc
@@ -127,13 +127,12 @@
                        base::span<const uint8_t> blocked_interface_classes,
                        bool allow_security_key_requests)
     : device_(std::move(device)),
-      observer_(this),
       blocked_interface_classes_(blocked_interface_classes.begin(),
                                  blocked_interface_classes.end()),
       allow_security_key_requests_(allow_security_key_requests),
       client_(std::move(client)) {
   DCHECK(device_);
-  observer_.Add(device_.get());
+  observation_.Observe(device_.get());
 
   if (client_) {
     client_.set_disconnect_handler(base::BindOnce(
diff --git a/services/device/usb/mojo/device_impl.h b/services/device/usb/mojo/device_impl.h
index b32e7753..3f24b004 100644
--- a/services/device/usb/mojo/device_impl.h
+++ b/services/device/usb/mojo/device_impl.h
@@ -14,7 +14,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/remote.h"
@@ -110,7 +110,8 @@
   void OnClientConnectionError();
 
   const scoped_refptr<device::UsbDevice> device_;
-  ScopedObserver<device::UsbDevice, device::UsbDevice::Observer> observer_;
+  base::ScopedObservation<device::UsbDevice, device::UsbDevice::Observer>
+      observation_{this};
 
   // The device handle. Will be null before the device is opened and after it
   // has been closed. |opening_| is set to true while the asynchronous open is
diff --git a/services/device/usb/mojo/device_manager_impl.cc b/services/device/usb/mojo/device_manager_impl.cc
index 2b20bd7..528e0dd 100644
--- a/services/device/usb/mojo/device_manager_impl.cc
+++ b/services/device/usb/mojo/device_manager_impl.cc
@@ -37,9 +37,9 @@
     : DeviceManagerImpl(UsbService::Create()) {}
 
 DeviceManagerImpl::DeviceManagerImpl(std::unique_ptr<UsbService> usb_service)
-    : usb_service_(std::move(usb_service)), observer_(this) {
+    : usb_service_(std::move(usb_service)) {
   if (usb_service_)
-    observer_.Add(usb_service_.get());
+    observation_.Observe(usb_service_.get());
 }
 
 DeviceManagerImpl::~DeviceManagerImpl() = default;
@@ -212,7 +212,7 @@
 }
 
 void DeviceManagerImpl::WillDestroyUsbService() {
-  observer_.RemoveAll();
+  observation_.Reset();
   usb_service_ = nullptr;
 
   // Close all the connections.
diff --git a/services/device/usb/mojo/device_manager_impl.h b/services/device/usb/mojo/device_manager_impl.h
index d736a92..38b7f9d 100644
--- a/services/device/usb/mojo/device_manager_impl.h
+++ b/services/device/usb/mojo/device_manager_impl.h
@@ -15,7 +15,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "mojo/public/cpp/bindings/pending_associated_remote.h"
@@ -112,7 +112,7 @@
       bool allow_security_key_requests);
 
   std::unique_ptr<UsbService> usb_service_;
-  ScopedObserver<UsbService, UsbService::Observer> observer_;
+  base::ScopedObservation<UsbService, UsbService::Observer> observation_{this};
 
   mojo::ReceiverSet<mojom::UsbDeviceManager> receivers_;
   mojo::AssociatedRemoteSet<mojom::UsbDeviceManagerClient> clients_;
diff --git a/services/device/usb/usb_device_handle_win.cc b/services/device/usb/usb_device_handle_win.cc
index 8fb3515c..70e9f52 100644
--- a/services/device/usb/usb_device_handle_win.cc
+++ b/services/device/usb/usb_device_handle_win.cc
@@ -638,17 +638,7 @@
       task_runner_(base::SequencedTaskRunnerHandle::Get()),
       blocking_task_runner_(UsbService::CreateBlockingTaskRunner()) {}
 
-UsbDeviceHandleWin::~UsbDeviceHandleWin() {
-#if DCHECK_IS_ON()
-  DCHECK(!hub_handle_.IsValid());
-  for (auto& map_entry : interfaces_) {
-    const Interface& interface = map_entry.second;
-    DCHECK_EQ(interface.reference_count, 0);
-    DCHECK(!interface.handle.IsValid());
-    DCHECK(!interface.function_handle.IsValid());
-  }
-#endif
-}
+UsbDeviceHandleWin::~UsbDeviceHandleWin() = default;
 
 void UsbDeviceHandleWin::UpdateFunction(int interface_number,
                                         const std::wstring& function_driver,
diff --git a/services/device/usb/usb_service_impl.cc b/services/device/usb/usb_service_impl.cc
index f56165e..9fdba18 100644
--- a/services/device/usb/usb_service_impl.cc
+++ b/services/device/usb/usb_service_impl.cc
@@ -313,7 +313,7 @@
 #if defined(OS_WIN)
   DeviceMonitorWin* device_monitor = DeviceMonitorWin::GetForAllInterfaces();
   if (device_monitor)
-    device_observer_.Add(device_monitor);
+    device_observation_.Observe(device_monitor);
 #endif  // OS_WIN
 }
 
diff --git a/services/device/usb/usb_service_impl.h b/services/device/usb/usb_service_impl.h
index ba0e355d..af83563 100644
--- a/services/device/usb/usb_service_impl.h
+++ b/services/device/usb/usb_service_impl.h
@@ -25,7 +25,7 @@
 #include "third_party/libusb/src/libusb/libusb.h"
 
 #if defined(OS_WIN)
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "device/base/device_monitor_win.h"
 #endif  // OS_WIN
 
@@ -120,8 +120,8 @@
   std::set<libusb_device*> devices_being_enumerated_;
 
 #if defined(OS_WIN)
-  ScopedObserver<DeviceMonitorWin, DeviceMonitorWin::Observer> device_observer_{
-      this};
+  base::ScopedObservation<DeviceMonitorWin, DeviceMonitorWin::Observer>
+      device_observation_{this};
 #endif  // OS_WIN
 
   // This WeakPtr is used to safely post hotplug events back to the thread this
diff --git a/services/device/usb/usb_service_win.cc b/services/device/usb/usb_service_win.cc
index c9861f4..43f84df 100644
--- a/services/device/usb/usb_service_win.cc
+++ b/services/device/usb/usb_service_win.cc
@@ -587,11 +587,10 @@
 UsbServiceWin::UsbServiceWin()
     : UsbService(),
       blocking_task_runner_(CreateBlockingTaskRunner()),
-      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)),
-      device_observer_(this) {
+      helper_(nullptr, base::OnTaskRunnerDeleter(blocking_task_runner_)) {
   DeviceMonitorWin* device_monitor = DeviceMonitorWin::GetForAllInterfaces();
   if (device_monitor)
-    device_observer_.Add(device_monitor);
+    device_observation_.Observe(device_monitor);
 
   helper_.reset(new BlockingTaskRunnerHelper(weak_factory_.GetWeakPtr()));
   blocking_task_runner_->PostTask(
diff --git a/services/device/usb/usb_service_win.h b/services/device/usb/usb_service_win.h
index d7ff062c..024db64 100644
--- a/services/device/usb/usb_service_win.h
+++ b/services/device/usb/usb_service_win.h
@@ -14,7 +14,7 @@
 #include "base/containers/flat_map.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
-#include "base/scoped_observer.h"
+#include "base/scoped_observation.h"
 #include "base/sequenced_task_runner.h"
 #include "device/base/device_monitor_win.h"
 #include "services/device/usb/usb_device_win.h"
@@ -71,7 +71,8 @@
   std::unordered_map<std::wstring, scoped_refptr<UsbDeviceWin>>
       devices_by_path_;
 
-  ScopedObserver<DeviceMonitorWin, DeviceMonitorWin::Observer> device_observer_;
+  base::ScopedObservation<DeviceMonitorWin, DeviceMonitorWin::Observer>
+      device_observation_{this};
 
   base::WeakPtrFactory<UsbServiceWin> weak_factory_{this};
 
diff --git a/services/image_annotation/annotator.cc b/services/image_annotation/annotator.cc
index 67c8aee4..ee3699c 100644
--- a/services/image_annotation/annotator.cc
+++ b/services/image_annotation/annotator.cc
@@ -491,7 +491,7 @@
   for (std::deque<ServerRequestInfo>::iterator it = begin; it != end; ++it) {
     // Re-encode image bytes into base64, which can be represented in JSON.
     std::string base64_data;
-    Base64Encode(
+    base::Base64Encode(
         base::StringPiece(reinterpret_cast<const char*>(it->image_bytes.data()),
                           it->image_bytes.size()),
         &base64_data);
diff --git a/services/media_session/media_controller.cc b/services/media_session/media_controller.cc
index 673a17f..08d2b9f4 100644
--- a/services/media_session/media_controller.cc
+++ b/services/media_session/media_controller.cc
@@ -320,6 +320,13 @@
     session_->ipc()->HangUp();
 }
 
+void MediaController::Raise() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  if (session_)
+    session_->ipc()->Raise();
+}
+
 void MediaController::SetMediaSession(AudioFocusRequest* session) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
diff --git a/services/media_session/media_controller.h b/services/media_session/media_controller.h
index 57b1e78..0c025da 100644
--- a/services/media_session/media_controller.h
+++ b/services/media_session/media_controller.h
@@ -56,6 +56,7 @@
   void ToggleMicrophone() override;
   void ToggleCamera() override;
   void HangUp() override;
+  void Raise() override;
 
   // mojom::MediaSessionObserver overrides.
   void MediaSessionInfoChanged(
diff --git a/services/media_session/public/cpp/test/mock_media_session.h b/services/media_session/public/cpp/test/mock_media_session.h
index 3af3ec6..757601d7 100644
--- a/services/media_session/public/cpp/test/mock_media_session.h
+++ b/services/media_session/public/cpp/test/mock_media_session.h
@@ -167,6 +167,7 @@
   void ToggleMicrophone() override {}
   void ToggleCamera() override {}
   void HangUp() override {}
+  void Raise() override {}
 
   void SetIsControllable(bool value);
   void SetPreferStop(bool value) { prefer_stop_ = value; }
diff --git a/services/media_session/public/cpp/test/test_media_controller.h b/services/media_session/public/cpp/test/test_media_controller.h
index 655812c2..8f46704 100644
--- a/services/media_session/public/cpp/test/test_media_controller.h
+++ b/services/media_session/public/cpp/test/test_media_controller.h
@@ -159,6 +159,7 @@
   void ToggleMicrophone() override {}
   void ToggleCamera() override {}
   void HangUp() override {}
+  void Raise() override {}
 
   int toggle_suspend_resume_count() const {
     return toggle_suspend_resume_count_;
diff --git a/services/media_session/public/cpp/util.cc b/services/media_session/public/cpp/util.cc
index c06e1d8..9954917 100644
--- a/services/media_session/public/cpp/util.cc
+++ b/services/media_session/public/cpp/util.cc
@@ -55,6 +55,9 @@
     case mojom::MediaSessionAction::kHangUp:
       media_controller_remote->HangUp();
       break;
+    case mojom::MediaSessionAction::kRaise:
+      media_controller_remote->Raise();
+      break;
     case mojom::MediaSessionAction::kSkipAd:
     case mojom::MediaSessionAction::kSeekTo:
     case mojom::MediaSessionAction::kScrubTo:
diff --git a/services/media_session/public/mojom/media_controller.mojom b/services/media_session/public/mojom/media_controller.mojom
index 1fca24ae9..9e5ddef 100644
--- a/services/media_session/public/mojom/media_controller.mojom
+++ b/services/media_session/public/mojom/media_controller.mojom
@@ -8,7 +8,7 @@
 import "mojo/public/mojom/base/unguessable_token.mojom";
 import "services/media_session/public/mojom/media_session.mojom";
 
-// Next MinVersion: 2
+// Next MinVersion: 3
 
 // Next Method ID: 3
 [Stable, Uuid="1ed3225e-33c8-487b-b79f-4c3ec13ad623"]
@@ -33,7 +33,7 @@
 // session, otherwise media sessions will be associated with a particular media
 // session provided to the service when creating the media controller. If the
 // media session is not controllable then the commands will be no-ops.
-// Next Method ID: 17
+// Next Method ID: 18
 [Stable]
 interface MediaController {
   // Suspend the media session.
@@ -105,6 +105,10 @@
 
   // Hang up a WebRTC session.
   [MinVersion=1] HangUp@16();
+
+  // Display the source of the MediaSession (e.g. show the tab or the
+  // application).
+  [MinVersion=2] Raise@17();
 };
 
 // The observer for observing media controller events. This is different to a
diff --git a/services/media_session/public/mojom/media_session.mojom b/services/media_session/public/mojom/media_session.mojom
index c082cd17..f014b70 100644
--- a/services/media_session/public/mojom/media_session.mojom
+++ b/services/media_session/public/mojom/media_session.mojom
@@ -9,7 +9,7 @@
 import "ui/gfx/geometry/mojom/geometry.mojom";
 import "url/mojom/url.mojom";
 
-// Next MinVersion: 12
+// Next MinVersion: 13
 
 [Stable, Extensible]
 enum MediaPlaybackState {
@@ -35,6 +35,7 @@
   [MinVersion=11] kToggleMicrophone,
   [MinVersion=11] kToggleCamera,
   [MinVersion=11] kHangUp,
+  [MinVersion=12] kRaise,
 };
 
 [Stable, Extensible]
@@ -229,7 +230,7 @@
 
 // A MediaSession manages the media session and audio focus for a given
 // WebContents or ARC app.
-// Next Method ID: 21
+// Next Method ID: 22
 [Stable]
 interface MediaSession {
   [Stable, Extensible]
@@ -325,4 +326,8 @@
 
   // Hang up a WebRTC session.
   [MinVersion=11] HangUp@20();
+
+  // Display the source of the MediaSession (e.g. show the tab or the
+  // application).
+  [MinVersion=12] Raise@21();
 };
diff --git a/services/network/public/cpp/web_sandbox_flags.cc b/services/network/public/cpp/web_sandbox_flags.cc
index dc3f9a40..15f852fe 100644
--- a/services/network/public/cpp/web_sandbox_flags.cc
+++ b/services/network/public/cpp/web_sandbox_flags.cc
@@ -43,7 +43,7 @@
   };
 
   for (const auto& it : table) {
-    if (CompareCaseInsensitiveASCII(it.token, token) == 0)
+    if (base::CompareCaseInsensitiveASCII(it.token, token) == 0)
       return it.flags;
   }
 
diff --git a/storage/browser/file_system/file_system_context.cc b/storage/browser/file_system/file_system_context.cc
index e249cc7e..06fbf60 100644
--- a/storage/browser/file_system/file_system_context.cc
+++ b/storage/browser/file_system/file_system_context.cc
@@ -393,16 +393,19 @@
     const FileSystemRequestInfo& request_info,
     StatusCallback callback) {
   const FileSystemURL filesystem_url(request_info.url);
-  auto copyable_callback = base::AdaptCallbackForRepeating(std::move(callback));
   if (filesystem_url.type() == kFileSystemTypeExternal) {
-    for (size_t i = 0; i < auto_mount_handlers_.size(); i++) {
-      if (auto_mount_handlers_[i].Run(request_info, filesystem_url,
-                                      copyable_callback)) {
+    for (auto& handler : auto_mount_handlers_) {
+      auto split_callback = base::SplitOnceCallback(std::move(callback));
+      callback = std::move(split_callback.first);
+      if (handler.Run(request_info, filesystem_url,
+                      std::move(split_callback.second))) {
+        // The `callback` will be run if true was returned.
         return;
       }
     }
   }
-  copyable_callback.Run(base::File::FILE_ERROR_NOT_FOUND);
+  // If every handler returned false, then `callback` was not run yet.
+  std::move(callback).Run(base::File::FILE_ERROR_NOT_FOUND);
 }
 
 void FileSystemContext::DeleteFileSystem(const url::Origin& origin,
diff --git a/storage/browser/quota/client_usage_tracker.cc b/storage/browser/quota/client_usage_tracker.cc
index 84b1cbc8..653d293 100644
--- a/storage/browser/quota/client_usage_tracker.cc
+++ b/storage/browser/quota/client_usage_tracker.cc
@@ -243,7 +243,11 @@
   info->pending_jobs = origins_by_host.size() + 1;
   auto accumulator = base::BindRepeating(
       &ClientUsageTracker::AccumulateHostUsage, weak_factory_.GetWeakPtr(),
-      base::Owned(info), base::AdaptCallbackForRepeating(std::move(callback)));
+      base::Owned(info),
+      // The `accumulator` is called multiple times, but the `callback` inside
+      // of it will only be called a single time, so we give ownership to the
+      // `accumulator` itself.
+      base::Owned(std::make_unique<GlobalUsageCallback>(std::move(callback))));
 
   for (const auto& host_and_origins : origins_by_host) {
     const std::string& host = host_and_origins.first;
@@ -253,11 +257,11 @@
   }
 
   // Fire the sentinel as we've now called GetUsageForOrigins for all clients.
-  accumulator.Run(0, 0);
+  std::move(accumulator).Run(0, 0);
 }
 
 void ClientUsageTracker::AccumulateHostUsage(AccumulateInfo* info,
-                                             GlobalUsageCallback callback,
+                                             GlobalUsageCallback* callback,
                                              int64_t limited_usage,
                                              int64_t unlimited_usage) {
   DCHECK_GT(info->pending_jobs, 0U);
@@ -271,8 +275,8 @@
   DCHECK_GE(info->unlimited_usage, 0);
 
   global_usage_retrieved_ = true;
-  std::move(callback).Run(info->limited_usage + info->unlimited_usage,
-                          info->unlimited_usage);
+  std::move(*callback).Run(info->limited_usage + info->unlimited_usage,
+                           info->unlimited_usage);
 }
 
 void ClientUsageTracker::DidGetOriginsForHostUsage(
diff --git a/storage/browser/quota/client_usage_tracker.h b/storage/browser/quota/client_usage_tracker.h
index e2e3909b..ec73073 100644
--- a/storage/browser/quota/client_usage_tracker.h
+++ b/storage/browser/quota/client_usage_tracker.h
@@ -74,7 +74,7 @@
   void DidGetOriginsForGlobalUsage(GlobalUsageCallback callback,
                                    const std::vector<url::Origin>& origins);
   void AccumulateHostUsage(AccumulateInfo* info,
-                           GlobalUsageCallback callback,
+                           GlobalUsageCallback* callback,
                            int64_t limited_usage,
                            int64_t unlimited_usage);
 
diff --git a/styleguide/c++/c++11.html b/styleguide/c++/c++11.html
index f9bfc4f2..c6dbf81 100644
--- a/styleguide/c++/c++11.html
+++ b/styleguide/c++/c++11.html
@@ -295,6 +295,14 @@
 </tr>
 
 <tr>
+<td>Optional</td>
+<td><code>absl::optional</code></td>
+<td>Early adaptation of C++17 std::optional.</td>
+<td><a href="https://en.cppreference.com/w/cpp/utility/optional">std::optional</a></td>
+<td>Replaces <code>base::Optional</code>. <a href="https://groups.google.com/a/chromium.org/g/cxx/c/zUGqagX1NFU">Discussion thread</a></td>
+</tr>
+
+<tr>
 <td>Status</td>
 <td><code>absl::Status</code></td>
 <td>Type for returning detailed errors.</td>
@@ -439,14 +447,6 @@
 </tr>
 
 <tr>
-<td>Optional</td>
-<td><code>absl::optional</code></td>
-<td>Early adaptation of C++17 std::optional.</td>
-<td><a href="https://en.cppreference.com/w/cpp/utility/optional">std::optional</a></td>
-<td>Overlaps with <code>base::Optional</code>.</td>
-</tr>
-
-<tr>
 <td>Random</td>
 <td><code>absl::BitGen bitgen;<br>
 size_t index = absl::Uniform(bitgen, 0u, elems.size());</code></td>
diff --git a/testing/buildbot/chrome.json b/testing/buildbot/chrome.json
index 3195a2b..ba03a9c7 100644
--- a/testing/buildbot/chrome.json
+++ b/testing/buildbot/chrome.json
@@ -28,7 +28,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -65,7 +65,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -109,7 +109,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -142,7 +142,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -179,7 +179,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -212,7 +212,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -248,7 +248,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -283,7 +283,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -318,7 +318,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -352,7 +352,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -385,7 +385,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -423,7 +423,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -456,7 +456,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -489,7 +489,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -522,7 +522,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -555,7 +555,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -591,7 +591,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -624,7 +624,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -657,7 +657,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -705,7 +705,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -742,7 +742,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -778,7 +778,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -811,7 +811,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -844,7 +844,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -881,7 +881,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -914,7 +914,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -947,7 +947,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -980,7 +980,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1029,7 +1029,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1076,7 +1076,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1122,7 +1122,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1166,7 +1166,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1199,7 +1199,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1236,7 +1236,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1269,7 +1269,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1305,7 +1305,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1340,7 +1340,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1375,7 +1375,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1409,7 +1409,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1442,7 +1442,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1480,7 +1480,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1513,7 +1513,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1546,7 +1546,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1579,7 +1579,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1612,7 +1612,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1648,7 +1648,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1681,7 +1681,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1714,7 +1714,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1762,7 +1762,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1799,7 +1799,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1835,7 +1835,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1868,7 +1868,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1901,7 +1901,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1938,7 +1938,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1971,7 +1971,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -2004,7 +2004,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -2037,7 +2037,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -2086,7 +2086,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -2133,7 +2133,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -2179,7 +2179,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -2799,6 +2799,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -2825,7 +2826,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -2844,7 +2845,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -2866,7 +2867,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -2886,7 +2887,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -2905,7 +2906,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -2924,7 +2925,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -2943,7 +2944,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -2962,7 +2963,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -2981,7 +2982,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3000,7 +3001,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3019,7 +3020,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3038,7 +3039,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3057,7 +3058,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3077,7 +3078,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3096,7 +3097,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3115,7 +3116,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3137,7 +3138,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3160,7 +3161,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3179,7 +3180,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3198,7 +3199,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3217,7 +3218,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3236,7 +3237,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3255,7 +3256,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3274,7 +3275,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3293,7 +3294,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3312,7 +3313,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3331,7 +3332,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3350,7 +3351,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3369,7 +3370,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3389,7 +3390,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3408,7 +3409,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3427,7 +3428,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3446,7 +3447,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3465,7 +3466,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3484,7 +3485,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3503,7 +3504,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3522,7 +3523,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3541,7 +3542,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3560,7 +3561,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3579,7 +3580,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3598,7 +3599,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3617,7 +3618,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3636,7 +3637,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3655,7 +3656,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3674,7 +3675,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3693,7 +3694,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3712,7 +3713,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3734,7 +3735,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3754,7 +3755,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3773,7 +3774,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3792,7 +3793,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3811,7 +3812,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3830,7 +3831,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3849,7 +3850,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3868,7 +3869,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3887,7 +3888,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3906,7 +3907,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3925,7 +3926,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3944,7 +3945,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3963,7 +3964,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -3982,7 +3983,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4001,7 +4002,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4020,7 +4021,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4039,7 +4040,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4061,7 +4062,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4083,7 +4084,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4102,7 +4103,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4121,7 +4122,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4140,7 +4141,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4159,7 +4160,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4178,7 +4179,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4197,7 +4198,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4216,7 +4217,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4235,7 +4236,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4254,7 +4255,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4273,7 +4274,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4292,7 +4293,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4311,7 +4312,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4330,7 +4331,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4349,7 +4350,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4368,7 +4369,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4387,7 +4388,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4406,7 +4407,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4425,7 +4426,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4444,7 +4445,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4463,7 +4464,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4485,7 +4486,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4504,7 +4505,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4524,7 +4525,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4543,7 +4544,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4562,7 +4563,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4581,7 +4582,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4600,7 +4601,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4619,7 +4620,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4638,7 +4639,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4657,7 +4658,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
@@ -4682,7 +4683,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests",
               "ssd": "0"
             }
diff --git a/testing/buildbot/chromium.dawn.json b/testing/buildbot/chromium.dawn.json
index 61bcfd5a..db51654 100644
--- a/testing/buildbot/chromium.dawn.json
+++ b/testing/buildbot/chromium.dawn.json
@@ -2547,7 +2547,7 @@
           "--driver-logging",
           "--jobs=1",
           "--order=natural",
-          "--additional-driver-flag=--enable-dawn-backend-validation",
+          "--additional-driver-flag=--enable-dawn-backend-validation=partial",
           "--additional-driver-flag=--disable-dawn-features=disallow_unsafe_apis",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -3047,7 +3047,7 @@
           "--driver-logging",
           "--jobs=1",
           "--order=natural",
-          "--additional-driver-flag=--enable-dawn-backend-validation",
+          "--additional-driver-flag=--enable-dawn-backend-validation=partial",
           "--additional-driver-flag=--disable-dawn-features=disallow_unsafe_apis",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -3548,7 +3548,7 @@
           "--driver-logging",
           "--jobs=1",
           "--order=natural",
-          "--additional-driver-flag=--enable-dawn-backend-validation",
+          "--additional-driver-flag=--enable-dawn-backend-validation=partial",
           "--additional-driver-flag=--disable-dawn-features=disallow_unsafe_apis",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
@@ -4044,7 +4044,7 @@
           "--driver-logging",
           "--jobs=1",
           "--order=natural",
-          "--additional-driver-flag=--enable-dawn-backend-validation",
+          "--additional-driver-flag=--enable-dawn-backend-validation=partial",
           "--additional-driver-flag=--disable-dawn-features=disallow_unsafe_apis",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index 0e12775..0a95901 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -52535,7 +52535,7 @@
     "gtest_tests": [
       {
         "args": [
-          "--ash-chrome-path=../../lacros_version_skew_tests_M92/chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_M92/chrome"
         ],
         "merge": {
           "args": [],
diff --git a/testing/buildbot/chromium.goma.json b/testing/buildbot/chromium.goma.json
index 43af7107..351e79a 100644
--- a/testing/buildbot/chromium.goma.json
+++ b/testing/buildbot/chromium.goma.json
@@ -25,7 +25,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04"
+              "os": "Ubuntu-18.04"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -42,7 +42,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04"
+              "os": "Ubuntu-18.04"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -66,7 +66,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04"
+              "os": "Ubuntu-18.04"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -83,7 +83,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04"
+              "os": "Ubuntu-18.04"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -107,7 +107,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04"
+              "os": "Ubuntu-18.04"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -124,7 +124,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04"
+              "os": "Ubuntu-18.04"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -148,7 +148,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04"
+              "os": "Ubuntu-18.04"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
@@ -165,7 +165,7 @@
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
             {
-              "os": "Ubuntu-16.04"
+              "os": "Ubuntu-18.04"
             }
           ],
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
diff --git a/testing/buildbot/internal.chromeos.fyi.json b/testing/buildbot/internal.chromeos.fyi.json
index 70e2028..2ad78c3b 100644
--- a/testing/buildbot/internal.chromeos.fyi.json
+++ b/testing/buildbot/internal.chromeos.fyi.json
@@ -73,7 +73,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -106,7 +106,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -143,7 +143,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -176,7 +176,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -212,7 +212,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -247,7 +247,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -282,7 +282,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -316,7 +316,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -349,7 +349,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -387,7 +387,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -420,7 +420,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -453,7 +453,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -486,7 +486,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -519,7 +519,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -555,7 +555,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -588,7 +588,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -621,7 +621,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -669,7 +669,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -706,7 +706,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -742,7 +742,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -775,7 +775,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -808,7 +808,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -845,7 +845,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -878,7 +878,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -911,7 +911,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -944,7 +944,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -993,7 +993,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1040,7 +1040,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
@@ -1086,7 +1086,7 @@
             {
               "cpu": "x86",
               "kvm": "1",
-              "os": "Ubuntu-16.04",
+              "os": "Ubuntu-18.04",
               "pool": "chrome.tests"
             }
           ],
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl
index a318245..0644f70 100644
--- a/testing/buildbot/mixins.pyl
+++ b/testing/buildbot/mixins.pyl
@@ -263,7 +263,7 @@
         {
           'cpu': 'x86',
           'kvm': '1',
-          'os': 'Ubuntu-16.04',
+          'os': 'Ubuntu-18.04',
           'pool': 'chrome.tests',
         }
       ],
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index fc88d2b..ed35526 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -2709,12 +2709,13 @@
       },
     },
 
-    # GPU gtests that test only Dawn with backend validation layers
-    'gpu_dawn_gtests_with_validation': {
+    # For Windows. Use the D3D12 backend validation layers but without GPU-based
+    # validation and shader patching. This avoids hangs on less powerful systems.
+    'gpu_dawn_gtests_with_partial_validation': {
       'dawn_end2end_validation_layers_tests': {
         'mixins': ['dawn_end2end_gpu_test'],
         'args': [
-          '--enable-backend-validation',
+          '--enable-backend-validation=partial',
         ],
         'linux_args': [ '--no-xvfb' ],
         'test': 'dawn_end2end_tests',
@@ -2722,12 +2723,11 @@
     },
 
     # GPU gtests that test only Dawn with backend validation layers
-    # to accommodate less powerful Intel GPUs
-    'gpu_dawn_gtests_with_validation_win_intel': {
+    'gpu_dawn_gtests_with_validation': {
       'dawn_end2end_validation_layers_tests': {
         'mixins': ['dawn_end2end_gpu_test'],
         'args': [
-          '--enable-backend-validation=partial',
+          '--enable-backend-validation',
         ],
         'linux_args': [ '--no-xvfb' ],
         'test': 'dawn_end2end_tests',
@@ -3971,7 +3971,7 @@
       },
     },
 
-    'gpu_webgpu_integration_extra_isolated_scripts': {
+    'gpu_webgpu_integration_backend_validation_isolated_scripts': {
       'webgpu_blink_web_tests_with_backend_validation': {
         # TODO(crbug.com/816629) - Move these args into //BUILD.gn.
         'name': 'webgpu_blink_web_tests_with_backend_validation',
@@ -4056,6 +4056,51 @@
       },
     },
 
+    # For Windows. Use the D3D12 backend validation layers but without GPU-based
+    # validation and shader patching. This avoids hangs on less powerful systems.
+    'gpu_webgpu_integration_partial_backend_validation_isolated_scripts': {
+      'webgpu_blink_web_tests_with_backend_validation': {
+        # TODO(crbug.com/816629) - Move these args into //BUILD.gn.
+        'name': 'webgpu_blink_web_tests_with_backend_validation',
+        'args': [
+          '--driver-logging',
+          # Disable parallel jobs to work around consistent test timeout flakes.
+          # Also, the first test is always flaky due to startup time, so force
+          # the order so we can suppress it.
+          # TODO(crbug.com/953991): Solve this and remove the workaround.
+          '--jobs=1',
+          '--order=natural',
+          '--additional-driver-flag=--enable-dawn-backend-validation=partial',
+          # Make Dawn allow "Unsafe APIs" so they can be tested with the WebGPU CTS.
+          '--additional-driver-flag=--disable-dawn-features=disallow_unsafe_apis',
+          # We need this flag to initialize ANGLE so that we can explicitly tell
+          # Dawn which ANGLE adapter Chromium is using. This will help match the test
+          # usage to be the same as the browser.
+          '--additional-driver-flag=--use-gpu-in-tests',
+        ],
+        'win64_args': [ '--target=Release_x64' ],
+        'mac_args': [
+          # These tests run on 10.14, but web_tests [ Mac ] expectations don't
+          # work correctly yet under 10.14. Pretend it's 10.13.
+          '--platform=mac-mac10.13'
+        ],
+        'linux_args': [
+          '--no-xvfb',
+          '--additional-driver-flag=--enable-features=UseSkiaRenderer,Vulkan',
+        ],
+        'merge': {
+          'args': [
+            '--verbose',
+          ],
+          'script': '//third_party/blink/tools/merge_web_test_results.py',
+        },
+        'isolate_name': 'webgpu_blink_web_tests',
+        'resultdb': {
+          'enable': True,
+        },
+      },
+    },
+
     'gpu_win_intel_specific_telemetry_tests': {
       'power_measurement_test': {
         'telemetry_test_name': 'power',
@@ -6218,7 +6263,7 @@
     # These tests are run both on the CI and trybots which test DEPS Dawn.
     'gpu_dawn_integration_gtests_passthrough_win_intel': [
       'gpu_dawn_gtests',
-      'gpu_dawn_gtests_with_validation_win_intel',
+      'gpu_dawn_gtests_with_partial_validation',
       'gpu_common_gtests_passthrough',
     ],
 
@@ -6231,7 +6276,13 @@
     'gpu_dawn_isolated_scripts': [
       'gpu_dawn_perf_smoke_isolated_scripts',
       'gpu_webgpu_integration_isolated_scripts',
-      'gpu_webgpu_integration_extra_isolated_scripts',
+      'gpu_webgpu_integration_backend_validation_isolated_scripts',
+    ],
+
+    'gpu_dawn_isolated_scripts_win_intel': [
+      'gpu_dawn_perf_smoke_isolated_scripts',
+      'gpu_webgpu_integration_isolated_scripts',
+      'gpu_webgpu_integration_partial_backend_validation_isolated_scripts',
     ],
 
     'gpu_desktop_linux_gtests': [
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
index 62cd58b..efdc7ac 100644
--- a/testing/buildbot/variants.pyl
+++ b/testing/buildbot/variants.pyl
@@ -66,7 +66,7 @@
   },
   'LACROS_VERSION_SKEW_CANARY': {
     'args': [
-      '--ash-chrome-path=../../lacros_version_skew_tests_M92/chrome',
+      '--ash-chrome-path-override=../../lacros_version_skew_tests_M92/chrome',
     ],
     'identifier': 'Lacros version skew testing ash 92.0.4499.0',
     'swarming': {
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index 8ef6ee22..7939edd 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -138,6 +138,7 @@
         ],
         'mixins': [
           'chrome-swarming-pool',
+          'linux-bionic',
         ],
         'test_suites': {
           'gtest_tests': 'lacros_smoke_tast_tests_eve',
@@ -152,6 +153,7 @@
         ],
         'mixins': [
           'chrome-swarming-pool',
+          'linux-bionic',
         ],
         'test_suites': {
           'isolated_scripts': 'chrome_sizes',
@@ -166,7 +168,7 @@
         ],
         'mixins': [
           'chrome-swarming-pool',
-          'linux-xenial',
+          'linux-bionic',
         ],
         'swarming': {
           'dimension_sets': [
@@ -2199,7 +2201,7 @@
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_integration_gtests_passthrough_win_intel',
-          'isolated_scripts': 'gpu_dawn_isolated_scripts',
+          'isolated_scripts': 'gpu_dawn_isolated_scripts_win_intel',
         },
       },
       'Dawn Win10 x64 DEPS Release (NVIDIA)': {
@@ -2221,7 +2223,7 @@
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_integration_gtests_passthrough_win_intel',
-          'isolated_scripts': 'gpu_dawn_isolated_scripts',
+          'isolated_scripts': 'gpu_dawn_isolated_scripts_win_intel',
         },
       },
       'Dawn Win10 x64 Release (NVIDIA)': {
@@ -2245,7 +2247,7 @@
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_integration_gtests_passthrough_win_intel',
-          'isolated_scripts': 'gpu_dawn_isolated_scripts',
+          'isolated_scripts': 'gpu_dawn_isolated_scripts_win_intel',
         },
       },
       'Dawn Win10 x86 DEPS Release (NVIDIA)': {
@@ -2267,7 +2269,7 @@
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_integration_gtests_passthrough_win_intel',
-          'isolated_scripts': 'gpu_dawn_isolated_scripts',
+          'isolated_scripts': 'gpu_dawn_isolated_scripts_win_intel',
         },
       },
       'Dawn Win10 x86 Release (NVIDIA)': {
@@ -3385,7 +3387,7 @@
       },
       'Chromium Linux Goma RBE Staging': {
         'mixins': [
-          'linux-xenial',
+          'linux-bionic',
         ],
         'additional_compile_targets': [
           'all',
@@ -3396,7 +3398,7 @@
       },
       'Chromium Linux Goma RBE Staging (clobber)': {
         'mixins': [
-          'linux-xenial',
+          'linux-bionic',
         ],
         'additional_compile_targets': [
           'all',
@@ -3407,7 +3409,7 @@
       },
       'Chromium Linux Goma RBE Staging (dbg)': {
         'mixins': [
-          'linux-xenial',
+          'linux-bionic',
         ],
         'additional_compile_targets': [
           'all',
@@ -3418,7 +3420,7 @@
       },
       'Chromium Linux Goma RBE Staging (dbg) (clobber)': {
         'mixins': [
-          'linux-xenial',
+          'linux-bionic',
         ],
         'additional_compile_targets': [
           'all',
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index 7d163b55..4584f84e 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -382,9 +382,6 @@
 const base::Feature kBlockingFocusWithoutUserActivation{
     "BlockingFocusWithoutUserActivation", base::FEATURE_DISABLED_BY_DEFAULT};
 
-const base::Feature kAudioWorkletRealtimeThread{
-    "AudioWorkletRealtimeThread", base::FEATURE_DISABLED_BY_DEFAULT};
-
 // A server-side switch for the REALTIME_AUDIO thread priority of
 // RealtimeAudioWorkletThread object. When disabled, it will use the NORMAL
 // priority thread.
diff --git a/third_party/blink/public/common/custom_handlers/protocol_handler_utils.h b/third_party/blink/public/common/custom_handlers/protocol_handler_utils.h
index c1d4a400..b9889e3d 100644
--- a/third_party/blink/public/common/custom_handlers/protocol_handler_utils.h
+++ b/third_party/blink/public/common/custom_handlers/protocol_handler_utils.h
@@ -10,6 +10,18 @@
 
 namespace blink {
 
+// This function returns whether the specified scheme is valid as a protocol
+// handler parameter, as described in steps 1. and 2. of the HTML specification:
+// https://html.spec.whatwg.org/multipage/system-state.html#normalize-protocol-handler-parameters
+//
+// The allow_ext_prefix parameter indicates whether the "ext+" prefix should be
+// considered valid for custom schemes. This is to allow custom schemes that
+// are reserved for browser extensions, similar to what Mozilla implements:
+// https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers
+//
+// The out parameter has_custom_scheme_prefix is set to whether the scheme
+// starts with a prefix indicating a custom scheme i.e. an ASCII case
+// insensitive match to the string "web+" (or alternatively "ext+" if allowed).
 bool BLINK_COMMON_EXPORT
 IsValidCustomHandlerScheme(const base::StringPiece scheme,
                            bool allow_ext_prefix,
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
index 45eac70..e0c853b 100644
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -110,7 +110,6 @@
 BLINK_COMMON_EXPORT extern const base::Feature
     kBlockingFocusWithoutUserActivation;
 
-BLINK_COMMON_EXPORT extern const base::Feature kAudioWorkletRealtimeThread;
 BLINK_COMMON_EXPORT extern const base::Feature
     kAudioWorkletThreadRealtimePriority;
 
diff --git a/third_party/blink/public/strings/translations/blink_strings_lo.xtb b/third_party/blink/public/strings/translations/blink_strings_lo.xtb
index 6db5fc7d6..d9a2c0c 100644
--- a/third_party/blink/public/strings/translations/blink_strings_lo.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_lo.xtb
@@ -85,6 +85,7 @@
 <translation id="3175736971608411871">ໂມງນັບຖອຍຫຼັງ</translation>
 <translation id="3199563858620722075">ກ່ອງຄອມໂບ</translation>
 <translation id="3220661731597678625">ຂັ້ນຕອນປັດຈຸບັນ</translation>
+<translation id="3321030238473337787">ຄວາມໄວການຫຼິ້ນ</translation>
 <translation id="3329013043687509092">ການອີ່ມຕົວ</translation>
 <translation id="3450233048674729344">ຄ່າຕ້ອງນ້ອຍກ່ວາ ຫຼືເທົ່າກັບ <ph name="MAXIMUM" />.</translation>
 <translation id="3486220673238053218">ຄໍາ​ນິ​ຍາມ</translation>
@@ -112,6 +113,7 @@
 <translation id="4248100235867064564">ແຖບເມນູ</translation>
 <translation id="4293574643247337246">ສ່ວນຫົວຂອງໜ້າ</translation>
 <translation id="4360991593054037559">ກະ​ລຸ​ນາ​ປ້ອນຄ່າທີ່ໃຊ້ໄດ້ເຂົ້າໄປ​. ຄ່າທີ່ໃຊ້ໄດ້ຢູ່ໃກ້ທີ່ສຸດທັງສອງ​ແມ່ນ <ph name="VALID_VALUE_LOW" /> ແລະ <ph name="VALID_VALUE_HIGHER" /> .</translation>
+<translation id="4371899966896349864">ເຊື່ອງເມນູຄວາມໄວການຫຼິ້ນ</translation>
 <translation id="4384249794467006333">ຮູບພາບນີ້ບໍ່ມີປ້າຍກຳກັບ. ເປີດເມນູຕົວເລືອກເພີ່ມເຕີມຢູ່ເທິງສຸດເບື້ອງຂວາເພື່ອຮັບຄຳອະທິບາຍຮູບພາບ.</translation>
 <translation id="4384583879834880242">ຖາມ-ຕອບ</translation>
 <translation id="4444765639179266822">ປາກົດວ່າຈະເວົ້າ: <ph name="OCR_TEXT" /></translation>
@@ -159,6 +161,7 @@
 <translation id="5453733299334684579">ລາຍການຕົ້ນໄມ້</translation>
 <translation id="5466621249238537318">ກະລຸນາເລືອກໜຶ່ງ ຫຼືຫຼາຍໄຟລ໌.</translation>
 <translation id="5468998798572797635">ອອກຈາກເຕັມໜ້າຈໍ</translation>
+<translation id="5516235301412634559">0.75</translation>
 <translation id="5516424706154626233">ຕົວເລືອກວັນທີ</translation>
 <translation id="5537725057119320332">ຄາສທ໌</translation>
 <translation id="5546461542133609677">ເປີດສຽງ</translation>
@@ -170,6 +173,7 @@
 <translation id="5677946354068040947">ຕົວເລືອກເພີ່ມເຕີມ</translation>
 <translation id="576709008726043716">ການນຳສະເໜີ</translation>
 <translation id="57838592816432529">ປິດສຽງ</translation>
+<translation id="5786442179789148008">ສະແດງເມນູຄວາມໄວການຫຼິ້ນ</translation>
 <translation id="5787939484346677755">ຂະຫຍາຍແລ້ວ, ມີຕົວເລືອກການເຮັດສຳເລັດອັດຕະໂນມັດໃຫ້ນຳໃຊ້.</translation>
 <translation id="5860033963881614850">ປິດ</translation>
 <translation id="588258955323874662">ເຕັມໜ້າຈໍ</translation>
@@ -178,6 +182,7 @@
 <translation id="5916664084637901428">ເປີດ</translation>
 <translation id="5939518447894949180">ຕັ້ງຄ່າຄືນໃໝ່</translation>
 <translation id="5966707198760109579">ອາທິດ</translation>
+<translation id="5985507339671257014">0.5</translation>
 <translation id="5987525920412732405">ປຸ່ມໝຸນ</translation>
 <translation id="6011459053400940133">ຕົວເລື່ອນປັບລະດັບສຽງ</translation>
 <translation id="6015796118275082299">ປີ</translation>
@@ -216,6 +221,7 @@
 <translation id="6843725295806269523">ປິດສຽງ</translation>
 <translation id="6885760532393684712">ແຟ້ມ</translation>
 <translation id="689129560213475294">ຂໍ້ມູນບັນນານຸກົມ</translation>
+<translation id="6919891270253167948">1.5</translation>
 <translation id="6934078000481955284">ວົງຢືມ</translation>
 <translation id="693476918119313863">ຫົວເຈ້ຍ</translation>
 <translation id="6941933287844615239">ດາວໂຫຼດສື່</translation>
@@ -266,6 +272,7 @@
 <translation id="8105797009065549151">ການອ້າງອີງບັນທຶກ</translation>
 <translation id="811583516810654505">ກຳລັງຮັບເອົາລາຍລະອຽດ...</translation>
 <translation id="8117451130807776954">ອາ​ທິດ​ນີ້</translation>
+<translation id="8131955114056917397">0.25</translation>
 <translation id="8199524924445686405">ປປປປ</translation>
 <translation id="8208673686607688524">ຕົວເລືອກວັນທີ ແລະ ເວລາທ້ອງຖິ່ນ</translation>
 <translation id="8261464734335370856">ການສະກົດຄຳບໍ່ຖືກຕ້ອງ</translation>
@@ -290,6 +297,7 @@
 <translation id="8613126697340063924">ຄວບ​ຄຸມ​ການ​ຫຼິ້ນ​ທາງໄກ</translation>
 <translation id="862370744433916922">ຄຳແປ</translation>
 <translation id="8634971699417195529">ສະແດງຕົວເລືອກເດືອນ</translation>
+<translation id="8637593834423658414">1.75</translation>
 <translation id="8668988909814782445">ການຕັດຂຶ້ນແຖວໃໝ່</translation>
 <translation id="8711688047404765493">ຜົນອອກ</translation>
 <translation id="8750798805984357768">ກະລຸນາເລືອກໜຶ່ງໃນທາງເລືອກເຫຼົ່ານີ້.</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_mn.xtb b/third_party/blink/public/strings/translations/blink_strings_mn.xtb
index dc96343..96a3ac0d 100644
--- a/third_party/blink/public/strings/translations/blink_strings_mn.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_mn.xtb
@@ -85,6 +85,7 @@
 <translation id="3175736971608411871">хугацаа хэмжигч</translation>
 <translation id="3199563858620722075">багцийн хайрцаг</translation>
 <translation id="3220661731597678625">одоогийн алхам</translation>
+<translation id="3321030238473337787">Дахин тоглуулах хурд</translation>
 <translation id="3329013043687509092">Өнгөний нэвчилт</translation>
 <translation id="3450233048674729344">Оруулсан утга нь <ph name="MAXIMUM" />-тай тэнцүү эсвэл бага байх ёстой.</translation>
 <translation id="3486220673238053218">тодорхойлолт</translation>
@@ -112,6 +113,7 @@
 <translation id="4248100235867064564">цэсний мөр</translation>
 <translation id="4293574643247337246">хуудасны толгой хэсэг</translation>
 <translation id="4360991593054037559">Хүчинтэй утгыг оруулна уу. Хамгийн ойрын хүчинтэй дараах хоёр <ph name="VALID_VALUE_LOW" /> болон <ph name="VALID_VALUE_HIGHER" />  утгууд байна.</translation>
+<translation id="4371899966896349864">дахин тоглуулах хурдны цэсийг нуух</translation>
 <translation id="4384249794467006333">Энэ зургийг шошголоогүй байна. Зургийн тайлбарыг авахын тулд баруун дээд хэсэгт байх Бусад сонголт цэсийг нээнэ үү.</translation>
 <translation id="4384583879834880242">Асуулт, хариулт</translation>
 <translation id="4444765639179266822"><ph name="OCR_TEXT" /> гэж хэлж байгаа бололтой</translation>
@@ -159,6 +161,7 @@
 <translation id="5453733299334684579">салаалсан зүйл</translation>
 <translation id="5466621249238537318">Нэг буюу түүнээс дээш файлыг сонгоно уу.</translation>
 <translation id="5468998798572797635">Дэлгэцийг хумих</translation>
+<translation id="5516235301412634559">0.75</translation>
 <translation id="5516424706154626233">огноо сонгогч</translation>
 <translation id="5537725057119320332">Cast</translation>
 <translation id="5546461542133609677">Дууг нээх</translation>
@@ -170,6 +173,7 @@
 <translation id="5677946354068040947">бусад сонголт</translation>
 <translation id="576709008726043716">оршил</translation>
 <translation id="57838592816432529">Дууг хаах</translation>
+<translation id="5786442179789148008">дахин тоглуулах хурдны цэсийг харуулах</translation>
 <translation id="5787939484346677755">дэлгэсэн, автоматаар бөглөх сонголт боломжтой.</translation>
 <translation id="5860033963881614850">Идэвхгүй байна</translation>
 <translation id="588258955323874662">Дэлгэц дүүрэн</translation>
@@ -178,6 +182,7 @@
 <translation id="5916664084637901428">Асаах</translation>
 <translation id="5939518447894949180">Дахин сэргээх</translation>
 <translation id="5966707198760109579">Долоо хоног</translation>
+<translation id="5985507339671257014">0.5</translation>
 <translation id="5987525920412732405">эргүүлэх товчлуур</translation>
 <translation id="6011459053400940133">дууны түвшин тохируулагч</translation>
 <translation id="6015796118275082299">Жил</translation>
@@ -216,6 +221,7 @@
 <translation id="6843725295806269523">дууг хаах</translation>
 <translation id="6885760532393684712">лавлагаа</translation>
 <translation id="689129560213475294">колофон</translation>
+<translation id="6919891270253167948">1.5</translation>
 <translation id="6934078000481955284">бүлэг тэмдэглэгээ</translation>
 <translation id="693476918119313863">толгой хэсэг</translation>
 <translation id="6941933287844615239">медиа татах</translation>
@@ -266,6 +272,7 @@
 <translation id="8105797009065549151">тэмдэглэлийн лавлагаа</translation>
 <translation id="811583516810654505">Тайлбарыг авч байна...</translation>
 <translation id="8117451130807776954">Энэ долоо хоног</translation>
+<translation id="8131955114056917397">0.25</translation>
 <translation id="8199524924445686405">жжжж</translation>
 <translation id="8208673686607688524">орон нутгийн огноо ба цаг сонгогч</translation>
 <translation id="8261464734335370856">Буруу бичсэн байна</translation>
@@ -290,6 +297,7 @@
 <translation id="8613126697340063924">алсаас дахин тоглуулахыг хянах</translation>
 <translation id="862370744433916922">дэд гарчиг</translation>
 <translation id="8634971699417195529">Сар сонгогчийг харуулах</translation>
+<translation id="8637593834423658414">1.75</translation>
 <translation id="8668988909814782445">Мөрийг багтаах</translation>
 <translation id="8711688047404765493">гаралт</translation>
 <translation id="8750798805984357768">Эдгээр сонголтоос нэгийг нь сонгоно уу.</translation>
diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h
index 95b0e08..991c767 100644
--- a/third_party/blink/public/web/web_local_frame.h
+++ b/third_party/blink/public/web/web_local_frame.h
@@ -230,8 +230,7 @@
       CrossVariantMojoAssociatedReceiver<mojom::WidgetInterfaceBase> widget,
       const viz::FrameSinkId& frame_sink_id,
       bool is_for_nested_main_frame = false,
-      bool hidden = false,
-      bool never_composited = false);
+      bool hidden = false);
 
   // Returns the frame identified by the given name.  This method supports
   // pseudo-names like _self, _top, and _blank and otherwise performs the same
@@ -869,9 +868,8 @@
           widget_host,
       CrossVariantMojoAssociatedReceiver<mojom::WidgetInterfaceBase> widget,
       const viz::FrameSinkId& frame_sink_id,
-      bool is_for_nested_main_frame = false,
-      bool hidden = false,
-      bool never_composited = false) = 0;
+      bool is_for_nested_main_frame,
+      bool hidden) = 0;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
index 1ee5bd6..4277f5ad 100644
--- a/third_party/blink/public/web/web_local_frame_client.h
+++ b/third_party/blink/public/web/web_local_frame_client.h
@@ -129,6 +129,11 @@
 struct ContextMenuData;
 struct WebPluginParams;
 
+enum class SyncCondition {
+  kNotForced,  // Sync only if the value has changed since the last call.
+  kForced,     // Force a sync even if the value is unchanged.
+};
+
 class BLINK_EXPORT WebLocalFrameClient {
  public:
   virtual ~WebLocalFrameClient() = default;
@@ -454,9 +459,15 @@
 
   // Editing -------------------------------------------------------------
 
-  // These methods allow the client to intercept and overrule editing
-  // operations.
-  virtual void DidChangeSelection(bool is_selection_empty) {}
+  // These methods allow the client to intercept editing operations.
+
+  // Called when the selection may have changed (Note, that due to
+  // http://crbug.com/632920 the selection may not have changed). Additionally,
+  // in some circumstances the browser selection may be known to not match the
+  // last synced value, in which case SyncCondition::kForced is passed to force
+  // an update even if the selection appears unchanged since the last call.
+  virtual void DidChangeSelection(bool is_selection_empty,
+                                  SyncCondition force_sync) {}
   virtual void DidChangeContents() {}
 
   // UI ------------------------------------------------------------------
@@ -694,8 +705,12 @@
     return false;
   }
 
-  // Update the current frame selection to the browser.
-  virtual void SyncSelectionIfRequired() {}
+  // Update the current frame selection to the browser if it has changed since
+  // the last call. Note that this only synchronizes the selection, if the
+  // TextInputState may have changed call DidChangeSelection instead.
+  // If the browser selection may not match the last synced
+  // value, SyncCondition::kForced can be passed to force a sync.
+  virtual void SyncSelectionIfRequired(SyncCondition force_sync) {}
 
   // TODO(https://crbug.com/787252): Remove the methods below and use the
   // Supplement mechanism.
diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h
index 5c90d30..98c0204 100644
--- a/third_party/blink/public/web/web_view.h
+++ b/third_party/blink/public/web/web_view.h
@@ -105,12 +105,21 @@
   // their output.
   // |page_handle| is only set for views that are part of a WebContents' frame
   // tree.
+  // |widgets_never_composited| is an indication that all WebWidgets associated
+  // with this WebView will never be user-visible and thus never need to produce
+  // pixels for display. This is separate from page visibility, as background
+  // pages can be marked visible in blink even though they are not user-visible.
+  // Page visibility controls blink behaviour for javascript, timers, and such
+  // to inform blink it is in the foreground or background. Whereas this bit
+  // refers to user-visibility and whether the tab needs to produce pixels to
+  // put on the screen at some point or not.
   // TODO(yuzus): Remove |is_hidden| and start using |PageVisibilityState|.
   BLINK_EXPORT static WebView* Create(
       WebViewClient*,
       bool is_hidden,
       bool is_inside_portal,
       bool compositing_enabled,
+      bool widgets_never_composited,
       WebView* opener,
       CrossVariantMojoAssociatedReceiver<mojom::PageBroadcastInterfaceBase>
           page_handle,
diff --git a/third_party/blink/public/web/web_view_client.h b/third_party/blink/public/web/web_view_client.h
index c936b38f..4dd3448 100644
--- a/third_party/blink/public/web/web_view_client.h
+++ b/third_party/blink/public/web/web_view_client.h
@@ -96,10 +96,6 @@
 
   // UI ------------------------------------------------------------------
 
-  // Called to determine if drag-n-drop operations may initiate a page
-  // navigation.
-  virtual bool AcceptsLoadDrops() { return true; }
-
   // Called to check if layout update should be processed.
   virtual bool CanUpdateLayout() { return false; }
 
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni
index 352a431c..5626a82 100644
--- a/third_party/blink/renderer/bindings/generated_in_modules.gni
+++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
@@ -447,8 +447,6 @@
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_buffer_layout.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_state.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_state.h",
-  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_state_descriptor.cc",
-  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_state_descriptor.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_handwriting_drawing_segment.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_handwriting_drawing_segment.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_handwriting_feature_query.cc",
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni
index 356221f6..3be138f 100644
--- a/third_party/blink/renderer/bindings/idl_in_modules.gni
+++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -1007,7 +1007,6 @@
           "//third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute.idl",
           "//third_party/blink/renderer/modules/webgpu/gpu_vertex_buffer_layout.idl",
           "//third_party/blink/renderer/modules/webgpu/gpu_vertex_state.idl",
-          "//third_party/blink/renderer/modules/webgpu/gpu_vertex_state_descriptor.idl",
           "//third_party/blink/renderer/modules/webgpu/navigator_gpu.idl",
           "//third_party/blink/renderer/modules/webgpu/worker_navigator_gpu.idl",
           "//third_party/blink/renderer/modules/webid/navigator_web_id.idl",
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
index da60efa..411d48c 100644
--- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn
@@ -283,6 +283,7 @@
     "//build:chromeos_buildflags",
     "//components/paint_preview/common",
     "//components/performance_manager/public/mojom:mojom_blink",
+    "//components/power_scheduler",
     "//components/shared_highlighting/core/common",
     "//gpu/config",
     "//mojo/public/cpp/bindings:bindings",
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index b0b2ae1..ac55e4b8 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -8097,12 +8097,30 @@
   if (DocumentLoader* loader = Loader())
     loader->NotifyPrerenderingDocumentActivated();
 
+  // https://jeremyroman.github.io/alternate-loading-modes/#prerendering-browsing-context-activate
+  // Step 8.3.4 "Fire an event named prerenderingchange at doc."
   DispatchEvent(*Event::Create(event_type_names::kPrerenderingchange));
 
+  // Step 8.3.5 "For each steps in doc’s post-prerendering activation steps
+  // list:"
+  RunPostPrerenderingActivationSteps();
+
   if (LocalFrame* frame = GetFrame())
     frame->DidActivateForPrerendering();
 }
 
+void Document::AddPostPrerenderingActivationStep(base::OnceClosure callback) {
+  DCHECK(is_prerendering_);
+  post_prerendering_activation_callbacks_.push_back(std::move(callback));
+}
+
+void Document::RunPostPrerenderingActivationSteps() {
+  DCHECK(!is_prerendering_);
+  for (auto& callback : post_prerendering_activation_callbacks_)
+    std::move(callback).Run();
+  post_prerendering_activation_callbacks_.clear();
+}
+
 bool Document::InStyleRecalc() const {
   return lifecycle_.GetState() == DocumentLifecycle::kInStyleRecalc ||
          style_engine_->InContainerQueryStyleRecalc();
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
index d3e7734..837a0653 100644
--- a/third_party/blink/renderer/core/dom/document.h
+++ b/third_party/blink/renderer/core/dom/document.h
@@ -1668,6 +1668,8 @@
 
   void ActivateForPrerendering();
 
+  void AddPostPrerenderingActivationStep(base::OnceClosure callback);
+
   class CORE_EXPORT PaintPreviewScope {
     STACK_ALLOCATED();
 
@@ -1827,6 +1829,8 @@
   // pending promises created by |hasTrustToken|.
   void HasTrustTokensAnswererConnectionError();
 
+  void RunPostPrerenderingActivationSteps();
+
   DocumentLifecycle lifecycle_;
 
   bool is_initial_empty_document_;
@@ -1838,6 +1842,10 @@
   // https://github.com/jeremyroman/alternate-loading-modes/blob/main/prerendering-state.md#documentprerendering
   bool is_prerendering_;
 
+  // The callback list for post-prerendering activation step.
+  // https://jeremyroman.github.io/alternate-loading-modes/#document-post-prerendering-activation-steps-list
+  Vector<base::OnceClosure> post_prerendering_activation_callbacks_;
+
   bool evaluate_media_queries_on_style_recalc_;
 
   // If we do ignore the pending stylesheet count, then we need to add a boolean
diff --git a/third_party/blink/renderer/core/dom/events/event_dispatcher.cc b/third_party/blink/renderer/core/dom/events/event_dispatcher.cc
index 8606c57..504d551 100644
--- a/third_party/blink/renderer/core/dom/events/event_dispatcher.cc
+++ b/third_party/blink/renderer/core/dom/events/event_dispatcher.cc
@@ -28,6 +28,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_dispatcher.h"
 
 #include "base/memory/scoped_refptr.h"
+#include "build/build_config.h"
 #include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h"
@@ -37,6 +38,7 @@
 #include "third_party/blink/renderer/core/dom/events/simulated_click_options.h"
 #include "third_party/blink/renderer/core/dom/events/window_event_context.h"
 #include "third_party/blink/renderer/core/dom/node.h"
+#include "third_party/blink/renderer/core/editing/editor.h"
 #include "third_party/blink/renderer/core/events/keyboard_event.h"
 #include "third_party/blink/renderer/core/events/mouse_event.h"
 #include "third_party/blink/renderer/core/events/simulated_event_util.h"
@@ -374,6 +376,14 @@
           break;
       }
     }
+  } else {
+#if defined(OS_MAC)
+    // If a keypress event is prevented, the cursor position may be out of
+    // sync as RenderWidgetHostViewCocoa::insertText assumes that the text
+    // has been accepted. See https://crbug.com/1204523 for details.
+    if (event_->type() == event_type_names::kKeypress)
+      view_->GetFrame().GetEditor().SyncSelection(SyncCondition::kForced);
+#endif  // defined(OS_MAC)
   }
 
   auto* keyboard_event = DynamicTo<KeyboardEvent>(event_);
diff --git a/third_party/blink/renderer/core/editing/commands/editing_commands_utilities.cc b/third_party/blink/renderer/core/editing/commands/editing_commands_utilities.cc
index 64d8d18..5d720120 100644
--- a/third_party/blink/renderer/core/editing/commands/editing_commands_utilities.cc
+++ b/third_party/blink/renderer/core/editing/commands/editing_commands_utilities.cc
@@ -655,7 +655,8 @@
   if (!selection_did_not_change_dom_position)
     return;
   frame->Client()->DidChangeSelection(
-      !frame->Selection().GetSelectionInDOMTree().IsRange());
+      !frame->Selection().GetSelectionInDOMTree().IsRange(),
+      blink::SyncCondition::kNotForced);
 }
 
 InputEvent::EventIsComposing IsComposingFromCommand(
diff --git a/third_party/blink/renderer/core/editing/editor.cc b/third_party/blink/renderer/core/editing/editor.cc
index 43d02c6..7f32503 100644
--- a/third_party/blink/renderer/core/editing/editor.cc
+++ b/third_party/blink/renderer/core/editing/editor.cc
@@ -884,11 +884,15 @@
 
 void Editor::RespondToChangedSelection() {
   GetSpellChecker().RespondToChangedSelection();
-  frame_->Client()->DidChangeSelection(
-      !GetFrameSelection().GetSelectionInDOMTree().IsRange());
+  SyncSelection(blink::SyncCondition::kNotForced);
   SetStartNewKillRingSequence(true);
 }
 
+void Editor::SyncSelection(SyncCondition force_sync) {
+  frame_->Client()->DidChangeSelection(
+      !GetFrameSelection().GetSelectionInDOMTree().IsRange(), force_sync);
+}
+
 SpellChecker& Editor::GetSpellChecker() const {
   return GetFrame().GetSpellChecker();
 }
diff --git a/third_party/blink/renderer/core/editing/editor.h b/third_party/blink/renderer/core/editing/editor.h
index d9570e7..8f8d1abd 100644
--- a/third_party/blink/renderer/core/editing/editor.h
+++ b/third_party/blink/renderer/core/editing/editor.h
@@ -31,6 +31,7 @@
 #include "base/macros.h"
 #include "mojo/public/mojom/base/text_direction.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-blink.h"
+#include "third_party/blink/public/web/web_local_frame_client.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/editing_style.h"
 #include "third_party/blink/renderer/core/editing/finder/find_options.h"
@@ -175,6 +176,7 @@
   EphemeralRange RangeForPoint(const IntPoint&) const;
 
   void RespondToChangedSelection();
+  void SyncSelection(blink::SyncCondition force_sync);
 
   bool MarkedTextMatchesAreHighlighted() const;
   void SetMarkedTextMatchesAreHighlighted(bool);
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
index 44e8d23..90bed68 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -458,6 +458,7 @@
     bool is_hidden,
     bool is_inside_portal,
     bool compositing_enabled,
+    bool widgets_never_composited,
     WebView* opener,
     CrossVariantMojoAssociatedReceiver<mojom::PageBroadcastInterfaceBase>
         page_handle,
@@ -467,9 +468,9 @@
       client,
       is_hidden ? mojom::blink::PageVisibilityState::kHidden
                 : mojom::blink::PageVisibilityState::kVisible,
-      is_inside_portal, compositing_enabled, static_cast<WebViewImpl*>(opener),
-      std::move(page_handle), agent_group_scheduler,
-      session_storage_namespace_id);
+      is_inside_portal, compositing_enabled, widgets_never_composited,
+      static_cast<WebViewImpl*>(opener), std::move(page_handle),
+      agent_group_scheduler, session_storage_namespace_id);
 }
 
 WebViewImpl* WebViewImpl::Create(
@@ -477,6 +478,7 @@
     mojom::blink::PageVisibilityState visibility,
     bool is_inside_portal,
     bool compositing_enabled,
+    bool widgets_never_composited,
     WebViewImpl* opener,
     mojo::PendingAssociatedReceiver<mojom::blink::PageBroadcast> page_handle,
     blink::scheduler::WebAgentGroupScheduler& agent_group_scheduler,
@@ -485,8 +487,8 @@
   // then return a raw pointer to the caller.
   auto web_view = base::AdoptRef(
       new WebViewImpl(client, visibility, is_inside_portal, compositing_enabled,
-                      opener, std::move(page_handle), agent_group_scheduler,
-                      session_storage_namespace_id));
+                      widgets_never_composited, opener, std::move(page_handle),
+                      agent_group_scheduler, session_storage_namespace_id));
   web_view->AddRef();
   return web_view.get();
 }
@@ -542,11 +544,13 @@
     mojom::blink::PageVisibilityState visibility,
     bool is_inside_portal,
     bool does_composite,
+    bool widgets_never_composited,
     WebViewImpl* opener,
     mojo::PendingAssociatedReceiver<mojom::blink::PageBroadcast> page_handle,
     blink::scheduler::WebAgentGroupScheduler& agent_group_scheduler,
     const SessionStorageNamespaceId& session_storage_namespace_id)
-    : web_view_client_(client),
+    : widgets_never_composited_(widgets_never_composited),
+      web_view_client_(client),
       chrome_client_(MakeGarbageCollected<ChromeClientImpl>(this)),
       minimum_zoom_level_(PageZoomFactorToZoomLevel(kMinimumPageZoomFactor)),
       maximum_zoom_level_(PageZoomFactorToZoomLevel(kMaximumPageZoomFactor)),
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h
index 5149d97..c9359a66 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.h
+++ b/third_party/blink/renderer/core/exported/web_view_impl.h
@@ -116,6 +116,7 @@
       mojom::blink::PageVisibilityState visibility,
       bool is_inside_portal,
       bool compositing_enabled,
+      bool widgets_never_composited,
       WebViewImpl* opener,
       mojo::PendingAssociatedReceiver<mojom::blink::PageBroadcast> page_handle,
       scheduler::WebAgentGroupScheduler& agent_group_scheduler,
@@ -320,6 +321,16 @@
     return dev_tools_emulator_.Get();
   }
 
+  // When true, a hint to all WebWidgets that they will never be
+  // user-visible and thus never need to produce pixels for display. This is
+  // separate from page visibility, as background pages can be marked visible in
+  // blink even though they are not user-visible. Page visibility controls blink
+  // behaviour for javascript, timers, and such to inform blink it is in the
+  // foreground or background. Whereas this bit refers to user-visibility and
+  // whether the tab needs to produce pixels to put on the screen at some point
+  // or not.
+  bool widgets_never_composited() const { return widgets_never_composited_; }
+
   // Returns the main frame associated with this view. This will be null when
   // the main frame is remote.
   // Internally during startup/shutdown this can be null when no main frame
@@ -616,6 +627,7 @@
       mojom::blink::PageVisibilityState visibility,
       bool is_inside_portal,
       bool does_composite,
+      bool widgets_never_composite,
       WebViewImpl* opener,
       mojo::PendingAssociatedReceiver<mojom::blink::PageBroadcast> page_handle,
       scheduler::WebAgentGroupScheduler& agent_group_scheduler,
@@ -672,6 +684,16 @@
   // Corresponds to a Show method call.
   void DidShowCreatedWindow();
 
+  // A value provided by the browser to state that all Widgets in this
+  // WebView's frame tree will never be user-visible and thus never need to
+  // produce pixels for display. This is separate from Page visibility, as
+  // non-user-visible pages can still be marked visible for blink. Page
+  // visibility controls blink behaviour for javascript, timers, and such to
+  // inform blink it is in the foreground or background. Whereas this bit refers
+  // to user-visibility and whether the tab needs to produce pixels to put on
+  // the screen at some point or not.
+  const bool widgets_never_composited_;
+
   // Can be null (e.g. unittests, shared workers, etc).
   WebViewClient* web_view_client_;
   Persistent<ChromeClient> chrome_client_;
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc
index 689363b..eabc971b 100644
--- a/third_party/blink/renderer/core/exported/web_view_test.cc
+++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -490,6 +490,7 @@
                       /*is_hidden=*/false,
                       /*is_inside_portal=*/false,
                       /*compositing_enabled=*/true,
+                      /*widgets_never_composited=*/false,
                       /*opener=*/nullptr, mojo::NullAssociatedReceiver(),
                       web_view_helper_.GetAgentGroupScheduler(),
                       /*session_storage_namespace_id=*/base::EmptyString()));
@@ -2734,8 +2735,10 @@
   // internal WebViewClient on demand if the supplied WebViewClient is null.
   WebViewImpl* web_view = static_cast<WebViewImpl*>(WebView::Create(
       /*client=*/nullptr, /*is_hidden=*/false, /*is_inside_portal=*/false,
-      /*compositing_enabled=*/false, /*opener=*/nullptr,
-      mojo::NullAssociatedReceiver(), web_view_helper_.GetAgentGroupScheduler(),
+      /*compositing_enabled=*/false,
+      /*widgets_never_composited=*/false,
+      /*opener=*/nullptr, mojo::NullAssociatedReceiver(),
+      web_view_helper_.GetAgentGroupScheduler(),
       /*session_storage_namespace_id=*/base::EmptyString()));
   frame_test_helpers::TestWebFrameClient web_frame_client;
   WebLocalFrame* local_frame = WebLocalFrame::CreateMainFrame(
diff --git a/third_party/blink/renderer/core/fileapi/blob.cc b/third_party/blink/renderer/core/fileapi/blob.cc
index 06fd75c3..04f3bc8 100644
--- a/third_party/blink/renderer/core/fileapi/blob.cc
+++ b/third_party/blink/renderer/core/fileapi/blob.cc
@@ -223,24 +223,17 @@
   return body_buffer->Stream();
 }
 
-blink::ScriptPromise Blob::text(ScriptState* script_state) {
-  auto read_type = FileReaderLoader::kReadAsText;
-  return ReadBlobInternal(script_state, read_type);
-}
-
-blink::ScriptPromise Blob::arrayBuffer(ScriptState* script_state) {
-  auto read_type = FileReaderLoader::kReadAsArrayBuffer;
-  return ReadBlobInternal(script_state, read_type);
-}
-
-blink::ScriptPromise Blob::ReadBlobInternal(
+// Helper called by Blob::text() and arrayBuffer(). The operations only differ
+// by 1 line, depending on the read_type.
+static ScriptPromise ReadBlobHelper(
+    const scoped_refptr<BlobDataHandle>& blob_data_handle,
     ScriptState* script_state,
     FileReaderLoader::ReadType read_type) {
   ScriptPromiseResolver* resolver =
       MakeGarbageCollected<ScriptPromiseResolver>(script_state);
   auto promise = resolver->Promise();
 
-  new BlobFileReaderClient(blob_data_handle_,
+  new BlobFileReaderClient(blob_data_handle,
                            ExecutionContext::From(script_state)
                                ->GetTaskRunner(TaskType::kFileReading),
                            read_type, resolver);
@@ -248,6 +241,16 @@
   return promise;
 }
 
+blink::ScriptPromise Blob::text(ScriptState* script_state) {
+  auto read_type = FileReaderLoader::kReadAsText;
+  return ReadBlobHelper(blob_data_handle_, script_state, read_type);
+}
+
+blink::ScriptPromise Blob::arrayBuffer(ScriptState* script_state) {
+  auto read_type = FileReaderLoader::kReadAsArrayBuffer;
+  return ReadBlobHelper(blob_data_handle_, script_state, read_type);
+}
+
 void Blob::AppendTo(BlobData& blob_data) const {
   blob_data.AppendBlob(blob_data_handle_, 0, blob_data_handle_->size());
 }
diff --git a/third_party/blink/renderer/core/fileapi/blob.h b/third_party/blink/renderer/core/fileapi/blob.h
index 40d747c..cbcc155 100644
--- a/third_party/blink/renderer/core/fileapi/blob.h
+++ b/third_party/blink/renderer/core/fileapi/blob.h
@@ -35,7 +35,6 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "third_party/blink/renderer/bindings/core/v8/array_buffer_or_array_buffer_view_or_blob_or_usv_string.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/core/fileapi/file_reader_loader.h"
 #include "third_party/blink/renderer/core/fileapi/url_registry.h"
 #include "third_party/blink/renderer/core/imagebitmap/image_bitmap_source.h"
 #include "third_party/blink/renderer/core/streams/readable_stream.h"
@@ -135,10 +134,6 @@
 
  private:
   Blob() = delete;
-  // Helper called by text() and arrayBuffer(). The operations only differ by
-  // 1 line, depending on the read_type.
-  ScriptPromise ReadBlobInternal(ScriptState* script_state,
-                                 FileReaderLoader::ReadType read_type);
 
   scoped_refptr<BlobDataHandle> blob_data_handle_;
 };
diff --git a/third_party/blink/renderer/core/frame/frame_test_helpers.cc b/third_party/blink/renderer/core/frame/frame_test_helpers.cc
index e1cec56..5595a21 100644
--- a/third_party/blink/renderer/core/frame/frame_test_helpers.cc
+++ b/third_party/blink/renderer/core/frame/frame_test_helpers.cc
@@ -615,6 +615,7 @@
                       /*is_hidden=*/false,
                       /*is_inside_portal=*/false,
                       /*compositing_enabled=*/true,
+                      /*widgets_never_composited=*/false,
                       /*opener=*/opener, mojo::NullAssociatedReceiver(),
                       *agent_group_scheduler_,
                       /*session_storage_namespace_id=*/base::EmptyString()));
diff --git a/third_party/blink/renderer/core/frame/local_frame_client.h b/third_party/blink/renderer/core/frame/local_frame_client.h
index 04bf36d..19b7e9b4 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client.h
+++ b/third_party/blink/renderer/core/frame/local_frame_client.h
@@ -347,7 +347,13 @@
 
   virtual bool HandleCurrentKeyboardEvent() { return false; }
 
-  virtual void DidChangeSelection(bool is_selection_empty) {}
+  // Called when the selection may have changed (Note, that due to
+  // http://crbug.com/632920 the selection may not have changed). Additionally,
+  // in some circumstances the browser selection may be known to not match the
+  // last synced value, in which case SyncCondition::kForced is passed to force
+  // an update even if the selection appears unchanged since the last call.
+  virtual void DidChangeSelection(bool is_selection_empty,
+                                  blink::SyncCondition force_sync) {}
 
   virtual void DidChangeContents() {}
 
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
index da23faf..2075492 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
@@ -976,9 +976,10 @@
       ->HandleCurrentKeyboardEvent();
 }
 
-void LocalFrameClientImpl::DidChangeSelection(bool is_selection_empty) {
+void LocalFrameClientImpl::DidChangeSelection(bool is_selection_empty,
+                                              blink::SyncCondition force_sync) {
   if (web_frame_->Client())
-    web_frame_->Client()->DidChangeSelection(is_selection_empty);
+    web_frame_->Client()->DidChangeSelection(is_selection_empty, force_sync);
 }
 
 void LocalFrameClientImpl::DidChangeContents() {
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.h b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
index 577a27b..5e24dedd 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.h
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
@@ -233,7 +233,8 @@
 
   bool HandleCurrentKeyboardEvent() override;
 
-  void DidChangeSelection(bool is_selection_empty) override;
+  void DidChangeSelection(bool is_selection_empty,
+                          blink::SyncCondition force_sync) override;
 
   void DidChangeContents() override;
 
diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc
index 6db5945..20898c7 100644
--- a/third_party/blink/renderer/core/frame/web_frame_test.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_test.cc
@@ -4351,7 +4351,10 @@
 class ChangedSelectionCounter : public frame_test_helpers::TestWebFrameClient {
  public:
   ChangedSelectionCounter() : call_count_(0) {}
-  void DidChangeSelection(bool isSelectionEmpty) override { ++call_count_; }
+  void DidChangeSelection(bool isSelectionEmpty,
+                          blink::SyncCondition force_sync) override {
+    ++call_count_;
+  }
   int Count() const { return call_count_; }
   void Reset() { call_count_ = 0; }
 
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 ed92ad48..b90f7803 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
@@ -3495,7 +3495,10 @@
   if (!focused_frame->HasSelection())
     focused_frame->SelectWordAroundCaret();
   focused_frame->ReplaceSelection(word);
-  focused_frame->Client()->SyncSelectionIfRequired();
+  // If the resulting selection is not actually a change in selection, we do not
+  // need to explicitly notify about the selection change.
+  focused_frame->Client()->SyncSelectionIfRequired(
+      blink::SyncCondition::kNotForced);
 }
 
 void WebFrameWidgetImpl::ReplaceMisspelling(const String& word) {
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
index c9fa6656..71fc95c 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -606,13 +606,11 @@
         mojo_widget,
     const viz::FrameSinkId& frame_sink_id,
     bool is_for_nested_main_frame,
-    bool hidden,
-    bool never_composited) {
+    bool hidden) {
   CreateFrameWidgetInternal(
       base::PassKey<WebLocalFrame>(), std::move(mojo_frame_widget_host),
       std::move(mojo_frame_widget), std::move(mojo_widget_host),
-      std::move(mojo_widget), frame_sink_id, is_for_nested_main_frame, hidden,
-      never_composited);
+      std::move(mojo_widget), frame_sink_id, is_for_nested_main_frame, hidden);
   return FrameWidget();
 }
 
@@ -2486,8 +2484,7 @@
         mojo_widget,
     const viz::FrameSinkId& frame_sink_id,
     bool is_for_nested_main_frame,
-    bool hidden,
-    bool never_composited) {
+    bool hidden) {
   DCHECK(!frame_widget_);
   DCHECK(frame_->IsLocalRoot());
   bool is_for_child_local_root = Parent();
@@ -2496,6 +2493,8 @@
   // is false.
   DCHECK(!is_for_child_local_root || !is_for_nested_main_frame);
 
+  bool never_composited = ViewImpl()->widgets_never_composited();
+
   if (g_create_web_frame_widget) {
     // It is safe to cast to WebFrameWidgetImpl because the only concrete
     // subclass of WebFrameWidget that is allowed is WebFrameWidgetImpl. This
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
index d029bf6..4b612211 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
@@ -523,8 +523,7 @@
           mojo_widget,
       const viz::FrameSinkId& frame_sink_id,
       bool is_for_nested_main_frame,
-      bool hidden,
-      bool never_composited) override;
+      bool hidden) override;
 
   HitTestResult HitTestResultForVisualViewportPos(const IntPoint&);
 
diff --git a/third_party/blink/renderer/core/html/parser/html_tokenizer.cc b/third_party/blink/renderer/core/html/parser/html_tokenizer.cc
index 09c34841..3bd2080 100644
--- a/third_party/blink/renderer/core/html/parser/html_tokenizer.cc
+++ b/third_party/blink/renderer/core/html/parser/html_tokenizer.cc
@@ -38,67 +38,11 @@
 
 namespace blink {
 
-// clang-format off
-#define INT_0_TO_127_LIST(V)                                                    \
-V(0),   V(1),   V(2),   V(3),   V(4),   V(5),   V(6),   V(7),   V(8),   V(9),   \
-V(10),  V(11),  V(12),  V(13),  V(14),  V(15),  V(16),  V(17),  V(18),  V(19),  \
-V(20),  V(21),  V(22),  V(23),  V(24),  V(25),  V(26),  V(27),  V(28),  V(29),  \
-V(30),  V(31),  V(32),  V(33),  V(34),  V(35),  V(36),  V(37),  V(38),  V(39),  \
-V(40),  V(41),  V(42),  V(43),  V(44),  V(45),  V(46),  V(47),  V(48),  V(49),  \
-V(50),  V(51),  V(52),  V(53),  V(54),  V(55),  V(56),  V(57),  V(58),  V(59),  \
-V(60),  V(61),  V(62),  V(63),  V(64),  V(65),  V(66),  V(67),  V(68),  V(69),  \
-V(70),  V(71),  V(72),  V(73),  V(74),  V(75),  V(76),  V(77),  V(78),  V(79),  \
-V(80),  V(81),  V(82),  V(83),  V(84),  V(85),  V(86),  V(87),  V(88),  V(89),  \
-V(90),  V(91),  V(92),  V(93),  V(94),  V(95),  V(96),  V(97),  V(98),  V(99),  \
-V(100), V(101), V(102), V(103), V(104), V(105), V(106), V(107), V(108), V(109), \
-V(110), V(111), V(112), V(113), V(114), V(115), V(116), V(117), V(118), V(119), \
-V(120), V(121), V(122), V(123), V(124), V(125), V(126), V(127),
-// clang-format on
-
-// Character flags for fast paths.
-enum class ScanFlags : uint8_t {
-  // Base flags
-  kNullCharacter = 1 << 0,
-  kNewlineOrCarriageReturn = 1 << 1,
-  kWhitespaceNotNewline = 1 << 2,
-  kAmpersandAndOpenTag = 1 << 3,
-  // Compound flags
-  kWhitespace = kWhitespaceNotNewline | kNewlineOrCarriageReturn,
-  kCharacterTokenSpecial =
-      kNullCharacter | kNewlineOrCarriageReturn | kAmpersandAndOpenTag,
-  kNullOrNewline = kNullCharacter | kNewlineOrCarriageReturn,
-};
-
-static constexpr uint8_t CreateScanFlags(UChar cc) {
-#define SCAN_FLAG(flag) static_cast<uint8_t>(ScanFlags::flag)
-  DCHECK(!(cc & ~0x7F));  // IsASCII
-  uint8_t scan_flag = 0;
-  if (cc == '\0')
-    scan_flag = SCAN_FLAG(kNullCharacter);
-  else if (cc == '\n' || cc == '\r')
-    scan_flag = SCAN_FLAG(kNewlineOrCarriageReturn);
-  else if (cc == ' ' || cc == '\x09' || cc == '\x0C')
-    scan_flag = SCAN_FLAG(kWhitespaceNotNewline);
-  else if (cc == '&' || cc == '<')
-    scan_flag = SCAN_FLAG(kAmpersandAndOpenTag);
-  return scan_flag;
-#undef SCAN_FLAG
-}
-
-// Table of precomputed scan flags for the first 128 ASCII characters.
-static constexpr const uint8_t character_scan_flags_[128] = {
-    INT_0_TO_127_LIST(CreateScanFlags)};
-
 static inline UChar ToLowerCase(UChar cc) {
   DCHECK(IsASCIIAlpha(cc));
   return cc | 0x20;
 }
 
-static inline bool CheckScanFlag(UChar cc, ScanFlags flag) {
-  return IsASCII(cc) &&
-         (character_scan_flags_[cc] & static_cast<uint8_t>(flag));
-}
-
 static inline UChar ToLowerCaseIfAlpha(UChar cc) {
   return cc | (IsASCIIUpper(cc) ? 0x20 : 0);
 }
@@ -115,8 +59,6 @@
 }
 
 #define HTML_BEGIN_STATE(stateName) BEGIN_STATE(HTMLTokenizer, stateName)
-#define HTML_BEGIN_STATE_NOLABEL(stateName) \
-  BEGIN_STATE_NOLABEL(HTMLTokenizer, stateName)
 #define HTML_RECONSUME_IN(stateName) RECONSUME_IN(HTMLTokenizer, stateName)
 #define HTML_ADVANCE_TO(stateName) ADVANCE_TO(HTMLTokenizer, stateName)
 #define HTML_ADVANCE_PAST_NON_NEWLINE_TO(stateName) \
@@ -227,7 +169,8 @@
       } else if (cc == kEndOfFileMarker)
         return EmitEndOfFile(source);
       else {
-        return EmitData(source, cc);
+        BufferCharacter(cc);
+        HTML_CONSUME(kDataState);
       }
     }
     END_STATE()
@@ -284,10 +227,11 @@
     }
     END_STATE()
 
-    HTML_BEGIN_STATE_NOLABEL(kPLAINTEXTState) {
+    HTML_BEGIN_STATE(kPLAINTEXTState) {
       if (cc == kEndOfFileMarker)
         return EmitEndOfFile(source);
-      return EmitPLAINTEXT(source, cc);
+      BufferCharacter(cc);
+      HTML_CONSUME(kPLAINTEXTState);
     }
     END_STATE()
 
@@ -757,9 +701,9 @@
     END_STATE()
 
     HTML_BEGIN_STATE(kBeforeAttributeNameState) {
-      if (!SkipWhitespaces(source, cc))
-        return HaveBufferedCharacterToken();
-      if (cc == '/') {
+      if (IsTokenizerWhitespace(cc)) {
+        HTML_CONSUME(kBeforeAttributeNameState);
+      } else if (cc == '/') {
         HTML_ADVANCE_PAST_NON_NEWLINE_TO(kSelfClosingStartTagState);
       } else if (cc == '>') {
         return EmitAndResumeIn(source, HTMLTokenizer::kDataState);
@@ -804,9 +748,9 @@
     END_STATE()
 
     HTML_BEGIN_STATE(kAfterAttributeNameState) {
-      if (!SkipWhitespaces(source, cc))
-        return HaveBufferedCharacterToken();
-      if (cc == '/') {
+      if (IsTokenizerWhitespace(cc)) {
+        HTML_CONSUME(kAfterAttributeNameState);
+      } else if (cc == '/') {
         HTML_ADVANCE_PAST_NON_NEWLINE_TO(kSelfClosingStartTagState);
       } else if (cc == '=') {
         HTML_ADVANCE_PAST_NON_NEWLINE_TO(kBeforeAttributeValueState);
@@ -1148,9 +1092,9 @@
     END_STATE()
 
     HTML_BEGIN_STATE(kBeforeDOCTYPENameState) {
-      if (!SkipWhitespaces(source, cc))
-        return HaveBufferedCharacterToken();
-      if (cc == '>') {
+      if (IsTokenizerWhitespace(cc)) {
+        HTML_CONSUME(kBeforeDOCTYPENameState);
+      } else if (cc == '>') {
         ParseError();
         token_->BeginDOCTYPE();
         token_->SetForceQuirks();
@@ -1184,8 +1128,8 @@
     END_STATE()
 
     HTML_BEGIN_STATE(kAfterDOCTYPENameState) {
-      if (!SkipWhitespaces(source, cc))
-        return HaveBufferedCharacterToken();
+      if (IsTokenizerWhitespace(cc))
+        HTML_CONSUME(kAfterDOCTYPENameState);
       if (cc == '>')
         return EmitAndResumeIn(source, HTMLTokenizer::kDataState);
       else if (cc == kEndOfFileMarker) {
@@ -1247,9 +1191,9 @@
     END_STATE()
 
     HTML_BEGIN_STATE(kBeforeDOCTYPEPublicIdentifierState) {
-      if (!SkipWhitespaces(source, cc))
-        return HaveBufferedCharacterToken();
-      if (cc == '"') {
+      if (IsTokenizerWhitespace(cc))
+        HTML_CONSUME(kBeforeDOCTYPEPublicIdentifierState);
+      else if (cc == '"') {
         token_->SetPublicIdentifierToEmptyString();
         HTML_ADVANCE_PAST_NON_NEWLINE_TO(
             kDOCTYPEPublicIdentifierDoubleQuotedState);
@@ -1337,9 +1281,9 @@
     END_STATE()
 
     HTML_BEGIN_STATE(kBetweenDOCTYPEPublicAndSystemIdentifiersState) {
-      if (!SkipWhitespaces(source, cc))
-        return HaveBufferedCharacterToken();
-      if (cc == '>')
+      if (IsTokenizerWhitespace(cc))
+        HTML_CONSUME(kBetweenDOCTYPEPublicAndSystemIdentifiersState);
+      else if (cc == '>')
         return EmitAndResumeIn(source, HTMLTokenizer::kDataState);
       else if (cc == '"') {
         token_->SetSystemIdentifierToEmptyString();
@@ -1391,8 +1335,8 @@
     END_STATE()
 
     HTML_BEGIN_STATE(kBeforeDOCTYPESystemIdentifierState) {
-      if (!SkipWhitespaces(source, cc))
-        return HaveBufferedCharacterToken();
+      if (IsTokenizerWhitespace(cc))
+        HTML_CONSUME(kBeforeDOCTYPESystemIdentifierState);
       if (cc == '"') {
         token_->SetSystemIdentifierToEmptyString();
         HTML_ADVANCE_PAST_NON_NEWLINE_TO(
@@ -1454,9 +1398,9 @@
     END_STATE()
 
     HTML_BEGIN_STATE(kAfterDOCTYPESystemIdentifierState) {
-      if (!SkipWhitespaces(source, cc))
-        return HaveBufferedCharacterToken();
-      if (cc == '>')
+      if (IsTokenizerWhitespace(cc))
+        HTML_CONSUME(kAfterDOCTYPESystemIdentifierState);
+      else if (cc == '>')
         return EmitAndResumeIn(source, HTMLTokenizer::kDataState);
       else if (cc == kEndOfFileMarker) {
         ParseError();
@@ -1518,109 +1462,6 @@
   return false;
 }
 
-bool HTMLTokenizer::SkipWhitespaces(SegmentedString& source, UChar& cc) {
-  if (cc == '\n')  // We could be pointing to '\r'.
-    cc = source.CurrentChar();
-  while (true) {
-    while (CheckScanFlag(cc, ScanFlags::kWhitespaceNotNewline)) {
-      cc = source.AdvancePastNonNewline();
-    }
-    switch (cc) {
-      case '\n':
-        cc = source.AdvancePastNewlineAndUpdateLineNumber();
-        break;
-      case '\r':
-        if (!input_stream_preprocessor_.AdvancePastCarriageReturn(source, cc))
-          return false;
-        break;
-      case '\0':
-        if (!input_stream_preprocessor_.ProcessNullCharacter(source, cc))
-          return false;
-        if (cc == kEndOfFileMarker)
-          return true;
-        break;
-      default:
-        return true;
-    }
-  }
-}
-
-bool HTMLTokenizer::EmitData(SegmentedString& source, UChar cc) {
-  token_->EnsureIsCharacterToken();
-  if (cc == '\n')  // We could be pointing to '\r'.
-    cc = source.CurrentChar();
-  while (true) {
-    while (!CheckScanFlag(cc, ScanFlags::kCharacterTokenSpecial)) {
-      token_->AppendToCharacter(cc);
-      cc = source.AdvancePastNonNewline();
-    }
-    switch (cc) {
-      case '&':
-        state_ = kCharacterReferenceInDataState;
-        source.AdvanceAndASSERT('&');
-        if (!ProcessEntity(source))
-          return true;
-        state_ = kDataState;
-        if (source.IsEmpty())
-          return true;
-        cc = source.CurrentChar();
-        break;
-      case '\n':
-        token_->AppendToCharacter(cc);
-        cc = source.AdvancePastNewlineAndUpdateLineNumber();
-        break;
-      case '\r':
-        token_->AppendToCharacter('\n');  // Canonize newline.
-        if (!input_stream_preprocessor_.AdvancePastCarriageReturn(source, cc))
-          return true;
-        break;
-      case '<':
-        return true;
-      case '\0':
-        if (!input_stream_preprocessor_.ProcessNullCharacter(source, cc))
-          return true;
-        if (cc == kEndOfFileMarker)
-          return EmitEndOfFile(source);
-        break;
-      default:
-        NOTREACHED();
-        break;
-    }
-  }
-}
-
-bool HTMLTokenizer::EmitPLAINTEXT(SegmentedString& source, UChar cc) {
-  token_->EnsureIsCharacterToken();
-  if (cc == '\n')  // We could be pointing to '\r'.
-    cc = source.CurrentChar();
-  while (true) {
-    while (!CheckScanFlag(cc, ScanFlags::kNullOrNewline)) {
-      token_->AppendToCharacter(cc);
-      cc = source.AdvancePastNonNewline();
-    }
-    switch (cc) {
-      case '\n':
-        token_->AppendToCharacter(cc);
-        cc = source.AdvancePastNewlineAndUpdateLineNumber();
-        break;
-      case '\r':
-        token_->AppendToCharacter('\n');  // Canonize newline.
-        if (!input_stream_preprocessor_.AdvancePastCarriageReturn(source, cc))
-          return true;
-        break;
-      case '\0':
-        if (!input_stream_preprocessor_.ProcessNullCharacter(source, cc))
-          return true;
-        if (cc == kEndOfFileMarker)
-          return EmitEndOfFile(source);
-        break;
-      default:
-        NOTREACHED();
-        break;
-    }
-  }
-}
-
 String HTMLTokenizer::BufferedCharacters() const {
   // FIXME: Add a DCHECK about state_.
   StringBuilder characters;
diff --git a/third_party/blink/renderer/core/html/parser/html_tokenizer.h b/third_party/blink/renderer/core/html/parser/html_tokenizer.h
index 242c964..7ff835a 100644
--- a/third_party/blink/renderer/core/html/parser/html_tokenizer.h
+++ b/third_party/blink/renderer/core/html/parser/html_tokenizer.h
@@ -195,10 +195,6 @@
  private:
   inline bool ProcessEntity(SegmentedString&);
 
-  // Returns true if it has skipped all the whitespaces and we still have
-  // characters in the source.
-  ALWAYS_INLINE bool SkipWhitespaces(SegmentedString& source, UChar& cc);
-
   inline void ParseError();
 
   inline void BufferCharacter(UChar character) {
@@ -220,10 +216,6 @@
     return true;
   }
 
-  ALWAYS_INLINE bool EmitData(SegmentedString& source, UChar cc);
-
-  ALWAYS_INLINE bool EmitPLAINTEXT(SegmentedString& source, UChar cc);
-
   inline bool EmitEndOfFile(SegmentedString& source) {
     if (HaveBufferedCharacterToken())
       return true;
diff --git a/third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h b/third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h
index c4e65fe3..a82e36b0 100644
--- a/third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h
+++ b/third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h
@@ -36,9 +36,6 @@
 
 const LChar kEndOfFileMarker = 0;
 
-// https://html.spec.whatwg.org/#parse-error-unexpected-null-character
-const UChar kReplacementCharacter = 0xFFFD;
-
 // http://www.whatwg.org/specs/web-apps/current-work/#preprocessing-the-input-stream
 template <typename Tokenizer>
 class InputStreamPreprocessor {
@@ -68,44 +65,10 @@
     return ProcessNextInputCharacter(source, cc);
   }
 
-  // WARNING: This does not process null characters.
-  ALWAYS_INLINE bool AdvancePastCarriageReturn(SegmentedString& source,
-                                               UChar& cc) {
-    DCHECK_EQ(cc, '\r');
-    cc = source.AdvancePastNonNewline();
-    if (source.IsEmpty()) {
-      skip_next_new_line_ = true;
-      return false;
-    }
-    // We skip if '\r\n'
-    if (cc == '\n') {
-      cc = source.AdvancePastNewlineAndUpdateLineNumber();
-      if (source.IsEmpty())
-        return false;
-    }
-    return true;
-  }
+  bool SkipNextNewLine() const { return skip_next_new_line_; }
 
-  // WARNING: This does not canonize newlines.
-  ALWAYS_INLINE bool ProcessNullCharacter(SegmentedString& source, UChar& cc) {
-    DCHECK_EQ(cc, '\0');
-    if (source.IsEmpty())
-      return false;
-    if (ShouldTreatNullAsEndOfFileMarker(source))
-      return true;
-    if (!tokenizer_->ShouldSkipNullCharacters()) {
-      cc = kReplacementCharacter;
-      return true;
-    }
-    cc = source.AdvancePastNonNewline();
-    while (cc == '\0') {
-      if (source.IsEmpty())
-        return false;
-      if (ShouldTreatNullAsEndOfFileMarker(source))
-        return true;
-      cc = source.AdvancePastNonNewline();
-    }
-    return true;
+  void Reset(bool skip_next_new_line = false) {
+    skip_next_new_line_ = skip_next_new_line;
   }
 
  private:
@@ -154,7 +117,7 @@
             return false;
           goto ProcessAgain;
         }
-        cc = kReplacementCharacter;
+        cc = 0xFFFD;
       }
     }
     return true;
diff --git a/third_party/blink/renderer/core/html/parser/markup_tokenizer_inlines.h b/third_party/blink/renderer/core/html/parser/markup_tokenizer_inlines.h
index c4122dc..e752dde 100644
--- a/third_party/blink/renderer/core/html/parser/markup_tokenizer_inlines.h
+++ b/third_party/blink/renderer/core/html/parser/markup_tokenizer_inlines.h
@@ -59,7 +59,6 @@
 #define BEGIN_STATE(prefix, stateName) \
   case prefix::stateName:              \
   stateName:
-#define BEGIN_STATE_NOLABEL(prefix, stateName) case prefix::stateName:
 #define END_STATE() \
   NOTREACHED();     \
   break;
diff --git a/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm_test.cc b/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm_test.cc
index 86923518..d9eb2c5 100644
--- a/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm_test.cc
+++ b/third_party/blink/renderer/core/layout/ng/flex/ng_flex_layout_algorithm_test.cc
@@ -142,5 +142,12 @@
             devtools.lines[1].items[1].baseline);
 }
 
+TEST_F(NGFlexLayoutAlgorithmTest, DevtoolsOneImageItemCrash) {
+  DevtoolsFlexInfo devtools = LayoutForDevtools(R"HTML(
+    <div style="display: flex;" id=flexbox><img></div>
+  )HTML");
+  EXPECT_EQ(devtools.lines.size(), 1u);
+}
+
 }  // namespace
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
index 382d366..0e6e6cf 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
@@ -2830,7 +2830,7 @@
     list_marker = container_builder_.UnpositionedListMarker();
     if (!list_marker)
       return true;
-    container_builder_.SetUnpositionedListMarker(NGUnpositionedListMarker());
+    container_builder_.ClearUnpositionedListMarker();
   }
 
   const NGConstraintSpace& space = ConstraintSpace();
@@ -2899,7 +2899,7 @@
   list_marker.AddToBoxWithoutLineBoxes(
       space, baseline_type, *marker_layout_result, &container_builder_,
       &intrinsic_block_size_);
-  container_builder_.SetUnpositionedListMarker(NGUnpositionedListMarker());
+  container_builder_.ClearUnpositionedListMarker();
 
   return true;
 }
diff --git a/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc
index cb689c1..137f48c 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc
@@ -915,7 +915,7 @@
                   BorderScrollbarPadding(), *layout_result, *baseline,
                   &block_offset, &container_builder_);
 
-  container_builder_.SetUnpositionedListMarker(NGUnpositionedListMarker());
+  container_builder_.ClearUnpositionedListMarker();
 }
 
 void NGColumnLayoutAlgorithm::PositionAnyUnclaimedListMarker() {
@@ -934,7 +934,7 @@
   marker.AddToBoxWithoutLineBoxes(ConstraintSpace(), baseline_type,
                                   *layout_result, &container_builder_,
                                   &intrinsic_block_size_);
-  container_builder_.SetUnpositionedListMarker(NGUnpositionedListMarker());
+  container_builder_.ClearUnpositionedListMarker();
 }
 
 void NGColumnLayoutAlgorithm::PropagateBaselineFromChild(
diff --git a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
index 4404706..196aa7da 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
@@ -90,6 +90,9 @@
     DCHECK(!unpositioned_list_marker_ || !marker);
     unpositioned_list_marker_ = marker;
   }
+  void ClearUnpositionedListMarker() {
+    unpositioned_list_marker_ = NGUnpositionedListMarker();
+  }
 
   void ReplaceChild(wtf_size_t index,
                     const NGPhysicalFragment& new_child,
diff --git a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.cc
index 6df7d40ec..c89a439 100644
--- a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.cc
+++ b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.cc
@@ -612,14 +612,6 @@
       // flag is true, and the y coordinate otherwise.
       float shift = horizontal_ ? *result_[i].x : *result_[i].y;
 
-      if (in_text_path) {
-        const NGSVGCharacterData& resolve =
-            ResolvedIterator(inline_node_.SVGCharacterDataList()).AdvanceTo(i);
-        if (!((horizontal_ && resolve.HasX()) ||
-              (!horizontal_ && resolve.HasY())))
-          shift = 0.0f;
-      }
-
       // 1.3.2. Adjust shift based on the value of text-anchor and direction
       // of the element the character at index i is in:
       //  -> (start, ltr) or (end, rtl)
diff --git a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.cc b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.cc
index 7795810..151d596 100644
--- a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.cc
+++ b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.cc
@@ -254,7 +254,6 @@
       // of result[index + j] to true. Else set the flag to false.
       if (first_char_in_text_path) {
         data.anchored_chunk = true;
-        first_char_in_text_path = false;
       } else {
         data.anchored_chunk = attr_stack.ShouldStartAnchoredChunk(horizontal);
       }
@@ -266,6 +265,13 @@
       // false, unset resolve_x[index].
       if (in_text_path && !horizontal)
         data.x = SVGCharacterData::EmptyValue();
+      // Not in the specification; Set X/Y of the first character in a
+      // <textPath> to 0 in order to:
+      //   - Reset dx/dy in AdjustPositionsDxDy().
+      //   - Anchor at 0 in ApplyAnchoring().
+      // https://github.com/w3c/svgwg/issues/274
+      if (first_char_in_text_path && !data.HasX())
+        data.x = 0.0f;
 
       // 1.6.1.4. If i < length of y, then set resolve_y[index + j] to y[i].
       data.y = attr_stack.Y();
@@ -274,6 +280,15 @@
       // true, unset resolve_y[index].
       if (in_text_path && horizontal)
         data.y = SVGCharacterData::EmptyValue();
+      // Not in the specification; Set X/Y of the first character in a
+      // <textPath> to 0 in order to:
+      //   - Reset dx/dy in AdjustPositionsDxDy().
+      //   - Anchor at 0 in ApplyAnchoring().
+      // https://github.com/w3c/svgwg/issues/274
+      if (first_char_in_text_path && !data.HasY())
+        data.y = 0.0f;
+
+      first_char_in_text_path = false;
 
       // 1.6.1.6. If i < length of dx, then set resolve_dx[index + j] to dx[i].
       data.dx = attr_stack.Dx();
diff --git a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
index 62429bb..35c9e77 100644
--- a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
+++ b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h"
 
+#include "components/power_scheduler/power_mode_arbiter.h"
 #include "third_party/blink/renderer/core/core_probes_inl.h"
 #include "third_party/blink/renderer/core/frame/frame_console.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
@@ -27,6 +28,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h"
+#include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
@@ -40,7 +42,10 @@
     const ResourceFetcherProperties& fetcher_properties)
     : document_loader_(loader),
       document_(document),
-      fetcher_properties_(fetcher_properties) {}
+      fetcher_properties_(fetcher_properties),
+      power_mode_voter_(
+          power_scheduler::PowerModeArbiter::GetInstance()->NewVoter(
+              "PowerModeVoter.ResourceLoads")) {}
 ResourceLoadObserverForFrame::~ResourceLoadObserverForFrame() = default;
 
 void ResourceLoadObserverForFrame::DidStartRequest(
@@ -91,6 +96,7 @@
     idleness_detector->OnWillSendRequest(document_->Fetcher());
   if (auto* interactive_detector = InteractiveDetector::From(*document_))
     interactive_detector->OnResourceLoadBegin(base::nullopt);
+  UpdatePowerModeVote();
 }
 
 void ResourceLoadObserverForFrame::DidChangePriority(
@@ -245,6 +251,7 @@
   if (IdlenessDetector* idleness_detector = frame->GetIdlenessDetector()) {
     idleness_detector->OnDidLoadResource();
   }
+  UpdatePowerModeVote();
   document_->CheckCompleted();
 }
 
@@ -274,6 +281,7 @@
   if (IdlenessDetector* idleness_detector = frame->GetIdlenessDetector()) {
     idleness_detector->OnDidLoadResource();
   }
+  UpdatePowerModeVote();
   document_->CheckCompleted();
 }
 
@@ -292,4 +300,22 @@
   document_loader_->GetUseCounter().Count(feature, document_->GetFrame());
 }
 
+void ResourceLoadObserverForFrame::UpdatePowerModeVote() {
+  // Vote for loading as long as there are at least three pending requests.
+  int request_count = document_->Fetcher()->ActiveRequestCount();
+  bool should_vote_loading = request_count > 2;
+
+  if (should_vote_loading == power_mode_vote_is_loading_)
+    return;
+
+  if (should_vote_loading) {
+    power_mode_voter_->VoteFor(power_scheduler::PowerMode::kLoading);
+  } else {
+    power_mode_voter_->ResetVoteAfterTimeout(
+        power_scheduler::PowerModeVoter::kLoadingTimeout);
+  }
+
+  power_mode_vote_is_loading_ = should_vote_loading;
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h
index dbd3d7c..e1f00c904 100644
--- a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h
+++ b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h
@@ -8,6 +8,7 @@
 #include <inttypes.h>
 
 #include "base/containers/span.h"
+#include "components/power_scheduler/power_mode_voter.h"
 #include "third_party/blink/public/mojom/frame/back_forward_cache_controller.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/web_feature_forward.h"
@@ -65,11 +66,16 @@
   CoreProbeSink* GetProbe();
   void CountUsage(WebFeature);
 
+  void UpdatePowerModeVote();
+
   // There are some overlap between |document_loader_|, |document_| and
   // |fetcher_properties_|. Use |fetcher_properties_| whenever possible.
   const Member<DocumentLoader> document_loader_;
   const Member<Document> document_;
   const Member<const ResourceFetcherProperties> fetcher_properties_;
+
+  std::unique_ptr<power_scheduler::PowerModeVoter> power_mode_voter_;
+  bool power_mode_vote_is_loading_ = false;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/page/chrome_client_impl.cc b/third_party/blink/renderer/core/page/chrome_client_impl.cc
index 26990cd..be36779 100644
--- a/third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ b/third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -234,7 +234,7 @@
 }
 
 bool ChromeClientImpl::AcceptsLoadDrops() const {
-  return !web_view_->Client() || web_view_->Client()->AcceptsLoadDrops();
+  return web_view_->GetRendererPreferences().can_accept_load_drops;
 }
 
 Page* ChromeClientImpl::CreateWindowDelegate(
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
index ba3a230..e5eb187 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -1666,6 +1666,10 @@
   float x = clampTo<float>(centerX);
   float y = clampTo<float>(centerY);
 
+  // convert |startAngle| from radians to degree and rotate 90 degree, so
+  // |startAngle| at 0 starts from x-axis.
+  a = rad2deg(a) + 90;
+
   auto* gradient = MakeGarbageCollected<CanvasGradient>(a, FloatPoint(x, y));
   return gradient;
 }
diff --git a/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc b/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc
index 27b23acf..3dabb82f 100644
--- a/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc
+++ b/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc
@@ -9,6 +9,7 @@
 
 #include "base/single_thread_task_runner.h"
 #include "base/task/post_task.h"
+#include "mojo/public/cpp/base/big_buffer.h"
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom-blink.h"
 #include "third_party/blink/public/platform/task_type.h"
diff --git a/third_party/blink/renderer/modules/clipboard/clipboard_promise.h b/third_party/blink/renderer/modules/clipboard/clipboard_promise.h
index 8cd5387..5805b43 100644
--- a/third_party/blink/renderer/modules/clipboard/clipboard_promise.h
+++ b/third_party/blink/renderer/modules/clipboard/clipboard_promise.h
@@ -18,6 +18,10 @@
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
 
+namespace mojo_base {
+class BigBuffer;
+}
+
 namespace blink {
 
 class ClipboardWriter;
diff --git a/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc b/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc
index 54e2e7d3..016d31e 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc
+++ b/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc
@@ -58,6 +58,8 @@
       std::unique_ptr<WebContentDecryptionModuleAccess>) override;
   void RequestNotSupported(const WebString& error_message) override;
 
+  void StartRequestAsync();
+
   void Trace(Visitor* visitor) const override {
     MediaKeySystemAccessInitializerBase::Trace(visitor);
   }
@@ -99,6 +101,21 @@
   resolver_.Clear();
 }
 
+void MediaKeySystemAccessInitializer::StartRequestAsync() {
+  if (!IsExecutionContextValid() || !DomWindow())
+    return;
+
+  // 6. Asynchronously determine support, and if allowed, create and
+  //    initialize the MediaKeySystemAccess object.
+  DCHECK(!DomWindow()->document()->IsPrerendering());
+
+  MediaKeysController* controller =
+      MediaKeysController::From(DomWindow()->GetFrame()->GetPage());
+  WebEncryptedMediaClient* media_client =
+      controller->EncryptedMediaClient(DomWindow());
+  media_client->RequestMediaKeySystemAccess(WebEncryptedMediaRequest(this));
+}
+
 }  // namespace
 
 ScriptPromise NavigatorRequestMediaKeySystemAccess::requestMediaKeySystemAccess(
@@ -164,6 +181,14 @@
           script_state, key_system, supported_configurations);
   ScriptPromise promise = initializer->Promise();
 
+  // Defer to determine support until the prerendering page is activated.
+  if (window->document()->IsPrerendering()) {
+    window->document()->AddPostPrerenderingActivationStep(
+        WTF::Bind(&MediaKeySystemAccessInitializer::StartRequestAsync,
+                  WrapWeakPersistent(initializer)));
+    return promise;
+  }
+
   // 6. Asynchronously determine support, and if allowed, create and
   //    initialize the MediaKeySystemAccess object.
   MediaKeysController* controller =
diff --git a/third_party/blink/renderer/modules/file_system_access/file_system_underlying_sink.cc b/third_party/blink/renderer/modules/file_system_access/file_system_underlying_sink.cc
index 07fbb30..9f902c91 100644
--- a/third_party/blink/renderer/modules/file_system_access/file_system_underlying_sink.cc
+++ b/third_party/blink/renderer/modules/file_system_access/file_system_underlying_sink.cc
@@ -6,6 +6,7 @@
 
 #include "mojo/public/cpp/system/string_data_source.h"
 #include "third_party/blink/public/common/blob/blob_utils.h"
+#include "third_party/blink/public/mojom/blob/blob.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/array_buffer_or_array_buffer_view_or_blob_or_usv_string.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc b/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc
index d9467fd..0a41c7a7 100644
--- a/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc
+++ b/third_party/blink/renderer/modules/peerconnection/webrtc_audio_renderer_test.cc
@@ -144,6 +144,7 @@
             /*is_hidden=*/false,
             /*is_inside_portal=*/false,
             /*compositing_enabled=*/false,
+            /*widgets_never_composited=*/false,
             /*opener=*/nullptr,
             mojo::NullAssociatedReceiver(),
             *agent_group_scheduler_,
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_messaging_proxy.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_messaging_proxy.cc
index 109cf3c..a6e0191 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_messaging_proxy.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_messaging_proxy.cc
@@ -114,13 +114,8 @@
   if (!has_realtime_constraint)
     return std::make_unique<OfflineAudioWorkletThread>(worker_reporting_proxy);
 
-  // If the flag is set, it overrides the default thread priority for
-  // subframes. This is only allowed for the experimental purposes, and this
-  // flag will be deprecated in M90. (See crbug.com/1156842)
-  if (is_top_level_frame ||
-      base::FeatureList::IsEnabled(features::kAudioWorkletRealtimeThread)) {
+  if (is_top_level_frame)
     return std::make_unique<RealtimeAudioWorkletThread>(worker_reporting_proxy);
-  }
 
   return std::make_unique<SemiRealtimeAudioWorkletThread>(
       worker_reporting_proxy);
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
index 4d9995c..75facbc 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
@@ -328,54 +328,37 @@
   const bool has_realtime_constraint;
   const bool is_top_level_frame;
   const bool is_enabled_by_finch;
-  const bool is_enabled_by_flag;
   const base::ThreadPriority expected_priority;
 };
 
 constexpr ThreadPriorityTestParam kThreadPriorityTestParams[] = {
-  // RT thread enabled by Finch.
-  {true, true, true, true, true, base::ThreadPriority::REALTIME_AUDIO},
-  {true, true, true, true, false, base::ThreadPriority::REALTIME_AUDIO},
+    // RT thread enabled by Finch.
+    {true, true, true, true, base::ThreadPriority::REALTIME_AUDIO},
 
-  // RT thread disabled by Finch.
-  {true, true, true, false, true, base::ThreadPriority::NORMAL},
-  {true, true, true, false, false, base::ThreadPriority::NORMAL},
+    // RT thread disabled by Finch.
+    {true, true, true, false, base::ThreadPriority::NORMAL},
 
-  // Non-main frame, RT thread enabled by Finch: depends the local flag.
-  {true, true, false, true, true, base::ThreadPriority::REALTIME_AUDIO},
-  {true, true, false, true, false, base::ThreadPriority::DISPLAY},
+    // Non-main frame, RT thread enabled by Finch.
+    {true, true, false, true, base::ThreadPriority::DISPLAY},
 
-  // Non-main frame, RT thread disabled by Finch.
-  {true, true, false, false, true, base::ThreadPriority::NORMAL},
-  {true, true, false, false, false, base::ThreadPriority::NORMAL},
+    // Non-main frame, RT thread disabled by Finch.
+    {true, true, false, false, base::ThreadPriority::NORMAL},
 
-  // The OfflineAudioContext always uses a NORMAL priority thread.
-  {true, false, true, true, true, base::ThreadPriority::NORMAL},
-  {true, false, true, true, false, base::ThreadPriority::NORMAL},
-  {true, false, true, false, true, base::ThreadPriority::NORMAL},
-  {true, false, true, false, false, base::ThreadPriority::NORMAL},
-  {true, false, false, true, true, base::ThreadPriority::NORMAL},
-  {true, false, false, true, false, base::ThreadPriority::NORMAL},
-  {true, false, false, false, true, base::ThreadPriority::NORMAL},
-  {true, false, false, false, false, base::ThreadPriority::NORMAL},
+    // The OfflineAudioContext always uses a NORMAL priority thread.
+    {true, false, true, true, base::ThreadPriority::NORMAL},
+    {true, false, true, false, base::ThreadPriority::NORMAL},
+    {true, false, false, true, base::ThreadPriority::NORMAL},
+    {true, false, false, false, base::ThreadPriority::NORMAL},
 
-  // Top-level await does not affect the test result.
-  {false, true, true, true, true, base::ThreadPriority::REALTIME_AUDIO},
-  {false, true, true, true, false, base::ThreadPriority::REALTIME_AUDIO},
-  {false, true, true, false, true, base::ThreadPriority::NORMAL},
-  {false, true, true, false, false, base::ThreadPriority::NORMAL},
-  {false, true, false, true, true, base::ThreadPriority::REALTIME_AUDIO},
-  {false, true, false, true, false, base::ThreadPriority::DISPLAY},
-  {false, true, false, false, true, base::ThreadPriority::NORMAL},
-  {false, true, false, false, false, base::ThreadPriority::NORMAL},
-  {false, false, true, true, true, base::ThreadPriority::NORMAL},
-  {false, false, true, true, false, base::ThreadPriority::NORMAL},
-  {false, false, true, false, true, base::ThreadPriority::NORMAL},
-  {false, false, true, false, false, base::ThreadPriority::NORMAL},
-  {false, false, false, true, true, base::ThreadPriority::NORMAL},
-  {false, false, false, true, false, base::ThreadPriority::NORMAL},
-  {false, false, false, false, true, base::ThreadPriority::NORMAL},
-  {false, false, false, false, false, base::ThreadPriority::NORMAL},
+    // Top-level await does not affect the test result.
+    {false, true, true, true, base::ThreadPriority::REALTIME_AUDIO},
+    {false, true, true, false, base::ThreadPriority::NORMAL},
+    {false, true, false, true, base::ThreadPriority::DISPLAY},
+    {false, true, false, false, base::ThreadPriority::NORMAL},
+    {false, false, true, true, base::ThreadPriority::NORMAL},
+    {false, false, true, false, base::ThreadPriority::NORMAL},
+    {false, false, false, true, base::ThreadPriority::NORMAL},
+    {false, false, false, false, base::ThreadPriority::NORMAL},
 };
 
 class AudioWorkletThreadPriorityTest
@@ -385,18 +368,13 @@
   AudioWorkletThreadPriorityTest()
       : AudioWorkletThreadTestBase(GetParam().use_top_level_await) {}
 
-  void InitWithRealtimePrioritySettings(bool is_enabled_by_finch,
-                                        bool is_enabled_by_flag) {
+  void InitWithRealtimePrioritySettings(bool is_enabled_by_finch) {
     std::vector<base::Feature> enabled;
     std::vector<base::Feature> disabled;
     if (is_enabled_by_finch)
       enabled.push_back(features::kAudioWorkletThreadRealtimePriority);
     else
       disabled.push_back(features::kAudioWorkletThreadRealtimePriority);
-    if (is_enabled_by_flag)
-      enabled.push_back(features::kAudioWorkletRealtimeThread);
-    else
-      disabled.push_back(features::kAudioWorkletRealtimeThread);
     feature_list_.InitWithFeatures(enabled, disabled);
   }
 
@@ -454,8 +432,7 @@
 
 TEST_P(AudioWorkletThreadPriorityTest, CheckThreadPriority) {
   const auto& test_param = GetParam();
-  InitWithRealtimePrioritySettings(test_param.is_enabled_by_finch,
-                                   test_param.is_enabled_by_flag);
+  InitWithRealtimePrioritySettings(test_param.is_enabled_by_finch);
   CreateCheckThreadPriority(test_param.has_realtime_constraint,
                             test_param.is_top_level_frame,
                             test_param.expected_priority);
diff --git a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc
index 1cda2ad8..cf6e92f 100644
--- a/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc
+++ b/third_party/blink/renderer/modules/webgpu/dawn_enum_conversions.cc
@@ -716,98 +716,6 @@
   if (webgpu_enum == "sint32x4") {
     return WGPUVertexFormat_Sint32x4;
   }
-
-  // Deprecated formats
-  if (webgpu_enum == "uchar2") {
-    return WGPUVertexFormat_UChar2;
-  }
-  if (webgpu_enum == "uchar4") {
-    return WGPUVertexFormat_UChar4;
-  }
-  if (webgpu_enum == "char2") {
-    return WGPUVertexFormat_Char2;
-  }
-  if (webgpu_enum == "char4") {
-    return WGPUVertexFormat_Char4;
-  }
-  if (webgpu_enum == "uchar2norm") {
-    return WGPUVertexFormat_UChar2Norm;
-  }
-  if (webgpu_enum == "uchar4norm") {
-    return WGPUVertexFormat_UChar4Norm;
-  }
-  if (webgpu_enum == "char2norm") {
-    return WGPUVertexFormat_Char2Norm;
-  }
-  if (webgpu_enum == "char4norm") {
-    return WGPUVertexFormat_Char4Norm;
-  }
-  if (webgpu_enum == "ushort2") {
-    return WGPUVertexFormat_UShort2;
-  }
-  if (webgpu_enum == "ushort4") {
-    return WGPUVertexFormat_UShort4;
-  }
-  if (webgpu_enum == "short2") {
-    return WGPUVertexFormat_Short2;
-  }
-  if (webgpu_enum == "short4") {
-    return WGPUVertexFormat_Short4;
-  }
-  if (webgpu_enum == "ushort2norm") {
-    return WGPUVertexFormat_UShort2Norm;
-  }
-  if (webgpu_enum == "ushort4norm") {
-    return WGPUVertexFormat_UShort4Norm;
-  }
-  if (webgpu_enum == "short2norm") {
-    return WGPUVertexFormat_Short2Norm;
-  }
-  if (webgpu_enum == "short4norm") {
-    return WGPUVertexFormat_Short4Norm;
-  }
-  if (webgpu_enum == "half2") {
-    return WGPUVertexFormat_Half2;
-  }
-  if (webgpu_enum == "half4") {
-    return WGPUVertexFormat_Half4;
-  }
-  if (webgpu_enum == "float") {
-    return WGPUVertexFormat_Float;
-  }
-  if (webgpu_enum == "float2") {
-    return WGPUVertexFormat_Float2;
-  }
-  if (webgpu_enum == "float3") {
-    return WGPUVertexFormat_Float3;
-  }
-  if (webgpu_enum == "float4") {
-    return WGPUVertexFormat_Float4;
-  }
-  if (webgpu_enum == "uint") {
-    return WGPUVertexFormat_UInt;
-  }
-  if (webgpu_enum == "uint2") {
-    return WGPUVertexFormat_UInt2;
-  }
-  if (webgpu_enum == "uint3") {
-    return WGPUVertexFormat_UInt3;
-  }
-  if (webgpu_enum == "uint4") {
-    return WGPUVertexFormat_UInt4;
-  }
-  if (webgpu_enum == "int") {
-    return WGPUVertexFormat_Int;
-  }
-  if (webgpu_enum == "int2") {
-    return WGPUVertexFormat_Int2;
-  }
-  if (webgpu_enum == "int3") {
-    return WGPUVertexFormat_Int3;
-  }
-  if (webgpu_enum == "int4") {
-    return WGPUVertexFormat_Int4;
-  }
   NOTREACHED();
   return WGPUVertexFormat_Force32;
 }
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.cc b/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.cc
index 925b16e..f755b454 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.cc
@@ -58,32 +58,6 @@
             webgpu_binding->storageTexture()->viewDimension());
   }
 
-  // Deprecated values
-  if (webgpu_binding->hasType()) {
-    device->AddConsoleWarning(
-        "The format of GPUBindGroupLayoutEntry has changed, and will soon "
-        "require the buffer, sampler, texture, or storageTexture members be "
-        "set rather than setting type, etc. on the entry directly.");
-
-    dawn_binding.type = AsDawnEnum<WGPUBindingType>(webgpu_binding->type());
-
-    dawn_binding.hasDynamicOffset = webgpu_binding->hasDynamicOffset();
-
-    dawn_binding.minBufferBindingSize =
-        webgpu_binding->hasMinBufferBindingSize()
-            ? webgpu_binding->minBufferBindingSize()
-            : 0;
-
-    dawn_binding.viewDimension =
-        AsDawnEnum<WGPUTextureViewDimension>(webgpu_binding->viewDimension());
-
-    dawn_binding.textureComponentType = AsDawnEnum<WGPUTextureComponentType>(
-        webgpu_binding->textureComponentType());
-
-    dawn_binding.storageTextureFormat =
-        AsDawnEnum<WGPUTextureFormat>(webgpu_binding->storageTextureFormat());
-  }
-
   return dawn_binding;
 }
 
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout_entry.idl b/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout_entry.idl
index 1cbd37d..7a822f70 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout_entry.idl
+++ b/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout_entry.idl
@@ -8,19 +8,6 @@
     GPUSamplerBindingLayout sampler;
     GPUTextureBindingLayout texture;
     GPUStorageTextureBindingLayout storageTexture;
-
-    // Deprecated BindGroupLayout members.
-    GPUBindingType type;
-
-    boolean hasDynamicOffset = false;
-
-    GPUSize64 minBufferBindingSize;
-
-    GPUTextureViewDimension viewDimension = "2d";
-
-    GPUTextureComponentType textureComponentType = "float";
-
-    GPUTextureFormat storageTextureFormat;
 };
 
 enum GPUBindingType {
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc b/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc
index d5aeb69..ad61b8e 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc
@@ -129,15 +129,6 @@
   switch (format) {
     case WGPUTextureFormat_BGRA8Unorm:
       break;
-    case WGPUTextureFormat_RGBA8Unorm:
-      if ((usage & WGPUTextureUsage_RenderAttachment) != usage) {
-        exception_state.ThrowDOMException(
-            DOMExceptionCode::kOperationError,
-            "rgba8unorm can only support RENDER_ATTACHMENT usage");
-      }
-      descriptor->device()->AddConsoleWarning(
-          "rgba8unorm swap chain is deprecated (for now); use bgra8unorm");
-      break;
     case WGPUTextureFormat_RGBA16Float:
       exception_state.ThrowDOMException(
           DOMExceptionCode::kUnknownError,
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_device.cc b/third_party/blink/renderer/modules/webgpu/gpu_device.cc
index fcfeefa..faeaba5 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_device.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_device.cc
@@ -288,19 +288,10 @@
   auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
   ScriptPromise promise = resolver->Promise();
 
-  if (!descriptor->hasVertex()) {
-    // Shim asynchronous pipeline compilation with the deprecated shape of the
-    // GPURenderPipelineDescriptor by immediately creating a pipeline and
-    // resolving the promise.
-    resolver->Resolve(
-        GPURenderPipeline::Create(script_state, this, descriptor));
-    return promise;
-  }
-
   v8::Isolate* isolate = script_state->GetIsolate();
   ExceptionState exception_state(isolate, ExceptionState::kExecutionContext,
                                  "GPUDevice", "createRenderPipelineAsync");
-  OwnedRenderPipelineDescriptor2 dawn_desc_info;
+  OwnedRenderPipelineDescriptor dawn_desc_info;
   ConvertToDawnType(isolate, this, descriptor, &dawn_desc_info,
                     exception_state);
   if (exception_state.HadException()) {
@@ -349,24 +340,6 @@
   return promise;
 }
 
-ScriptPromise GPUDevice::createReadyRenderPipeline(
-    ScriptState* script_state,
-    const GPURenderPipelineDescriptor* descriptor) {
-  AddConsoleWarning(
-      "createReadyRenderPipeline is deprecated in favor of "
-      "createRenderPipelineAsync");
-  return createRenderPipelineAsync(script_state, descriptor);
-}
-
-ScriptPromise GPUDevice::createReadyComputePipeline(
-    ScriptState* script_state,
-    const GPUComputePipelineDescriptor* descriptor) {
-  AddConsoleWarning(
-      "createReadyComputePipeline is deprecated in favor of "
-      "createComputePipelineAsync");
-  return createComputePipelineAsync(script_state, descriptor);
-}
-
 GPUCommandEncoder* GPUDevice::createCommandEncoder(
     const GPUCommandEncoderDescriptor* descriptor) {
   return GPUCommandEncoder::Create(this, descriptor);
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_device.h b/third_party/blink/renderer/modules/webgpu/gpu_device.h
index 49c602e..05e8161e 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_device.h
+++ b/third_party/blink/renderer/modules/webgpu/gpu_device.h
@@ -103,12 +103,6 @@
   ScriptPromise createComputePipelineAsync(
       ScriptState* script_state,
       const GPUComputePipelineDescriptor* descriptor);
-  ScriptPromise createReadyRenderPipeline(
-      ScriptState* script_state,
-      const GPURenderPipelineDescriptor* descriptor);
-  ScriptPromise createReadyComputePipeline(
-      ScriptState* script_state,
-      const GPUComputePipelineDescriptor* descriptor);
 
   GPUCommandEncoder* createCommandEncoder(
       const GPUCommandEncoderDescriptor* descriptor);
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_device.idl b/third_party/blink/renderer/modules/webgpu/gpu_device.idl
index 7545cf5e..66927dbb 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_device.idl
+++ b/third_party/blink/renderer/modules/webgpu/gpu_device.idl
@@ -31,10 +31,6 @@
     [CallWith=ScriptState] Promise<GPURenderPipeline?> createRenderPipelineAsync(GPURenderPipelineDescriptor descriptor);
     [CallWith=ScriptState] Promise<GPUComputePipeline?> createComputePipelineAsync(GPUComputePipelineDescriptor descriptor);
 
-    // Deprecated
-    [CallWith=ScriptState] Promise<GPURenderPipeline?> createReadyRenderPipeline(GPURenderPipelineDescriptor descriptor);
-    [CallWith=ScriptState] Promise<GPUComputePipeline?> createReadyComputePipeline(GPUComputePipelineDescriptor descriptor);
-
     GPUCommandEncoder createCommandEncoder(optional GPUCommandEncoderDescriptor descriptor = {});
     GPURenderBundleEncoder createRenderBundleEncoder(GPURenderBundleEncoderDescriptor descriptor);
 
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc
index efbe9ee..bbd71e4 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc
@@ -20,7 +20,6 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_attribute.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_buffer_layout.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_state.h"
-#include "third_party/blink/renderer/bindings/modules/v8/v8_gpu_vertex_state_descriptor.h"
 #include "third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.h"
 #include "third_party/blink/renderer/modules/webgpu/gpu_device.h"
 #include "third_party/blink/renderer/modules/webgpu/gpu_pipeline_layout.h"
@@ -89,24 +88,6 @@
 
 }  // anonymous namespace
 
-WGPUColorStateDescriptor AsDawnType(
-    const GPUColorStateDescriptor* webgpu_desc) {
-  DCHECK(webgpu_desc);
-
-  WGPUColorStateDescriptor dawn_desc = {};
-  dawn_desc.nextInChain = nullptr;
-  // By not passing a device here we won't get deprecation warnings for the
-  // blend factors, but this path is only taken when using the deprecated
-  // renderPipelineDescriptor format, which carries it's own warning.
-  dawn_desc.alphaBlend = AsDawnType(webgpu_desc->alphaBlend(), nullptr);
-  dawn_desc.colorBlend = AsDawnType(webgpu_desc->colorBlend(), nullptr);
-  dawn_desc.writeMask =
-      AsDawnEnum<WGPUColorWriteMask>(webgpu_desc->writeMask());
-  dawn_desc.format = AsDawnEnum<WGPUTextureFormat>(webgpu_desc->format());
-
-  return dawn_desc;
-}
-
 WGPUColorTargetState AsDawnType(const GPUColorTargetState* webgpu_desc) {
   DCHECK(webgpu_desc);
 
@@ -137,24 +118,6 @@
   return dawn_desc;
 }
 
-WGPUDepthStencilStateDescriptor AsDawnType(
-    const GPUDepthStencilStateDescriptor* webgpu_desc) {
-  DCHECK(webgpu_desc);
-
-  WGPUDepthStencilStateDescriptor dawn_desc = {};
-  dawn_desc.nextInChain = nullptr;
-  dawn_desc.depthCompare =
-      AsDawnEnum<WGPUCompareFunction>(webgpu_desc->depthCompare());
-  dawn_desc.depthWriteEnabled = webgpu_desc->depthWriteEnabled();
-  dawn_desc.format = AsDawnEnum<WGPUTextureFormat>(webgpu_desc->format());
-  dawn_desc.stencilBack = AsDawnType(webgpu_desc->stencilBack());
-  dawn_desc.stencilFront = AsDawnType(webgpu_desc->stencilFront());
-  dawn_desc.stencilReadMask = webgpu_desc->stencilReadMask();
-  dawn_desc.stencilWriteMask = webgpu_desc->stencilWriteMask();
-
-  return dawn_desc;
-}
-
 void GPUPrimitiveStateAsWGPUPrimitiveState(
     const GPUPrimitiveState* webgpu_desc, OwnedPrimitiveState* dawn_state) {
   DCHECK(webgpu_desc);
@@ -211,73 +174,6 @@
   return dawn_desc;
 }
 
-const char* GetUpdatedVertexFormat(WGPUVertexFormat format) {
-  switch (format) {
-    case WGPUVertexFormat_UChar2:
-      return "uint8x2";
-    case WGPUVertexFormat_UChar4:
-      return "uint8x4";
-    case WGPUVertexFormat_Char2:
-      return "sint8x2";
-    case WGPUVertexFormat_Char4:
-      return "sint8x4";
-    case WGPUVertexFormat_UChar2Norm:
-      return "unorm8x2";
-    case WGPUVertexFormat_UChar4Norm:
-      return "unorm8x4";
-    case WGPUVertexFormat_Char2Norm:
-      return "snorm8x2";
-    case WGPUVertexFormat_Char4Norm:
-      return "snorm8x4";
-    case WGPUVertexFormat_UShort2:
-      return "uint16x2";
-    case WGPUVertexFormat_UShort4:
-      return "uint16x4";
-    case WGPUVertexFormat_Short2:
-      return "sint16x2";
-    case WGPUVertexFormat_Short4:
-      return "sint16x4";
-    case WGPUVertexFormat_UShort2Norm:
-      return "unorm16x2";
-    case WGPUVertexFormat_UShort4Norm:
-      return "unorm16x4";
-    case WGPUVertexFormat_Short2Norm:
-      return "snorm16x2";
-    case WGPUVertexFormat_Short4Norm:
-      return "snorm16x4";
-    case WGPUVertexFormat_Half2:
-      return "float16x2";
-    case WGPUVertexFormat_Half4:
-      return "float16x4";
-    case WGPUVertexFormat_Float:
-      return "float32";
-    case WGPUVertexFormat_Float2:
-      return "float32x2";
-    case WGPUVertexFormat_Float3:
-      return "float32x3";
-    case WGPUVertexFormat_Float4:
-      return "float32x4";
-    case WGPUVertexFormat_UInt:
-      return "uint32";
-    case WGPUVertexFormat_UInt2:
-      return "uint32x2";
-    case WGPUVertexFormat_UInt3:
-      return "uint32x3";
-    case WGPUVertexFormat_UInt4:
-      return "uint32x4";
-    case WGPUVertexFormat_Int:
-      return "sint32";
-    case WGPUVertexFormat_Int2:
-      return "sint32x2";
-    case WGPUVertexFormat_Int3:
-      return "sint32x3";
-    case WGPUVertexFormat_Int4:
-      return "sint32x4";
-    default:
-      return "";
-  }
-}
-
 void AsDawnVertexBufferLayouts(
     v8::Isolate* isolate,
     GPUDevice* device,
@@ -336,14 +232,6 @@
       dawn_vertex_attribute.offset = attribute->offset();
       dawn_vertex_attribute.format =
           AsDawnEnum<WGPUVertexFormat>(attribute->format());
-      if (dawn_vertex_attribute.format >= WGPUVertexFormat_UChar2) {
-        WTF::String message =
-            String("The vertex format '") +
-            IDLEnumAsString(attribute->format()) +
-            String("' has been deprecated in favor of '") +
-            GetUpdatedVertexFormat(dawn_vertex_attribute.format) + "'.";
-        device->AddConsoleWarning(message.Utf8().data());
-      }
       dawn_vertex_attributes->push_back(dawn_vertex_attribute);
     }
   }
@@ -361,40 +249,6 @@
   }
 }
 
-void GPUVertexStateAsWGPUVertexState(
-    v8::Isolate* isolate,
-    GPUDevice* device,
-    const GPUVertexStateDescriptor* descriptor,
-    WGPUVertexStateDescriptor* dawn_desc,
-    Vector<WGPUVertexBufferLayoutDescriptor>* dawn_vertex_buffers,
-    Vector<WGPUVertexAttributeDescriptor>* dawn_vertex_attributes,
-    ExceptionState& exception_state) {
-  DCHECK(isolate);
-  DCHECK(descriptor);
-  DCHECK(dawn_desc);
-  DCHECK(dawn_vertex_buffers);
-  DCHECK(dawn_vertex_attributes);
-
-  *dawn_desc = {};
-  dawn_desc->indexFormat =
-      AsDawnEnum<WGPUIndexFormat>(descriptor->indexFormat());
-  dawn_desc->vertexBufferCount = 0;
-  dawn_desc->vertexBuffers = nullptr;
-
-  if (descriptor->hasVertexBuffers()) {
-    // TODO(crbug.com/951629): Use a sequence of nullable descriptors.
-    v8::Local<v8::Value> vertex_buffers_value =
-        descriptor->vertexBuffers().V8Value();
-    AsDawnVertexBufferLayouts(isolate, device, vertex_buffers_value,
-                              dawn_vertex_buffers, dawn_vertex_attributes,
-                              exception_state);
-  }
-
-  dawn_desc->vertexBufferCount =
-      static_cast<uint32_t>(dawn_vertex_buffers->size());
-  dawn_desc->vertexBuffers = dawn_vertex_buffers->data();
-}
-
 void GPUFragmentStateAsWGPUFragmentState(GPUDevice* device,
                                          const GPUFragmentState* descriptor,
                                          OwnedFragmentState* dawn_fragment) {
@@ -428,21 +282,6 @@
   }
 }
 
-WGPURasterizationStateDescriptor AsDawnType(
-    const GPURasterizationStateDescriptor* webgpu_desc) {
-  DCHECK(webgpu_desc);
-
-  WGPURasterizationStateDescriptor dawn_desc = {};
-  dawn_desc.nextInChain = nullptr;
-  dawn_desc.frontFace = AsDawnEnum<WGPUFrontFace>(webgpu_desc->frontFace());
-  dawn_desc.cullMode = AsDawnEnum<WGPUCullMode>(webgpu_desc->cullMode());
-  dawn_desc.depthBias = webgpu_desc->depthBias();
-  dawn_desc.depthBiasSlopeScale = webgpu_desc->depthBiasSlopeScale();
-  dawn_desc.depthBiasClamp = webgpu_desc->depthBiasClamp();
-
-  return dawn_desc;
-}
-
 }  // anonymous namespace
 
 void ConvertToDawnType(v8::Isolate* isolate,
@@ -453,101 +292,6 @@
   DCHECK(isolate);
   DCHECK(webgpu_desc);
   DCHECK(dawn_desc_info);
-  DCHECK(!webgpu_desc->hasVertex());
-
-  device->AddConsoleWarning(
-      "The format of GPURenderPipelineDescriptor has "
-      "changed, and will soon require the new structure. Please begin using "
-      "the vertex, primitive, depthStencil, multisample, and fragment members");
-
-  // Check for required members. Can't do this in the IDL because then the
-  // deprecated members would be required for the new layout.
-  if (!webgpu_desc->vertexStage()) {
-    exception_state.ThrowTypeError("required member vertexStage is undefined.");
-    return;
-  }
-
-  if (!webgpu_desc->hasPrimitiveTopology()) {
-    exception_state.ThrowTypeError(
-        "required member primitiveTopology is undefined.");
-    return;
-  }
-
-  if (!webgpu_desc->hasColorStates()) {
-    exception_state.ThrowTypeError("required member colorStates is undefined.");
-    return;
-  }
-
-  GPUVertexStateAsWGPUVertexState(
-      isolate, device, webgpu_desc->vertexState(),
-      &dawn_desc_info->vertex_state, &dawn_desc_info->vertex_buffer_layouts,
-      &dawn_desc_info->vertex_attributes, exception_state);
-  if (exception_state.HadException()) {
-    return;
-  }
-  dawn_desc_info->dawn_desc.vertexState = &dawn_desc_info->vertex_state;
-
-  if (webgpu_desc->hasLayout()) {
-    dawn_desc_info->dawn_desc.layout = AsDawnType(webgpu_desc->layout());
-  }
-
-  if (webgpu_desc->hasLabel()) {
-    dawn_desc_info->label = webgpu_desc->label().Utf8();
-    dawn_desc_info->dawn_desc.label = dawn_desc_info->label.c_str();
-  }
-
-  dawn_desc_info->vertex_stage_info = AsDawnType(webgpu_desc->vertexStage());
-  dawn_desc_info->dawn_desc.vertexStage =
-      std::get<0>(dawn_desc_info->vertex_stage_info);
-  if (webgpu_desc->hasFragmentStage()) {
-    dawn_desc_info->fragment_stage_info =
-        AsDawnType(webgpu_desc->fragmentStage());
-    dawn_desc_info->dawn_desc.fragmentStage =
-        &std::get<0>(dawn_desc_info->fragment_stage_info);
-  }
-
-  dawn_desc_info->dawn_desc.primitiveTopology =
-      AsDawnEnum<WGPUPrimitiveTopology>(webgpu_desc->primitiveTopology());
-
-  dawn_desc_info->rasterization_state =
-      AsDawnType(webgpu_desc->rasterizationState());
-  dawn_desc_info->dawn_desc.rasterizationState =
-      &dawn_desc_info->rasterization_state;
-
-  dawn_desc_info->dawn_desc.sampleCount = webgpu_desc->sampleCount();
-
-  if (webgpu_desc->hasDepthStencilState()) {
-    dawn_desc_info->depth_stencil_state =
-        AsDawnType(webgpu_desc->depthStencilState());
-    dawn_desc_info->dawn_desc.depthStencilState =
-        &dawn_desc_info->depth_stencil_state;
-  }
-
-  dawn_desc_info->color_states = AsDawnType(webgpu_desc->colorStates());
-  dawn_desc_info->dawn_desc.colorStateCount =
-      static_cast<uint32_t>(webgpu_desc->colorStates().size());
-  dawn_desc_info->dawn_desc.colorStates = dawn_desc_info->color_states.get();
-
-  dawn_desc_info->dawn_desc.sampleMask = webgpu_desc->sampleMask();
-  dawn_desc_info->dawn_desc.alphaToCoverageEnabled =
-      webgpu_desc->alphaToCoverageEnabled();
-}
-
-void ConvertToDawnType(v8::Isolate* isolate,
-                       GPUDevice* device,
-                       const GPURenderPipelineDescriptor* webgpu_desc,
-                       OwnedRenderPipelineDescriptor2* dawn_desc_info,
-                       ExceptionState& exception_state) {
-  DCHECK(isolate);
-  DCHECK(webgpu_desc);
-  DCHECK(dawn_desc_info);
-
-  // Check for required members. Can't do this in the IDL because then new
-  // members would be required for the deprecated layout.
-  if (!webgpu_desc->hasVertex()) {
-    exception_state.ThrowTypeError("required member vertex is undefined.");
-    return;
-  }
 
   // Label
   if (webgpu_desc->hasLabel()) {
@@ -621,30 +365,16 @@
                                  "GPUVertexStateDescriptor");
 
   GPURenderPipeline* pipeline;
-  if (webgpu_desc->hasVertex()) {
-    OwnedRenderPipelineDescriptor2 dawn_desc_info;
-    ConvertToDawnType(isolate, device, webgpu_desc, &dawn_desc_info,
-                      exception_state);
-    if (exception_state.HadException()) {
-      return nullptr;
-    }
-
-    pipeline = MakeGarbageCollected<GPURenderPipeline>(
-        device, device->GetProcs().deviceCreateRenderPipeline2(
-                    device->GetHandle(), &dawn_desc_info.dawn_desc));
-  } else {
-    OwnedRenderPipelineDescriptor dawn_desc_info;
-    ConvertToDawnType(isolate, device, webgpu_desc, &dawn_desc_info,
-                      exception_state);
-    if (exception_state.HadException()) {
-      return nullptr;
-    }
-
-    pipeline = MakeGarbageCollected<GPURenderPipeline>(
-        device, device->GetProcs().deviceCreateRenderPipeline(
-                    device->GetHandle(), &dawn_desc_info.dawn_desc));
+  OwnedRenderPipelineDescriptor dawn_desc_info;
+  ConvertToDawnType(isolate, device, webgpu_desc, &dawn_desc_info,
+                    exception_state);
+  if (exception_state.HadException()) {
+    return nullptr;
   }
 
+  pipeline = MakeGarbageCollected<GPURenderPipeline>(
+      device, device->GetProcs().deviceCreateRenderPipeline2(
+                  device->GetHandle(), &dawn_desc_info.dawn_desc));
   pipeline->setLabel(webgpu_desc->label());
   return pipeline;
 }
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.h b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.h
index 1ca609ff..91340d04 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.h
+++ b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.h
@@ -15,32 +15,6 @@
 class ExceptionState;
 class ScriptState;
 
-struct OwnedRenderPipelineDescriptor {
- public:
-  OwnedRenderPipelineDescriptor() : dawn_desc({}) {}
-
-  //  This struct should be non-copyable non-movable because it contains
-  //  self-referencing pointers that would be invalidated when moved / copied.
-  OwnedRenderPipelineDescriptor(const OwnedRenderPipelineDescriptor& desc) =
-      delete;
-  OwnedRenderPipelineDescriptor(OwnedRenderPipelineDescriptor&& desc) = delete;
-  OwnedRenderPipelineDescriptor& operator=(
-      const OwnedRenderPipelineDescriptor& desc) = delete;
-  OwnedRenderPipelineDescriptor& operator=(
-      OwnedRenderPipelineDescriptor&& desc) = delete;
-
-  WGPURenderPipelineDescriptor dawn_desc;
-  std::string label;
-  OwnedProgrammableStageDescriptor vertex_stage_info;
-  OwnedProgrammableStageDescriptor fragment_stage_info;
-  WGPUVertexStateDescriptor vertex_state;
-  Vector<WGPUVertexBufferLayoutDescriptor> vertex_buffer_layouts;
-  Vector<WGPUVertexAttributeDescriptor> vertex_attributes;
-  WGPURasterizationStateDescriptor rasterization_state;
-  WGPUDepthStencilStateDescriptor depth_stencil_state;
-  std::unique_ptr<WGPUColorStateDescriptor[]> color_states;
-};
-
 struct OwnedFragmentState {
  public:
   OwnedFragmentState() = default;
@@ -73,20 +47,19 @@
   WGPUPrimitiveDepthClampingState depth_clamping_state = {};
 };
 
-struct OwnedRenderPipelineDescriptor2 {
+struct OwnedRenderPipelineDescriptor {
  public:
-  OwnedRenderPipelineDescriptor2() = default;
+  OwnedRenderPipelineDescriptor() = default;
 
   //  This struct should be non-copyable non-movable because it contains
   //  self-referencing pointers that would be invalidated when moved / copied.
-  OwnedRenderPipelineDescriptor2(const OwnedRenderPipelineDescriptor& desc) =
+  OwnedRenderPipelineDescriptor(const OwnedRenderPipelineDescriptor& desc) =
       delete;
-  OwnedRenderPipelineDescriptor2(OwnedRenderPipelineDescriptor2&& desc) =
-      delete;
-  OwnedRenderPipelineDescriptor2& operator=(
-      const OwnedRenderPipelineDescriptor2& desc) = delete;
-  OwnedRenderPipelineDescriptor2& operator=(
-      OwnedRenderPipelineDescriptor2&& desc) = delete;
+  OwnedRenderPipelineDescriptor(OwnedRenderPipelineDescriptor&& desc) = delete;
+  OwnedRenderPipelineDescriptor& operator=(
+      const OwnedRenderPipelineDescriptor& desc) = delete;
+  OwnedRenderPipelineDescriptor& operator=(
+      OwnedRenderPipelineDescriptor&& desc) = delete;
 
   WGPURenderPipelineDescriptor2 dawn_desc = {};
   std::string label;
@@ -104,12 +77,6 @@
                        OwnedRenderPipelineDescriptor* dawn_desc_info,
                        ExceptionState& exception_state);
 
-void ConvertToDawnType(v8::Isolate* isolate,
-                       GPUDevice* device,
-                       const GPURenderPipelineDescriptor* webgpu_desc,
-                       OwnedRenderPipelineDescriptor2* dawn_desc_info,
-                       ExceptionState& exception_state);
-
 class GPURenderPipeline : public DawnObject<WGPURenderPipeline> {
   DEFINE_WRAPPERTYPEINFO();
 
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline_descriptor.idl b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline_descriptor.idl
index e19daee3..76b89f05 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline_descriptor.idl
+++ b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline_descriptor.idl
@@ -5,27 +5,11 @@
 // https://gpuweb.github.io/gpuweb/
 
 dictionary GPURenderPipelineDescriptor : GPUPipelineDescriptorBase {
-    // TODO: vertex should be required once deprecated path is removed.
-    GPUVertexState vertex;
+    required GPUVertexState vertex;
     GPUPrimitiveState primitive = {};
     GPUDepthStencilState depthStencil;
     GPUMultisampleState multisample = {};
     GPUFragmentState fragment;
-
-    // Deprecated layout
-    GPUProgrammableStage vertexStage; // required if vertex not set.
-    GPUProgrammableStage fragmentStage;
-
-    GPUPrimitiveTopology primitiveTopology; // required if vertex not set.
-    GPURasterizationStateDescriptor rasterizationState = {};
-    sequence<GPUColorStateDescriptor> colorStates; // required if vertex not set.
-    GPUDepthStencilStateDescriptor depthStencilState;
-    GPUVertexStateDescriptor vertexState = {};
-
-    GPUSize32 sampleCount = 1;
-
-    GPUSampleMask sampleMask = 0xFFFFFFFF;
-    boolean alphaToCoverageEnabled = false;
 };
 
 enum GPUPrimitiveTopology {
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute.idl b/third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute.idl
index 0409aff..13204ba 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute.idl
+++ b/third_party/blink/renderer/modules/webgpu/gpu_vertex_attribute.idl
@@ -41,55 +41,4 @@
     "sint32x2",
     "sint32x3",
     "sint32x4",
-
-    // Deprecated vertex formats
-    "uchar",
-    "uchar2",
-    "uchar3",
-    "uchar4",
-    "char",
-    "char2",
-    "char3",
-    "char4",
-    "ucharnorm",
-    "uchar2norm",
-    "uchar3norm",
-    "uchar4norm",
-    "uchar4norm-bgra",
-    "charnorm",
-    "char2norm",
-    "char3norm",
-    "char4norm",
-    "ushort",
-    "ushort2",
-    "ushort3",
-    "ushort4",
-    "short",
-    "short2",
-    "short3",
-    "short4",
-    "ushortnorm",
-    "ushort2norm",
-    "ushort3norm",
-    "ushort4norm",
-    "shortnorm",
-    "short2norm",
-    "short3norm",
-    "short4norm",
-    "half",
-    "half2",
-    "half3",
-    "half4",
-    "float",
-    "float2",
-    "float3",
-    "float4",
-    "uint",
-    "uint2",
-    "uint3",
-    "uint4",
-    "int",
-    "int2",
-    "int3",
-    "int4"
 };
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_vertex_state_descriptor.idl b/third_party/blink/renderer/modules/webgpu/gpu_vertex_state_descriptor.idl
deleted file mode 100644
index e864c99..0000000
--- a/third_party/blink/renderer/modules/webgpu/gpu_vertex_state_descriptor.idl
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// https://gpuweb.github.io/gpuweb/
-
-// TODO: Remove once deprecated GPURenderPipelineDescriptor path is removed.
-dictionary GPUVertexStateDescriptor {
-    GPUIndexFormat indexFormat;
-    // TODO(crbug.com/951629): Make this a sequence of nullables.
-    object vertexBuffers; // We validate this is an array of nullable GPUVertexBufferLayout
-};
diff --git a/third_party/blink/renderer/modules/webgpu/idls.gni b/third_party/blink/renderer/modules/webgpu/idls.gni
index d2a1227..dbb3c55 100644
--- a/third_party/blink/renderer/modules/webgpu/idls.gni
+++ b/third_party/blink/renderer/modules/webgpu/idls.gni
@@ -97,7 +97,6 @@
   "gpu_vertex_attribute.idl",
   "gpu_vertex_buffer_layout.idl",
   "gpu_vertex_state.idl",
-  "gpu_vertex_state_descriptor.idl",
 ]
 
 modules_dependency_idl_files = [
diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
index d4c379b3..19b8c3b5 100644
--- a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
+++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
@@ -182,8 +182,7 @@
     if (pixmap.colorSpace()) {
       if (!pixmap.colorSpace()->isSRGB()) {
         auto skia_image = SkImage::MakeFromRaster(pixmap, nullptr, nullptr);
-        srgb_skia_image =
-            srgb_skia_image->makeColorSpace(SkColorSpace::MakeSRGB());
+        srgb_skia_image = skia_image->makeColorSpace(SkColorSpace::MakeSRGB());
         if (!srgb_skia_image->peekPixels(&pixmap))
           return "data:,";
         MSAN_CHECK_MEM_IS_INITIALIZED(pixmap.addr(), pixmap.computeByteSize());
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index d705743..df2c64e 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -204,10 +204,6 @@
       status: "experimental",
     },
     {
-      name: "AudioWorkletRealtimeThread",
-      status: "experimental",
-    },
-    {
       name: "AutoLazyLoadOnReloads",
       depends_on: ["LazyFrameLoading"],
     },
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
index a976b52..8e5deb8 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
@@ -630,7 +630,7 @@
   if (!is_same_document) {
     loading_power_mode_voter_->VoteFor(power_scheduler::PowerMode::kLoading);
     loading_power_mode_voter_->ResetVoteAfterTimeout(
-        power_scheduler::PowerModeVoter::kLoadingTimeout);
+        power_scheduler::PowerModeVoter::kStuckLoadingTimeout);
 
     waiting_for_contentful_paint_ = true;
     waiting_for_meaningful_paint_ = true;
@@ -967,7 +967,8 @@
     main_thread_scheduler_->OnMainFrameLoad(*this);
   }
 
-  loading_power_mode_voter_->VoteFor(power_scheduler::PowerMode::kIdle);
+  loading_power_mode_voter_->ResetVoteAfterTimeout(
+      power_scheduler::PowerModeVoter::kLoadingTimeout);
 }
 
 bool FrameSchedulerImpl::IsWaitingForContentfulPaint() const {
diff --git a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
index 9e7c3be..21df4147 100755
--- a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
+++ b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
@@ -387,6 +387,9 @@
             'skia::.+',
             'url::.+',
 
+            # Power scheduling instrumentation, which only depends on //base
+            "power_scheduler::.+",
+
             # Nested namespaces under the blink namespace
             'bindings::.+',
             'canvas_heuristic_parameters::.+',
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index acf3fac..28915a8 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -4134,7 +4134,6 @@
 crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl.html [ Failure ]
 crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim.html [ Failure ]
 crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update.html [ Failure ]
-crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/flex-content-sized-columns-resize.html [ Failure ]
 
 ### Tests *expected* to be failing with LayoutNGGrid enabled:
 crbug.com/1108097 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-areas-overflowing-grid-container-004.html [ Failure ]
@@ -5305,7 +5304,6 @@
 crbug.com/919789 fast/dom/viewport/resize-event-fired-window-resized.html [ Pass Timeout ]
 crbug.com/919789 fast/dom/Window/window-resize-contents.html [ Pass Timeout ]
 crbug.com/919789 fast/events/resize-events-count.html [ Pass Timeout ]
-crbug.com/919789 fast/css-grid-layout/flex-content-sized-columns-resize-expected.html [ Pass Timeout ]
 crbug.com/919789 virtual/text-antialias/line-break-between-text-nodes-with-inline-blocks.html [ Pass Timeout ]
 crbug.com/919789 media/controls/overflow-menu-hide-on-resize.html [ Pass Timeout ]
 crbug.com/919789 [ Linux ] paint/invalidation/resize-iframe-text.html [ Pass Timeout ]
@@ -6863,3 +6861,7 @@
 
 # Sheriff 2021-05-12
 crbug.com/1095540 [ Linux Debug ] virtual/compositor-threaded-percent-based-scrolling/fast/scrolling/resize-corner-tracking-touch.html [ Pass Failure ]
+
+# Sheriff 2021-05-13
+crbug.com/1208774 [ Mac ] external/wpt/webcodecs/videoDecoder-codec-specific.any.html?h264_annexb [ Pass Failure ]
+crbug.com/1208774 [ Mac ] external/wpt/webcodecs/videoDecoder-codec-specific.any.worker.html?h264_annexb [ Pass Failure ]
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html
similarity index 87%
copy from third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.html
copy to third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html
index 608b6a1..bc29da51 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
-<title>Canvas test: 2d.gradient.conic</title>
+<title>Canvas test: 2d.gradient.conic.negative.rotation</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/html/canvas/resources/canvas-tests.js"></script>
 <link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
 <body class="show_output">
 
-<h1>2d.gradient.conic</h1>
+<h1>2d.gradient.conic.negative.rotation</h1>
 <p class="desc">Conic gradient function exists</p>
 
 
@@ -19,7 +19,7 @@
 var t = async_test("Conic gradient function exists");
 _addTest(function(canvas, ctx) {
 
-const g = ctx.createConicGradient(0, 0, 25);
+const g = ctx.createConicGradient(-Math.PI/2, 0, 25);
 g.addColorStop(0, "#0f0");
 g.addColorStop(0.5, "#0f0");
 g.addColorStop(0.51, "#f00");
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html
similarity index 87%
rename from third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.html
rename to third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html
index 608b6a1..e78c4ea5 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
-<title>Canvas test: 2d.gradient.conic</title>
+<title>Canvas test: 2d.gradient.conic.positive.rotation</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/html/canvas/resources/canvas-tests.js"></script>
 <link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
 <body class="show_output">
 
-<h1>2d.gradient.conic</h1>
+<h1>2d.gradient.conic.positive.rotation</h1>
 <p class="desc">Conic gradient function exists</p>
 
 
@@ -19,7 +19,7 @@
 var t = async_test("Conic gradient function exists");
 _addTest(function(canvas, ctx) {
 
-const g = ctx.createConicGradient(0, 0, 25);
+const g = ctx.createConicGradient(3*Math.PI/2, 0, 25);
 g.addColorStop(0, "#0f0");
 g.addColorStop(0.5, "#0f0");
 g.addColorStop(0.51, "#f00");
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html
similarity index 85%
rename from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.html
rename to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html
index a1a4651..817bdf68 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.html
@@ -1,11 +1,11 @@
 <!DOCTYPE html>
 <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
-<title>OffscreenCanvas test: 2d.gradient.conic</title>
+<title>OffscreenCanvas test: 2d.gradient.conic.negative.rotation</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/html/canvas/resources/canvas-tests.js"></script>
 
-<h1>2d.gradient.conic</h1>
+<h1>2d.gradient.conic.negative.rotation</h1>
 <p class="desc">Conic gradient function exists</p>
 
 
@@ -20,7 +20,7 @@
 var offscreenCanvas = new OffscreenCanvas(100, 50);
 var ctx = offscreenCanvas.getContext('2d');
 
-const g = ctx.createConicGradient(0, 0, 25);
+const g = ctx.createConicGradient(-Math.PI/2, 0, 25);
 g.addColorStop(0, "#0f0");
 g.addColorStop(0.5, "#0f0");
 g.addColorStop(0.5, "#f00");
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.worker.js
similarity index 87%
rename from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker.js
rename to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.worker.js
index 53a61ad..37543c76 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker.js
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.negative.rotation.worker.js
@@ -1,5 +1,5 @@
 // DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
-// OffscreenCanvas test in a worker:2d.gradient.conic
+// OffscreenCanvas test in a worker:2d.gradient.conic.negative.rotation
 // Description:Conic gradient function exists
 // Note:
 
@@ -16,7 +16,7 @@
 var offscreenCanvas = new OffscreenCanvas(100, 50);
 var ctx = offscreenCanvas.getContext('2d');
 
-const g = ctx.createConicGradient(0, 0, 25);
+const g = ctx.createConicGradient(-Math.PI/2, 0, 25);
 g.addColorStop(0, "#0f0");
 g.addColorStop(0.5, "#0f0");
 g.addColorStop(0.5, "#f00");
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html
similarity index 85%
copy from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.html
copy to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html
index a1a4651..00262cb8 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.html
@@ -1,11 +1,11 @@
 <!DOCTYPE html>
 <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
-<title>OffscreenCanvas test: 2d.gradient.conic</title>
+<title>OffscreenCanvas test: 2d.gradient.conic.positive.rotation</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/html/canvas/resources/canvas-tests.js"></script>
 
-<h1>2d.gradient.conic</h1>
+<h1>2d.gradient.conic.positive.rotation</h1>
 <p class="desc">Conic gradient function exists</p>
 
 
@@ -20,7 +20,7 @@
 var offscreenCanvas = new OffscreenCanvas(100, 50);
 var ctx = offscreenCanvas.getContext('2d');
 
-const g = ctx.createConicGradient(0, 0, 25);
+const g = ctx.createConicGradient(3*Math.PI/2, 0, 25);
 g.addColorStop(0, "#0f0");
 g.addColorStop(0.5, "#0f0");
 g.addColorStop(0.5, "#f00");
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.worker.js
similarity index 87%
copy from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker.js
copy to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.worker.js
index 53a61ad..fadb85b5 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker.js
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.positive.rotation.worker.js
@@ -1,5 +1,5 @@
 // DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
-// OffscreenCanvas test in a worker:2d.gradient.conic
+// OffscreenCanvas test in a worker:2d.gradient.conic.positive.rotation
 // Description:Conic gradient function exists
 // Note:
 
@@ -16,7 +16,7 @@
 var offscreenCanvas = new OffscreenCanvas(100, 50);
 var ctx = offscreenCanvas.getContext('2d');
 
-const g = ctx.createConicGradient(0, 0, 25);
+const g = ctx.createConicGradient(3*Math.PI/2, 0, 25);
 g.addColorStop(0, "#0f0");
 g.addColorStop(0.5, "#0f0");
 g.addColorStop(0.5, "#f00");
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/fill-and-stroke-styles.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/fill-and-stroke-styles.yaml
index 7b82933..5c75d08 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/fill-and-stroke-styles.yaml
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/fill-and-stroke-styles.yaml
@@ -1194,10 +1194,25 @@
     @assert pixel 75,25 == 0,255,0,255;
   expected: green
 
-- name: 2d.gradient.conic
+- name: 2d.gradient.conic.positive.rotation
   desc: Conic gradient function exists
   code: |
-    const g = ctx.createConicGradient(0, 0, 25);
+    const g = ctx.createConicGradient(3*Math.PI/2, 0, 25);
+    g.addColorStop(0, "#0f0");
+    g.addColorStop(0.5, "#0f0");
+    g.addColorStop(0.51, "#f00");
+    g.addColorStop(1, "#f00");
+    ctx.fillStyle = g;
+    ctx.fillRect(0, 0, 100, 50);
+    @assert pixel 25,25 == 0,255,0,255;
+    @assert pixel 50,25 == 0,255,0,255;
+    @assert pixel 75,25 == 0,255,0,255;
+  expected: green
+
+- name: 2d.gradient.conic.negative.rotation
+  desc: Conic gradient function exists
+  code: |
+    const g = ctx.createConicGradient(-Math.PI/2, 0, 25);
     g.addColorStop(0, "#0f0");
     g.addColorStop(0.5, "#0f0");
     g.addColorStop(0.51, "#f00");
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/fill-and-stroke-styles.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/fill-and-stroke-styles.yaml
index 841e313..288234e 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/fill-and-stroke-styles.yaml
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/fill-and-stroke-styles.yaml
@@ -949,10 +949,26 @@
     @assert pixel 75,25 == 0,255,0,255;
     t.done();
 
-- name: 2d.gradient.conic
+- name: 2d.gradient.conic.positive.rotation
   desc: Conic gradient function exists
   code: |
-    const g = ctx.createConicGradient(0, 0, 25);
+    const g = ctx.createConicGradient(3*Math.PI/2, 0, 25);
+    g.addColorStop(0, "#0f0");
+    g.addColorStop(0.5, "#0f0");
+    g.addColorStop(0.5, "#f00");
+    g.addColorStop(1, "#f00");
+    ctx.fillStyle = g;
+    ctx.fillRect(0, 0, 100, 50);
+    @assert pixel 25,25 == 0,255,0,255;
+    @assert pixel 50,25 == 0,255,0,255;
+    @assert pixel 75,25 == 0,255,0,255;
+    t.done();
+  expected: green
+
+- name: 2d.gradient.conic.negative.rotation
+  desc: Conic gradient function exists
+  code: |
+    const g = ctx.createConicGradient(-Math.PI/2, 0, 25);
     g.addColorStop(0, "#0f0");
     g.addColorStop(0.5, "#0f0");
     g.addColorStop(0.5, "#f00");
diff --git a/third_party/blink/web_tests/fast/canvas/conic-gradient-expected.html b/third_party/blink/web_tests/fast/canvas/conic-gradient-expected.html
index 7957cea6..f347abc 100644
--- a/third_party/blink/web_tests/fast/canvas/conic-gradient-expected.html
+++ b/third_party/blink/web_tests/fast/canvas/conic-gradient-expected.html
@@ -7,7 +7,7 @@
       width: 300px;
       height: 150px;
       background: conic-gradient(
-        from 15deg at 100px 50px,
+        from 90deg at 100px 50px,
         red 0.2turn,
         orange 0.2turn 0.4turn,
         yellow 0.4turn 0.6turn,
diff --git a/third_party/blink/web_tests/fast/canvas/conic-gradient.html b/third_party/blink/web_tests/fast/canvas/conic-gradient.html
index 751c7c14..6b7d0cf 100644
--- a/third_party/blink/web_tests/fast/canvas/conic-gradient.html
+++ b/third_party/blink/web_tests/fast/canvas/conic-gradient.html
@@ -9,7 +9,7 @@
     const canvas = document.getElementById('c');
     const ctx = canvas.getContext('2d');
 
-    const grad = ctx.createConicGradient(15, 100, 50);
+    const grad = ctx.createConicGradient(0, 100, 50);
 
     grad.addColorStop(0, "red");
     grad.addColorStop(0.2, "red");
diff --git a/third_party/blink/web_tests/platform/linux/fast/invalid/missing-end-tag-expected.png b/third_party/blink/web_tests/platform/linux/fast/invalid/missing-end-tag-expected.png
index c771859..f561d932 100644
--- a/third_party/blink/web_tests/platform/linux/fast/invalid/missing-end-tag-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/invalid/missing-end-tag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/load-non-wellformed-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/load-non-wellformed-expected.png
index 7d2c445..de883b2 100644
--- a/third_party/blink/web_tests/platform/linux/svg/custom/load-non-wellformed-expected.png
+++ b/third_party/blink/web_tests/platform/linux/svg/custom/load-non-wellformed-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/use-invalid-pattern-expected.txt b/third_party/blink/web_tests/platform/linux/svg/custom/use-invalid-pattern-expected.txt
deleted file mode 100644
index 3b8cca7..0000000
--- a/third_party/blink/web_tests/platform/linux/svg/custom/use-invalid-pattern-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This page contains the following errors:
-error on line 11 at column 7: Opening and ending tag mismatch: use line 0 and svg
-
-Below is a rendering of the page up to the first error.
-This should not crash, but display an error document.
diff --git a/third_party/blink/web_tests/platform/linux/svg/hixie/error/012-expected.png b/third_party/blink/web_tests/platform/linux/svg/hixie/error/012-expected.png
index 1639889c..08ab1aa 100644
--- a/third_party/blink/web_tests/platform/linux/svg/hixie/error/012-expected.png
+++ b/third_party/blink/web_tests/platform/linux/svg/hixie/error/012-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/text/textpath-connected-glyphs-expected.png b/third_party/blink/web_tests/platform/linux/svg/text/textpath-connected-glyphs-expected.png
new file mode 100644
index 0000000..9ace4f1
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/svg/text/textpath-connected-glyphs-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png b/third_party/blink/web_tests/platform/linux/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png
index c1d4650..4146702b 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/layout_ng_svg_text/svg/text/textpath-connected-glyphs-expected.png b/third_party/blink/web_tests/platform/linux/virtual/layout_ng_svg_text/svg/text/textpath-connected-glyphs-expected.png
new file mode 100644
index 0000000..def306e6
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/virtual/layout_ng_svg_text/svg/text/textpath-connected-glyphs-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/invalid/missing-end-tag-expected.png b/third_party/blink/web_tests/platform/mac/fast/invalid/missing-end-tag-expected.png
index 746d76ba..6b97aee5 100644
--- a/third_party/blink/web_tests/platform/mac/fast/invalid/missing-end-tag-expected.png
+++ b/third_party/blink/web_tests/platform/mac/fast/invalid/missing-end-tag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/custom/load-non-wellformed-expected.png b/third_party/blink/web_tests/platform/mac/svg/custom/load-non-wellformed-expected.png
index fe215c24..b581261 100644
--- a/third_party/blink/web_tests/platform/mac/svg/custom/load-non-wellformed-expected.png
+++ b/third_party/blink/web_tests/platform/mac/svg/custom/load-non-wellformed-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/hixie/error/012-expected.png b/third_party/blink/web_tests/platform/mac/svg/hixie/error/012-expected.png
index 86266af..2445a70 100644
--- a/third_party/blink/web_tests/platform/mac/svg/hixie/error/012-expected.png
+++ b/third_party/blink/web_tests/platform/mac/svg/hixie/error/012-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/text/textpath-connected-glyphs-expected.png b/third_party/blink/web_tests/platform/mac/svg/text/textpath-connected-glyphs-expected.png
new file mode 100644
index 0000000..81b6d5a
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac/svg/text/textpath-connected-glyphs-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png b/third_party/blink/web_tests/platform/mac/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png
index 2e93800..dab0251 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/layout_ng_svg_text/svg/text/textpath-connected-glyphs-expected.png b/third_party/blink/web_tests/platform/mac/virtual/layout_ng_svg_text/svg/text/textpath-connected-glyphs-expected.png
new file mode 100644
index 0000000..00a2483d
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac/virtual/layout_ng_svg_text/svg/text/textpath-connected-glyphs-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/invalid/missing-end-tag-expected.png b/third_party/blink/web_tests/platform/win/fast/invalid/missing-end-tag-expected.png
index 9fa02585..f48188d 100644
--- a/third_party/blink/web_tests/platform/win/fast/invalid/missing-end-tag-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/invalid/missing-end-tag-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/load-non-wellformed-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/load-non-wellformed-expected.png
index a2de67c..bbf1f6ae 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/load-non-wellformed-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/load-non-wellformed-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/use-invalid-pattern-expected.txt b/third_party/blink/web_tests/platform/win/svg/custom/use-invalid-pattern-expected.txt
deleted file mode 100644
index 3b8cca7..0000000
--- a/third_party/blink/web_tests/platform/win/svg/custom/use-invalid-pattern-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This page contains the following errors:
-error on line 11 at column 7: Opening and ending tag mismatch: use line 0 and svg
-
-Below is a rendering of the page up to the first error.
-This should not crash, but display an error document.
diff --git a/third_party/blink/web_tests/platform/win/svg/hixie/error/012-expected.png b/third_party/blink/web_tests/platform/win/svg/hixie/error/012-expected.png
index 98fa05e0..456d70a 100644
--- a/third_party/blink/web_tests/platform/win/svg/hixie/error/012-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/hixie/error/012-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/text/textpath-connected-glyphs-expected.png b/third_party/blink/web_tests/platform/win/svg/text/textpath-connected-glyphs-expected.png
new file mode 100644
index 0000000..cf4942c
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win/svg/text/textpath-connected-glyphs-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png b/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png
index 63b4be6..e59bc53a 100644
--- a/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/svg/batik/text/textOnPath-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/svg/text/textpath-connected-glyphs-expected.png b/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/svg/text/textpath-connected-glyphs-expected.png
new file mode 100644
index 0000000..955edf5
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win/virtual/layout_ng_svg_text/svg/text/textpath-connected-glyphs-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/svg/custom/use-crash-in-non-wellformed-document-expected.txt b/third_party/blink/web_tests/svg/custom/use-crash-in-non-wellformed-document-expected.txt
index b84a041..49bba41 100644
--- a/third_party/blink/web_tests/svg/custom/use-crash-in-non-wellformed-document-expected.txt
+++ b/third_party/blink/web_tests/svg/custom/use-crash-in-non-wellformed-document-expected.txt
@@ -1,5 +1,5 @@
 This page contains the following errors:
-error on line 19 at column 7: Opening and ending tag mismatch: use line 0 and svg
+error on line 19 at column 7: Opening and ending tag mismatch: use line 4 and svg
 
 Below is a rendering of the page up to the first error.
 PASS without crash.
diff --git a/third_party/blink/web_tests/svg/custom/use-invalid-pattern-expected.txt b/third_party/blink/web_tests/svg/custom/use-invalid-pattern-expected.txt
index 3b8cca7..64c52de 100644
--- a/third_party/blink/web_tests/svg/custom/use-invalid-pattern-expected.txt
+++ b/third_party/blink/web_tests/svg/custom/use-invalid-pattern-expected.txt
@@ -1,5 +1,5 @@
 This page contains the following errors:
-error on line 11 at column 7: Opening and ending tag mismatch: use line 0 and svg
+error on line 11 at column 7: Opening and ending tag mismatch: use line 10 and svg
 
 Below is a rendering of the page up to the first error.
 This should not crash, but display an error document.
diff --git a/third_party/blink/web_tests/svg/custom/use-invalid-style-expected.txt b/third_party/blink/web_tests/svg/custom/use-invalid-style-expected.txt
index 6af9b8d..96b6c2e 100644
--- a/third_party/blink/web_tests/svg/custom/use-invalid-style-expected.txt
+++ b/third_party/blink/web_tests/svg/custom/use-invalid-style-expected.txt
@@ -1,5 +1,5 @@
 This page contains the following errors:
-error on line 10 at column 7: Opening and ending tag mismatch: junk line 0 and svg
+error on line 10 at column 7: Opening and ending tag mismatch: junk line 9 and svg
 
 Below is a rendering of the page up to the first error.
 This should not crash, but display an error document.
diff --git a/third_party/blink/web_tests/svg/text/textpath-connected-glyphs.html b/third_party/blink/web_tests/svg/text/textpath-connected-glyphs.html
new file mode 100644
index 0000000..1f350368
--- /dev/null
+++ b/third_party/blink/web_tests/svg/text/textpath-connected-glyphs.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML>
+<meta charset="UTF-8">
+
+<p>This test passes if the two lines of text look the same.</p>
+
+<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400">
+  <text x="100" y="100" font-size="28">سلام  ชุตินันท์</text>
+  <path fill="transparent" id="f" d="m100 200 L 300 200Z"/>
+  <text font-size="28">
+    <textPath xlink:href="#f">سلام  ชุตินันท์</textPath>
+  </text>
+</svg>
diff --git a/third_party/blink/web_tests/wpt_internal/prerender/resources/deferred-promise-utils.js b/third_party/blink/web_tests/wpt_internal/prerender/resources/deferred-promise-utils.js
index ca8afa62..e295727 100644
--- a/third_party/blink/web_tests/wpt_internal/prerender/resources/deferred-promise-utils.js
+++ b/third_party/blink/web_tests/wpt_internal/prerender/resources/deferred-promise-utils.js
@@ -61,6 +61,8 @@
               this.addEvent(`finished waiting ${promiseName}`);
             },
             (error) => {
+              if (error instanceof Error)
+                error = error.name;
               this.addEvent(`${promiseName} rejected: ${error}`);
             })
         .finally(() => {
diff --git a/third_party/blink/web_tests/wpt_internal/prerender/resources/encrypted-media.https.html b/third_party/blink/web_tests/wpt_internal/prerender/resources/encrypted-media.https.html
new file mode 100644
index 0000000..8bee303
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/prerender/resources/encrypted-media.https.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="utils.js"></script>
+<script src="deferred-promise-utils.js"></script>
+<script>
+const params = new URLSearchParams(location.search);
+
+// The main test page (restriction-encrypted-media*.https.html) loads the
+// initiator page, then the initiator page will prerender itself with the
+// `prerendering` parameter.
+const isPrerendering = params.has('prerendering');
+
+if (!isPrerendering) {
+  loadInitiatorPage();
+} else {
+  const prerenderEventCollector = new PrerenderEventCollector();
+
+  const config = [{
+      initDataTypes:  ['keyids', 'webm' ,'cenc'],
+      audioCapabilities: [{contentType: 'audio/mp4; codecs="mp4a.40.2"'}]
+  }];
+
+  const fakeConfig = [{
+      initDataTypes: ['fakeidt'],
+      audioCapabilities: [{contentType: 'audio/fake; codecs="mp4a.40.2"'}]
+  }];
+
+  const promise =
+      navigator.requestMediaKeySystemAccess('org.w3.clearkey',
+          params.get('config') === 'support' ? config : fakeConfig);
+  prerenderEventCollector.start(
+      promise, 'navigator.requestMediaKeySystemAccess');
+}
+
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/prerender/restriction-encrypted-media-unsupported-config.https.html b/third_party/blink/web_tests/wpt_internal/prerender/restriction-encrypted-media-unsupported-config.https.html
new file mode 100644
index 0000000..87eed497
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/prerender/restriction-encrypted-media-unsupported-config.https.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<!--
+This file cannot be upstreamed to WPT until:
+* startPrerendering() usage is replaced with a WebDriver API
+-->
+<title>Access to the Encrypted Media API is deferred with unsupported config
+</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/utils.js"></script>
+<body>
+<script>
+
+promise_test(async t => {
+  const bc = new BroadcastChannel('test-channel');
+  t.add_cleanup(_ => bc.close());
+
+  const gotMessage = new Promise(resolve => {
+    bc.addEventListener('message', e => {
+      resolve(e.data);
+    }, {
+      once: true
+    });
+  });
+  const url = `resources/encrypted-media.https.html?config=unsupport`;
+  window.open(url, '_blank', 'noopener');
+
+  const result = await gotMessage;
+  const expected = [
+    {
+      event: 'started waiting navigator.requestMediaKeySystemAccess',
+      prerendering: true
+    },
+    {
+      event: 'prerendering change',
+      prerendering: false
+    },
+    {
+      event: 'navigator.requestMediaKeySystemAccess rejected: ' +
+             'NotSupportedError',
+      prerendering: false
+    }
+  ];
+  assert_equals(result.length, expected.length);
+  for (let i = 0; i < result.length; i++) {
+    assert_equals(result[i].event, expected[i].event, `event${i}`);
+    assert_equals(result[i].prerendering, expected[i].prerendering,
+      `prerendering${i}`);
+  }
+}, `the access to the Encrypted Media API should be deferred with the
+    unsupported configurations until the prerendered page is activated`);
+
+</script>
+</body>
diff --git a/third_party/blink/web_tests/wpt_internal/prerender/restriction-encrypted-media.https.html b/third_party/blink/web_tests/wpt_internal/prerender/restriction-encrypted-media.https.html
new file mode 100644
index 0000000..3c2fbfe
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/prerender/restriction-encrypted-media.https.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!--
+This file cannot be upstreamed to WPT until:
+* startPrerendering() usage is replaced with a WebDriver API
+-->
+<title>Access to the Encrypted Media API is deferred</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/utils.js"></script>
+<body>
+<script>
+
+promise_test(async t => {
+  const bc = new BroadcastChannel('test-channel');
+  t.add_cleanup(_ => bc.close());
+
+  const gotMessage = new Promise(resolve => {
+    bc.addEventListener('message', e => {
+      resolve(e.data);
+    }, {
+      once: true
+    });
+  });
+  const url = `resources/encrypted-media.https.html?config=support`;
+  window.open(url, '_blank', 'noopener');
+
+  const result = await gotMessage;
+  const expected = [
+    {
+      event: 'started waiting navigator.requestMediaKeySystemAccess',
+      prerendering: true
+    },
+    {
+      event: 'prerendering change',
+      prerendering: false
+    },
+    {
+      event: 'finished waiting navigator.requestMediaKeySystemAccess',
+      prerendering: false
+    },
+  ];
+  assert_equals(result.length, expected.length);
+  for (let i = 0; i < result.length; i++) {
+    assert_equals(result[i].event, expected[i].event, `event${i}`);
+    assert_equals(result[i].prerendering, expected[i].prerendering,
+      `prerendering${i}`);
+  }
+}, `the access to the Encrypted Media API should be deferred until the
+    prerendered page is activated`);
+
+</script>
+</body>
diff --git a/third_party/blink/web_tests/wpt_internal/webgpu/cts.html b/third_party/blink/web_tests/wpt_internal/webgpu/cts.html
index 0a9f4450..35c4e61 100644
--- a/third_party/blink/web_tests/wpt_internal/webgpu/cts.html
+++ b/third_party/blink/web_tests/wpt_internal/webgpu/cts.html
@@ -236,6 +236,8 @@
 <meta name=variant content='?q=webgpu:api,operation,rendering,draw:arguments:first=3;count=6;*'>
 <meta name=variant content='?q=webgpu:api,operation,rendering,draw:vertex_attributes,basic:*'>
 <meta name=variant content='?q=webgpu:api,operation,rendering,draw:vertex_attributes,formats:*'>
+<meta name=variant content='?q=webgpu:api,operation,rendering,indirect_draw:basics,drawIndirect:*'>
+<meta name=variant content='?q=webgpu:api,operation,rendering,indirect_draw:basics,drawIndexedIndirect:*'>
 <meta name=variant content='?q=webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:readMethod="CopyToBuffer";format="r8unorm";*'>
 <meta name=variant content='?q=webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:readMethod="CopyToBuffer";format="r8snorm";*'>
 <meta name=variant content='?q=webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:readMethod="CopyToBuffer";format="r8uint";*'>
@@ -425,10 +427,10 @@
 <meta name=variant content='?q=webgpu:api,validation,createBindGroup:texture_must_have_correct_dimension:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroup:buffer_offset_and_size_for_bind_groups_match:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroup:minBindingSize:*'>
-<meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:some_binding_index_was_specified_more_than_once:*'>
+<meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:duplicate_bindings:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:visibility:*'>
-<meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:multisample_requires_2d_view_dimension:*'>
-<meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:number_of_dynamic_buffers_exceeds_the_maximum_value:*'>
+<meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:multisampled_validation:*'>
+<meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:max_dynamic_buffers:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_bind_group_layout:*'>
 <meta name=variant content='?q=webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_pipeline_layout:*'>
 <meta name=variant content='?q=webgpu:api,validation,createPipelineLayout:number_of_dynamic_buffers_exceeds_the_maximum_value:*'>
diff --git a/third_party/libxml/README.chromium b/third_party/libxml/README.chromium
index 25d4dd5..df76eb4 100644
--- a/third_party/libxml/README.chromium
+++ b/third_party/libxml/README.chromium
@@ -1,6 +1,6 @@
 Name: libxml
 URL: http://xmlsoft.org
-Version: 7279d236364739a05657a8a614c15990eb08d0c6
+Version: bfd2f4300fb348a0fb8265a17546a0eb8bdec719
 CPEPrefix: cpe:/a:xmlsoft:libxml2:2.9.9
 License: MIT
 License File: src/Copyright
@@ -20,8 +20,6 @@
     See https://crbug.com/708433
 - libxml2-2.9.4-security-xpath-nodetab-uaf.patch: See https://crbug.com/705445
 - chromium-issue-708434.patch: Guard against input counter overflow.
-- revert-non-recursive-xml-parsing.patch: Making parts of the XML parser
-    non-recursive broke a few web platform tests.
 - chromium-issue-1138555.patch: Change TRUE to 1 for ICU68 which remove the
   #define of TRUE.
 - Add helper classes in the chromium/ subdirectory.
diff --git a/third_party/libxml/chromium/revert-non-recursive-xml-parsing.patch b/third_party/libxml/chromium/revert-non-recursive-xml-parsing.patch
deleted file mode 100644
index e81c7c2d..0000000
--- a/third_party/libxml/chromium/revert-non-recursive-xml-parsing.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-diff --git a/parser.c b/parser.c
-index 072eb22d..f863edd1 100644
---- a/parser.c
-+++ b/parser.c
-@@ -96,12 +96,6 @@ xmlCreateEntityParserCtxtInternal(const xmlChar *URL, const xmlChar *ID,
- 
- static void xmlHaltParser(xmlParserCtxtPtr ctxt);
- 
--static int
--xmlParseElementStart(xmlParserCtxtPtr ctxt);
--
--static void
--xmlParseElementEnd(xmlParserCtxtPtr ctxt);
--
- /************************************************************************
-  *									*
-  *	Arbitrary limits set in the parser. See XML_PARSE_HUGE		*
-@@ -1828,6 +1822,7 @@ nodePop(xmlParserCtxtPtr ctxt)
-     return (ret);
- }
- 
-+#ifdef LIBXML_PUSH_ENABLED
- /**
-  * nameNsPush:
-  * @ctxt:  an XML parser context
-@@ -1863,11 +1858,6 @@ nameNsPush(xmlParserCtxtPtr ctxt, const xmlChar * value,
- 	    goto mem_error;
-         }
- 	ctxt->pushTab = tmp2;
--    } else if (ctxt->pushTab == NULL) {
--        ctxt->pushTab = (void **) xmlMalloc(ctxt->nameMax * 3 *
--                                            sizeof(ctxt->pushTab[0]));
--        if (ctxt->pushTab == NULL)
--            goto mem_error;
-     }
-     ctxt->nameTab[ctxt->nameNr] = value;
-     ctxt->name = value;
-@@ -1879,7 +1869,6 @@ mem_error:
-     xmlErrMemory(ctxt, NULL);
-     return (-1);
- }
--#ifdef LIBXML_PUSH_ENABLED
- /**
-  * nameNsPop:
-  * @ctxt: an XML parser context
-@@ -9812,10 +9801,9 @@ xmlParseCDSect(xmlParserCtxtPtr ctxt) {
- 
- void
- xmlParseContent(xmlParserCtxtPtr ctxt) {
--    int nameNr = ctxt->nameNr;
--
-     GROW;
-     while ((RAW != 0) &&
-+	   ((RAW != '<') || (NXT(1) != '/')) &&
- 	   (ctxt->instate != XML_PARSER_EOF)) {
- 	const xmlChar *test = CUR_PTR;
- 	unsigned int cons = ctxt->input->consumed;
-@@ -9849,13 +9837,7 @@ xmlParseContent(xmlParserCtxtPtr ctxt) {
- 	 * Fourth case :  a sub-element.
- 	 */
- 	else if (*cur == '<') {
--            if (NXT(1) == '/') {
--                if (ctxt->nameNr <= nameNr)
--                    break;
--	        xmlParseElementEnd(ctxt);
--            } else {
--	        xmlParseElementStart(ctxt);
--            }
-+	    xmlParseElement(ctxt);
- 	}
- 
- 	/*
-@@ -9890,7 +9872,7 @@ xmlParseContent(xmlParserCtxtPtr ctxt) {
-  * xmlParseElement:
-  * @ctxt:  an XML parser context
-  *
-- * parse an XML element
-+ * parse an XML element, this is highly recursive
-  *
-  * [39] element ::= EmptyElemTag | STag content ETag
-  *
-@@ -9902,23 +9884,6 @@ xmlParseContent(xmlParserCtxtPtr ctxt) {
- 
- void
- xmlParseElement(xmlParserCtxtPtr ctxt) {
--    if (xmlParseElementStart(ctxt) != 0)
--        return;
--    xmlParseContent(ctxt);
--    if (ctxt->instate == XML_PARSER_EOF)
--	return;
--    xmlParseElementEnd(ctxt);
--}
--
--/**
-- * xmlParseElementStart:
-- * @ctxt:  an XML parser context
-- *
-- * Parse the start of an XML element. Returns -1 in case of error, 0 if an
-- * opening tag was parsed, 1 if an empty element was parsed.
-- */
--static int
--xmlParseElementStart(xmlParserCtxtPtr ctxt) {
-     const xmlChar *name;
-     const xmlChar *prefix = NULL;
-     const xmlChar *URI = NULL;
-@@ -9933,7 +9898,7 @@ xmlParseElementStart(xmlParserCtxtPtr ctxt) {
- 		 "Excessive depth in document: %d use XML_PARSE_HUGE option\n",
- 			  xmlParserMaxDepth);
- 	xmlHaltParser(ctxt);
--	return(-1);
-+	return;
-     }
- 
-     /* Capture start position */
-@@ -9960,17 +9925,12 @@ xmlParseElementStart(xmlParserCtxtPtr ctxt) {
- 	name = xmlParseStartTag(ctxt);
- #endif /* LIBXML_SAX1_ENABLED */
-     if (ctxt->instate == XML_PARSER_EOF)
--	return(-1);
-+	return;
-     if (name == NULL) {
- 	spacePop(ctxt);
--        return(-1);
-+        return;
-     }
--    if (ctxt->sax2)
--        nameNsPush(ctxt, name, prefix, URI, ctxt->nsNr - nsNr);
--#ifdef LIBXML_SAX1_ENABLED
--    else
--        namePush(ctxt, name);
--#endif /* LIBXML_SAX1_ENABLED */
-+    namePush(ctxt, name);
-     ret = ctxt->node;
- 
- #ifdef LIBXML_VALID_ENABLED
-@@ -10011,7 +9971,7 @@ xmlParseElementStart(xmlParserCtxtPtr ctxt) {
- 	   node_info.node = ret;
- 	   xmlParserAddNodeInfo(ctxt, &node_info);
- 	}
--	return(1);
-+	return;
-     }
-     if (RAW == '>') {
-         NEXT1;
-@@ -10039,39 +9999,41 @@ xmlParseElementStart(xmlParserCtxtPtr ctxt) {
- 	   node_info.node = ret;
- 	   xmlParserAddNodeInfo(ctxt, &node_info);
- 	}
--	return(-1);
-+	return;
-     }
- 
--    return(0);
--}
--
--/**
-- * xmlParseElementEnd:
-- * @ctxt:  an XML parser context
-- *
-- * Parse the end of an XML element.
-- */
--static void
--xmlParseElementEnd(xmlParserCtxtPtr ctxt) {
--    xmlParserNodeInfo node_info;
--    xmlNodePtr ret = ctxt->node;
-+    /*
-+     * Parse the content of the element:
-+     */
-+    xmlParseContent(ctxt);
-+    if (ctxt->instate == XML_PARSER_EOF)
-+	return;
-+    if (!IS_BYTE_CHAR(RAW)) {
-+        xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_TAG_NOT_FINISHED,
-+	 "Premature end of data in tag %s line %d\n",
-+		                name, line, NULL);
- 
--    if (ctxt->nameNr <= 0)
--        return;
-+	/*
-+	 * end of parsing of this node.
-+	 */
-+	nodePop(ctxt);
-+	namePop(ctxt);
-+	spacePop(ctxt);
-+	if (nsNr != ctxt->nsNr)
-+	    nsPop(ctxt, ctxt->nsNr - nsNr);
-+	return;
-+    }
- 
-     /*
-      * parse the end of tag: '</' should be here.
-      */
-     if (ctxt->sax2) {
--        const xmlChar *prefix = ctxt->pushTab[ctxt->nameNr * 3 - 3];
--        const xmlChar *URI = ctxt->pushTab[ctxt->nameNr * 3 - 2];
--        int nsNr = (ptrdiff_t) ctxt->pushTab[ctxt->nameNr * 3 - 1];
--	xmlParseEndTag2(ctxt, prefix, URI, 0, nsNr, 0);
-+	xmlParseEndTag2(ctxt, prefix, URI, line, ctxt->nsNr - nsNr, tlen);
- 	namePop(ctxt);
-     }
- #ifdef LIBXML_SAX1_ENABLED
--    else
--	xmlParseEndTag1(ctxt, 0);
-+      else
-+	xmlParseEndTag1(ctxt, line);
- #endif /* LIBXML_SAX1_ENABLED */
- 
-     /*
-@@ -12388,6 +12350,13 @@ xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax, void *user_data,
- 	return(NULL);
-     }
-     ctxt->dictNames = 1;
-+    ctxt->pushTab = (void **) xmlMalloc(ctxt->nameMax * 3 * sizeof(xmlChar *));
-+    if (ctxt->pushTab == NULL) {
-+        xmlErrMemory(ctxt, NULL);
-+	xmlFreeParserInputBuffer(buf);
-+	xmlFreeParserCtxt(ctxt);
-+	return(NULL);
-+    }
-     if (sax != NULL) {
- #ifdef LIBXML_SAX1_ENABLED
- 	if (ctxt->sax != (xmlSAXHandlerPtr) &xmlDefaultSAXHandler)
-@@ -14835,6 +14804,16 @@ xmlCtxtResetPush(xmlParserCtxtPtr ctxt, const char *chunk,
- 
-     xmlCtxtReset(ctxt);
- 
-+    if (ctxt->pushTab == NULL) {
-+        ctxt->pushTab = (void **) xmlMalloc(ctxt->nameMax * 3 *
-+	                                    sizeof(xmlChar *));
-+        if (ctxt->pushTab == NULL) {
-+	    xmlErrMemory(ctxt, NULL);
-+            xmlFreeParserInputBuffer(buf);
-+            return(1);
-+        }
-+    }
-+
-     if (filename == NULL) {
-         ctxt->directory = NULL;
-     } else {
-diff --git a/result/errors/754947.xml.err b/result/errors/754947.xml.err
-index 51e9b4ed..f45cb5a2 100644
---- a/result/errors/754947.xml.err
-+++ b/result/errors/754947.xml.err
-@@ -2,6 +2,6 @@
- Bytes: 0xEE 0x5D 0x5D 0x3E
- <d><![CDATA[0000000000000î]]>
-                          ^
--./test/errors/754947.xml:1: parser error : EndTag: '</' not found
-+./test/errors/754947.xml:1: parser error : Premature end of data in tag d line 1
- <d><![CDATA[0000000000000î]]>
-                              ^
-diff --git a/result/errors/759398.xml.err b/result/errors/759398.xml.err
-index bc9e5e03..f6036a3b 100644
---- a/result/errors/759398.xml.err
-+++ b/result/errors/759398.xml.err
-@@ -1,10 +1,10 @@
- ./test/errors/759398.xml:210: parser error : StartTag: invalid element name
- need to worry about parsers whi<! don't expand PErefs finding
-                                 ^
--./test/errors/759398.xml:309: parser error : Opening and ending tag mismatch: №№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№m line 205 and termdef
-+./test/errors/759398.xml:309: parser error : Opening and ending tag mismatch: №№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№m line 308 and termdef
- and provide access to their content and structure.</termdef> <termdef
-                                                             ^
--./test/errors/759398.xml:314: parser error : Opening and ending tag mismatch: spec line 205 and p
-+./test/errors/759398.xml:314: parser error : Opening and ending tag mismatch: spec line 50 and p
- data and the information it must provide to the application.</p>
-                                                                 ^
- ./test/errors/759398.xml:316: parser error : Extra content at the end of the document
diff --git a/third_party/libxml/chromium/roll.py b/third_party/libxml/chromium/roll.py
index 5c9b2fe..ef23d4c3 100755
--- a/third_party/libxml/chromium/roll.py
+++ b/third_party/libxml/chromium/roll.py
@@ -66,8 +66,6 @@
 #    e. Complete the review as usual
 
 PATCHES = [
-    # TODO(dcheng): reach out upstream to see what's going on here.
-    'revert-non-recursive-xml-parsing.patch',
     'chromium-issue-599427.patch',
     'chromium-issue-628581.patch',
     'libxml2-2.9.4-security-xpath-nodetab-uaf.patch',
diff --git a/third_party/libxml/src/include/libxml/parser.h b/third_party/libxml/src/include/libxml/parser.h
index 1c86a97..0ba1c387 100644
--- a/third_party/libxml/src/include/libxml/parser.h
+++ b/third_party/libxml/src/include/libxml/parser.h
@@ -169,6 +169,8 @@
     XML_PARSE_READER = 5
 } xmlParserMode;
 
+typedef struct _xmlStartTag xmlStartTag;
+
 /**
  * xmlParserCtxt:
  *
@@ -280,7 +282,7 @@
     int                nsMax;         /* the size of the arrays */
     const xmlChar *   *nsTab;         /* the array of prefix/namespace name */
     int               *attallocs;     /* which attribute were allocated */
-    void *            *pushTab;       /* array of data for push */
+    xmlStartTag       *pushTab;       /* array of data for push */
     xmlHashTablePtr    attsDefault;   /* defaulted attributes if any */
     xmlHashTablePtr    attsSpecial;   /* non-CDATA attributes if any */
     int                nsWellFormed;  /* is the document XML Namespace okay */
diff --git a/third_party/libxml/src/libxml2.spec b/third_party/libxml/src/libxml2.spec
index 017e34ee7..1cd4855 100644
--- a/third_party/libxml/src/libxml2.spec
+++ b/third_party/libxml/src/libxml2.spec
@@ -204,6 +204,6 @@
 %endif # with_python3
 
 %changelog
-* Thu May  6 2021 Daniel Veillard <veillard@redhat.com>
+* Mon May 10 2021 Daniel Veillard <veillard@redhat.com>
 - upstream release 2.9.10 see http://xmlsoft.org/news.html
 
diff --git a/third_party/libxml/src/parser.c b/third_party/libxml/src/parser.c
index c69a1c3..eba5f617 100644
--- a/third_party/libxml/src/parser.c
+++ b/third_party/libxml/src/parser.c
@@ -87,6 +87,13 @@
 #include "buf.h"
 #include "enc.h"
 
+struct _xmlStartTag {
+    const xmlChar *prefix;
+    const xmlChar *URI;
+    int line;
+    int nsNr;
+};
+
 static void
 xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info);
 
@@ -96,6 +103,12 @@
 
 static void xmlHaltParser(xmlParserCtxtPtr ctxt);
 
+static int
+xmlParseElementStart(xmlParserCtxtPtr ctxt);
+
+static void
+xmlParseElementEnd(xmlParserCtxtPtr ctxt);
+
 /************************************************************************
  *									*
  *	Arbitrary limits set in the parser. See XML_PARSE_HUGE		*
@@ -1833,13 +1846,14 @@
     return (ret);
 }
 
-#ifdef LIBXML_PUSH_ENABLED
 /**
  * nameNsPush:
  * @ctxt:  an XML parser context
  * @value:  the element name
  * @prefix:  the element prefix
  * @URI:  the element namespace name
+ * @line:  the current line number for error messages
+ * @nsNr:  the number of namespaces pushed on the namespace table
  *
  * Pushes a new element name/prefix/URL on top of the name stack
  *
@@ -1847,11 +1861,13 @@
  */
 static int
 nameNsPush(xmlParserCtxtPtr ctxt, const xmlChar * value,
-           const xmlChar *prefix, const xmlChar *URI, int nsNr)
+           const xmlChar *prefix, const xmlChar *URI, int line, int nsNr)
 {
+    xmlStartTag *tag;
+
     if (ctxt->nameNr >= ctxt->nameMax) {
         const xmlChar * *tmp;
-        void **tmp2;
+        xmlStartTag *tmp2;
         ctxt->nameMax *= 2;
         tmp = (const xmlChar * *) xmlRealloc((xmlChar * *)ctxt->nameTab,
                                     ctxt->nameMax *
@@ -1861,25 +1877,33 @@
 	    goto mem_error;
         }
 	ctxt->nameTab = tmp;
-        tmp2 = (void **) xmlRealloc((void * *)ctxt->pushTab,
-                                    ctxt->nameMax * 3 *
+        tmp2 = (xmlStartTag *) xmlRealloc((void * *)ctxt->pushTab,
+                                    ctxt->nameMax *
                                     sizeof(ctxt->pushTab[0]));
         if (tmp2 == NULL) {
 	    ctxt->nameMax /= 2;
 	    goto mem_error;
         }
 	ctxt->pushTab = tmp2;
+    } else if (ctxt->pushTab == NULL) {
+        ctxt->pushTab = (xmlStartTag *) xmlMalloc(ctxt->nameMax *
+                                            sizeof(ctxt->pushTab[0]));
+        if (ctxt->pushTab == NULL)
+            goto mem_error;
     }
     ctxt->nameTab[ctxt->nameNr] = value;
     ctxt->name = value;
-    ctxt->pushTab[ctxt->nameNr * 3] = (void *) prefix;
-    ctxt->pushTab[ctxt->nameNr * 3 + 1] = (void *) URI;
-    ctxt->pushTab[ctxt->nameNr * 3 + 2] = (void *) (ptrdiff_t) nsNr;
+    tag = &ctxt->pushTab[ctxt->nameNr];
+    tag->prefix = prefix;
+    tag->URI = URI;
+    tag->line = line;
+    tag->nsNr = nsNr;
     return (ctxt->nameNr++);
 mem_error:
     xmlErrMemory(ctxt, NULL);
     return (-1);
 }
+#ifdef LIBXML_PUSH_ENABLED
 /**
  * nameNsPop:
  * @ctxt: an XML parser context
@@ -9656,10 +9680,8 @@
  */
 
 static void
-xmlParseEndTag2(xmlParserCtxtPtr ctxt, const xmlChar *prefix,
-                const xmlChar *URI, int line, int nsNr, int tlen) {
+xmlParseEndTag2(xmlParserCtxtPtr ctxt, const xmlStartTag *tag) {
     const xmlChar *name;
-    size_t curLength;
 
     GROW;
     if ((RAW != '<') || (NXT(1) != '/')) {
@@ -9668,24 +9690,10 @@
     }
     SKIP(2);
 
-    curLength = ctxt->input->end - ctxt->input->cur;
-    if ((tlen > 0) && (curLength >= (size_t)tlen) &&
-        (xmlStrncmp(ctxt->input->cur, ctxt->name, tlen) == 0)) {
-        if ((curLength >= (size_t)(tlen + 1)) &&
-	    (ctxt->input->cur[tlen] == '>')) {
-	    ctxt->input->cur += tlen + 1;
-	    ctxt->input->col += tlen + 1;
-	    goto done;
-	}
-	ctxt->input->cur += tlen;
-	ctxt->input->col += tlen;
-	name = (xmlChar*)1;
-    } else {
-	if (prefix == NULL)
-	    name = xmlParseNameAndCompare(ctxt, ctxt->name);
-	else
-	    name = xmlParseQNameAndCompare(ctxt, ctxt->name, prefix);
-    }
+    if (tag->prefix == NULL)
+        name = xmlParseNameAndCompare(ctxt, ctxt->name);
+    else
+        name = xmlParseQNameAndCompare(ctxt, ctxt->name, tag->prefix);
 
     /*
      * We should definitely be at the ending "S? '>'" part
@@ -9707,25 +9715,22 @@
      */
     if (name != (xmlChar*)1) {
         if (name == NULL) name = BAD_CAST "unparsable";
-        if ((line == 0) && (ctxt->node != NULL))
-            line = ctxt->node->line;
         xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
 		     "Opening and ending tag mismatch: %s line %d and %s\n",
-		                ctxt->name, line, name);
+		                ctxt->name, tag->line, name);
     }
 
     /*
      * SAX: End of Tag
      */
-done:
     if ((ctxt->sax != NULL) && (ctxt->sax->endElementNs != NULL) &&
 	(!ctxt->disableSAX))
-	ctxt->sax->endElementNs(ctxt->userData, ctxt->name, prefix, URI);
+	ctxt->sax->endElementNs(ctxt->userData, ctxt->name, tag->prefix,
+                                tag->URI);
 
     spacePop(ctxt);
-    if (nsNr != 0)
-	nsPop(ctxt, nsNr);
-    return;
+    if (tag->nsNr != 0)
+	nsPop(ctxt, tag->nsNr);
 }
 
 /**
@@ -9841,19 +9846,19 @@
 }
 
 /**
- * xmlParseContent:
+ * xmlParseContentInternal:
  * @ctxt:  an XML parser context
  *
- * Parse a content:
- *
- * [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*
+ * Parse a content sequence. Stops at EOF or '</'. Leaves checking of
+ * unexpected EOF to the caller.
  */
 
-void
-xmlParseContent(xmlParserCtxtPtr ctxt) {
+static void
+xmlParseContentInternal(xmlParserCtxtPtr ctxt) {
+    int nameNr = ctxt->nameNr;
+
     GROW;
     while ((RAW != 0) &&
-	   ((RAW != '<') || (NXT(1) != '/')) &&
 	   (ctxt->instate != XML_PARSER_EOF)) {
 	const xmlChar *test = CUR_PTR;
 	unsigned int cons = ctxt->input->consumed;
@@ -9887,7 +9892,13 @@
 	 * Fourth case :  a sub-element.
 	 */
 	else if (*cur == '<') {
-	    xmlParseElement(ctxt);
+            if (NXT(1) == '/') {
+                if (ctxt->nameNr <= nameNr)
+                    break;
+	        xmlParseElementEnd(ctxt);
+            } else {
+	        xmlParseElementStart(ctxt);
+            }
 	}
 
 	/*
@@ -9919,10 +9930,34 @@
 }
 
 /**
+ * xmlParseContent:
+ * @ctxt:  an XML parser context
+ *
+ * Parse a content sequence. Stops at EOF or '</'.
+ *
+ * [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*
+ */
+
+void
+xmlParseContent(xmlParserCtxtPtr ctxt) {
+    int nameNr = ctxt->nameNr;
+
+    xmlParseContentInternal(ctxt);
+
+    if ((ctxt->instate != XML_PARSER_EOF) && (ctxt->nameNr > nameNr)) {
+        const xmlChar *name = ctxt->nameTab[ctxt->nameNr - 1];
+        int line = ctxt->pushTab[ctxt->nameNr - 1].line;
+        xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_TAG_NOT_FINISHED,
+                "Premature end of data in tag %s line %d\n",
+		name, line, NULL);
+    }
+}
+
+/**
  * xmlParseElement:
  * @ctxt:  an XML parser context
  *
- * parse an XML element, this is highly recursive
+ * parse an XML element
  *
  * [39] element ::= EmptyElemTag | STag content ETag
  *
@@ -9934,6 +9969,34 @@
 
 void
 xmlParseElement(xmlParserCtxtPtr ctxt) {
+    if (xmlParseElementStart(ctxt) != 0)
+        return;
+
+    xmlParseContentInternal(ctxt);
+    if (ctxt->instate == XML_PARSER_EOF)
+	return;
+
+    if (CUR == 0) {
+        const xmlChar *name = ctxt->nameTab[ctxt->nameNr - 1];
+        int line = ctxt->pushTab[ctxt->nameNr - 1].line;
+        xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_TAG_NOT_FINISHED,
+                "Premature end of data in tag %s line %d\n",
+		name, line, NULL);
+        return;
+    }
+
+    xmlParseElementEnd(ctxt);
+}
+
+/**
+ * xmlParseElementStart:
+ * @ctxt:  an XML parser context
+ *
+ * Parse the start of an XML element. Returns -1 in case of error, 0 if an
+ * opening tag was parsed, 1 if an empty element was parsed.
+ */
+static int
+xmlParseElementStart(xmlParserCtxtPtr ctxt) {
     const xmlChar *name;
     const xmlChar *prefix = NULL;
     const xmlChar *URI = NULL;
@@ -9948,7 +10011,7 @@
 		 "Excessive depth in document: %d use XML_PARSE_HUGE option\n",
 			  xmlParserMaxDepth);
 	xmlHaltParser(ctxt);
-	return;
+	return(-1);
     }
 
     /* Capture start position */
@@ -9975,12 +10038,12 @@
 	name = xmlParseStartTag(ctxt);
 #endif /* LIBXML_SAX1_ENABLED */
     if (ctxt->instate == XML_PARSER_EOF)
-	return;
+	return(-1);
     if (name == NULL) {
 	spacePop(ctxt);
-        return;
+        return(-1);
     }
-    namePush(ctxt, name);
+    nameNsPush(ctxt, name, prefix, URI, line, ctxt->nsNr - nsNr);
     ret = ctxt->node;
 
 #ifdef LIBXML_VALID_ENABLED
@@ -10021,7 +10084,7 @@
 	   node_info.node = ret;
 	   xmlParserAddNodeInfo(ctxt, &node_info);
 	}
-	return;
+	return(1);
     }
     if (RAW == '>') {
         NEXT1;
@@ -10049,41 +10112,36 @@
 	   node_info.node = ret;
 	   xmlParserAddNodeInfo(ctxt, &node_info);
 	}
-	return;
+	return(-1);
     }
 
-    /*
-     * Parse the content of the element:
-     */
-    xmlParseContent(ctxt);
-    if (ctxt->instate == XML_PARSER_EOF)
-	return;
-    if (!IS_BYTE_CHAR(RAW)) {
-        xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_TAG_NOT_FINISHED,
-	 "Premature end of data in tag %s line %d\n",
-		                name, line, NULL);
+    return(0);
+}
 
-	/*
-	 * end of parsing of this node.
-	 */
-	nodePop(ctxt);
-	namePop(ctxt);
-	spacePop(ctxt);
-	if (nsNr != ctxt->nsNr)
-	    nsPop(ctxt, ctxt->nsNr - nsNr);
-	return;
-    }
+/**
+ * xmlParseElementEnd:
+ * @ctxt:  an XML parser context
+ *
+ * Parse the end of an XML element.
+ */
+static void
+xmlParseElementEnd(xmlParserCtxtPtr ctxt) {
+    xmlParserNodeInfo node_info;
+    xmlNodePtr ret = ctxt->node;
+
+    if (ctxt->nameNr <= 0)
+        return;
 
     /*
      * parse the end of tag: '</' should be here.
      */
     if (ctxt->sax2) {
-	xmlParseEndTag2(ctxt, prefix, URI, line, ctxt->nsNr - nsNr, tlen);
+	xmlParseEndTag2(ctxt, &ctxt->pushTab[ctxt->nameNr - 1]);
 	namePop(ctxt);
     }
 #ifdef LIBXML_SAX1_ENABLED
-      else
-	xmlParseEndTag1(ctxt, line);
+    else
+	xmlParseEndTag1(ctxt, 0);
 #endif /* LIBXML_SAX1_ENABLED */
 
     /*
@@ -11353,6 +11411,7 @@
 	        const xmlChar *name;
 		const xmlChar *prefix = NULL;
 		const xmlChar *URI = NULL;
+                int line = ctxt->input->line;
 		int nsNr = ctxt->nsNr;
 
 		if ((avail < 2) && (ctxt->inputNr == 1))
@@ -11450,12 +11509,7 @@
 		    nodePop(ctxt);
 		    spacePop(ctxt);
 		}
-		if (ctxt->sax2)
-		    nameNsPush(ctxt, name, prefix, URI, ctxt->nsNr - nsNr);
-#ifdef LIBXML_SAX1_ENABLED
-		else
-		    namePush(ctxt, name);
-#endif /* LIBXML_SAX1_ENABLED */
+                nameNsPush(ctxt, name, prefix, URI, line, ctxt->nsNr - nsNr);
 
 		ctxt->instate = XML_PARSER_CONTENT;
                 ctxt->progressive = 1;
@@ -11572,11 +11626,7 @@
 		    }
 		}
 		if (ctxt->sax2) {
-		    xmlParseEndTag2(ctxt,
-		            (void *) ctxt->pushTab[ctxt->nameNr * 3 - 3],
-		            (void *) ctxt->pushTab[ctxt->nameNr * 3 - 2], 0,
-		            (int) (ptrdiff_t)
-                                ctxt->pushTab[ctxt->nameNr * 3 - 1], 0);
+	            xmlParseEndTag2(ctxt, &ctxt->pushTab[ctxt->nameNr - 1]);
 		    nameNsPop(ctxt);
 		}
 #ifdef LIBXML_SAX1_ENABLED
@@ -12400,13 +12450,6 @@
 	return(NULL);
     }
     ctxt->dictNames = 1;
-    ctxt->pushTab = (void **) xmlMalloc(ctxt->nameMax * 3 * sizeof(xmlChar *));
-    if (ctxt->pushTab == NULL) {
-        xmlErrMemory(ctxt, NULL);
-	xmlFreeParserInputBuffer(buf);
-	xmlFreeParserCtxt(ctxt);
-	return(NULL);
-    }
     if (sax != NULL) {
 #ifdef LIBXML_SAX1_ENABLED
 	if (ctxt->sax != (xmlSAXHandlerPtr) &xmlDefaultSAXHandler)
@@ -14869,16 +14912,6 @@
 
     xmlCtxtReset(ctxt);
 
-    if (ctxt->pushTab == NULL) {
-        ctxt->pushTab = (void **) xmlMalloc(ctxt->nameMax * 3 *
-	                                    sizeof(xmlChar *));
-        if (ctxt->pushTab == NULL) {
-	    xmlErrMemory(ctxt, NULL);
-            xmlFreeParserInputBuffer(buf);
-            return(1);
-        }
-    }
-
     if (filename == NULL) {
         ctxt->directory = NULL;
     } else {
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 41ebf5d..699f778 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -39,7 +39,7 @@
 # https://chromium.googlesource.com/chromium/src/+/main/docs/updating_clang.md
 # Reverting problematic clang rolls is safe, though.
 # This is the output of `git describe` and is usable as a commit-ish.
-CLANG_REVISION = 'llvmorg-13-init-9881-g5dad3d1b'
+CLANG_REVISION = 'llvmorg-13-init-9302-g897d7bce'
 CLANG_SUB_REVISION = 1
 
 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index bf45df88..c149ea34 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -154,7 +154,8 @@
     "META": {"sizes": {"includes": [20]}},
     "includes": [1590],
   },
-  "chrome/browser/resources/local_ntp/local_ntp_resources.grd": {
+  "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/new_tab_page_instant/resources.grd": {
+    "META": {"sizes": {"includes": [10]}},
     "includes": [1620],
   },
    "chrome/browser/resources/webid/webid_resources.grd": {
diff --git a/tools/metrics/BUILD.gn b/tools/metrics/BUILD.gn
index 7160108..a4dee3b 100644
--- a/tools/metrics/BUILD.gn
+++ b/tools/metrics/BUILD.gn
@@ -2,10 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//build/config/python.gni")
-
-# TODO(crbug.com/1118214) - Make work under Python 3.
-python2_action("histograms_xml") {
+action("histograms_xml") {
   script = "histograms/merge_xml.py"
   output = "$root_out_dir/histograms.xml"
   outputs = [ output ]
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 31f2958..d964003 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -51770,6 +51770,7 @@
   <int value="16" label="Toggle microphone"/>
   <int value="17" label="Toggle camera"/>
   <int value="18" label="Hang up"/>
+  <int value="19" label="Raise"/>
 </enum>
 
 <enum name="MediaSinkType">
@@ -56764,6 +56765,18 @@
   <int value="8" label="The visibility of shortcuts was changed."/>
 </enum>
 
+<enum name="NTPElement">
+  <int value="0" label="Other Element"/>
+  <int value="1" label="Background"/>
+  <int value="2" label="OneGoogleBar"/>
+  <int value="3" label="Logo / Doodle"/>
+  <int value="4" label="Realbox"/>
+  <int value="5" label="Most Visited Tiles"/>
+  <int value="6" label="Middle Slot Promo"/>
+  <int value="7" label="Module"/>
+  <int value="8" label="Customize Dialog / Button"/>
+</enum>
+
 <enum name="NtpFollowAction">
   <int value="0" label="PAGE_TRANSITION_LINK"/>
   <int value="1" label="PAGE_TRANSITION_TYPED"/>
@@ -58569,6 +58582,10 @@
     The download was a valid CRX file but came from a publisher that is
     untrusted.
   </int>
+  <int value="11" label="Model directory does not exist">
+    The directory used to store models does not exist so the model could not be
+    stored for use.
+  </int>
 </enum>
 
 <enum name="OptimizationGuideProcessHintsResult">
diff --git a/tools/metrics/histograms/histograms_xml/METRIC_REVIEWER_OWNERS b/tools/metrics/histograms/histograms_xml/METRIC_REVIEWER_OWNERS
index 96d9432..0722add 100644
--- a/tools/metrics/histograms/histograms_xml/METRIC_REVIEWER_OWNERS
+++ b/tools/metrics/histograms/histograms_xml/METRIC_REVIEWER_OWNERS
@@ -17,6 +17,7 @@
 johnidel@chromium.org
 jorgelo@chromium.org
 jsaul@google.com
+knollr@chromium.org
 kron@chromium.org
 lizeb@chromium.org
 lyf@chromium.org
@@ -30,6 +31,7 @@
 rayankans@chromium.org
 schenney@chromium.org
 sebmarchand@chromium.org
+sebsg@chromium.org
 sophiechang@chromium.org
 tbansal@chromium.org
 tby@chromium.org
diff --git a/tools/metrics/histograms/histograms_xml/new_tab_page/histograms.xml b/tools/metrics/histograms/histograms_xml/new_tab_page/histograms.xml
index 76736ef..f1eff00 100644
--- a/tools/metrics/histograms/histograms_xml/new_tab_page/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/new_tab_page/histograms.xml
@@ -111,6 +111,18 @@
   </summary>
 </histogram>
 
+<histogram name="NewTabPage.Click" enum="NTPElement" expires_after="2022-01-01">
+  <owner>tiborg@chromium.org</owner>
+  <owner>yyushkina@chromium.org</owner>
+  <owner>chrome-desktop-ntp@google.com</owner>
+  <summary>
+    Logged when the NTP was clicked. Only logged on the 1P NTP. Be aware that
+    this may undercount clicks on nested OGB iframes. Note that even if the user
+    has Google as their default search engine, Incognito and Guest mode NTPs are
+    not considered 1P and don't log this histogram.
+  </summary>
+</histogram>
+
 <histogram name="NewTabPage.ContentSuggestions.ArticlesListVisible"
     enum="BooleanVisible" expires_after="2021-11-07">
   <owner>freedjm@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/notifications/OWNERS b/tools/metrics/histograms/histograms_xml/notifications/OWNERS
new file mode 100644
index 0000000..bf2607f
--- /dev/null
+++ b/tools/metrics/histograms/histograms_xml/notifications/OWNERS
@@ -0,0 +1,5 @@
+per-file OWNERS=file://tools/metrics/histograms/histograms_xml/METRIC_REVIEWER_OWNERS
+
+# Prefer sending CLs to the owners listed below.
+# Use chromium-metrics-reviews@google.com as a backup.
+knollr@chromium.org
diff --git a/tools/metrics/histograms/histograms_xml/optimization/histograms.xml b/tools/metrics/histograms/histograms_xml/optimization/histograms.xml
index 9ee07bf5..123d4d4 100644
--- a/tools/metrics/histograms/histograms_xml/optimization/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/optimization/histograms.xml
@@ -337,6 +337,9 @@
 
 <histogram name="OptimizationGuide.ModelExecutor.RunCount.{OptimizationTarget}"
     units="count" expires_after="M94">
+  <obsolete>
+    Removed 2021-May.
+  </obsolete>
   <owner>robertogden@chromium.org</owner>
   <owner>chrome-intelligence-core@google.com</owner>
   <summary>
@@ -588,6 +591,19 @@
   </summary>
 </histogram>
 
+<histogram
+    name="OptimizationGuide.PredictionModelDownloadManager.ReplaceFileError"
+    enum="PlatformFileError" expires_after="M94">
+  <owner>mcrouse@chromium.org</owner>
+  <owner>sophiechang@chromium.org</owner>
+  <summary>
+    Records the exact error whenever writing a model file fails at the step
+    where the model is moved from the scratch directory to its final location.
+    Recorded every time a model file is downloaded and being processed for
+    storage.
+  </summary>
+</histogram>
+
 <histogram base="true"
     name="OptimizationGuide.PredictionModelEvaluationLatency" units="ms"
     expires_after="M94">
diff --git a/tools/metrics/histograms/histograms_xml/others/OWNERS b/tools/metrics/histograms/histograms_xml/others/OWNERS
index ddb461f..16a3575 100644
--- a/tools/metrics/histograms/histograms_xml/others/OWNERS
+++ b/tools/metrics/histograms/histograms_xml/others/OWNERS
@@ -14,3 +14,5 @@
 xidachen@chromium.org
 # For Conversions.* histograms:
 johnidel@chromium.org
+# For SharedHighlights.* histograms:
+sebsg@chromium.org
diff --git a/tools/metrics/histograms/histograms_xml/sharing/OWNERS b/tools/metrics/histograms/histograms_xml/sharing/OWNERS
index adda4e3..9355526 100644
--- a/tools/metrics/histograms/histograms_xml/sharing/OWNERS
+++ b/tools/metrics/histograms/histograms_xml/sharing/OWNERS
@@ -3,3 +3,4 @@
 # Prefer sending CLs to the owners listed below.
 # Use chromium-metrics-reviews@google.com as a backup.
 ellyjones@chromium.org
+knollr@chromium.org
diff --git a/tools/metrics/histograms/histograms_xml/sharing/histograms.xml b/tools/metrics/histograms/histograms_xml/sharing/histograms.xml
index 0639f1e..df8a792 100644
--- a/tools/metrics/histograms/histograms_xml/sharing/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/sharing/histograms.xml
@@ -339,6 +339,9 @@
 
 <histogram name="Sharing.RemoteCopyResizeImageTime" units="ms"
     expires_after="M90">
+  <obsolete>
+    Removed in M92.
+  </obsolete>
   <owner>mvanouwerkerk@chromium.org</owner>
   <owner>knollr@chromium.org</owner>
   <summary>The time to resize an image for Remote Copy. Desktop only.</summary>
diff --git a/tools/metrics/histograms/merge_xml.py b/tools/metrics/histograms/merge_xml.py
index d522fae..a9ddd49 100755
--- a/tools/metrics/histograms/merge_xml.py
+++ b/tools/metrics/histograms/merge_xml.py
@@ -182,7 +182,8 @@
   Returns:
     A merged DOM tree.
   """
-  all_files = files + [open(f) for f in filenames]
+  # minidom.parse() takes both files and filenames:
+  all_files = files + filenames
   trees = [xml.dom.minidom.parse(f) for f in all_files]
   return MergeTrees(trees, should_expand_owners)
 
@@ -196,7 +197,7 @@
   parser = argparse.ArgumentParser()
   parser.add_argument('--output', required=True)
   args = parser.parse_args()
-  with open(args.output, 'w') as f:
+  with open(args.output, 'w', encoding='utf-8', newline='\n') as f:
     # This is run by
     # https://source.chromium.org/chromium/chromium/src/+/master:tools/metrics/BUILD.gn;drc=573e48309695102dec2da1e8f806c18c3200d414;l=5
     # to send the merged histograms.xml to the server side. Providing |UKM_XML|
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index c9514100..78b6bb22 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -9,8 +9,8 @@
             "remote_path": "perfetto_binaries/trace_processor_shell/mac/022251faee35ed4b87d88a0e6afa9b99f97dfded/trace_processor_shell"
         },
         "linux": {
-            "hash": "a313992d61f86f5577529a60e053af9fd2a6f9e0",
-            "remote_path": "perfetto_binaries/trace_processor_shell/linux/022251faee35ed4b87d88a0e6afa9b99f97dfded/trace_processor_shell"
+            "hash": "7c885e2fe6c6803c01bfa03fa68b5af7da0a3f01",
+            "remote_path": "perfetto_binaries/trace_processor_shell/linux/5e76bff1ab36ae7b07baa0ee2cad749954312590/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/usb_gadget/BUILD.gn b/tools/usb_gadget/BUILD.gn
index 74e3ab9a..3427d68 100644
--- a/tools/usb_gadget/BUILD.gn
+++ b/tools/usb_gadget/BUILD.gn
@@ -2,10 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//build/config/python.gni")
-
-# TODO(crbug.com/1112471): Get this to run cleanly under Python 3.
-python2_action("usb_gadget") {
+action("usb_gadget") {
   script = "//tools/usb_gadget/package.py"
   inputs = [
     "__init__.py",
diff --git a/tools/usb_gadget/package.py b/tools/usb_gadget/package.py
index 9e498cf..1fdbd2a 100755
--- a/tools/usb_gadget/package.py
+++ b/tools/usb_gadget/package.py
@@ -8,12 +8,17 @@
 
 import argparse
 import hashlib
+import io
 import os
-import StringIO
-import urllib2
 import zipfile
 
 
+try:
+  from urllib.request import Request, urlopen
+except ImportError:  # For Py2 compatibility
+  from urllib2 import Request, urlopen
+
+
 def MakeZip(directory=None, files=None):
   """Construct a zip file.
 
@@ -24,7 +29,7 @@
   Returns:
     A tuple of the buffer containing the zip file and its MD5 hash.
   """
-  buf = StringIO.StringIO()
+  buf = io.BytesIO()
   archive = zipfile.PyZipFile(buf, 'w')
   if directory is not None:
     archive.writepy(directory)
@@ -39,24 +44,24 @@
 
 
 def EncodeBody(filename, buf):
-  return '\r\n'.join([
-      '--foo',
-      'Content-Disposition: form-data; name="file"; filename="{}"'
-      .format(filename),
-      'Content-Type: application/octet-stream',
-      '',
+  return b'\r\n'.join([
+      b'--foo',
+      b'Content-Disposition: form-data; name="file"; filename="%s"' %
+      filename,
+      b'Content-Type: application/octet-stream',
+      b'',
       buf,
-      '--foo--',
-      ''
+      b'--foo--',
+      b''
   ])
 
 
 def UploadZip(content, md5, host):
-  filename = 'usb_gadget-{}.zip'.format(md5)
-  req = urllib2.Request(url='http://{}/update'.format(host),
-                        data=EncodeBody(filename, content))
+  filename = b'usb_gadget-%s.zip' % md5.encode('utf-8')
+  req = Request(url='http://{}/update'.format(host),
+                data=EncodeBody(filename, content))
   req.add_header('Content-Type', 'multipart/form-data; boundary=foo')
-  urllib2.urlopen(req)
+  urlopen(req)
 
 
 def main():
@@ -85,7 +90,7 @@
     with open(args.zip_file, 'wb') as zip_file:
       zip_file.write(content)
   if args.hash_file:
-    with open(args.hash_file, 'wb') as hash_file:
+    with open(args.hash_file, 'w') as hash_file:
       hash_file.write(md5)
   if args.upload:
     UploadZip(content, md5, args.upload)
diff --git a/ui/android/javatests/src/org/chromium/ui/test/util/DummyUiActivity.java b/ui/android/javatests/src/org/chromium/ui/test/util/DummyUiActivity.java
index b06fa41..e32f73e 100644
--- a/ui/android/javatests/src/org/chromium/ui/test/util/DummyUiActivity.java
+++ b/ui/android/javatests/src/org/chromium/ui/test/util/DummyUiActivity.java
@@ -5,16 +5,23 @@
 package org.chromium.ui.test.util;
 
 import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
 
 import androidx.annotation.IdRes;
 import androidx.annotation.LayoutRes;
 import androidx.appcompat.app.AppCompatActivity;
 
+import org.chromium.base.Callback;
+
 /** Dummy activity to test UI components without Chrome browser initialization and natives. */
 public class DummyUiActivity extends AppCompatActivity {
     private static int sTestTheme;
     private static int sTestLayout;
 
+    private Callback<MotionEvent> mMotionEventCallback;
+    private Callback<KeyEvent> mKeyEventCallback;
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -45,4 +52,32 @@
     public static void setTestLayout(@LayoutRes int layoutResID) {
         sTestLayout = layoutResID;
     }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        if (mMotionEventCallback != null) mMotionEventCallback.onResult(event);
+        return super.dispatchTouchEvent(event);
+    }
+
+    @Override
+    public boolean dispatchKeyEvent(KeyEvent event) {
+        if (mKeyEventCallback != null) mKeyEventCallback.onResult(event);
+        return super.dispatchKeyEvent(event);
+    }
+
+    /**
+     * Registers a callback for getting a stream of touch events prior to being dispatched to the
+     * view tree.
+     */
+    public void setTouchEventCallback(Callback<MotionEvent> callback) {
+        mMotionEventCallback = callback;
+    }
+
+    /**
+     * Registers a callback for getting a stream of key events prior to being dispatched to the
+     * view tree.
+     */
+    public void setKeyEventCallback(Callback<KeyEvent> callback) {
+        mKeyEventCallback = callback;
+    }
 }
diff --git a/ui/aura/demo/demo_main.cc b/ui/aura/demo/demo_main.cc
index 0d922303..eb0f97d 100644
--- a/ui/aura/demo/demo_main.cc
+++ b/ui/aura/demo/demo_main.cc
@@ -192,7 +192,7 @@
   gfx::Rect window1_bounds(100, 100, 400, 400);
   DemoWindowDelegate window_delegate1(SK_ColorBLUE);
   aura::Window window1(&window_delegate1);
-  window1.set_id(1);
+  window1.SetId(1);
   window1.Init(ui::LAYER_TEXTURED);
   window1.SetBounds(window1_bounds);
   window1.Show();
@@ -201,7 +201,7 @@
   gfx::Rect window2_bounds(200, 200, 350, 350);
   DemoWindowDelegate window_delegate2(SK_ColorRED);
   aura::Window window2(&window_delegate2);
-  window2.set_id(2);
+  window2.SetId(2);
   window2.Init(ui::LAYER_TEXTURED);
   window2.SetBounds(window2_bounds);
   window2.Show();
@@ -210,7 +210,7 @@
   gfx::Rect window3_bounds(10, 10, 50, 50);
   DemoWindowDelegate window_delegate3(SK_ColorGREEN);
   aura::Window window3(&window_delegate3);
-  window3.set_id(3);
+  window3.SetId(3);
   window3.Init(ui::LAYER_TEXTURED);
   window3.SetBounds(window3_bounds);
   window3.Show();
diff --git a/ui/aura/gestures/gesture_recognizer_unittest.cc b/ui/aura/gestures/gesture_recognizer_unittest.cc
index 40ad046..50e6c317 100644
--- a/ui/aura/gestures/gesture_recognizer_unittest.cc
+++ b/ui/aura/gestures/gesture_recognizer_unittest.cc
@@ -41,8 +41,9 @@
 namespace {
 
 std::string WindowIDAsString(ui::GestureConsumer* consumer) {
-  return consumer ? base::NumberToString(static_cast<Window*>(consumer)->id())
-                  : "?";
+  return consumer
+             ? base::NumberToString(static_cast<Window*>(consumer)->GetId())
+             : "?";
 }
 
 #define EXPECT_0_EVENTS(events) \
@@ -2214,7 +2215,7 @@
     delegates[i] = new GestureEventConsumeDelegate();
     windows[i] = CreateTestWindowWithDelegate(
         delegates[i], i, window_bounds[i], root_window());
-    windows[i]->set_id(i);
+    windows[i]->SetId(i);
     ui::TouchEvent press(ui::ET_TOUCH_PRESSED, window_bounds[i].origin(),
                          tes.Now(),
                          ui::PointerDetails(ui::EventPointerType::kTouch, i));
diff --git a/ui/aura/test/test_windows.cc b/ui/aura/test/test_windows.cc
index 5ad45205..c9a15b2 100644
--- a/ui/aura/test/test_windows.cc
+++ b/ui/aura/test/test_windows.cc
@@ -47,7 +47,7 @@
                                             Window* parent,
                                             bool show_on_creation) {
   Window* window = new Window(delegate, type);
-  window->set_id(id);
+  window->SetId(id);
   window->Init(ui::LAYER_TEXTURED);
   window->SetProperty(
       client::kResizeBehaviorKey,
@@ -86,7 +86,7 @@
        ++i) {
     if (!result.empty())
       result += " ";
-    result += base::NumberToString((*i)->id());
+    result += base::NumberToString((*i)->GetId());
   }
   return result;
 }
diff --git a/ui/aura/window.cc b/ui/aura/window.cc
index 67cb846..334a6bfb 100644
--- a/ui/aura/window.cc
+++ b/ui/aura/window.cc
@@ -46,6 +46,8 @@
 #include "ui/aura/window_tracker.h"
 #include "ui/aura/window_tree_host.h"
 #include "ui/base/layout.h"
+#include "ui/base/metadata/base_type_conversion.h"
+#include "ui/base/metadata/metadata_impl_macros.h"
 #include "ui/base/ui_base_features.h"
 #include "ui/compositor/compositor.h"
 #include "ui/compositor/layer.h"
@@ -57,6 +59,66 @@
 #include "ui/gfx/canvas.h"
 #include "ui/gfx/scoped_canvas.h"
 
+DEFINE_ENUM_CONVERTERS(
+    aura::client::WindowType,
+    {aura::client::WINDOW_TYPE_UNKNOWN, u"WINDOW_TYPE_UNKNOWN"},
+    {aura::client::WINDOW_TYPE_NORMAL, u"WINDOW_TYPE_NORMAL"},
+    {aura::client::WINDOW_TYPE_POPUP, u"WINDOW_TYPE_POPUP"},
+    {aura::client::WINDOW_TYPE_CONTROL, u"WINDOW_TYPE_CONTROL"},
+    {aura::client::WINDOW_TYPE_MENU, u"WINDOW_TYPE_MENU"},
+    {aura::client::WINDOW_TYPE_TOOLTIP, u"WINDOW_TYPE_TOOLTIP"})
+
+DEFINE_ENUM_CONVERTERS(aura::Window::OcclusionState,
+                       {aura::Window::OcclusionState::UNKNOWN, u"UNKNOWN"},
+                       {aura::Window::OcclusionState::VISIBLE, u"VISIBLE"},
+                       {aura::Window::OcclusionState::OCCLUDED, u"OCCLUDED"},
+                       {aura::Window::OcclusionState::HIDDEN, u"HIDDEN"})
+
+namespace ui {
+namespace metadata {
+
+template <>
+struct TypeConverter<viz::SurfaceId> : public BaseTypeConverter<true> {
+  static std::u16string ToString(const viz::SurfaceId& source_value);
+  static base::Optional<viz::SurfaceId> FromString(
+      const std::u16string& source_value);
+  static ValidStrings GetValidStrings();
+};
+
+// static
+std::u16string TypeConverter<viz::SurfaceId>::ToString(
+    const viz::SurfaceId& source_value) {
+  return source_value.is_valid() ? base::UTF8ToUTF16(source_value.ToString())
+                                 : u"<none>";
+}
+
+// static
+base::Optional<viz::SurfaceId> TypeConverter<viz::SurfaceId>::FromString(
+    const std::u16string& source_value) {
+  return base::nullopt;
+}
+
+// static
+ValidStrings TypeConverter<viz::SurfaceId>::GetValidStrings() {
+  return ValidStrings();
+}
+
+}  // namespace metadata
+}  // namespace ui
+
+namespace {
+
+// This enum is used to construct a unique property changed callback key from
+// the address of the `bounds_` field by using these values as an offset.
+enum BoundsCallbackIndex : int {
+  kBoundsX,
+  kBoundsY,
+  kBoundsWidth,
+  kBoundsHeight,
+};
+
+}  // namespace
+
 namespace aura {
 namespace {
 static const char* kExo = "Exo";
@@ -198,10 +260,28 @@
   Env::GetInstance()->NotifyWindowInitialized(this);
 }
 
+int Window::GetId() const {
+  return id_;
+}
+
+void Window::SetId(int id) {
+  if (id == id_)
+    return;
+  id_ = id;
+  TriggerChangedCallback(&id_);
+}
+
+client::WindowType Window::GetType() const {
+  return type_;
+}
+
 void Window::SetType(client::WindowType type) {
   // Cannot change type after the window is initialized.
   DCHECK(!layer());
+  if (type == type_)
+    return;
   type_ = type;
+  TriggerChangedCallback(&type_);
 }
 
 const std::string& Window::GetName() const {
@@ -215,6 +295,7 @@
   SetProperty(client::kNameKey, name);
   if (layer())
     UpdateLayerName();
+  TriggerChangedCallback(client::kNameKey);
 }
 
 const std::u16string& Window::GetTitle() const {
@@ -230,12 +311,17 @@
     observer.OnWindowTitleChanged(this);
 }
 
+bool Window::GetTransparent() const {
+  return transparent_;
+}
+
 void Window::SetTransparent(bool transparent) {
   if (transparent == transparent_)
     return;
   transparent_ = transparent;
   if (layer())
     layer()->SetFillsBoundsOpaquely(!transparent_);
+  TriggerChangedCallback(&transparent_);
 }
 
 void Window::SetFillsBoundsCompletely(bool fills_bounds) {
@@ -267,12 +353,12 @@
   // transparent since the window would still be considered to be active but
   // could not be seen.
   DCHECK(!visible_ || layer()->GetTargetOpacity() > 0.0f);
-  SetVisible(true);
+  SetVisibleInternal(true);
 }
 
 void Window::Hide() {
   // RootWindow::OnVisibilityChanged will call ReleaseCapture.
-  SetVisible(false);
+  SetVisibleInternal(false);
 }
 
 bool Window::IsVisible() const {
@@ -283,6 +369,10 @@
   return visible_ ? layer()->IsDrawn() : false;
 }
 
+Window::OcclusionState Window::GetOcclusionState() const {
+  return occlusion_state_;
+}
+
 ScopedWindowCaptureRequest Window::MakeWindowCapturable() {
   DCHECK(!IsRootWindow()) << "Root windows can already be captured using their "
                              "FrameSinkId; no need to call this.";
@@ -500,7 +590,7 @@
 const Window* Window::GetChildById(int id) const {
   Windows::const_iterator i;
   for (i = children_.begin(); i != children_.end(); ++i) {
-    if ((*i)->id() == id)
+    if ((*i)->GetId() == id)
       return *i;
     const Window* result = (*i)->GetChildById(id);
     if (result)
@@ -819,9 +909,10 @@
         layer()->opacity());
   }
   return base::StringPrintf(
-      "%s<%d> bounds=%s %s %s occlusion_state=%s", name.c_str(), id(),
+      "%s<%d> bounds=%s %s %s occlusion_state=%s", name.c_str(), GetId(),
       bounds().ToString().c_str(), visible_ ? "WindowVisible" : "WindowHidden",
-      layer_state.c_str(), OcclusionStateToString(occlusion_state_));
+      layer_state.c_str(),
+      base::UTF16ToUTF8(OcclusionStateToString(occlusion_state_)).c_str());
 }
 
 std::string Window::GetWindowHierarchy(int depth) const {
@@ -901,7 +992,7 @@
   }
 }
 
-void Window::SetVisible(bool visible) {
+void Window::SetVisibleInternal(bool visible) {
   if (visible == layer()->GetTargetVisibility())
     return;  // No change.
 
@@ -1225,6 +1316,10 @@
   return viz::SurfaceId(GetFrameSinkId(), GetLocalSurfaceId());
 }
 
+viz::SurfaceId Window::GetSurfaceId() const {
+  return const_cast<Window*>(this)->GetSurfaceId();
+}
+
 void Window::AllocateLocalSurfaceId() {
   if (!parent_local_surface_id_allocator_) {
     parent_local_surface_id_allocator_ =
@@ -1288,27 +1383,14 @@
 }
 
 // static
-const char* Window::OcclusionStateToString(OcclusionState state) {
-#define CASE_TYPE(t) \
-  case t:            \
-    return #t
-
-  switch (state) {
-    CASE_TYPE(OcclusionState::UNKNOWN);
-    CASE_TYPE(OcclusionState::VISIBLE);
-    CASE_TYPE(OcclusionState::OCCLUDED);
-    CASE_TYPE(OcclusionState::HIDDEN);
-  }
-#undef CASE_TYPE
-
-  NOTREACHED();
-  return "";
+const std::u16string Window::OcclusionStateToString(OcclusionState state) {
+  return ui::metadata::TypeConverter<OcclusionState>::ToString(state);
 }
 
 void Window::SetOpaqueRegionsForOcclusion(
     const std::vector<gfx::Rect>& opaque_regions_for_occlusion) {
   // Only transparent windows should try to set opaque regions for occlusion.
-  DCHECK(transparent() || opaque_regions_for_occlusion.empty());
+  DCHECK(GetTransparent() || opaque_regions_for_occlusion.empty());
   if (opaque_regions_for_occlusion == opaque_regions_for_occlusion_)
     return;
   opaque_regions_for_occlusion_ = opaque_regions_for_occlusion;
@@ -1350,6 +1432,16 @@
     delegate_->OnBoundsChanged(old_bounds, bounds_);
   for (auto& observer : observers_)
     observer.OnWindowBoundsChanged(this, old_bounds, bounds_, reason);
+
+  // Trigger the changed notification for each of the bounds "properties".
+  if (old_bounds.x() != bounds_.x())
+    TriggerChangedCallback(&bounds_ + kBoundsX);
+  if (old_bounds.y() != bounds_.y())
+    TriggerChangedCallback(&bounds_ + kBoundsY);
+  if (old_bounds.width() != bounds_.width())
+    TriggerChangedCallback(&bounds_ + kBoundsWidth);
+  if (old_bounds.height() != bounds_.height())
+    TriggerChangedCallback(&bounds_ + kBoundsHeight);
 }
 
 void Window::OnLayerOpacityChanged(ui::PropertyChangeReason reason) {
@@ -1371,7 +1463,7 @@
   WindowOcclusionTracker::ScopedPause pause_occlusion_tracking;
 
   // Non-transparent windows should not have opaque regions for occlusion set.
-  if (!transparent())
+  if (!GetTransparent())
     DCHECK(opaque_regions_for_occlusion_.empty());
 
   for (WindowObserver& observer : observers_)
@@ -1597,4 +1689,87 @@
   }
 }
 
+int Window::GetHeight() const {
+  return bounds().height();
+}
+
+int Window::GetWidth() const {
+  return bounds().width();
+}
+
+int Window::GetX() const {
+  return bounds().x();
+}
+
+int Window::GetY() const {
+  return bounds().y();
+}
+
+void Window::SetHeight(int height) {
+  if (height == bounds().height())
+    return;
+  // Bounds changed notification is done within OnLayerBoundsChanged.
+  // Here and below.
+  SetBounds({bounds().x(), bounds().y(), bounds().width(), height});
+}
+
+void Window::SetWidth(int width) {
+  if (width == bounds().width())
+    return;
+  SetBounds({bounds().x(), bounds().y(), width, bounds().height()});
+}
+
+void Window::SetX(int x) {
+  if (x == bounds().x())
+    return;
+  SetBounds({x, bounds().y(), bounds().width(), bounds().height()});
+}
+
+void Window::SetY(int y) {
+  if (y == bounds().y())
+    return;
+  SetBounds({bounds().x(), y, bounds().width(), bounds().height()});
+}
+
+bool Window::GetCapture() const {
+  return const_cast<Window*>(this)->HasCapture();
+}
+
+bool Window::GetVisible() const {
+  return IsVisible();
+}
+
+void Window::SetVisible(bool visible) {
+  if (visible == IsVisible())
+    return;
+  if (visible)
+    Show();
+  else
+    Hide();
+  // Changed notification is handled in SetVisibleInternal().
+}
+
+// Under Windows this macro is defined.
+#undef GetClassName
+
+BEGIN_METADATA_BASE(Window)
+ADD_READONLY_PROPERTY_METADATA(gfx::Rect, ActualBoundsInRootWindow)
+ADD_READONLY_PROPERTY_METADATA(gfx::Rect, ActualBoundsInScreen)
+ADD_READONLY_PROPERTY_METADATA(gfx::Rect, BoundsInRootWindow)
+ADD_READONLY_PROPERTY_METADATA(gfx::Rect, BoundsInScreen)
+ADD_READONLY_PROPERTY_METADATA(bool, Capture)
+ADD_PROPERTY_METADATA(int, Height)
+ADD_PROPERTY_METADATA(int, Width)
+ADD_PROPERTY_METADATA(int, X)
+ADD_PROPERTY_METADATA(int, Y)
+ADD_READONLY_PROPERTY_METADATA(Window::OcclusionState, OcclusionState)
+ADD_READONLY_PROPERTY_METADATA(viz::SurfaceId, SurfaceId)
+ADD_PROPERTY_METADATA(int, Id)
+ADD_PROPERTY_METADATA(std::string, Name)
+ADD_PROPERTY_METADATA(std::u16string, Title)
+ADD_PROPERTY_METADATA(bool, Transparent)
+ADD_PROPERTY_METADATA(client::WindowType, Type)
+ADD_PROPERTY_METADATA(bool, Visible)
+END_METADATA
+
 }  // namespace aura
diff --git a/ui/aura/window.h b/ui/aura/window.h
index 11d21fc..f009d8c 100644
--- a/ui/aura/window.h
+++ b/ui/aura/window.h
@@ -33,6 +33,7 @@
 #include "ui/aura/scoped_window_capture_request.h"
 #include "ui/aura/window_observer.h"
 #include "ui/base/class_property.h"
+#include "ui/base/metadata/metadata_header_macros.h"
 #include "ui/compositor/layer_animator.h"
 #include "ui/compositor/layer_delegate.h"
 #include "ui/compositor/layer_owner.h"
@@ -109,8 +110,11 @@
                            public ui::EventTarget,
                            public ui::GestureConsumer,
                            public ui::PropertyHandler,
+                           public ui::metadata::MetaDataProvider,
                            public viz::HostFrameSinkClient {
  public:
+  METADATA_HEADER_BASE(Window);
+
   // Initial value of id() for newly created windows.
   static constexpr int kInitialId = -1;
 
@@ -166,11 +170,11 @@
   // A type is used to identify a class of Windows and customize behavior such
   // as event handling and parenting.  This field should only be consumed by the
   // shell -- Aura itself shouldn't contain type-specific logic.
-  client::WindowType type() const { return type_; }
+  client::WindowType GetType() const;
   void SetType(client::WindowType type);
 
-  int id() const { return id_; }
-  void set_id(int id) { id_ = id; }
+  int GetId() const;
+  void SetId(int id);
 
   const std::string& GetName() const;
   void SetName(const std::string& name);
@@ -178,7 +182,7 @@
   const std::u16string& GetTitle() const;
   void SetTitle(const std::u16string& title);
 
-  bool transparent() const { return transparent_; }
+  bool GetTransparent() const;
 
   // Note: Setting a window transparent has significant performance impact,
   // especially on low-end Chrome OS devices. Please ensure you are not
@@ -221,7 +225,7 @@
   // state of this window isn't tracked (Window::TrackOcclusionState) or
   // hasn't been computed yet. Is stale if called within the scope of a
   // WindowOcclusionTracker::ScopedPause.
-  OcclusionState occlusion_state() const { return occlusion_state_; }
+  OcclusionState GetOcclusionState() const;
 
   // Returns the currently occluded region in the root Window coordinates. This
   // will be empty unless the window is tracked and has a VISIBLE occlusion
@@ -511,7 +515,7 @@
   bool RequiresDoubleTapGestureEvents() const override;
 
   // Returns |state| as a string. This is generally only useful for debugging.
-  static const char* OcclusionStateToString(OcclusionState state);
+  static const std::u16string OcclusionStateToString(OcclusionState state);
 
   // Sets the regions of this window to consider opaque when computing the
   // occlusion of underneath windows. Opaque regions can only be set for a
@@ -574,9 +578,9 @@
   // Changes the bounds of the window without condition.
   void SetBoundsInternal(const gfx::Rect& new_bounds);
 
-  // Updates the visible state of the layer, but does not make visible-state
-  // specific changes. Called from Show()/Hide().
-  void SetVisible(bool visible);
+  // Updates the visible state of the layer and the Window, but does not make
+  // visible-state specific changes. Called from Show()/Hide().
+  void SetVisibleInternal(bool visible);
 
   // Updates the occlusion info of the window.
   void SetOcclusionInfo(OcclusionState occlusion_state,
@@ -685,6 +689,27 @@
   // to make this non-root window capturable by the FrameSinkVideoCapturer.
   void OnScopedWindowCaptureRequestRemoved();
 
+  // The following are intended for use by the metadata to access the internals
+  // of instances of this class. At some point they should be moved to the
+  // public section and code refactored to use them.
+
+  // Break out the separate elements of the Window bounds.
+  int GetHeight() const;
+  int GetWidth() const;
+  int GetX() const;
+  int GetY() const;
+  void SetHeight(int height);
+  void SetWidth(int width);
+  void SetX(int x);
+  void SetY(int y);
+
+  bool GetCapture() const;
+
+  viz::SurfaceId GetSurfaceId() const;
+
+  bool GetVisible() const;
+  void SetVisible(bool visible);
+
   // Bounds of this window relative to the parent. This is cached as the bounds
   // of the Layer and Window are not necessarily the same. In particular bounds
   // of the Layer are relative to the first ancestor with a Layer, where as this
diff --git a/ui/aura/window_event_dispatcher_unittest.cc b/ui/aura/window_event_dispatcher_unittest.cc
index 40e92b38..43445b5 100644
--- a/ui/aura/window_event_dispatcher_unittest.cc
+++ b/ui/aura/window_event_dispatcher_unittest.cc
@@ -296,10 +296,10 @@
     client::SetEventClient(root_window_, this);
     Window* lock_window =
         test::CreateTestWindowWithBounds(root_window_->bounds(), root_window_);
-    lock_window->set_id(kLockWindowId);
+    lock_window->SetId(kLockWindowId);
     Window* non_lock_window =
         test::CreateTestWindowWithBounds(root_window_->bounds(), root_window_);
-    non_lock_window->set_id(kNonLockWindowId);
+    non_lock_window->SetId(kNonLockWindowId);
   }
   ~TestEventClient() override { client::SetEventClient(root_window_, NULL); }
 
@@ -348,10 +348,10 @@
 
   Window* w1 = test::CreateTestWindowWithBounds(gfx::Rect(10, 10, 20, 20),
                                                 client.GetNonLockWindow());
-  w1->set_id(1);
+  w1->SetId(1);
   Window* w2 = test::CreateTestWindowWithBounds(gfx::Rect(30, 30, 20, 20),
                                                 client.GetNonLockWindow());
-  w2->set_id(2);
+  w2->SetId(2);
   std::unique_ptr<Window> w3(test::CreateTestWindowWithDelegate(
       &d, 3, gfx::Rect(30, 30, 20, 20), client.GetLockWindow()));
 
diff --git a/ui/aura/window_occlusion_tracker.cc b/ui/aura/window_occlusion_tracker.cc
index a68c686..c4c5f71 100644
--- a/ui/aura/window_occlusion_tracker.cc
+++ b/ui/aura/window_occlusion_tracker.cc
@@ -261,7 +261,7 @@
     const base::flat_map<Window*, OcclusionData>& tracked_windows) {
   for (const auto& tracked_window : tracked_windows) {
     if (tracked_window.second.occlusion_state !=
-        tracked_window.first->occlusion_state())
+        tracked_window.first->GetOcclusionState())
       return false;
   }
   return true;
@@ -346,7 +346,7 @@
   }
 
   // Sanity check: Occlusion states in |tracked_windows_| should match those
-  // returned by Window::occlusion_state().
+  // returned by Window::GetOcclusionState().
   DCHECK(OcclusionStatesMatch(tracked_windows_));
 }
 
@@ -450,7 +450,7 @@
                                          : window->layer()->background_color();
     combined_opacity *= SkColorGetA(color) / 255.f;
   }
-  return (!window->transparent() && WindowHasContent(window) &&
+  return (!window->GetTransparent() && WindowHasContent(window) &&
           combined_opacity == 1.0f &&
           // For simplicity, a shaped window is not considered opaque.
           !WindowOrParentHasShape(window)) ||
@@ -656,7 +656,7 @@
       WindowIsAnimated(window)) {
     return false;
   }
-  if ((!window->transparent() && WindowHasContent(window)) ||
+  if ((!window->GetTransparent() && WindowHasContent(window)) ||
       WindowHasOpaqueRegionsForOcclusion(window)) {
     return true;
   }
diff --git a/ui/aura/window_occlusion_tracker.h b/ui/aura/window_occlusion_tracker.h
index 70a6477..19bdb1d2 100644
--- a/ui/aura/window_occlusion_tracker.h
+++ b/ui/aura/window_occlusion_tracker.h
@@ -174,7 +174,7 @@
   ~WindowOcclusionTracker() override;
 
   // Returns true iff the occlusion states in |tracked_windows| match those
-  // returned by Window::occlusion_state().
+  // returned by Window::GetOcclusionState().
   static bool OcclusionStatesMatch(
       const base::flat_map<Window*, OcclusionData>& tracked_windows);
 
diff --git a/ui/aura/window_occlusion_tracker_unittest.cc b/ui/aura/window_occlusion_tracker_unittest.cc
index f7d2e31..6360789 100644
--- a/ui/aura/window_occlusion_tracker_unittest.cc
+++ b/ui/aura/window_occlusion_tracker_unittest.cc
@@ -2412,7 +2412,7 @@
   EXPECT_FALSE(browser_delegate->is_expecting_call());
   EXPECT_FALSE(webcontents_delegate->is_expecting_call());
 
-  EXPECT_EQ(Window::OcclusionState::VISIBLE, webcontents->occlusion_state());
+  EXPECT_EQ(Window::OcclusionState::VISIBLE, webcontents->GetOcclusionState());
   EXPECT_TRUE(webcontents->TargetVisibility());
 
   container_delegate->set_expectation(Window::OcclusionState::VISIBLE);
diff --git a/ui/aura/window_targeter_unittest.cc b/ui/aura/window_targeter_unittest.cc
index e025f0f..6dc411c5 100644
--- a/ui/aura/window_targeter_unittest.cc
+++ b/ui/aura/window_targeter_unittest.cc
@@ -218,7 +218,7 @@
   // WindowTargeter:
   bool SubtreeShouldBeExploredForEvent(Window* window,
                                        const ui::LocatedEvent& event) override {
-    return (window->id() == id_ &&
+    return (window->GetId() == id_ &&
             WindowTargeter::SubtreeShouldBeExploredForEvent(window, event));
   }
 
diff --git a/ui/aura/window_unittest.cc b/ui/aura/window_unittest.cc
index 65c357a..69af357 100644
--- a/ui/aura/window_unittest.cc
+++ b/ui/aura/window_unittest.cc
@@ -860,13 +860,13 @@
   parent.Init(ui::LAYER_NOT_DRAWN);
   Window child1(nullptr);
   child1.Init(ui::LAYER_NOT_DRAWN);
-  child1.set_id(1);
+  child1.SetId(1);
   Window child2(nullptr);
   child2.Init(ui::LAYER_NOT_DRAWN);
-  child2.set_id(2);
+  child2.SetId(2);
   Window child3(nullptr);
   child3.Init(ui::LAYER_NOT_DRAWN);
-  child3.set_id(3);
+  child3.SetId(3);
 
   parent.AddChild(&child1);
   parent.AddChild(&child2);
@@ -2492,7 +2492,7 @@
   // Set properties to non default values.
   gfx::Rect window_bounds(100, 100);
   Window w(new ColorTestWindowDelegate(SK_ColorWHITE));
-  w.set_id(1);
+  w.SetId(1);
   w.Init(ui::LAYER_SOLID_COLOR);
   w.SetBounds(window_bounds);
 
diff --git a/ui/base/idle/BUILD.gn b/ui/base/idle/BUILD.gn
index 73f2aeb..2ef345e4 100644
--- a/ui/base/idle/BUILD.gn
+++ b/ui/base/idle/BUILD.gn
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/config/chromecast_build.gni")
 import("//build/config/chromeos/ui_mode.gni")
 import("//build/config/ui.gni")
 
@@ -56,8 +57,11 @@
     sources += [ "idle_fuchsia.cc" ]
   }
 
-  if (is_linux) {
+  if (is_chromecast) {
+    sources += [ "idle_stub.cc" ]
+  } else if (is_linux) {
     sources += [ "idle_linux.cc" ]
+    deps += [ "//dbus" ]
   }
 
   if (use_x11 && !is_chromeos_ash) {
diff --git a/ui/base/idle/DEPS b/ui/base/idle/DEPS
index c0b3407..50cec1b8 100644
--- a/ui/base/idle/DEPS
+++ b/ui/base/idle/DEPS
@@ -2,5 +2,6 @@
   "+chromeos/dbus/dbus_thread_manager.h",
   "+chromeos/dbus/session_manager",
   "+chromeos/lacros",
+  "+dbus",
   "+ui/base/ui_base_jni_headers",
 ]
diff --git a/ui/base/idle/idle_linux.cc b/ui/base/idle/idle_linux.cc
index 3b97a45..a5d92d0 100644
--- a/ui/base/idle/idle_linux.cc
+++ b/ui/base/idle/idle_linux.cc
@@ -2,8 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "base/bind.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/no_destructor.h"
+#include "base/task/task_traits.h"
+#include "base/task/thread_pool.h"
+#include "base/task_runner.h"
 #include "ui/base/idle/idle.h"
 
+#include "dbus/bus.h"
+#include "dbus/message.h"
+#include "dbus/object_path.h"
+#include "dbus/object_proxy.h"
 #include "ui/base/idle/idle_internal.h"
 
 #if defined(USE_X11)
@@ -20,6 +30,140 @@
 
 namespace ui {
 
+namespace {
+
+const char kMethodName[] = "GetActive";
+const char kSignalName[] = "ActiveChanged";
+
+struct {
+  const char* service_name;
+  const char* object_path;
+  const char* interface;
+} constexpr kInterfaces[] = {
+    // ksmserver, light-locker, etc.
+    {"org.freedesktop.ScreenSaver", "/org/freedesktop/ScreenSaver",
+     "org.freedesktop.ScreenSaver"},
+    // cinnamon-screensaver
+    {"org.cinnamon.ScreenSaver", "/org/cinnamon/ScreenSaver",
+     "org.cinnamon.ScreenSaver"},
+    // gnome-screensaver
+    {"org.gnome.ScreenSaver", "/", "org.gnome.ScreenSaver"},
+    // mate-screensaver
+    {"org.mate.ScreenSaver", "/", "org.mate.ScreenSaver"},
+    // xfce4-screensaver
+    {"org.xfce.ScreenSaver", "/", "org.xfce.ScreenSaver"},
+};
+
+bool ServiceNameHasOwner(dbus::Bus* bus, const char* service_name) {
+  dbus::ObjectProxy* dbus_proxy =
+      bus->GetObjectProxy(DBUS_SERVICE_DBUS, dbus::ObjectPath(DBUS_PATH_DBUS));
+  dbus::MethodCall name_has_owner_call(DBUS_INTERFACE_DBUS, "NameHasOwner");
+  dbus::MessageWriter writer(&name_has_owner_call);
+  writer.AppendString(service_name);
+  std::unique_ptr<dbus::Response> name_has_owner_response =
+      dbus_proxy->CallMethodAndBlock(&name_has_owner_call,
+                                     dbus::ObjectProxy::TIMEOUT_USE_DEFAULT);
+  dbus::MessageReader reader(name_has_owner_response.get());
+  bool owned = false;
+  return name_has_owner_response && reader.PopBool(&owned) && owned;
+}
+
+// This class checks for availability of various DBus screensaver interfaces
+// and listens for screensaver events on the first one found.
+class IdleLinuxImpl {
+ public:
+  enum class LockState {
+    kUnknown,
+    kLocked,
+    kUnlocked,
+  };
+
+  IdleLinuxImpl()
+      : task_runner_(
+            base::ThreadPool::CreateSequencedTaskRunner(base::TaskTraits(
+                base::MayBlock(),
+                base::TaskPriority::USER_VISIBLE,
+                base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN))) {}
+
+  void Init() {
+    task_runner_->PostTask(FROM_HERE,
+                           base::BindOnce(&IdleLinuxImpl::InitOnTaskRunner,
+                                          base::Unretained(this)));
+  }
+
+  LockState lock_state() const { return lock_state_; }
+
+ private:
+  ~IdleLinuxImpl() = default;
+
+  void InitOnTaskRunner() {
+    dbus::Bus::Options options;
+    options.bus_type = dbus::Bus::SESSION;
+    options.connection_type = dbus::Bus::PRIVATE;
+    options.dbus_task_runner = task_runner_;
+    bus_ = base::MakeRefCounted<dbus::Bus>(options);
+
+    for (const auto& interface : kInterfaces) {
+      // Calling methods on a non-existent service will lead to a timeout rather
+      // than an immediate error, so check for service existence first.
+      if (!ServiceNameHasOwner(bus_.get(), interface.service_name))
+        continue;
+
+      // To avoid a race condition, start listenting for state changes before
+      // querying the state.
+      auto* proxy = bus_->GetObjectProxy(
+          interface.service_name, dbus::ObjectPath(interface.object_path));
+      if (!proxy->ConnectToSignalAndBlock(
+              interface.interface, kSignalName,
+              base::BindRepeating(&IdleLinuxImpl::OnActiveChanged,
+                                  base::Unretained(this)))) {
+        continue;
+      }
+
+      // Some service owners (eg. gsd-screensaver-proxy) advertise the correct
+      // methods on org.freedesktop.ScreenSaver, but calling them will result in
+      // a NotImplemented DBus error.  To ensure the service owner will send
+      // state change events, make an explicit method call and check that no
+      // error is returned.
+      dbus::MethodCall method_call(interface.interface, kMethodName);
+      auto response = proxy->CallMethodAndBlock(
+          &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT);
+      if (response && UpdateLockState(response.get()))
+        return;
+
+      // Try the next interface.
+      proxy->Detach();
+    }
+  }
+
+  void OnActiveChanged(dbus::Signal* signal) { UpdateLockState(signal); }
+
+  bool UpdateLockState(dbus::Message* message) {
+    dbus::MessageReader reader(message);
+    bool active;
+    if (!reader.PopBool(&active) || reader.HasMoreData())
+      return false;
+    lock_state_ = active ? LockState::kLocked : LockState::kUnlocked;
+    return true;
+  }
+
+  // Only accessed on the task runner.
+  scoped_refptr<dbus::Bus> bus_;
+
+  // Only accessed on the main thread.
+  scoped_refptr<base::SequencedTaskRunner> task_runner_;
+
+  // Read on the main thread and written on the task runner.
+  std::atomic<LockState> lock_state_{LockState::kUnknown};
+};
+
+IdleLinuxImpl* GetIdleLinuxImpl() {
+  static base::NoDestructor<IdleLinuxImpl> impl;
+  return impl.get();
+}
+
+}  // namespace
+
 int CalculateIdleTime() {
 #if defined(USE_OZONE)
   if (features::IsUsingOzonePlatform()) {
@@ -43,6 +187,10 @@
   if (IdleStateForTesting().has_value())
     return IdleStateForTesting().value() == IDLE_STATE_LOCKED;
 
+  auto lock_state = GetIdleLinuxImpl()->lock_state();
+  if (lock_state != IdleLinuxImpl::LockState::kUnknown)
+    return lock_state == IdleLinuxImpl::LockState::kLocked;
+
 #if defined(USE_OZONE)
   if (features::IsUsingOzonePlatform()) {
     auto* const screen = display::Screen::GetScreen();
diff --git a/ui/base/idle/idle_stub.cc b/ui/base/idle/idle_stub.cc
new file mode 100644
index 0000000..77ca1dd
--- /dev/null
+++ b/ui/base/idle/idle_stub.cc
@@ -0,0 +1,21 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/base/idle/idle.h"
+
+#include "base/notreached.h"
+
+namespace ui {
+
+int CalculateIdleTime() {
+  NOTIMPLEMENTED();
+  return 0;
+}
+
+bool CheckIdleStateIsLocked() {
+  NOTIMPLEMENTED();
+  return false;
+}
+
+}  // namespace ui
diff --git a/ui/base/metadata/base_type_conversion.cc b/ui/base/metadata/base_type_conversion.cc
index 647d4a89..dfa52bc5 100644
--- a/ui/base/metadata/base_type_conversion.cc
+++ b/ui/base/metadata/base_type_conversion.cc
@@ -133,6 +133,11 @@
   return base::ASCIIToUTF16(source_value.ToString());
 }
 
+std::u16string TypeConverter<std::string>::ToString(
+    const std::string& source_value) {
+  return base::UTF8ToUTF16(source_value);
+}
+
 std::u16string TypeConverter<url::Component>::ToString(
     const url::Component& source_value) {
   return base::ASCIIToUTF16(
@@ -383,6 +388,11 @@
   return base::nullopt;
 }
 
+base::Optional<std::string> TypeConverter<std::string>::FromString(
+    const std::u16string& source_value) {
+  return base::UTF16ToUTF8(source_value);
+}
+
 base::Optional<url::Component> TypeConverter<url::Component>::FromString(
     const std::u16string& source_value) {
   const auto values = base::SplitStringPiece(
diff --git a/ui/base/metadata/base_type_conversion.h b/ui/base/metadata/base_type_conversion.h
index f5670f5..c7f8b23 100644
--- a/ui/base/metadata/base_type_conversion.h
+++ b/ui/base/metadata/base_type_conversion.h
@@ -219,6 +219,7 @@
 DECLARE_CONVERSIONS(gfx::ShadowValues)
 DECLARE_CONVERSIONS(gfx::Size)
 DECLARE_CONVERSIONS(gfx::SizeF)
+DECLARE_CONVERSIONS(std::string)
 DECLARE_CONVERSIONS(url::Component)
 
 #undef DECLARE_CONVERSIONS
diff --git a/ui/base/metadata/metadata_types.h b/ui/base/metadata/metadata_types.h
index b28cb57d..db631ee0 100644
--- a/ui/base/metadata/metadata_types.h
+++ b/ui/base/metadata/metadata_types.h
@@ -56,7 +56,7 @@
 class COMPONENT_EXPORT(UI_BASE) MetaDataProvider {
  public:
   MetaDataProvider();
-  ~MetaDataProvider();
+  virtual ~MetaDataProvider();
   virtual class ClassMetaData* GetClassMetaData() = 0;
 
  protected:
diff --git a/ui/base/resource/data_pack_unittest.cc b/ui/base/resource/data_pack_unittest.cc
index 386d184..25d3063 100644
--- a/ui/base/resource/data_pack_unittest.cc
+++ b/ui/base/resource/data_pack_unittest.cc
@@ -143,8 +143,8 @@
   // by the actual pak file content.
   const uint8_t kPadding[5678] = {0};
   ASSERT_TRUE(base::WriteFile(data_path, kPadding));
-  ASSERT_TRUE(
-      base::AppendToFile(data_path, kSamplePakContentsV4, kSamplePakSizeV4));
+  ASSERT_TRUE(base::AppendToFile(
+      data_path, base::StringPiece(kSamplePakContentsV4, kSamplePakSizeV4)));
 
   base::File file(data_path, base::File::FLAG_OPEN | base::File::FLAG_READ);
   ASSERT_TRUE(file.IsValid());
diff --git a/ui/events/event.cc b/ui/events/event.cc
index ff0f77a..d127efe 100644
--- a/ui/events/event.cc
+++ b/ui/events/event.cc
@@ -618,7 +618,8 @@
 std::string MouseEvent::ToString() const {
   return base::StrCat(
       {LocatedEvent::ToString(), " flags ",
-       base::JoinString(make_span(MouseEventFlagsNames(flags())), " | ")});
+       base::JoinString(base::make_span(MouseEventFlagsNames(flags())),
+                        " | ")});
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -1110,7 +1111,7 @@
   return base::StrCat(
       {Event::ToString(), " key ", base::StringPrintf("(0x%.4x)", key_code_),
        " flags ",
-       base::JoinString(make_span(KeyEventFlagsNames(flags())), " | ")});
+       base::JoinString(base::make_span(KeyEventFlagsNames(flags())), " | ")});
 }
 
 KeyboardCode KeyEvent::GetLocatedWindowsKeyboardCode() const {
diff --git a/ui/ozone/platform/drm/ozone_platform_drm.cc b/ui/ozone/platform/drm/ozone_platform_drm.cc
index aceccb8..1bae339 100644
--- a/ui/ozone/platform/drm/ozone_platform_drm.cc
+++ b/ui/ozone/platform/drm/ozone_platform_drm.cc
@@ -125,7 +125,7 @@
       binders->Add<ozone::mojom::DrmDevice>(
           base::BindRepeating(
               &OzonePlatformDrm::CreateDrmDeviceReceiverOnDrmThread,
-              weak_factory_.GetWeakPtr()),
+              weak_factory_on_drm_.GetWeakPtr()),
           drm_thread_proxy_->GetDrmThreadTaskRunner());
     }
   }
@@ -304,7 +304,7 @@
     } else {
       auto safe_receiver_request_drainer = CreateSafeOnceCallback(
           base::BindOnce(&OzonePlatformDrm::DrainReceiverRequests,
-                         weak_factory_.GetWeakPtr()));
+                         weak_factory_on_drm_.GetWeakPtr()));
       drm_thread_proxy_->StartDrmThread(
           std::move(safe_receiver_request_drainer));
     }
@@ -345,6 +345,7 @@
   InitializedHostProperties host_properties_;
 
   base::WeakPtrFactory<OzonePlatformDrm> weak_factory_{this};
+  base::WeakPtrFactory<OzonePlatformDrm> weak_factory_on_drm_{this};
   OzonePlatformDrm(const OzonePlatformDrm&) = delete;
   OzonePlatformDrm& operator=(const OzonePlatformDrm&) = delete;
 };
diff --git a/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc b/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
index 349609d..9cc4d27 100644
--- a/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
+++ b/ui/ozone/platform/wayland/host/wayland_toplevel_window.cc
@@ -241,6 +241,10 @@
                                   ->xdg_decoration_manager_v1();
 }
 
+bool WaylandToplevelWindow::ShouldUpdateWindowShape() const {
+  return true;
+}
+
 base::Optional<std::vector<gfx::Rect>> WaylandToplevelWindow::GetWindowShape()
     const {
   return window_shape_in_dips_;
diff --git a/ui/ozone/platform/wayland/host/wayland_toplevel_window.h b/ui/ozone/platform/wayland/host/wayland_toplevel_window.h
index b126babf1..0ba3b56 100644
--- a/ui/ozone/platform/wayland/host/wayland_toplevel_window.h
+++ b/ui/ozone/platform/wayland/host/wayland_toplevel_window.h
@@ -57,6 +57,7 @@
   // xdg-decoration mode for a window.
   void SetUseNativeFrame(bool use_native_frame) override;
   bool ShouldUseNativeFrame() const override;
+  bool ShouldUpdateWindowShape() const override;
 
   // WaylandWindow overrides:
   base::Optional<std::vector<gfx::Rect>> GetWindowShape() const override;
diff --git a/ui/ozone/platform/wayland/host/wayland_window.cc b/ui/ozone/platform/wayland/host/wayland_window.cc
index a16ef59..4fbfa6a 100644
--- a/ui/ozone/platform/wayland/host/wayland_window.cc
+++ b/ui/ozone/platform/wayland/host/wayland_window.cc
@@ -359,8 +359,8 @@
 
 void WaylandWindow::SizeConstraintsChanged() {}
 
-bool WaylandWindow::ShouldUseLayerForShapedWindow() const {
-  return true;
+bool WaylandWindow::ShouldUpdateWindowShape() const {
+  return false;
 }
 
 bool WaylandWindow::CanDispatchEvent(const PlatformEvent& event) {
diff --git a/ui/ozone/platform/wayland/host/wayland_window.h b/ui/ozone/platform/wayland/host/wayland_window.h
index 28c5558..65be536 100644
--- a/ui/ozone/platform/wayland/host/wayland_window.h
+++ b/ui/ozone/platform/wayland/host/wayland_window.h
@@ -166,7 +166,7 @@
   void SetWindowIcons(const gfx::ImageSkia& window_icon,
                       const gfx::ImageSkia& app_icon) override;
   void SizeConstraintsChanged() override;
-  bool ShouldUseLayerForShapedWindow() const override;
+  bool ShouldUpdateWindowShape() const override;
 
   // PlatformEventDispatcher
   bool CanDispatchEvent(const PlatformEvent& event) override;
diff --git a/ui/platform_window/platform_window.cc b/ui/platform_window/platform_window.cc
index 0560e2e..3406553 100644
--- a/ui/platform_window/platform_window.cc
+++ b/ui/platform_window/platform_window.cc
@@ -54,7 +54,7 @@
   return std::string();
 }
 
-bool PlatformWindow::ShouldUseLayerForShapedWindow() const {
+bool PlatformWindow::ShouldUpdateWindowShape() const {
   return false;
 }
 
diff --git a/ui/platform_window/platform_window.h b/ui/platform_window/platform_window.h
index 4e38c0e..b917872 100644
--- a/ui/platform_window/platform_window.h
+++ b/ui/platform_window/platform_window.h
@@ -153,9 +153,10 @@
   // platform specific. Overriding this method is optional.
   virtual std::string GetWindowUniqueId() const;
 
-  // Returns true if window shape should be updated in layer,
-  // otherwise false when platform window updates the window shape.
-  virtual bool ShouldUseLayerForShapedWindow() const;
+  // Returns true if window shape should be updated in host,
+  // otherwise false when platform window or specific frame views updates the
+  // window shape.
+  virtual bool ShouldUpdateWindowShape() const;
 };
 
 }  // namespace ui
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
index 7ba461f..58c72f1 100644
--- a/ui/views/BUILD.gn
+++ b/ui/views/BUILD.gn
@@ -841,8 +841,6 @@
           "widget/desktop_aura/desktop_drag_drop_client_ozone.h",
           "widget/desktop_aura/desktop_window_tree_host_platform.cc",
           "widget/desktop_aura/window_move_client_platform.cc",
-          "widget/desktop_aura/window_shape_updater.cc",
-          "widget/desktop_aura/window_shape_updater.h",
         ]
         public_deps += [ "//ui/base/dragdrop/mojom:mojom_shared" ]
       }
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
index c855ee6..892a476 100644
--- a/ui/views/controls/textfield/textfield.cc
+++ b/ui/views/controls/textfield/textfield.cc
@@ -881,7 +881,7 @@
 }
 
 void Textfield::AboutToRequestFocusFromTabTraversal(bool reverse) {
-  SelectAll(PlatformStyle::kTextfieldScrollsToStartOnFocusChange);
+  SelectAll(false);
 }
 
 bool Textfield::SkipDefaultKeyEventProcessing(const ui::KeyEvent& event) {
@@ -1099,11 +1099,6 @@
   gfx::RenderText* render_text = GetRenderText();
   render_text->set_focused(false);
 
-  // If necessary, yank the cursor to the logical start of the textfield.
-  if (PlatformStyle::kTextfieldScrollsToStartOnFocusChange &&
-      !render_text->multiline())
-    model_->MoveCursorTo(gfx::SelectionModel(0, gfx::CURSOR_FORWARD));
-
   if (GetInputMethod()) {
     GetInputMethod()->DetachTextInputClient(this);
 #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/ui/views/controls/textfield/textfield_unittest.cc b/ui/views/controls/textfield/textfield_unittest.cc
index 9125b66..b64d595 100644
--- a/ui/views/controls/textfield/textfield_unittest.cc
+++ b/ui/views/controls/textfield/textfield_unittest.cc
@@ -3764,34 +3764,6 @@
   EXPECT_EQ(u" ", textfield_->GetText());
 }
 
-TEST_F(TextfieldTest, FocusChangesScrollToStart) {
-  const std::u16string kText = u"abcdef";
-  InitTextfield();
-  textfield_->SetText(kText);
-  EXPECT_EQ(std::u16string(), textfield_->GetSelectedText());
-  textfield_->AboutToRequestFocusFromTabTraversal(false);
-  EXPECT_EQ(kText, textfield_->GetSelectedText());
-  if (PlatformStyle::kTextfieldScrollsToStartOnFocusChange)
-    EXPECT_EQ(0U, textfield_->GetCursorPosition());
-  else
-    EXPECT_EQ(kText.size(), textfield_->GetCursorPosition());
-
-  // The OnBlur() behavior below is only meaningful on platforms where textfield
-  // focus moves on focus change.
-  if (!PlatformStyle::kTextfieldScrollsToStartOnFocusChange)
-    return;
-
-  // The cursor is at the start (so that it scrolls in to view), but the
-  // "Select All" is currently undirected. Shift+right will give it a direction
-  // and scroll to the end.
-  SendKeyEvent(ui::VKEY_RIGHT, true, false);
-  EXPECT_EQ(kText.size(), textfield_->GetCursorPosition());
-
-  // And a focus loss should scroll back to the start.
-  textfield_->OnBlur();
-  EXPECT_EQ(0U, textfield_->GetCursorPosition());
-}
-
 TEST_F(TextfieldTest, SendingDeletePreservesShiftFlag) {
   InitTextfield();
   SendKeyPress(ui::VKEY_DELETE, 0);
diff --git a/ui/views/corewm/tooltip_controller_unittest.cc b/ui/views/corewm/tooltip_controller_unittest.cc
index 96df8df..b6429ad 100644
--- a/ui/views/corewm/tooltip_controller_unittest.cc
+++ b/ui/views/corewm/tooltip_controller_unittest.cc
@@ -134,7 +134,7 @@
         delegate
             ? delegate
             : aura::test::TestWindowDelegate::CreateSelfDestroyingDelegate());
-    window->set_id(id);
+    window->SetId(id);
     window->Init(ui::LAYER_TEXTURED);
     parent->AddChild(window);
     window->SetBounds(gfx::Rect(0, 0, 100, 100));
diff --git a/ui/views/examples/BUILD.gn b/ui/views/examples/BUILD.gn
index 348ea49..aa56fff 100644
--- a/ui/views/examples/BUILD.gn
+++ b/ui/views/examples/BUILD.gn
@@ -43,6 +43,8 @@
     "flex_layout_example.h",
     "label_example.cc",
     "label_example.h",
+    "layer_animation_example.cc",
+    "layer_animation_example.h",
     "layout_example_base.cc",
     "layout_example_base.h",
     "link_example.cc",
diff --git a/ui/views/examples/create_examples.cc b/ui/views/examples/create_examples.cc
index 444db3a..ca91ff1 100644
--- a/ui/views/examples/create_examples.cc
+++ b/ui/views/examples/create_examples.cc
@@ -4,6 +4,7 @@
 
 #include "ui/views/examples/create_examples.h"
 
+#include <memory>
 #include <utility>
 
 #include "ui/views/examples/animation_example.h"
@@ -18,6 +19,7 @@
 #include "ui/views/examples/dialog_example.h"
 #include "ui/views/examples/flex_layout_example.h"
 #include "ui/views/examples/label_example.h"
+#include "ui/views/examples/layer_animation_example.h"
 #include "ui/views/examples/link_example.h"
 #include "ui/views/examples/login_bubble_dialog_example.h"
 #include "ui/views/examples/menu_example.h"
@@ -58,6 +60,7 @@
   examples.push_back(std::make_unique<DialogExample>());
   examples.push_back(std::make_unique<FlexLayoutExample>());
   examples.push_back(std::make_unique<LabelExample>());
+  examples.push_back(std::make_unique<LayerAnimationExample>());
   examples.push_back(std::make_unique<LinkExample>());
   examples.push_back(std::make_unique<LoginBubbleDialogExample>());
   examples.push_back(std::make_unique<MenuExample>());
diff --git a/ui/views/examples/layer_animation_example.cc b/ui/views/examples/layer_animation_example.cc
new file mode 100644
index 0000000..6d5a64c
--- /dev/null
+++ b/ui/views/examples/layer_animation_example.cc
@@ -0,0 +1,158 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/views/examples/layer_animation_example.h"
+
+#include <memory>
+
+#include "base/time/time.h"
+#include "cc/paint/paint_flags.h"
+#include "cc/paint/paint_shader.h"
+#include "third_party/skia/include/core/SkPath.h"
+#include "third_party/skia/include/core/SkPoint.h"
+#include "ui/compositor/layer.h"
+#include "ui/compositor/layer_animation_element.h"
+#include "ui/compositor/layer_animation_sequence.h"
+#include "ui/compositor/layer_animator.h"
+#include "ui/compositor/layer_delegate.h"
+#include "ui/compositor/paint_recorder.h"
+#include "ui/gfx/canvas.h"
+#include "ui/gfx/color_palette.h"
+#include "ui/gfx/geometry/point.h"
+#include "ui/gfx/geometry/point_conversions.h"
+#include "ui/gfx/geometry/rect.h"
+#include "ui/gfx/geometry/rect_conversions.h"
+#include "ui/gfx/geometry/rect_f.h"
+#include "ui/gfx/geometry/rounded_corners_f.h"
+#include "ui/gfx/geometry/size_conversions.h"
+#include "ui/gfx/geometry/size_f.h"
+#include "ui/gfx/skia_util.h"
+#include "ui/views/animation/ink_drop_painted_layer_delegates.h"
+#include "ui/views/controls/button/button.h"
+#include "ui/views/controls/button/md_text_button.h"
+#include "ui/views/layout/box_layout.h"
+#include "ui/views/layout/fill_layout.h"
+#include "ui/views/view.h"
+
+namespace views {
+namespace examples {
+
+namespace {
+
+class RoundedRectLayerPainter : public ui::LayerDelegate {
+ public:
+  RoundedRectLayerPainter(View* container) : container_(container) {}  // NOLINT
+  ~RoundedRectLayerPainter() override = default;
+
+  // ui::LayerDelegate:
+  void OnPaintLayer(const ui::PaintContext& context) override;
+  void OnDeviceScaleFactorChanged(float old_device_scale_factor,
+                                  float new_device_scale_factor) override {}
+
+ private:
+  View* container_;
+};
+
+void RoundedRectLayerPainter::OnPaintLayer(const ui::PaintContext& context) {
+  const SkColor colors[2] = {gfx::kGoogleBlue700, gfx::kGoogleBlue300};
+  cc::PaintFlags flags;
+  gfx::Rect local_bounds = gfx::Rect(container_->layer()->size());
+  ui::PaintRecorder recorder(context, local_bounds.size());
+  gfx::Canvas* canvas = recorder.canvas();
+  const float dsf = canvas->UndoDeviceScaleFactor();
+  gfx::RectF local_bounds_f = gfx::RectF(local_bounds);
+  local_bounds_f.Scale(dsf);
+  SkRect bounds = gfx::RectToSkRect(gfx::ToEnclosingRect(local_bounds_f));
+  flags.setAntiAlias(true);
+  flags.setShader(cc::PaintShader::MakeRadialGradient(
+      SkPoint::Make(bounds.centerX(), bounds.centerY()), bounds.width() / 2,
+      colors, nullptr, 2, SkTileMode::kClamp));
+  canvas->DrawRoundRect(gfx::ToEnclosingRect(local_bounds_f), 10, flags);
+}
+
+class LayerView : public View {
+ public:
+  LayerView() {
+    SetPaintToLayer();
+    layer()->SetFillsBoundsOpaquely(false);
+    layer()->SetFillsBoundsCompletely(false);
+    layer()->SetRoundedCornerRadius(gfx::RoundedCornersF(10.f));
+    layer()->set_delegate(&layer_delegate_);
+  }
+
+  ~LayerView() override = default;
+
+ private:
+  RoundedRectLayerPainter layer_delegate_ = {this};
+};
+
+class AnimationContainer : public View {
+ public:
+  AnimationContainer();
+  ~AnimationContainer() override = default;
+
+  // ButtonListener:
+  void ButtonPressed();
+
+ private:
+  View* control_panel_;
+  View* animation_panel_;
+  LayerView* animation_view_ = nullptr;
+};
+
+AnimationContainer::AnimationContainer() {
+  auto* layout = SetLayoutManager(
+      std::make_unique<BoxLayout>(BoxLayout::Orientation::kHorizontal));
+  animation_panel_ = AddChildView(std::make_unique<View>());
+  control_panel_ = AddChildView(std::make_unique<View>());
+  layout->SetFlexForView(animation_panel_, 3);
+  layout->SetFlexForView(control_panel_, 1);
+  auto* button =
+      control_panel_->AddChildView(std::make_unique<views::MdTextButton>(
+          base::BindRepeating(&AnimationContainer::ButtonPressed,
+                              base::Unretained(this)),
+          u"Animate"));
+  button->SetBoundsRect(
+      gfx::Rect(gfx::Point(10, 10), button->GetPreferredSize()));
+  animation_view_ =
+      animation_panel_->AddChildView(std::make_unique<LayerView>());
+  animation_view_->layer()->SetAnimator(
+      new ui::LayerAnimator(base::TimeDelta::FromSeconds(2)));
+  animation_view_->layer()->GetAnimator()->set_tween_type(
+      gfx::Tween::EASE_IN_OUT);
+  animation_view_->layer()->GetAnimator()->set_preemption_strategy(
+      ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
+  animation_view_->SetBoundsRect(gfx::Rect(100, 100, 400, 200));
+  auto opacity_sequence = std::make_unique<ui::LayerAnimationSequence>();
+  opacity_sequence->set_is_repeating(true);
+  opacity_sequence->AddElement(ui::LayerAnimationElement::CreateOpacityElement(
+      0.4f, base::TimeDelta::FromSeconds(2)));
+  opacity_sequence->AddElement(ui::LayerAnimationElement::CreateOpacityElement(
+      0.9f, base::TimeDelta::FromSeconds(2)));
+  animation_view_->layer()->GetAnimator()->StartAnimation(
+      opacity_sequence.release());
+}
+
+void AnimationContainer::ButtonPressed() {
+  if (animation_view_->width() < 400) {
+    animation_view_->SetBoundsRect(gfx::Rect(100, 100, 400, 200));
+  } else {
+    animation_view_->SetBoundsRect(gfx::Rect(10, 10, 40, 20));
+  }
+}
+
+}  // namespace
+
+LayerAnimationExample::LayerAnimationExample()
+    : ExampleBase("Layer Animation") {}
+
+LayerAnimationExample::~LayerAnimationExample() = default;
+
+void LayerAnimationExample::CreateExampleView(View* container) {
+  container->SetLayoutManager(std::make_unique<FillLayout>());
+  container->AddChildView(std::make_unique<AnimationContainer>());
+}
+
+}  // namespace examples
+}  // namespace views
diff --git a/ui/views/examples/layer_animation_example.h b/ui/views/examples/layer_animation_example.h
new file mode 100644
index 0000000..0b313eba
--- /dev/null
+++ b/ui/views/examples/layer_animation_example.h
@@ -0,0 +1,28 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_VIEWS_EXAMPLES_LAYER_ANIMATION_EXAMPLE_H_
+#define UI_VIEWS_EXAMPLES_LAYER_ANIMATION_EXAMPLE_H_
+
+#include "base/macros.h"
+#include "ui/views/examples/example_base.h"
+
+namespace views {
+
+namespace examples {
+
+class VIEWS_EXAMPLES_EXPORT LayerAnimationExample : public ExampleBase {
+ public:
+  LayerAnimationExample();
+  ~LayerAnimationExample() override;
+
+ protected:
+  // ExampleBase:
+  void CreateExampleView(View* container) final;
+};
+
+}  // namespace examples
+}  // namespace views
+
+#endif  // UI_VIEWS_EXAMPLES_LAYER_ANIMATION_EXAMPLE_H_
diff --git a/ui/views/style/platform_style.cc b/ui/views/style/platform_style.cc
index ae7ded74..b63612cc 100644
--- a/ui/views/style/platform_style.cc
+++ b/ui/views/style/platform_style.cc
@@ -47,7 +47,6 @@
 const bool PlatformStyle::kTableViewSupportsKeyboardNavigationByCell = true;
 const bool PlatformStyle::kTreeViewSelectionPaintsEntireRow = false;
 const bool PlatformStyle::kUseRipples = true;
-const bool PlatformStyle::kTextfieldScrollsToStartOnFocusChange = false;
 const bool PlatformStyle::kTextfieldUsesDragCursorWhenDraggable = true;
 const bool PlatformStyle::kInactiveWidgetControlsAppearDisabled = false;
 const View::FocusBehavior PlatformStyle::kDefaultFocusBehavior =
diff --git a/ui/views/style/platform_style.h b/ui/views/style/platform_style.h
index 1180b299..bbcd727d 100644
--- a/ui/views/style/platform_style.h
+++ b/ui/views/style/platform_style.h
@@ -61,10 +61,6 @@
   // Whether ripples should be used for visual feedback on control activation.
   static const bool kUseRipples;
 
-  // Whether to scroll text fields to the beginning when they gain or lose
-  // focus.
-  static const bool kTextfieldScrollsToStartOnFocusChange;
-
   // Whether text fields should use a "drag" cursor when not actually
   // dragging but available to do so.
   static const bool kTextfieldUsesDragCursorWhenDraggable;
diff --git a/ui/views/style/platform_style_mac.mm b/ui/views/style/platform_style_mac.mm
index 8b87d755..218163c 100644
--- a/ui/views/style/platform_style_mac.mm
+++ b/ui/views/style/platform_style_mac.mm
@@ -37,7 +37,6 @@
 const bool PlatformStyle::kDialogDefaultButtonCanBeCancel = false;
 const bool PlatformStyle::kSelectWordOnRightClick = true;
 const bool PlatformStyle::kSelectAllOnRightClickWhenUnfocused = true;
-const bool PlatformStyle::kTextfieldScrollsToStartOnFocusChange = true;
 const bool PlatformStyle::kTextfieldUsesDragCursorWhenDraggable = false;
 const bool PlatformStyle::kTableViewSupportsKeyboardNavigationByCell = false;
 const bool PlatformStyle::kTreeViewSelectionPaintsEntireRow = true;
diff --git a/ui/views/test/widget_test_aura.cc b/ui/views/test/widget_test_aura.cc
index 5453afbb..83c559a 100644
--- a/ui/views/test/widget_test_aura.cc
+++ b/ui/views/test/widget_test_aura.cc
@@ -162,7 +162,7 @@
 
 // static
 bool WidgetTest::IsNativeWindowTransparent(gfx::NativeWindow window) {
-  return window->transparent();
+  return window->GetTransparent();
 }
 
 // static
diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
index 8f37667..de5ad7a 100644
--- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
+++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
@@ -210,7 +210,7 @@
                                  const gfx::Rect& bounds) override {
     bool is_fullscreen = window->GetProperty(aura::client::kShowStateKey) ==
                          ui::SHOW_STATE_FULLSCREEN;
-    bool is_menu = window->type() == aura::client::WINDOW_TYPE_MENU;
+    bool is_menu = window->GetType() == aura::client::WINDOW_TYPE_MENU;
 
     if (is_fullscreen || is_menu) {
       ui::ZOrderLevel root_z_order = ui::ZOrderLevel::kNormal;
@@ -1103,6 +1103,7 @@
 }
 
 void DesktopNativeWidgetAura::OnPaint(const ui::PaintContext& context) {
+  desktop_window_tree_host_->UpdateWindowShapeIfNeeded(context);
   native_widget_delegate_->OnNativeWidgetPaint(context);
 }
 
diff --git a/ui/views/widget/desktop_aura/desktop_screen_position_client.cc b/ui/views/widget/desktop_aura/desktop_screen_position_client.cc
index 5a04e03..3d56e7a 100644
--- a/ui/views/widget/desktop_aura/desktop_screen_position_client.cc
+++ b/ui/views/widget/desktop_aura/desktop_screen_position_client.cc
@@ -13,7 +13,7 @@
 // Returns true if bounds passed to window in SetBounds should be treated as
 // though they are in screen coordinates.
 bool PositionWindowInScreenCoordinates(aura::Window* window) {
-  if (window->type() == aura::client::WINDOW_TYPE_POPUP)
+  if (window->GetType() == aura::client::WINDOW_TYPE_POPUP)
     return true;
 
   Widget* widget = Widget::GetWidgetForNativeView(window);
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host.cc
index 5e52f08..047f9a9 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host.cc
@@ -18,6 +18,9 @@
   AsWindowTreeHost()->SetBoundsInPixels(bounds_in_pixels);
 }
 
+void DesktopWindowTreeHost::UpdateWindowShapeIfNeeded(
+    const ui::PaintContext& context) {}
+
 std::unique_ptr<aura::client::ScreenPositionClient>
 DesktopWindowTreeHost::CreateScreenPositionClient() {
   return std::make_unique<DesktopScreenPositionClient>(
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host.h b/ui/views/widget/desktop_aura/desktop_window_tree_host.h
index 735ff41b..5ac6a91 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host.h
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host.h
@@ -28,6 +28,10 @@
 class Rect;
 }  // namespace gfx
 
+namespace ui {
+class PaintContext;
+}  // namespace ui
+
 namespace views {
 namespace corewm {
 class Tooltip;
@@ -198,6 +202,9 @@
   // Sets the bounds in screen coordinate DIPs (WindowTreeHost generally
   // operates in pixels). This function is implemented in terms of Screen.
   virtual void SetBoundsInDIP(const gfx::Rect& bounds);
+
+  // Updates window shape by clipping the canvas before paint starts.
+  virtual void UpdateWindowShapeIfNeeded(const ui::PaintContext& context);
 };
 
 }  // namespace views
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
index 56a8ac45..d9363f1f 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
@@ -18,6 +18,8 @@
 #include "ui/aura/client/transient_window_client.h"
 #include "ui/base/hit_test.h"
 #include "ui/base/ui_base_features.h"
+#include "ui/compositor/layer.h"
+#include "ui/compositor/paint_recorder.h"
 #include "ui/display/display.h"
 #include "ui/display/screen.h"
 #include "ui/gfx/geometry/dip_util.h"
@@ -29,7 +31,6 @@
 #include "ui/views/corewm/tooltip_aura.h"
 #include "ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.h"
 #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
-#include "ui/views/widget/desktop_aura/window_shape_updater.h"
 #include "ui/views/widget/widget_aura_utils.h"
 #include "ui/views/window/native_frame_view.h"
 #include "ui/wm/core/window_util.h"
@@ -141,6 +142,18 @@
   return properties;
 }
 
+SkPath GetWindowMask(const Widget* widget) {
+  if (!widget->non_client_view())
+    return SkPath();
+
+  SkPath window_mask;
+  // Some frame views define a custom (non-rectanguar) window mask.
+  // If so, use it to define the window shape. If not, fall through.
+  const_cast<NonClientView*>(widget->non_client_view())
+      ->GetWindowMask(widget->GetWindowBoundsInScreen().size(), &window_mask);
+  return window_mask;
+}
+
 }  // namespace
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -232,13 +245,11 @@
 }
 
 void DesktopWindowTreeHostPlatform::OnWidgetInitDone() {
-  // WindowShape is updated from ShapeRects transformed from
-  // NonClientView::GetWindowMask. We can guarantee that |NonClientView|
-  // is created OnWidgetInitDone.
-  if (ShouldUseLayerForShapedWindow()) {
-    WindowShapeUpdater::CreateWindowShapeUpdater(
-        this, this->desktop_native_widget_aura());
-  }
+  // Once we can guarantee |NonClientView| is created OnWidgetInitDone,
+  // UpdateWindowTransparency and FillsBoundsCompletely accordingly.
+  desktop_native_widget_aura_->UpdateWindowTransparency();
+  GetContentWindow()->SetFillsBoundsCompletely(
+      GetWindowMaskForClipping().isEmpty());
 }
 
 void DesktopWindowTreeHostPlatform::OnActiveWindowChanged(bool active) {}
@@ -597,7 +608,7 @@
 
 bool DesktopWindowTreeHostPlatform::ShouldWindowContentsBeTransparent() const {
   return platform_window()->ShouldWindowContentsBeTransparent() ||
-         ShouldUseLayerForShapedWindow();
+         !(GetWindowMaskForClipping().isEmpty());
 }
 
 void DesktopWindowTreeHostPlatform::FrameTypeChanged() {
@@ -692,6 +703,19 @@
   return true;
 }
 
+void DesktopWindowTreeHostPlatform::UpdateWindowShapeIfNeeded(
+    const ui::PaintContext& context) {
+  if (is_shape_explicitly_set_)
+    return;
+
+  SkPath clip_path = GetWindowMaskForClipping();
+  if (clip_path.isEmpty())
+    return;
+
+  ui::PaintRecorder recorder(context, GetWindowBoundsInScreen().size());
+  recorder.canvas()->ClipPath(clip_path, true);
+}
+
 gfx::Transform DesktopWindowTreeHostPlatform::GetRootTransform() const {
   display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay();
   // This might be called before the |platform_window| is created. Thus,
@@ -779,14 +803,7 @@
 }
 
 SkPath DesktopWindowTreeHostPlatform::GetWindowMaskForWindowShapeInPixels() {
-  if (!GetWidget()->non_client_view())
-    return SkPath();
-
-  SkPath window_mask;
-  // Some frame views define a custom (non-rectanguar) window mask.
-  // If so, use it to define the window shape. If not, fall through.
-  GetWidget()->non_client_view()->GetWindowMask(
-      GetWindowBoundsInScreen().size(), &window_mask);
+  SkPath window_mask = GetWindowMask(GetWidget());
   // Convert SkPath in DIPs to pixels.
   if (!window_mask.isEmpty())
     window_mask.transform(SkMatrix(GetRootTransform().matrix()));
@@ -820,6 +837,11 @@
       non_client_view->frame_view()->InvalidateLayout();
     non_client_view->client_view()->InvalidateLayout();
     non_client_view->InvalidateLayout();
+    // Once |NonClientView| is invalidateLayout,
+    // UpdateWindowTransparency and FillsBoundsCompletely accordingly.
+    desktop_native_widget_aura_->UpdateWindowTransparency();
+    GetContentWindow()->SetFillsBoundsCompletely(
+        GetWindowMaskForClipping().isEmpty());
   }
 }
 
@@ -842,8 +864,10 @@
     const Widget::InitParams& params,
     ui::PlatformWindowInitProperties* properties) {}
 
-bool DesktopWindowTreeHostPlatform::ShouldUseLayerForShapedWindow() const {
-  return platform_window()->ShouldUseLayerForShapedWindow();
+SkPath DesktopWindowTreeHostPlatform::GetWindowMaskForClipping() const {
+  if (!platform_window()->ShouldUpdateWindowShape())
+    return SkPath();
+  return GetWindowMask(GetWidget());
 }
 
 display::Display DesktopWindowTreeHostPlatform::GetDisplayNearestRootWindow()
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h
index db230ea..95a495f 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h
@@ -18,6 +18,10 @@
 #include "ui/views/widget/desktop_aura/desktop_window_tree_host.h"
 #include "ui/views/widget/desktop_aura/window_move_client_platform.h"
 
+namespace ui {
+class PaintContext;
+}  // namespace ui
+
 namespace views {
 
 class VIEWS_EXPORT DesktopWindowTreeHostPlatform
@@ -42,8 +46,6 @@
   aura::Window* GetContentWindow();
   const aura::Window* GetContentWindow() const;
 
-  bool is_shape_explicitly_set() const { return is_shape_explicitly_set_; }
-
   // DesktopWindowTreeHost:
   void Init(const Widget::InitParams& params) override;
   void OnNativeWidgetCreated(const Widget::InitParams& params) override;
@@ -108,6 +110,7 @@
   bool ShouldUpdateWindowTransparency() const override;
   bool ShouldUseDesktopNativeCursorManager() const override;
   bool ShouldCreateVisibilityController() const override;
+  void UpdateWindowShapeIfNeeded(const ui::PaintContext& context) override;
 
   // WindowTreeHost:
   gfx::Transform GetRootTransform() const override;
@@ -158,9 +161,9 @@
       const Widget::InitParams& params,
       ui::PlatformWindowInitProperties* properties);
 
-  // Returns true if WindowShapeUpdater should update the window shape by
-  // window mask, otherwise false when window shape is already updated in views.
-  virtual bool ShouldUseLayerForShapedWindow() const;
+  // Returns window mask to clip canvas to update window shape of
+  // the content window.
+  virtual SkPath GetWindowMaskForClipping() const;
 
   // Helper method that returns the display for the |window()|.
   display::Display GetDisplayNearestRootWindow() const;
@@ -185,8 +188,9 @@
   // Used for tab dragging in move loop requests.
   WindowMoveClientPlatform window_move_client_;
 
-  // ui::Layer::SetAlphaShape can be set from either SetShape or default window
-  // mask. When explicitly setting from SetShape, |explicitly_set_shape_:true|.
+  // The content window shape can be set from either SetShape or default window
+  // mask. When explicitly setting from SetShape, |explicitly_set_shape_:true|
+  // to prevent clipping the canvas before painting for default window mask.
   bool is_shape_explicitly_set_ = false;
 
   base::WeakPtrFactory<DesktopWindowTreeHostPlatform> close_widget_factory_{
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform_unittest.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform_unittest.cc
index 748e3c07d..51cbb691 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform_unittest.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform_unittest.cc
@@ -180,24 +180,25 @@
   auto* host_platform = DesktopWindowTreeHostPlatform::GetHostForWidget(
       widget->GetNativeWindow()->GetHost()->GetAcceleratedWidget());
   ASSERT_TRUE(host_platform);
-  if (!host_platform->platform_window()->ShouldUseLayerForShapedWindow())
+  if (!host_platform->platform_window()->ShouldUpdateWindowShape())
     return;
 
   auto* content_window =
       DesktopWindowTreeHostPlatform::GetContentWindowForWidget(
           widget->GetNativeWindow()->GetHost()->GetAcceleratedWidget());
   ASSERT_TRUE(content_window);
-  // alpha_shape for the layer of content window is updated from the
-  // |NonClientView::GetWindowMask|.
   EXPECT_FALSE(host_platform->GetWindowMaskForWindowShapeInPixels().isEmpty());
-  EXPECT_TRUE(content_window->layer()->alpha_shape());
+  // SetClipPath for the layer of the content window is updated from it.
+  EXPECT_TRUE(host_platform->ShouldWindowContentsBeTransparent());
+  EXPECT_FALSE(widget->GetLayer()->FillsBoundsCompletely());
 
-  // When fullscreen mode, alpha_shape is set to empty since there is no
+  // When fullscreen mode, clip_path_ is set to empty since there is no
   // |NonClientView::GetWindowMask|.
   host_platform->SetFullscreen(true);
   widget->SetBounds(gfx::Rect(800, 800));
   EXPECT_TRUE(host_platform->GetWindowMaskForWindowShapeInPixels().isEmpty());
-  EXPECT_FALSE(content_window->layer()->alpha_shape());
+  EXPECT_FALSE(host_platform->ShouldWindowContentsBeTransparent());
+  EXPECT_TRUE(widget->GetLayer()->FillsBoundsCompletely());
 }
 
 // A Widget that allows setting the min/max size for the widget.
@@ -287,62 +288,4 @@
   EXPECT_EQ(0, observer.resize_count());
 }
 
-class DesktopWindowTreeHostPlatformHighDPITest
-    : public DesktopWindowTreeHostPlatformTest {
- public:
-  DesktopWindowTreeHostPlatformHighDPITest() = default;
-  ~DesktopWindowTreeHostPlatformHighDPITest() override = default;
-
- private:
-  void SetUp() override {
-    base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-    command_line->AppendSwitchASCII(switches::kForceDeviceScaleFactor, "2");
-
-    DesktopWindowTreeHostPlatformTest::SetUp();
-  }
-};
-
-// Tests that the window shape is updated properly from the
-// |NonClientView::GetWindowMask| in HighDPI.
-TEST_F(DesktopWindowTreeHostPlatformHighDPITest, VerifyWindowShapeInHighDPI) {
-  std::unique_ptr<Widget> widget = CreateWidgetWithNativeWidget();
-  widget->Show();
-
-  auto* host_platform = DesktopWindowTreeHostPlatform::GetHostForWidget(
-      widget->GetNativeWindow()->GetHost()->GetAcceleratedWidget());
-  ASSERT_TRUE(host_platform);
-  if (!host_platform->platform_window()->ShouldUseLayerForShapedWindow())
-    return;
-
-  auto* content_window =
-      DesktopWindowTreeHostPlatform::GetContentWindowForWidget(
-          widget->GetNativeWindow()->GetHost()->GetAcceleratedWidget());
-  ASSERT_TRUE(content_window);
-  // Check device scale factor.
-  EXPECT_EQ(host_platform->device_scale_factor(), 2.0);
-
-  // alpha_shape for the layer of content window is updated from the
-  // |NonClientView::GetWindowMask|.
-  SkPath path_in_pixels = host_platform->GetWindowMaskForWindowShapeInPixels();
-  EXPECT_FALSE(path_in_pixels.isEmpty());
-
-  // Converts path to DIPs and calculates expected region from it.
-  SkPath path_in_dips;
-  path_in_pixels.transform(
-      SkMatrix(host_platform->GetInverseRootTransform().matrix()),
-      &path_in_dips);
-  SkRegion region;
-  region.setRect(path_in_dips.getBounds().round());
-  SkRegion expected_region;
-  expected_region.setPath(path_in_dips, region);
-
-  SkRegion shape_region;
-  for (auto& bound : *(content_window->layer()->alpha_shape()))
-    shape_region.op(gfx::RectToSkIRect(bound), SkRegion::Op::kUnion_Op);
-
-  // Test that region from alpha_shape is same as the expected region from path
-  // in DIPs.
-  EXPECT_EQ(shape_region, expected_region);
-}
-
 }  // namespace views
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 4c0c38e..34e309f 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -173,7 +173,7 @@
   window()->SetProperty(kDesktopWindowTreeHostKey, this);
 
   should_animate_window_close_ =
-      content_window()->type() != aura::client::WINDOW_TYPE_NORMAL &&
+      content_window()->GetType() != aura::client::WINDOW_TYPE_NORMAL &&
       !wm::WindowAnimationsDisabled(content_window());
 }
 
diff --git a/ui/views/widget/desktop_aura/window_shape_updater.cc b/ui/views/widget/desktop_aura/window_shape_updater.cc
deleted file mode 100644
index 5c145331..0000000
--- a/ui/views/widget/desktop_aura/window_shape_updater.cc
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/views/widget/desktop_aura/window_shape_updater.h"
-
-#include "ui/gfx/skia_util.h"
-#include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
-#include "ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h"
-
-namespace {
-
-std::unique_ptr<ui::Layer::ShapeRects> ConvertToShapeRects(const SkPath& path) {
-  // Converts to ShapeRects from SkPath.
-  auto shape_rects = std::make_unique<ui::Layer::ShapeRects>();
-  SkRegion clip_region;
-  clip_region.setRect(path.getBounds().round());
-  SkRegion region;
-  region.setPath(path, clip_region);
-  for (SkRegion::Iterator it(region); !it.done(); it.next())
-    shape_rects->push_back(gfx::SkIRectToRect(it.rect()));
-  return shape_rects;
-}
-
-}  // namespace
-
-namespace views {
-
-// static
-WindowShapeUpdater* WindowShapeUpdater::CreateWindowShapeUpdater(
-    DesktopWindowTreeHostPlatform* tree_host,
-    DesktopNativeWidgetAura* native_widget_aura) {
-  return new WindowShapeUpdater(tree_host, native_widget_aura);
-}
-
-WindowShapeUpdater::WindowShapeUpdater(
-    DesktopWindowTreeHostPlatform* tree_host,
-    DesktopNativeWidgetAura* native_widget_aura)
-    : tree_host_(tree_host), native_widget_aura_(native_widget_aura) {
-  tree_host_->GetContentWindow()->AddObserver(this);
-  UpdateWindowShapeFromWindowMask(tree_host_->GetContentWindow());
-}
-
-void WindowShapeUpdater::OnWindowBoundsChanged(
-    aura::Window* window,
-    const gfx::Rect& old_bounds,
-    const gfx::Rect& new_bounds,
-    ui::PropertyChangeReason reason) {
-  UpdateWindowShapeFromWindowMask(window);
-}
-
-void WindowShapeUpdater::OnWindowDestroying(aura::Window* window) {
-  window->RemoveObserver(this);
-  delete this;
-}
-
-void WindowShapeUpdater::UpdateWindowShapeFromWindowMask(aura::Window* window) {
-  // If |ui::Layer::alpha_shape_| is set explicitly from SetShape,
-  // we don't need to set default window mask from non_client_view.
-  if (tree_host_->is_shape_explicitly_set())
-    return;
-  // WindowTransparency should be updated as well when the window shape is
-  // changed. When a window mask exists, transparent should be true to prevent
-  // compositor from filling the entire screen in AppendQuadsToFillScreen.
-  // Otherwise, transparent should be false.
-  native_widget_aura_->UpdateWindowTransparency();
-  SkPath path = tree_host_->GetWindowMaskForWindowShapeInPixels();
-  if (path.isEmpty()) {
-    window->layer()->SetAlphaShape(nullptr);
-    return;
-  }
-  SkPath path_in_dips;
-  path.transform(SkMatrix(tree_host_->GetInverseRootTransform().matrix()),
-                 &path_in_dips);
-
-  // SetAlphaShape to the layer of |content_window_|
-  window->layer()->SetAlphaShape(ConvertToShapeRects(path_in_dips));
-}
-
-}  // namespace views
diff --git a/ui/views/widget/desktop_aura/window_shape_updater.h b/ui/views/widget/desktop_aura/window_shape_updater.h
deleted file mode 100644
index da2a6cae..0000000
--- a/ui/views/widget/desktop_aura/window_shape_updater.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef UI_VIEWS_WIDGET_DESKTOP_AURA_WINDOW_SHAPE_UPDATER_H_
-#define UI_VIEWS_WIDGET_DESKTOP_AURA_WINDOW_SHAPE_UPDATER_H_
-
-
-#include "ui/aura/window_observer.h"
-#include "ui/compositor/layer.h"
-
-namespace views {
-
-class DesktopNativeWidgetAura;
-class DesktopWindowTreeHostPlatform;
-
-// Class to observe the window bounds changed to update window shape
-// for the rounded corner of the browser frame.
-class WindowShapeUpdater : public aura::WindowObserver {
- public:
-  static WindowShapeUpdater* CreateWindowShapeUpdater(
-      DesktopWindowTreeHostPlatform* tree_host,
-      DesktopNativeWidgetAura* native_widget_aura);
-
- private:
-  WindowShapeUpdater(DesktopWindowTreeHostPlatform* tree_host,
-                     DesktopNativeWidgetAura* native_widget_aura);
-  WindowShapeUpdater(const WindowShapeUpdater&) = delete;
-  WindowShapeUpdater& operator=(const WindowShapeUpdater&) = delete;
-  ~WindowShapeUpdater() override = default;
-
-  // aura::WindowObserver:
-  void OnWindowBoundsChanged(aura::Window* window,
-                             const gfx::Rect& old_bounds,
-                             const gfx::Rect& new_bounds,
-                             ui::PropertyChangeReason reason) override;
-
-  void OnWindowDestroying(aura::Window* window) override;
-
-  void UpdateWindowShapeFromWindowMask(aura::Window* window);
-
-  DesktopWindowTreeHostPlatform* tree_host_ = nullptr;
-  DesktopNativeWidgetAura* native_widget_aura_ = nullptr;
-};
-
-}  // namespace views
-
-#endif  // UI_VIEWS_WIDGET_DESKTOP_AURA_WINDOW_SHAPE_UPDATER_H_
diff --git a/ui/views/widget/native_widget_aura.cc b/ui/views/widget/native_widget_aura.cc
index c980b9f..3b63e2b9 100644
--- a/ui/views/widget/native_widget_aura.cc
+++ b/ui/views/widget/native_widget_aura.cc
@@ -210,7 +210,7 @@
   if (!params.child) {
     // Set up the transient child before the window is added. This way the
     // LayoutManager knows the window has a transient parent.
-    if (parent && parent->type() != aura::client::WINDOW_TYPE_UNKNOWN) {
+    if (parent && parent->GetType() != aura::client::WINDOW_TYPE_UNKNOWN) {
       wm::AddTransientChild(parent, window_);
       if (!context)
         context = parent;
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/activation_code_page.html b/ui/webui/resources/cr_components/chromeos/cellular_setup/activation_code_page.html
index 759c67ca..0596c6780 100644
--- a/ui/webui/resources/cr_components/chromeos/cellular_setup/activation_code_page.html
+++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/activation_code_page.html
@@ -63,6 +63,10 @@
         background-color: transparent;
       }
 
+      cr-button[disabled] > iron-icon {
+        --iron-icon-fill-color: var(--google-grey-600);
+      }
+
       .animate {
         transition-property: height;
         transition-timing-function: cubic-bezier(0.00, 0.00, 0.20, 1.00);
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.html b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.html
index 830547c..464d0994 100644
--- a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.html
+++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.html
@@ -31,6 +31,7 @@
             button-state="{{buttonState_}}"
             delegate="[[delegate]]"
             id="esim-flow-ui"
+            header="{{flowHeader}}"
             forward-button-label="{{forwardButtonLabel_}}">
         </esim-flow-ui>
       </template>
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.js b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.js
index 3968c19..e2c7b94 100644
--- a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.js
+++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_setup.js
@@ -15,9 +15,24 @@
     /** @type {!cellular_setup.CellularSetupDelegate} */
     delegate: Object,
 
+    /**
+     * Title of the flow, shown at the top of the dialog. No title shown if the
+     * string is empty.
+     */
     flowTitle: {
       type: String,
       notify: true,
+      value: '',
+    },
+
+    /**
+     * Header for the flow, shown below the title. No header shown if the string
+     * is empty.
+     */
+    flowHeader: {
+      type: String,
+      notify: true,
+      value: '',
     },
 
     /**
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.html b/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.html
index 7a4caa7..edc972a 100644
--- a/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.html
+++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.html
@@ -50,11 +50,11 @@
           show-busy="[[shouldShowSubpageBusy_(state_)]]">
       </confirmation-code-page>
       <final-page
-        id="finalPage"
-        delegate="[[delegate]]"
-        show-error="[[showError_]]"
-        message="[[i18n('eSimFinalPageMessage')]]"
-        error-message="[[i18n('eSimFinalPageErrorMessage')]]">
+          id="finalPage"
+          delegate="[[delegate]]"
+          show-error="[[showError_]]"
+          message="[[i18n('eSimFinalPageMessage')]]"
+          error-message="[[i18n('eSimFinalPageErrorMessage')]]">
       </final-page>
     </iron-pages>
   </template>
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.js b/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.js
index 26d341b..a58cf71 100644
--- a/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.js
+++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.js
@@ -69,6 +69,16 @@
       /** @type {!cellular_setup.CellularSetupDelegate} */
       delegate: Object,
 
+      /**
+       * Header shown at the top of the flow. No header shown if the string is
+       * empty.
+       */
+      header: {
+        type: String,
+        notify: true,
+        computed: 'computeHeader_(selectedESimPageName_, showError_)',
+      },
+
       forwardButtonLabel: {
         type: String,
         notify: true,
@@ -667,6 +677,19 @@
           LoadingPageState.CELLULAR_DISCONNECT_WARNING :
           LoadingPageState.LOADING;
     },
+
+    /**
+     * @return {string}
+     * @private
+     */
+    computeHeader_() {
+      if (this.selectedESimPageName_ === ESimPageName.FINAL &&
+          !this.showError_) {
+        return this.i18n('eSimFinalPageSuccessHeader');
+      }
+
+      return '';
+    },
   });
 
   // #cr_define_end
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_apnlist.html b/ui/webui/resources/cr_components/chromeos/network/network_apnlist.html
index 3ba9ea1ee..26acaae 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_apnlist.html
+++ b/ui/webui/resources/cr_components/chromeos/network/network_apnlist.html
@@ -16,7 +16,6 @@
     <style include="network-shared md-select">
       :host {
         --cr-property-box-width: 200px;
-        padding-bottom: 16px;
       }
 
       cr-button {
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html b/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html
index bb16a2bf..24c9225c 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html
+++ b/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html
@@ -15,21 +15,23 @@
         margin-inline-start: var(--settings-control-label-spacing);
       }
     </style>
-    <div class="property-box">
-      <div id="autoIPConfigLabel" class="start">
-        [[i18n('networkIPConfigAuto')]]
+    <template is="dom-if" if="[[shouldShowAutoIpConfigToggle_]]" restamp>
+      <div id="autoConfig" class="property-box">
+        <div id="autoIPConfigLabel" class="start">
+          [[i18n('networkIPConfigAuto')]]
+        </div>
+        <cr-policy-indicator indicator-type="[[getPolicyIndicatorType(
+            managedProperties.ipAddressConfigType)]]">
+        </cr-policy-indicator>
+        <cr-toggle id="autoConfigIpToggle" checked="{{automatic_}}"
+            disabled="[[!canChangeIPConfigType_(managedProperties, disabled)]]"
+            on-change="onAutomaticChange_"
+            aria-labelledby="autoIPConfigLabel">
+        </cr-toggle>
       </div>
-      <cr-policy-indicator indicator-type="[[getPolicyIndicatorType(
-          managedProperties.ipAddressConfigType)]]">
-      </cr-policy-indicator>
-      <cr-toggle id="autoConfigIpToggle" checked="{{automatic_}}"
-          disabled="[[!canChangeIPConfigType_(managedProperties, disabled)]]"
-          on-change="onAutomaticChange_"
-          aria-labelledby="autoIPConfigLabel">
-      </cr-toggle>
-    </div>
+    </template>
     <template is="dom-if" if="[[hasIpConfigFields_(ipConfig_)]]">
-      <div class="property-box single-column indented stretch">
+      <div class$="[[getFieldsClassList_(shouldShowAutoIpConfigToggle_)]]">
         <network-property-list-mojo fields="[[ipConfigFields_]]"
             all-fields-read-only="[[automatic_]]"
             property-dict="[[ipConfig_]]"
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js b/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js
index 646365a..d82ac7b 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js
@@ -140,6 +140,24 @@
       },
       readOnly: true
     },
+
+    /**
+     * True if automatically-configured IP address toggle should be visible.
+     * @private
+     */
+    shouldShowAutoIpConfigToggle_: {
+      type: Boolean,
+      value: true,
+      computed: 'computeShouldShowAutoIpConfigToggle_(managedProperties)',
+    },
+
+    /** @private */
+    isUpdatedCellularUiEnabled_: {
+      type: Boolean,
+      value() {
+        return loadTimeData.getBoolean('updatedCellularActivationUi');
+      }
+    },
   },
 
   /**
@@ -384,4 +402,29 @@
           {}
     });
   },
+
+  /**
+   * @return {boolean}
+   * @private
+   */
+  computeShouldShowAutoIpConfigToggle_() {
+    if (this.managedProperties.type ===
+            chromeos.networkConfig.mojom.NetworkType.kCellular &&
+        this.isUpdatedCellularUiEnabled_) {
+      return false;
+    }
+    return true;
+  },
+
+  /**
+   * @return {string}
+   * @private
+   */
+  getFieldsClassList_() {
+    let classes = 'property-box single-column stretch';
+    if (this.shouldShowAutoIpConfigToggle_) {
+      classes += ' indented';
+    }
+    return classes;
+  }
 });
diff --git a/ui/wm/core/capture_controller_unittest.cc b/ui/wm/core/capture_controller_unittest.cc
index 18fcf8fd..f3e2526 100644
--- a/ui/wm/core/capture_controller_unittest.cc
+++ b/ui/wm/core/capture_controller_unittest.cc
@@ -89,7 +89,7 @@
         delegate
             ? delegate
             : aura::test::TestWindowDelegate::CreateSelfDestroyingDelegate());
-    window->set_id(id);
+    window->SetId(id);
     window->Init(ui::LAYER_TEXTURED);
     parent->AddChild(window);
     window->SetBounds(bounds);
diff --git a/ui/wm/core/focus_controller_unittest.cc b/ui/wm/core/focus_controller_unittest.cc
index 5ae62683..5a49dc30 100644
--- a/ui/wm/core/focus_controller_unittest.cc
+++ b/ui/wm/core/focus_controller_unittest.cc
@@ -560,7 +560,7 @@
   }
   int GetFocusedWindowId() {
     aura::Window* focused_window = GetFocusedWindow();
-    return focused_window ? focused_window->id() : -1;
+    return focused_window ? focused_window->GetId() : -1;
   }
   void ActivateWindow(aura::Window* window) {
     GetActivationClient(root_window())->ActivateWindow(window);
@@ -573,7 +573,7 @@
   }
   int GetActiveWindowId() {
     aura::Window* active_window = GetActiveWindow();
-    return active_window ? active_window->id() : -1;
+    return active_window ? active_window->GetId() : -1;
   }
 
   TestFocusRules* test_focus_rules() { return test_focus_rules_; }
diff --git a/ui/wm/core/shadow_types.cc b/ui/wm/core/shadow_types.cc
index c8e0c25..7f9fa1b 100644
--- a/ui/wm/core/shadow_types.cc
+++ b/ui/wm/core/shadow_types.cc
@@ -15,7 +15,7 @@
 }
 
 int GetDefaultShadowElevationForWindow(const aura::Window* window) {
-  switch (window->type()) {
+  switch (window->GetType()) {
     case aura::client::WINDOW_TYPE_NORMAL:
       return kShadowElevationInactiveWindow;
 
diff --git a/ui/wm/core/transient_window_manager_unittest.cc b/ui/wm/core/transient_window_manager_unittest.cc
index 5d4bc9f..3dbf995a 100644
--- a/ui/wm/core/transient_window_manager_unittest.cc
+++ b/ui/wm/core/transient_window_manager_unittest.cc
@@ -78,7 +78,7 @@
   // Creates a transient window that is transient to |parent|.
   Window* CreateTransientChild(int id, Window* parent) {
     Window* window = new Window(NULL);
-    window->set_id(id);
+    window->SetId(id);
     window->SetType(aura::client::WINDOW_TYPE_NORMAL);
     window->Init(ui::LAYER_TEXTURED);
     AddTransientChild(parent, window);
diff --git a/ui/wm/core/visibility_controller.cc b/ui/wm/core/visibility_controller.cc
index 4888a129..1904e8f 100644
--- a/ui/wm/core/visibility_controller.cc
+++ b/ui/wm/core/visibility_controller.cc
@@ -45,8 +45,8 @@
 
 void VisibilityController::UpdateLayerVisibility(aura::Window* window,
                                                  bool visible) {
-  bool animated = window->type() != aura::client::WINDOW_TYPE_CONTROL &&
-                  window->type() != aura::client::WINDOW_TYPE_UNKNOWN &&
+  bool animated = window->GetType() != aura::client::WINDOW_TYPE_CONTROL &&
+                  window->GetType() != aura::client::WINDOW_TYPE_UNKNOWN &&
                   ShouldAnimateWindow(window);
   animated = animated &&
       CallAnimateOnChildWindowVisibilityChanged(window, visible);
diff --git a/ui/wm/core/window_animations.cc b/ui/wm/core/window_animations.cc
index 0d27971f..166f453 100644
--- a/ui/wm/core/window_animations.cc
+++ b/ui/wm/core/window_animations.cc
@@ -202,7 +202,8 @@
     const aura::Window& window) {
   base::TimeDelta duration =
       window.GetProperty(kWindowVisibilityAnimationDurationKey);
-  if (duration.is_zero() && window.type() == aura::client::WINDOW_TYPE_MENU) {
+  if (duration.is_zero() &&
+      window.GetType() == aura::client::WINDOW_TYPE_MENU) {
     return base::TimeDelta::FromMilliseconds(
         kDefaultAnimationDurationForMenuMS);
   }
@@ -214,8 +215,8 @@
 int GetWindowVisibilityAnimationType(aura::Window* window) {
   int type = window->GetProperty(kWindowVisibilityAnimationTypeKey);
   if (type == WINDOW_VISIBILITY_ANIMATION_TYPE_DEFAULT) {
-    return (window->type() == aura::client::WINDOW_TYPE_MENU ||
-            window->type() == aura::client::WINDOW_TYPE_TOOLTIP)
+    return (window->GetType() == aura::client::WINDOW_TYPE_MENU ||
+            window->GetType() == aura::client::WINDOW_TYPE_TOOLTIP)
                ? WINDOW_VISIBILITY_ANIMATION_TYPE_FADE
                : WINDOW_VISIBILITY_ANIMATION_TYPE_DROP;
   }